Skip to content

[JitDiff X64] [lewing] Use optimized thread-static helpers only for initiali ... #2187

Open

Description

@MihuBot

Job completed in 16 minutes 56 seconds (remote runner delay: 1 minute 24 seconds).
dotnet/runtime#136535

Main commit: dotnet/runtime@6dbcdc1
PR commit: lewing/runtime@f7317b2

Diffs

Browse JIT diff results and examples

7 changed method listings; 7 examples across 4 assemblies.

Found 88 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 162361347
Total bytes of diff: 162361347
Total bytes of delta: 0 (0.00 % of base)


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

0 total methods with Code Size differences (0 improved, 0 regressed), 834472 unchanged.

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

1 new method listings are excluded. Use -includeNewMethodRegressions to include them.

Artifacts:

Activity

  1. MihuBot commented on Oct 28, 2026

    @MihuBot
    OwnerAuthor

    JIT diff regressions

    OpenTelemetry.Resources.ResourceBuilder:PrepareDefaultResource():OpenTelemetry.Resources.Resource (FullOpts) (46 -> 246 bytes (+200))

    Assembly: OpenTelemetry.dasm

    @@ -1,127 +1,97 @@
     ; Assembly listing for method OpenTelemetry.Resources.ResourceBuilder:PrepareDefaultResource():OpenTelemetry.Resources.Resource (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; fully interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 loc0         [V00,T02] (  3,  3   )     ref  ->  [rbp-0x18]  do-not-enreg[M] class-hnd EH-live <System.String>
     ;  V01 loc1         [V01,T03] (  3,  3   )     ref  ->  r15         class-hnd exact single-def <System.String>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V03 tmp1         [V03,T00] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.String,System.Object]>
     ;  V04 tmp2         [V04,T01] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <OpenTelemetry.Resources.Resource>
     ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Object>
     ;  V06 cse0         [V06,T04] (  3,  3   )     ref  ->  rbx         "CSE #01: aggressive"
     ;
     ; Lcl frame size = 16
     
     G_M18842_IG01:
            push     rbp
            push     r15
            push     rbx
            sub      rsp, 16
            lea      rbp, [rsp+0x20]
     						;; size=13 bbWeight=1 PerfScore 3.75
     G_M18842_IG02:
            mov      rbx, 0xD1FFAB1E      ; 'unknown_service'
            mov      gword ptr [rbp-0x18], rbx
     						;; size=14 bbWeight=1 PerfScore 1.25
     G_M18842_IG03:
            mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Process:GetCurrentProcess():System.Diagnostics.Process
            call     [rax]System.Diagnostics.Process:GetCurrentProcess():System.Diagnostics.Process
            mov      rdi, rax
            mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Process:get_ProcessName():System.String:this
            cmp      dword ptr [rdi], edi
            call     [rax]System.Diagnostics.Process:get_ProcessName():System.String:this
            mov      r15, rax
            mov      rdi, r15
            mov      rax, 0xD1FFAB1E      ; code for System.String:IsNullOrWhiteSpace(System.String):bool
            call     [rax]System.String:IsNullOrWhiteSpace(System.String):bool
            test     eax, eax
            jne      SHORT G_M18842_IG04
            mov      rdx, r15
            mov      rdi, rbx
            mov      rsi, 0xD1FFAB1E      ; ':'
            mov      rax, 0xD1FFAB1E      ; code for System.String:Concat(System.String,System.String,System.String):System.String
            call     [rax]System.String:Concat(System.String,System.String,System.String):System.String
            mov      gword ptr [rbp-0x18], rax
     						;; size=83 bbWeight=1 PerfScore 18.75
     G_M18842_IG04:
            mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary`2[System.String,System.Object]
            call     CORINFO_HELP_NEWSFAST
            mov      rbx, rax
            mov      rdi, rbx
            xor      esi, esi
            xor      edx, edx
            mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
            call     [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
            mov      rdi, rbx
            mov      rdx, gword ptr [rbp-0x18]
            mov      rsi, 0xD1FFAB1E      ; 'service.name'
            mov      ecx, 1
            mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this
            call     [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,byte):bool:this
            mov      rdi, 0xD1FFAB1E      ; OpenTelemetry.Resources.Resource
            call     CORINFO_HELP_NEWSFAST
            mov      r15, rax
            mov      rdi, r15
            mov      rsi, rbx
            xor      edx, edx
            xor      ecx, ecx
            mov      rax, 0xD1FFAB1E      ; code for OpenTelemetry.Resources.Resource:.ctor(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.String,bool):this
            call     [rax]OpenTelemetry.Resources.Resource:.ctor(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.String,bool):this
            mov      rax, r15
     						;; size=114 bbWeight=1 PerfScore 16.50
     G_M18842_IG05:
            add      rsp, 16
            pop      rbx
            pop      r15
            pop      rbp
            ret      
     						;; size=9 bbWeight=1 PerfScore 2.75
     G_M18842_IG06:
    -      ; Assembly listing for method OpenTelemetry.Internal.SelfDiagnosticsConfigRefresher:<.ctor>b__16_0():System.Threading.Tasks.Task:this (FullOpts)
    -; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
    -; FullOpts code
    -; optimized code
    -; rsp based frame
    -; fully interruptible
    -; No PGO data
    -; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
    -; Final local variable assignments
    -;
    -;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <OpenTelemetry.Internal.SelfDiagnosticsConfigRefresher>
    -;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
    -;* V02 tmp1         [V02    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Threading.CancellationToken>
    -;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Threading.CancellationTokenSource>
    -;* V04 tmp3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.CancellationToken>
    -;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    "field V02._source (fldOffset=0x0)" P-INDEP
    -;* V06 tmp5         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._source (fldOffset=0x0)" P-INDEP
    -;
    -; Lcl frame size = 8
    -
    -G_M52233_IG01:
            push     rax
    -						;; size=1 bbWeight=1 PerfScore 1.00
    -G_M52233_IG02:
    -       mov      rsi, gword ptr [rdi+0x08]
    -       cmp      byte  ptr [rsi+0x24], 0
    -       jne      SHORT G_M52233_IG04
    -       mov      rax, 0xD1FFAB1E      ; code for OpenTelemetry.Internal.SelfDiagnosticsConfigRefresher:Worker(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
    -						;; size=20 bbWeight=1 PerfScore 5.25
    -G_M52233_IG03:
    +						;; size=1 bbWeight=0 PerfScore 0.00
    +G_M18842_IG07:
    +       lea      rax, G_M18842_IG04
    +						;; size=7 bbWeight=0 PerfScore 0.00
    +G_M18842_IG08:
            add      rsp, 8
    -       tail.jmp [rax]OpenTelemetry.Internal.SelfDiagnosticsConfigRefresher:Worker(System.Threading.CancellationToken):System.Threading.Tasks.Task:this
    -						;; size=7 bbWeight=1 PerfScore 2.25
    -G_M52233_IG04:
    -       mov      edi, 70
    -       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowObjectDisposedException(int)
    -       call     [rax]System.ThrowHelper:ThrowObjectDisposedException(int)
    -       int3     
    -						;; size=18 bbWeight=0 PerfScore 0.00
    +       ret      
    +						;; size=5 bbWeight=0 PerfScore 0.00
     
    -; Total bytes of code 46, prolog size 1, PerfScore 8.50, instruction count 11, allocated bytes for code 46 (MethodHash=793c33f6) for method OpenTelemetry.Internal.SelfDiagnosticsConfigRefresher:<.ctor>b__16_0():System.Threading.Tasks.Task:this (FullOpts)
    +; Total bytes of code 246, prolog size 13, PerfScore 43.00, instruction count 58, allocated bytes for code 246 (MethodHash=a478b665) for method OpenTelemetry.Resources.ResourceBuilder:PrepareDefaultResource():OpenTelemetry.Resources.Resource (FullOpts)
     ; ============================================================

    Showing 1 of 1 reported examples in this category.

    Browse all JIT diff results and examples

  2. MihuBot commented on Oct 28, 2026

    @MihuBot
    OwnerAuthor

    JIT diff improvements

    Pipelines.Sockets.Unofficial.SocketConnection+Counters:.cctor() (FullOpts) (425 -> 404 bytes (-21))

    Assembly: Pipelines.Sockets.Unofficial.dasm

    @@ -1,145 +1,201 @@
     ; Assembly listing for method Pipelines.Sockets.Unofficial.SocketConnection+Counters:.cctor() (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; fully interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Reflection.MethodInfo>
     ;* V01 loc1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
     ;  V02 OutArgs      [V02    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
     ;  V03 tmp1         [V03,T00] (  4,  8   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Reflection.PropertyInfo>
     ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
     ;  V05 tmp3         [V05,T05] (  3,  3   )     ref  ->  rax        
     ;  V06 tmp4         [V06,T01] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.IO.Pipelines.Pipe,long]>
    -;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Exception>
    +G_M25960_IG01:
    +;* 
    +V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Exception>
     ;  V08 tmp6         [V08,T07] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.IO.Pipelines.Pipe,long]>
     ;  V09 tmp7         [V09,T03] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c>
     ;  V10 tmp8         [V10,T04] (  3,  4.50)     ref  ->  rax         single-def "argument with side effect"
     ;  V11 tmp9         [V11,T08] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
     ;  V12 rat0         [V12,T02] (  5,  7.50)     ref  ->  rsi         "replacement local"
    -;  V13 rat1         [V13,T06] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
    +;  V13 rat1         [V13,T06]       (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
     ;
     ; Lcl frame size = 8
    + push     rbp
    +       push     r15
    +       push     r14
    +       push     rbx
    +       sub      rsp, 24
    +       lea      rbp, [rsp+0x30]
    +       mov      rbx, rdi
    +						;; size=18 bbWeight=1 PerfScore 5.00
    +G_M25960_IG02:
    +       mov      rdi, 0xD1FFAB1E
    +       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR
    +       call     [rax]CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR
    +       mov      edi, dword ptr [rbx+0x28]
    +       mov      dword ptr [rax+0x10], edi
    +						;; size=28 bbWeight=1 PerfScore 6.50
    +G_M25960_IG03:
    +       mov      rdi, gword ptr [rbx+0x10]
    +       mov      gword ptr [rbp-0x28], rdi
    +       xor      edi, edi
    +       mov      dword ptr [rbp-0x1C], edi
    +						;; size=13 bbWeight=8 PerfScore 34.00
    +G_M25960_IG04:
    +       mov      rdi, gword ptr [rbp-0x28]
    +       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Enter(System.Object)
    +       call     [rax]System.Threading.Monitor:Enter(System.Object)
    +       mov      dword ptr [rbp-0x1C], 1
    +       mov      rdi, gword ptr [rbx+0x10]
    +       cmp      dword ptr [rdi+0x18], 0
    +       jne      SHORT G_M25960_IG06
    +						;; size=33 bbWeight=8 PerfScore 82.00
    +G_M25960_IG05:
    +       cmp      byte  ptr [rbx+0x3C], 0
    +       jne      G_M25960_IG09
    +       inc      dword ptr [rbx+0x38]
    +       mov      r15, gword ptr [rbx+0x10]
    +       test     r15, r15
    +       je       SHORT G_M25960_IG07
    +       mov      rdi, r15
    +       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ObjectHeader:GetLockObject(System.Object):System.Threading.Lock
    +       call     [rax]System.Threading.ObjectHeader:GetLockObject(System.Object):System.Threading.Lock
    +       cmp      byte  ptr [rax], al
    +       mov      rdi, rax
    +       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Lock:GetOrCreateCondition():System.Threading.Condition:this
    +       call     [rax]System.Threading.Lock:GetOrCreateCondition():System.Threading.Condition:this
    +       mov      rdi, rax
    +       mov      rdx, r15
    +       mov      esi, -1
    +       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Condition:Wait(int,System.Object):bool:this
    +       cmp      dword ptr [rdi], edi
    +       call     [rax]System.Threading.Condition:Wait(int,System.Object):bool:this
    +       dec      dword ptr [rbx+0x38]
    +       mov      rdi, gword ptr [rbx+0x10]
    +       cmp      dword ptr [rdi+0x18], 0
    +       je       SHORT G_M25960_IG05
    +						;; size=92 bbWeight=32 PerfScore 1032.00
    +G_M25960_IG06:
    +       mov      rdi, gword ptr [rbx+0x10]
    +       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Queue`1[Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler+WorkItem]:Dequeue():Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler+WorkItem:this
    +       cmp      dword ptr [rdi], edi
    +       call     [rax]System.Collections.Generic.Queue`1[Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler+WorkItem]:Dequeue():Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler+WorkItem:this
    +       mov      r15, rax
    +       mov      r14, rdx
    +       jmp      SHORT G_M25960_IG08
    +						;; size=26 bbWeight=8 PerfScore 78.00
    +G_M25960_IG07:
    +       mov      rdi, 0xD1FFAB1E      ; 'obj'
    +       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
    +       call     [rax]System.ArgumentNullException:Throw(System.String)
    +       int3     
    +						;; size=23 bbWeight=0 PerfScore 0.00
    +G_M25960_IG08:
    +       mov      rdi, gword ptr [rbp-0x28]
    +       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)
    +       call     [rax]System.Threading.Monitor:Exit(System.Object)
    +       lea      rdi, bword ptr [rbx+0x18]
    +       lock     
    +       inc      qword ptr [rdi]
     
    -G_M30698_IG01:
    -       push     rbp
    +G_M30698_IG01:       mov      rdi, rbx
    +
    +       mov      rsi, r15
    +       mov      rdx, r14
    +       mov            rax push     , 0xD1FFAB1Erbp
            push     rbx
            push     rax
    -       lea      rbp, [rsp+0x10]
    +      ; code for Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler:Execute(System.Action`1[System.Object],System.Object):this
    +             call     [ lea      rax]rbp, Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler:Execute(System.Action`1[System.Object],System.Object):this[rsp
    ++       jmp      0x10]G_M25960_IG03
    +
    +						;; size=50 bbWeight=8 PerfScore 214.00
    +G_M25960_IG09:
     						;; size=8 bbWeight=1 PerfScore 3.50
     G_M30698_IG02:
    -       xor      edi, edi
    -       mov      gword ptr [rsp], rdi
    -       mov      rdi, 0xD1FFAB1E      ; 'System.IO.Pipelines.Pipe'
    -       mov      rsi, 0xD1FFAB1E      ; 'Length'
    -       mov      edx, 52
    +       call     G_M25960_IG13
    +       jmp      SHORT G_M25960_IG11
    +       xor      						;; size=7 bbWeight=1 PerfScore 3.00
    +G_M25960_IG10:
    +edi, edi
    +       nop      
    +						;; size=1 bbWeight=0 PerfScore 0.00
    +G_M25960_IG11:
    +             mov       mov      rdi, gword ptr 0xD1FFAB1E[
    +rsp], rdi
    +       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR
    +       mov            rdi call     [rax, ]CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR0xD1FFAB1E
            xor      ecx, ecx
    -       xor      r8d, r8d
    -       xor      r9d, r9d
    -       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
    -       call     [rax]System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this
    -       test     rax, rax
    -       je       SHORT G_M30698_IG06
    -       mov      rdi, rax
    -       mov      esi, 1
    -       mov      rax, qword ptr [rax]
    -       mov      rax, qword ptr [rax+0x58]
    -       call     [rax+0x08]System.Reflection.PropertyInfo:GetGetMethod(bool):System.Reflection.MethodInfo:this
    -       test     rax, rax
    -       je       SHORT G_M30698_IG06
    -       mov      rsi, rax
    -       mov      rdi, 0xD1FFAB1E      ; 'System.Func`2[System.IO.Pipelines.Pipe,System.Int64]'
    -       mov      edx, 1
    -       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:CreateDelegate(System.Type,System.Reflection.MethodInfo,bool):System.Delegate
    -       call     [rax]System.Delegate:CreateDelegate(System.Type,System.Reflection.MethodInfo,bool):System.Delegate
    -       mov      rsi, rax
    -       test     rsi, rsi
    -       je       SHORT G_M30698_IG05
    -						;; size=117 bbWeight=1 PerfScore 21.50
    -G_M30698_IG03:
    -       mov      rdi, 0xD1FFAB1E      ; System.Func`2[System.IO.Pipelines.Pipe,long]
    -       cmp      qword ptr [rsi], rdi
    -       je       SHORT G_M30698_IG05
    -						;; size=15 bbWeight=0.50 PerfScore 1.62
    -G_M30698_IG04:
    -       mov      rsi, rax
    -       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTANY
    -       call     [rax]CORINFO_HELP_CHKCASTANY
    -       mov      rsi, rax
    -						;; size=18 bbWeight=0.25 PerfScore 0.94
    -G_M30698_IG05:
    -       mov      rdi, 0xD1FFAB1E      ; data for Pipelines.Sockets.Unofficial.SocketConnection+Counters:s_pipeLengthReader
    -       call     CORINFO_HELP_ASSIGN_REF
    -       jmp      G_M30698_IG10
    -						;; size=20 bbWeight=1 PerfScore 3.25
    -G_M30698_IG06:
    -       mov      rdi, 0xD1FFAB1E      ; System.Func`2[System.IO.Pipelines.Pipe,long]
    -       call     CORINFO_HELP_NEWSFAST
    -       mov      rbx, rax
    -       mov      rdi, 0xD1FFAB1E      ; global ptr
    -       test     byte  ptr [rdi], 1
    -       je       SHORT G_M30698_IG08
    -						;; size=33 bbWeight=1 PerfScore 4.75
    -G_M30698_IG07:
    -       mov      rdi, 0xD1FFAB1E      ; data for Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c:<>9
    -       mov      rsi, gword ptr [rdi]
    -       test     rsi, rsi
    -       je       SHORT G_M30698_IG09
    -       lea      rdi, bword ptr [rbx+0x10]
    -       call     CORINFO_HELP_ASSIGN_REF
    -       mov      rdi, 0xD1FFAB1E      ; code for Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c:<.cctor>b__1_0(System.IO.Pipelines.Pipe):long:this
    -       mov      qword ptr [rbx+0x18], rdi
    -       mov      rdi, 0xD1FFAB1E      ; data for Pipelines.Sockets.Unofficial.SocketConnection+Counters:s_pipeLengthReader
    -       mov      rsi, rbx
    -       call     CORINFO_HELP_ASSIGN_REF
    -       jmp      SHORT G_M30698_IG10
    -						;; size=61 bbWeight=1 PerfScore 9.75
    -G_M30698_IG08:
    -       mov      rdi, 0xD1FFAB1E      ; Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c
    -       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
    -       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
    -       jmp      SHORT G_M30698_IG07
    -						;; size=24 bbWeight=0 PerfScore 0.00
    -G_M30698_IG09:
    -       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()
    -       call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()
    -       int3     
    -						;; size=13 bbWeight=0 PerfScore 0.00
    -G_M30698_IG10:
    -       add      rsp, 8
    -       pop      rbx
    +       mov      dword ptr [rax+0x10], ecx
    +						;; size=27 bbWeight=1 PerfScore 4.75
    +G_M25960_IG12:
    +       add      rsp,       ; 'System.IO.Pipelines.Pipe'24
    +
    +             pop      rbx
    + mov      rsi,        pop      0xD1FFAB1Er14
    +       pop      r15      ; 'Length'
    +
            pop      rbp
    +             mov      edx,  ret      52
    +
    +						;; size=11 bbWeight=1 PerfScore 3.25      
    +G_M25960_IG13: xor      
    +ecx, ecx      
    + push     rax
    +						;; size=1 bbWeight=1 PerfScore 1.00      
    +G_M25960_IG14: xor      
    +r8d, r8d
    +             cmp       xor      dword ptr r9d[, r9drbp
    +-0x1C      ] mov      , rax0, 
    +0xD1FFAB1E       je       SHORT G_M25960_IG15
    +       mov      rdi, gword ptr [rbp-0x28]
    +       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Monitor:Exit(System.Object)
    +       call     [rax]System.Threading.Monitor:Exit(System.Object)
    +						;; size=22 bbWeight=1 PerfScore 6.25
    +G_M25960_IG15:
    +       nop      
    +						;; size=1 bbWeight=1 PerfScore 0.25
    +G_M25960_IG16:
    +       add      rsp, 8
            ret      
    -						;; size=7 bbWeight=1 PerfScore 2.25
    -G_M30698_IG11:
    +						;; size=5 bbWeight=1 PerfScore 1.25
    +G_M25960_IG17:
            push     rax
     						;; size=1 bbWeight=0 PerfScore 0.00
    -G_M30698_IG12:
    -       mov      rdi, 0xD1FFAB1E      ; System.Func`2[System.IO.Pipelines.Pipe,long]
    -       call     CORINFO_HELP_NEWSFAST
    -       mov      rbx, rax
    -       mov      rdi, 0xD1FFAB1E      ; Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c
    -       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
    -       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
    -       mov      rsi, 0xD1FFAB1E      ; data for Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c:<>9
    -       mov      rsi, gword ptr [rsi]
    -       mov      rdi, rbx
    -       mov      rdx, 0xD1FFAB1E      ; code for Pipelines.Sockets.Unofficial.SocketConnection+Counters+<>c:<.cctor>b__1_1(System.IO.Pipelines.Pipe):long:this
    -       mov      rax, 0xD1FFAB1E      ; code for System.Delegate:CtorClosed(System.Object,nint):this
    -       call     [rax]System.Delegate:CtorClosed(System.Object,nint):this
    -       mov      rdi, 0xD1FFAB1E      ; data for Pipelines.Sockets.Unofficial.SocketConnection+Counters:s_pipeLengthReader
    -       mov      rsi, rbx
    -       call     CORINFO_HELP_ASSIGN_REF
    -       lea      rax, G_M30698_IG10
    -						;; size=103 bbWeight=0 PerfScore 0.00
    -G_M30698_IG13:
    +G_M25960_IG18:
    +       lea      rax, G_M25960_IG10
    +						;; size=7 bbWeight=0 PerfScore 0.00
    +G_M25960_IG19:
            add      rsp, 8
            ret      
     						;; size=5 bbWeight=0 PerfScore 0.00
    +G_M25960_IG20:
    +       push     rax
    +						;; size=1 bbWeight=0 PerfScore 0.00
    +G_M25960_IG21:
    +            ; code for System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this mov      
    +rdi, 0xD1FFAB1E
    +       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR
    +       call     [rax]CORINFO_HELP_GETDYNAMIC_NONGCTHREADSTATIC_BASE_NOCTOR
    +       call           [ xor      raxedi, edi
    +]       mov      dword ptr [rax+0x10], edi
    +						;; size=27 bbWeight=0 PerfScore 0.00
    +G_M25960_IG22:
    +       add      rspSystem.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this, 
    +8
    +       ret      
    +       test     						;; size=5 bbWeight=0 PerfScore 0.00rax, rax
     
    -; Total bytes of code 425, prolog size 8, PerfScore 47.56, instruction count 89, allocated bytes for code 425 (MethodHash=46a38815) for method Pipelines.Sockets.Unofficial.SocketConnection+Counters:.cctor() (FullOpts)
    +       je       SHORT G_M30698_IG06
    +       mov      rdi, rax
    +       mov      esi, 1
    +       mov      
    +rax, qword ptr [rax]
    +; Total bytes of code 404, prolog size 18, PerfScore 1471.25, instruction count 104, allocated bytes for code 404       mov      rax, qword ptr [rax+ (MethodHash=89c39a97) for method Pipelines.Sockets.Unofficial.DedicatedThreadPoolPipeScheduler:RunWorkLoop():this (FullOpts)
     ; ============================================================

    Showing 1 of 1 reported examples in this category.

    Browse all JIT diff results and examples

  3. MihuBot commented on Oct 28, 2026

    @MihuBot
    OwnerAuthor

    Same-size JIT changes

    Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):this (FullOpts) (159 -> 159 bytes (0))

    Assembly: Silk.NET.Assimp.dasm

    @@ -1,94 +1,94 @@
     ; Assembly listing for method Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):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; 9 single block inlinees; 2 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T00] (  7,  6.50)     ref  ->  rbx         this class-hnd single-def <Silk.NET.Assimp.CustomFileIO>
     ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  r15         class-hnd single-def <Silk.NET.Assimp.OpenFileCustomIOCallback>
     ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.InteropServices.GCHandle>
     ;* V03 loc1         [V03    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <Silk.NET.Assimp.FileIO>
     ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V05 tmp1         [V05,T03] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
     ;* V06 tmp2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.InteropServices.GCHandle>
     ;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
     ;  V08 tmp4         [V08,T02] (  5,  4.50)    long  ->  r14         "Inline stloc first use temp"
     ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Silk.NET.Assimp.PfnFileOpenProc>
     ;* V10 tmp6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Silk.NET.Assimp.PfnFileCloseProc>
     ;* V11 tmp7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Runtime.InteropServices.GCHandle>
     ;* V12 tmp8         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V13 tmp9         [V13    ] (  0,  0   )    long  ->  zero-ref    single-def "field V02._handle (fldOffset=0x0)" P-INDEP
     ;* V14 tmp10        [V14    ] (  0,  0   )    long  ->  zero-ref    single-def "field V03.OpenProc (fldOffset=0x0)" P-INDEP
     ;* V15 tmp11        [V15    ] (  0,  0   )    long  ->  zero-ref    single-def "field V03.CloseProc (fldOffset=0x8)" P-INDEP
     ;* V16 tmp12        [V16    ] (  0,  0   )    long  ->  zero-ref    single-def "field V03.UserData (fldOffset=0x10)" P-INDEP
     ;* V17 tmp13        [V17    ] (  0,  0   )    long  ->  zero-ref    single-def "field V06._handle (fldOffset=0x0)" P-INDEP
     ;* V18 tmp14        [V18    ] (  0,  0   )    long  ->  zero-ref    single-def "field V09._handle (fldOffset=0x0)" P-INDEP
     ;* V19 tmp15        [V19    ] (  0,  0   )    long  ->  zero-ref    single-def "field V10._handle (fldOffset=0x0)" P-INDEP
     ;* V20 tmp16        [V20    ] (  0,  0   )    long  ->  zero-ref    single-def "field V11._handle (fldOffset=0x0)" P-INDEP
     ;
     ; Lcl frame size = 8
     
     G_M23716_IG01:
            push     rbp
            push     r15
            push     r14
            push     rbx
            push     rax
            lea      rbp, [rsp+0x20]
            mov      rbx, rdi
            mov      r15, rsi
     						;; size=18 bbWeight=1 PerfScore 6.00
     G_M23716_IG02:
            mov      rdi, rbx
            mov      esi, 2
            call     System.Runtime.InteropServices.GCHandle:_InternalAlloc(System.Object,int):nint
            mov      r14, rax
            test     r14, r14
            jne      SHORT G_M23716_IG04
     						;; size=21 bbWeight=1 PerfScore 3.00
     G_M23716_IG03:
            mov      rdi, rbx
            mov      esi, 2
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.GCHandle:InternalAllocWithGCTransition(System.Object,int):nint
            call     [rax]System.Runtime.InteropServices.GCHandle:InternalAllocWithGCTransition(System.Object,int):nint
            mov      r14, rax
     						;; size=23 bbWeight=0.50 PerfScore 2.00
     G_M23716_IG04:
            test     r14, r14
            je       SHORT G_M23716_IG06
            lea      rdi, bword ptr [rbx+0x08]
            mov      rsi, r15
            call     CORINFO_HELP_ASSIGN_REF
            vmovups  xmm0, xmmword ptr [reloc @RWD00]
            vmovups  xmmword ptr [rbx+0x10], xmm0
            mov      qword ptr [rbx+0x20], r14
     						;; size=34 bbWeight=1 PerfScore 6.00
     G_M23716_IG05:
            add      rsp, 8
            pop      rbx
            pop      r14
            pop      r15
            pop      rbp
            ret      
     						;; size=11 bbWeight=1 PerfScore 3.25
     G_M23716_IG06:
            mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
            call     CORINFO_HELP_NEWSFAST
            mov      rbx, rax
            mov      rdi, rbx
            mov      rsi, 0xD1FFAB1E      ; 'Failed to allocate GCHandle for CustomFileIO'
            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=52 bbWeight=0 PerfScore 0.00
    -RWD00  	dq	00007FB6414511D0h, 00007FB6414511E8h
    +RWD00  	dq	00007933988511D0h, 00007933988511E8h
     
     
     ; Total bytes of code 159, prolog size 12, PerfScore 20.25, instruction count 43, allocated bytes for code 159 (MethodHash=57fda35b) for method Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):this (FullOpts)
     ; ============================================================
    System.Runtime.CompilerServices.AsyncHelpers+ValueTaskSourceContinuation+ValueTaskSourceContinuationResume:.cctor() (FullOpts) (23 -> 23 bytes (0))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,32 +1,32 @@
     ; Assembly listing for method System.Runtime.CompilerServices.AsyncHelpers+ValueTaskSourceContinuation+ValueTaskSourceContinuationResume:.cctor() (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 loc0         [V00    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Runtime.CompilerServices.ResumeInfo>
     ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V02 tmp1         [V02    ] (  0,  0   )    long  ->  zero-ref    "field V00.Resume (fldOffset=0x0)" P-INDEP
     ;* V03 tmp2         [V03    ] (  0,  0   )    long  ->  zero-ref    "field V00.DiagnosticIP (fldOffset=0x8)" P-INDEP
     ;  V04 cse0         [V04,T00] (  2,  2   )    long  ->  rax         "CSE #01: aggressive"
     ;
     ; Lcl frame size = 0
     
     G_M58358_IG01:
     						;; size=0 bbWeight=1 PerfScore 0.00
     G_M58358_IG02:
            mov      rax, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.AsyncHelpers+ValueTaskSourceContinuation+ValueTaskSourceContinuationResume:ResumeInfo
            vmovsd   xmm0, qword ptr [reloc @RWD00]
            vmovups  xmmword ptr [rax], xmm0
     						;; size=22 bbWeight=1 PerfScore 3.25
     G_M58358_IG03:
            ret      
     						;; size=1 bbWeight=1 PerfScore 1.00
    -RWD00  	dq	00007ED229BE1068h
    +RWD00  	dq	000076E4AEDE1068h
     
     
     ; Total bytes of code 23, prolog size 0, PerfScore 4.25, instruction count 4, allocated bytes for code 23 (MethodHash=bcd21c09) for method System.Runtime.CompilerServices.AsyncHelpers+ValueTaskSourceContinuation+ValueTaskSourceContinuationResume:.cctor() (FullOpts)
     ; ============================================================
    Silk.NET.Assimp.CustomFileIO:OpenFile(ptr,ptr,ptr):ptr (FullOpts) (1,423 -> 1,423 bytes (0))

    Assembly: Silk.NET.Assimp.dasm

    @@ -1,815 +1,815 @@
     ; Assembly listing for method Silk.NET.Assimp.CustomFileIO:OpenFile(ptr,ptr,ptr):ptr (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; fully interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 88 single block inlinees; 22 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T13] (  3,  3   )    long  ->  r14         single-def
     ;  V01 arg1         [V01,T01] (  5,  8   )    long  ->  rbx         single-def
     ;  V02 arg2         [V02,T02] (  5,  8   )    long  ->  r15         single-def
     ;  V03 loc0         [V03,T36] (  2,  2   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def ptr <Silk.NET.Assimp.CustomFileIO>
     ;  V04 loc1         [V04,T00] ( 23, 38.50)     int  ->  r13        
     ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[byte]>
     ;* V06 loc3         [V06    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V07 loc4         [V07    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[char]>
     ;* V08 loc5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[byte]>
     ;  V09 loc6         [V09,T20] (  4,  3   )   ubyte  ->  rbx         single-def
     ;  V10 loc7         [V10,T30] (  3,  2   )   ubyte  ->  r14         single-def
     ;  V11 loc8         [V11,T31] (  3,  2   )   ubyte  ->  r12         single-def
     ;  V12 loc9         [V12,T17] (  5,  3.50)   ubyte  ->  r15         single-def
     ;* V13 loc10        [V13    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V14 loc11        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;  V15 loc12        [V15,T16] (  5,  3.50)     ref  ->  r14         class-hnd single-def <System.IO.Stream>
     ;* V16 loc13        [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.InteropServices.GCHandle>
     ;  V17 loc14        [V17,T25] (  5,  2.50)    long  ->  r15         single-def
     ;* V18 loc15        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.InteropServices.GCHandle>
     ;* V19 loc16        [V19    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[char]>
     ;* V20 loc17        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V21 loc18        [V21    ] (  0,  0   )  struct (56) zero-ref    do-not-enreg[SF] ld-addr-op <Silk.NET.Assimp.File>
     ;  V22 OutArgs      [V22    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
     ;  V23 tmp1         [V23,T03] (  4,  7   )     ref  ->  r14         single-def "ISINST eval op1"
     ;* V24 tmp2         [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <Silk.NET.Assimp.CustomFileIO>
     ;  V25 tmp3         [V25,T23] (  2,  3   )     ref  ->  [rbp-0xB0]  class-hnd exact spill-single-def ptr "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
     ;* V26 tmp4         [V26    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;* V27 tmp5         [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
     ;  V28 tmp6         [V28,T24] (  2,  3   )     ref  ->  r12         class-hnd exact single-def "impAppendStmt" <System.Text.UTF8Encoding+UTF8EncodingSealed>
     ;* V29 tmp7         [V29    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;  V30 tmp8         [V30,T32] (  3,  2   )     int  ->  r14        
     ;  V31 tmp9         [V31,T33] (  3,  2   )     int  ->  r12        
     ;  V32 tmp10        [V32,T34] (  3,  2   )     int  ->  rax        
     ;  V33 tmp11        [V33,T26] (  4,  2.50)     int  ->  rcx        
     ;  V34 tmp12        [V34,T27] (  4,  2.50)     int  ->   r8        
     ;  V35 tmp13        [V35,T08] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "impAppendStmt" <Silk.NET.Assimp.OpenFileCustomIOCallback>
     ;* V36 tmp14        [V36    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
     ;  V37 tmp15        [V37,T43] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
     ;  V38 tmp16        [V38,T44] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
     ;  V39 tmp17        [V39,T45] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
     ;  V40 tmp18        [V40,T21] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <char[]>
     ;  V41 tmp19        [V41,T46] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
     ;  V42 tmp20        [V42,T09] (  3,  6   )    long  ->  rdx         "Inlining Arg"
     ;* V43 tmp21        [V43    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.InteropServices.GCHandle>
     ;* V44 tmp22        [V44    ] (  0,  0   )    long  ->  zero-ref    "dup spill"
     ;* V45 tmp23        [V45    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "NewObj constructor temp"
     ;* V46 tmp24        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V47 tmp25        [V47    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V48 tmp26        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V49 tmp27        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
     ;* V50 tmp28        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V51 tmp29        [V51    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V52 tmp30        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
     ;* V53 tmp31        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;  V54 tmp32        [V54    ] (  2,  2   )   byref  ->  [rbp-0x38]  do-not-enreg[] must-init pinned ptr "Inline stloc first use temp"
     ;* V55 tmp33        [V55    ] (  0,  0   )    long  ->  zero-ref    single-def "Inline stloc first use temp"
     ;* V56 tmp34        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V57 tmp35        [V57    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V58 tmp36        [V58    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp"
     ;  V59 tmp37        [V59,T11] (  9,  5.50)     int  ->  [rbp-0x3C]  ptr "Inline stloc first use temp"
     ;  V60 tmp38        [V60    ] (  2,  2   )     int  ->  [rbp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
     ;  V61 tmp39        [V61    ] (  1,  1   )     int  ->  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
     ;  V62 tmp40        [V62,T18] (  4,  3.50)     int  ->  rcx         single-def "Inline stloc first use temp"
     ;* V63 tmp41        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
     ;  V64 tmp42        [V64,T37] (  2,  2   )    long  ->  rax         "Inlining Arg"
     ;* V65 tmp43        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V66 tmp44        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
     ;* V67 tmp45        [V67    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V68 tmp46        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V69 tmp47        [V69    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
     ;* V70 tmp48        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;  V71 tmp49        [V71    ] (  2,  2   )   byref  ->  [rbp-0x58]  do-not-enreg[] must-init pinned ptr "Inline stloc first use temp"
     ;* V72 tmp50        [V72    ] (  0,  0   )    long  ->  zero-ref    single-def "Inline stloc first use temp"
     ;* V73 tmp51        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
     ;  V74 tmp52        [V74    ] (  2,  2   )   byref  ->  [rbp-0x60]  do-not-enreg[] must-init pinned ptr "Inline stloc first use temp"
     ;* V75 tmp53        [V75    ] (  0,  0   )    long  ->  zero-ref    single-def "Inline stloc first use temp"
     ;* V76 tmp54        [V76    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V77 tmp55        [V77    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
     ;* V78 tmp56        [V78    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
     ;* V79 tmp57        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V80 tmp58        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;  V81 tmp59        [V81,T28] (  3,  2.50)     int  ->   r9         ld-addr-op single-def "Inline ldloca(s) first use temp"
     ;  V82 tmp60        [V82,T39] (  2,  1.50)     int  ->  rdi         single-def "Inline stloc first use temp"
     ;  V83 tmp61        [V83    ] (  2,  2   )    long  ->  [rbp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
     ;  V84 tmp62        [V84    ] (  2,  2   )    long  ->  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
     ;* V85 tmp63        [V85    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[byte]>
     ;* V86 tmp64        [V86    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;* V87 tmp65        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V88 tmp66        [V88    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
     ;* V89 tmp67        [V89    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V90 tmp68        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V91 tmp69        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V92 tmp70        [V92    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V93 tmp71        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V94 tmp72        [V94    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V95 tmp73        [V95    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V96 tmp74        [V96    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V97 tmp75        [V97    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V98 tmp76        [V98    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[byte]>
     ;* V99 tmp77        [V99    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;* V100 tmp78       [V100    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V101 tmp79       [V101    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
     ;* V102 tmp80       [V102    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V103 tmp81       [V103    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V104 tmp82       [V104    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V105 tmp83       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V106 tmp84       [V106    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V107 tmp85       [V107    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V108 tmp86       [V108    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V109 tmp87       [V109    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V110 tmp88       [V110    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V111 tmp89       [V111    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[byte]>
     ;* V112 tmp90       [V112    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;* V113 tmp91       [V113    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V114 tmp92       [V114    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
     ;* V115 tmp93       [V115    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V116 tmp94       [V116    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V117 tmp95       [V117    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V118 tmp96       [V118    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V119 tmp97       [V119    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V120 tmp98       [V120    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V121 tmp99       [V121    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V122 tmp100      [V122    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V123 tmp101      [V123    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V124 tmp102      [V124    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[byte]>
     ;* V125 tmp103      [V125    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;* V126 tmp104      [V126    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V127 tmp105      [V127    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
     ;* V128 tmp106      [V128    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V129 tmp107      [V129    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V130 tmp108      [V130    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V131 tmp109      [V131    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V132 tmp110      [V132    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V133 tmp111      [V133    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V134 tmp112      [V134    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
     ;* V135 tmp113      [V135    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V136 tmp114      [V136    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
     ;* V137 tmp115      [V137    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[byte]>
     ;* V138 tmp116      [V138    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
     ;* V139 tmp117      [V139    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
     ;* V140 tmp118      [V140    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan
    ... truncated for GitHub; see the full report in the diff browser ...
    System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper:InitContinuationWrappers():System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper+ContinuationWrapperTable (FullOpts) (79 -> 79 bytes (0))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,76 +1,76 @@
     ; Assembly listing for method System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper:InitContinuationWrappers():System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper+ContinuationWrapperTable (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; 32 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 RetBuf       [V00,T00] (  7,  7   )    long  ->  rdi         single-def
     ;* V01 loc0         [V01    ] (  0,  0   )  struct (256) zero-ref    do-not-enreg[SF] ld-addr-op <System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper+ContinuationWrapperTable>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "V01.[000..008)"
     ;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "V01.[008..016)"
     ;* V05 tmp3         [V05    ] (  0,  0   )    long  ->  zero-ref    "V01.[016..024)"
     ;* V06 tmp4         [V06    ] (  0,  0   )    long  ->  zero-ref    "V01.[024..032)"
     ;* V07 tmp5         [V07    ] (  0,  0   )    long  ->  zero-ref    "V01.[032..040)"
     ;* V08 tmp6         [V08    ] (  0,  0   )    long  ->  zero-ref    "V01.[040..048)"
     ;* V09 tmp7         [V09    ] (  0,  0   )    long  ->  zero-ref    "V01.[048..056)"
     ;* V10 tmp8         [V10    ] (  0,  0   )    long  ->  zero-ref    "V01.[056..064)"
     ;* V11 tmp9         [V11    ] (  0,  0   )    long  ->  zero-ref    "V01.[064..072)"
     ;* V12 tmp10        [V12    ] (  0,  0   )    long  ->  zero-ref    "V01.[072..080)"
     ;* V13 tmp11        [V13    ] (  0,  0   )    long  ->  zero-ref    "V01.[080..088)"
     ;* V14 tmp12        [V14    ] (  0,  0   )    long  ->  zero-ref    "V01.[088..096)"
     ;* V15 tmp13        [V15    ] (  0,  0   )    long  ->  zero-ref    "V01.[096..104)"
     ;* V16 tmp14        [V16    ] (  0,  0   )    long  ->  zero-ref    "V01.[104..112)"
     ;* V17 tmp15        [V17    ] (  0,  0   )    long  ->  zero-ref    "V01.[112..120)"
     ;* V18 tmp16        [V18    ] (  0,  0   )    long  ->  zero-ref    "V01.[120..128)"
     ;* V19 tmp17        [V19    ] (  0,  0   )    long  ->  zero-ref    "V01.[128..136)"
     ;* V20 tmp18        [V20    ] (  0,  0   )    long  ->  zero-ref    "V01.[136..144)"
     ;* V21 tmp19        [V21    ] (  0,  0   )    long  ->  zero-ref    "V01.[144..152)"
     ;* V22 tmp20        [V22    ] (  0,  0   )    long  ->  zero-ref    "V01.[152..160)"
     ;* V23 tmp21        [V23    ] (  0,  0   )    long  ->  zero-ref    "V01.[160..168)"
     ;* V24 tmp22        [V24    ] (  0,  0   )    long  ->  zero-ref    "V01.[168..176)"
     ;* V25 tmp23        [V25    ] (  0,  0   )    long  ->  zero-ref    "V01.[176..184)"
     ;* V26 tmp24        [V26    ] (  0,  0   )    long  ->  zero-ref    "V01.[184..192)"
     ;* V27 tmp25        [V27    ] (  0,  0   )    long  ->  zero-ref    "V01.[192..200)"
     ;* V28 tmp26        [V28    ] (  0,  0   )    long  ->  zero-ref    "V01.[200..208)"
     ;* V29 tmp27        [V29    ] (  0,  0   )    long  ->  zero-ref    "V01.[208..216)"
     ;* V30 tmp28        [V30    ] (  0,  0   )    long  ->  zero-ref    "V01.[216..224)"
     ;* V31 tmp29        [V31    ] (  0,  0   )    long  ->  zero-ref    "V01.[224..232)"
     ;* V32 tmp30        [V32    ] (  0,  0   )    long  ->  zero-ref    "V01.[232..240)"
     ;* V33 tmp31        [V33    ] (  0,  0   )    long  ->  zero-ref    "V01.[240..248)"
     ;* V34 tmp32        [V34    ] (  0,  0   )    long  ->  zero-ref    "V01.[248..256)"
     ;
     ; Lcl frame size = 0
     
     G_M36615_IG01:
            push     rbp
            mov      rbp, rsp
     						;; size=4 bbWeight=1 PerfScore 1.25
     G_M36615_IG02:
            vmovups  zmm0, zmmword ptr [reloc @RWD00]
            vmovups  zmmword ptr [rdi], zmm0
            vmovups  zmm0, zmmword ptr [reloc @RWD64]
            vmovups  zmmword ptr [rdi+0x40], zmm0
            vmovups  zmm0, zmmword ptr [reloc @RWD128]
            vmovups  zmmword ptr [rdi+0x80], zmm0
            vmovups  zmm0, zmmword ptr [reloc @RWD192]
            vmovups  zmmword ptr [rdi+0xC0], zmm0
            mov      rax, rdi
     						;; size=70 bbWeight=1 PerfScore 20.25
     G_M36615_IG03:
            vzeroupper 
            pop      rbp
            ret      
     						;; size=5 bbWeight=1 PerfScore 2.50
    -RWD00  	dq	00007ED229BE1158h, 00007ED229BE1170h, 00007ED229BE1188h, 00007ED229BE11A0h, 00007ED229BE11B8h, 00007ED229BE11D0h, 00007ED229BE11E8h, 00007ED229BE1200h
    -RWD64  	dq	00007ED229BE1218h, 00007ED229BE1230h, 00007ED229BE1248h, 00007ED229BE1260h, 00007ED229BE1278h, 00007ED229BE1290h, 00007ED229BE12A8h, 00007ED229BE12C0h
    -RWD128 	dq	00007ED229BE12D8h, 00007ED229BE12F0h, 00007ED229BE1308h, 00007ED229BE1320h, 00007ED229BE1338h, 00007ED229BE1350h, 00007ED229BE1368h, 00007ED229BE1380h
    -RWD192 	dq	00007ED229BE1398h, 00007ED229BE13B0h, 00007ED229BE13C8h, 00007ED229BE13E0h, 00007ED229BE13F8h, 00007ED229BE1410h, 00007ED229BE1428h, 00007ED229BE1440h
    +RWD00  	dq	000076E4AEDE1158h, 000076E4AEDE1170h, 000076E4AEDE1188h, 000076E4AEDE11A0h, 000076E4AEDE11B8h, 000076E4AEDE11D0h, 000076E4AEDE11E8h, 000076E4AEDE1200h
    +RWD64  	dq	000076E4AEDE1218h, 000076E4AEDE1230h, 000076E4AEDE1248h, 000076E4AEDE1260h, 000076E4AEDE1278h, 000076E4AEDE1290h, 000076E4AEDE12A8h, 000076E4AEDE12C0h
    +RWD128 	dq	000076E4AEDE12D8h, 000076E4AEDE12F0h, 000076E4AEDE1308h, 000076E4AEDE1320h, 000076E4AEDE1338h, 000076E4AEDE1350h, 000076E4AEDE1368h, 000076E4AEDE1380h
    +RWD192 	dq	000076E4AEDE1398h, 000076E4AEDE13B0h, 000076E4AEDE13C8h, 000076E4AEDE13E0h, 000076E4AEDE13F8h, 000076E4AEDE1410h, 000076E4AEDE1428h, 000076E4AEDE1440h
     
     
     ; Total bytes of code 79, prolog size 4, PerfScore 24.00, instruction count 14, allocated bytes for code 79 (MethodHash=14f070f8) for method System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper:InitContinuationWrappers():System.Runtime.CompilerServices.AsyncProfiler+ContinuationWrapper+ContinuationWrapperTable (FullOpts)
     ; ============================================================
    System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume:.cctor() (FullOpts) (167 -> 167 bytes (0))

    Assembly: System.Private.CoreLib.dasm

    @@ -1,73 +1,73 @@
     ; Assembly listing for method System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume:.cctor() (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; 0 single block inlinees; 1 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;* V00 loc0         [V00    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Runtime.CompilerServices.ResumeInfo>
     ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V02 tmp1         [V02,T00] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.SendOrPostCallback>
     ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume+<>c>
     ;* V04 tmp3         [V04    ] (  0,  0   )    long  ->  zero-ref    "field V00.Resume (fldOffset=0x0)" P-INDEP
     ;* V05 tmp4         [V05    ] (  0,  0   )    long  ->  zero-ref    "field V00.DiagnosticIP (fldOffset=0x8)" P-INDEP
     ;  V06 cse0         [V06,T02] (  2,  2   )    long  ->  rdi         "CSE #01: aggressive"
     ;
     ; Lcl frame size = 8
     
     G_M63124_IG01:
            push     rbp
            push     rbx
            push     rax
            lea      rbp, [rsp+0x10]
     						;; size=8 bbWeight=1 PerfScore 3.50
     G_M63124_IG02:
            mov      rdi, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume:ResumeInfo
            vmovsd   xmm0, qword ptr [reloc @RWD00]
            vmovups  xmmword ptr [rdi], xmm0
            mov      rdi, 0xD1FFAB1E      ; System.Threading.SendOrPostCallback
            call     CORINFO_HELP_NEWSFAST
            mov      rbx, rax
            mov      rdi, 0xD1FFAB1E      ; global ptr
            test     byte  ptr [rdi], 1
            je       SHORT G_M63124_IG05
     						;; size=55 bbWeight=1 PerfScore 8.00
     G_M63124_IG03:
            mov      rdi, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume+<>c:<>9
            mov      rsi, gword ptr [rdi]
            test     rsi, rsi
            je       SHORT G_M63124_IG06
            lea      rdi, bword ptr [rbx+0x10]
            call     CORINFO_HELP_ASSIGN_REF
            mov      rdi, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume+<>c:<.cctor>b__3_0(System.Object):this
            mov      qword ptr [rbx+0x18], rdi
            mov      rdi, 0xD1FFAB1E      ; data for System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume:s_postCallback
            mov      rsi, rbx
            call     CORINFO_HELP_ASSIGN_REF
            nop      
     						;; size=60 bbWeight=1 PerfScore 8.00
     G_M63124_IG04:
            add      rsp, 8
            pop      rbx
            pop      rbp
            ret      
     						;; size=7 bbWeight=1 PerfScore 2.25
     G_M63124_IG05:
            mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume+<>c
            mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
            call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
            jmp      SHORT G_M63124_IG03
     						;; size=24 bbWeight=0 PerfScore 0.00
     G_M63124_IG06:
            mov      rax, 0xD1FFAB1E      ; code for System.Delegate:ThrowNullThisInDelegateToInstance()
            call     [rax]System.Delegate:ThrowNullThisInDelegateToInstance()
            int3     
     						;; size=13 bbWeight=0 PerfScore 0.00
    -RWD00  	dq	00007ED229BE1530h
    +RWD00  	dq	000076E4AEDE1530h
     
     
     ; Total bytes of code 167, prolog size 8, PerfScore 21.75, instruction count 36, allocated bytes for code 167 (MethodHash=4e05096b) for method System.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume:.cctor() (FullOpts)
     ; ============================================================

    Showing 5 of 5 reported examples in this category.

    Browse all JIT diff results and examples

  4. MihuBot commented on Oct 28, 2026

    @MihuBot
    OwnerAuthor
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