Skip to content

[JitDiff X64] [EgorBo] [JIT] Expand small constant-size Memmove calls during ... #2185

Open

Description

@MihuBot

Something went wrong with the Job after 20 minutes 39 seconds 🤷‍♂️

An error occurred with this API request

Activity

  1. MihuBot commented on Oct 19, 2026

    @MihuBot
    OwnerAuthor

    JIT diff regressions

    System.Threading.PollThread:EventLoop():this (FullOpts) (255 -> 418 bytes (+163))

    Assembly: System.Private.CoreLib.dasm

    @@ -107,106 +107,63 @@ G_M16151_IG06:
     						;; size=50 bbWeight=0 PerfScore 0.00
     G_M16151_IG07:
            lea      rdi, [rbp-0x40]
    -       mov      rsi, 0xD1FFAB1E; Assembly listing for method System.Threading.Tasks.Task:.cctor() (FullOpts)
    -; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix      ; 'Unexpected error: '
    -
    -; FullOpts code
    -; optimized code
    -; rbp based frame
    -; partially interruptible
    -      ; No PGO data
    -; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
    - mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
    -       call     [rax]; Final local variable assignments
    -;
    -System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
    -						;; size=26 bbWeight= PerfScore 0.00
    +       mov      rsi, 0xD1FFAB1E      ; 'Unexpected error: '
    +       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
    +       call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
    +						;; size=26 bbWeight=0 PerfScore 0.00
     G_M16151_IG08:
    -      ;*  lea      rdi, [V00 loc0rbp-0x40         ]
    -[V00    ]       mov      esi (  0,  0   ), r15d  struct 
    -( 8) zero-ref    ld-addr-op       mov       <System.Threading.Tasks.VoidTaskResult>rax, 0xD1FFAB1E
    -;* V01 loc1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Threading.CancellationToken>
    -      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
    -;#        call     [raxV02 OutArgs]      [V02    ]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this (  1,  1   )
    -        struct  mov      rdi( 0) , 0xD1FFAB1E[rsp+0x00]  do-not-enreg[XS]      ; System.InvalidOperationException addr-exposed "OutgoingArgSpace"
    - <Empty>
    -;* V03 tmp1               [V03    ] call      (  0,  0   )     ref  ->  CORINFO_HELP_NEWSFASTzero-ref   
    - class-hnd exact "NewObj constructor temp"       mov       <System.Object>
    -rbx;* , rax
    -V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.TaskFactory>
    -;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Threading.Tasks.VoidTaskResult>
    -;  V06 tmp4         [V06,T00] (  4,  8   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
    -;  V07 tmp5         [V07,T01] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.ContextCallback>
    -;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
    -;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
    -;  V10 tmp8         [V10,T02] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.Task+<>c>
    -;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    "field V01._source (fldOffset=0x0)" P-INDEP
    -;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    "field V08._source (fldOffset=0x0)" P-INDEP
    -;
    -; Lcl frame size = 8
    -
    -G_M24944_IG01:
    -       push     rbp
    -       push     rbx
    -       push     rax
    -       lea      rbp, [rsp+0x10]
    -						;; size=8 bbWeight=1 PerfScore 3.50
    -G_M24944_IG02:
    -       mov      rdi, 0xD1FFAB1E      ; System.Object
    -       call     CORINFO_HELP_NEWSFAST
    -       mov      rsi, rax
    -       mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task:s_taskCompletionSentinel
    -       call     CORINFO_HELP_ASSIGN_REF
    -       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.TaskFactory
    -       call     CORINFO_HELP_NEWSFAST
    -       mov      rsi, rax
    -       mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task:<Factory>k__BackingField
    -       call     CORINFO_HELP_ASSIGN_REF
    ... diff truncated; middle omitted ...
    +       call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
    +       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
            call     CORINFO_HELP_NEWSFAST
            mov      rbx, rax
    -       mov      rdi, 0xD1FFAB1E      ; global ptr
    -       test     byte  ptr [rdi], 1
    -       je       SHORT G_M24944_IG05
    -						;; size=143 bbWeight=1 PerfScore 15.00
    -G_M24944_IG03:
    -       mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task+<>c:<>9
    -       mov      rsi, gword ptr [rdi]
    -       test     rsi, rsi
    -       je       SHORT G_M24944_IG06
    -       lea      rdi, bword ptr [rbx+0x10]
    -       call     CORINFO_HELP_ASSIGN_REF
    -       mov      rdi, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task+<>c:<.cctor>b__302_0(System.Object):this
    -       mov      qword ptr [rbx+0x18], rdi
    -       mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task:s_ecCallback
    -       mov      rsi, rbx
    -       call     CORINFO_HELP_ASSIGN_REF
    -       nop      
    -						;; size=60 bbWeight=1 PerfScore 8.00
    -G_M24944_IG04:
    -       add      rsp, 8
    +       lea      rdi, [rbp-0x40]
    +       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
    +       call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
    +       mov      rsi, rax
    +       mov      rdi, rbx
    +       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this
    +       call     [rax]System.InvalidOperationException:.ctor(System.String):this
    +       mov      rdi, rbx
    +       call     CORINFO_HELP_THROW
    +       int3     
    +						;; size=80 bbWeight=0 PerfScore 0.00
    +G_M16151_IG09:
    +       vzeroupper 
    +       add      rsp, 96
            pop      rbx
    +       pop      r15
            pop      rbp
            ret      
    -						;; size=7 bbWeight=1 PerfScore 2.25
    -G_M24944_IG05:
    -       mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task+<>c
    -       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
    -       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
    -       jmp      SHORT G_M24944_IG03
    -						;; size=24 bbWeight=0 PerfScore 0.00
    -G_M24944_IG06:
    -       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()
    -       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()
    -       int3     
    -						;; size=13 bbWeight=0 PerfScore 0.00
    +						;; size=12 bbWeight=0 PerfScore 0.00
    +G_M16151_IG10:
    +       push     rax
    +						;; size=1 bbWeight=0 PerfScore 0.00
    +G_M16151_IG11:
    +       mov      rbx, rdi
    +       mov      rdi, rbx
    +       mov      rax, qword ptr [rbx]
    +       mov      rax, qword ptr [rax+0x40]
    +       call     [rax+0x08]System.Object:ToString():System.String:this
    +       mov      rsi, rax
    +       mov      rdi, 0xD1FFAB1E      ; 'Exception thrown from PollThread event loop: '
    +       mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String):System.String
    +       call     [rax]System.String:Concat(System.String,System.String):System.String
    +       mov      rdi, rax
    +       mov      rsi, rbx
    +       mov      rax, 0xD1FFAB1E      ; code for System.Environment:FailFast(System.String,System.Exception)
    +       call     [rax]System.Environment:FailFast(System.String,System.Exception)
    +       lea      rax, G_M16151_IG09
    +						;; size=66 bbWeight=0 PerfScore 0.00
    +G_M16151_IG12:
    +       vzeroupper 
    +       add      rsp, 8
    +       ret      
    +						;; size=8 bbWeight=0 PerfScore 0.00
    +RWD00  	dq	00780065006E0055h, 0074006300650070h, 0065002000640065h, 0072006F00720072h
     
    -; Total bytes of code 255, prolog size 8, PerfScore 28.75, instruction count 50, allocated bytes for code 255 (MethodHash=4fb39e8f) for method System.Threading.Tasks.Task:.cctor() (FullOpts)
    +
    +; Total bytes of code 418, prolog size 41, PerfScore 132.58, instruction count 102, allocated bytes for code 418 (MethodHash=1a60c0e8) for method System.Threading.PollThread:EventLoop():this (FullOpts)
     ; ============================================================

    Note: this example has reduced context or was truncated by the runner.

    System.Data.Entity.Core.Mapping.ViewGeneration.Structures.NegatedConstant+<>c__DisplayClass17_0:<ToStringHelper>b__0():this (FullOpts) (93 -> 96 bytes (+3))

    Assembly: EntityFramework.dasm

    @@ -1,59 +1,61 @@
     ; Assembly listing for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.NegatedConstant+<>c__DisplayClass17_0:<ToStringHelper>b__0():this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Data.Entity.Core.Mapping.ViewGeneration.Structures.NegatedConstant+<>c__DisplayClass17_0>
     ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V02 tmp1         [V02,T00] (  5,  8   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
    -;  V03 tmp2         [V03,T04] (  3,  2.50)     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V04 tmp3         [V04,T02] (  4,  3   )     int  ->  r15         "Inline stloc first use temp"
    -;  V05 tmp4         [V05,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V03 tmp2         [V03,T03] (  3,  2.50)     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V04 tmp3         [V04,T04] (  3,  2.50)     int  ->  r15         "Inline stloc first use temp"
    +;  V05 tmp4         [V05,T02] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V06 tmp5         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 rat0         [V07,T05] (  2,  2   )   byref  ->  rax         "fgMakeTemp is creating a new local variable"
    +;  V07 cse0         [V07,T05] (  3,  2.50)     int  ->  r14         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M10478_IG01:
            push     rbp
            push     r15
    +       push     r14
            push     rbx
    -       lea      rbp, [rsp+0x10]
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +       push     rax
    +       lea      rbp, [rsp+0x20]
    +						;; size=12 bbWeight=1 PerfScore 5.50
     G_M10478_IG02:
            mov      rdi, gword ptr [rdi+0x08]
            mov      rsi, 0xD1FFAB1E
            mov      rbx, gword ptr [rdi+0x08]
            mov      r15d, dword ptr [rdi+0x18]
    -       lea      edx, [r15+0x04]
    -       cmp      dword ptr [rbx+0x08], edx
    +       lea      r14d, [r15+0x04]
    +       cmp      dword ptr [rbx+0x08], r14d
            jae      SHORT G_M10478_IG04
    -						;; size=31 bbWeight=1 PerfScore 9.75
    +						;; size=32 bbWeight=1 PerfScore 9.75
     G_M10478_IG03:
            mov      edx, 4
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M10478_IG05
     						;; size=19 bbWeight=0.50 PerfScore 2.75
     G_M10478_IG04:
            movsxd   rax, r15d
    -       lea      rax, bword ptr [rbx+2*rax+0x10]
            mov      rcx, 0xD1FFAB1E
    -       mov      qword ptr [rax], rcx
    -       add      r15d, 4
    -       mov      dword ptr [rdi+0x18], r15d
    -						;; size=29 bbWeight=0.50 PerfScore 1.88
    +       mov      qword ptr [rbx+2*rax+0x10], rcx
    +       mov      dword ptr [rdi+0x18], r14d
    +						;; size=22 bbWeight=0.50 PerfScore 1.25
     G_M10478_IG05:
    +       add      rsp, 8
            pop      rbx
    +       pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=5 bbWeight=1 PerfScore 2.50
    +						;; size=11 bbWeight=1 PerfScore 3.25
     
    -; Total bytes of code 93, prolog size 9, PerfScore 20.38, instruction count 25, allocated bytes for code 93 (MethodHash=5eb0d711) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.NegatedConstant+<>c__DisplayClass17_0:<ToStringHelper>b__0():this (FullOpts)
    +; Total bytes of code 96, prolog size 12, PerfScore 22.50, instruction count 27, allocated bytes for code 96 (MethodHash=5eb0d711) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.NegatedConstant+<>c__DisplayClass17_0:<ToStringHelper>b__0():this (FullOpts)
     ; ============================================================
    System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant+NullConstant:ToCompactString(System.Text.StringBuilder):this (FullOpts) (95 -> 98 bytes (+3))

    Assembly: EntityFramework.dasm

    @@ -1,60 +1,62 @@
     ; Assembly listing for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant+NullConstant:ToCompactString(System.Text.StringBuilder):this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant+NullConstant>
     ;  V01 arg1         [V01,T00] (  6,  5   )     ref  ->  rsi         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
    -;  V03 tmp1         [V03,T03] (  3,  2.50)     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V04 tmp2         [V04,T01] (  4,  3   )     int  ->  r15         "Inline stloc first use temp"
    -;  V05 tmp3         [V05,T02] (  2,  3   )   byref  ->  rdx         single-def "Inlining Arg"
    +;  V03 tmp1         [V03,T02] (  3,  2.50)     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V04 tmp2         [V04,T03] (  3,  2.50)     int  ->  r15         "Inline stloc first use temp"
    +;  V05 tmp3         [V05,T01] (  2,  3   )   byref  ->  rdx         single-def "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 rat0         [V07,T04] (  2,  2   )   byref  ->  rax         "fgMakeTemp is creating a new local variable"
    +;  V07 cse0         [V07,T04] (  3,  2.50)     int  ->  r14         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M16242_IG01:
            push     rbp
            push     r15
    +       push     r14
            push     rbx
    -       lea      rbp, [rsp+0x10]
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +       push     rax
    +       lea      rbp, [rsp+0x20]
    +						;; size=12 bbWeight=1 PerfScore 5.50
     G_M16242_IG02:
            mov      rdx, 0xD1FFAB1E
            mov      rbx, gword ptr [rsi+0x08]
            mov      r15d, dword ptr [rsi+0x18]
    -       lea      edi, [r15+0x04]
    -       cmp      dword ptr [rbx+0x08], edi
    +       lea      r14d, [r15+0x04]
    +       cmp      dword ptr [rbx+0x08], r14d
            jae      SHORT G_M16242_IG04
    -						;; size=27 bbWeight=1 PerfScore 7.75
    +						;; size=28 bbWeight=1 PerfScore 7.75
     G_M16242_IG03:
            mov      rdi, rsi
            mov      rsi, rdx
            mov      edx, 4
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M16242_IG05
     						;; size=25 bbWeight=0.50 PerfScore 3.00
     G_M16242_IG04:
            movsxd   rax, r15d
    -       lea      rax, bword ptr [rbx+2*rax+0x10]
            mov      rcx, 0xD1FFAB1E
    -       mov      qword ptr [rax], rcx
    -       add      r15d, 4
    -       mov      dword ptr [rsi+0x18], r15d
    -						;; size=29 bbWeight=0.50 PerfScore 1.88
    +       mov      qword ptr [rbx+2*rax+0x10], rcx
    +       mov      dword ptr [rsi+0x18], r14d
    +						;; size=22 bbWeight=0.50 PerfScore 1.25
     G_M16242_IG05:
    +       add      rsp, 8
            pop      rbx
    +       pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=5 bbWeight=1 PerfScore 2.50
    +						;; size=11 bbWeight=1 PerfScore 3.25
     
    -; Total bytes of code 95, prolog size 9, PerfScore 18.62, instruction count 26, allocated bytes for code 95 (MethodHash=a934c08d) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant+NullConstant:ToCompactString(System.Text.StringBuilder):this (FullOpts)
    +; Total bytes of code 98, prolog size 12, PerfScore 20.75, instruction count 28, allocated bytes for code 98 (MethodHash=a934c08d) for method System.Data.Entity.Core.Mapping.ViewGeneration.Structures.Constant+NullConstant:ToCompactString(System.Text.StringBuilder):this (FullOpts)
     ; ============================================================
    DotNet.Testcontainers.Builders.DirectoryPath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (141 -> 144 bytes (+3))

    Assembly: Testcontainers.dasm

    @@ -1,84 +1,86 @@
     ; Assembly listing for method DotNet.Testcontainers.Builders.DirectoryPath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )   byref  ->  r15         this single-def
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
    -;  V03 tmp1         [V03,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V04 tmp2         [V04,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V05 tmp3         [V05,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V03 tmp1         [V03,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V04 tmp2         [V04,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V05 tmp3         [V05,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V08 tmp6         [V08,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V09 rat0         [V09,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V09 cse0         [V09,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M36365_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M36365_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M36365_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M36365_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M36365_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M36365_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M36365_IG05:
            mov      rsi, gword ptr [r15]
            test     rsi, rsi
            je       SHORT G_M36365_IG07
     						;; size=8 bbWeight=1 PerfScore 3.25
     G_M36365_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M36365_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M36365_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 141, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 141 (MethodHash=a59c71f2) for method DotNet.Testcontainers.Builders.DirectoryPath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 144, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 144 (MethodHash=a59c71f2) for method DotNet.Testcontainers.Builders.DirectoryPath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    DotNet.Testcontainers.Builders.FilePath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (141 -> 144 bytes (+3))

    Assembly: Testcontainers.dasm

    @@ -1,84 +1,86 @@
     ; Assembly listing for method DotNet.Testcontainers.Builders.FilePath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )   byref  ->  r15         this single-def
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
    -;  V03 tmp1         [V03,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V04 tmp2         [V04,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V05 tmp3         [V05,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V03 tmp1         [V03,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V04 tmp2         [V04,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V05 tmp3         [V05,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V08 tmp6         [V08,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V09 rat0         [V09,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V09 cse0         [V09,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M23746_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M23746_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M23746_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M23746_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M23746_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M23746_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M23746_IG05:
            mov      rsi, gword ptr [r15]
            test     rsi, rsi
            je       SHORT G_M23746_IG07
     						;; size=8 bbWeight=1 PerfScore 3.25
     G_M23746_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M23746_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M23746_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 141, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 141 (MethodHash=a234a33d) for method DotNet.Testcontainers.Builders.FilePath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 144, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 144 (MethodHash=a234a33d) for method DotNet.Testcontainers.Builders.FilePath:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    DotNet.Testcontainers.Configurations.AccessMode:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (141 -> 144 bytes (+3))

    Assembly: Testcontainers.dasm

    @@ -1,84 +1,86 @@
     ; Assembly listing for method DotNet.Testcontainers.Configurations.AccessMode:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )   byref  ->  r15         this single-def
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
    -;  V03 tmp1         [V03,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V04 tmp2         [V04,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V05 tmp3         [V05,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V03 tmp1         [V03,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V04 tmp2         [V04,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V05 tmp3         [V05,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V08 tmp6         [V08,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V09 rat0         [V09,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V09 cse0         [V09,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M511_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M511_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M511_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M511_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M511_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M511_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M511_IG05:
            mov      rsi, gword ptr [r15]
            test     rsi, rsi
            je       SHORT G_M511_IG07
     						;; size=8 bbWeight=1 PerfScore 3.25
     G_M511_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M511_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M511_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 141, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 141 (MethodHash=3134fe00) for method DotNet.Testcontainers.Configurations.AccessMode:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 144, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 144 (MethodHash=3134fe00) for method DotNet.Testcontainers.Configurations.AccessMode:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    OpenQA.Selenium.BiDi.BrowsingContext.CssLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (142 -> 145 bytes (+3))

    Assembly: Selenium.WebDriver.dasm

    @@ -1,88 +1,90 @@
     ; Assembly listing for method OpenQA.Selenium.BiDi.BrowsingContext.CssLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 6 single block inlinees; 6 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  r15         this class-hnd single-def <OpenQA.Selenium.BiDi.BrowsingContext.CssLocator>
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <char[]>
     ;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
     ;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 tmp5         [V07,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V08 tmp6         [V08,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V09 tmp7         [V09,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V07 tmp5         [V07,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V08 tmp6         [V08,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V09 tmp7         [V09,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V12 tmp10        [V12,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V13 rat0         [V13,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V13 cse0         [V13,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M41914_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M41914_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M41914_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M41914_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M41914_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M41914_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M41914_IG05:
            mov      rsi, gword ptr [r15+0x08]
            test     rsi, rsi
            je       SHORT G_M41914_IG07
     						;; size=9 bbWeight=1 PerfScore 3.25
     G_M41914_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M41914_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M41914_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 142, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 142 (MethodHash=ac255c45) for method OpenQA.Selenium.BiDi.BrowsingContext.CssLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 145, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 145 (MethodHash=ac255c45) for method OpenQA.Selenium.BiDi.BrowsingContext.CssLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    OpenQA.Selenium.BiDi.BrowsingContext.XPathLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (142 -> 145 bytes (+3))

    Assembly: Selenium.WebDriver.dasm

    @@ -1,88 +1,90 @@
     ; Assembly listing for method OpenQA.Selenium.BiDi.BrowsingContext.XPathLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 6 single block inlinees; 6 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  r15         this class-hnd single-def <OpenQA.Selenium.BiDi.BrowsingContext.XPathLocator>
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <char[]>
     ;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
     ;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 tmp5         [V07,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V08 tmp6         [V08,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V09 tmp7         [V09,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V07 tmp5         [V07,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V08 tmp6         [V08,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V09 tmp7         [V09,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V12 tmp10        [V12,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V13 rat0         [V13,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V13 cse0         [V13,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M7596_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M7596_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M7596_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M7596_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M7596_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M7596_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M7596_IG05:
            mov      rsi, gword ptr [r15+0x08]
            test     rsi, rsi
            je       SHORT G_M7596_IG07
     						;; size=9 bbWeight=1 PerfScore 3.25
     G_M7596_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M7596_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M7596_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 142, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 142 (MethodHash=27a5e253) for method OpenQA.Selenium.BiDi.BrowsingContext.XPathLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 145, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 145 (MethodHash=27a5e253) for method OpenQA.Selenium.BiDi.BrowsingContext.XPathLocator:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    OpenQA.Selenium.BiDi.Network.StringBytesValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (142 -> 145 bytes (+3))

    Assembly: Selenium.WebDriver.dasm

    @@ -1,88 +1,90 @@
     ; Assembly listing for method OpenQA.Selenium.BiDi.Network.StringBytesValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 6 single block inlinees; 6 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  r15         this class-hnd single-def <OpenQA.Selenium.BiDi.Network.StringBytesValue>
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <char[]>
     ;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
     ;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 tmp5         [V07,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V08 tmp6         [V08,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V09 tmp7         [V09,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V07 tmp5         [V07,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V08 tmp6         [V08,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V09 tmp7         [V09,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V12 tmp10        [V12,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V13 rat0         [V13,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V13 cse0         [V13,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M37004_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M37004_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M37004_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M37004_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M37004_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M37004_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M37004_IG05:
            mov      rsi, gword ptr [r15+0x08]
            test     rsi, rsi
            je       SHORT G_M37004_IG07
     						;; size=9 bbWeight=1 PerfScore 3.25
     G_M37004_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M37004_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M37004_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 142, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 142 (MethodHash=87e36f73) for method OpenQA.Selenium.BiDi.Network.StringBytesValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 145, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 145 (MethodHash=87e36f73) for method OpenQA.Selenium.BiDi.Network.StringBytesValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    OpenQA.Selenium.BiDi.Script.BigIntLocalValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (142 -> 145 bytes (+3))

    Assembly: Selenium.WebDriver.dasm

    @@ -1,88 +1,90 @@
     ; Assembly listing for method OpenQA.Selenium.BiDi.Script.BigIntLocalValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 7 single block inlinees; 6 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  r15         this class-hnd single-def <OpenQA.Selenium.BiDi.Script.BigIntLocalValue>
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <char[]>
     ;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
     ;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 tmp5         [V07,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V08 tmp6         [V08,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V09 tmp7         [V09,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V07 tmp5         [V07,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V08 tmp6         [V08,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V09 tmp7         [V09,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V12 tmp10        [V12,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V13 rat0         [V13,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V13 cse0         [V13,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M12131_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M12131_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M12131_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M12131_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M12131_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M12131_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M12131_IG05:
            mov      rsi, gword ptr [r15+0x08]
            test     rsi, rsi
            je       SHORT G_M12131_IG07
     						;; size=9 bbWeight=1 PerfScore 3.25
     G_M12131_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M12131_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M12131_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 142, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 142 (MethodHash=ff77d09c) for method OpenQA.Selenium.BiDi.Script.BigIntLocalValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 145, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 145 (MethodHash=ff77d09c) for method OpenQA.Selenium.BiDi.Script.BigIntLocalValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================
    OpenQA.Selenium.BiDi.Script.BigIntRemoteValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts) (142 -> 145 bytes (+3))

    Assembly: Selenium.WebDriver.dasm

    @@ -1,88 +1,90 @@
     ; Assembly listing for method OpenQA.Selenium.BiDi.Script.BigIntRemoteValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 7 single block inlinees; 6 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  r15         this class-hnd single-def <OpenQA.Selenium.BiDi.Script.BigIntRemoteValue>
     ;  V01 arg1         [V01,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <char[]>
     ;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
     ;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V06 tmp4         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V07 tmp5         [V07,T05] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V08 tmp6         [V08,T03] (  4,  3   )     int  ->  r13         "Inline stloc first use temp"
    -;  V09 tmp7         [V09,T04] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V07 tmp5         [V07,T04] (  3,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V08 tmp6         [V08,T05] (  3,  2.50)     int  ->  r13         "Inline stloc first use temp"
    +;  V09 tmp7         [V09,T03] (  2,  3   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
     ;  V12 tmp10        [V12,T01] (  4,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
    -;  V13 rat0         [V13,T06] (  2,  2   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    +;  V13 cse0         [V13,T06] (  3,  2.50)     int  ->  r12         "CSE #01: aggressive"
     ;
    -; Lcl frame size = 0
    +; Lcl frame size = 8
     
     G_M64810_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
    +       push     r12
            push     rbx
    -       lea      rbp, [rsp+0x20]
    +       push     rax
    +       lea      rbp, [rsp+0x30]
            mov      r15, rdi
            mov      rbx, rsi
    -						;; size=19 bbWeight=1 PerfScore 6.00
    +						;; size=22 bbWeight=1 PerfScore 8.00
     G_M64810_IG02:
            mov      rsi, 0xD1FFAB1E
            mov      r14, gword ptr [rbx+0x08]
            mov      r13d, dword ptr [rbx+0x18]
    -       lea      edi, [r13+0x08]
    -       cmp      dword ptr [r14+0x08], edi
    +       lea      r12d, [r13+0x08]
    +       cmp      dword ptr [r14+0x08], r12d
            jae      SHORT G_M64810_IG04
     						;; size=28 bbWeight=1 PerfScore 7.75
     G_M64810_IG03:
            mov      rdi, rbx
            mov      edx, 8
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            call     [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
            jmp      SHORT G_M64810_IG05
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M64810_IG04:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
    -       vmovups  xmmword ptr [rdx], xmm0
    -       add      r13d, 8
    -       mov      dword ptr [rbx+0x18], r13d
    -						;; size=28 bbWeight=0.50 PerfScore 2.25
    +       vmovups  xmmword ptr [r14+2*rdx+0x10], xmm0
    +       mov      dword ptr [rbx+0x18], r12d
    +						;; size=22 bbWeight=0.50 PerfScore 1.62
     G_M64810_IG05:
            mov      rsi, gword ptr [r15+0x08]
            test     rsi, rsi
            je       SHORT G_M64810_IG07
     						;; size=9 bbWeight=1 PerfScore 3.25
     G_M64810_IG06:
            mov      edx, dword ptr [rsi+0x08]
            add      rsi, 12
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(byref,int):this
            call     [rax]System.Text.StringBuilder:Append(byref,int):this
     						;; size=22 bbWeight=0.50 PerfScore 2.88
     G_M64810_IG07:
            mov      eax, 1
     						;; size=5 bbWeight=1 PerfScore 0.25
     G_M64810_IG08:
    +       add      rsp, 8
            pop      rbx
    +       pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
    -						;; size=9 bbWeight=1 PerfScore 3.50
    +						;; size=15 bbWeight=1 PerfScore 4.25
     RWD00  	dq	0075006C00610056h, 0020003D00200065h
     
     
    -; Total bytes of code 142, prolog size 13, PerfScore 28.75, instruction count 40, allocated bytes for code 142 (MethodHash=f92802d5) for method OpenQA.Selenium.BiDi.Script.BigIntRemoteValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
    +; Total bytes of code 145, prolog size 16, PerfScore 30.88, instruction count 42, allocated bytes for code 145 (MethodHash=f92802d5) for method OpenQA.Selenium.BiDi.Script.BigIntRemoteValue:PrintMembers(System.Text.StringBuilder):bool:this (FullOpts)
     ; ============================================================

    Showing 11 of 26 reported examples in this category.

    Browse all JIT diff results and examples

  2. MihuBot commented on Oct 19, 2026

    @MihuBot
    OwnerAuthor

    JIT diff improvements

    System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts) (10 -> 5 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M7899_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M7899_IG02:
            mov      eax, dword ptr [rsi]
            mov      dword ptr [rdi], eax
     						;; size=4 bbWeight=1 PerfScore 3.00
     G_M7899_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 10, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 10 (MethodHash=689de124) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 5, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 5 (MethodHash=689de124) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts) (10 -> 5 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M6880_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M6880_IG02:
            mov      eax, dword ptr [rdi]
            mov      dword ptr [rsi], eax
     						;; size=4 bbWeight=1 PerfScore 3.00
     G_M6880_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 10, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 10 (MethodHash=baebe51f) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 5, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 5 (MethodHash=baebe51f) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[int]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.StructureMarshaler`1[int]:ConvertToManaged(byref,ptr,byref) (FullOpts) (10 -> 5 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.StructureMarshaler`1[int]:ConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M58768_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M58768_IG02:
            mov      eax, dword ptr [rsi]
            mov      dword ptr [rdi], eax
     						;; size=4 bbWeight=1 PerfScore 3.00
     G_M58768_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 10, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 10 (MethodHash=79ed1a6f) for method System.StubHelpers.StructureMarshaler`1[int]:ConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 5, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 5 (MethodHash=79ed1a6f) for method System.StubHelpers.StructureMarshaler`1[int]:ConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.StructureMarshaler`1[int]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts) (10 -> 5 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.StructureMarshaler`1[int]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M24080_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M24080_IG02:
            mov      eax, dword ptr [rdi]
            mov      dword ptr [rsi], eax
     						;; size=4 bbWeight=1 PerfScore 3.00
     G_M24080_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 10, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 10 (MethodHash=6115a1ef) for method System.StubHelpers.StructureMarshaler`1[int]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 5, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 5 (MethodHash=6115a1ef) for method System.StubHelpers.StructureMarshaler`1[int]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.StructureMarshaler`1[int]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts) (10 -> 5 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.StructureMarshaler`1[int]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M51567_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M51567_IG02:
            mov      eax, dword ptr [rsi]
            mov      dword ptr [rdi], eax
     						;; size=4 bbWeight=1 PerfScore 3.00
     G_M51567_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 10, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 10 (MethodHash=15083690) for method System.StubHelpers.StructureMarshaler`1[int]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts)
    +; Total bytes of code 5, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 5 (MethodHash=15083690) for method System.StubHelpers.StructureMarshaler`1[int]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts)
     ; ============================================================
    System.StubHelpers.BoxedLayoutTypeMarshaler`1[int]:ConvertToManaged(System.Object,ptr,byref) (FullOpts) (17 -> 9 bytes (-8))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,36 +1,33 @@
     ; Assembly listing for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[int]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rdi         ld-addr-op class-hnd single-def <System.Object>
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
     ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Runtime.CompilerServices.RawData>
     ;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M47655_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M47655_IG02:
            cmp      byte  ptr [rdi], dil
    -       add      rdi, 8
            mov      eax, dword ptr [rsi]
    -       mov      dword ptr [rdi], eax
    -						;; size=11 bbWeight=1 PerfScore 5.25
    +       mov      dword ptr [rdi+0x08], eax
    +						;; size=8 bbWeight=1 PerfScore 5.00
     G_M47655_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 17, prolog size 1, PerfScore 7.50, instruction count 7, allocated bytes for code 17 (MethodHash=06e645d8) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[int]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
    +; Total bytes of code 9, prolog size 0, PerfScore 6.00, instruction count 4, allocated bytes for code 9 (MethodHash=06e645d8) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[int]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts) (11 -> 6 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M13890_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M13890_IG02:
            movzx    rax, byte  ptr [rsi]
            mov      byte  ptr [rdi], al
     						;; size=5 bbWeight=1 PerfScore 3.00
     G_M13890_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 11, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 11 (MethodHash=f0f8c9bd) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 6, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 6 (MethodHash=f0f8c9bd) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts) (11 -> 6 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M29497_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M29497_IG02:
            movzx    rax, byte  ptr [rdi]
            mov      byte  ptr [rsi], al
     						;; size=5 bbWeight=1 PerfScore 3.00
     G_M29497_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 11, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 11 (MethodHash=f86f8cc6) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 6, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 6 (MethodHash=f86f8cc6) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[byte]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.StructureMarshaler`1[byte]:ConvertToManaged(byref,ptr,byref) (FullOpts) (11 -> 6 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.StructureMarshaler`1[byte]:ConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M15081_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M15081_IG02:
            movzx    rax, byte  ptr [rsi]
            mov      byte  ptr [rdi], al
     						;; size=5 bbWeight=1 PerfScore 3.00
     G_M15081_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 11, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 11 (MethodHash=c04ac516) for method System.StubHelpers.StructureMarshaler`1[byte]:ConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 6, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 6 (MethodHash=c04ac516) for method System.StubHelpers.StructureMarshaler`1[byte]:ConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.StructureMarshaler`1[byte]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts) (11 -> 6 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.StructureMarshaler`1[byte]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M60649_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M60649_IG02:
            movzx    rax, byte  ptr [rdi]
            mov      byte  ptr [rsi], al
     						;; size=5 bbWeight=1 PerfScore 3.00
     G_M60649_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 11, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 11 (MethodHash=728c1316) for method System.StubHelpers.StructureMarshaler`1[byte]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 6, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 6 (MethodHash=728c1316) for method System.StubHelpers.StructureMarshaler`1[byte]:ConvertToUnmanagedCore(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.StructureMarshaler`1[byte]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts) (11 -> 6 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.StructureMarshaler`1[byte]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M49750_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M49750_IG02:
            movzx    rax, byte  ptr [rsi]
            mov      byte  ptr [rdi], al
     						;; size=5 bbWeight=1 PerfScore 3.00
     G_M49750_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 11, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 11 (MethodHash=533c3da9) for method System.StubHelpers.StructureMarshaler`1[byte]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts)
    +; Total bytes of code 6, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 6 (MethodHash=533c3da9) for method System.StubHelpers.StructureMarshaler`1[byte]:System.StubHelpers.IArrayElementMarshaler<T,System.StubHelpers.StructureMarshaler<T>>.ConvertToManaged(byref,ptr) (FullOpts)
     ; ============================================================
    System.StubHelpers.BoxedLayoutTypeMarshaler`1[byte]:ConvertToManaged(System.Object,ptr,byref) (FullOpts) (18 -> 10 bytes (-8))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,36 +1,33 @@
     ; Assembly listing for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[byte]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rdi         ld-addr-op class-hnd single-def <System.Object>
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
     ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Runtime.CompilerServices.RawData>
     ;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M27902_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M27902_IG02:
            cmp      byte  ptr [rdi], dil
    -       add      rdi, 8
            movzx    rax, byte  ptr [rsi]
    -       mov      byte  ptr [rdi], al
    -						;; size=12 bbWeight=1 PerfScore 5.25
    +       mov      byte  ptr [rdi+0x08], al
    +						;; size=9 bbWeight=1 PerfScore 5.00
     G_M27902_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 18, prolog size 1, PerfScore 7.50, instruction count 7, allocated bytes for code 18 (MethodHash=d0ea9301) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[byte]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
    +; Total bytes of code 10, prolog size 0, PerfScore 6.00, instruction count 4, allocated bytes for code 10 (MethodHash=d0ea9301) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[byte]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.BoxedLayoutTypeMarshaler`1[double]:ConvertToManaged(System.Object,ptr,byref) (FullOpts) (19 -> 11 bytes (-8))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,36 +1,33 @@
     ; Assembly listing for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[double]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rdi         ld-addr-op class-hnd single-def <System.Object>
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
     ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Runtime.CompilerServices.RawData>
     ;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M5537_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M5537_IG02:
            cmp      byte  ptr [rdi], dil
    -       add      rdi, 8
            mov      rax, qword ptr [rsi]
    -       mov      qword ptr [rdi], rax
    -						;; size=13 bbWeight=1 PerfScore 5.25
    +       mov      qword ptr [rdi+0x08], rax
    +						;; size=10 bbWeight=1 PerfScore 5.00
     G_M5537_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 19, prolog size 1, PerfScore 7.50, instruction count 7, allocated bytes for code 19 (MethodHash=3e8dea5e) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[double]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
    +; Total bytes of code 11, prolog size 0, PerfScore 6.00, instruction count 4, allocated bytes for code 11 (MethodHash=3e8dea5e) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[double]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.BoxedLayoutTypeMarshaler`1[long]:ConvertToManaged(System.Object,ptr,byref) (FullOpts) (19 -> 11 bytes (-8))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,36 +1,33 @@
     ; Assembly listing for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[long]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rdi         ld-addr-op class-hnd single-def <System.Object>
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
     ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Runtime.CompilerServices.RawData>
     ;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M20222_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M20222_IG02:
            cmp      byte  ptr [rdi], dil
    -       add      rdi, 8
            mov      rax, qword ptr [rsi]
    -       mov      qword ptr [rdi], rax
    -						;; size=13 bbWeight=1 PerfScore 5.25
    +       mov      qword ptr [rdi+0x08], rax
    +						;; size=10 bbWeight=1 PerfScore 5.00
     G_M20222_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 19, prolog size 1, PerfScore 7.50, instruction count 7, allocated bytes for code 19 (MethodHash=5260b101) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[long]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
    +; Total bytes of code 11, prolog size 0, PerfScore 6.00, instruction count 4, allocated bytes for code 11 (MethodHash=5260b101) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[long]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.BoxedLayoutTypeMarshaler`1[short]:ConvertToManaged(System.Object,ptr,byref) (FullOpts) (19 -> 11 bytes (-8))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,36 +1,33 @@
     ; Assembly listing for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[short]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rdi         ld-addr-op class-hnd single-def <System.Object>
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
     ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Runtime.CompilerServices.RawData>
     ;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M27014_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M27014_IG02:
            cmp      byte  ptr [rdi], dil
    -       add      rdi, 8
            movzx    rax, word  ptr [rsi]
    -       mov      word  ptr [rdi], ax
    -						;; size=13 bbWeight=1 PerfScore 5.25
    +       mov      word  ptr [rdi+0x08], ax
    +						;; size=10 bbWeight=1 PerfScore 5.00
     G_M27014_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 19, prolog size 1, PerfScore 7.50, instruction count 7, allocated bytes for code 19 (MethodHash=c5bf9679) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[short]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
    +; Total bytes of code 11, prolog size 0, PerfScore 6.00, instruction count 4, allocated bytes for code 11 (MethodHash=c5bf9679) for method System.StubHelpers.BoxedLayoutTypeMarshaler`1[short]:ConvertToManaged(System.Object,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts) (12 -> 7 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M22646_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M22646_IG02:
            mov      rax, qword ptr [rsi]
            mov      qword ptr [rdi], rax
     						;; size=6 bbWeight=1 PerfScore 3.00
     G_M22646_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 12, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 12 (MethodHash=ced1a789) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 7, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 7 (MethodHash=ced1a789) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts) (12 -> 7 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M49229_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M49229_IG02:
            mov      rax, qword ptr [rdi]
            mov      qword ptr [rsi], rax
     						;; size=6 bbWeight=1 PerfScore 3.00
     G_M49229_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 12, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 12 (MethodHash=25383fb2) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 7, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 7 (MethodHash=25383fb2) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[System.Nullable`1[int]]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts) (12 -> 7 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M34685_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M34685_IG02:
            mov      rax, qword ptr [rsi]
            mov      qword ptr [rdi], rax
     						;; size=6 bbWeight=1 PerfScore 3.00
     G_M34685_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 12, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 12 (MethodHash=2c2c7882) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 7, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 7 (MethodHash=2c2c7882) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts) (12 -> 7 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M1926_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M1926_IG02:
            mov      rax, qword ptr [rdi]
            mov      qword ptr [rsi], rax
     						;; size=6 bbWeight=1 PerfScore 3.00
     G_M1926_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 12, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 12 (MethodHash=c142f879) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 7, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 7 (MethodHash=c142f879) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[double]:BlittableConvertToUnmanaged(byref,ptr,byref) (FullOpts)
     ; ============================================================
    System.StubHelpers.LayoutClassMarshaler`1+Methods[long]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts) (12 -> 7 bytes (-5))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,30 +1,28 @@
     ; Assembly listing for method System.StubHelpers.LayoutClassMarshaler`1+Methods[long]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  3,  3   )   byref  ->  rdi         single-def
     ;  V01 arg1         [V01,T01] (  3,  3   )    long  ->  rsi         single-def
     ;* V02 arg2         [V02    ] (  0,  0   )   byref  ->  zero-ref    single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;
    -; Lcl frame size = 8
    +; Lcl frame size = 0
     
     G_M38722_IG01:
    -       push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    +						;; size=0 bbWeight=1 PerfScore 0.00
     G_M38722_IG02:
            mov      rax, qword ptr [rsi]
            mov      qword ptr [rdi], rax
     						;; size=6 bbWeight=1 PerfScore 3.00
     G_M38722_IG03:
    -       add      rsp, 8
            ret      
    -						;; size=5 bbWeight=1 PerfScore 1.25
    +						;; size=1 bbWeight=1 PerfScore 1.00
     
    -; Total bytes of code 12, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 12 (MethodHash=676468bd) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[long]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
    +; Total bytes of code 7, prolog size 0, PerfScore 4.00, instruction count 3, allocated bytes for code 7 (MethodHash=676468bd) for method System.StubHelpers.LayoutClassMarshaler`1+Methods[long]:BlittableConvertToManaged(byref,ptr,byref) (FullOpts)
     ; ============================================================

    Showing 20 of 1274 reported examples in this category.

    Browse all JIT diff results and examples

  3. MihuBot commented on Oct 19, 2026

    @MihuBot
    OwnerAuthor

    Same-size JIT changes

    Amazon.S3.Transfer.Internal.MultipartUploadCommand+<UploadPartAsync>d__34:MoveNext():this (FullOpts) (2,009 -> 2,009 bytes (0))

    Assembly: AWSSDK.S3.dasm

    @@ -194,7 +194,7 @@
     ;  V183 cse2        [V183,T14] (  4,  4   )     ref  ->  rsi         "CSE #12: moderate"
     ;  V184 cse3        [V184,T31] (  3,  3   )    long  ->   r9         "CSE #11: moderate"
     ;  V185 cse4        [V185,T26] (  3,  3   )   byref  ->  rdx         "CSE #01: moderate"
    -;  V186 cse5        [V186,T27] (  3,  3   )     ref  ->  rsi         "CSE #20: moderate"
    +;  V186 cse5        [V186,T27] (  3,  3   )     ref  ->  rsi         "CSE #19: moderate"
     ;
     ; Lcl frame size = 152
     

    Note: this example has reduced context or was truncated by the runner.

    AngleSharp.Css.Values.CssScaleValue:get_CssText():System.String:this (FullOpts) (1,240 -> 1,240 bytes (0))

    Assembly: AngleSharp.Css.dasm

    @@ -124,12 +124,12 @@
     ;  V113 tmp111      [V113,T28] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
     ;  V114 tmp112      [V114,T29] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
     ;  V115 tmp113      [V115,T30] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
    -;  V116 cse0        [V116,T38] (  3,  1.50)     ref  ->  r15         "CSE #17: conservative"
    +;  V116 cse0        [V116,T38] (  3,  1.50)     ref  ->  r15         "CSE #16: conservative"
     ;  V117 cse1        [V117,T11] (  5,  3.50)     ref  ->  rdi         "CSE #03: moderate"
     ;  V118 cse2        [V118,T12] (  6,  3   )     ref  ->  rsi         multi-def "CSE #01: moderate"
     ;  V119 cse3        [V119,T15] (  4,  2   )     int  ->  r14         "CSE #08: moderate"
     ;  V120 cse4        [V120,T16] (  4,  2   )     int  ->  r14         "CSE #12: moderate"
    -;  V121 cse5        [V121,T17] (  4,  2   )     int  ->  rbx         "CSE #16: moderate"
    +;  V121 cse5        [V121,T17] (  4,  2   )     int  ->  rbx         "CSE #15: moderate"
     ;
     ; Lcl frame size = 40
     

    Note: this example has reduced context or was truncated by the runner.

    AngleSharp.Css.Priority:ToString():System.String:this (FullOpts) (649 -> 649 bytes (0))

    Assembly: AngleSharp.dasm

    @@ -108,8 +108,8 @@
     ;  V97 cse1         [V97,T14] (  3,  3   )     int  ->  rsi         "CSE #01: moderate"
     ;  V98 cse2         [V98,T15] (  3,  3   )     int  ->  rsi         "CSE #03: moderate"
     ;  V99 cse3         [V99,T16] (  3,  3   )     int  ->  rsi         "CSE #05: moderate"
    -;  V100 cse4        [V100,T17] (  3,  3   )     int  ->  rsi         "CSE #07: moderate"
    -;  V101 cse5        [V101,T18] (  3,  3   )     int  ->  rsi         "CSE #08: moderate"
    +;  V100 cse4        [V100,T17] (  3,  3   )     int  ->  rsi         "CSE #06: moderate"
    +;  V101 cse5        [V101,T18] (  3,  3   )     int  ->  rsi         "CSE #07: moderate"
     ;
     ; Lcl frame size = 40
     

    Note: this example has reduced context or was truncated by the runner.

    AsmResolver.RelocationParameters:ToString():System.String:this (FullOpts) (880 -> 880 bytes (0))

    Assembly: AsmResolver.dasm

    @@ -123,12 +123,12 @@
     ;* V112 tmp110      [V112    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V63._reference (fldOffset=0x0)" P-INDEP
     ;* V113 tmp111      [V113    ] (  0,  0   )     int  ->  zero-ref    single-def "field V63._length (fldOffset=0x8)" P-INDEP
     ;  V114 cse0        [V114,T29] (  5,  2.50)     ref  ->  r14         multi-def "CSE #04: moderate"
    -;  V115 cse1        [V115,T07] (  4,  4   )     ref  ->  r15         "CSE #11: moderate"
    +;  V115 cse1        [V115,T07] (  4,  4   )     ref  ->  r15         "CSE #10: moderate"
     ;  V116 cse2        [V116,T19] (  3,  3   )     int  ->  rsi         "CSE #03: moderate"
     ;  V117 cse3        [V117,T20] (  3,  3   )     int  ->  rsi         "CSE #05: moderate"
     ;  V118 cse4        [V118,T21] (  3,  3   )     int  ->  rsi         "CSE #09: moderate"
    -;  V119 cse5        [V119,T22] (  3,  3   )     int  ->  rsi         "CSE #12: moderate"
    -;  V120 cse6        [V120,T23] (  3,  3   )     int  ->  rsi         "CSE #16: moderate"
    +;  V119 cse5        [V119,T22] (  3,  3   )     int  ->  rsi         "CSE #11: moderate"
    +;  V120 cse6        [V120,T23] (  3,  3   )     int  ->  rsi         "CSE #14: moderate"
     ;
     ; Lcl frame size = 48
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Identity.AzureCliCredential+<RequestCliAccessTokenAsync>d__45:MoveNext():this (FullOpts) (3,144 -> 3,144 bytes (0))

    Assembly: Azure.Core.dasm

    @@ -164,10 +164,10 @@
     ;  V153 tmp132      [V153,T63] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V154 tmp133      [V154,T64] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V155 tmp134      [V155,T65] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
    -;  V156 cse0        [V156,T23] (  3,  3   )     ref  ->  rdi         "CSE #18: moderate"
    -;  V157 cse1        [V157,T24] (  3,  3   )     ref  ->  rdi         "CSE #19: moderate"
    +;  V156 cse0        [V156,T23] (  3,  3   )     ref  ->  rdi         "CSE #17: moderate"
    +;  V157 cse1        [V157,T24] (  3,  3   )     ref  ->  rdi         "CSE #18: moderate"
     ;  V158 cse2        [V158,T25] (  3,  3   )   byref  ->  rax         "CSE #03: moderate"
    -;  V159 cse3        [V159,T26] (  3,  3   )     ref  ->  [rbp-0x168]  spill-single-def "CSE #21: moderate"
    +;  V159 cse3        [V159,T26] (  3,  3   )     ref  ->  [rbp-0x168]  spill-single-def "CSE #20: moderate"
     ;  V160 rat0        [V160,T02] (  5, 10   )   byref  ->  rbx         "ReplaceWithLclVar is creating a new local variable"
     ;
     ; Lcl frame size = 400

    Note: this example has reduced context or was truncated by the runner.

    Azure.Data.AppConfiguration.AuthenticationPolicy:GetAuthorizationHeader(Azure.Core.Request,System.String,System.String):System.String:this (FullOpts) (1,836 -> 1,836 bytes (0))

    Assembly: Azure.Data.AppConfiguration.dasm

    @@ -235,7 +235,7 @@
     ;* V224 tmp212      [V224    ] (  0,  0   )     int  ->  zero-ref    single-def "field V129._length (fldOffset=0x8)" P-INDEP
     ;  V225 tmp213      [V225,T31] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V226 cse0        [V226,T40] (  3,  3   )    long  ->  r12         "CSE #02: conservative"
    -;  V227 cse1        [V227,T39] (  3,  3   )     ref  ->  r12         "CSE #21: conservative"
    +;  V227 cse1        [V227,T39] (  3,  3   )     ref  ->  r12         "CSE #19: conservative"
     ;
     ; Lcl frame size = 104
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Messaging.EventGrid.EventGridSasBuilder:GenerateSas(Azure.AzureKeyCredential):System.String:this (FullOpts) (2,062 -> 2,062 bytes (0))

    Assembly: Azure.Messaging.EventGrid.dasm

    @@ -255,8 +255,8 @@
     ;* V244 tmp234      [V244    ] (  0,  0   )     int  ->  zero-ref    single-def "V13.[032..036)"
     ;  V245 tmp235      [V245,T49] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V246 cse0        [V246,T71] (  3,  3   )    long  ->  rcx         "CSE #03: conservative"
    -;  V247 cse1        [V247,T66] (  3,  3   )     ref  ->  r13         "CSE #17: conservative"
    -;  V248 cse2        [V248,T67] (  3,  3   )     ref  ->  rax         "CSE #25: conservative"
    +;  V247 cse1        [V247,T66] (  3,  3   )     ref  ->  r13         "CSE #16: conservative"
    +;  V248 cse2        [V248,T67] (  3,  3   )     ref  ->  rax         "CSE #23: conservative"
     ;
     ; Lcl frame size = 56
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Messaging.EventHubs.Amqp.AmqpConnectionScope+<CreateReceivingLinkAsync>d__83:MoveNext():this (FullOpts) (3,921 -> 3,921 bytes (0))

    Assembly: Azure.Messaging.EventHubs.dasm

    @@ -326,12 +326,12 @@
     ;  V315 tmp295      [V315,T52] (  3,  6   )   byref  ->  rdi         single-def "BlockOp address local"
     ;  V316 tmp296      [V316,T87] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
     ;  V317 tmp297      [V317,T88] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
    -;  V318 cse0        [V318,T54] (  6,  4   )    long  ->  rbx         multi-def "CSE #28: conservative"
    +;  V318 cse0        [V318,T54] (  6,  4   )    long  ->  rbx         multi-def "CSE #27: conservative"
     ;  V319 cse1        [V319,T100] (  3,  3   )     ref  ->  rax         "CSE #01: conservative"
     ;  V320 cse2        [V320,T105] (  3,  3   )     int  ->  rdi         "CSE #08: conservative"
     ;  V321 cse3        [V321,T101] (  3,  3   )     ref  ->  rbx         "CSE #12: conservative"
    -;  V322 cse4        [V322,T102] (  3,  3   )     ref  ->  rax         "CSE #27: conservative"
    -;  V323 cse5        [V323,T103] (  3,  3   )     ref  ->  rsi         "CSE #29: conservative"
    +;  V322 cse4        [V322,T102] (  3,  3   )     ref  ->  rax         "CSE #26: conservative"
    +;  V323 cse5        [V323,T103] (  3,  3   )     ref  ->  rsi         "CSE #28: conservative"
     ;
     ; Lcl frame size = 184
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Messaging.ServiceBus.Amqp.AmqpConnectionScope+<CreateManagementLinkAsync>d__85:MoveNext():this (FullOpts) (3,025 -> 3,025 bytes (0))

    Assembly: Azure.Messaging.ServiceBus.dasm

    @@ -267,10 +267,10 @@
     ;  V256 tmp240      [V256,T60] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
     ;  V257 tmp241      [V257,T105] (  2,  0   )     int  ->  rcx         "argument with side effect"
     ;  V258 tmp242      [V258,T104] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
    -;  V259 cse0        [V259,T71] (  3,  3   )    long  ->  rbx         "CSE #23: conservative"
    +;  V259 cse0        [V259,T71] (  3,  3   )    long  ->  rbx         "CSE #22: conservative"
     ;  V260 cse1        [V260,T99] (  3,  3   )  double  ->  mm1         "CSE #02: conservative"
     ;  V261 cse2        [V261,T100] (  3,  3   )  double  ->  mm1         "CSE #03: conservative"
    -;  V262 cse3        [V262,T69] (  3,  3   )     ref  ->  rdx         "CSE #22: conservative"
    +;  V262 cse3        [V262,T69] (  3,  3   )     ref  ->  rdx         "CSE #21: conservative"
     ;
     ; Lcl frame size = 232
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Monitor.OpenTelemetry.Exporter.Internals.PersistentStorage.StorageHelper:GetStorageDirectory(Azure.Monitor.OpenTelemetry.Exporter.Internals.Platform.IPlatform,System.String,System.String):System.String (FullOpts) (961 -> 961 bytes (0))

    Assembly: Azure.Monitor.OpenTelemetry.Exporter.dasm

    @@ -122,7 +122,7 @@
     ;  V111 cse0        [V111,T25] (  5,  2.50)     ref  ->  [rbp-0x58]  multi-def "CSE #04: moderate"
     ;  V112 cse1        [V112,T19] (  3,  3   )     int  ->  rsi         "CSE #03: moderate"
     ;  V113 cse2        [V113,T20] (  3,  3   )     int  ->  rsi         "CSE #07: moderate"
    -;  V114 cse3        [V114,T21] (  3,  3   )     int  ->  rsi         "CSE #11: moderate"
    +;  V114 cse3        [V114,T21] (  3,  3   )     int  ->  rsi         "CSE #10: moderate"
     ;
     ; Lcl frame size = 56
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Storage.Sas.BlobSasBuilder:GetCanonicalName(System.String,System.String,System.String):System.String (FullOpts) (856 -> 856 bytes (0))

    Assembly: Azure.Storage.Blobs.dasm

    @@ -121,10 +121,10 @@
     ;* V110 tmp106      [V110    ] (  0,  0   )     int  ->  zero-ref    single-def "field V60._length (fldOffset=0x8)" P-INDEP
     ;* V111 tmp107      [V111    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V61._reference (fldOffset=0x0)" P-INDEP
     ;* V112 tmp108      [V112    ] (  0,  0   )     int  ->  zero-ref    single-def "field V61._length (fldOffset=0x8)" P-INDEP
    -;  V113 cse0        [V113,T30] (  3,  1.50)     ref  ->  r13         "CSE #13: conservative"
    +;  V113 cse0        [V113,T30] (  3,  1.50)     ref  ->  r13         "CSE #12: conservative"
     ;  V114 cse1        [V114,T13] (  4,  2   )     int  ->  r12         "CSE #04: moderate"
     ;  V115 cse2        [V115,T14] (  4,  2   )     int  ->  rbx         "CSE #08: moderate"
    -;  V116 cse3        [V116,T15] (  4,  2   )     int  ->  rbx         "CSE #12: moderate"
    +;  V116 cse3        [V116,T15] (  4,  2   )     int  ->  rbx         "CSE #11: moderate"
     ;
     ; Lcl frame size = 40
     

    Note: this example has reduced context or was truncated by the runner.

    Azure.Storage.Sas.ShareSasBuilder:GetCanonicalName(System.String,System.String,System.String):System.String (FullOpts) (856 -> 856 bytes (0))

    Assembly: Azure.Storage.Files.Shares.dasm

    @@ -121,10 +121,10 @@
     ;* V110 tmp106      [V110    ] (  0,  0   )     int  ->  zero-ref    single-def "field V60._length (fldOffset=0x8)" P-INDEP
     ;* V111 tmp107      [V111    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V61._reference (fldOffset=0x0)" P-INDEP
     ;* V112 tmp108      [V112    ] (  0,  0   )     int  ->  zero-ref    single-def "field V61._length (fldOffset=0x8)" P-INDEP
    -;  V113 cse0        [V113,T30] (  3,  1.50)     ref  ->  r13         "CSE #13: conservative"
    +;  V113 cse0        [V113,T30] (  3,  1.50)     ref  ->  r13         "CSE #12: conservative"
     ;  V114 cse1        [V114,T13] (  4,  2   )     int  ->  r12         "CSE #04: moderate"
     ;  V115 cse2        [V115,T14] (  4,  2   )     int  ->  rbx         "CSE #08: moderate"
    -;  V116 cse3        [V116,T15] (  4,  2   )     int  ->  rbx         "CSE #12: moderate"
    +;  V116 cse3        [V116,T15] (  4,  2   )     int  ->  rbx         "CSE #11: moderate"
     ;
     ; Lcl frame size = 40
     

    Note: this example has reduced context or was truncated by the runner.

    Bogus.DataSets.Address:FullAddress():System.String:this (FullOpts) (725 -> 725 bytes (0))

    Assembly: Bogus.dasm

    @@ -112,7 +112,7 @@
     ;  V101 cse0        [V101,T14] (  3,  3   )    long  ->  r15         "CSE #02: moderate"
     ;  V102 cse1        [V102,T20] (  4,  2   )     int  ->  r13         "CSE #04: moderate"
     ;  V103 cse2        [V103,T21] (  4,  2   )     int  ->  r14         "CSE #08: moderate"
    -;  V104 cse3        [V104,T22] (  4,  2   )     int  ->  r15         "CSE #12: moderate"
    +;  V104 cse3        [V104,T22] (  4,  2   )     int  ->  r15         "CSE #11: moderate"
     ;  V105 cse4        [V105,T15] (  3,  3   )     int  ->  rsi         "CSE #05: moderate"
     ;  V106 cse5        [V106,T16] (  3,  3   )     int  ->  rsi         "CSE #09: moderate"
     ;

    Note: this example has reduced context or was truncated by the runner.

    Org.BouncyCastle.X509.X509Certificate:ToString():System.String:this (FullOpts) (3,895 -> 3,895 bytes (0))

    Assembly: BouncyCastle.Crypto.dasm

    @@ -10,11 +10,11 @@
     ;
     ;  V00 this         [V00,T41] ( 15, 15   )     ref  ->  rbx         this class-hnd single-def <Org.BouncyCastle.X509.X509Certificate>
     ;  V01 loc0         [V01,T00] ( 35,129   )     ref  ->  [rbp-0x58]  class-hnd exact EH-live spill-single-def <System.Text.StringBuilder>
    -;* V02 loc1         [V02,T130] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
    +;* V02 loc1         [V02,T129] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
     ;  V03 loc2         [V03,T25] (  5, 26   )     ref  ->  r13         class-hnd single-def <byte[]>
     ;  V04 loc3         [V04,T04] (  6, 41   )     int  ->  r15        
     ;* V05 loc4         [V05    ] (  0,  0   )     int  ->  zero-ref   
    -;  V06 loc5         [V06,T71] (  4, 10   )     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <Org.BouncyCastle.Asn1.X509.X509Extensions>
    +;  V06 loc5         [V06,T70] (  4, 10   )     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <Org.BouncyCastle.Asn1.X509.X509Extensions>
     ;  V07 loc6         [V07,T42] (  4, 17   )     ref  ->  [rbp-0x68]  class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
     ;  V08 loc7         [V08,T05] (  9, 40   )     ref  ->  [rbp-0x70]  do-not-enreg[Z] class-hnd EH-live <Org.BouncyCastle.Asn1.DerObjectIdentifier>
     ;  V09 loc8         [V09,T26] (  4, 24   )     ref  ->  rbx         class-hnd <Org.BouncyCastle.Asn1.X509.X509Extension>
    @@ -40,71 +40,71 @@
     ;  V29 tmp18        [V29,T31] (  3, 24   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <Org.BouncyCastle.Asn1.Misc.NetscapeCertType>
     ;* V30 tmp19        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Exception>
     ;* V31 tmp20        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <char[]>
    -;  V32 tmp21        [V32,T113] (  3,  3   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V33 tmp22        [V33,T92] (  4,  4   )     int  ->  r13         single-def "Inline stloc first use temp"
    -;  V34 tmp23        [V34,T102] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V32 tmp21        [V32,T112] (  3,  3   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V33 tmp22        [V33,T91] (  4,  4   )     int  ->  r13         single-def "Inline stloc first use temp"
    +;  V34 tmp23        [V34,T101] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V35 tmp24        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
    -;  V36 tmp25        [V36,T112] (  2,  4   )     int  ->  rsi         "Inlining Arg"
    -;  V37 tmp26        [V37,T88] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
    -;  V38 tmp27        [V38,T114] (  3,  3   )     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <char[]>
    -;  V39 tmp28        [V39,T93] (  4,  4   )     int  ->  r12         single-def "Inline stloc first use temp"
    -;  V40 tmp29        [V40,T103] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
    +;  V36 tmp25        [V36,T111] (  2,  4   )     int  ->  rsi         "Inlining Arg"
    +;  V37 tmp26        [V37,T87] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
    +;  V38 tmp27        [V38,T113] (  3,  3   )     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <char[]>
    +;  V39 tmp28        [V39,T92] (  4,  4   )     int  ->  r12         single-def "Inline stloc first use temp"
    +;  V40 tmp29        [V40,T102] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
     ;* V41 tmp30        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
     ;* V42 tmp31        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline return value spill temp" <System.Text.StringBuilder>
    -;  V43 tmp32        [V43,T77] (  4,  8   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Org.BouncyCastle.Math.BigInteger>
    ... diff truncated; middle omitted ...
    +;  V178 rat6        [V178,T67] (  5, 10   )   byref  ->  rdi         "fgMakeTemp is creating a new local variable"
    +;  V179 rat7        [V179,T68] (  5, 10   )   byref  ->  rdi         "fgMakeTemp is creating a new local variable"
    +;  V180 rat8        [V180,T69] (  5, 10   )   byref  ->  rdi         "fgMakeTemp is creating a new local variable"
     ;  V181 rat9        [V181,T08] (  5, 40   )   byref  ->  rsi         "fgMakeTemp is creating a new local variable"
    -;  V182 rat10       [V182,T90] (  3,  6   )   byref  ->  r11         "fgMakeTemp is creating a new local variable"
    -;  V183 rat11       [V183,T55] (  2, 16   )   byref  ->  rdx         "fgMakeTemp is creating a new local variable"
    -;  V184 rat12       [V184,T36] (  3, 24   )   byref  ->  rax         "fgMakeTemp is creating a new local variable"
    -;  V185 rat13       [V185,T02] (  5, 60   )     ref  ->  rcx         "replacement local"
    -;  V186 rat14       [V186,T39] (  3, 20   )    long  ->  rdi         "CSE for expectedClsNode"
    -;  V187 rat15       [V187,T03] (  5, 60   )     ref  ->  rbx         "replacement local"
    -;  V188 rat16       [V188,T40] (  3, 20   )    long  ->  rdi         "CSE for expectedClsNode"
    -;  V189 rat17       [V189,T22] (  5, 30   )     ref  ->  r14         "replacement local"
    -;  V190 rat18       [V190,T73] (  3, 10   )    long  ->  rdi         "CSE for expectedClsNode"
    -;  V191 rat19       [V191,T23] (  5, 30   )     ref  ->  rdi         "replacement local"
    -;  V192 rat20       [V192,T74] (  3, 10   )    long  ->  rax         "CSE for expectedClsNode"
    -;  V193 rat21       [V193,T24] (  5, 30   )     ref  ->  rdi         "replacement local"
    -;  V194 rat22       [V194,T75] (  3, 10   )    long  ->  rax         "CSE for expectedClsNode"
    +;  V182 rat10       [V182,T89] (  3,  6   )   byref  ->  r11         "fgMakeTemp is creating a new local variable"
    +;  V183 rat11       [V183,T36] (  3, 24   )   byref  ->  rax         "fgMakeTemp is creating a new local variable"
    +;  V184 rat12       [V184,T02] (  5, 60   )     ref  ->  rcx         "replacement local"
    +;  V185 rat13       [V185,T39] (  3, 20   )    long  ->  rdi         "CSE for expectedClsNode"
    +;  V186 rat14       [V186,T03] (  5, 60   )     ref  ->  rbx         "replacement local"
    +;  V187 rat15       [V187,T40] (  3, 20   )    long  ->  rdi         "CSE for expectedClsNode"
    +;  V188 rat16       [V188,T22] (  5, 30   )     ref  ->  r14         "replacement local"
    +;  V189 rat17       [V189,T72] (  3, 10   )    long  ->  rdi         "CSE for expectedClsNode"
    +;  V190 rat18       [V190,T23] (  5, 30   )     ref  ->  rdi         "replacement local"
    +;  V191 rat19       [V191,T73] (  3, 10   )    long  ->  rax         "CSE for expectedClsNode"
    +;  V192 rat20       [V192,T24] (  5, 30   )     ref  ->  rdi         "replacement local"
    +;  V193 rat21       [V193,T74] (  3, 10   )    long  ->  rax         "CSE for expectedClsNode"
     ;
     ; Lcl frame size = 72
     
    @@ -859,12 +858,11 @@ G_M55606_IG48:
     						;; size=87 bbWeight=4 PerfScore 112.00
     G_M55606_IG49:
            movsxd   rdx, r13d
    -       lea      rdx, bword ptr [r14+2*rdx+0x10]
            vmovups  zmm0, zmmword ptr [reloc @RWD320]
    -       vmovups  zmmword ptr [rdx], zmm0
    +       vmovups  zmmword ptr [r14+2*rdx+0x10], zmm0
            add      r13d, 32
            mov      dword ptr [rdi+0x18], r13d
    -						;; size=32 bbWeight=4 PerfScore 30.00
    +						;; size=32 bbWeight=4 PerfScore 26.00
     G_M55606_IG50:
            movzx    rdx, byte  ptr [rbx+0x10]
            test     edx, edx
    @@ -1245,5 +1243,5 @@ RWD320 	dq	0020002000200020h, 0020002000200020h, 0020002000200020h, 002000200020
     RWD384 	dq	006C006100760020h, 003D002000650075h
     
     
    -; Total bytes of code 3895, prolog size 32, PerfScore 2347.33, instruction count 869, allocated bytes for code 3895 (MethodHash=659326c9) for method Org.BouncyCastle.X509.X509Certificate:ToString():System.String:this (FullOpts)
    +; Total bytes of code 3895, prolog size 32, PerfScore 2343.33, instruction count 868, allocated bytes for code 3895 (MethodHash=659326c9) for method Org.BouncyCastle.X509.X509Certificate:ToString():System.String:this (FullOpts)
     ; ============================================================

    Note: this example has reduced context or was truncated by the runner.

    Org.BouncyCastle.Bcpg.SignatureSubpacketsParser:ReadPacket():Org.BouncyCastle.Bcpg.SignatureSubpacket:this (FullOpts) (3,475 -> 3,475 bytes (0))

    Assembly: BouncyCastle.Cryptography.dasm

    @@ -187,8 +187,8 @@
     ;  V176 tmp165      [V176,T91] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V177 tmp166      [V177,T92] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V178 tmp167      [V178,T93] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
    -;  V179 cse0        [V179,T31] (  2,  4.50)    long  ->  [rbp-0x78]  spill-single-def hoist "CSE #16: moderate"
    -;  V180 cse1        [V180,T32] (  8,  4   )     int  ->  r15         "CSE #14: moderate"
    +;  V179 cse0        [V179,T31] (  2,  4.50)    long  ->  [rbp-0x78]  spill-single-def hoist "CSE #15: moderate"
    +;  V180 cse1        [V180,T32] (  8,  4   )     int  ->  r15         "CSE #13: moderate"
     ;  V181 rat0        [V181,T41] (  3,  2.97)     int  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
     ;
     ; Lcl frame size = 120

    Note: this example has reduced context or was truncated by the runner.

    Confluent.Kafka.Loggers:ConsoleLogger(Confluent.Kafka.LogMessage) (FullOpts) (947 -> 947 bytes (0))

    Assembly: Confluent.Kafka.dasm

    @@ -137,8 +137,8 @@
     ;  V126 cse0        [V126,T28] (  5,  2.50)     ref  ->  r12         multi-def "CSE #02: moderate"
     ;  V127 cse1        [V127,T20] (  3,  3   )     int  ->  rsi         "CSE #01: moderate"
     ;  V128 cse2        [V128,T21] (  3,  3   )     int  ->  rsi         "CSE #05: moderate"
    -;  V129 cse3        [V129,T22] (  3,  3   )     int  ->  rsi         "CSE #09: moderate"
    -;  V130 cse4        [V130,T23] (  3,  3   )     int  ->  rsi         "CSE #12: moderate"
    +;  V129 cse3        [V129,T22] (  3,  3   )     int  ->  rsi         "CSE #08: moderate"
    +;  V130 cse4        [V130,T23] (  3,  3   )     int  ->  rsi         "CSE #11: moderate"
     ;
     ; Lcl frame size = 40
     

    Note: this example has reduced context or was truncated by the runner.

    Confluent.SchemaRegistry.RestService+<ExecuteOnOneInstanceAsync>d__21:MoveNext():this (FullOpts) (5,262 -> 5,262 bytes (0))

    Assembly: Confluent.SchemaRegistry.dasm

    @@ -383,9 +383,9 @@
     ;  V372 tmp349      [V372,T127] (  2,  0   )     ref  ->  rsi         "argument with side effect"
     ;  V373 tmp350      [V373,T128] (  2,  0   )     ref  ->  rsi         "argument with side effect"
     ;  V374 tmp351      [V374,T105] (  3,  0   )     ref  ->  rax         single-def "arr expr"
    -;  V375 cse0        [V375,T66] (  3,  3   )     int  ->  rcx         "CSE #34: conservative"
    -;  V376 cse1        [V376,T64] (  3,  3   )     ref  ->  r14         "CSE #23: conservative"
    -;  V377 cse2        [V377,T67] (  3,  3   )     int  ->  rax         "CSE #32: conservative"
    +;  V375 cse0        [V375,T66] (  3,  3   )     int  ->  rcx         "CSE #31: conservative"
    +;  V376 cse1        [V376,T64] (  3,  3   )     ref  ->  r14         "CSE #20: conservative"
    +;  V377 cse2        [V377,T67] (  3,  3   )     int  ->  rax         "CSE #29: conservative"
     ;
     ; Lcl frame size = 352
     

    Note: this example has reduced context or was truncated by the runner.

    CsvHelper.TypeConversion.DefaultTypeConverter:CreateTypeConverterException(System.String,CsvHelper.IReaderRow,CsvHelper.Configuration.MemberMapData):CsvHelper.TypeConversion.TypeConverterException:this (FullOpts) (2,032 -> 2,032 bytes (0))

    Assembly: CsvHelper.dasm

    @@ -254,8 +254,8 @@
     ;* V243 tmp237      [V243    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V150._reference (fldOffset=0x0)" P-INDEP
     ;* V244 tmp238      [V244    ] (  0,  0   )     int  ->  zero-ref    single-def "field V150._length (fldOffset=0x8)" P-INDEP
     ;  V245 tmp239      [V245,T32] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
    -;  V246 cse0        [V246,T42] (  3,  3   )    long  ->  r12         "CSE #21: conservative"
    -;  V247 cse1        [V247,T71] (  3,  1.50)    long  ->  rdi         "CSE #27: conservative"
    +;  V246 cse0        [V246,T42] (  3,  3   )    long  ->  r12         "CSE #20: conservative"
    +;  V247 cse1        [V247,T71] (  3,  1.50)    long  ->  rdi         "CSE #26: conservative"
     ;  V248 cse2        [V248,T40] (  6,  3   )     ref  ->  [rbp-0x68]  multi-def "CSE #04: moderate"
     ;
     ; Lcl frame size = 72

    Note: this example has reduced context or was truncated by the runner.

    InlinePatcher:TryRemove(DiffEngine.SourceLanguage,System.String,SourceScan,System.Collections.Generic.List`1[int],int,System.Nullable`1[int],System.String,System.String,System.String,byref,byref):int (FullOpts) (2,982 -> 2,982 bytes (0))

    Assembly: DiffEngine.dasm

    @@ -294,14 +294,14 @@
     ;* V283 tmp260      [V283    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V167._reference (fldOffset=0x0)" P-INDEP
     ;* V284 tmp261      [V284    ] (  0,  0   )     int  ->  zero-ref    single-def "field V167._length (fldOffset=0x8)" P-INDEP
     ;  V285 tmp262      [V285,T42] (  3,  3   )     ref  ->  rdx         single-def "arr expr"
    -;  V286 cse0        [V286,T06] (  3, 10   )     int  ->  rdx         "CSE #36: aggressive"
    -;  V287 cse1        [V287,T81] (  3,  1.50)     ref  ->  rdx         "CSE #39: conservative"
    -;  V288 cse2        [V288,T03] (  4, 16   )     int  ->  rax         "CSE #33: aggressive"
    -;  V289 cse3        [V289,T05] (  9, 15   )     int  ->  [rbp-0xEC]  multi-def "CSE #25: aggressive"
    -;  V290 cse4        [V290,T04] (  4, 16   )     int  ->  [rbp-0xF0]  spill-single-def "CSE #24: aggressive"
    -;  V291 cse5        [V291,T45] (  4,  2   )     int  ->  r12         "CSE #26: conservative"
    -;  V292 cse6        [V292,T46] (  4,  2   )     int  ->  rax         "CSE #37: conservative"
    -;  V293 cse7        [V293,T47] (  4,  2   )     int  ->  rdx         "CSE #38: conservative"
    +;  V286 cse0        [V286,T06] (  3, 10   )     int  ->  rdx         "CSE #34: aggressive"
    +;  V287 cse1        [V287,T81] (  3,  1.50)     ref  ->  rdx         "CSE #37: conservative"
    +;  V288 cse2        [V288,T03] (  4, 16   )     int  ->  rax         "CSE #31: aggressive"
    +;  V289 cse3        [V289,T05] (  9, 15   )     int  ->  [rbp-0xEC]  multi-def "CSE #23: aggressive"
    +;  V290 cse4        [V290,T04] (  4, 16   )     int  ->  [rbp-0xF0]  spill-single-def "CSE #22: aggressive"
    +;  V291 cse5        [V291,T45] (  4,  2   )     int  ->  r12         "CSE #24: conservative"
    +;  V292 cse6        [V292,T46] (  4,  2   )     int  ->  rax         "CSE #35: conservative"
    +;  V293 cse7        [V293,T47] (  4,  2   )     int  ->  rdx         "CSE #36: conservative"
     ;  V294 rat0        [V294,T43] (  3,  3   )    long  ->   r9         "V05.r9"
     ;
     ; Lcl frame size = 248

    Note: this example has reduced context or was truncated by the runner.

    DnsClient.Protocol.SshfpRecord:RecordToString():System.String:this (FullOpts) (474 -> 474 bytes (0))

    Assembly: DnsClient.dasm

    @@ -79,7 +79,7 @@
     ;* V68 tmp66        [V68    ] (  0,  0   )     int  ->  zero-ref    single-def "field V36._length (fldOffset=0x8)" P-INDEP
     ;* V69 tmp67        [V69    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
     ;* V70 tmp68        [V70    ] (  0,  0   )     int  ->  zero-ref    single-def "field V37._length (fldOffset=0x8)" P-INDEP
    -;  V71 cse0         [V71,T15] (  4,  2   )     int  ->  rbx         "CSE #06: moderate"
    +;  V71 cse0         [V71,T15] (  4,  2   )     int  ->  rbx         "CSE #05: moderate"
     ;  V72 cse1         [V72,T10] (  3,  3   )     int  ->  rsi         "CSE #01: moderate"
     ;  V73 cse2         [V73,T11] (  3,  3   )     int  ->  rsi         "CSE #03: moderate"
     ;

    Note: this example has reduced context or was truncated by the runner.

    Showing 20 of 663 reported examples in this category.

    Browse all JIT diff results and examples

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions