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.KeyValuePair
2[int,System.Canon],System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer
1[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)