You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[JitDiff X64] [lewing] Use optimized thread-static helpers only for initiali ... #2187
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.
Activity
MihuBot commentedon Oct 28, 2026
JIT diff regressions
OpenTelemetry.Resources.ResourceBuilder:PrepareDefaultResource():OpenTelemetry.Resources.Resource (FullOpts) (46 -> 246 bytes (+200))
Assembly:
OpenTelemetry.dasmShowing 1 of 1 reported examples in this category.
Browse all JIT diff results and examples
MihuBot commentedon Oct 28, 2026
JIT diff improvements
Pipelines.Sockets.Unofficial.SocketConnection+Counters:.cctor() (FullOpts) (425 -> 404 bytes (-21))
Assembly:
Pipelines.Sockets.Unofficial.dasmShowing 1 of 1 reported examples in this category.
Browse all JIT diff results and examples
MihuBot commentedon Oct 28, 2026
Same-size JIT changes
Silk.NET.Assimp.CustomFileIO:.ctor(Silk.NET.Assimp.OpenFileCustomIOCallback):this (FullOpts) (159 -> 159 bytes (0))
Assembly:
Silk.NET.Assimp.dasmSystem.Runtime.CompilerServices.AsyncHelpers+ValueTaskSourceContinuation+ValueTaskSourceContinuationResume:.cctor() (FullOpts) (23 -> 23 bytes (0))
Assembly:
System.Private.CoreLib.dasmSilk.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.dasmSystem.Runtime.CompilerServices.RuntimeAsyncTaskContinuation+TaskContinuationResume:.cctor() (FullOpts) (167 -> 167 bytes (0))
Assembly:
System.Private.CoreLib.dasmShowing 5 of 5 reported examples in this category.
Browse all JIT diff results and examples
MihuBot commentedon Oct 28, 2026
@MihaZupan