Assembly Diffs

windows x86

Diffs are based on 2,339,430 contexts (847,225 MinOpts, 1,492,205 FullOpts).

MISSED contexts: base: 1 (0.00%), diff: 8,833 (0.38%)

Overall (+1,228,297 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x86.checked.mch 6,969,637 +20,893 -1.24%
benchmarks.run_pgo.windows.x86.checked.mch 47,456,230 +36,835 -2.52%
benchmarks.run_tiered.windows.x86.checked.mch 9,351,120 +18,029 -1.12%
coreclr_tests.run.windows.x86.checked.mch 315,999,892 +454,403 -1.69%
libraries.crossgen2.windows.x86.checked.mch 35,570,616 +11,739 -0.68%
libraries.pmi.windows.x86.checked.mch 48,824,461 +165,393 -1.49%
libraries_tests.run.windows.x86.Release.mch 181,401,826 +408,071 -1.33%
librariestestsnotieredcompilation.run.windows.x86.Release.mch 102,225,812 +81,602 -1.34%
realworld.run.windows.x86.checked.mch 11,028,236 +31,332 -1.07%

FullOpts (+1,228,297 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x86.checked.mch 6,969,356 +20,893 -1.24%
benchmarks.run_pgo.windows.x86.checked.mch 40,784,255 +36,835 -2.52%
benchmarks.run_tiered.windows.x86.checked.mch 5,043,353 +18,029 -1.12%
coreclr_tests.run.windows.x86.checked.mch 108,989,043 +454,403 -1.69%
libraries.crossgen2.windows.x86.checked.mch 35,569,556 +11,739 -0.68%
libraries.pmi.windows.x86.checked.mch 48,729,231 +165,393 -1.49%
libraries_tests.run.windows.x86.Release.mch 83,337,517 +408,071 -1.33%
librariestestsnotieredcompilation.run.windows.x86.Release.mch 93,550,744 +81,602 -1.34%
realworld.run.windows.x86.checked.mch 10,732,966 +31,332 -1.07%

Example diffs

benchmarks.run.windows.x86.checked.mch

-22 (-18.33%) : 17193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

@@ -8,8 +8,8 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> +; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> @@ -17,18 +17,19 @@ ;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp" -; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp" +; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP ; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP ;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP -;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP +;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect" -; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect" +; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown" +; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 16 - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 8 + mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx + ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00 G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi] + mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] +[eax] mov ecx, gword ptr [eax+0x08] @@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov eax, dword ptr [eax+0x54] call [eax+0x0C]<unknown method> ; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V02} + mov ecx, edi + ; gcrRegs +[ecx] + mov edx, dword ptr [ebx+0x54] + call [edx+0x10]<unknown method> + ; gcrRegs -[ecx edi] + mov edi, dword ptr [eax+0x04]
mov ebx, eax ; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx - ; GC ptr vars +{V02} - mov ecx, esi - ; gcrRegs +[ecx] - mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54] - call [eax+0x10]<unknown method> - ; gcrRegs -[ecx esi] +[eax] - mov esi, dword ptr [eax+0x04] - mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx - mov dword ptr [ebp-0x10], ecx - test esi, esi
+ mov dword ptr [ebp-0x10], edx + test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50 -G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz - mov edx, gword ptr [eax+4*edx+0x08] - ; gcrRegs +[edx] - mov gword ptr [ebp-0x1C], edx - ; GC ptr vars +{V17} - push edi - mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50 +G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx - mov ebx, gword ptr [ebp-0x1C] - mov ebx, dword ptr [ebx] - ; gcrRegs -[ebx] - mov ebx, dword ptr [ebx+0x44] - ; GC ptr vars -{V17} - call [ebx+0x08]<unknown method> - ; gcrRegs -[eax ecx edx] - mov ebx, dword ptr [ebp-0x10] - lea edx, [ebx+0x01] - mov ebx, edx - cmp esi, ebx - mov dword ptr [ebp-0x10], ebx - mov eax, gword ptr [ebp-0x18] - ; gcrRegs +[eax] - jg SHORT G_M33036_IG05 - ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi + mov edx, gword ptr [ebp-0x14] + ; gcrRegs +[edx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x44] + call [eax+0x08]<unknown method> + ; gcrRegs -[ecx edx] + mov eax, dword ptr [ebp-0x10] + inc eax + mov edx, eax + cmp edi, edx + mov dword ptr [ebp-0x10], edx + jg SHORT G_M33036_IG03 + ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi] - ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi] + ; GC ptr vars -{V02}
lea esp, [ebp-0x0C] pop ebx pop esi @@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b pop ebp ret ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[eax edi] - ; GC ptr vars +{V02 V10} - mov ebx, gword ptr [ebp-0x14] - ; gcrRegs +[ebx] - jmp SHORT G_M33036_IG03 - ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================

-18 (-12.50%) : 15148.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)

@@ -9,19 +9,18 @@ ; Final local variable assignments ; ; V00 this [V00,T04] ( 6, 14.50) ref -> edi this class-hnd single-def <Benchstone.BenchI.Permutate>
-; V01 arg1 [V01,T03] ( 10, 27.50) int -> esi single-def -; V02 loc0 [V02,T02] ( 11, 37 ) int -> [ebp-0x10]
+; V01 arg1 [V01,T03] ( 12, 32 ) int -> esi single-def +; V02 loc0 [V02,T02] ( 11, 37 ) int -> ebx
; V03 tmp0 [V03,T00] ( 6, 48 ) ref -> edx class-hnd "Inlining Arg" <int[]>
-; V04 tmp1 [V04,T09] ( 2, 8 ) int -> ebx "Inline stloc first use temp"
+; V04 tmp1 [V04,T09] ( 2, 8 ) int -> eax "Inline stloc first use temp"
; V05 tmp2 [V05,T05] ( 2, 16 ) int -> ecx "Strict ordering of exceptions for Array store" ; V06 tmp3 [V06,T01] ( 6, 48 ) ref -> eax class-hnd "Inlining Arg" <int[]> ; V07 tmp4 [V07,T10] ( 2, 8 ) int -> ecx "Inline stloc first use temp" ; V08 tmp5 [V08,T06] ( 2, 16 ) int -> edx "Strict ordering of exceptions for Array store"
-; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - aggressive" -; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - aggressive" -; V11 cse2 [V11,T11] ( 4, 5.50) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - unknown" +; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -29,42 +28,38 @@ G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 8
mov edi, ecx ; gcrRegs +[edi] mov esi, edx
- ;; size=13 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 4.75
G_M46152_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz inc dword ptr [D1FFAB1EH] cmp esi, 1 je SHORT G_M46152_IG05 ;; size=11 bbWeight=1 PerfScore 4.25 G_M46152_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- lea ebx, [esi-0x01] - mov dword ptr [ebp-0x14], ebx - mov edx, ebx
+ lea edx, [esi-0x01]
mov ecx, edi ; gcrRegs +[ecx] call [Benchstone.BenchI.Permutate:PermuteArray(int):this] ; gcrRegs -[ecx]
- mov eax, ebx - test eax, eax
+ lea ebx, [esi-0x01] + test ebx, ebx
jle SHORT G_M46152_IG05
- ;; size=22 bbWeight=0.50 PerfScore 3.25
+ ;; size=18 bbWeight=0.50 PerfScore 2.75
G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov edx, gword ptr [edi+0x04] ; gcrRegs +[edx] mov ecx, dword ptr [edx+0x04] cmp esi, ecx jae SHORT G_M46152_IG06
- mov ebx, dword ptr [edx+4*esi+0x08] - cmp eax, ecx
+ mov eax, dword ptr [edx+4*esi+0x08] + cmp ebx, ecx
jae SHORT G_M46152_IG06
- mov ecx, dword ptr [edx+4*eax+0x08]
+ mov ecx, dword ptr [edx+4*ebx+0x08]
mov dword ptr [edx+4*esi+0x08], ecx
- mov dword ptr [ebp-0x10], eax - mov dword ptr [edx+4*eax+0x08], ebx - mov edx, dword ptr [ebp-0x14]
+ mov dword ptr [edx+4*ebx+0x08], eax + lea edx, [esi-0x01]
; gcrRegs -[edx] mov ecx, edi ; gcrRegs +[ecx] @@ -76,7 +71,6 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 cmp esi, edx jae SHORT G_M46152_IG06 mov ecx, dword ptr [eax+4*esi+0x08]
- mov ebx, dword ptr [ebp-0x10]
cmp ebx, edx jae SHORT G_M46152_IG06 mov edx, dword ptr [eax+4*ebx+0x08] @@ -84,24 +78,21 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 mov dword ptr [eax+4*ebx+0x08], ecx dec ebx test ebx, ebx
- mov eax, ebx - ; gcrRegs -[eax]
jg SHORT G_M46152_IG04
- ;; size=84 bbWeight=4 PerfScore 132.00
+ ;; size=76 bbWeight=4 PerfScore 121.00
G_M46152_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi] - lea esp, [ebp-0x0C]
+ ; gcrRegs -[eax edi]
pop ebx pop esi pop edi pop ebp ret
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M46152_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 9, PerfScore 148.00, instruction count 56, allocated bytes for code 144 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 135.75, instruction count 49, allocated bytes for code 126 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
; ============================================================

-25 (-11.90%) : 10733.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)

@@ -9,19 +9,19 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 7, 5 ) byref -> esi this single-def
-; V01 arg1 [V01,T06] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
+; V01 arg1 [V01,T05] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivitySpanId> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivityTraceId> ;* V04 tmp0 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivitySpanId> ;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivityTraceId> ;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V07 tmp3 [V07,T01] ( 6, 6 ) ref -> edx class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp3 [V07,T01] ( 5, 5 ) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.String>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" @@ -31,27 +31,30 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V21 tmp17 [V21,T09] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> edx class-hnd exact single-def "Inlining Arg" <System.String>
; V30 tmp26 [V30,T10] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
-; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp33 [V37,T03] ( 6, 4 ) ref -> edx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP -; V38 tmp34 [V38,T05] ( 6, 3 ) ref -> edx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP -; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> ecx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP -; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> ecx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP -; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
+; V37 tmp33 [V37,T03] ( 5, 3.50) ref -> ecx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP +; V38 tmp34 [V38,T06] ( 5, 2.50) ref -> ecx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP +; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> edx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP +; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> edx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP +; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V44 cse0 [V44,T17] ( 3, 1.50) int -> eax "CSE - unknown" +; V45 cse1 [V45,T18] ( 3, 1.50) int -> eax "CSE - unknown" +; V46 cse2 [V46,T19] ( 3, 1.50) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -63,103 +66,91 @@ G_M43911_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b ; byrRegs +[esi] ;; size=6 bbWeight=1 PerfScore 2.50 G_M43911_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x10] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x18]
+ mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x18] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG04 ;; size=10 bbWeight=1 PerfScore 4.25
-G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref - test edx, edx - je G_M43911_IG08
+G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref, isz
test ecx, ecx je G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
- je G_M43911_IG08 - ;; size=58 bbWeight=0.50 PerfScore 8.62 -G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz - mov edx, gword ptr [esi+0x0C] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x14] - ; gcrRegs +[ecx] - cmp edx, ecx - je SHORT G_M43911_IG05 - test edx, edx
je SHORT G_M43911_IG08
+ ;; size=47 bbWeight=0.50 PerfScore 7.25 +G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz + mov ecx, gword ptr [esi+0x0C] + ; gcrRegs +[ecx] + mov edx, gword ptr [ebp+0x14] + ; gcrRegs +[edx] + cmp ecx, edx + je SHORT G_M43911_IG05
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=52 bbWeight=0.50 PerfScore 10.75
+ ;; size=45 bbWeight=0.50 PerfScore 9.38
G_M43911_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz mov edx, dword ptr [esi+0x04] cmp edx, dword ptr [ebp+0x0C] jne SHORT G_M43911_IG08
- mov edx, gword ptr [esi] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x08]
+ mov ecx, gword ptr [esi]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x08] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG06
- test edx, edx - je SHORT G_M43911_IG08
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=59 bbWeight=0.50 PerfScore 13.25
+ ;; size=52 bbWeight=0.50 PerfScore 11.88
G_M43911_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref movzx eax, byte ptr [esi+0x08] cmp al, byte ptr [ebp+0x10] @@ -181,6 +172,6 @@ G_M43911_IG09: ; bbWeight=0.50, epilog, nogc, extend ret 20 ;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 210, prolog size 4, PerfScore 45.12, instruction count 81, allocated bytes for code 210 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
+; Total bytes of code 185, prolog size 4, PerfScore 41.00, instruction count 72, allocated bytes for code 185 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
; ============================================================

+41 (+21.13%) : 19464.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================

+28 (+23.73%) : 15445.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M36141_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M36141_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M36141_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M36141_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M36141_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M36141_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
; ============================================================

+28 (+23.73%) : 8831.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M57380_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M57380_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M57380_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M57380_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M57380_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M57380_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
; ============================================================

benchmarks.run_pgo.windows.x86.checked.mch

-5 (-29.41%) : 11837.dasm - System.Math:Min(short,short):short (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 3 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx - cmovle eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================

-5 (-29.41%) : 24261.dasm - System.Math:Min(short,short):short (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 6 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx - cmovle eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================

-5 (-29.41%) : 103821.dasm - System.Math:Min(short,short):short (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 11 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M25012_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M25012_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx movsx edx, dx
- movsx ecx, cx
cmp eax, edx
- mov eax, edx - cmovle eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M25012_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=00c99e4b) for method System.Math:Min(short,short):short (Tier1)
; ============================================================

+41 (+21.13%) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 30178.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M57380_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M57380_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M57380_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M57380_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M57380_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M57380_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 70115.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M36141_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M36141_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M36141_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M36141_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M36141_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M36141_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
; ============================================================

benchmarks.run_tiered.windows.x86.checked.mch

-22 (-18.33%) : 35423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)

@@ -8,8 +8,8 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> +; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> @@ -17,18 +17,19 @@ ;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp" -; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp" +; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP ; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP ;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP -;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP +;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect" -; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect" +; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown" +; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 16 - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 8 + mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx + ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00 G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi] + mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] +[eax] mov ecx, gword ptr [eax+0x08] @@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov eax, dword ptr [eax+0x54] call [eax+0x0C]<unknown method> ; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V02} + mov ecx, edi + ; gcrRegs +[ecx] + mov edx, dword ptr [ebx+0x54] + call [edx+0x10]<unknown method> + ; gcrRegs -[ecx edi] + mov edi, dword ptr [eax+0x04]
mov ebx, eax ; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx - ; GC ptr vars +{V02} - mov ecx, esi - ; gcrRegs +[ecx] - mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54] - call [eax+0x10]<unknown method> - ; gcrRegs -[ecx esi] +[eax] - mov esi, dword ptr [eax+0x04] - mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx - mov dword ptr [ebp-0x10], ecx - test esi, esi
+ mov dword ptr [ebp-0x10], edx + test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50 -G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz - mov edx, gword ptr [eax+4*edx+0x08] - ; gcrRegs +[edx] - mov gword ptr [ebp-0x1C], edx - ; GC ptr vars +{V17} - push edi - mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50 +G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx - mov ebx, gword ptr [ebp-0x1C] - mov ebx, dword ptr [ebx] - ; gcrRegs -[ebx] - mov ebx, dword ptr [ebx+0x44] - ; GC ptr vars -{V17} - call [ebx+0x08]<unknown method> - ; gcrRegs -[eax ecx edx] - mov ebx, dword ptr [ebp-0x10] - lea edx, [ebx+0x01] - mov ebx, edx - cmp esi, ebx - mov dword ptr [ebp-0x10], ebx - mov eax, gword ptr [ebp-0x18] - ; gcrRegs +[eax] - jg SHORT G_M33036_IG05 - ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi + mov edx, gword ptr [ebp-0x14] + ; gcrRegs +[edx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x44] + call [eax+0x08]<unknown method> + ; gcrRegs -[ecx edx] + mov eax, dword ptr [ebp-0x10] + inc eax + mov edx, eax + cmp edi, edx + mov dword ptr [ebp-0x10], edx + jg SHORT G_M33036_IG03 + ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi] - ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi] + ; GC ptr vars -{V02}
lea esp, [ebp-0x0C] pop ebx pop esi @@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b pop ebp ret ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[eax edi] - ; GC ptr vars +{V02 V10} - mov ebx, gword ptr [ebp-0x14] - ; gcrRegs +[ebx] - jmp SHORT G_M33036_IG03 - ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
; ============================================================

-18 (-12.50%) : 30662.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)

@@ -9,19 +9,18 @@ ; Final local variable assignments ; ; V00 this [V00,T04] ( 6, 14.50) ref -> edi this class-hnd single-def <Benchstone.BenchI.Permutate>
-; V01 arg1 [V01,T03] ( 10, 27.50) int -> esi single-def -; V02 loc0 [V02,T02] ( 11, 37 ) int -> [ebp-0x10]
+; V01 arg1 [V01,T03] ( 12, 32 ) int -> esi single-def +; V02 loc0 [V02,T02] ( 11, 37 ) int -> ebx
; V03 tmp0 [V03,T00] ( 6, 48 ) ref -> edx class-hnd "Inlining Arg" <int[]>
-; V04 tmp1 [V04,T09] ( 2, 8 ) int -> ebx "Inline stloc first use temp"
+; V04 tmp1 [V04,T09] ( 2, 8 ) int -> eax "Inline stloc first use temp"
; V05 tmp2 [V05,T05] ( 2, 16 ) int -> ecx "Strict ordering of exceptions for Array store" ; V06 tmp3 [V06,T01] ( 6, 48 ) ref -> eax class-hnd "Inlining Arg" <int[]> ; V07 tmp4 [V07,T10] ( 2, 8 ) int -> ecx "Inline stloc first use temp" ; V08 tmp5 [V08,T06] ( 2, 16 ) int -> edx "Strict ordering of exceptions for Array store"
-; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - aggressive" -; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - aggressive" -; V11 cse2 [V11,T11] ( 4, 5.50) int -> [ebp-0x14] spill-single-def "CSE - moderate"
+; V09 cse0 [V09,T07] ( 3, 12 ) int -> ecx "CSE - unknown" +; V10 cse1 [V10,T08] ( 3, 12 ) int -> edx "CSE - unknown"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -29,42 +28,38 @@ G_M46152_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 8
mov edi, ecx ; gcrRegs +[edi] mov esi, edx
- ;; size=13 bbWeight=1 PerfScore 5.00
+ ;; size=10 bbWeight=1 PerfScore 4.75
G_M46152_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz inc dword ptr [D1FFAB1EH] cmp esi, 1 je SHORT G_M46152_IG05 ;; size=11 bbWeight=1 PerfScore 4.25 G_M46152_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- lea ebx, [esi-0x01] - mov dword ptr [ebp-0x14], ebx - mov edx, ebx
+ lea edx, [esi-0x01]
mov ecx, edi ; gcrRegs +[ecx] call [Benchstone.BenchI.Permutate:PermuteArray(int):this] ; gcrRegs -[ecx]
- mov eax, ebx - test eax, eax
+ lea ebx, [esi-0x01] + test ebx, ebx
jle SHORT G_M46152_IG05
- ;; size=22 bbWeight=0.50 PerfScore 3.25
+ ;; size=18 bbWeight=0.50 PerfScore 2.75
G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov edx, gword ptr [edi+0x04] ; gcrRegs +[edx] mov ecx, dword ptr [edx+0x04] cmp esi, ecx jae SHORT G_M46152_IG06
- mov ebx, dword ptr [edx+4*esi+0x08] - cmp eax, ecx
+ mov eax, dword ptr [edx+4*esi+0x08] + cmp ebx, ecx
jae SHORT G_M46152_IG06
- mov ecx, dword ptr [edx+4*eax+0x08]
+ mov ecx, dword ptr [edx+4*ebx+0x08]
mov dword ptr [edx+4*esi+0x08], ecx
- mov dword ptr [ebp-0x10], eax - mov dword ptr [edx+4*eax+0x08], ebx - mov edx, dword ptr [ebp-0x14]
+ mov dword ptr [edx+4*ebx+0x08], eax + lea edx, [esi-0x01]
; gcrRegs -[edx] mov ecx, edi ; gcrRegs +[ecx] @@ -76,7 +71,6 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 cmp esi, edx jae SHORT G_M46152_IG06 mov ecx, dword ptr [eax+4*esi+0x08]
- mov ebx, dword ptr [ebp-0x10]
cmp ebx, edx jae SHORT G_M46152_IG06 mov edx, dword ptr [eax+4*ebx+0x08] @@ -84,24 +78,21 @@ G_M46152_IG04: ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 mov dword ptr [eax+4*ebx+0x08], ecx dec ebx test ebx, ebx
- mov eax, ebx - ; gcrRegs -[eax]
jg SHORT G_M46152_IG04
- ;; size=84 bbWeight=4 PerfScore 132.00
+ ;; size=76 bbWeight=4 PerfScore 121.00
G_M46152_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; gcrRegs -[edi] - lea esp, [ebp-0x0C]
+ ; gcrRegs -[eax edi]
pop ebx pop esi pop edi pop ebp ret
- ;; size=8 bbWeight=1 PerfScore 3.50
+ ;; size=5 bbWeight=1 PerfScore 3.00
G_M46152_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 9, PerfScore 148.00, instruction count 56, allocated bytes for code 144 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 135.75, instruction count 49, allocated bytes for code 126 (MethodHash=407b4bb7) for method Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
; ============================================================

-25 (-11.90%) : 22685.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)

@@ -9,19 +9,19 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 7, 5 ) byref -> esi this single-def
-; V01 arg1 [V01,T06] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
+; V01 arg1 [V01,T05] ( 5, 3 ) struct (20) [ebp+0x08] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.ActivityContext>
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivitySpanId> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Diagnostics.ActivityTraceId> ;* V04 tmp0 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivitySpanId> ;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Diagnostics.ActivityTraceId> ;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V07 tmp3 [V07,T01] ( 6, 6 ) ref -> edx class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp3 [V07,T01] ( 5, 5 ) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.String>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String> ;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V11 tmp7 [V11,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V13 tmp9 [V13,T11] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V15 tmp11 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" @@ -31,27 +31,30 @@ ;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V21 tmp17 [V21,T09] ( 2, 1 ) ubyte -> eax "Inline return value spill temp" ;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V23 tmp19 [V23,T12] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.String>
+; V29 tmp25 [V29,T02] ( 5, 5 ) ref -> edx class-hnd exact single-def "Inlining Arg" <System.String>
; V30 tmp26 [V30,T10] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
-; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> eax single-def "impAppendStmt"
+; V31 tmp27 [V31,T13] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V32 tmp28 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V33 tmp29 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V34 tmp30 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V37 tmp33 [V37,T03] ( 6, 4 ) ref -> edx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP -; V38 tmp34 [V38,T05] ( 6, 3 ) ref -> edx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP -; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> ecx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP -; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> ecx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP -; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> ecx single-def "argument with side effect" -; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
+; V37 tmp33 [V37,T03] ( 5, 3.50) ref -> ecx single-def "field V02._hexString (fldOffset=0x0)" P-INDEP +; V38 tmp34 [V38,T06] ( 5, 2.50) ref -> ecx single-def "field V03._hexString (fldOffset=0x0)" P-INDEP +; V39 tmp35 [V39,T04] ( 5, 3.50) ref -> edx single-def "field V04._hexString (fldOffset=0x0)" P-INDEP +; V40 tmp36 [V40,T07] ( 5, 2.50) ref -> edx single-def "field V05._hexString (fldOffset=0x0)" P-INDEP +; V41 tmp37 [V41,T14] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V42 tmp38 [V42,T15] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V43 tmp39 [V43,T16] ( 2, 2 ) byref -> edx single-def "argument with side effect" +; V44 cse0 [V44,T17] ( 3, 1.50) int -> eax "CSE - unknown" +; V45 cse1 [V45,T18] ( 3, 1.50) int -> eax "CSE - unknown" +; V46 cse2 [V46,T19] ( 3, 1.50) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -63,103 +66,91 @@ G_M43911_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b ; byrRegs +[esi] ;; size=6 bbWeight=1 PerfScore 2.50 G_M43911_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
- mov edx, gword ptr [esi+0x10] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x18]
+ mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x18] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG04 ;; size=10 bbWeight=1 PerfScore 4.25
-G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref - test edx, edx - je G_M43911_IG08
+G_M43911_IG03: ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000040 {esi}, byref, isz
test ecx, ecx je G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax
- je G_M43911_IG08 - ;; size=58 bbWeight=0.50 PerfScore 8.62 -G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz - mov edx, gword ptr [esi+0x0C] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x14] - ; gcrRegs +[ecx] - cmp edx, ecx - je SHORT G_M43911_IG05 - test edx, edx
je SHORT G_M43911_IG08
+ ;; size=47 bbWeight=0.50 PerfScore 7.25 +G_M43911_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz + mov ecx, gword ptr [esi+0x0C] + ; gcrRegs +[ecx] + mov edx, gword ptr [ebp+0x14] + ; gcrRegs +[edx] + cmp ecx, edx + je SHORT G_M43911_IG05
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=52 bbWeight=0.50 PerfScore 10.75
+ ;; size=45 bbWeight=0.50 PerfScore 9.38
G_M43911_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz mov edx, dword ptr [esi+0x04] cmp edx, dword ptr [ebp+0x0C] jne SHORT G_M43911_IG08
- mov edx, gword ptr [esi] - ; gcrRegs +[edx] - mov ecx, gword ptr [ebp+0x08]
+ mov ecx, gword ptr [esi]
; gcrRegs +[ecx]
- cmp edx, ecx
+ mov edx, gword ptr [ebp+0x08] + ; gcrRegs +[edx] + cmp ecx, edx
je SHORT G_M43911_IG06
- test edx, edx - je SHORT G_M43911_IG08
test ecx, ecx je SHORT G_M43911_IG08
- mov eax, dword ptr [edx+0x04] - cmp eax, dword ptr [ecx+0x04]
+ test edx, edx + je SHORT G_M43911_IG08 + mov eax, dword ptr [ecx+0x04] + cmp eax, dword ptr [edx+0x04]
jne SHORT G_M43911_IG08
- lea eax, bword ptr [edx+0x08] - ; byrRegs +[eax]
add ecx, 8 ; gcrRegs -[ecx] ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
+ add edx, 8
; gcrRegs -[edx]
- add edx, edx - push edx - mov edx, ecx
; byrRegs +[edx]
- mov ecx, eax
+ add eax, eax + push eax
call [<unknown method>]
- ; byrRegs -[eax ecx edx]
+ ; byrRegs -[ecx edx]
test eax, eax je SHORT G_M43911_IG08
- ;; size=59 bbWeight=0.50 PerfScore 13.25
+ ;; size=52 bbWeight=0.50 PerfScore 11.88
G_M43911_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref movzx eax, byte ptr [esi+0x08] cmp al, byte ptr [ebp+0x10] @@ -181,6 +172,6 @@ G_M43911_IG09: ; bbWeight=0.50, epilog, nogc, extend ret 20 ;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 210, prolog size 4, PerfScore 45.12, instruction count 81, allocated bytes for code 210 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
+; Total bytes of code 185, prolog size 4, PerfScore 41.00, instruction count 72, allocated bytes for code 185 (MethodHash=4a285478) for method System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
; ============================================================

+41 (+21.13%) : 40330.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 31293.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M36141_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M36141_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M36141_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M36141_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M36141_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M36141_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M36141_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M36141_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M36141_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M36141_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M36141_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M36141_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M36141_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M36141_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M36141_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M36141_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M36141_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M36141_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M36141_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M36141_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=695572d2) for method System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
; ============================================================

+28 (+23.73%) : 18168.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:g_GetParameterTypes|220(System.Reflection.ParameterInfo[]):System.Type

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.Type[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Reflection.ParameterInfo[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.Type[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd "Strict ordering of exceptions for Array store" <System.Type> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M57380_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M57380_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M57380_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M57380_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M57380_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M57380_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M57380_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M57380_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M57380_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M57380_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M57380_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M57380_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x1C]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x1C]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M57380_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M57380_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M57380_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M57380_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M57380_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M57380_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M57380_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M57380_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=7ff31fdb) for method System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
; ============================================================

coreclr_tests.run.windows.x86.checked.mch

-5 (-29.41%) : 49992.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 224 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M34407_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl movzx edx, dl
- movzx ecx, cl
cmp eax, edx
- mov eax, edx - cmovge eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M34407_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
; ============================================================

-5 (-29.41%) : 50004.dasm - System.Math:Max(byte,byte):byte (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 224 ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) byte -> ecx single-def
+; V00 arg0 [V00,T00] ( 3, 3 ) byte -> ecx single-def
; V01 arg1 [V01,T01] ( 3, 3 ) byte -> edx single-def
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - aggressive"
+; V02 cse0 [V02,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,15 +20,13 @@ G_M42290_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} G_M42290_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cl movsx edx, dl
- movsx ecx, cl
cmp eax, edx
- mov eax, edx - cmovge eax, ecx - ;; size=16 bbWeight=1 PerfScore 1.50
+ cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M42290_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 17 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=58895acd) for method System.Math:Max(byte,byte):byte (Tier1)
; ============================================================

-3 (-20.00%) : 231000.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)

@@ -8,9 +8,10 @@ ; with Dynamic PGO: edge weights are valid, and fgCalledCount is 393 ; Final local variable assignments ;
-; V00 arg0 [V00,T01] ( 3, 3 ) ubyte -> ecx single-def -; V01 arg1 [V01,T00] ( 4, 4 ) ubyte -> edx single-def -; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - aggressive"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 @@ -18,15 +19,14 @@ G_M34407_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ;; size=0 bbWeight=1 PerfScore 0.00 G_M34407_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ecx, dl
movzx edx, dl
- cmp eax, ecx
+ cmp eax, edx
cmovl eax, edx
- ;; size=14 bbWeight=1 PerfScore 1.25
+ ;; size=11 bbWeight=1 PerfScore 1.00
G_M34407_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 15, prolog size 0, PerfScore 2.25, instruction count 6, allocated bytes for code 15 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=b0577998) for method System.Math:Max(ubyte,ubyte):ubyte (Tier1)
; ============================================================

+6 (+24.00%) : 477513.dasm - Point:DistanceSquared(Point):int:this (FullOpts)

@@ -9,31 +9,40 @@ ; ; V00 this [V00,T00] ( 4, 4 ) ref -> ecx this class-hnd single-def <Point> ; V01 arg1 [V01,T01] ( 4, 4 ) ref -> edx class-hnd single-def <Point>
-; V02 cse0 [V02,T02] ( 3, 3 ) int -> eax "CSE - aggressive" -; V03 cse1 [V03,T03] ( 3, 3 ) int -> ecx "CSE - aggressive"
+; V02 cse0 [V02,T04] ( 2, 2 ) int -> eax "CSE - unknown" +; V03 cse1 [V03,T05] ( 2, 2 ) int -> esi "CSE - unknown" +; V04 cse2 [V04,T06] ( 2, 2 ) int -> ecx "CSE - unknown" +; V05 cse3 [V05,T07] ( 2, 2 ) int -> edx "CSE - unknown" +; V06 cse4 [V06,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V07 cse5 [V07,T03] ( 3, 3 ) int -> ecx "CSE - unknown"
; ; Lcl frame size = 0 G_M50994_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ push esi + ;; size=4 bbWeight=1 PerfScore 2.25
G_M50994_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref ; gcrRegs +[ecx edx] mov eax, dword ptr [ecx+0x04]
- sub eax, dword ptr [edx+0x04]
+ mov esi, dword ptr [edx+0x04] + sub eax, esi
imul eax, eax mov ecx, dword ptr [ecx+0x08] ; gcrRegs -[ecx]
- sub ecx, dword ptr [edx+0x08]
+ mov edx, dword ptr [edx+0x08] + ; gcrRegs -[edx] + sub ecx, edx
imul ecx, ecx add eax, ecx
- ;; size=20 bbWeight=1 PerfScore 14.25
+ ;; size=24 bbWeight=1 PerfScore 12.75
G_M50994_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop esi
pop ebp ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 25, prolog size 3, PerfScore 17.00, instruction count 11, allocated bytes for code 25 (MethodHash=7b1838cd) for method Point:DistanceSquared(Point):int:this (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 17.00, instruction count 15, allocated bytes for code 31 (MethodHash=7b1838cd) for method Point:DistanceSquared(Point):int:this (FullOpts)
; ============================================================

+32 (+27.59%) : 513573.dasm - Test10w5d.testout1:Func04421():double (FullOpts)

@@ -8,12 +8,11 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T01] ( 4, 3.50) double -> mm0 single-def
+; V00 loc0 [V00,T00] ( 8, 5.50) double -> [ebp-0x08] spill-single-def
;* V01 loc1 [V01 ] ( 0, 0 ) double -> zero-ref ;* V02 tmp0 [V02 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V03 tmp1 [V03 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V04 cse0 [V04,T00] ( 6, 4 ) double -> [ebp-0x08] spill-single-def "CSE - aggressive" -; V05 cse1 [V05,T02] ( 3, 3 ) double -> mm0 "CSE - aggressive"
+; V04 cse0 [V04,T01] ( 3, 3 ) double -> mm0 "CSE - unknown"
; TEMP_01 double -> [ebp-0x10] ; ; Lcl frame size = 16 @@ -30,20 +29,23 @@ G_M12661_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ; gcrRegs +[ecx] vdivsd xmm0, xmm0, qword ptr [ecx+0x04] vaddsd xmm0, xmm0, qword ptr [@RWD08]
+ vmovsd qword ptr [ebp-0x08], xmm0
vaddsd xmm1, xmm0, qword ptr [@RWD16]
- vmovsd qword ptr [ebp-0x08], xmm1
vucomisd xmm0, xmm1 jbe SHORT G_M12661_IG06 ;; size=54 bbWeight=1 PerfScore 36.00 G_M12661_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[ecx]
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, xmm0 jbe SHORT G_M12661_IG06
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, qword ptr [@RWD24] jb SHORT G_M12661_IG05
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=24 bbWeight=0.50 PerfScore 4.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=48 bbWeight=0.50 PerfScore 12.25
G_M12661_IG04: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -54,12 +56,13 @@ G_M12661_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {} ; gcrRegs +[ecx] call [<unknown method>] ; gcrRegs -[ecx]
- vmovsd xmm1, qword ptr [ebp-0x08]
+ vmovsd xmm0, qword ptr [ebp-0x08]
;; size=16 bbWeight=0.50 PerfScore 3.12 G_M12661_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M12661_IG07: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -71,6 +74,6 @@ RWD16 dq C14F000004000000h ; -4063232.03 RWD24 dq C060000000000000h ; -128
-; Total bytes of code 116, prolog size 6, PerfScore 47.88, instruction count 29, allocated bytes for code 116 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
+; Total bytes of code 148, prolog size 6, PerfScore 57.88, instruction count 33, allocated bytes for code 148 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
; ============================================================

+32 (+27.59%) : 519759.dasm - Test10w5d.testout1:Func04421():double (FullOpts)

@@ -8,11 +8,10 @@ ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 loc0 [V00,T01] ( 4, 3.50) double -> mm0 single-def
+; V00 loc0 [V00,T00] ( 8, 5.50) double -> [ebp-0x08] spill-single-def
;* V01 tmp0 [V01 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V02 tmp1 [V02 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
-; V03 cse0 [V03,T00] ( 6, 4 ) double -> [ebp-0x08] spill-single-def "CSE - aggressive" -; V04 cse1 [V04,T02] ( 3, 3 ) double -> mm0 "CSE - aggressive"
+; V03 cse0 [V03,T01] ( 3, 3 ) double -> mm0 "CSE - unknown"
; TEMP_01 double -> [ebp-0x10] ; ; Lcl frame size = 16 @@ -29,20 +28,23 @@ G_M12661_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ; gcrRegs +[ecx] vdivsd xmm0, xmm0, qword ptr [ecx+0x04] vaddsd xmm0, xmm0, qword ptr [@RWD08]
+ vmovsd qword ptr [ebp-0x08], xmm0
vaddsd xmm1, xmm0, qword ptr [@RWD16]
- vmovsd qword ptr [ebp-0x08], xmm1
vucomisd xmm0, xmm1 jbe SHORT G_M12661_IG06 ;; size=54 bbWeight=1 PerfScore 36.00 G_M12661_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[ecx]
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, xmm0 jbe SHORT G_M12661_IG06
+ vaddsd xmm1, xmm0, qword ptr [@RWD16]
vucomisd xmm1, qword ptr [@RWD24] jb SHORT G_M12661_IG05
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=24 bbWeight=0.50 PerfScore 4.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=48 bbWeight=0.50 PerfScore 12.25
G_M12661_IG04: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -53,12 +55,13 @@ G_M12661_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {} ; gcrRegs +[ecx] call [<unknown method>] ; gcrRegs -[ecx]
- vmovsd xmm1, qword ptr [ebp-0x08]
+ vmovsd xmm0, qword ptr [ebp-0x08]
;; size=16 bbWeight=0.50 PerfScore 3.12 G_M12661_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- vmovsd qword ptr [ebp-0x08], xmm1 - fld qword ptr [ebp-0x08] - ;; size=8 bbWeight=0.50 PerfScore 0.75
+ vaddsd xmm0, xmm0, qword ptr [@RWD16] + vmovsd qword ptr [ebp-0x10], xmm0 + fld qword ptr [ebp-0x10] + ;; size=16 bbWeight=0.50 PerfScore 3.25
G_M12661_IG07: ; bbWeight=0.50, epilog, nogc, extend mov esp, ebp pop ebp @@ -70,6 +73,6 @@ RWD16 dq C14F000004000000h ; -4063232.03 RWD24 dq C060000000000000h ; -128
-; Total bytes of code 116, prolog size 6, PerfScore 47.88, instruction count 29, allocated bytes for code 116 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
+; Total bytes of code 148, prolog size 6, PerfScore 57.88, instruction count 33, allocated bytes for code 148 (MethodHash=d7c3ce8a) for method Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
; ============================================================

libraries.crossgen2.windows.x86.checked.mch

-7 (-21.88%) : 242109.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)

@@ -9,47 +9,35 @@ ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 4, 3.50) ref -> esi this class-hnd single-def <System.Dynamic.DynamicMetaObject>
+; V00 this [V00,T00] ( 3, 3 ) ref -> ecx this class-hnd single-def <System.Dynamic.DynamicMetaObject> +; V01 cse0 [V01,T01] ( 3, 3 ) ref -> esi "CSE - unknown"
; ; Lcl frame size = 0
-G_M17334_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG - push edi
+G_M17334_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push esi
- mov esi, ecx
+ ;; size=1 bbWeight=1 PerfScore 1.00 +G_M17334_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref + ; gcrRegs +[ecx] + mov esi, gword ptr [ecx+0x04]
; gcrRegs +[esi]
- ;; size=4 bbWeight=1 PerfScore 2.25 -G_M17334_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz - mov edi, gword ptr [esi+0x04] - ; gcrRegs +[edi]
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
+ ; gcrRegs -[ecx]
; byrRegs +[eax] ; gcr arg pop 0
- cmp edi, gword ptr [eax+0x0724] - jne SHORT G_M17334_IG05 - ;; size=17 bbWeight=1 PerfScore 9.00 -G_M17334_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref - ; gcrRegs -[esi edi]
+ xor edx, edx + ; gcrRegs +[edx] + cmp esi, gword ptr [eax+0x0724] + mov eax, edx + ; gcrRegs +[eax]
; byrRegs -[eax]
- xor eax, eax - ; gcrRegs +[eax] - ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M17334_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ cmovne eax, esi + ;; size=22 bbWeight=1 PerfScore 8.75 +G_M17334_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
- pop edi
ret
- ;; size=3 bbWeight=0.50 PerfScore 1.00 -G_M17334_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax] +[esi] - mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - ;; size=3 bbWeight=0.50 PerfScore 1.00 -G_M17334_IG06: ; bbWeight=0.50, epilog, nogc, extend - pop esi - pop edi - ret - ;; size=3 bbWeight=0.50 PerfScore 1.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 2, PerfScore 14.38, instruction count 15, allocated bytes for code 32 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
+; Total bytes of code 25, prolog size 1, PerfScore 11.25, instruction count 9, allocated bytes for code 25 (MethodHash=07adbc49) for method System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
; ============================================================

-6 (-18.75%) : 226061.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)

@@ -10,6 +10,7 @@ ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Management.MarshalWbemObject> ; V01 arg1 [V01,T00] ( 5, 4.25) ref -> esi class-hnd single-def <System.Object>
+; V02 cse0 [V02,T01] ( 3, 2.25) int -> ecx "CSE - unknown"
; ; Lcl frame size = 0 @@ -19,18 +20,17 @@ G_M52331_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} ; gcrRegs +[esi] ;; size=3 bbWeight=1 PerfScore 1.25 G_M52331_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [esi] - cmp ecx, dword ptr [(reloc)] ; <unknown class>
+ mov ecx, dword ptr [(reloc)] ; <unknown class> + cmp dword ptr [esi], ecx
je SHORT G_M52331_IG04 ;; size=10 bbWeight=1 PerfScore 6.00 G_M52331_IG03: ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [(reloc)] ; <unknown class>
mov edx, esi ; gcrRegs +[edx] call [CORINFO_HELP_UNBOX] ; gcrRegs -[edx] ; gcr arg pop 0
- ;; size=14 bbWeight=0.25 PerfScore 1.31
+ ;; size=8 bbWeight=0.25 PerfScore 0.81
G_M52331_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref mov eax, dword ptr [esi+0x04] ;; size=3 bbWeight=1 PerfScore 2.00 @@ -39,6 +39,6 @@ G_M52331_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 1, PerfScore 12.06, instruction count 11, allocated bytes for code 32 (MethodHash=ae8c3394) for method System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 11.56, instruction count 10, allocated bytes for code 26 (MethodHash=ae8c3394) for method System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
; ============================================================

-6 (-18.18%) : 135342.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)

@@ -11,6 +11,7 @@ ; ; V00 this [V00,T01] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticDescriptor> ; V01 tmp0 [V01,T00] ( 4, 6.50) ref -> esi single-def "inline UNBOX clone1"
+; V02 cse0 [V02,T02] ( 3, 2.25) int -> ecx "CSE - unknown"
; ; Lcl frame size = 0 @@ -21,19 +22,18 @@ G_M37087_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 ; gcrRegs +[ecx] mov esi, gword ptr [ecx+0x1C] ; gcrRegs +[esi]
- mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
; gcrRegs -[ecx]
- cmp ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
+ cmp dword ptr [esi], ecx
je SHORT G_M37087_IG04 ;; size=13 bbWeight=1 PerfScore 8.00 G_M37087_IG03: ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- mov ecx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[System.String]
mov edx, esi ; gcrRegs +[edx] call [CORINFO_HELP_UNBOX] ; gcrRegs -[edx] ; gcr arg pop 0
- ;; size=14 bbWeight=0.25 PerfScore 1.31
+ ;; size=8 bbWeight=0.25 PerfScore 0.81
G_M37087_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref mov eax, gword ptr [esi+0x04] ; gcrRegs +[eax] @@ -43,6 +43,6 @@ G_M37087_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 1, PerfScore 13.81, instruction count 11, allocated bytes for code 33 (MethodHash=2b986f20) for method Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
+; Total bytes of code 27, prolog size 1, PerfScore 13.31, instruction count 10, allocated bytes for code 27 (MethodHash=2b986f20) for method Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
; ============================================================

+11 (+44.00%) : 165351.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,41 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill" ; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
; ; Lcl frame size = 0 G_M36355_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M36355_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref - ; gcrRegs +[ecx edx] - cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx ; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25 +G_M36355_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref + ; gcrRegs +[edx] + mov ebx, esi + ; gcrRegs +[ebx] + cmp byte ptr [ebx], bl + mov edi, dword ptr [(reloc)] ; const ptr + lea ecx, bword ptr [esi+edi] + ; byrRegs +[ecx] + dec dword ptr [ecx] + mov ecx, esi + ; gcrRegs +[ecx] + ; byrRegs -[ecx] + call [<unknown method>] + ; gcrRegs -[ecx edx ebx] +[eax] + ; gcr arg pop 0 + add esi, edi
; gcrRegs -[esi] ; byrRegs +[esi]
- mov eax, esi - ; byrRegs +[eax] - dec dword ptr [eax] - call [<unknown method>] - ; gcrRegs -[ecx edx] +[eax] - ; byrRegs -[eax] - ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M36355_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=3e3871fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================

+11 (+44.00%) : 165332.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,41 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill" ; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
; ; Lcl frame size = 0 G_M28163_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M28163_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref - ; gcrRegs +[ecx edx] - cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx ; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25 +G_M28163_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref + ; gcrRegs +[edx] + mov ebx, esi + ; gcrRegs +[ebx] + cmp byte ptr [ebx], bl + mov edi, dword ptr [(reloc)] ; const ptr + lea ecx, bword ptr [esi+edi] + ; byrRegs +[ecx] + dec dword ptr [ecx] + mov ecx, esi + ; gcrRegs +[ecx] + ; byrRegs -[ecx] + call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] + ; gcrRegs -[ecx edx ebx] +[eax] + ; gcr arg pop 0 + add esi, edi
; gcrRegs -[esi] ; byrRegs +[esi]
- mov eax, esi - ; byrRegs +[eax] - dec dword ptr [eax] - call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] - ; gcrRegs -[ecx edx] +[eax] - ; byrRegs -[eax] - ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M28163_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=ce8b91fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================

+11 (+44.00%) : 165352.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)

@@ -8,41 +8,50 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 5 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
+; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax> ;* V02 loc0 [V02 ] ( 0, 0 ) byref -> zero-ref
-; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> eax single-def "dup spill"
+; V03 tmp0 [V03,T01] ( 3, 6 ) byref -> ecx single-def "dup spill"
; V04 tmp1 [V04,T02] ( 3, 6 ) byref -> esi single-def "dup spill" ; V05 tmp2 [V05,T04] ( 2, 4 ) ref -> eax class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-; V06 cse0 [V06,T05] ( 3, 3 ) byref -> esi "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 3 ) int -> edi "CSE - unknown"
; ; Lcl frame size = 0 G_M26883_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push edi
push esi
- ;; size=1 bbWeight=1 PerfScore 1.00 -G_M26883_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref - ; gcrRegs +[ecx edx] - cmp byte ptr [ecx], cl
+ push ebx
mov esi, ecx ; gcrRegs +[esi]
- add esi, bword ptr [(reloc)] ; const ptr
+ ;; size=5 bbWeight=1 PerfScore 3.25 +G_M26883_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref + ; gcrRegs +[edx] + mov ebx, esi + ; gcrRegs +[ebx] + cmp byte ptr [ebx], bl + mov edi, dword ptr [(reloc)] ; const ptr + lea ecx, bword ptr [esi+edi] + ; byrRegs +[ecx] + dec dword ptr [ecx] + mov ecx, esi + ; gcrRegs +[ecx] + ; byrRegs -[ecx] + call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] + ; gcrRegs -[ecx edx ebx] +[eax] + ; gcr arg pop 0 + add esi, edi
; gcrRegs -[esi] ; byrRegs +[esi]
- mov eax, esi - ; byrRegs +[eax] - dec dword ptr [eax] - call [Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this] - ; gcrRegs -[ecx edx] +[eax] - ; byrRegs -[eax] - ; gcr arg pop 0
inc dword ptr [esi]
- ;; size=22 bbWeight=1 PerfScore 15.50
+ ;; size=27 bbWeight=1 PerfScore 15.25
G_M26883_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
+ pop edi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 25, prolog size 1, PerfScore 18.00, instruction count 10, allocated bytes for code 25 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
+; Total bytes of code 36, prolog size 3, PerfScore 21.00, instruction count 17, allocated bytes for code 36 (MethodHash=71d896fc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
; ============================================================

libraries.pmi.windows.x86.checked.mch

-10 (-45.45%) : 74157.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M18857_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M18857_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovle eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M18857_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=2809b656) for method System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=2809b656) for method System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================

-10 (-45.45%) : 74096.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M13207_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M13207_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M13207_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=6935cc68) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================

-10 (-45.45%) : 74100.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 G_M47351_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47351_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M47351_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=8d024708) for method System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================

+22 (+24.44%) : 204129.dasm - Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)

@@ -9,11 +9,13 @@ ; Final local variable assignments ; ; V00 this [V00,T01] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.Build.Framework.ProjectFinishedEventArgs>
-; V01 arg1 [V01,T00] ( 10, 7 ) ref -> esi class-hnd single-def <System.IO.BinaryWriter>
+; V01 arg1 [V01,T00] ( 9, 6.50) ref -> esi class-hnd single-def <System.IO.BinaryWriter>
; V02 tmp0 [V02,T02] ( 3, 5 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <System.String>
-; V03 cse0 [V03,T03] ( 5, 3 ) int -> [ebp-0x10] multi-def "CSE - aggressive"
+; V03 cse0 [V03,T04] ( 5, 2.50) int -> [ebp-0x10] multi-def "CSE - unknown" +; V04 cse1 [V04,T03] ( 5, 3 ) int -> [ebp-0x14] multi-def "CSE - unknown" +; TEMP_01 ref -> [ebp-0x18]
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M13784_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -21,12 +23,14 @@ G_M13784_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12 + xor eax, eax + mov dword ptr [ebp-0x18], eax
mov edi, ecx ; gcrRegs +[edi] mov esi, edx ; gcrRegs +[esi]
- ;; size=11 bbWeight=1 PerfScore 5.75
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M13784_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz mov ecx, edi ; gcrRegs +[ecx] @@ -44,8 +48,8 @@ G_M13784_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0 mov ecx, esi ; gcrRegs +[ecx] xor edx, edx
- mov eax, dword ptr [esi] - mov ebx, dword ptr [eax+0x30]
+ mov ebx, dword ptr [esi] + mov ebx, dword ptr [ebx+0x30]
call [ebx+0x10]<unknown method> ; gcrRegs -[ecx] jmp SHORT G_M13784_IG05 @@ -54,22 +58,29 @@ G_M13784_IG04: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe ; gcrRegs +[ebx] mov ecx, esi ; gcrRegs +[ecx]
+ mov gword ptr [ebp-0x18], ecx
mov edx, 1 mov eax, dword ptr [esi]
- mov eax, dword ptr [eax+0x30]
mov dword ptr [ebp-0x10], eax
+ mov ecx, dword ptr [eax+0x30] + ; gcrRegs -[ecx] + mov dword ptr [ebp-0x14], ecx + mov ecx, gword ptr [ebp-0x18] + ; gcrRegs +[ecx] + mov eax, dword ptr [ebp-0x14]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] mov ecx, esi ; gcrRegs +[ecx] mov edx, ebx ; gcrRegs +[edx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x38] - call [eax+0x14]<unknown method> - ; gcrRegs -[ecx edx ebx]
mov ebx, dword ptr [ebp-0x10]
- ;; size=33 bbWeight=0.50 PerfScore 8.50
+ ; gcrRegs -[ebx] + mov eax, dword ptr [ebx+0x38] + call [eax+0x14]<unknown method> + ; gcrRegs -[ecx edx] + mov ebx, dword ptr [ebp-0x14] + ;; size=46 bbWeight=0.50 PerfScore 10.00
G_M13784_IG05: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref movzx edx, byte ptr [edi+0x34] mov ecx, esi @@ -78,14 +89,14 @@ G_M13784_IG05: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 ; gcrRegs -[ecx esi edi] ;; size=9 bbWeight=1 PerfScore 5.25 G_M13784_IG06: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1 PerfScore 3.50
+ ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 90, prolog size 7, PerfScore 34.50, instruction count 41, allocated bytes for code 90 (MethodHash=44adca27) for method Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
+; Total bytes of code 112, prolog size 14, PerfScore 36.50, instruction count 47, allocated bytes for code 112 (MethodHash=44adca27) for method Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
; ============================================================

+29 (+24.58%) : 249769.dasm - System.Linq.Enumerable+ListPartition`1[System.Canon]:TryGetLast(byref):System.Canon:this (FullOpts)

@@ -8,7 +8,7 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 8, 6.50) ref -> esi this class-hnd single-def <System.Linq.Enumerable+ListPartition`1[System.__Canon]>
+; V00 this [V00,T00] ( 7, 6 ) ref -> esi this class-hnd single-def <System.Linq.Enumerable+ListPartition`1[System.__Canon]>
; V01 arg1 [V01,T02] ( 4, 3 ) byref -> edi single-def ; V02 loc0 [V02,T05] ( 4, 3 ) int -> eax ;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon> @@ -16,15 +16,15 @@ ; V05 tmp1 [V05,T04] ( 3, 4 ) int -> eax "VirtualCall with runtime lookup" ; V06 tmp2 [V06,T10] ( 2, 2 ) ref -> edi class-hnd single-def "impAppendStmt" <<unknown class>> ;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V08 tmp4 [V08,T09] ( 3, 2 ) int -> eax "VirtualCall with runtime lookup" -; V09 tmp5 [V09,T11] ( 2, 1 ) int -> ebx "Inline return value spill temp"
+; V08 tmp4 [V08,T09] ( 3, 2 ) int -> [ebp-0x10] "VirtualCall with runtime lookup" +; V09 tmp5 [V09,T11] ( 2, 1 ) int -> [ebp-0x14] spill-single-def "Inline return value spill temp"
; V10 tmp6 [V10,T06] ( 3, 3 ) int -> ecx "Inlining Arg"
-; V11 rat0 [V11,T03] ( 3, 4.40) int -> ecx "Spilling to split statement for tree" -; V12 rat1 [V12,T01] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable" -; V13 rat2 [V13,T08] ( 3, 2.20) int -> ecx "Spilling to split statement for tree" -; V14 rat3 [V14,T07] ( 3, 2.80) int -> eax "fgMakeTemp is creating a new local variable"
+; V11 cse0 [V11,T08] ( 4, 2.60) int -> ebx "CSE - unknown" +; V12 rat0 [V12,T03] ( 3, 4.40) int -> ecx "Spilling to split statement for tree" +; V13 rat1 [V13,T01] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable" +; V14 rat2 [V14,T07] ( 3, 2.80) int -> ecx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M14467_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push ebp @@ -32,19 +32,21 @@ G_M14467_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, edx ; byrRegs +[edi]
- ;; size=10 bbWeight=1 PerfScore 4.75
+ ;; size=13 bbWeight=1 PerfScore 5.00
G_M14467_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- mov ecx, dword ptr [esi]
+ mov ebx, dword ptr [esi] + mov ecx, ebx
mov edx, dword ptr [ecx+0x24] mov edx, dword ptr [edx+0x04] mov eax, dword ptr [edx+0x08] test eax, eax je SHORT G_M14467_IG04
- ;; size=15 bbWeight=1 PerfScore 9.25
+ ;; size=17 bbWeight=1 PerfScore 9.50
G_M14467_IG03: ; bbWeight=0.80, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz jmp SHORT G_M14467_IG05 ;; size=2 bbWeight=0.80 PerfScore 1.60 @@ -69,37 +71,44 @@ G_M14467_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000 ; byrRegs -[edi] mov ecx, dword ptr [esi+0x18] cmp eax, ecx
- mov ebx, ecx - cmovle ebx, eax - mov ecx, dword ptr [esi] - mov edx, dword ptr [ecx+0x24] - mov edx, dword ptr [edx+0x04] - mov eax, dword ptr [edx+0x0C] - test eax, eax
+ cmovg eax, ecx + mov dword ptr [ebp-0x14], eax + mov ecx, dword ptr [ebx+0x24] + mov ecx, dword ptr [ecx+0x04] + mov ecx, dword ptr [ecx+0x0C] + test ecx, ecx
je SHORT G_M14467_IG08
- ;; size=31 bbWeight=0.50 PerfScore 7.50
+ ;; size=30 bbWeight=0.50 PerfScore 6.88
G_M14467_IG07: ; bbWeight=0.40, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov eax, dword ptr [ebp-0x14] + mov edx, ecx + mov dword ptr [ebp-0x10], edx
jmp SHORT G_M14467_IG09
- ;; size=2 bbWeight=0.40 PerfScore 0.80
+ ;; size=10 bbWeight=0.40 PerfScore 1.70
G_M14467_IG08: ; bbWeight=0.10, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ mov ecx, ebx
mov edx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=10 bbWeight=0.10 PerfScore 0.12
+ mov dword ptr [ebp-0x10], eax + mov eax, dword ptr [ebp-0x14] + ;; size=18 bbWeight=0.10 PerfScore 0.35
G_M14467_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref mov ecx, edi ; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, eax + mov eax, dword ptr [ebp-0x10]
nop call [eax] ; gcrRegs -[ecx edi] +[eax]
- ;; size=9 bbWeight=0.50 PerfScore 1.88
+ ;; size=12 bbWeight=0.50 PerfScore 2.38
G_M14467_IG10: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
G_M14467_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref ; gcrRegs -[eax] ; byrRegs +[edi] @@ -108,13 +117,14 @@ G_M14467_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {e ; gcrRegs +[eax] ;; size=5 bbWeight=0.50 PerfScore 0.62 G_M14467_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.75
-; Total bytes of code 118, prolog size 6, PerfScore 39.27, instruction count 53, allocated bytes for code 118 (MethodHash=6fbdc77c) for method System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
+; Total bytes of code 147, prolog size 9, PerfScore 41.27, instruction count 63, allocated bytes for code 147 (MethodHash=6fbdc77c) for method System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
; ============================================================

+46 (+29.30%) : 171467.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)

@@ -10,20 +10,21 @@ ; ; V00 this [V00,T05] ( 8, 13.96) ref -> esi this class-hnd single-def <System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension> ;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Xsl.XsltContext>
-; V02 arg2 [V02,T07] ( 8, 11.52) ref -> edi class-hnd single-def <System.Object[]>
+; V02 arg2 [V02,T07] ( 6, 10.98) ref -> edi class-hnd single-def <System.Object[]>
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XPath.XPathNavigator>
-; V04 loc0 [V04,T00] ( 22, 38.54) int -> ebx
+; V04 loc0 [V04,T00] ( 22, 38.54) int -> [ebp-0x10]
;* V05 tmp0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object> ;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo> ;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> eax "arr expr" -; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> eax "arr expr"
+; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> edx "arr expr" +; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> ebx "arr expr"
; V10 tmp5 [V10,T03] ( 4, 16 ) ref -> ecx "argument with side effect" ; V11 tmp6 [V11,T04] ( 4, 16 ) int -> edx "argument with side effect" ; V12 tmp7 [V12,T06] ( 3, 11.88) ref -> ecx single-def "argument with side effect" ; V13 tmp8 [V13,T08] ( 2, 7.92) ref -> edx single-def "argument with side effect"
+; V14 cse0 [V14,T09] ( 4, 2.54) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,71 +32,84 @@ G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, gword ptr [ebp+0x0C] ; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50 -G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=1 PerfScore 5.75 +G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [edi+0x04]
- dec ebx - js SHORT G_M50779_IG07 - ;; size=6 bbWeight=1 PerfScore 3.25
+ mov dword ptr [ebp-0x14], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M50779_IG07 + ;; size=17 bbWeight=1 PerfScore 4.75
G_M50779_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [edi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M50779_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50779_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
+ mov eax, ebx
jns SHORT G_M50779_IG04
- ;; size=47 bbWeight=3.96 PerfScore 98.01
+ ;; size=64 bbWeight=3.96 PerfScore 109.89
G_M50779_IG05: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz jmp SHORT G_M50779_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M50779_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp ebx, dword ptr [edi+0x04] - jae SHORT G_M50779_IG09 - mov ecx, gword ptr [edi+4*ebx+0x08]
+ cmp eax, ebx + jae SHORT G_M50779_IG10 + mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae SHORT G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae SHORT G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
- jns SHORT G_M50779_IG06 - ;; size=52 bbWeight=0.04 PerfScore 1.15
+ mov eax, ebx + jns SHORT G_M50779_IG09 + ;; size=60 bbWeight=0.04 PerfScore 1.16
G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref mov ecx, gword ptr [esi+0x18] ; gcrRegs +[ecx] @@ -111,18 +125,24 @@ G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=0 ; gcrRegs -[ecx edx esi edi] +[eax] ;; size=21 bbWeight=1.98 PerfScore 29.70 G_M50779_IG08: ; bbWeight=1.98, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 8
- ;; size=7 bbWeight=1.98 PerfScore 7.92 -G_M50779_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax]
+ ;; size=10 bbWeight=1.98 PerfScore 8.91 +G_M50779_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi edi] + mov ebx, dword ptr [ebp-0x14] + jmp SHORT G_M50779_IG06 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M50779_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 157, prolog size 6, PerfScore 151.49, instruction count 63, allocated bytes for code 157 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
+; Total bytes of code 203, prolog size 9, PerfScore 164.81, instruction count 75, allocated bytes for code 203 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
; ============================================================

libraries_tests.run.windows.x86.Release.mch

-10 (-45.45%) : 363713.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M14398_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M14398_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
; ============================================================

-10 (-45.45%) : 363945.dasm - System.Byte:System.Numerics.INumberBase.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M14398_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M14398_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M14398_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=79f0c7c1) for method System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
; ============================================================

-10 (-45.45%) : 365189.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)

@@ -8,29 +8,26 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M43536_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi - ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M43536_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovle eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovg eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M43536_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 1, PerfScore 4.25, instruction count 10, allocated bytes for code 22 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
+; Total bytes of code 12, prolog size 0, PerfScore 2.00, instruction count 5, allocated bytes for code 12 (MethodHash=9a2c55ef) for method System.Int16:Min(short,short):short (Instrumented Tier1)
; ============================================================

+38 (+32.48%) : 386783.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)

@@ -11,15 +11,18 @@ ; ; V00 arg0 [V00,T01] ( 4, 3 ) ref -> esi class-hnd single-def <System.String> ;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
-; V02 loc1 [V02,T02] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>> -; V03 loc2 [V03,T00] ( 5, 5 ) int -> ebx -; V04 loc3 [V04,T03] ( 5, 3 ) ref -> [ebp-0x10] class-hnd spill-single-def <System.Text.EncodingProvider>
+; V02 loc1 [V02,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V03 loc2 [V03,T00] ( 5, 5 ) int -> [ebp-0x10] +; V04 loc3 [V04,T02] ( 5, 3 ) ref -> [ebp-0x18] class-hnd spill-single-def <System.Text.EncodingProvider>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.Encoding>
-; V06 tmp0 [V06,T04] ( 5, 3 ) ref -> eax "guarded devirt return temp"
+; V06 tmp0 [V06,T03] ( 5, 3 ) ref -> eax "guarded devirt return temp"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.CodePagesEncodingProvider> ; V08 tmp2 [V08,T05] ( 3, 3 ) int -> eax "Inline stloc first use temp"
+; V09 cse0 [V09,T06] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; TEMP_02 ref -> [ebp-0x1C] +; TEMP_01 int -> [ebp-0x20]
;
-; Lcl frame size = 4
+; Lcl frame size = 20
G_M49734_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -27,30 +30,34 @@ G_M49734_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 20 + xor eax, eax + mov dword ptr [ebp-0x1C], eax
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M49734_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz cmp gword ptr [D1FFAB1EH], 0 ; data for <unknown class>:<unknown field> je SHORT G_M49734_IG07 mov edi, gword ptr [D1FFAB1EH] ; static handle ; gcrRegs +[edi] xor ebx, ebx
- cmp dword ptr [edi+0x04], 0
+ mov eax, dword ptr [edi+0x04] + mov dword ptr [ebp-0x14], eax + test eax, eax
jle SHORT G_M49734_IG07
- ;; size=23 bbWeight=1 PerfScore 10.25
+ ;; size=27 bbWeight=1 PerfScore 10.50
G_M49734_IG03: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [edi+4*ebx+0x08] - ; gcrRegs +[eax] - mov gword ptr [ebp-0x10], eax
+ mov edx, gword ptr [edi+4*ebx+0x08] + ; gcrRegs +[edx] + mov gword ptr [ebp-0x18], edx
; GC ptr vars +{V04}
- cmp dword ptr [eax], 0xD1FFAB1E
+ cmp dword ptr [edx], 0xD1FFAB1E
jne SHORT G_M49734_IG09 mov ecx, esi ; gcrRegs +[ecx] call [<unknown method>]
- ; gcrRegs -[eax ecx]
+ ; gcrRegs -[ecx edx]
test eax, eax jne SHORT G_M49734_IG04 xor eax, eax @@ -59,7 +66,7 @@ G_M49734_IG03: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 ;; size=31 bbWeight=1 PerfScore 13.75 G_M49734_IG04: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[eax]
- mov ecx, gword ptr [ebp-0x10]
+ mov ecx, gword ptr [ebp-0x18]
; gcrRegs +[ecx] mov edx, eax ; GC ptr vars -{V04} @@ -70,50 +77,58 @@ G_M49734_IG05: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs= test eax, eax jne SHORT G_M49734_IG06 inc ebx
- cmp dword ptr [edi+0x04], ebx
+ mov edx, dword ptr [ebp-0x14] + cmp edx, ebx
jg SHORT G_M49734_IG03 jmp SHORT G_M49734_IG07
- ;; size=12 bbWeight=1 PerfScore 7.50
+ ;; size=14 bbWeight=1 PerfScore 5.75
G_M49734_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc ; gcrRegs -[esi edi]
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M49734_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs -[eax] xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=0 PerfScore 0.00 G_M49734_IG08: ; bbWeight=0, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=0 PerfScore 0.00 -G_M49734_IG09: ; bbWeight=0, gcVars=00000008 {V04}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M49734_IG09: ; bbWeight=0, gcVars=00000004 {V04}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[esi edi]
- ; GC ptr vars +{V03 V04} - mov eax, gword ptr [ebp-0x10] - ; gcrRegs +[eax] - mov ecx, eax - ; gcrRegs +[ecx] - mov edx, esi
+ ; GC ptr vars +{V02 V04} + mov dword ptr [ebp-0x10], ebx + mov edx, gword ptr [ebp-0x18]
; gcrRegs +[edx]
- mov eax, dword ptr [eax] - ; gcrRegs -[eax] - mov eax, dword ptr [eax+0x2C] - ; GC ptr vars -{V03 V04} - call [eax+0x10]<unknown method>
+ mov ecx, edx + ; gcrRegs +[ecx] + mov gword ptr [ebp-0x1C], ecx + mov edx, esi + mov ecx, gword ptr [ebp-0x18] + mov ecx, dword ptr [ecx] + ; gcrRegs -[ecx] + mov ecx, dword ptr [ecx+0x2C] + mov dword ptr [ebp-0x20], ecx + mov ecx, gword ptr [ebp-0x1C] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x20] + ; GC ptr vars -{V02 V04} + call [ebx+0x10]<unknown method>
; gcrRegs -[ecx edx] +[eax]
+ mov ebx, dword ptr [ebp-0x10]
jmp SHORT G_M49734_IG05
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 117, prolog size 7, PerfScore 41.25, instruction count 52, allocated bytes for code 117 (MethodHash=7d0f3db9) for method System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
+; Total bytes of code 155, prolog size 14, PerfScore 40.25, instruction count 64, allocated bytes for code 155 (MethodHash=7d0f3db9) for method System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
; ============================================================

+47 (+32.87%) : 459707.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)

@@ -9,21 +9,24 @@ ; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T04] ( 4, 3 ) int -> esi single-def -; V01 loc0 [V01,T08] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> -; V02 loc1 [V02,T05] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>> -; V03 loc2 [V03,T03] ( 5, 5 ) int -> ebx -; V04 loc3 [V04,T09] ( 4, 2 ) ref -> ecx class-hnd <System.Text.EncodingProvider>
+; V00 arg0 [V00,T04] ( 4, 3 ) int -> [ebp-0x10] single-def +; V01 loc0 [V01,T07] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V02 loc1 [V02,T08] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V03 loc2 [V03,T03] ( 5, 5 ) int -> [ebp-0x14] +; V04 loc3 [V04,T10] ( 4, 2 ) ref -> ecx class-hnd <System.Text.EncodingProvider>
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.Encoding>
-; V06 tmp0 [V06,T07] ( 5, 3 ) ref -> eax "guarded devirt return temp"
+; V06 tmp0 [V06,T06] ( 5, 3 ) ref -> edx "guarded devirt return temp"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.Tests.EncodingTests+ThreadStaticEncodingProvider> ; V08 tmp2 [V08,T00] ( 4, 8 ) ref -> ecx class-hnd "dup spill" <System.Text.EncodingProvider> ;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref
-; V10 rat0 [V10,T06] ( 3, 4 ) byref -> eax "TLS field access" -; V11 rat1 [V11,T01] ( 3, 6 ) int -> ecx "TLS access" -; V12 rat2 [V12,T02] ( 3, 6 ) int -> ecx "ThreadStaticBlockBase access"
+; V10 cse0 [V10,T09] ( 3, 3 ) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V11 rat0 [V11,T05] ( 3, 4 ) byref -> edx "TLS field access" +; V12 rat1 [V12,T01] ( 3, 6 ) int -> ecx "TLS access" +; V13 rat2 [V13,T02] ( 3, 6 ) int -> ecx "ThreadStaticBlockBase access" +; TEMP_02 int -> [ebp-0x1C] +; TEMP_01 int -> [ebp-0x20]
;
-; Lcl frame size = 0
+; Lcl frame size = 20
G_M39147_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,99 +34,124 @@ G_M39147_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
+ sub esp, 20
mov esi, ecx
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M39147_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov edi, gword ptr [D1FFAB1EH] ; static handle ; gcrRegs +[edi] test edi, edi
- je SHORT G_M39147_IG08
+ je SHORT G_M39147_IG09
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0 - jle SHORT G_M39147_IG08 - ;; size=18 bbWeight=1 PerfScore 7.50
+ mov eax, dword ptr [edi+0x04] + mov dword ptr [ebp-0x18], eax + test eax, eax + jle SHORT G_M39147_IG09 + ;; size=22 bbWeight=1 PerfScore 7.75
G_M39147_IG03: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov ecx, gword ptr [edi+4*ebx+0x08] ; gcrRegs +[ecx] cmp dword ptr [ecx], 0xD1FFAB1E
- jne SHORT G_M39147_IG11
+ jne SHORT G_M39147_IG12
mov ecx, dword ptr FS:[0x002C] ; gcrRegs -[ecx] mov ecx, dword ptr [ecx+0x0C] cmp dword ptr [ecx+0x80], 6
- jl SHORT G_M39147_IG10
+ jl SHORT G_M39147_IG11
mov ecx, dword ptr [ecx+0x84] mov ecx, dword ptr [ecx+0x18] test ecx, ecx
- je SHORT G_M39147_IG10 - mov eax, bword ptr [ecx] - ; byrRegs +[eax] - add eax, 8
+ je SHORT G_M39147_IG11 + mov edx, bword ptr [ecx] + ; byrRegs +[edx] + add edx, 8
;; size=49 bbWeight=1 PerfScore 20.50
-G_M39147_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000001 {eax}, byref, isz - mov ecx, gword ptr [eax]
+G_M39147_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000004 {edx}, byref, isz + mov ecx, gword ptr [edx]
; gcrRegs +[ecx] test ecx, ecx jne SHORT G_M39147_IG05
- xor eax, eax - ; gcrRegs +[eax] - ; byrRegs -[eax]
+ xor edx, edx + ; gcrRegs +[edx] + ; byrRegs -[edx]
jmp SHORT G_M39147_IG06 ;; size=10 bbWeight=1 PerfScore 5.50 G_M39147_IG05: ; bbWeight=1, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
+ ; gcrRegs -[edx] + mov dword ptr [ebp-0x10], esi
mov edx, esi
- mov eax, dword ptr [ecx] - mov eax, dword ptr [eax+0x2C] - call [eax+0x14]<unknown method>
+ mov esi, dword ptr [ecx] + mov esi, dword ptr [esi+0x2C] + call [esi+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
- ;; size=10 bbWeight=1 PerfScore 7.25 -G_M39147_IG06: ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz - test eax, eax
+ mov edx, eax + ; gcrRegs +[edx] + mov esi, dword ptr [ebp-0x10] + ;; size=18 bbWeight=1 PerfScore 9.50 +G_M39147_IG06: ; bbWeight=1, gcrefRegs=00000084 {edx edi}, byrefRegs=00000000 {}, byref, isz + ; gcrRegs -[eax] + test edx, edx
jne SHORT G_M39147_IG07 inc ebx
- cmp dword ptr [edi+0x04], ebx
+ mov eax, dword ptr [ebp-0x18] + cmp eax, ebx
jg SHORT G_M39147_IG03
- jmp SHORT G_M39147_IG08 - ;; size=12 bbWeight=1 PerfScore 7.50 -G_M39147_IG07: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+ jmp SHORT G_M39147_IG09 + ;; size=14 bbWeight=1 PerfScore 5.75 +G_M39147_IG07: ; bbWeight=0, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
; gcrRegs -[edi]
+ mov eax, edx + ; gcrRegs +[eax] + ;; size=2 bbWeight=0 PerfScore 0.00 +G_M39147_IG08: ; bbWeight=0, epilog, nogc, extend + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00 -G_M39147_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax]
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M39147_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref + ; gcrRegs -[eax edx]
xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=0 PerfScore 0.00
-G_M39147_IG09: ; bbWeight=0, epilog, nogc, extend
+G_M39147_IG10: ; bbWeight=0, epilog, nogc, extend + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00 -G_M39147_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M39147_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[edi] mov ecx, 6 call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED ; byrRegs +[eax]
+ mov edx, eax + ; byrRegs +[edx]
jmp SHORT G_M39147_IG04
- ;; size=12 bbWeight=0 PerfScore 0.00 -G_M39147_IG11: ; bbWeight=0, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=0 PerfScore 0.00 +G_M39147_IG12: ; bbWeight=0, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
- ; byrRegs -[eax]
+ ; byrRegs -[eax edx] + mov dword ptr [ebp-0x14], ebx
mov edx, esi
- mov eax, dword ptr [ecx] - mov eax, dword ptr [eax+0x2C] - call [eax+0x14]<unknown method>
+ mov dword ptr [ebp-0x1C], edx + mov edx, dword ptr [ecx] + mov edx, dword ptr [edx+0x2C] + mov dword ptr [ebp-0x20], edx + mov edx, dword ptr [ebp-0x1C] + mov ebx, dword ptr [ebp-0x20] + call [ebx+0x14]<unknown method>
; gcrRegs -[ecx] +[eax]
+ mov edx, eax + ; gcrRegs +[edx] + mov ebx, dword ptr [ebp-0x14]
jmp SHORT G_M39147_IG06
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 143, prolog size 8, PerfScore 52.75, instruction count 59, allocated bytes for code 143 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
+; Total bytes of code 190, prolog size 11, PerfScore 53.75, instruction count 77, allocated bytes for code 190 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
; ============================================================

+23 (+35.94%) : 386787.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)

@@ -8,15 +8,16 @@ ; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2 ; Final local variable assignments ;
-; V00 arg0 [V00,T02] ( 3, 3 ) int -> esi single-def -; V01 loc0 [V01,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> -; V02 loc1 [V02,T03] ( 4, 4 ) ref -> edi class-hnd single-def <<unknown class>>
+; V00 arg0 [V00,T02] ( 3, 3 ) int -> [ebp-0x10] single-def +; V01 loc0 [V01,T03] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>> +; V02 loc1 [V02,T04] ( 3, 3 ) ref -> edi class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T01] ( 5, 5 ) int -> ebx ;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.EncodingProvider>
-; V05 loc4 [V05,T05] ( 3, 2 ) ref -> eax class-hnd <System.Text.Encoding>
+; V05 loc4 [V05,T06] ( 3, 2 ) ref -> eax class-hnd <System.Text.Encoding>
; V06 tmp0 [V06,T00] ( 3, 6 ) ref -> ecx "argument with side effect"
+; V07 cse0 [V07,T05] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M39147_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push ebp @@ -24,53 +25,65 @@ G_M39147_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b push edi push esi push ebx
+ sub esp, 8
mov esi, ecx
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M39147_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov edi, gword ptr [D1FFAB1EH] ; static handle ; gcrRegs +[edi] test edi, edi
- je SHORT G_M39147_IG05
+ je SHORT G_M39147_IG06
xor ebx, ebx
- cmp dword ptr [edi+0x04], 0 - jle SHORT G_M39147_IG05 - ;; size=18 bbWeight=1 PerfScore 7.50
+ mov eax, dword ptr [edi+0x04] + mov dword ptr [ebp-0x14], eax + test eax, eax + jle SHORT G_M39147_IG06 + ;; size=22 bbWeight=1 PerfScore 7.75
G_M39147_IG03: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz mov ecx, gword ptr [edi+4*ebx+0x08] ; gcrRegs +[ecx]
+ mov dword ptr [ebp-0x10], esi
mov edx, esi
- mov eax, dword ptr [ecx] - mov eax, dword ptr [eax+0x2C] - call [eax+0x14]<unknown method>
+ mov esi, dword ptr [ecx] + mov esi, dword ptr [esi+0x2C] + call [esi+0x14]<unknown method>
; gcrRegs -[ecx] +[eax] test eax, eax
- jne SHORT G_M39147_IG04
+ jne SHORT G_M39147_IG05
inc ebx
- cmp dword ptr [edi+0x04], ebx - jg SHORT G_M39147_IG03 - jmp SHORT G_M39147_IG05 - ;; size=26 bbWeight=1 PerfScore 16.75 -G_M39147_IG04: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc - ; gcrRegs -[edi]
+ mov esi, dword ptr [ebp-0x14] + cmp esi, ebx + jg SHORT G_M39147_IG04 + jmp SHORT G_M39147_IG06 + ;; size=31 bbWeight=1 PerfScore 16.00 +G_M39147_IG04: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz + ; gcrRegs -[eax] + mov esi, dword ptr [ebp-0x10] + jmp SHORT G_M39147_IG03 + ;; size=5 bbWeight=0.50 PerfScore 1.50 +G_M39147_IG05: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc + ; gcrRegs -[edi] +[eax] + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00 -G_M39147_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=8 bbWeight=0 PerfScore 0.00 +G_M39147_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax] xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=0 PerfScore 0.00
-G_M39147_IG06: ; bbWeight=0, epilog, nogc, extend
+G_M39147_IG07: ; bbWeight=0, epilog, nogc, extend + lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=5 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 6, PerfScore 28.75, instruction count 34, allocated bytes for code 64 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
+; Total bytes of code 87, prolog size 9, PerfScore 30.00, instruction count 43, allocated bytes for code 87 (MethodHash=68226714) for method System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
; ============================================================

librariestestsnotieredcompilation.run.windows.x86.Release.mch

-10 (-38.46%) : 165761.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)

@@ -9,29 +9,26 @@ ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]>
-; V01 arg1 [V01,T00] ( 4, 4 ) ubyte -> edx single-def -; V02 arg2 [V02,T01] ( 2, 2 ) ubyte -> eax single-def -; V03 tmp0 [V03,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V01 arg1 [V01,T00] ( 3, 3 ) ubyte -> edx single-def +; V02 arg2 [V02,T04] ( 1, 1 ) ubyte -> [esp+0x04] single-def +; V03 tmp0 [V03,T03] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V04 cse0 [V04,T01] ( 3, 3 ) int -> eax "CSE - unknown" +; V05 cse1 [V05,T02] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M46726_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebx - mov eax, dword ptr [esp+0x08] - ;; size=5 bbWeight=1 PerfScore 2.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M46726_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- movzx ecx, dl - movzx ebx, al - movzx edx, dl - movzx eax, al - cmp ecx, ebx - cmovge eax, edx - ;; size=17 bbWeight=1 PerfScore 1.50
+ movzx eax, dl + movzx edx, byte ptr [esp+0x04] + cmp eax, edx + cmovl eax, edx + ;; size=13 bbWeight=1 PerfScore 1.75
G_M46726_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
ret 4
- ;; size=4 bbWeight=1 PerfScore 2.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 26, prolog size 1, PerfScore 6.00, instruction count 10, allocated bytes for code 26 (MethodHash=888f4979) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 3.75, instruction count 5, allocated bytes for code 16 (MethodHash=888f4979) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
; ============================================================

-10 (-38.46%) : 167197.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)

@@ -8,32 +8,29 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) short -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) short -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) short -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) short -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) short -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) short -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> edx "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 G_M45949_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- push esi - ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M45949_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx eax, cx
- movsx esi, dx - movsx ecx, cx
movsx edx, dx
- cmp eax, esi - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M45949_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
pop ebp ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 6.00, instruction count 13, allocated bytes for code 26 (MethodHash=0a454c82) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
+; Total bytes of code 16, prolog size 3, PerfScore 3.75, instruction count 8, allocated bytes for code 16 (MethodHash=0a454c82) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
; ============================================================

-10 (-38.46%) : 166222.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)

@@ -8,32 +8,29 @@ ; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T00] ( 4, 4 ) ubyte -> ecx single-def -; V01 arg1 [V01,T01] ( 4, 4 ) ubyte -> edx single-def -; V02 tmp0 [V02,T02] ( 2, 2 ) ubyte -> eax "Inline return value spill temp"
+; V00 arg0 [V00,T00] ( 3, 3 ) ubyte -> ecx single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ubyte -> edx single-def +; V02 tmp0 [V02,T04] ( 2, 2 ) ubyte -> eax "Inline return value spill temp" +; V03 cse0 [V03,T02] ( 3, 3 ) int -> eax "CSE - unknown" +; V04 cse1 [V04,T03] ( 3, 3 ) int -> edx "CSE - unknown"
; ; Lcl frame size = 0 G_M9245_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- push ebx - ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M9245_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movzx eax, cl
- movzx ebx, dl - movzx ecx, cl
movzx edx, dl
- cmp eax, ebx - mov eax, edx - cmovge eax, ecx - ;; size=19 bbWeight=1 PerfScore 1.75
+ cmp eax, edx + cmovl eax, edx + ;; size=11 bbWeight=1 PerfScore 1.00
G_M9245_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx
pop ebp ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 26, prolog size 4, PerfScore 6.00, instruction count 13, allocated bytes for code 26 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 16, prolog size 3, PerfScore 3.75, instruction count 8, allocated bytes for code 16 (MethodHash=8597dbe2) for method System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
; ============================================================

+33 (+22.92%) : 71682.dasm - System.Collections.Immutable.ImmutableSortedDictionary2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair2[int,System.Canon],System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[System.Canon]):ubyte:this (FullOpts)

@@ -8,30 +8,29 @@ ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 5, 4.50) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]> -; V01 arg1 [V01,T14] ( 2, 1.50) struct ( 8) [ebp+0x0C] do-not-enreg[SF] ld-addr-op single-def <System.Collections.Generic.KeyValuePair`2[int,System.__Canon]>
+; V00 this [V00,T00] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]> +; V01 arg1 [V01,T13] ( 2, 1.50) struct ( 8) [ebp+0x0C] do-not-enreg[SF] ld-addr-op single-def <System.Collections.Generic.KeyValuePair`2[int,System.__Canon]>
; V02 arg2 [V02,T01] ( 4, 4 ) ref -> edx class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
-; V03 arg3 [V03,T13] ( 2, 1.50) ref -> edi class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
+; V03 arg3 [V03,T12] ( 2, 1.50) ref -> edi class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
; V04 loc0 [V04,T08] ( 3, 2.50) ref -> eax class-hnd exact single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]> ;* V05 tmp0 [V05 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T11] ( 2, 2 ) ref -> ebx class-hnd single-def "impAppendStmt" <System.__Canon>
+; V09 tmp4 [V09,T10] ( 2, 2 ) ref -> [ebp-0x14] class-hnd spill-single-def "impAppendStmt" <System.__Canon>
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V11 tmp6 [V11,T10] ( 3, 2 ) int -> eax "VirtualCall with runtime lookup"
+; V11 tmp6 [V11,T09] ( 3, 2 ) int -> [ebp-0x10] "VirtualCall with runtime lookup"
;* V12 tmp7 [V12 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V13 cse0 [V13,T15] ( 0, 0 ) int -> zero-ref "CSE - aggressive" -;* V14 rat0 [V14,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V15 rat1 [V15,T06] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V16 rat2 [V16,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" -;* V17 rat3 [V17,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V18 rat4 [V18,T12] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V19 rat5 [V19,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" -; V20 rat6 [V20,T09] ( 3, 2.20) int -> ecx "Spilling to split statement for tree" -; V21 rat7 [V21,T07] ( 3, 2.80) int -> eax "fgMakeTemp is creating a new local variable"
+;* V13 cse0 [V13,T14] ( 0, 0 ) int -> zero-ref "CSE - unknown" +; V14 cse1 [V14,T06] ( 3, 1.60) int -> ebx "CSE - unknown" +;* V15 rat0 [V15,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" +;* V16 rat1 [V16,T05] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V17 rat2 [V17,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" +;* V18 rat3 [V18,T11] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V19 rat4 [V19,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" +; V20 rat5 [V20,T07] ( 3, 2.80) int -> ecx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M9385_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -39,18 +38,19 @@ G_M9385_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, gword ptr [ebp+0x08] ; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50
+ ;; size=14 bbWeight=1 PerfScore 5.75
G_M9385_IG02: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[edx]
- cmp dword ptr [esi], esi
+ mov ebx, dword ptr [esi]
test edx, edx je SHORT G_M9385_IG10 test edi, edi
- je SHORT G_M9385_IG11
+ je G_M9385_IG11
push edx mov ecx, esi ; gcrRegs +[ecx] @@ -60,54 +60,68 @@ G_M9385_IG02: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=0 ; gcrRegs -[ecx] +[eax] cmp gword ptr [eax+0x08], 0 jne SHORT G_M9385_IG05
- ;; size=28 bbWeight=1 PerfScore 14.75
+ ;; size=32 bbWeight=1 PerfScore 13.75
G_M9385_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref ; gcrRegs -[eax edi] xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M9385_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 12
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M9385_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz ; gcrRegs +[eax edi]
- mov ebx, gword ptr [eax+0x04] - ; gcrRegs +[ebx] - mov ecx, dword ptr [esi] - mov edx, dword ptr [ecx+0x24] - mov edx, dword ptr [edx] - mov eax, dword ptr [edx+0x2C] - ; gcrRegs -[eax] - test eax, eax
+ mov eax, gword ptr [eax+0x04] + mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V09} + mov ecx, dword ptr [ebx+0x24] + mov ecx, dword ptr [ecx] + mov ecx, dword ptr [ecx+0x2C] + test ecx, ecx
je SHORT G_M9385_IG07
- ;; size=17 bbWeight=0.50 PerfScore 5.62 -G_M9385_IG06: ; bbWeight=0.40, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=18 bbWeight=0.50 PerfScore 5.12 +G_M9385_IG06: ; bbWeight=0.40, gcVars=00000400 {V09}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] + mov eax, gword ptr [ebp-0x14] + ; gcrRegs +[eax] + mov edx, ecx + mov dword ptr [ebp-0x10], edx
jmp SHORT G_M9385_IG08
- ;; size=2 bbWeight=0.40 PerfScore 0.80 -G_M9385_IG07: ; bbWeight=0.10, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=10 bbWeight=0.40 PerfScore 1.70 +G_M9385_IG07: ; bbWeight=0.10, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref + ; gcrRegs -[eax] + mov ecx, ebx
mov edx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=10 bbWeight=0.10 PerfScore 0.12 -G_M9385_IG08: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ mov dword ptr [ebp-0x10], eax + mov eax, gword ptr [ebp-0x14] + ; gcrRegs +[eax] + ;; size=18 bbWeight=0.10 PerfScore 0.35 +G_M9385_IG08: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
push gword ptr [ebp+0x0C] mov ecx, edi ; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, eax
; gcrRegs +[edx]
+ mov eax, dword ptr [ebp-0x10] + ; gcrRegs -[eax]
nop
+ ; GC ptr vars -{V09}
call [eax]
- ; gcrRegs -[ecx edx ebx edi] - ;; size=12 bbWeight=0.50 PerfScore 2.38
+ ; gcrRegs -[ecx edx edi] + ;; size=15 bbWeight=0.50 PerfScore 2.88
G_M9385_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 12
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M9385_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref mov ecx, 0x6D3 mov edx, 0xD1FFAB1E @@ -131,6 +145,6 @@ G_M9385_IG11: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 int3 ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 6, PerfScore 33.30, instruction count 56, allocated bytes for code 144 (MethodHash=8b4ddb56) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
+; Total bytes of code 177, prolog size 9, PerfScore 34.17, instruction count 66, allocated bytes for code 177 (MethodHash=8b4ddb56) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
; ============================================================

+28 (+23.73%) : 54191.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String

@@ -7,14 +7,15 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T03] ( 7, 7.54) ref -> esi class-hnd single-def <System.Type[]> -; V01 loc0 [V01,T04] ( 5, 7.98) ref -> edi class-hnd exact single-def <System.String[]> -; V02 loc1 [V02,T01] ( 12, 21.04) int -> ebx
+; V00 arg0 [V00,T03] ( 5, 7 ) ref -> esi class-hnd single-def <System.Type[]> +; V01 loc0 [V01,T04] ( 5, 7.98) ref -> ebx class-hnd exact single-def <System.String[]> +; V02 loc1 [V02,T01] ( 12, 21.04) int -> [ebp-0x10]
; V03 tmp0 [V03,T02] ( 4, 16 ) ref -> eax class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V04 tmp1 [V04,T00] ( 6, 24 ) ref -> ecx "argument with side effect"
-; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
+; V05 cse0 [V05,T05] ( 5, 6.50) int -> [ebp-0x14] spill-single-def "CSE - unknown" +; V06 cse1 [V06,T06] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M43234_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -22,87 +23,100 @@ G_M43234_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- push eax
+ sub esp, 12
mov esi, ecx ; gcrRegs +[esi]
- ;; size=9 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.75
G_M43234_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov edx, dword ptr [esi+0x04]
+ mov edi, dword ptr [esi+0x04] + mov dword ptr [ebp-0x18], edi + mov edx, edi
mov ecx, 0xD1FFAB1E ; System.String[] call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[eax]
- mov edi, eax - ; gcrRegs +[edi] - xor ebx, ebx - mov eax, dword ptr [edi+0x04]
+ mov ebx, eax + ; gcrRegs +[ebx] + xor eax, eax
; gcrRegs -[eax]
- mov dword ptr [ebp-0x10], eax - test eax, eax
+ mov edx, dword ptr [ebx+0x04] + mov dword ptr [ebp-0x14], edx + test edx, edx
jle SHORT G_M43234_IG07
- ;; size=27 bbWeight=1 PerfScore 8.00 -G_M43234_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - cmp dword ptr [esi+0x04], eax
+ ;; size=32 bbWeight=1 PerfScore 9.25 +G_M43234_IG03: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + cmp edi, edx
jl SHORT G_M43234_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00 -G_M43234_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz - mov ecx, gword ptr [esi+4*ebx+0x08]
+ ;; size=4 bbWeight=0.50 PerfScore 0.62 +G_M43234_IG04: ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - cmp dword ptr [ebp-0x10], ebx
+ inc edi + cmp dword ptr [ebp-0x14], edi + mov eax, edi
jg SHORT G_M43234_IG04
- ;; size=27 bbWeight=3.96 PerfScore 56.43 -G_M43234_IG05: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=35 bbWeight=3.96 PerfScore 65.34 +G_M43234_IG05: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi] jmp SHORT G_M43234_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96
-G_M43234_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M43234_IG06: ; bbWeight=0.04, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M43234_IG09 - mov ecx, gword ptr [esi+4*ebx+0x08]
+ cmp eax, edi + jae SHORT G_M43234_IG10 + mov dword ptr [ebp-0x10], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, dword ptr [ecx] - mov edx, dword ptr [edx+0x2C] - call [edx+0x18]<unknown method>
+ mov edi, dword ptr [ecx] + mov edi, dword ptr [edi+0x2C] + call [edi+0x18]<unknown method>
; gcrRegs -[ecx] +[eax]
- lea edx, bword ptr [edi+4*ebx+0x08]
+ mov edi, dword ptr [ebp-0x10] + lea edx, bword ptr [ebx+4*edi+0x08]
; byrRegs +[edx] call CORINFO_HELP_ASSIGN_REF_EAX ; gcrRegs -[eax] ; byrRegs -[edx]
- inc ebx - mov eax, dword ptr [ebp-0x10] - cmp eax, ebx - jg SHORT G_M43234_IG06 - ;; size=34 bbWeight=0.04 PerfScore 0.70 -G_M43234_IG07: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ inc edi + mov eax, dword ptr [ebp-0x14] + cmp eax, edi + jg SHORT G_M43234_IG09 + ;; size=39 bbWeight=0.04 PerfScore 0.67 +G_M43234_IG07: ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
- mov eax, edi
+ mov eax, ebx
; gcrRegs +[eax] ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M43234_IG08: ; bbWeight=1.98, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1.98 PerfScore 6.93 -G_M43234_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+ ;; size=8 bbWeight=1.98 PerfScore 6.93 +G_M43234_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov eax, edi + mov edi, dword ptr [ebp-0x18] + jmp SHORT G_M43234_IG06 + ;; size=7 bbWeight=0.02 PerfScore 0.07 +G_M43234_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[ebx esi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 118, prolog size 7, PerfScore 84.02, instruction count 49, allocated bytes for code 118 (MethodHash=391d571d) for method Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
+; Total bytes of code 146, prolog size 9, PerfScore 92.09, instruction count 59, allocated bytes for code 146 (MethodHash=391d571d) for method Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
; ============================================================

+46 (+29.30%) : 175685.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)

@@ -10,20 +10,21 @@ ; ; V00 this [V00,T05] ( 8, 13.96) ref -> esi this class-hnd single-def <System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension> ;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.Xsl.XsltContext>
-; V02 arg2 [V02,T07] ( 8, 11.52) ref -> edi class-hnd single-def <System.Object[]>
+; V02 arg2 [V02,T07] ( 6, 10.98) ref -> edi class-hnd single-def <System.Object[]>
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XPath.XPathNavigator>
-; V04 loc0 [V04,T00] ( 22, 38.54) int -> ebx
+; V04 loc0 [V04,T00] ( 22, 38.54) int -> [ebp-0x10]
;* V05 tmp0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object> ;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodInfo> ;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> eax "arr expr" -; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> eax "arr expr"
+; V08 tmp3 [V08,T01] ( 6, 24 ) ref -> edx "arr expr" +; V09 tmp4 [V09,T02] ( 6, 24 ) ref -> ebx "arr expr"
; V10 tmp5 [V10,T03] ( 4, 16 ) ref -> ecx "argument with side effect" ; V11 tmp6 [V11,T04] ( 4, 16 ) int -> edx "argument with side effect" ; V12 tmp7 [V12,T06] ( 3, 11.88) ref -> ecx single-def "argument with side effect" ; V13 tmp8 [V13,T08] ( 2, 7.92) ref -> edx single-def "argument with side effect"
+; V14 cse0 [V14,T09] ( 4, 2.54) int -> [ebp-0x14] spill-single-def "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,71 +32,84 @@ G_M50779_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
+ sub esp, 8
mov esi, ecx ; gcrRegs +[esi] mov edi, gword ptr [ebp+0x0C] ; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.50 -G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=14 bbWeight=1 PerfScore 5.75 +G_M50779_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [edi+0x04]
- dec ebx - js SHORT G_M50779_IG07 - ;; size=6 bbWeight=1 PerfScore 3.25
+ mov dword ptr [ebp-0x14], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M50779_IG07 + ;; size=17 bbWeight=1 PerfScore 4.75
G_M50779_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [edi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M50779_IG06
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M50779_IG04: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [edi+4*ebx+0x08]
+ mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
+ mov eax, ebx
jns SHORT G_M50779_IG04
- ;; size=47 bbWeight=3.96 PerfScore 98.01
+ ;; size=64 bbWeight=3.96 PerfScore 109.89
G_M50779_IG05: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz jmp SHORT G_M50779_IG07 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M50779_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp ebx, dword ptr [edi+0x04] - jae SHORT G_M50779_IG09 - mov ecx, gword ptr [edi+4*ebx+0x08]
+ cmp eax, ebx + jae SHORT G_M50779_IG10 + mov ecx, gword ptr [edi+4*eax+0x08]
; gcrRegs +[ecx]
- mov eax, gword ptr [esi+0x04] - ; gcrRegs +[eax] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - mov edx, dword ptr [eax+4*ebx+0x08] - mov eax, gword ptr [esi+0x1C] - cmp ebx, dword ptr [eax+0x04] - jae SHORT G_M50779_IG09 - push gword ptr [eax+4*ebx+0x08]
+ mov edx, gword ptr [esi+0x04] + ; gcrRegs +[edx] + cmp eax, dword ptr [edx+0x04] + jae SHORT G_M50779_IG10 + mov edx, dword ptr [edx+4*eax+0x08] + ; gcrRegs -[edx] + mov ebx, gword ptr [esi+0x1C] + ; gcrRegs +[ebx] + cmp eax, dword ptr [ebx+0x04] + jae SHORT G_M50779_IG10 + mov dword ptr [ebp-0x10], eax + push gword ptr [ebx+4*eax+0x08]
call [System.Xml.Xsl.XsltOld.XsltCompileContext+XsltFunctionImpl:ConvertToXPathType(System.Object,int,System.Type):System.Object]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] +[eax]
push eax
- mov edx, ebx
+ mov edx, dword ptr [ebp-0x10]
mov ecx, edi ; gcrRegs +[ecx] call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[eax ecx]
+ mov ebx, dword ptr [ebp-0x10]
dec ebx
- jns SHORT G_M50779_IG06 - ;; size=52 bbWeight=0.04 PerfScore 1.15
+ mov eax, ebx + jns SHORT G_M50779_IG09 + ;; size=60 bbWeight=0.04 PerfScore 1.16
G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref mov ecx, gword ptr [esi+0x18] ; gcrRegs +[ecx] @@ -111,18 +125,24 @@ G_M50779_IG07: ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=0 ; gcrRegs -[ecx edx esi edi] +[eax] ;; size=21 bbWeight=1.98 PerfScore 29.70 G_M50779_IG08: ; bbWeight=1.98, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 8
- ;; size=7 bbWeight=1.98 PerfScore 7.92 -G_M50779_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax]
+ ;; size=10 bbWeight=1.98 PerfScore 8.91 +G_M50779_IG09: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi edi] + mov ebx, dword ptr [ebp-0x14] + jmp SHORT G_M50779_IG06 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M50779_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 157, prolog size 6, PerfScore 151.49, instruction count 63, allocated bytes for code 157 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
+; Total bytes of code 203, prolog size 9, PerfScore 164.81, instruction count 75, allocated bytes for code 203 (MethodHash=355039a4) for method System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
; ============================================================

realworld.run.windows.x86.checked.mch

-22 (-18.33%) : 22824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)

@@ -8,8 +8,8 @@ ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T03] ( 6, 6 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> -; V01 arg1 [V01,T04] ( 3, 6 ) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V00 this [V00,T04] ( 5, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol> +; V01 arg1 [V01,T03] ( 3, 6 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V02 loc0 [V02,T07] ( 2, 5 ) ref -> [ebp-0x14] class-hnd exact spill-single-def <<unknown class>> ;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V04 loc2 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> @@ -17,18 +17,19 @@ ;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V09 tmp4 [V09,T02] ( 4, 13 ) int -> edx "Inline stloc first use temp" -; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> [ebp-0x18] spill-single-def "field V03._array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T02] ( 4, 13 ) int -> eax "Inline stloc first use temp" +; V10 tmp5 [V10,T08] ( 2, 5 ) ref -> ebx single-def "field V03._array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T01] ( 4, 13 ) int -> [ebp-0x10] "field V03._index (fldOffset=0x4)" P-INDEP ; V12 tmp7 [V12,T09] ( 3, 3 ) ref -> eax "field V04.array (fldOffset=0x0)" P-INDEP ;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.array (fldOffset=0x0)" P-INDEP
-; V14 tmp9 [V14,T10] ( 2, 2 ) ref -> eax single-def "field V07._array (fldOffset=0x0)" P-INDEP -;* V15 tmp10 [V15,T11] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
+; V14 tmp9 [V14,T11] ( 2, 2 ) ref -> ebx single-def "field V07._array (fldOffset=0x0)" P-INDEP +;* V15 tmp10 [V15,T12] ( 0, 0 ) int -> zero-ref single-def "field V07._index (fldOffset=0x4)" P-INDEP
; V16 tmp11 [V16,T05] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
-; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> [ebp-0x1C] spill-single-def "argument with side effect" -; V18 cse0 [V18,T06] ( 3, 6 ) int -> esi "CSE - aggressive"
+; V17 tmp12 [V17,T00] ( 3, 24 ) ref -> ecx "argument with side effect" +; V18 cse0 [V18,T06] ( 3, 6 ) int -> edi "CSE - unknown" +; V19 cse1 [V19,T10] ( 3, 3 ) int -> ebx "CSE - unknown"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -36,17 +37,17 @@ G_M33036_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 16 - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 8 + mov edi, ecx
; gcrRegs +[edi]
+ mov esi, edx + ; gcrRegs +[esi]
;; size=13 bbWeight=1 PerfScore 5.00 G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34]
+ mov ebx, dword ptr [edi] + mov eax, dword ptr [ebx+0x34]
call [eax+0x10]<unknown method> ; gcrRegs -[ecx] +[eax] mov ecx, gword ptr [eax+0x08] @@ -56,54 +57,43 @@ G_M33036_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov eax, dword ptr [eax+0x54] call [eax+0x0C]<unknown method> ; gcrRegs -[ecx] +[eax]
+ mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V02} + mov ecx, edi + ; gcrRegs +[ecx] + mov edx, dword ptr [ebx+0x54] + call [edx+0x10]<unknown method> + ; gcrRegs -[ecx edi] + mov edi, dword ptr [eax+0x04]
mov ebx, eax ; gcrRegs +[ebx]
- mov gword ptr [ebp-0x14], ebx - ; GC ptr vars +{V02} - mov ecx, esi - ; gcrRegs +[ecx] - mov eax, dword ptr [esi]
+ xor eax, eax
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x54] - call [eax+0x10]<unknown method> - ; gcrRegs -[ecx esi] +[eax] - mov esi, dword ptr [eax+0x04] - mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V10}
xor edx, edx
- xor ecx, ecx - mov dword ptr [ebp-0x10], ecx - test esi, esi
+ mov dword ptr [ebp-0x10], edx + test edi, edi
jle SHORT G_M33036_IG04
- ;; size=53 bbWeight=1 PerfScore 30.50 -G_M33036_IG03: ; bbWeight=4, gcVars=00000180 {V02 V10}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz - mov edx, gword ptr [eax+4*edx+0x08] - ; gcrRegs +[edx] - mov gword ptr [ebp-0x1C], edx - ; GC ptr vars +{V17} - push edi - mov ecx, edx
+ ;; size=48 bbWeight=1 PerfScore 27.50 +G_M33036_IG03: ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz + mov ecx, gword ptr [ebx+4*eax+0x08]
; gcrRegs +[ecx]
- mov edx, ebx - mov ebx, gword ptr [ebp-0x1C] - mov ebx, dword ptr [ebx] - ; gcrRegs -[ebx] - mov ebx, dword ptr [ebx+0x44] - ; GC ptr vars -{V17} - call [ebx+0x08]<unknown method> - ; gcrRegs -[eax ecx edx] - mov ebx, dword ptr [ebp-0x10] - lea edx, [ebx+0x01] - mov ebx, edx - cmp esi, ebx - mov dword ptr [ebp-0x10], ebx - mov eax, gword ptr [ebp-0x18] - ; gcrRegs +[eax] - jg SHORT G_M33036_IG05 - ;; size=41 bbWeight=4 PerfScore 70.00
+ push esi + mov edx, gword ptr [ebp-0x14] + ; gcrRegs +[edx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x44] + call [eax+0x08]<unknown method> + ; gcrRegs -[ecx edx] + mov eax, dword ptr [ebp-0x10] + inc eax + mov edx, eax + cmp edi, edx + mov dword ptr [ebp-0x10], edx + jg SHORT G_M33036_IG03 + ;; size=29 bbWeight=4 PerfScore 59.00
G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
- ; gcrRegs -[eax edi] - ; GC ptr vars -{V02 V10}
+ ; gcrRegs -[ebx esi] + ; GC ptr vars -{V02}
lea esp, [ebp-0x0C] pop ebx pop esi @@ -111,14 +101,7 @@ G_M33036_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b pop ebp ret ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33036_IG05: ; bbWeight=2, gcVars=00000180 {V02 V10}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[eax edi] - ; GC ptr vars +{V02 V10} - mov ebx, gword ptr [ebp-0x14] - ; gcrRegs +[ebx] - jmp SHORT G_M33036_IG03 - ;; size=5 bbWeight=2 PerfScore 6.00
-; Total bytes of code 120, prolog size 9, PerfScore 115.00, instruction count 53, allocated bytes for code 120 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 98, prolog size 9, PerfScore 95.00, instruction count 45, allocated bytes for code 98 (MethodHash=2e187ef3) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================

-30 (-16.04%) : 14055.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)

@@ -9,75 +9,68 @@ ; Final local variable assignments ; ; V00 this [V00,T00] ( 19, 19 ) byref -> ecx this single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) ushort -> edx single-def -; V02 arg2 [V02,T06] ( 2, 2 ) ushort -> eax single-def -; V03 arg3 [V03,T07] ( 2, 2 ) ushort -> esi single-def -; V04 arg4 [V04,T08] ( 2, 2 ) ushort -> [ebp+0x08] single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) ushort -> edx single-def +; V02 arg2 [V02,T18] ( 1, 1 ) ushort -> [ebp+0x10] single-def +; V03 arg3 [V03,T19] ( 1, 1 ) ushort -> [ebp+0x0C] single-def +; V04 arg4 [V04,T20] ( 1, 1 ) ushort -> [ebp+0x08] single-def
; V05 tmp0 [V05,T02] ( 2, 4 ) int -> eax "impAppendStmt" ;* V06 tmp1 [V06 ] ( 0, 0 ) byref -> zero-ref single-def ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref single-def ;* V08 tmp3 [V08 ] ( 0, 0 ) byref -> zero-ref single-def ;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref single-def
-; V10 tmp5 [V10,T09] ( 2, 2 ) int -> edx
+; V10 tmp5 [V10,T10] ( 2, 2 ) int -> edx
; V11 tmp6 [V11,T03] ( 2, 4 ) int -> eax "impAppendStmt" ;* V12 tmp7 [V12 ] ( 0, 0 ) byref -> zero-ref single-def ;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref single-def ;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def ;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def
-; V16 tmp11 [V16,T10] ( 2, 2 ) int -> edx
+; V16 tmp11 [V16,T11] ( 2, 2 ) int -> edx
; V17 tmp12 [V17,T04] ( 2, 4 ) int -> eax "impAppendStmt" ;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def ;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref single-def ;* V20 tmp15 [V20 ] ( 0, 0 ) byref -> zero-ref single-def ;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref single-def
-; V22 tmp17 [V22,T11] ( 2, 2 ) int -> edx
+; V22 tmp17 [V22,T12] ( 2, 2 ) int -> edx
; V23 tmp18 [V23,T05] ( 2, 4 ) int -> eax "impAppendStmt" ;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref single-def ;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref single-def ;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref single-def ;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref single-def
-; V28 tmp23 [V28,T12] ( 2, 2 ) int -> edx -; V29 tmp24 [V29,T13] ( 2, 2 ) int -> edx "Inline return value spill temp" -; V30 tmp25 [V30,T14] ( 2, 2 ) int -> eax "Inline return value spill temp" -; V31 tmp26 [V31,T15] ( 2, 2 ) int -> edx "Inline return value spill temp" -; V32 tmp27 [V32,T16] ( 2, 2 ) int -> edx "Inline return value spill temp"
+; V28 tmp23 [V28,T13] ( 2, 2 ) int -> edx +; V29 tmp24 [V29,T14] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V30 tmp25 [V30,T15] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V31 tmp26 [V31,T16] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V32 tmp27 [V32,T17] ( 2, 2 ) int -> eax "Inline return value spill temp" +; V33 cse0 [V33,T06] ( 3, 3 ) int -> eax "CSE - unknown" +; V34 cse1 [V34,T07] ( 3, 3 ) int -> eax "CSE - unknown" +; V35 cse2 [V35,T08] ( 3, 3 ) int -> eax "CSE - unknown" +; V36 cse3 [V36,T09] ( 3, 3 ) int -> eax "CSE - unknown"
; ; Lcl frame size = 0 G_M18004_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp mov ebp, esp
- push edi - push esi - push ebx - mov eax, dword ptr [ebp+0x10] - mov esi, dword ptr [ebp+0x0C] - ;; size=12 bbWeight=1 PerfScore 6.25
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M18004_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref ; byrRegs +[ecx]
- movzx ebx, dx - movzx edx, dx - mov edi, 32 - cmp ebx, 32 - cmovg edx, edi - mov word ptr [ecx], dx - movzx edx, ax - movzx eax, ax - cmp edx, 32 - cmovg eax, edi
+ movzx eax, dx + mov edx, 32 + cmp eax, 32 + cmovg eax, edx + mov word ptr [ecx], ax + movzx eax, word ptr [ebp+0x10] + cmp eax, 32 + cmovg eax, edx
mov word ptr [ecx+0x02], ax
- movzx eax, si - movzx edx, si
+ movzx eax, word ptr [ebp+0x0C]
cmp eax, 32
- cmovg edx, edi - mov word ptr [ecx+0x04], dx - movzx edi, word ptr [ebp+0x08] - movzx eax, di - movzx edx, di - mov esi, 32
+ cmovg eax, edx + mov word ptr [ecx+0x04], ax + movzx eax, word ptr [ebp+0x08]
cmp eax, 32
- cmovg edx, esi - mov word ptr [ecx+0x06], dx
+ cmovg eax, edx + mov word ptr [ecx+0x06], ax
mov byte ptr [ecx+0x08], 0 movzx eax, byte ptr [ecx+0x08] xor edx, edx @@ -107,15 +100,12 @@ G_M18004_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {e movzx edx, dl add eax, edx mov byte ptr [ecx+0x08], al
- ;; size=168 bbWeight=1 PerfScore 41.50
+ ;; size=150 bbWeight=1 PerfScore 41.50
G_M18004_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebx - pop esi - pop edi
pop ebp ret 12
- ;; size=7 bbWeight=1 PerfScore 4.00
+ ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 187, prolog size 6, PerfScore 51.75, instruction count 64, allocated bytes for code 187 (MethodHash=241bb9ab) for method SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
+; Total bytes of code 157, prolog size 3, PerfScore 45.25, instruction count 50, allocated bytes for code 157 (MethodHash=241bb9ab) for method SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
; ============================================================

-7 (-12.50%) : 27789.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)

@@ -8,8 +8,9 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 4, 4 ) byte -> ebx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) byte -> esi single-def
+; V01 arg1 [V01,T01] ( 3, 3 ) byte -> edx single-def
; V02 loc0 [V02 ] ( 1, 1 ) struct ( 4) [esp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC>
+; V03 cse0 [V03,T02] ( 3, 3 ) int -> esi "CSE - unknown"
; ; Lcl frame size = 4 @@ -20,27 +21,24 @@ G_M51831_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} xor eax, eax mov dword ptr [esp], eax mov ebx, ecx
- mov esi, edx - ;; size=12 bbWeight=1 PerfScore 4.75
+ ;; size=10 bbWeight=1 PerfScore 4.50
G_M51831_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref movsx ecx, bl push ecx ; npt arg push 0
- mov eax, esi - movsx ecx, al - push ecx
+ movsx eax, dl + mov esi, eax + push esi
; npt arg push 1 lea ecx, [esp+0x08] mov edx, 0x1A00 call [<unknown method>] ; gcr arg pop 2
- mov edx, esi - movsx edx, dl - movsx ecx, bl
+ movsx edx, bl
test eax, eax
- mov eax, ecx - cmovne eax, edx - ;; size=40 bbWeight=1 PerfScore 8.00
+ mov eax, edx + cmovne eax, esi + ;; size=35 bbWeight=1 PerfScore 7.50
G_M51831_IG03: ; bbWeight=1, epilog, nogc, extend pop ecx pop ebx @@ -48,6 +46,6 @@ G_M51831_IG03: ; bbWeight=1, epilog, nogc, extend ret ;; size=4 bbWeight=1 PerfScore 2.50
-; Total bytes of code 56, prolog size 8, PerfScore 15.25, instruction count 25, allocated bytes for code 56 (MethodHash=bb523588) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
+; Total bytes of code 49, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 49 (MethodHash=bb523588) for method Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
; ============================================================

+27 (+20.93%) : 23201.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)

@@ -7,17 +7,20 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00,T01] ( 7, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> -; V01 arg1 [V01,T00] ( 8, 5.50) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> -; V02 arg2 [V02,T06] ( 1, 0.50) int -> [ebp+0x08] single-def
+; V00 this [V00,T01] ( 6, 4.50) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> +; V01 arg1 [V01,T00] ( 7, 5 ) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> +; V02 arg2 [V02,T08] ( 1, 0.50) int -> [ebp+0x08] single-def
;* V03 tmp0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol> ;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>> ; V05 tmp2 [V05,T02] ( 3, 3 ) ref -> eax single-def "argument with side effect" ; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> eax single-def "argument with side effect" ; V07 tmp4 [V07,T04] ( 3, 3 ) ref -> esi single-def "argument with side effect" ; V08 tmp5 [V08,T05] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V09 cse0 [V09,T06] ( 3, 1.50) int -> [ebp-0x10] "CSE - unknown" +; V10 cse1 [V10,T07] ( 3, 1.50) int -> [ebp-0x14] "CSE - unknown" +; TEMP_01 ref -> [ebp-0x18]
;
-; Lcl frame size = 0
+; Lcl frame size = 12
G_M10552_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push ebp @@ -25,11 +28,14 @@ G_M10552_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b push edi push esi push ebx
+ sub esp, 12 + xor eax, eax + mov dword ptr [ebp-0x18], eax
mov edi, ecx ; gcrRegs +[edi] mov esi, edx ; gcrRegs +[esi]
- ;; size=10 bbWeight=1 PerfScore 4.75
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M10552_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz cmp edi, esi jne SHORT G_M10552_IG05 @@ -39,52 +45,54 @@ G_M10552_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M10552_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M10552_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz ; gcrRegs +[esi edi] test esi, esi je SHORT G_M10552_IG06 mov ecx, esi ; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x78]
+ mov ebx, dword ptr [esi] + mov dword ptr [ebp-0x10], ebx + mov eax, dword ptr [ebx+0x78]
call [eax+0x08]<unknown method> ; gcrRegs -[ecx] +[eax]
- mov ebx, eax - ; gcrRegs +[ebx]
+ mov gword ptr [ebp-0x18], eax
mov ecx, edi ; gcrRegs +[ecx]
- mov eax, dword ptr [edi] - ; gcrRegs -[eax] - mov eax, dword ptr [eax+0x78] - call [eax+0x08]<unknown method> - ; gcrRegs -[ecx] +[eax] - cmp ebx, eax
+ mov edx, dword ptr [edi] + mov dword ptr [ebp-0x14], edx + mov ebx, dword ptr [edx+0x78] + call [ebx+0x08]<unknown method> + ; gcrRegs -[ecx] + cmp gword ptr [ebp-0x18], eax
je SHORT G_M10552_IG08
- ;; size=30 bbWeight=0.50 PerfScore 8.62
+ ;; size=38 bbWeight=0.50 PerfScore 10.88
G_M10552_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax ebx esi edi]
+ ; gcrRegs -[eax esi edi]
xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M10552_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref ; gcrRegs +[esi edi]
+ mov ebx, dword ptr [ebp-0x10]
mov ecx, esi ; gcrRegs +[ecx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0x34] - call [eax+0x04]<unknown method>
+ mov edx, dword ptr [ebx+0x34] + call [edx+0x04]<unknown method>
; gcrRegs -[ecx esi] +[eax] mov ecx, eax ; gcrRegs +[ecx] @@ -97,11 +105,12 @@ G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e ; gcrRegs +[esi] mov ecx, edi ; gcrRegs +[ecx]
- mov eax, dword ptr [edi]
+ mov edi, dword ptr [ebp-0x14] + ; gcrRegs -[edi] + mov eax, dword ptr [edi+0x34]
; gcrRegs -[eax]
- mov eax, dword ptr [eax+0x34]
call [eax+0x04]<unknown method>
- ; gcrRegs -[ecx edi] +[eax]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, eax ; gcrRegs +[ecx] mov eax, dword ptr [eax] @@ -119,15 +128,16 @@ G_M10552_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e mov eax, dword ptr [eax+0x58] call [eax+0x18]<unknown method> ; gcrRegs -[ecx edx esi]
- ;; size=57 bbWeight=0.50 PerfScore 18.88
+ ;; size=59 bbWeight=0.50 PerfScore 17.88
G_M10552_IG09: ; bbWeight=0.50, epilog, nogc, extend
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret 4
- ;; size=7 bbWeight=0.50 PerfScore 2.00
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
-; Total bytes of code 129, prolog size 6, PerfScore 39.75, instruction count 62, allocated bytes for code 129 (MethodHash=e6fad6c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 14, PerfScore 43.25, instruction count 70, allocated bytes for code 156 (MethodHash=e6fad6c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
; ============================================================

+41 (+21.13%) : 25491.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMapSystem.__Canon:Microsoft.CodeAnalysis.SmallDictionary`2System.Canon,System.Canon

@@ -11,19 +11,22 @@ ;* V00 arg0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]> ; V01 TypeCtx [V01,T05] ( 5, 4.20) int -> ecx single-def ; V02 loc0 [V02,T04] ( 6, 10.98) ref -> edi class-hnd exact single-def <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]>
-; V03 loc1 [V03,T01] ( 12, 18.54) int -> ebx -; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x14] class-hnd <System.__Canon>
+; V03 loc1 [V03,T01] ( 12, 18.54) int -> [ebp-0x14] +; V04 loc2 [V04,T02] ( 8, 16 ) ref -> [ebp-0x1C] class-hnd <System.__Canon>
; V05 loc3 [V05,T06] ( 3, 6 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]> ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x18] class-hnd exact "Inlining Arg" <<unknown class>> -; V10 tmp5 [V10,T08] ( 5, 5.54) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
+; V09 tmp4 [V09,T00] ( 6, 24 ) ref -> [ebp-0x20] class-hnd exact "Inlining Arg" <<unknown class>> +; V10 tmp5 [V10,T08] ( 3, 5 ) ref -> esi single-def "field V00.array (fldOffset=0x0)" P-INDEP
; V11 tmp6 [V11,T03] ( 4, 16 ) int -> eax "argument with side effect"
-; V12 rat0 [V12,T09] ( 3, 4 ) int -> edx "runtime lookup" -; V13 rat1 [V13,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable"
+; V12 cse0 [V12,T10] ( 4, 2.54) int -> [ebp-0x18] spill-single-def "CSE - unknown" +; V13 rat0 [V13,T09] ( 3, 4 ) int -> edx "runtime lookup" +; V14 rat1 [V14,T07] ( 3, 5.60) int -> edx "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x24] +; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 12
+; Lcl frame size = 28
G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -31,11 +34,13 @@ G_M23436_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {} push edi push esi push ebx
- sub esp, 12
+ sub esp, 28 + xor eax, eax + mov dword ptr [ebp-0x24], eax
mov dword ptr [ebp-0x10], ecx mov esi, gword ptr [ebp+0x08] ; gcrRegs +[esi]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 7.75
G_M23436_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz mov edx, dword ptr [ecx+0x20] mov edx, dword ptr [edx+0x08] @@ -50,7 +55,7 @@ G_M23436_IG04: ; bbWeight=0.20, gcrefRegs=00000040 {esi}, byrefRegs=00000 call CORINFO_HELP_RUNTIMEHANDLE_METHOD mov edx, eax ;; size=12 bbWeight=0.20 PerfScore 0.30
-G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov ecx, edx call CORINFO_HELP_NEWSFAST ; gcrRegs +[eax] @@ -61,82 +66,95 @@ G_M23436_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:.ctor():this] ; gcrRegs -[eax ecx] mov ebx, dword ptr [esi+0x04]
- dec ebx - js SHORT G_M23436_IG10 - ;; size=23 bbWeight=1 PerfScore 8.00
+ mov dword ptr [ebp-0x18], ebx + lea eax, [ebx-0x01] + test eax, eax + jl G_M23436_IG10 + ;; size=34 bbWeight=1 PerfScore 9.50
G_M23436_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi+0x04], ebx
+ cmp ebx, eax
jle SHORT G_M23436_IG09
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M23436_IG07: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ mov dword ptr [ebp-0x14], eax + mov ebx, gword ptr [esi+4*eax+0x08] + ; gcrRegs +[ebx] + mov ecx, ebx
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax - ; GC ptr vars +{V04} - mov edx, dword ptr [eax]
+ mov edx, dword ptr [ebx]
mov edx, dword ptr [edx+0x30] call [edx+0x14]<unknown method>
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx] +[eax]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax
+ mov gword ptr [ebp-0x20], eax
; GC ptr vars +{V09} mov edx, eax ; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push gword ptr [ebp-0x20] + push ebx
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V09}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
+ mov eax, ebx
jns SHORT G_M23436_IG07
- ;; size=51 bbWeight=3.96 PerfScore 89.10
+ ;; size=54 bbWeight=3.96 PerfScore 94.05
G_M23436_IG08: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs -[esi] jmp SHORT G_M23436_IG10 ;; size=2 bbWeight=1.98 PerfScore 3.96 G_M23436_IG09: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz ; gcrRegs +[esi]
- cmp ebx, dword ptr [esi+0x04] - jae SHORT G_M23436_IG12 - mov eax, gword ptr [esi+4*ebx+0x08] - ; gcrRegs +[eax] - mov ecx, eax
+ cmp eax, ebx + jae SHORT G_M23436_IG13 + mov dword ptr [ebp-0x14], eax + mov ecx, gword ptr [esi+4*eax+0x08]
; gcrRegs +[ecx]
- mov gword ptr [ebp-0x14], eax
+ mov edx, ecx + ; gcrRegs +[edx] + mov ecx, edx + mov gword ptr [ebp-0x24], ecx + mov gword ptr [ebp-0x1C], edx
; GC ptr vars +{V04}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x30] - call [edx+0x14]<unknown method>
+ mov ecx, dword ptr [edx]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [ecx+0x30] + mov dword ptr [ebp-0x28], ecx + mov ecx, gword ptr [ebp-0x24] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x28] + call [ebx+0x14]<unknown method> + ; gcrRegs -[ecx edx] +[eax] + mov ebx, eax + ; gcrRegs +[ebx]
mov ecx, edi ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x18], eax - ; GC ptr vars +{V09} - mov edx, eax
+ mov edx, ebx
; gcrRegs +[edx] call [Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon]:GetHashCode(System.__Canon):int:this] ; gcrRegs -[eax ecx edx]
- push gword ptr [ebp-0x18] - push gword ptr [ebp-0x14]
+ push ebx + push gword ptr [ebp-0x1C]
push 0 mov edx, eax mov ecx, edi ; gcrRegs +[ecx]
- ; GC ptr vars -{V04 V09}
+ ; GC ptr vars -{V04}
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx ebx] + mov ebx, dword ptr [ebp-0x14]
dec ebx
- jns SHORT G_M23436_IG09 - ;; size=56 bbWeight=0.04 PerfScore 1.06
+ mov eax, ebx + jns SHORT G_M23436_IG12 + ;; size=74 bbWeight=0.04 PerfScore 1.18
G_M23436_IG10: ; bbWeight=1.98, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref ; gcrRegs -[esi] mov eax, edi @@ -150,12 +168,17 @@ G_M23436_IG11: ; bbWeight=1.98, epilog, nogc, extend pop ebp ret 4 ;; size=10 bbWeight=1.98 PerfScore 8.91
-G_M23436_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref - ; gcrRegs -[eax edi]
+G_M23436_IG12: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[eax] +[esi] + mov ebx, dword ptr [ebp-0x18] + jmp SHORT G_M23436_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.06 +G_M23436_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref + ; gcrRegs -[esi edi]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 12, PerfScore 127.17, instruction count 74, allocated bytes for code 194 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 235, prolog size 17, PerfScore 133.68, instruction count 90, allocated bytes for code 235 (MethodHash=45f0a473) for method Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================

+30 (+21.90%) : 25996.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -8,24 +8,27 @@ ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ;
-; V00 this [V00,T00] ( 8, 6.50) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]> -; V01 arg1 [V01,T01] ( 7, 6.50) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess>
+; V00 this [V00,T02] ( 6, 5 ) ref -> edi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]> +; V01 arg1 [V01,T00] ( 7, 6.50) ref -> esi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess>
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol> ;* V03 tmp0 [V03 ] ( 0, 0 ) int -> zero-ref "spilling helperCall" ;* V04 tmp1 [V04 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]> ;* V05 tmp2 [V05 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V06 tmp3 [V06,T03] ( 4, 6 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
+; V06 tmp3 [V06,T03] ( 4, 6 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol>
; V07 tmp4 [V07,T06] ( 2, 4 ) ref -> eax class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-; V08 tmp5 [V08,T02] ( 9, 7 ) ref -> [ebp-0x10] -; V09 tmp6 [V09,T07] ( 2, 3 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V08 tmp5 [V08,T01] ( 9, 7 ) ref -> [ebp-0x18] +; V09 tmp6 [V09,T08] ( 2, 3 ) ref -> [ebp-0x1C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref "field V04.array (fldOffset=0x0)" P-INDEP ;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref "field V05.array (fldOffset=0x0)" P-INDEP
-; V12 tmp9 [V12,T08] ( 2, 2 ) ref -> edx single-def "argument with side effect" -;* V13 rat0 [V13,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" -;* V14 rat1 [V14,T09] ( 0, 0 ) int -> zero-ref "runtime lookup" -;* V15 rat2 [V15,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V12 tmp9 [V12,T09] ( 2, 2 ) ref -> edx single-def "argument with side effect" +; V13 cse0 [V13,T07] ( 3, 2.50) int -> [ebp-0x10] spill-single-def "CSE - unknown" +;* V14 rat0 [V14,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree" +;* V15 rat1 [V15,T10] ( 0, 0 ) int -> zero-ref "runtime lookup" +;* V16 rat2 [V16,T04] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable" +; TEMP_02 ref -> [ebp-0x20] +; TEMP_01 int -> [ebp-0x24]
;
-; Lcl frame size = 4
+; Lcl frame size = 24
G_M1024_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push ebp @@ -33,111 +36,121 @@ G_M1024_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, push edi push esi push ebx
- push eax - mov esi, ecx - ; gcrRegs +[esi] - mov edi, edx
+ sub esp, 24 + xor eax, eax + mov dword ptr [ebp-0x20], eax + mov edi, ecx
; gcrRegs +[edi]
- ;; size=11 bbWeight=1 PerfScore 5.75
+ mov esi, edx + ; gcrRegs +[esi] + ;; size=18 bbWeight=1 PerfScore 6.25
G_M1024_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- cmp dword ptr [esi], esi - mov ebx, gword ptr [edi+0x14] - ; gcrRegs +[ebx] - mov ecx, ebx - ; gcrRegs +[ecx] - call [Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbolExtensions:GetOwnOrInheritedGetMethod(Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol] - ; gcrRegs -[ecx] +[eax] - test eax, eax - jne SHORT G_M1024_IG04 - ;; size=17 bbWeight=1 PerfScore 9.50 -G_M1024_IG03: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref - ; gcrRegs -[eax] - mov ecx, ebx - ; gcrRegs +[ecx] - mov eax, dword ptr [ebx] - mov eax, dword ptr [eax+0x68] - call [eax]<unknown method> - ; gcrRegs -[ecx ebx] +[eax] - mov ebx, eax - ; gcrRegs +[ebx] - mov eax, ebx - ;; size=13 bbWeight=0.50 PerfScore 3.88 -G_M1024_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz - ; gcrRegs -[ebx] - mov ebx, gword ptr [edi+0x10] - ; gcrRegs +[ebx] - test eax, eax - je SHORT G_M1024_IG11 - ;; size=7 bbWeight=1 PerfScore 3.25 -G_M1024_IG05: ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov ebx, dword ptr [edi] + mov dword ptr [ebp-0x10], ebx + mov eax, gword ptr [esi+0x14] + ; gcrRegs +[eax] + mov gword ptr [ebp-0x14], eax + ; GC ptr vars +{V06}
mov ecx, eax ; gcrRegs +[ecx]
- mov gword ptr [ebp-0x10], eax
+ call [Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbolExtensions:GetOwnOrInheritedGetMethod(Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol] + ; gcrRegs -[ecx] + test eax, eax + jne SHORT G_M1024_IG04 + ;; size=23 bbWeight=1 PerfScore 10.50 +G_M1024_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref + ; gcrRegs -[eax] + mov ecx, gword ptr [ebp-0x14] + ; gcrRegs +[ecx] + mov eax, dword ptr [ecx] + mov eax, dword ptr [eax+0x68] + ; GC ptr vars -{V06} + call [eax]<unknown method> + ; gcrRegs -[ecx] +[eax] + ;; size=10 bbWeight=0.50 PerfScore 4.00 +G_M1024_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz + mov edx, gword ptr [esi+0x10] + ; gcrRegs +[edx] + mov gword ptr [ebp-0x1C], edx + ; GC ptr vars +{V09} + test eax, eax + je SHORT G_M1024_IG11 + ;; size=10 bbWeight=1 PerfScore 4.25 +G_M1024_IG05: ; bbWeight=0.50, gcVars=00000100 {V09}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs -[edx] + mov ecx, eax + ; gcrRegs +[ecx] + mov gword ptr [ebp-0x20], ecx + mov gword ptr [ebp-0x18], eax
; GC ptr vars +{V08}
- mov edx, dword ptr [eax] - mov edx, dword ptr [edx+0x70] - call [edx+0x10]<unknown method>
+ mov ecx, dword ptr [eax] + ; gcrRegs -[ecx] + mov ecx, dword ptr [ecx+0x70] + mov dword ptr [ebp-0x24], ecx + mov ecx, gword ptr [ebp-0x20] + ; gcrRegs +[ecx] + mov ebx, dword ptr [ebp-0x24] + call [ebx+0x10]<unknown method>
; gcrRegs -[eax ecx] cmp eax, 1 je SHORT G_M1024_IG07
- ;; size=18 bbWeight=0.50 PerfScore 4.75 -G_M1024_IG06: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ ;; size=30 bbWeight=0.50 PerfScore 6.75 +G_M1024_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
push 0
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
- mov edx, ebx
+ mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
- mov ebx, dword ptr [esi] - ; gcrRegs -[ebx]
+ mov ebx, dword ptr [ebp-0x10]
mov ebx, dword ptr [ebx+0xA8]
+ ; GC ptr vars -{V08 V09}
call [ebx+0x08]<unknown method> ; gcrRegs -[ecx edx]
- ;; size=17 bbWeight=0.50 PerfScore 4.25
+ ;; size=19 bbWeight=0.50 PerfScore 4.12
G_M1024_IG07: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- push gword ptr [edi+0x1C] - push gword ptr [edi+0x24] - mov ecx, esi
+ push gword ptr [esi+0x1C] + push gword ptr [esi+0x24] + mov ecx, edi
; gcrRegs +[ecx]
- mov edx, gword ptr [ebp-0x10]
+ mov edx, gword ptr [ebp-0x18]
; gcrRegs +[edx]
- mov eax, dword ptr [esi] - mov eax, dword ptr [eax+0xAC]
+ mov ebx, dword ptr [ebp-0x10] + mov eax, dword ptr [ebx+0xAC]
call [eax+0x04]<unknown method> ; gcrRegs -[ecx edx]
- mov ebx, gword ptr [ebp-0x10]
+ mov ebx, gword ptr [ebp-0x18]
; gcrRegs +[ebx] test ebx, ebx je SHORT G_M1024_IG09
- ;; size=29 bbWeight=1 PerfScore 14.50
+ ;; size=30 bbWeight=1 PerfScore 13.50
G_M1024_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars -{V08} - mov edx, gword ptr [edi+0x10]
+ mov edx, gword ptr [esi+0x10]
; gcrRegs +[edx] push ebx
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx] call [Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitReceiverAfterCall(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):this]
- ; gcrRegs -[ecx edx ebx edi]
+ ; gcrRegs -[ecx edx ebx esi]
;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M1024_IG09: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M1024_IG09: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
xor eax, eax ; gcrRegs +[eax] ;; size=2 bbWeight=1 PerfScore 0.25 G_M1024_IG10: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx pop esi pop edi pop ebp ret
- ;; size=6 bbWeight=1 PerfScore 3.50 -G_M1024_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz - ; gcrRegs +[ebx edi] - mov gword ptr [ebp-0x10], eax - ; GC ptr vars +{V08}
+ ;; size=8 bbWeight=1 PerfScore 3.50 +G_M1024_IG11: ; bbWeight=0.50, gcVars=00000100 {V09}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz + ; gcrRegs +[esi] + ; GC ptr vars +{V08 V09} + mov gword ptr [ebp-0x18], eax
jmp SHORT G_M1024_IG06 ;; size=5 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 137, prolog size 7, PerfScore 54.25, instruction count 59, allocated bytes for code 137 (MethodHash=c709fbff) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 167, prolog size 14, PerfScore 57.75, instruction count 66, allocated bytes for code 167 (MethodHash=c709fbff) for method Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.windows.x86.checked.mch 3,803 1,459 2,009 335 -11,299 +32,192 -0.1936%
benchmarks.run_pgo.windows.x86.checked.mch 26,256 9,292 13,411 3,553 -50,561 +87,396 -0.8251%
benchmarks.run_tiered.windows.x86.checked.mch 2,951 1,123 1,563 265 -8,504 +26,533 -0.1727%
coreclr_tests.run.windows.x86.checked.mch 90,198 38,561 41,299 10,338 -250,036 +704,439 -0.5953%
libraries.crossgen2.windows.x86.checked.mch 20,604 9,532 8,336 2,736 -67,051 +78,790 -0.0514%
libraries.pmi.windows.x86.checked.mch 27,958 11,595 14,384 1,979 -82,870 +248,263 -0.1357%
libraries_tests.run.windows.x86.Release.mch 54,190 19,406 31,015 3,769 -174,418 +582,489 -0.3666%
librariestestsnotieredcompilation.run.windows.x86.Release.mch 43,015 22,203 17,895 2,917 -178,477 +260,079 -0.1971%
realworld.run.windows.x86.checked.mch 5,459 2,186 2,893 380 -20,690 +52,022 -0.1646%
274,434 115,357 132,805 26,272 -843,906 +2,072,203

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x86.checked.mch 24,508 4 24,504 0 (0.00%) 186 (0.75%)
benchmarks.run_pgo.windows.x86.checked.mch 123,248 42,422 80,826 0 (0.00%) 320 (0.26%)
benchmarks.run_tiered.windows.x86.checked.mch 48,289 29,034 19,255 0 (0.00%) 150 (0.31%)
coreclr_tests.run.windows.x86.checked.mch 584,120 326,271 257,849 1 (0.00%) 720 (0.12%)
libraries.crossgen2.windows.x86.checked.mch 273,693 15 273,678 0 (0.00%) 1,002 (0.36%)
libraries.pmi.windows.x86.checked.mch 309,736 6 309,730 0 (0.00%) 1,093 (0.35%)
libraries_tests.run.windows.x86.Release.mch 624,996 427,538 197,458 0 (0.00%) 3,316 (0.53%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch 315,074 21,932 293,142 0 (0.00%) 1,776 (0.56%)
realworld.run.windows.x86.checked.mch 35,766 3 35,763 0 (0.00%) 270 (0.75%)
2,339,430 847,225 1,492,205 1 (0.00%) 8,833 (0.38%)

jit-analyze output

benchmarks.run.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6969637 (overridden on cmd)
Total bytes of diff: 6990530 (overridden on cmd)
Total bytes of delta: 20893 (0.30 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         531 : 2856.dasm (5.64 % of base)
         519 : 9308.dasm (1.61 % of base)
         451 : 5277.dasm (23.75 % of base)
         408 : 24502.dasm (3.78 % of base)
         403 : 21105.dasm (3.63 % of base)
         356 : 12321.dasm (2.77 % of base)
         291 : 16595.dasm (23.95 % of base)
         234 : 16026.dasm (6.22 % of base)
         233 : 14855.dasm (6.27 % of base)
         221 : 13534.dasm (6.18 % of base)
         218 : 2247.dasm (5.87 % of base)
         207 : 7544.dasm (0.66 % of base)
         205 : 19958.dasm (3.58 % of base)
         199 : 17283.dasm (5.88 % of base)
         187 : 12003.dasm (5.07 % of base)
         184 : 20734.dasm (4.75 % of base)
         182 : 2855.dasm (3.49 % of base)
         173 : 19741.dasm (10.96 % of base)
         166 : 14819.dasm (2.59 % of base)
         160 : 21074.dasm (1.51 % of base)

Top file improvements (bytes):
        -697 : 5286.dasm (-4.43 % of base)
        -148 : 8896.dasm (-4.80 % of base)
        -133 : 4554.dasm (-2.77 % of base)
        -121 : 14350.dasm (-9.71 % of base)
        -110 : 24039.dasm (-2.93 % of base)
        -106 : 12808.dasm (-3.54 % of base)
        -102 : 3371.dasm (-7.52 % of base)
         -98 : 6853.dasm (-5.22 % of base)
         -95 : 12291.dasm (-2.65 % of base)
         -94 : 16883.dasm (-1.64 % of base)
         -88 : 12307.dasm (-2.76 % of base)
         -81 : 2849.dasm (-1.38 % of base)
         -81 : 814.dasm (-8.54 % of base)
         -76 : 13072.dasm (-2.25 % of base)
         -73 : 19260.dasm (-2.38 % of base)
         -72 : 16857.dasm (-1.64 % of base)
         -63 : 8741.dasm (-3.71 % of base)
         -63 : 10163.dasm (-4.19 % of base)
         -58 : 10611.dasm (-4.52 % of base)
         -54 : 21905.dasm (-4.59 % of base)

94 total files with Code Size differences (43 improved, 51 regressed), 20 unchanged.

Top method regressions (bytes):
         531 (5.64 % of base) : 2856.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         519 (1.61 % of base) : 9308.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         451 (23.75 % of base) : 5277.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         408 (3.78 % of base) : 24502.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
         403 (3.63 % of base) : 21105.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
         356 (2.77 % of base) : 12321.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         291 (23.95 % of base) : 16595.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         234 (6.22 % of base) : 16026.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
         233 (6.27 % of base) : 14855.dasm - (dynamicClass):ReadMyEventsListerItemFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         221 (6.18 % of base) : 13534.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         218 (5.87 % of base) : 2247.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
         207 (0.66 % of base) : 7544.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
         205 (3.58 % of base) : 19958.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
         199 (5.88 % of base) : 17283.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         187 (5.07 % of base) : 12003.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         184 (4.75 % of base) : 20734.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
         182 (3.49 % of base) : 2855.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
         173 (10.96 % of base) : 19741.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (FullOpts)
         166 (2.59 % of base) : 14819.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         160 (1.51 % of base) : 21074.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)

Top method improvements (bytes):
        -697 (-4.43 % of base) : 5286.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -148 (-4.80 % of base) : 8896.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (FullOpts)
        -133 (-2.77 % of base) : 4554.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
        -121 (-9.71 % of base) : 14350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -110 (-2.93 % of base) : 24039.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
        -106 (-3.54 % of base) : 12808.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -102 (-7.52 % of base) : 3371.dasm - System.UriParser:.cctor() (FullOpts)
         -98 (-5.22 % of base) : 6853.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (FullOpts)
         -95 (-2.65 % of base) : 12291.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
         -94 (-1.64 % of base) : 16883.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
         -88 (-2.76 % of base) : 12307.dasm - MicroBenchmarks.Serializers.CampaignSummaryViewModel:proto_9(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel) (FullOpts)
         -81 (-8.54 % of base) : 814.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
         -81 (-1.38 % of base) : 2849.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
         -76 (-2.25 % of base) : 13072.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
         -73 (-2.38 % of base) : 19260.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseVariableDeclarator(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,int,ubyte,ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax:this (FullOpts)
         -72 (-1.64 % of base) : 16857.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (FullOpts)
         -63 (-3.71 % of base) : 8741.dasm - System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this (FullOpts)
         -63 (-4.19 % of base) : 10163.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (FullOpts)
         -58 (-4.52 % of base) : 10611.dasm - System.Memory.ReadOnlySequence:GlobalSetup():this (FullOpts)
         -54 (-10.84 % of base) : 7202.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:AddCharBuffer(System.Type):this (FullOpts)

Top method regressions (percentages):
         291 (23.95 % of base) : 16595.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 5277.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          28 (23.73 % of base) : 8831.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
          28 (23.73 % of base) : 15445.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
          41 (21.13 % of base) : 19464.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          22 (20.00 % of base) : 20737.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts)
          82 (19.03 % of base) : 16156.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:ReadAssemblyIdentityOrThrow(System.Reflection.Metadata.MetadataReader):Microsoft.CodeAnalysis.AssemblyIdentity (FullOpts)
          11 (18.97 % of base) : 8719.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (FullOpts)
           5 (16.67 % of base) : 14631.dasm - System.Text.StringBuilder:Append(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         147 (16.28 % of base) : 1080.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
          27 (16.27 % of base) : 18208.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (FullOpts)
          38 (15.77 % of base) : 11415.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (FullOpts)
          39 (15.73 % of base) : 16690.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (FullOpts)
          35 (15.62 % of base) : 2881.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (FullOpts)
          17 (15.60 % of base) : 21760.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (FullOpts)
          23 (15.33 % of base) : 14771.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (FullOpts)
          23 (15.33 % of base) : 24532.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (FullOpts)
          10 (15.15 % of base) : 6197.dasm - System.Xml.ValueHandle:GetCharsText():System.String:this (FullOpts)
          33 (13.87 % of base) : 24533.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (FullOpts)
          18 (13.85 % of base) : 20399.dasm - Benchstone.BenchI.TreeSort:Trees(int[]):ubyte (FullOpts)

Top method improvements (percentages):
         -22 (-18.33 % of base) : 17193.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -18 (-12.50 % of base) : 15148.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (FullOpts)
         -25 (-11.90 % of base) : 10733.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (FullOpts)
         -51 (-11.59 % of base) : 16108.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (FullOpts)
         -27 (-11.54 % of base) : 18075.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (FullOpts)
         -54 (-10.84 % of base) : 7202.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:AddCharBuffer(System.Type):this (FullOpts)
         -23 (-10.70 % of base) : 16974.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (FullOpts)
          -9 (-10.23 % of base) : 11739.dasm - System.Memory.Span`1[ushort]:IndexOfAnyTwoValues():int:this (FullOpts)
        -121 (-9.71 % of base) : 14350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -13 (-9.63 % of base) : 807.dasm - System.String:PadRight(int,ushort):System.String:this (FullOpts)
         -53 (-9.57 % of base) : 3844.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (FullOpts)
         -13 (-9.49 % of base) : 656.dasm - System.String:PadLeft(int,ushort):System.String:this (FullOpts)
         -24 (-9.30 % of base) : 6793.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+<>c__DisplayClass12_1:<BuildDeserialize>b__2(System.Collections.Generic.KeyValuePair`2[System.String,int]):this (FullOpts)
         -81 (-8.54 % of base) : 814.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
          -5 (-8.47 % of base) : 10285.dasm - System.Xml.XmlConverter:ToChars(long,ubyte[],int):int (FullOpts)
         -27 (-8.36 % of base) : 20475.dasm - System.Tests.Perf_Enum:InterpolateIntoStringBuilder[int](System.Text.StringBuilder,int) (FullOpts)
          -3 (-8.11 % of base) : 7383.dasm - Sigil.Impl.ExtensionMethods:IsTailableCall(System.Reflection.Emit.OpCode):ubyte (FullOpts)
          -8 (-8.08 % of base) : 1072.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -5 (-7.81 % of base) : 726.dasm - System.String:Equals(System.Object):ubyte:this (FullOpts)
          -6 (-7.79 % of base) : 3397.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (FullOpts)


benchmarks.run_pgo.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 47456230 (overridden on cmd)
Total bytes of diff: 47493065 (overridden on cmd)
Total bytes of delta: 36835 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         557 : 87610.dasm (6.36 % of base)
         535 : 22696.dasm (5.67 % of base)
         519 : 31033.dasm (1.61 % of base)
         410 : 14978.dasm (20.46 % of base)
         387 : 102693.dasm (3.42 % of base)
         386 : 119908.dasm (3.50 % of base)
         356 : 45696.dasm (2.77 % of base)
         265 : 27208.dasm (3.06 % of base)
         220 : 81832.dasm (5.27 % of base)
         218 : 17917.dasm (5.87 % of base)
         207 : 6602.dasm (0.66 % of base)
         205 : 91714.dasm (3.58 % of base)
         197 : 76261.dasm (5.54 % of base)
         190 : 73899.dasm (9.68 % of base)
         184 : 97774.dasm (4.75 % of base)
         173 : 88993.dasm (10.96 % of base)
         168 : 102544.dasm (9.37 % of base)
         166 : 65901.dasm (2.59 % of base)
         161 : 19217.dasm (3.89 % of base)
         160 : 102262.dasm (1.51 % of base)

Top file improvements (bytes):
        -146 : 29754.dasm (-4.70 % of base)
        -135 : 87005.dasm (-4.42 % of base)
        -133 : 17452.dasm (-2.77 % of base)
        -110 : 20630.dasm (-17.24 % of base)
        -107 : 53391.dasm (-3.63 % of base)
        -105 : 75287.dasm (-1.74 % of base)
        -105 : 6745.dasm (-3.36 % of base)
         -98 : 12371.dasm (-5.22 % of base)
         -95 : 46780.dasm (-2.63 % of base)
         -84 : 116796.dasm (-2.20 % of base)
         -81 : 22687.dasm (-1.38 % of base)
         -81 : 2273.dasm (-7.63 % of base)
         -76 : 52493.dasm (-2.24 % of base)
         -72 : 75176.dasm (-1.64 % of base)
         -70 : 69141.dasm (-25.83 % of base)
         -67 : 88291.dasm (-10.37 % of base)
         -59 : 28228.dasm (-23.51 % of base)
         -58 : 91559.dasm (-1.46 % of base)
         -54 : 111329.dasm (-4.59 % of base)
         -54 : 45009.dasm (-1.57 % of base)

97 total files with Code Size differences (38 improved, 59 regressed), 20 unchanged.

Top method regressions (bytes):
         557 (6.36 % of base) : 87610.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
         535 (5.67 % of base) : 22696.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         519 (1.61 % of base) : 31033.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         410 (20.46 % of base) : 14978.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
         387 (3.42 % of base) : 102693.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
         386 (3.50 % of base) : 119908.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
         356 (2.77 % of base) : 45696.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         265 (3.06 % of base) : 27208.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
         220 (5.27 % of base) : 81832.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IMethodReference):this (Tier1)
         218 (5.87 % of base) : 17917.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier0-FullOpts)
         207 (0.66 % of base) : 6602.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
         205 (3.58 % of base) : 91714.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
         197 (5.54 % of base) : 76261.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         190 (9.68 % of base) : 73899.dasm - Microsoft.CodeAnalysis.PEModule:EnsureForwardTypeToAssemblyMap():this (Tier0-FullOpts)
         184 (4.75 % of base) : 97774.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier0-FullOpts)
         173 (10.96 % of base) : 88993.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier0-FullOpts)
         168 (9.37 % of base) : 102544.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreateTypeInfoCore(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo (Tier1)
         166 (2.59 % of base) : 65901.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         161 (3.89 % of base) : 19217.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
         160 (1.51 % of base) : 102262.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)

Top method improvements (bytes):
        -146 (-4.70 % of base) : 29754.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier0-FullOpts)
        -135 (-4.42 % of base) : 87005.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`2[System.__Canon,System.__Canon]],byref) (Tier0-FullOpts)
        -133 (-2.77 % of base) : 17452.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
        -110 (-17.24 % of base) : 20630.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
        -107 (-3.63 % of base) : 53391.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -105 (-3.36 % of base) : 6745.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:ReadObjectAutomata(System.Type):this (Tier0-FullOpts)
        -105 (-1.74 % of base) : 75287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
         -98 (-5.22 % of base) : 12371.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (Tier0-FullOpts)
         -95 (-2.63 % of base) : 46780.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
         -84 (-2.20 % of base) : 116796.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
         -81 (-7.63 % of base) : 2273.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
         -81 (-1.38 % of base) : 22687.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0-FullOpts)
         -76 (-2.24 % of base) : 52493.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
         -72 (-1.64 % of base) : 75176.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (Tier0-FullOpts)
         -70 (-25.83 % of base) : 69141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -67 (-10.37 % of base) : 88291.dasm - Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxNodeCache:TryGetNode(int,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,ubyte,byref):Microsoft.CodeAnalysis.GreenNode (Tier1)
         -59 (-23.51 % of base) : 28228.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -58 (-1.46 % of base) : 91559.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -54 (-1.57 % of base) : 45009.dasm - (dynamicClass):ReadLocationFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         -54 (-4.59 % of base) : 111329.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.MyEventsListerItemTask:this (Tier0-FullOpts)

Top method regressions (percentages):
          65 (24.53 % of base) : 88764.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetCandidateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.String,int,Microsoft.CodeAnalysis.CSharp.Binder):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol] (Tier1)
          28 (23.73 % of base) : 30178.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
          28 (23.73 % of base) : 70115.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
          62 (22.63 % of base) : 120244.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          41 (21.13 % of base) : 87125.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
          14 (20.90 % of base) : 24362.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
         410 (20.46 % of base) : 14978.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          34 (19.43 % of base) : 36990.dasm - System.Text.RegularExpressions.RegexCharClass:TryGetDoubleRange(System.String,byref,byref):ubyte (Tier1)
          24 (19.35 % of base) : 88065.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
          11 (18.97 % of base) : 29155.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (Tier0-FullOpts)
          21 (16.80 % of base) : 2947.dasm - System.String:CopyStringContent(System.String,int,System.String) (Tier1)
          56 (16.18 % of base) : 53198.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)
          38 (15.77 % of base) : 41926.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (Tier0-FullOpts)
          35 (15.62 % of base) : 23390.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (Tier0-FullOpts)
          17 (15.60 % of base) : 109958.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (Tier0-FullOpts)
          23 (15.33 % of base) : 64965.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          23 (15.33 % of base) : 120413.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          88 (14.64 % of base) : 65492.dasm - System.Diagnostics.Tracing.EventParameterInfo:GenerateMetadata(uint,byref,uint):ubyte:this (Tier0-FullOpts)
          30 (14.29 % of base) : 88151.dasm - System.Linq.OrderedEnumerable`1[System.__Canon]:GetCount(ubyte):int:this (Tier1)
          33 (13.87 % of base) : 120414.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (Tier0-FullOpts)

Top method improvements (percentages):
          -5 (-29.41 % of base) : 103821.dasm - System.Math:Min(short,short):short (Tier1)
          -5 (-29.41 % of base) : 11837.dasm - System.Math:Min(short,short):short (Tier1)
          -5 (-29.41 % of base) : 24261.dasm - System.Math:Min(short,short):short (Tier1)
          -5 (-29.41 % of base) : 86060.dasm - System.Math:Min(short,short):short (Tier1)
         -70 (-25.83 % of base) : 69141.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
         -59 (-23.51 % of base) : 28228.dasm - System.Threading.LowLevelLock:TryAcquire():ubyte:this (Tier1)
          -3 (-20.00 % of base) : 32496.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 71288.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 65533.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 84065.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 86890.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 44502.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 60382.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 120666.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 114699.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 119193.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 122562.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 60941.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 83380.dasm - System.Math:Min(short,short):short (Tier1)
          -3 (-20.00 % of base) : 90589.dasm - System.Math:Min(short,short):short (Tier1)


benchmarks.run_tiered.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 9351120 (overridden on cmd)
Total bytes of diff: 9369149 (overridden on cmd)
Total bytes of delta: 18029 (0.19 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         531 : 12755.dasm (5.64 % of base)
         519 : 18304.dasm (1.61 % of base)
         451 : 5024.dasm (23.75 % of base)
         408 : 48035.dasm (3.78 % of base)
         403 : 44029.dasm (3.63 % of base)
         356 : 25508.dasm (2.77 % of base)
         291 : 34345.dasm (23.95 % of base)
         234 : 32654.dasm (6.22 % of base)
         233 : 30130.dasm (6.27 % of base)
         221 : 28291.dasm (6.19 % of base)
         210 : 17069.dasm (5.83 % of base)
         207 : 13998.dasm (0.66 % of base)
         205 : 41809.dasm (3.58 % of base)
         199 : 35565.dasm (5.88 % of base)
         184 : 43145.dasm (4.75 % of base)
         182 : 12754.dasm (3.49 % of base)
         173 : 41606.dasm (10.96 % of base)
         166 : 30375.dasm (2.59 % of base)
         160 : 43866.dasm (1.51 % of base)
         158 : 7264.dasm (5.43 % of base)

Top file improvements (bytes):
        -148 : 17880.dasm (-4.80 % of base)
        -133 : 9218.dasm (-2.77 % of base)
        -114 : 40264.dasm (-4.01 % of base)
        -110 : 47511.dasm (-2.93 % of base)
        -106 : 27259.dasm (-3.65 % of base)
         -98 : 7692.dasm (-5.22 % of base)
         -95 : 25336.dasm (-2.65 % of base)
         -94 : 34735.dasm (-1.64 % of base)
         -88 : 25417.dasm (-2.76 % of base)
         -81 : 12742.dasm (-1.38 % of base)
         -81 : 2230.dasm (-8.54 % of base)
         -76 : 27313.dasm (-2.25 % of base)
         -72 : 34596.dasm (-1.64 % of base)
         -63 : 23999.dasm (-4.19 % of base)
         -54 : 19080.dasm (-2.70 % of base)
         -54 : 47041.dasm (-4.59 % of base)
         -53 : 15511.dasm (-9.57 % of base)
         -53 : 32572.dasm (-0.81 % of base)
         -52 : 35376.dasm (-3.74 % of base)
         -52 : 31889.dasm (-2.95 % of base)

94 total files with Code Size differences (44 improved, 50 regressed), 20 unchanged.

Top method regressions (bytes):
         531 (5.64 % of base) : 12755.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         519 (1.61 % of base) : 18304.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
         451 (23.75 % of base) : 5024.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
         408 (3.78 % of base) : 48035.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
         403 (3.63 % of base) : 44029.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
         356 (2.77 % of base) : 25508.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
         291 (23.95 % of base) : 34345.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (Tier1)
         234 (6.22 % of base) : 32654.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (Tier0-FullOpts)
         233 (6.27 % of base) : 30130.dasm - (dynamicClass):ReadMyEventsListerItemFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         221 (6.19 % of base) : 28291.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         210 (5.83 % of base) : 17069.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (Tier0-FullOpts)
         207 (0.66 % of base) : 13998.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
         205 (3.58 % of base) : 41809.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.Location (FullOpts)
         199 (5.88 % of base) : 35565.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AfterMembersCompletedChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         184 (4.75 % of base) : 43145.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier0-FullOpts)
         182 (3.49 % of base) : 12754.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
         173 (10.96 % of base) : 41606.dasm - Benchstone.BenchF.MatInv4:MinV2(float[],byref,byref,float[],float[]) (Tier0-FullOpts)
         166 (2.59 % of base) : 30375.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
         160 (1.51 % of base) : 43866.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
         158 (5.43 % of base) : 7264.dasm - Utf8Json.Internal.AutomataDictionary+AutomataNode:EmitSearchNextCore(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,System.Action`1[System.Collections.Generic.KeyValuePair`2[System.String,int]],System.Action,Utf8Json.Internal.AutomataDictionary+AutomataNode[],int) (Tier0-FullOpts)

Top method improvements (bytes):
        -148 (-4.80 % of base) : 17880.dasm - System.Decimal+DecCalc:VarDecDiv(byref,byref) (Tier0-FullOpts)
        -133 (-2.77 % of base) : 9218.dasm - MicroBenchmarks.Serializers.Location:proto_1(byref,MicroBenchmarks.Serializers.Location) (FullOpts)
        -114 (-4.01 % of base) : 40264.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:VisitRankSpecifiers[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,System.Action`2[System.__Canon,System.ValueTuple`2[System.__Canon,System.__Canon]],byref) (Tier0-FullOpts)
        -110 (-2.93 % of base) : 47511.dasm - (dynamicClass):_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel (FullOpts)
        -106 (-3.65 % of base) : 27259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -98 (-5.22 % of base) : 7692.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this (Tier0-FullOpts)
         -95 (-2.65 % of base) : 25336.dasm - MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:proto_7(byref,MicroBenchmarks.Serializers.ActiveOrUpcomingEvent) (FullOpts)
         -94 (-1.64 % of base) : 34735.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
         -88 (-2.76 % of base) : 25417.dasm - MicroBenchmarks.Serializers.CampaignSummaryViewModel:proto_9(byref,MicroBenchmarks.Serializers.CampaignSummaryViewModel) (FullOpts)
         -81 (-8.54 % of base) : 2230.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
         -81 (-1.38 % of base) : 12742.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0-FullOpts)
         -76 (-2.25 % of base) : 27313.dasm - MicroBenchmarks.Serializers.MyEventsListerItem:proto_7(byref,MicroBenchmarks.Serializers.MyEventsListerItem) (FullOpts)
         -72 (-1.64 % of base) : 34596.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:GetMergedGlobalAliasesAndUsings(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:this (Tier0-FullOpts)
         -63 (-4.19 % of base) : 23999.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (Tier0-FullOpts)
         -54 (-2.70 % of base) : 19080.dasm - BilinearTest:BilinearInterpol_Vector(double[],double[],double,double,double[],double,double,double):double[]:this (Tier0-FullOpts)
         -54 (-4.59 % of base) : 47041.dasm - Utf8Json.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(byref,Utf8Json.IJsonFormatterResolver):MicroBenchmarks.Serializers.MyEventsListerItemTask:this (Tier0-FullOpts)
         -53 (-0.81 % of base) : 32572.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
         -53 (-9.57 % of base) : 15511.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
         -52 (-3.74 % of base) : 35376.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckNonOverrideMember(Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.OverriddenOrHiddenMembersResult,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref) (Tier0-FullOpts)
         -52 (-2.95 % of base) : 31889.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexSyntaxTrivia(ubyte,ubyte,byref):this (Tier0-FullOpts)

Top method regressions (percentages):
         291 (23.95 % of base) : 34345.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (Tier1)
         451 (23.75 % of base) : 5024.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          28 (23.73 % of base) : 18168.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
          28 (23.73 % of base) : 31293.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
          41 (21.13 % of base) : 40330.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
          22 (20.00 % of base) : 43082.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (Tier1)
          11 (18.97 % of base) : 19334.dasm - System.Linq.Enumerable+ConcatNIterator`1[int]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[int]:this (Tier0-FullOpts)
         147 (16.28 % of base) : 11751.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Tier0-FullOpts)
          27 (16.27 % of base) : 38629.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (Tier1)
          38 (15.77 % of base) : 24177.dasm - System.Xml.XmlWellFormedWriter:StartElementContent():this (Tier0-FullOpts)
          39 (15.73 % of base) : 34666.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (Tier1)
          35 (15.62 % of base) : 12884.dasm - System.Text.Json.Tests.Utf8JsonReaderCommentsTests:GetSequence(ubyte[],int):System.Buffers.ReadOnlySequence`1[ubyte] (Tier0-FullOpts)
          17 (15.60 % of base) : 44745.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (Tier0-FullOpts)
          23 (15.33 % of base) : 30061.dasm - Benchstone.BenchI.NDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          23 (15.33 % of base) : 48070.dasm - Benchstone.MDBenchI.MDNDhrystone:Func2(ushort[],ushort[]):ubyte (Tier0-FullOpts)
          33 (13.87 % of base) : 48071.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc8(int[],int[,],int,int) (Tier0-FullOpts)
          18 (13.85 % of base) : 42309.dasm - Benchstone.BenchI.TreeSort:Trees(int[]):ubyte (Tier0-FullOpts)
          23 (13.37 % of base) : 43641.dasm - System.Collections.Immutable.ImmutableList`1+Enumerator[int]:PushNext(System.Collections.Immutable.ImmutableList`1+Node[int]):this (Tier0-FullOpts)
         144 (13.32 % of base) : 44154.dasm - Benchstone.MDBenchF.MDRomber:Test():ubyte:this (Tier0-FullOpts)
         108 (13.06 % of base) : 1270.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier0-FullOpts)

Top method improvements (percentages):
         -22 (-18.33 % of base) : 35423.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
         -18 (-12.50 % of base) : 30662.dasm - Benchstone.BenchI.Permutate:PermuteArray(int):this (Tier0-FullOpts)
         -25 (-11.90 % of base) : 22685.dasm - System.Diagnostics.ActivityContext:Equals(System.Diagnostics.ActivityContext):ubyte:this (Tier1)
         -51 (-11.59 % of base) : 32775.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (Tier0-FullOpts)
         -27 (-11.54 % of base) : 38798.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (Tier1)
         -23 (-10.70 % of base) : 34992.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (Tier0-FullOpts)
         -23 (-10.27 % of base) : 39052.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitToken(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):this (Tier1)
         -53 (-9.57 % of base) : 15511.dasm - System.Net.Security.SslStream:ProcessTlsFrame(int):System.Net.Security.ProtocolToken:this (Tier0-FullOpts)
         -13 (-9.49 % of base) : 2238.dasm - System.String:PadLeft(int,ushort):System.String:this (Tier1)
         -24 (-9.30 % of base) : 7724.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder+<>c__DisplayClass12_1:<BuildDeserialize>b__2(System.Collections.Generic.KeyValuePair`2[System.String,int]):this (Tier1)
          -7 (-8.75 % of base) : 35933.dasm - Microsoft.CodeAnalysis.Compilation:IsTypeMissing(byte):ubyte:this (Tier1)
         -81 (-8.54 % of base) : 2230.dasm - System.Number+Grisu3:TryDigitGenCounted(byref,int,System.Span`1[ubyte],byref,byref):ubyte (Tier0-FullOpts)
          -3 (-8.11 % of base) : 43942.dasm - Sigil.Impl.ExtensionMethods:IsTailableCall(System.Reflection.Emit.OpCode):ubyte (Tier1)
          -8 (-8.08 % of base) : 17408.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -5 (-7.81 % of base) : 3417.dasm - System.String:Equals(System.Object):ubyte:this (Tier1)
          -6 (-7.79 % of base) : 3396.dasm - System.Uri:GetLengthWithoutTrailingSpaces(System.String,byref,int) (Tier0-FullOpts)
          -8 (-7.77 % of base) : 237.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
          -8 (-7.77 % of base) : 13100.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -8 (-7.69 % of base) : 8184.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
         -19 (-7.34 % of base) : 42339.dasm - JetStream.Statistics:findOptimalSegmentation(double[],JetStream.SampleVarianceUpperTriangularMatrix,int):JetStream.Statistics+OptimalSegmentation (Tier0-FullOpts)


coreclr_tests.run.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 315999892 (overridden on cmd)
Total bytes of diff: 316454295 (overridden on cmd)
Total bytes of delta: 454403 (0.14 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        6824 : 514642.dasm (4.58 % of base)
        6824 : 514647.dasm (4.58 % of base)
        6672 : 515053.dasm (6.77 % of base)
        6672 : 515039.dasm (6.77 % of base)
        6672 : 520711.dasm (6.77 % of base)
        6672 : 520713.dasm (6.77 % of base)
        5972 : 515175.dasm (4.98 % of base)
        5860 : 515111.dasm (4.93 % of base)
        3939 : 515143.dasm (3.82 % of base)
        3929 : 515079.dasm (3.74 % of base)
        2543 : 514829.dasm (2.75 % of base)
        2281 : 515155.dasm (14.12 % of base)
        2281 : 520745.dasm (14.12 % of base)
        2081 : 520726.dasm (12.52 % of base)
        2020 : 520737.dasm (13.46 % of base)
        2015 : 515488.dasm (1.81 % of base)
        2015 : 514843.dasm (1.81 % of base)
        1993 : 515087.dasm (11.91 % of base)
        1989 : 515107.dasm (13.01 % of base)
        1978 : 514850.dasm (1.68 % of base)

Top file improvements (bytes):
       -1213 : 350506.dasm (-5.38 % of base)
        -697 : 486257.dasm (-4.43 % of base)
        -670 : 378717.dasm (-3.34 % of base)
        -547 : 470974.dasm (-9.71 % of base)
        -496 : 282538.dasm (-26.78 % of base)
        -433 : 472165.dasm (-7.36 % of base)
        -343 : 283847.dasm (-7.68 % of base)
        -343 : 521219.dasm (-7.68 % of base)
        -326 : 471983.dasm (-5.13 % of base)
        -256 : 474021.dasm (-2.39 % of base)
        -256 : 204123.dasm (-2.37 % of base)
        -250 : 377459.dasm (-5.67 % of base)
        -247 : 474244.dasm (-1.73 % of base)
        -239 : 474252.dasm (-1.82 % of base)
        -234 : 248182.dasm (-4.52 % of base)
        -221 : 476338.dasm (-10.92 % of base)
        -206 : 476037.dasm (-8.58 % of base)
        -206 : 476145.dasm (-8.58 % of base)
        -203 : 383487.dasm (-7.39 % of base)
        -192 : 2443.dasm (-6.57 % of base)

95 total files with Code Size differences (49 improved, 46 regressed), 20 unchanged.

Top method regressions (bytes):
        6824 (4.58 % of base) : 514642.dasm - decimaldiv:TestEntryPoint():int (FullOpts)
        6824 (4.58 % of base) : 514647.dasm - decimalrem:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 515039.dasm - overlddiv:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 520711.dasm - overlddiv:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 515053.dasm - overldrem:TestEntryPoint():int (FullOpts)
        6672 (6.77 % of base) : 520713.dasm - overldrem:TestEntryPoint():int (FullOpts)
        5972 (4.98 % of base) : 515175.dasm - r8rem:TestEntryPoint():int (FullOpts)
        5860 (4.93 % of base) : 515111.dasm - r4rem:TestEntryPoint():int (FullOpts)
        3939 (3.82 % of base) : 515143.dasm - r8div:TestEntryPoint():int (FullOpts)
        3929 (3.74 % of base) : 515079.dasm - r4div:TestEntryPoint():int (FullOpts)
        2543 (2.75 % of base) : 514829.dasm - i4div:TestEntryPoint():int (FullOpts)
        2281 (14.12 % of base) : 515155.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        2281 (14.12 % of base) : 520745.dasm - r8NaNdiv:TestEntryPoint():int (FullOpts)
        2081 (12.52 % of base) : 520726.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
        2020 (13.46 % of base) : 520737.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        2015 (1.81 % of base) : 514843.dasm - i8div:TestEntryPoint():int (FullOpts)
        2015 (1.81 % of base) : 515488.dasm - u8div:TestEntryPoint():int (FullOpts)
        1993 (11.91 % of base) : 515087.dasm - r4NaNadd:TestEntryPoint():int (FullOpts)
        1989 (13.01 % of base) : 515107.dasm - r4NaNsub:TestEntryPoint():int (FullOpts)
        1978 (1.68 % of base) : 514850.dasm - i8rem:TestEntryPoint():int (FullOpts)

Top method improvements (bytes):
       -1213 (-5.38 % of base) : 350506.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -697 (-4.43 % of base) : 486257.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -670 (-3.34 % of base) : 378717.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -547 (-9.71 % of base) : 470974.dasm - div_r4._div:main():int (FullOpts)
        -496 (-26.78 % of base) : 282538.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
        -433 (-7.36 % of base) : 472165.dasm - sub_r4._sub:main():int (FullOpts)
        -343 (-7.68 % of base) : 521219.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (FullOpts)
        -343 (-7.68 % of base) : 283847.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (Tier0-FullOpts)
        -326 (-5.13 % of base) : 471983.dasm - mul_r4._mul:main():int (FullOpts)
        -256 (-2.39 % of base) : 474021.dasm - Dynamic.CollectionTest:CustomCollection():this (FullOpts)
        -256 (-2.37 % of base) : 204123.dasm - Dynamic.CollectionTest:CustomCollection():this (Tier0-FullOpts)
        -250 (-5.67 % of base) : 377459.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
        -247 (-1.73 % of base) : 474244.dasm - Dynamic.EventTest:MultipleHandlers():this (FullOpts)
        -239 (-1.82 % of base) : 474252.dasm - Dynamic.EventTest:MultipleSources():this (FullOpts)
        -234 (-4.52 % of base) : 248182.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Instrumented Tier1)
        -221 (-10.92 % of base) : 476338.dasm - Vector2_3_4Test:RunVector4Tests() (FullOpts)
        -206 (-8.58 % of base) : 476037.dasm - GenericsTest:TestVector256F() (FullOpts)
        -206 (-8.58 % of base) : 476145.dasm - GenericsTest:TestVectorF256() (FullOpts)
        -203 (-7.39 % of base) : 383487.dasm - XUnitWrapperLibrary.TestSummary:GetTestResultOutput(System.String):System.String:this (FullOpts)
        -192 (-6.57 % of base) : 2443.dasm - XUnitWrapperLibrary.TestSummary:GetTestResultOutput(System.String):System.String:this (Tier0-FullOpts)

Top method regressions (percentages):
         332 (41.81 % of base) : 528516.dasm - Test+Matrix4x4:TestEntryPoint():int (FullOpts)
         678 (37.73 % of base) : 583238.dasm - X:SetDirect(System.String,ubyte):ubyte (FullOpts)
          68 (29.44 % of base) : 515980.dasm - structinreg.Program1:test15(structinreg.Test15):int (FullOpts)
          32 (27.59 % of base) : 513573.dasm - Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
          32 (27.59 % of base) : 519759.dasm - Test_10w5d.testout1:Func_0_4_4_2_1():double (FullOpts)
          68 (27.31 % of base) : 515977.dasm - structinreg.Program1:test4(structinreg.Test4):int (FullOpts)
         321 (26.18 % of base) : 584132.dasm - Value0:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584134.dasm - Value1:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584136.dasm - Value2:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584138.dasm - Value3:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584140.dasm - Value4:CheckValues():ubyte:this (FullOpts)
         321 (24.26 % of base) : 584142.dasm - Value5:CheckValues():ubyte:this (FullOpts)
           6 (24.00 % of base) : 477513.dasm - Point:DistanceSquared(Point):int:this (FullOpts)
         291 (23.95 % of base) : 486833.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 486249.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          41 (21.13 % of base) : 489289.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          41 (21.13 % of base) : 237851.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (Tier0-FullOpts)
          59 (21.00 % of base) : 584781.dasm - Microsoft.Diagnostics.Tracing.TraceEvent:XmlAttribHex(System.Text.StringBuilder,System.String,ulong):System.Text.StringBuilder (FullOpts)
          14 (20.90 % of base) : 228167.dasm - System.Reflection.MethodInvokerCommon:DetermineStrategy_ObjSpanArgs(byref,byref,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
          58 (20.64 % of base) : 371848.dasm - Microsoft.Build.Evaluation.SemiColonTokenizer+Enumerator:MoveNext():ubyte:this (Tier0-FullOpts)

Top method improvements (percentages):
          -5 (-29.41 % of base) : 50004.dasm - System.Math:Max(byte,byte):byte (Tier1)
          -5 (-29.41 % of base) : 49992.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
        -496 (-26.78 % of base) : 282538.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.__Canon]:FindValue(System.ReadOnlyMemory`1[ushort]):byref:this (Tier1)
        -125 (-20.29 % of base) : 228962.dasm - System.String:CompareOrdinalHelper(System.String,System.String):int (Instrumented Tier1)
          -3 (-20.00 % of base) : 282392.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
          -3 (-20.00 % of base) : 231000.dasm - System.Math:Max(ubyte,ubyte):ubyte (Tier1)
         -11 (-18.97 % of base) : 228240.dasm - Tests_len3_6:Test_tst_29(System.String):ubyte (FullOpts)
         -11 (-18.97 % of base) : 228689.dasm - Tests_len34_13:Test_tst_29(System.String):ubyte (FullOpts)
         -11 (-18.97 % of base) : 228302.dasm - Tests_len4_7:Test_tst_29(System.String):ubyte (FullOpts)
         -11 (-18.97 % of base) : 228364.dasm - Tests_len5_8:Test_tst_29(System.String):ubyte (FullOpts)
         -22 (-18.33 % of base) : 487447.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -22 (-18.33 % of base) : 233776.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
        -120 (-16.76 % of base) : 471993.dasm - neg_r4._neg:main():int (FullOpts)
        -102 (-14.01 % of base) : 371711.dasm - System.Threading.ReaderWriterLockSlim:ExitWriteLock():this (Instrumented Tier1)
         -16 (-13.56 % of base) : 581352.dasm - ILCompiler.RuntimeDeterminedTypeHelper:GetHashCode(Internal.TypeSystem.MethodDesc):int (FullOpts)
        -184 (-13.29 % of base) : 472213.dasm - TestCasts.Program:TestConvertFromFloatToI1() (FullOpts)
         -35 (-13.16 % of base) : 472573.dasm - Xunit.AssertExtensions:CollectionEqual[System.__Canon](System.__Canon[],System.__Canon[]) (FullOpts)
         -35 (-13.16 % of base) : 204183.dasm - Xunit.AssertExtensions:CollectionEqual[System.__Canon](System.__Canon[],System.__Canon[]) (Tier0-FullOpts)
         -48 (-13.08 % of base) : 584426.dasm - Tracing.Tests.Listener+<GetFailedTargetEvents>d__17:MoveNext():ubyte:this (FullOpts)
          -8 (-12.90 % of base) : 529974.dasm - ILGEN_0xc2f3d0c8:Method_0x5cc2(double):int (FullOpts)


libraries.crossgen2.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 35570616 (overridden on cmd)
Total bytes of diff: 35582355 (overridden on cmd)
Total bytes of delta: 11739 (0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         836 : 247027.dasm (12.23 % of base)
         457 : 228421.dasm (2.07 % of base)
         368 : 251772.dasm (19.82 % of base)
         335 : 36247.dasm (6.09 % of base)
         333 : 254588.dasm (15.50 % of base)
         282 : 116211.dasm (0.42 % of base)
         265 : 75757.dasm (2.63 % of base)
         233 : 23260.dasm (11.92 % of base)
         224 : 186326.dasm (5.75 % of base)
         224 : 145190.dasm (5.75 % of base)
         208 : 74597.dasm (10.12 % of base)
         201 : 238596.dasm (7.56 % of base)
         201 : 257002.dasm (7.56 % of base)
         188 : 173528.dasm (6.21 % of base)
         176 : 37918.dasm (3.07 % of base)
         176 : 70583.dasm (3.07 % of base)
         170 : 25395.dasm (0.28 % of base)
         163 : 36354.dasm (14.17 % of base)
         162 : 111380.dasm (4.51 % of base)
         161 : 5092.dasm (9.53 % of base)

Top file improvements (bytes):
        -484 : 115281.dasm (-2.65 % of base)
        -396 : 36577.dasm (-8.68 % of base)
        -383 : 274183.dasm (-8.05 % of base)
        -381 : 133189.dasm (-7.99 % of base)
        -281 : 41039.dasm (-1.29 % of base)
        -281 : 73591.dasm (-1.29 % of base)
        -180 : 192726.dasm (-6.11 % of base)
        -175 : 35270.dasm (-1.24 % of base)
        -170 : 192911.dasm (-8.59 % of base)
        -150 : 176676.dasm (-15.56 % of base)
        -150 : 134906.dasm (-15.56 % of base)
        -146 : 192628.dasm (-4.85 % of base)
        -139 : 151068.dasm (-7.60 % of base)
        -120 : 17481.dasm (-7.36 % of base)
        -119 : 109546.dasm (-4.94 % of base)
        -108 : 191860.dasm (-9.51 % of base)
        -102 : 135123.dasm (-11.81 % of base)
        -102 : 176876.dasm (-11.46 % of base)
        -102 : 227904.dasm (-6.25 % of base)
        -102 : 35475.dasm (-8.19 % of base)

94 total files with Code Size differences (43 improved, 51 regressed), 20 unchanged.

Top method regressions (bytes):
         836 (12.23 % of base) : 247027.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         457 (2.07 % of base) : 228421.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         368 (19.82 % of base) : 251772.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         335 (6.09 % of base) : 36247.dasm - System.Data.RBTree`1[int]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
         333 (15.50 % of base) : 254588.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:LoadPropertyMappingTable(int,System.Object[,]) (FullOpts)
         282 (0.42 % of base) : 116211.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         265 (2.63 % of base) : 75757.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
         233 (11.92 % of base) : 23260.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
         224 (5.75 % of base) : 186326.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
         224 (5.75 % of base) : 145190.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
         208 (10.12 % of base) : 74597.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):this (FullOpts)
         201 (7.56 % of base) : 238596.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         201 (7.56 % of base) : 257002.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         188 (6.21 % of base) : 173528.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:InferTypeArgumentsFromLambdaArgument(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol):ubyte:this (FullOpts)
         176 (3.07 % of base) : 70583.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1055_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         176 (3.07 % of base) : 37918.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1056_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         170 (0.28 % of base) : 25395.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
         163 (14.17 % of base) : 36354.dasm - System.Data.ForeignKeyConstraint:CascadeUpdate(System.Data.DataRow):this (FullOpts)
         162 (4.51 % of base) : 111380.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
         161 (9.53 % of base) : 5092.dasm - System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts)

Top method improvements (bytes):
        -484 (-2.65 % of base) : 115281.dasm - Microsoft.Diagnostics.Tracing.Parsers.MicrosoftAntimalwareEngineTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -396 (-8.68 % of base) : 36577.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -383 (-8.05 % of base) : 274183.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -381 (-7.99 % of base) : 133189.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -281 (-1.29 % of base) : 41039.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -281 (-1.29 % of base) : 73591.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -180 (-6.11 % of base) : 192726.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -175 (-1.24 % of base) : 35270.dasm - System.Data.BinaryNode:EvalBinaryOp(int,System.Data.ExpressionNode,System.Data.ExpressionNode,System.Data.DataRow,int,int[]):System.Object:this (FullOpts)
        -170 (-8.59 % of base) : 192911.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:WriteEscapedJavaScriptString(System.IO.TextWriter,System.String,ushort,ubyte,ubyte[],int,Newtonsoft.Json.IArrayPool`1[ushort],byref) (FullOpts)
        -150 (-15.56 % of base) : 176676.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
        -150 (-15.56 % of base) : 134906.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
        -146 (-4.85 % of base) : 192628.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -139 (-7.60 % of base) : 151068.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSignatureComparer:DetailedParameterCompare(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],byref,int,int):int (FullOpts)
        -120 (-7.36 % of base) : 17481.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitValue(System.IO.BinaryWriter,System.Type,System.Object) (FullOpts)
        -119 (-4.94 % of base) : 109546.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts)
        -108 (-9.51 % of base) : 191860.dasm - Newtonsoft.Json.JsonConvert:ToString(System.Object):System.String (FullOpts)
        -102 (-11.81 % of base) : 135123.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -102 (-11.46 % of base) : 176876.dasm - Microsoft.CodeAnalysis.ConstantValue:Create(System.Object,ubyte):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
        -102 (-8.19 % of base) : 35475.dasm - System.Data.Common.SqlConvert:ConvertToSqlDouble(System.Object):System.Data.SqlTypes.SqlDouble (FullOpts)
        -102 (-6.25 % of base) : 227904.dasm - System.Data.OleDb.ColumnBinding:Value(System.Object):this (FullOpts)

Top method regressions (percentages):
          11 (44.00 % of base) : 165351.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitCatchStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.CatchStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          11 (44.00 % of base) : 165333.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseIfStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseIfStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          11 (44.00 % of base) : 165332.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitElseStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ElseStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          11 (44.00 % of base) : 165352.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:VisitFinallyStatement(Microsoft.CodeAnalysis.VisualBasic.Syntax.FinallyStatementSyntax):Microsoft.CodeAnalysis.SyntaxNode:this (FullOpts)
          46 (29.87 % of base) : 105829.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
          57 (27.54 % of base) : 240742.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
          18 (24.00 % of base) : 113336.dasm - Microsoft.Diagnostics.Tracing.StartStopActivityComputer:<.ctor>b__0_0(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,Microsoft.Diagnostics.Tracing.TraceEvent):this (FullOpts)
          20 (23.81 % of base) : 184841.dasm - Microsoft.CodeAnalysis.BatchNode`1[System.__Canon]:WithTrackingName(System.String):Microsoft.CodeAnalysis.IIncrementalGeneratorNode`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
          20 (23.81 % of base) : 143689.dasm - Microsoft.CodeAnalysis.BatchNode`1[System.__Canon]:WithTrackingName(System.String):Microsoft.CodeAnalysis.IIncrementalGeneratorNode`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:this (FullOpts)
          27 (22.88 % of base) : 184498.dasm - Microsoft.CodeAnalysis.IOperation+OperationList+Reversed:<ToImmutableArray>g__reverseArray|5_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] (FullOpts)
          27 (22.88 % of base) : 143331.dasm - Microsoft.CodeAnalysis.IOperation+OperationList+Reversed:<ToImmutableArray>g__reverseArray|5_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation] (FullOpts)
           8 (21.62 % of base) : 37005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
           8 (21.62 % of base) : 69652.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMemberAccessedThroughType(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
           8 (21.62 % of base) : 264294.dasm - System.Speech.Internal.Synthesis.WaveHeader:ReleaseData():this (FullOpts)
           9 (21.43 % of base) : 270676.dasm - System.Net.NameResolutionPal+GetAddrInfoExState:UnregisterAndGetCancellationToken():System.Threading.CancellationToken:this (FullOpts)
          27 (20.77 % of base) : 161621.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:IsIdentifier(System.String):ubyte (FullOpts)
          35 (20.11 % of base) : 25998.dasm - Microsoft.FSharp.Quotations.PatternsModule+ByteStream:ReadBytes(int):ubyte[]:this (FullOpts)
          12 (20.00 % of base) : 191240.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack`1+Node[System.__Canon],System.__Canon[],int,int) (FullOpts)
          22 (20.00 % of base) : 247207.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts)
         368 (19.82 % of base) : 251772.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)

Top method improvements (percentages):
          -7 (-21.88 % of base) : 242109.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
          -6 (-18.75 % of base) : 226061.dasm - System.Management.MarshalWbemObject:MarshalManagedToNative(System.Object):int:this (FullOpts)
          -6 (-18.18 % of base) : 177067.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
          -6 (-18.18 % of base) : 135342.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:get_ImmutableCustomTags():System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
         -14 (-18.18 % of base) : 218883.dasm - System.ComponentModel.DoubleConverter:ToString(System.Object,System.Globalization.NumberFormatInfo):System.String:this (FullOpts)
         -14 (-17.50 % of base) : 261254.dasm - System.DirectoryServices.SearchResultCollection:get_SearchObject():System.DirectoryServices.UnsafeNativeMethods+IDirectorySearch:this (FullOpts)
         -38 (-16.03 % of base) : 36628.dasm - System.Data.RBTree`1[int]:RecomputeSize(int):this (FullOpts)
         -38 (-16.03 % of base) : 36586.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
          -6 (-15.79 % of base) : 34370.dasm - System.Data.Common.Int32Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.79 % of base) : 34454.dasm - System.Data.Common.SingleStorage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.79 % of base) : 34522.dasm - System.Data.Common.UInt32Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.79 % of base) : 248459.dasm - System.Data.Odbc.OdbcDataReader:GetInt32(int):int:this (FullOpts)
         -35 (-15.77 % of base) : 170841.dasm - Microsoft.CodeAnalysis.Operations.VisualBasicOperationFactory:CreateBoundLateMemberAccessOperation(Microsoft.CodeAnalysis.VisualBasic.BoundLateMemberAccess):Microsoft.CodeAnalysis.Operations.IDynamicMemberReferenceOperation:this (FullOpts)
          -8 (-15.69 % of base) : 242213.dasm - System.Dynamic.DynamicObject+MetaDynamic:GetDynamicMemberNames():System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
        -150 (-15.56 % of base) : 176676.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
        -150 (-15.56 % of base) : 134906.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):ubyte:this (FullOpts)
          -6 (-15.38 % of base) : 177077.dasm - Microsoft.CodeAnalysis.DiagnosticDescriptor:IsNotConfigurable():ubyte:this (FullOpts)
          -6 (-15.38 % of base) : 33761.dasm - System.Data.Common.CharStorage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.38 % of base) : 34357.dasm - System.Data.Common.Int16Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)
          -6 (-15.38 % of base) : 34509.dasm - System.Data.Common.UInt16Storage:ConvertObjectToXml(System.Object):System.String:this (FullOpts)


libraries.pmi.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 48824461 (overridden on cmd)
Total bytes of diff: 48989854 (overridden on cmd)
Total bytes of delta: 165393 (0.34 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         534 : 186908.dasm (2.20 % of base)
         533 : 115.dasm (5.66 % of base)
         451 : 201970.dasm (23.75 % of base)
         449 : 55596.dasm (9.91 % of base)
         449 : 176900.dasm (31.29 % of base)
         393 : 123740.dasm (13.12 % of base)
         374 : 186922.dasm (8.28 % of base)
         365 : 134029.dasm (10.40 % of base)
         358 : 190584.dasm (14.55 % of base)
         348 : 79758.dasm (5.22 % of base)
         343 : 237418.dasm (15.29 % of base)
         334 : 138146.dasm (10.79 % of base)
         324 : 144984.dasm (12.08 % of base)
         324 : 106687.dasm (12.08 % of base)
         314 : 40272.dasm (3.72 % of base)
         312 : 138167.dasm (11.28 % of base)
         308 : 133436.dasm (10.73 % of base)
         299 : 270316.dasm (13.19 % of base)
         299 : 68149.dasm (7.52 % of base)
         291 : 108916.dasm (23.95 % of base)

Top file improvements (bytes):
        -961 : 70380.dasm (-17.14 % of base)
        -697 : 201975.dasm (-4.43 % of base)
        -422 : 69433.dasm (-10.03 % of base)
        -414 : 75271.dasm (-8.85 % of base)
        -401 : 69425.dasm (-9.43 % of base)
        -383 : 303145.dasm (-8.06 % of base)
        -381 : 143146.dasm (-8.00 % of base)
        -367 : 75667.dasm (-3.85 % of base)
        -343 : 33718.dasm (-1.49 % of base)
        -335 : 69763.dasm (-8.42 % of base)
        -327 : 62829.dasm (-7.17 % of base)
        -319 : 230254.dasm (-8.28 % of base)
        -319 : 216574.dasm (-8.28 % of base)
        -318 : 82585.dasm (-6.85 % of base)
        -318 : 69764.dasm (-7.37 % of base)
        -299 : 175166.dasm (-11.88 % of base)
        -293 : 75417.dasm (-5.95 % of base)
        -293 : 75414.dasm (-3.77 % of base)
        -266 : 79571.dasm (-11.57 % of base)
        -248 : 97867.dasm (-7.12 % of base)

93 total files with Code Size differences (44 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
         534 (2.20 % of base) : 186908.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         533 (5.66 % of base) : 115.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         451 (23.75 % of base) : 201970.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         449 (31.29 % of base) : 176900.dasm - Internal.JitInterface.CorInfoImpl:ComputeJitPgoInstrumentationSchema(System.Func`2[System.Object,int],Internal.Pgo.PgoSchemaElem[],byref,System.IO.MemoryStream,System.Func`2[Internal.TypeSystem.TypeDesc,ubyte]) (FullOpts)
         449 (9.91 % of base) : 55596.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEDeltaAssemblyBuilder:GetSynthesizedTypesFromMetadata(System.Reflection.Metadata.MetadataReader,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):Microsoft.CodeAnalysis.Emit.SynthesizedTypeMaps (FullOpts)
         393 (13.12 % of base) : 123740.dasm - Microsoft.Diagnostics.Tracing.UnhandledTraceEvent:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         374 (8.28 % of base) : 186922.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         365 (10.40 % of base) : 134029.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         358 (14.55 % of base) : 190584.dasm - Newtonsoft.Json.Schema.JsonSchemaWriter:WriteSchema(Newtonsoft.Json.Schema.JsonSchema):this (FullOpts)
         348 (5.22 % of base) : 79758.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:DecodeWellKnownAttributeAppliedToMethod(byref):this (FullOpts)
         343 (15.29 % of base) : 237418.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)
         334 (10.79 % of base) : 138146.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         324 (12.08 % of base) : 144984.dasm - Microsoft.Cci.TypeNameSerializer:GetSerializedTypeName(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.String (FullOpts)
         324 (12.08 % of base) : 106687.dasm - Microsoft.Cci.TypeNameSerializer:GetSerializedTypeName(Microsoft.Cci.ITypeReference,Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.String (FullOpts)
         314 (3.72 % of base) : 40272.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
         312 (11.28 % of base) : 138167.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData:ToXml(int,System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         308 (10.73 % of base) : 133436.dasm - Microsoft.Diagnostics.Tracing.Parsers.Kernel.EventTraceHeaderTraceData:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         299 (7.52 % of base) : 68149.dasm - System.Data.XmlDataTreeWriter:XmlDataRowWriter(System.Data.DataRow,System.String):this (FullOpts)
         299 (13.19 % of base) : 270316.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteArray(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo):this (FullOpts)
         291 (23.95 % of base) : 108916.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)

Top method improvements (bytes):
        -961 (-17.14 % of base) : 70380.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
        -697 (-4.43 % of base) : 201975.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -422 (-10.03 % of base) : 69433.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -414 (-8.85 % of base) : 75271.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindNameOfExpression(Microsoft.CodeAnalysis.VisualBasic.Syntax.NameOfExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -401 (-9.43 % of base) : 69425.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -383 (-8.06 % of base) : 303145.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -381 (-8.00 % of base) : 143146.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -367 (-3.85 % of base) : 75667.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this (FullOpts)
        -343 (-1.49 % of base) : 33718.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -335 (-8.42 % of base) : 69763.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -327 (-7.17 % of base) : 62829.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
        -319 (-8.28 % of base) : 230254.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
        -319 (-8.28 % of base) : 216574.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
        -318 (-6.85 % of base) : 82585.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.VisualBasic.BoundArrayAccess,ubyte):this (FullOpts)
        -318 (-7.37 % of base) : 69764.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -299 (-11.88 % of base) : 175166.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteDerivedSerializable(System.Xml.Serialization.SerializableMapping,System.Xml.Serialization.SerializableMapping,System.String,ubyte):this (FullOpts)
        -293 (-3.77 % of base) : 75414.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureAndProduceBoundNode(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.VisualBasic.BoundTypeExpression,Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.Location):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
        -293 (-5.95 % of base) : 75417.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASetOfCandidates(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
        -266 (-11.57 % of base) : 79571.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckStructureCircularity(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
        -248 (-7.12 % of base) : 97867.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:LateMakeArgumentArrayArgument(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)

Top method regressions (percentages):
          59 (33.15 % of base) : 204226.dasm - Microsoft.Build.Framework.TargetFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          59 (33.15 % of base) : 204267.dasm - Microsoft.Build.Framework.TaskFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          53 (32.12 % of base) : 204163.dasm - Microsoft.Build.Framework.PropertyInitialValueSetEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
         449 (31.29 % of base) : 176900.dasm - Internal.JitInterface.CorInfoImpl:ComputeJitPgoInstrumentationSchema(System.Func`2[System.Object,int],Internal.Pgo.PgoSchemaElem[],byref,System.IO.MemoryStream,System.Func`2[Internal.TypeSystem.TypeDesc,ubyte]) (FullOpts)
          59 (30.89 % of base) : 204316.dasm - Microsoft.Build.Framework.TaskStartedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          46 (29.30 % of base) : 171467.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
         274 (28.60 % of base) : 229280.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 303258.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
          29 (24.58 % of base) : 249769.dasm - System.Linq.Enumerable+ListPartition`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
          22 (24.44 % of base) : 203993.dasm - Microsoft.Build.Framework.ExternalProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          22 (24.44 % of base) : 204129.dasm - Microsoft.Build.Framework.ProjectFinishedEventArgs:WriteToStream(System.IO.BinaryWriter):this (FullOpts)
          15 (24.19 % of base) : 174250.dasm - System.Xml.Serialization.SchemaObjectWriter:WriteIndent():this (FullOpts)
          23 (23.96 % of base) : 231797.dasm - System.Data.Odbc.CStringTokenizer:GetTokenFromBracket(int):int:this (FullOpts)
         291 (23.95 % of base) : 108916.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         291 (23.95 % of base) : 147126.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 201970.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          29 (21.80 % of base) : 123854.dasm - Microsoft.Diagnostics.Tracing.Utilities.FastStream:ReadAsciiStringUpToAny(System.String,System.Text.StringBuilder):this (FullOpts)
          54 (21.77 % of base) : 272818.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
          26 (21.67 % of base) : 170478.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer+XPathAnalyzer:ResolvePrefix(System.String):System.String:this (FullOpts)
          23 (21.50 % of base) : 296578.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+<>c__DisplayClass30_0`1[System.__Canon]:<ConfigureContainer>b__0():System.IServiceProvider:this (FullOpts)

Top method improvements (percentages):
         -10 (-45.45 % of base) : 74104.dasm - System.Numerics.Tensors.TensorPrimitives+MaxMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 74100.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-45.45 % of base) : 74096.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-45.45 % of base) : 74157.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 74048.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 74041.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-38.46 % of base) : 74137.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[short]:Invoke(short,short):short (FullOpts)
          -7 (-36.84 % of base) : 11420.dasm - System.Diagnostics.Tracing.Statics:Combine(int,ubyte):ubyte (FullOpts)
          -3 (-20.00 % of base) : 74161.dasm - System.Numerics.Tensors.TensorPrimitives+MinMagnitudeOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
          -3 (-20.00 % of base) : 74153.dasm - System.Numerics.Tensors.TensorPrimitives+MinPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -22 (-18.33 % of base) : 59014.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -119 (-18.25 % of base) : 174932.dasm - System.Xml.Serialization.XmlSchemas:IsDataSet(System.Xml.Schema.XmlSchema):ubyte (FullOpts)
         -10 (-17.54 % of base) : 246058.dasm - System.Dynamic.DynamicMetaObject:get_Value():System.Object:this (FullOpts)
        -961 (-17.14 % of base) : 70380.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
          -7 (-16.28 % of base) : 28111.dasm - Microsoft.FSharp.Core.Operators+NonStructuralComparison:Min$W[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[ubyte,ubyte]],ubyte,ubyte):ubyte (FullOpts)
         -17 (-16.19 % of base) : 245491.dasm - System.Linq.Expressions.Interpreter.CastInstruction+CastInstructionT`1[System.__Canon]:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -38 (-16.10 % of base) : 70350.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)
         -38 (-16.10 % of base) : 70411.dasm - System.Data.RBTree`1[ubyte]:RecomputeSize(int):this (FullOpts)
        -206 (-15.97 % of base) : 242141.dasm - System.IO.Packaging.ZipPackage+ContentTypeHelper:ParseContentTypesFile(System.Collections.ObjectModel.ReadOnlyCollection`1[System.IO.Compression.ZipArchiveEntry]):this (FullOpts)
          -3 (-15.79 % of base) : 74130.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)


libraries_tests.run.windows.x86.Release.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 181401826 (overridden on cmd)
Total bytes of diff: 181809897 (overridden on cmd)
Total bytes of delta: 408071 (0.22 % of base)
    diff is a regression.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        1074 : 443697.dasm (6.87 % of base)
        1074 : 444438.dasm (6.85 % of base)
         954 : 178424.dasm (1.42 % of base)
         738 : 226286.dasm (6.53 % of base)
         738 : 409641.dasm (6.53 % of base)
         726 : 604468.dasm (12.44 % of base)
         718 : 280079.dasm (14.88 % of base)
         686 : 280099.dasm (14.68 % of base)
         605 : 82769.dasm (9.31 % of base)
         596 : 402035.dasm (7.86 % of base)
         596 : 402038.dasm (8.51 % of base)
         596 : 57361.dasm (7.40 % of base)
         596 : 402039.dasm (8.53 % of base)
         546 : 280102.dasm (14.86 % of base)
         544 : 594896.dasm (12.17 % of base)
         537 : 7542.dasm (5.67 % of base)
         529 : 263429.dasm (4.49 % of base)
         529 : 345783.dasm (4.49 % of base)
         529 : 373970.dasm (4.49 % of base)
         529 : 625969.dasm (4.49 % of base)

Top file improvements (bytes):
       -1213 : 160748.dasm (-5.38 % of base)
       -1213 : 75751.dasm (-5.38 % of base)
       -1213 : 573163.dasm (-5.38 % of base)
       -1213 : 152301.dasm (-5.38 % of base)
       -1212 : 46348.dasm (-5.37 % of base)
       -1148 : 96256.dasm (-5.13 % of base)
        -961 : 219660.dasm (-17.15 % of base)
        -714 : 333301.dasm (-3.55 % of base)
        -400 : 233482.dasm (-6.12 % of base)
        -391 : 218191.dasm (-5.94 % of base)
        -375 : 220886.dasm (-8.94 % of base)
        -368 : 219521.dasm (-8.95 % of base)
        -348 : 234274.dasm (-2.98 % of base)
        -338 : 220445.dasm (-8.54 % of base)
        -321 : 250445.dasm (-0.85 % of base)
        -312 : 220481.dasm (-7.19 % of base)
        -302 : 598387.dasm (-5.91 % of base)
        -283 : 483234.dasm (-3.35 % of base)
        -273 : 546521.dasm (-6.63 % of base)
        -270 : 251362.dasm (-3.04 % of base)

100 total files with Code Size differences (51 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
        1074 (6.85 % of base) : 444438.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        1074 (6.87 % of base) : 443697.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         954 (1.42 % of base) : 178424.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (Tier0-FullOpts)
         738 (6.53 % of base) : 226286.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         738 (6.53 % of base) : 409641.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         726 (12.44 % of base) : 604468.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         718 (14.88 % of base) : 280079.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithTrailingStar():this (Tier1)
         686 (14.68 % of base) : 280099.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithLeadingStar():this (Tier1)
         605 (9.31 % of base) : 82769.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
         596 (7.40 % of base) : 57361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeWellKnownAttributeImpl(byref):this (Tier1)
         596 (7.86 % of base) : 402035.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess1():int:this (Tier0-FullOpts)
         596 (8.51 % of base) : 402038.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess3():int:this (Tier0-FullOpts)
         596 (8.53 % of base) : 402039.dasm - System.Xml.Tests.TCAttributeAccess:TestAttributeAccess4():int:this (Tier0-FullOpts)
         546 (14.86 % of base) : 280102.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternDotIsStar():this (Tier1)
         544 (12.17 % of base) : 594896.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30951_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         537 (5.67 % of base) : 7542.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         529 (4.49 % of base) : 263429.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         529 (4.49 % of base) : 345783.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         529 (4.49 % of base) : 373970.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         529 (4.49 % of base) : 625969.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)

Top method improvements (bytes):
       -1213 (-5.38 % of base) : 160748.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1213 (-5.38 % of base) : 75751.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1213 (-5.38 % of base) : 573163.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1213 (-5.38 % of base) : 152301.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1212 (-5.37 % of base) : 46348.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
       -1148 (-5.13 % of base) : 96256.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -961 (-17.15 % of base) : 219660.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
        -714 (-3.55 % of base) : 333301.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
        -400 (-6.12 % of base) : 233482.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
        -391 (-5.94 % of base) : 218191.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (Tier1)
        -375 (-8.94 % of base) : 220886.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (Tier0-FullOpts)
        -368 (-8.95 % of base) : 219521.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (Tier0-FullOpts)
        -348 (-2.98 % of base) : 234274.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -338 (-8.54 % of base) : 220445.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (Tier0-FullOpts)
        -321 (-0.85 % of base) : 250445.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Tier0-FullOpts)
        -312 (-7.19 % of base) : 220481.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (Tier0-FullOpts)
        -302 (-5.91 % of base) : 598387.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalConstantSignature(Microsoft.Cci.ILocalDefinition):System.Reflection.Metadata.BlobHandle:this (Tier1)
        -283 (-3.35 % of base) : 483234.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxFormatTests:TwoCerts_TwoKeys_ManySafeContentsValues(ubyte,ubyte):this (Tier1)
        -273 (-6.63 % of base) : 546521.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestSingleStrings() (Tier0-FullOpts)
        -270 (-3.04 % of base) : 251362.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.operate.compound.basic.context02c.context02c.Test:RunTest():System.Object:this (Tier0-FullOpts)

Top method regressions (percentages):
          23 (35.94 % of base) : 386787.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
          47 (32.87 % of base) : 459707.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(int):System.Text.Encoding (Tier1)
          38 (32.48 % of base) : 386783.dasm - System.Text.EncodingProvider:GetEncodingFromProvider(System.String):System.Text.Encoding (Tier1)
          46 (29.30 % of base) : 383480.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (Tier0-FullOpts)
         274 (28.60 % of base) : 215351.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
         274 (28.60 % of base) : 58875.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
         274 (28.60 % of base) : 285969.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
         274 (28.60 % of base) : 286021.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (Tier0-FullOpts)
          57 (25.45 % of base) : 460302.dasm - System.Reflection.MemberInfo:HasSameMetadataDefinitionAsCore[System.__Canon](System.Reflection.MemberInfo):ubyte:this (Tier1)
         235 (24.15 % of base) : 152456.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.SyntaxTrivia,System.__Canon]:TryGetValue(Microsoft.CodeAnalysis.SyntaxTrivia,byref):ubyte:this (Tier1)
          39 (23.93 % of base) : 54441.dasm - Microsoft.CodeAnalysis.CSharp.NullableAnnotationExtensions+<>c:<GetPublicSymbols>b__13_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.ITypeSymbol:this (Tier1)
          39 (23.78 % of base) : 72773.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:TryEnqueue(System.Threading.PortableThreadPool+IOCompletionPoller+Event):ubyte:this (Instrumented Tier1)
          28 (23.73 % of base) : 145488.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (Tier0-FullOpts)
         113 (23.20 % of base) : 57009.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:IsEquivalentTo(Microsoft.CodeAnalysis.GreenNode):ubyte:this (Tier1)
          38 (23.17 % of base) : 78447.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor:VisitExpressionWithStackGuard(byref,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          36 (23.08 % of base) : 581518.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitSequence(Microsoft.CodeAnalysis.CSharp.BoundSequence):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         477 (23.02 % of base) : 9925.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          53 (22.84 % of base) : 405270.dasm - System.Xml.XmlWriter:WriteQualifiedName(System.String,System.String):this (Tier1)
          54 (21.77 % of base) : 100229.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (Tier0-FullOpts)
          44 (21.26 % of base) : 378663.dasm - System.Reflection.Emit.CustomAttributeBuilder:EmitString(System.IO.BinaryWriter,System.String) (Tier1)

Top method improvements (percentages):
         -10 (-45.45 % of base) : 363711.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-45.45 % of base) : 363938.dasm - System.Byte:Max(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 363713.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Instrumented Tier1)
         -10 (-45.45 % of base) : 363945.dasm - System.Byte:System.Numerics.INumberBase<System.Byte>.MaxMagnitude(ubyte,ubyte):ubyte (Tier1)
         -10 (-45.45 % of base) : 365230.dasm - System.Int16:Max(short,short):short (Instrumented Tier1)
         -10 (-45.45 % of base) : 365547.dasm - System.Int16:Max(short,short):short (Tier1)
         -10 (-45.45 % of base) : 365189.dasm - System.Int16:Min(short,short):short (Instrumented Tier1)
         -10 (-45.45 % of base) : 365360.dasm - System.Int16:Min(short,short):short (Tier1)
         -10 (-45.45 % of base) : 365548.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[short]:Invoke(short,short):short (Tier1)
         -10 (-45.45 % of base) : 363939.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (Tier1)
         -10 (-38.46 % of base) : 364005.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (Tier1)
          -8 (-33.33 % of base) : 365445.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (Tier1)
         -96 (-26.52 % of base) : 552582.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateImmutableEnumerableCreateRangeDelegate[System.__Canon,System.__Canon]():System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-26.01 % of base) : 558131.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateAddMethodDelegate[System.__Canon]():System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-25.23 % of base) : 553529.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateFieldGetter[System.__Canon](System.Reflection.FieldInfo):System.Func`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-25.23 % of base) : 560527.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreateFieldSetter[System.__Canon](System.Reflection.FieldInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
         -84 (-25.23 % of base) : 552460.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor:CreatePropertySetter[System.__Canon](System.Reflection.PropertyInfo):System.Action`2[System.__Canon,System.__Canon]:this (Tier1)
         -74 (-24.34 % of base) : 142780.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
         -74 (-24.34 % of base) : 64013.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.__Canon]:get_IsCached():ubyte:this (Tier1)
         -74 (-24.34 % of base) : 150645.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+TableEntry[System.ValueTuple`2[System.__Canon,System.__Canon]]:get_IsCached():ubyte:this (Tier1)


librariestestsnotieredcompilation.run.windows.x86.Release.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 102225812 (overridden on cmd)
Total bytes of diff: 102307414 (overridden on cmd)
Total bytes of delta: 81602 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         994 : 208826.dasm (6.45 % of base)
         994 : 209238.dasm (6.43 % of base)
         954 : 65191.dasm (1.42 % of base)
         726 : 304954.dasm (12.44 % of base)
         533 : 3814.dasm (5.66 % of base)
         515 : 238554.dasm (5.39 % of base)
         470 : 268241.dasm (9.11 % of base)
         463 : 6304.dasm (7.14 % of base)
         451 : 5204.dasm (23.75 % of base)
         445 : 1847.dasm (6.95 % of base)
         436 : 33133.dasm (21.02 % of base)
         436 : 34420.dasm (21.02 % of base)
         436 : 33202.dasm (21.02 % of base)
         436 : 33964.dasm (21.02 % of base)
         436 : 34036.dasm (20.69 % of base)
         436 : 34097.dasm (20.69 % of base)
         425 : 60156.dasm (1.76 % of base)
         418 : 125059.dasm (6.32 % of base)
         413 : 165471.dasm (8.26 % of base)
         413 : 99247.dasm (5.67 % of base)

Top file improvements (bytes):
        -961 : 94034.dasm (-17.15 % of base)
        -697 : 5212.dasm (-4.43 % of base)
        -644 : 180497.dasm (-6.75 % of base)
        -450 : 115662.dasm (-3.07 % of base)
        -450 : 116309.dasm (-3.07 % of base)
        -449 : 116146.dasm (-3.02 % of base)
        -425 : 95964.dasm (-10.25 % of base)
        -405 : 95138.dasm (-9.66 % of base)
        -402 : 112680.dasm (-2.61 % of base)
        -395 : 118240.dasm (-2.88 % of base)
        -387 : 115536.dasm (-3.14 % of base)
        -384 : 26765.dasm (-3.81 % of base)
        -383 : 132011.dasm (-8.06 % of base)
        -375 : 111089.dasm (-2.45 % of base)
        -338 : 94835.dasm (-8.54 % of base)
        -327 : 278597.dasm (-8.10 % of base)
        -321 : 117080.dasm (-0.85 % of base)
        -319 : 92279.dasm (-8.28 % of base)
        -318 : 98247.dasm (-7.37 % of base)
        -291 : 118220.dasm (-2.73 % of base)

95 total files with Code Size differences (46 improved, 49 regressed), 20 unchanged.

Top method regressions (bytes):
         994 (6.43 % of base) : 209238.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         994 (6.45 % of base) : 208826.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         954 (1.42 % of base) : 65191.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGeneratorTests+<GenerateCodeFromType_TestData>d__25:MoveNext():ubyte:this (FullOpts)
         726 (12.44 % of base) : 304954.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         533 (5.66 % of base) : 3814.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         515 (5.39 % of base) : 238554.dasm - System.ServiceModel.Syndication.Tests.AtomPub10ServiceDocumentFormatterTests+<>c:<ReadFrom_FullDocument_ReturnsExpected>b__18_0(System.ServiceModel.Syndication.ServiceDocument):this (FullOpts)
         470 (9.11 % of base) : 268241.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteHelloWorld(System.Text.Json.JsonWriterOptions):this (FullOpts)
         463 (7.14 % of base) : 6304.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1056_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         451 (23.75 % of base) : 5204.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         445 (6.95 % of base) : 1847.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
         436 (21.02 % of base) : 33133.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (21.02 % of base) : 33202.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (21.02 % of base) : 33964.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (20.69 % of base) : 34036.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (20.69 % of base) : 34097.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase:Has_debug_view():this (FullOpts)
         436 (21.02 % of base) : 34420.dasm - Microsoft.Extensions.Configuration.Xml.Test.ConfigurationProviderXmlTest:Has_debug_view():this (FullOpts)
         425 (1.76 % of base) : 60156.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         418 (6.32 % of base) : 125059.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         413 (5.67 % of base) : 99247.dasm - System.Data.Tests.DataColumnCollectionTest:Add():this (FullOpts)
         413 (8.26 % of base) : 165471.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanScalarIntoSpan[ubyte,System.Numerics.Tensors.TensorPrimitives+IdentityOperator`1[ubyte],System.Numerics.Tensors.TensorPrimitives+InvertedBinaryOperator`2[System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[ubyte],ubyte]](System.ReadOnlySpan`1[ubyte],ubyte,System.Span`1[ubyte]) (FullOpts)

Top method improvements (bytes):
        -961 (-17.15 % of base) : 94034.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -697 (-4.43 % of base) : 5212.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -644 (-6.75 % of base) : 180497.dasm - System.Xml.XmlReaderTests.ReadCharsTests:GenerateTestXml(byref):System.String (FullOpts)
        -450 (-3.07 % of base) : 116309.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004c.enum004c.Test:MainMethod():int (FullOpts)
        -450 (-3.07 % of base) : 115662.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004e.enum004e.Test:MainMethod():int (FullOpts)
        -449 (-3.02 % of base) : 116146.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum004.enum004.Test:MainMethod():int (FullOpts)
        -425 (-10.25 % of base) : 95964.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -405 (-9.66 % of base) : 95138.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -402 (-2.61 % of base) : 112680.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst001.cnst001.Test:MainMethod():int (FullOpts)
        -395 (-2.88 % of base) : 118240.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.cnst002.cnst002.Test:MainMethod():int (FullOpts)
        -387 (-3.14 % of base) : 115536.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum001.enum001.A:MainMethod():int (FullOpts)
        -384 (-3.81 % of base) : 26765.dasm - Microsoft.CSharp.RuntimeBinder.Tests.DefaultParameterTests:MarshalAsOptionalsCorrectDefault():this (FullOpts)
        -383 (-8.06 % of base) : 132011.dasm - System.IO.Hashing.XxHash128:HashLength129To240(uint,uint,ulong):System.IO.Hashing.XxHash128+Hash128 (FullOpts)
        -375 (-2.45 % of base) : 111089.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005b.enum005b.Test:MainMethod():int (FullOpts)
        -338 (-8.54 % of base) : 94835.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
        -327 (-8.10 % of base) : 278597.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
        -321 (-0.85 % of base) : 117080.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (FullOpts)
        -319 (-8.28 % of base) : 92279.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSection,int):System.String:this (FullOpts)
        -318 (-7.37 % of base) : 98247.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts)
        -291 (-2.73 % of base) : 118220.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Operators.basic.enum005.enum005.Test:MainMethod():int (FullOpts)

Top method regressions (percentages):
         239 (36.38 % of base) : 169152.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4ToStringTest():this (FullOpts)
          46 (29.30 % of base) : 175685.dasm - System.Xml.Xsl.XsltOld.XsltCompileContext+FuncExtension:Invoke(System.Xml.Xsl.XsltContext,System.Object[],System.Xml.XPath.XPathNavigator):System.Object:this (FullOpts)
         274 (28.60 % of base) : 132149.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 16740.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 92351.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         274 (28.60 % of base) : 132131.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         113 (24.84 % of base) : 214211.dasm - System.Tests.DoubleTests_GenericMath:AbsTest() (FullOpts)
         291 (23.95 % of base) : 44647.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         291 (23.95 % of base) : 50637.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         291 (23.95 % of base) : 5868.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         451 (23.75 % of base) : 5204.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          28 (23.73 % of base) : 54191.dasm - Castle.DynamicProxy.Generators.Emitters.GenericUtil:GetArgumentNames(System.Type[]):System.String[] (FullOpts)
          33 (22.92 % of base) : 71682.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2+Node[int,System.__Canon]:Contains(System.Collections.Generic.KeyValuePair`2[int,System.__Canon],System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
          15 (22.06 % of base) : 23512.dasm - Microsoft.CodeAnalysis.SymbolKey+SymbolKeyWriter:<.ctor>b__16_1(Microsoft.CodeAnalysis.IParameterSymbol):this (FullOpts)
          54 (21.77 % of base) : 34667.dasm - System.Security.Cryptography.Xml.Utils:DiscardWhiteSpaces(System.String,int,int):System.String (FullOpts)
          30 (21.74 % of base) : 15501.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          23 (21.50 % of base) : 40085.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+<>c__DisplayClass30_0`1[System.__Canon]:<ConfigureContainer>b__0():System.IServiceProvider:this (FullOpts)
          27 (21.26 % of base) : 45764.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
          41 (21.13 % of base) : 9571.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          27 (21.09 % of base) : 11101.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)

Top method improvements (percentages):
         -10 (-38.46 % of base) : 167111.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 167197.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[short]:Invoke(short,short):short (FullOpts)
         -10 (-38.46 % of base) : 166222.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-38.46 % of base) : 167264.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ubyte]:Invoke(ubyte,ubyte):ubyte (FullOpts)
         -10 (-38.46 % of base) : 165761.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Max(ubyte,ubyte):ubyte:this (FullOpts)
         -10 (-38.46 % of base) : 165888.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MaxMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
          -8 (-33.33 % of base) : 167091.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Min(short,short):short:this (FullOpts)
          -5 (-23.81 % of base) : 167101.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[short]:Max(short,short):short:this (FullOpts)
          -5 (-23.81 % of base) : 165702.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:Min(ubyte,ubyte):ubyte:this (FullOpts)
          -5 (-23.81 % of base) : 165561.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:MinMagnitude(ubyte,ubyte):ubyte:this (FullOpts)
         -55 (-20.00 % of base) : 79028.dasm - System.Collections.Tests.IGenericSharedAPI_Tests`1[int]:IGenericSharedAPI_Add_AfterRemovingAnyValue(int):this (FullOpts)
         -36 (-19.35 % of base) : 111934.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Indexers.Oneclass2indexers.oneparamdifftypesconv017.oneparamdifftypesconv017.I,ushort):System.Object (FullOpts)
        -151 (-19.31 % of base) : 11336.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
        -102 (-18.72 % of base) : 17876.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:AfterRightChildOfBinaryLogicalOperatorHasBeenVisited(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,byref,byref):this (FullOpts)
         -22 (-18.33 % of base) : 7448.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -119 (-18.31 % of base) : 173144.dasm - System.Xml.Serialization.XmlSchemas:IsDataSet(System.Xml.Schema.XmlSchema):ubyte (FullOpts)
        -961 (-17.15 % of base) : 94034.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -102 (-16.24 % of base) : 165678.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[ubyte]:Min_Tensor_Negative0LesserThanPositive0():this (FullOpts)
         -38 (-16.10 % of base) : 94035.dasm - System.Data.RBTree`1[int]:RecomputeSize(int):this (FullOpts)
         -38 (-16.10 % of base) : 94702.dasm - System.Data.RBTree`1[System.__Canon]:RecomputeSize(int):this (FullOpts)


realworld.run.windows.x86.checked.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11028236 (overridden on cmd)
Total bytes of diff: 11059568 (overridden on cmd)
Total bytes of delta: 31332 (0.28 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         992 : 1493.dasm (7.61 % of base)
         632 : 1062.dasm (5.25 % of base)
         535 : 31843.dasm (5.66 % of base)
         533 : 1302.dasm (3.38 % of base)
         498 : 34923.dasm (2.39 % of base)
         477 : 13859.dasm (23.02 % of base)
         461 : 21036.dasm (7.15 % of base)
         436 : 16129.dasm (5.83 % of base)
         395 : 8667.dasm (2.15 % of base)
         334 : 1065.dasm (1.43 % of base)
         330 : 1053.dasm (3.14 % of base)
         310 : 1340.dasm (5.87 % of base)
         291 : 21416.dasm (23.95 % of base)
         283 : 1030.dasm (1.26 % of base)
         278 : 26313.dasm (7.65 % of base)
         263 : 31842.dasm (4.33 % of base)
         256 : 1348.dasm (6.93 % of base)
         253 : 1139.dasm (1.85 % of base)
         250 : 21325.dasm (3.20 % of base)
         245 : 1399.dasm (5.45 % of base)

Top file improvements (bytes):
        -697 : 13868.dasm (-4.43 % of base)
        -327 : 29170.dasm (-8.10 % of base)
        -294 : 11872.dasm (-17.37 % of base)
        -262 : 1069.dasm (-1.17 % of base)
        -253 : 14805.dasm (-12.42 % of base)
        -227 : 26147.dasm (-13.99 % of base)
        -171 : 10762.dasm (-4.20 % of base)
        -155 : 1568.dasm (-2.90 % of base)
        -148 : 25193.dasm (-17.01 % of base)
        -144 : 13006.dasm (-8.35 % of base)
        -128 : 1459.dasm (-6.47 % of base)
        -123 : 10459.dasm (-2.45 % of base)
        -121 : 1652.dasm (-9.71 % of base)
        -110 : 24973.dasm (-2.53 % of base)
        -110 : 30088.dasm (-8.30 % of base)
        -108 : 12189.dasm (-2.37 % of base)
        -103 : 8052.dasm (-3.83 % of base)
        -102 : 1100.dasm (-2.16 % of base)
        -102 : 1675.dasm (-7.52 % of base)
         -99 : 10621.dasm (-5.11 % of base)

89 total files with Code Size differences (41 improved, 48 regressed), 20 unchanged.

Top method regressions (bytes):
         992 (7.61 % of base) : 1493.dasm - BepuPhysics.Constraints.Contact.Contact4Functions:BepuPhysics.Constraints.ITwoBodyConstraintFunctions<BepuPhysics.Constraints.Contact.Contact4PrestepData,BepuPhysics.Constraints.Contact.Contact4AccumulatedImpulses>.Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
         632 (5.25 % of base) : 1062.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         535 (5.66 % of base) : 31843.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         533 (3.38 % of base) : 1302.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
         498 (2.39 % of base) : 34923.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadModuleManifest(System.String,System.Management.Automation.ExternalScriptInfo,System.Collections.Hashtable,System.Collections.Hashtable,int,System.Version,System.Version,System.Version,System.Nullable`1[System.Guid],byref,byref):System.Management.Automation.PSModuleInfo:this (FullOpts)
         477 (23.02 % of base) : 13859.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         461 (7.15 % of base) : 21036.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResultSymbol>g__resultSymbol|1055_0(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,int):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         436 (5.83 % of base) : 16129.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator:Fit(Microsoft.ML.IDataView):Microsoft.ML.ITransformer:this (FullOpts)
         395 (2.15 % of base) : 8667.dasm - FSharp.Compiler.ConstraintSolver+SolveMemberConstraint@1402-8:Invoke(Microsoft.FSharp.Core.Unit):FSharp.Compiler.ErrorLogger+OperationResult`1[FSharp.Compiler.ConstraintSolver+TraitConstraintSolution]:this (FullOpts)
         334 (1.43 % of base) : 1065.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TrianglePairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         330 (3.14 % of base) : 1053.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxTriangleTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         310 (5.87 % of base) : 1340.dasm - BepuPhysics.IslandAwakener:PrepareJobs(byref,ubyte,int):System.ValueTuple`2[int,int]:this (FullOpts)
         291 (23.95 % of base) : 21416.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         283 (1.26 % of base) : 1030.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleCylinderTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
         278 (7.65 % of base) : 26313.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchSection(Microsoft.CodeAnalysis.CSharp.BoundSwitchSection,ubyte):this (FullOpts)
         263 (4.33 % of base) : 31842.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
         256 (6.93 % of base) : 1348.dasm - BepuPhysics.IslandSleeper:Sleep(byref,BepuUtilities.IThreadDispatcher,ubyte,int,int,ubyte):this (FullOpts)
         253 (1.85 % of base) : 1139.dasm - BepuPhysics.Constraints.HingeFunctions:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
         250 (3.20 % of base) : 21325.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
         245 (5.45 % of base) : 1399.dasm - BepuPhysics.CollisionDetection.NarrowPhase`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupFilteredCallbacks]:AddBatchEntries(int,byref,byref,byref,byref,BepuPhysics.Collidables.TypedIndex,BepuPhysics.Collidables.TypedIndex,int,int,float,byref,byref,byref,byref):this (FullOpts)

Top method improvements (bytes):
        -697 (-4.43 % of base) : 13868.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -327 (-8.10 % of base) : 29170.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
        -294 (-17.37 % of base) : 11872.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:NormalizeStaticMemberBinding(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.Syntax.SynMemberFlags,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
        -262 (-1.17 % of base) : 1069.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        -253 (-12.42 % of base) : 14805.dasm - SixLabors.ImageSharp.Formats.Png.PngDecoderCore:TryReadChunk(byref):ubyte:this (FullOpts)
        -227 (-13.99 % of base) : 26147.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIsPatternExpression(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
        -171 (-4.20 % of base) : 10762.dasm - <StartupCode$FSharp-Compiler-Service>.$Sformat:.cctor() (FullOpts)
        -155 (-2.90 % of base) : 1568.dasm - BepuPhysics.Trees.Tree:GetOverlapsBetweenDifferentNodes[BepuPhysics.CollisionDetection.CollidableOverlapFinder`1+IntertreeOverlapHandler[DemoBenchmarks.ShapePileBenchmark+DemoNarrowPhaseCallbacks]](byref,byref,byref,byref):this (FullOpts)
        -148 (-17.01 % of base) : 25193.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
        -144 (-8.35 % of base) : 13006.dasm - FSharp.Compiler.NameResolution:ResolveFieldPrim(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.NameResolution+FieldResolution]] (FullOpts)
        -128 (-6.47 % of base) : 1459.dasm - BepuPhysics.PoseIntegrator`1[DemoBenchmarks.RagdollTubeBenchmark+DemoPoseIntegratorCallbacks]:IntegrateBundlesAfterSubstepping(byref,int,int,float,float,int,int):this (FullOpts)
        -123 (-2.45 % of base) : 10459.dasm - FSharp.Compiler.MethodOverrides+DispatchSlotChecking:CheckDispatchSlotsAreImplemented(FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.InfoReader+InfoReader,FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+TcResultsSink,ubyte,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+RequiredSlot],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+OverrideInfo],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodOverrides+OverrideInfo]):ubyte (FullOpts)
        -121 (-9.71 % of base) : 1652.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -110 (-8.30 % of base) : 30088.dasm - Microsoft.CodeAnalysis.CSharp.AsyncStateMachine:.ctor(Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,ubyte):this (FullOpts)
        -110 (-2.53 % of base) : 24973.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -108 (-2.37 % of base) : 12189.dasm - FSharp.Compiler.CheckComputationExpressions:tryTcSequenceExprBody@1880(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]] (FullOpts)
        -103 (-3.83 % of base) : 8052.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:normPattern@2471(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.CheckExpressions+IsObjExprBinding,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],FSharp.Compiler.Syntax.SynPat):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
        -102 (-2.16 % of base) : 1100.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CompoundPairOverlapFinder`2[BepuPhysics.Collidables.Compound,BepuPhysics.Collidables.Compound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        -102 (-7.52 % of base) : 1675.dasm - System.UriParser:.cctor() (FullOpts)
         -99 (-5.11 % of base) : 10621.dasm - FSharp.Compiler.NameResolution:ResolveTypeLongIdentInModuleOrNamespace(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.NameResolution+PermitDirectReferenceToGeneratedType,FSharp.Compiler.NameResolution+ResolutionInfo,int,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+ModuleOrNamespaceType,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Internal.Utilities.Library.ResultOrException`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]]] (FullOpts)

Top method regressions (percentages):
         291 (23.95 % of base) : 21416.dasm - Microsoft.CodeAnalysis.PEModule:GetMethodDefPropsOrThrow(System.Reflection.Metadata.MethodDefinitionHandle,byref,byref,byref,byref):this (FullOpts)
         477 (23.02 % of base) : 13859.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          30 (21.90 % of base) : 25996.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          41 (21.13 % of base) : 25491.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildMap[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,System.__Canon] (FullOpts)
          27 (20.93 % of base) : 23201.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,int):ubyte:this (FullOpts)
          30 (20.27 % of base) : 27201.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitAssignmentOfNullCoalescingAssignment(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator,Microsoft.CodeAnalysis.CSharp.BoundPropertyAccess):this (FullOpts)
          27 (19.71 % of base) : 24606.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.EventSymbol:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,int):ubyte:this (FullOpts)
          82 (19.03 % of base) : 20589.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:ReadAssemblyIdentityOrThrow(System.Reflection.Metadata.MetadataReader):Microsoft.CodeAnalysis.AssemblyIdentity (FullOpts)
          38 (18.91 % of base) : 26633.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindInterpolatedString>g__unescapeInterpolatedStringLiteral|557_0(System.String):System.String (FullOpts)
          17 (17.53 % of base) : 33730.dasm - System.Management.Automation.ScriptBlock+SuspiciousContentChecker:CheckForMatches(uint[],int):System.String (FullOpts)
          69 (17.00 % of base) : 21462.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (FullOpts)
           5 (16.67 % of base) : 33586.dasm - System.Text.StringBuilder:Append(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         147 (16.28 % of base) : 14434.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
          27 (16.27 % of base) : 30731.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:SynthesizeNullableAttributeIfNecessary(System.Nullable`1[ubyte],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData:this (FullOpts)
          99 (15.59 % of base) : 24378.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
          50 (14.88 % of base) : 22586.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.DynamicTypeDecoder:TransformNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          19 (14.84 % of base) : 25917.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitCompoundAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundCompoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          19 (14.73 % of base) : 35447.dasm - System.Dynamic.DynamicMetaObject:GetExpressions(System.Dynamic.DynamicMetaObject[]):System.Linq.Expressions.Expression[] (FullOpts)
          13 (13.83 % of base) : 15607.dasm - System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1[int]:Enqueue(int):this (FullOpts)
         108 (13.09 % of base) : 482.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)

Top method improvements (percentages):
         -22 (-18.33 % of base) : 22824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSpecialMemberErrors(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
        -294 (-17.37 % of base) : 11872.dasm - FSharp.Compiler.CheckExpressions+BindingNormalization:NormalizeStaticMemberBinding(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.Syntax.SynMemberFlags,FSharp.Compiler.Syntax.SynValData,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynPat],FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs):FSharp.Compiler.CheckExpressions+NormalizedBindingPatternInfo (FullOpts)
        -148 (-17.01 % of base) : 25193.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
         -95 (-16.16 % of base) : 25859.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:AfterRightChildOfBinaryLogicalOperatorHasBeenVisited(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,byref,byref):this (FullOpts)
         -30 (-16.04 % of base) : 14055.dasm - SixLabors.ImageSharp.Formats.Tiff.TiffBitsPerSample:.ctor(ushort,ushort,ushort,ushort):this (FullOpts)
        -227 (-13.99 % of base) : 26147.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitIsPatternExpression(Microsoft.CodeAnalysis.CSharp.BoundIsPatternExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          -7 (-12.50 % of base) : 27789.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Max(byte,byte):byte (FullOpts)
          -7 (-12.50 % of base) : 27790.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[byte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+SByteTC]:Min(byte,byte):byte (FullOpts)
          -7 (-12.50 % of base) : 26298.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ubyte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+ByteTC]:Max(ubyte,ubyte):ubyte (FullOpts)
          -7 (-12.50 % of base) : 26299.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+NumericValueSet`2[ubyte,Microsoft.CodeAnalysis.CSharp.ValueSetFactory+ByteTC]:Min(ubyte,ubyte):ubyte (FullOpts)
        -253 (-12.42 % of base) : 14805.dasm - SixLabors.ImageSharp.Formats.Png.PngDecoderCore:TryReadChunk(byref):ubyte:this (FullOpts)
         -10 (-12.05 % of base) : 25842.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:VisitForStatement(Microsoft.CodeAnalysis.CSharp.BoundForStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         -51 (-11.59 % of base) : 20412.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeChildren(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration]:this (FullOpts)
         -27 (-11.54 % of base) : 30630.dasm - System.Reflection.Metadata.BlobBuilder:WriteBytes(ubyte,int):this (FullOpts)
         -81 (-10.87 % of base) : 21768.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentEvaluateEpilogue(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,int):Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult:this (FullOpts)
         -29 (-10.86 % of base) : 6735.dasm - FSharp.Compiler.TypedTreeBasics:primEntityRefEq$cont@387(ubyte,FSharp.Compiler.TypedTree+CcuThunk,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+EntityRef,Microsoft.FSharp.Core.Unit):ubyte (FullOpts)
          -7 (-10.77 % of base) : 10519.dasm - FSharp.Compiler.Syntax.PrettyNaming+choice@429:Invoke(System.Tuple`2[ushort,System.String]):ubyte:this (FullOpts)
         -23 (-10.70 % of base) : 20867.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol:GetSimpleProgramEntryPoint(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol (FullOpts)
         -23 (-10.27 % of base) : 28969.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitToken(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):this (FullOpts)
         -26 (-10.20 % of base) : 13745.dasm - ILLinkBenchmarks.Utilities:GetCurrentOSPlatform():System.Runtime.InteropServices.OSPlatform (FullOpts)