Skip to content

[JitDiff X64] [NinoFloris] Apply existing constrained call target refinement ... #2194

Open

Description

@MihuBot

Job completed in 27 minutes 57 seconds (remote runner delay: 2 minutes 32 seconds).
dotnet/runtime#135169

Main commit: dotnet/runtime@f368d14
PR commit: NinoFloris/dotnet-runtime@821f806

Diffs

Browse JIT diff results and examples

3 changed method listings; 3 examples across 1 assemblies.

Found 82 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

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


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

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

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

Artifacts:

Activity

  1. MihuBot commented on Nov 1, 2026

    @MihuBot
    OwnerAuthor

    Same-size JIT changes

    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	0000799585E31440h
    +RWD00  	dq	00007A2BF3811440h
     
     
     ; 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)
     ; ============================================================
    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	0000799585E31530h, 0000799585E31548h, 0000799585E31560h, 0000799585E31578h, 0000799585E31590h, 0000799585E315A8h, 0000799585E315C0h, 0000799585E315D8h
    -RWD64  	dq	0000799585E315F0h, 0000799585E31608h, 0000799585E31620h, 0000799585E31638h, 0000799585E31650h, 0000799585E31668h, 0000799585E31680h, 0000799585E31698h
    -RWD128 	dq	0000799585E316B0h, 0000799585E316C8h, 0000799585E316E0h, 0000799585E316F8h, 0000799585E31710h, 0000799585E31728h, 0000799585E31740h, 0000799585E31758h
    -RWD192 	dq	0000799585E31770h, 0000799585E31788h, 0000799585E317A0h, 0000799585E317B8h, 0000799585E317D0h, 0000799585E317E8h, 0000799585E31800h, 0000799585E31818h
    +RWD00  	dq	00007A2BF3811530h, 00007A2BF3811548h, 00007A2BF3811560h, 00007A2BF3811578h, 00007A2BF3811590h, 00007A2BF38115A8h, 00007A2BF38115C0h, 00007A2BF38115D8h
    +RWD64  	dq	00007A2BF38115F0h, 00007A2BF3811608h, 00007A2BF3811620h, 00007A2BF3811638h, 00007A2BF3811650h, 00007A2BF3811668h, 00007A2BF3811680h, 00007A2BF3811698h
    +RWD128 	dq	00007A2BF38116B0h, 00007A2BF38116C8h, 00007A2BF38116E0h, 00007A2BF38116F8h, 00007A2BF3811710h, 00007A2BF3811728h, 00007A2BF3811740h, 00007A2BF3811758h
    +RWD192 	dq	00007A2BF3811770h, 00007A2BF3811788h, 00007A2BF38117A0h, 00007A2BF38117B8h, 00007A2BF38117D0h, 00007A2BF38117E8h, 00007A2BF3811800h, 00007A2BF3811818h
     
     
     ; 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	0000799585E31908h
    +RWD00  	dq	00007A2BF3811908h
     
     
     ; 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 3 of 3 reported examples in this category.

    Browse all JIT diff results and examples

  2. MihuBot commented on Nov 1, 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