Diffs are based on 2,237,690 contexts (827,812 MinOpts, 1,409,878 FullOpts).
MISSED contexts: base: 74,543 (3.22%), diff: 74,588 (3.23%)
Overall (+2,317,030 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run.linux.arm.checked.mch
15,302,516
+618
benchmarks.run_pgo.linux.arm.checked.mch
60,229,150
+1,032,978
benchmarks.run_tiered.linux.arm.checked.mch
22,642,948
+500
coreclr_tests.run.linux.arm.checked.mch
321,630,692
+160,424
libraries.crossgen2.linux.arm.checked.mch
35,174,564
+698
libraries.pmi.linux.arm.checked.mch
49,549,994
+65,952
libraries_tests.run.linux.arm.Release.mch
241,868,412
+893,708
librariestestsnotieredcompilation.run.linux.arm.Release.mch
93,040,820
+160,792
realworld.run.linux.arm.checked.mch
13,612,086
+1,360
FullOpts (+2,317,030 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run.linux.arm.checked.mch
14,913,260
+618
benchmarks.run_pgo.linux.arm.checked.mch
49,431,548
+1,032,978
benchmarks.run_tiered.linux.arm.checked.mch
13,535,792
+500
coreclr_tests.run.linux.arm.checked.mch
108,900,558
+160,424
libraries.crossgen2.linux.arm.checked.mch
35,173,334
+698
libraries.pmi.linux.arm.checked.mch
49,443,490
+65,952
libraries_tests.run.linux.arm.Release.mch
119,865,468
+893,708
librariestestsnotieredcompilation.run.linux.arm.Release.mch
82,957,000
+160,792
realworld.run.linux.arm.checked.mch
13,162,140
+1,360
Example diffs
benchmarks.run.linux.arm.checked.mch
-14 (-2.68%) : 42901.dasm - MessagePack.Formatters.ListFormatter
1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List
1[int]:this (FullOpts)@@ -56,7 +56,7 @@ G_M61425_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M61425_IG02: ; bbWeight=1, gcrefRegs=0140 {r6 r8}, byrefRegs=0080 {r7}, byref, isz
ldr r0, [r6+0x04]
cmp r5, r0
- bhs G_M61425_IG18
+ bhs G_M61425_IG17
add r0, r6, 8
; byrRegs +[r0]
ldrb r0, [r0+r5]
@@ -96,7 +96,7 @@ G_M61425_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
; byrRegs -[r3]
ldr r1, [r0+0x04]
cmp r3, r1
- bhs G_M61425_IG18
+ bhs G_M61425_IG17
adds r0, 8
; gcrRegs -[r0]
; byrRegs +[r0]
@@ -117,16 +117,16 @@ G_M61425_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
; byrRegs -[r3]
; gcr arg pop 0
cmp r0, 0
- blt G_M61425_IG17
+ blt G_M61425_IG16
mov r10, r0
ldr r0, [r6+0x04]
subs r0, r0, r5
- bvs G_M61425_IG17
+ bvs G_M61425_IG16
cmp r0, r10
- blt G_M61425_IG19
+ blt G_M61425_IG18
ldr r0, [r7]
adds r0, r5, r0
- bvs G_M61425_IG17
+ bvs SHORT G_M61425_IG16
mov r4, r0
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -159,12 +159,12 @@ G_M61425_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
; gcrRegs -[r3]
; gcr arg pop 0
strb r0, [sp+0x14] // [V20 tmp9]
- ;; size=156 bbWeight=0.50 PerfScore 28.00
+ ;; size=154 bbWeight=0.50 PerfScore 28.00
G_M61425_IG06: ; bbWeight=0.50, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
mov lr, 0
str lr, [sp+0x18] // [V10 loc5]
cmp r10, 0
- ble SHORT G_M61425_IG11
+ ble SHORT G_M61425_IG13
;; size=14 bbWeight=0.50 PerfScore 2.00
G_M61425_IG07: ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
str r7, [sp] // [V11 OutArgs]
@@ -194,7 +194,7 @@ G_M61425_IG07: ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r
ldr r3, [r4+0x08]
ldr r2, [r0+0x04]
cmp r2, r3
- bls SHORT G_M61425_IG13
+ bls SHORT G_M61425_IG12
;; size=46 bbWeight=4 PerfScore 80.00
G_M61425_IG08: ; bbWeight=2, gcrefRegs=0351 {r0 r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref
adds r2, r3, 1
@@ -210,30 +210,21 @@ G_M61425_IG09: ; bbWeight=4, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080
ldr r0, [r7]
ldr r3, [sp+0x1C] // [V02 arg2]
adds r3, r3, r0
- bvs SHORT G_M61425_IG12
- str r3, [sp+0x1C] // [V02 arg2]
+ bvs SHORT G_M61425_IG11
ldr r0, [sp+0x18] // [V10 loc5]
adds r0, r0, 1
- bvs SHORT G_M61425_IG12
+ bvs SHORT G_M61425_IG11
cmp r0, r10
str r0, [sp+0x18] // [V10 loc5]
- blt SHORT G_M61425_IG10
- b SHORT G_M61425_IG14
- ;; size=24 bbWeight=4 PerfScore 48.00
-G_M61425_IG10: ; bbWeight=2, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
- ldr r4, [sp+0x1C] // [V02 arg2]
+ mov r4, r3
; gcrRegs -[r4]
- b SHORT G_M61425_IG07
- ;; size=4 bbWeight=2 PerfScore 4.00
-G_M61425_IG11: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+ blt SHORT G_M61425_IG07
+ ;; size=22 bbWeight=4 PerfScore 44.00
+G_M61425_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
; gcrRegs -[r6 r8-r9]
- str r4, [sp+0x1C] // [V02 arg2]
- ldr r4, [sp+0x10] // [V08 loc3]
- ; gcrRegs +[r4]
- b SHORT G_M61425_IG14
- ;; size=6 bbWeight=0.25 PerfScore 0.75
-G_M61425_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r4]
+ b SHORT G_M61425_IG13
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M61425_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; byrRegs -[r7]
; GC ptr vars -{V08}
movw r3, 0xd1ff
@@ -241,7 +232,7 @@ G_M61425_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
blx r3 // CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG13: ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
+G_M61425_IG12: ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
; gcrRegs +[r4 r6 r8-r9]
; byrRegs +[r7]
; GC ptr vars +{V08}
@@ -255,80 +246,11 @@ G_M61425_IG13: ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6
; gcr arg pop 0
b SHORT G_M61425_IG09
;; size=16 bbWeight=2 PerfScore 12.00
-G_M61425_IG14: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
- ; gcrRegs -[r6 r8-r9]
+G_M61425_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+ ; gcrRegs -[r4 r6 r8-r9]
ldrb r0, [sp+0x14] // [V20 tmp9]
cmp r0, 0
- beq SHORT G_M61425_IG15
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldr r6, [r0]
- ; gcrRegs +[r6]
- mov r0, r6
- ; gcrRegs +[r0]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- ldr r2, [r2]
- ldr r1, [r0]
- blx r2 // System.Threading.ThreadLocal`1[int]:get_Value():int:this
- ; gcrRegs -[r0]
- ; gcr arg pop 0
- subs r1, r0, 1
- bvs SHORT G_M61425_IG17
- mov r0, r6
- ; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // System.Threading.ThreadLocal`1[int]:set_Value(int):this
- ; gcrRegs -[r0 r6]
- ; gcr arg pop 0
- ;; size=52 bbWeight=0.50 PerfScore 9.50
-G_M61425_IG15: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
- ldr r3, [sp+0x1C] // [V02 arg2]
- subs r0, r3, r5
- bvs SHORT G_M61425_IG17
- str r0, [r7]
- mov r0, r4
- ; gcrRegs +[r0]
- ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M61425_IG16: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 36
- pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M61425_IG17: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r0 r4]
- ; byrRegs -[r7]
- ; GC ptr vars -{V08}
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_OVERFLOW
- ; gcr arg pop 0
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_RNGCHKFAIL
- ; gcr arg pop 0
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
- ; gcr arg pop 0
- bkpt
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M61425_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
- push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
- sub sp, 12
- add r3, r11, 8
- str r3, [sp+0x08]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61425_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldrb r0, [r11-0x2C] // [V20 tmp9]
- cmp r0, 0
- beq SHORT G_M61425_IG22
+ beq SHORT G_M61425_IG14
movw r0, 0xd1ff
movt r0, 0xd1ff
ldr r6, [r0]
@@ -343,7 +265,75 @@ G_M61425_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; gcrRegs -[r0]
; gcr arg pop 0
subs r1, r0, 1
- bvs SHORT G_M61425_IG23
+ bvs SHORT G_M61425_IG16
+ mov r0, r6
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // System.Threading.ThreadLocal`1[int]:set_Value(int):this
+ ; gcrRegs -[r0 r6]
+ ; gcr arg pop 0
+ ;; size=52 bbWeight=0.50 PerfScore 9.50
+G_M61425_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+ subs r0, r4, r5
+ bvs SHORT G_M61425_IG16
+ str r0, [r7]
+ ldr r0, [sp+0x10] // [V08 loc3]
+ ; gcrRegs +[r0]
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M61425_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 36
+ pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M61425_IG16: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[r0]
+ ; byrRegs -[r7]
+ ; GC ptr vars -{V08}
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ blx r3 // CORINFO_HELP_OVERFLOW
+ ; gcr arg pop 0
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ blx r3 // CORINFO_HELP_RNGCHKFAIL
+ ; gcr arg pop 0
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
+ ; gcr arg pop 0
+ bkpt
+ ;; size=14 bbWeight=0 PerfScore 0.00
+G_M61425_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+ push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
+ sub sp, 12
+ add r3, r11, 8
+ str r3, [sp+0x08]
...
-2 (-1.75%) : 11547.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
@@ -72,9 +72,8 @@ G_M21922_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs +[r3]
ldr r2, [r3+0x04]
cmp r2, -1
- bge SHORT G_M21922_IG07
- b SHORT G_M21922_IG03
- ;; size=36 bbWeight=2 PerfScore 32.00
+ blt SHORT G_M21922_IG03
+ ;; size=34 bbWeight=2 PerfScore 30.00
G_M21922_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
ldr r3, [r3+0x08]
; byrRegs -[r3]
@@ -100,7 +99,7 @@ G_M21922_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-; Total bytes of code 114, prolog size 6, PerfScore 85.00, instruction count 48, allocated bytes for code 114 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 112, prolog size 6, PerfScore 83.00, instruction count 47, allocated bytes for code 112 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 57 (0x00039) Actual length = 114 (0x000072)
+ Function Length : 56 (0x00038) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-6 (-1.69%) : 5679.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
@@ -41,13 +41,13 @@ G_M17703_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=26 bbWeight=1 PerfScore 9.00
G_M17703_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
cmp r5, 0
- blt SHORT G_M17703_IG14
+ blt SHORT G_M17703_IG12
mov r1, 0x3f800000
vmov.i2f s1, r1
vstr s1, [sp+0x0C]
vcmp s16, s1
vmrs APSR, FPSCR
- blo SHORT G_M17703_IG06
+ blo SHORT G_M17703_IG11
;; size=26 bbWeight=1 PerfScore 8.00
G_M17703_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
vcmp s16, s1
@@ -58,7 +58,7 @@ G_M17703_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
beq SHORT G_M17703_IG04
vcmp s16, s16
vmrs APSR, FPSCR
- bne SHORT G_M17703_IG15
+ bne SHORT G_M17703_IG13
;; size=30 bbWeight=0.50 PerfScore 4.50
G_M17703_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
movw r1, 0xd1ff
@@ -67,37 +67,20 @@ G_M17703_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
vstr s1, [sp+0x08]
vcmp s16, s1
vmrs APSR, FPSCR
- bhs SHORT G_M17703_IG07
+ blo SHORT G_M17703_IG06
;; size=26 bbWeight=1 PerfScore 7.00
G_M17703_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M17703_IG10
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r4]
- b SHORT G_M17703_IG15
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M17703_IG07: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r4]
vcmp s16, s1
vmrs APSR, FPSCR
- bgt SHORT G_M17703_IG08
+ bgt SHORT G_M17703_IG10
vcmp s16, s1
vmrs APSR, FPSCR
- bne SHORT G_M17703_IG09
- b SHORT G_M17703_IG10
- ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M17703_IG08: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r4]
- b SHORT G_M17703_IG16
- ;; size=2 bbWeight=0.25 PerfScore 0.25
-G_M17703_IG09: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r4]
+ beq SHORT G_M17703_IG06
vcmp s16, s16
vmrs APSR, FPSCR
- beq SHORT G_M17703_IG16
- b SHORT G_M17703_IG05
- ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M17703_IG10: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ beq SHORT G_M17703_IG14
+ ;; size=30 bbWeight=0.50 PerfScore 4.50
+G_M17703_IG06: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
mov r1, r5
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -119,10 +102,10 @@ G_M17703_IG10: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
movs r0, 0
str r0, [r4+0x08]
;; size=40 bbWeight=1 PerfScore 14.00
-G_M17703_IG11: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M17703_IG07: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
str r0, [r4+0x0C]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M17703_IG12: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M17703_IG08: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
str r0, [r4+0x10]
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -132,13 +115,19 @@ G_M17703_IG12: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
vmov.f2i r0, s9
str r0, [r4+0x14]
;; size=28 bbWeight=1 PerfScore 8.00
-G_M17703_IG13: ; bbWeight=1, epilog, nogc, extend
+G_M17703_IG09: ; bbWeight=1, epilog, nogc, extend
add sp, 16
vpop {d8-d8}
pop {r4,r5,r11,pc}
;; size=10 bbWeight=1 PerfScore 3.00
-G_M17703_IG14: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17703_IG10: ; bbWeight=0.25, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r4]
+ b SHORT G_M17703_IG14
+ ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M17703_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ b SHORT G_M17703_IG13
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M17703_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
@@ -157,7 +146,7 @@ G_M17703_IG14: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; gcrRegs -[r1]
bkpt
;; size=40 bbWeight=0 PerfScore 0.00
-G_M17703_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
@@ -174,7 +163,7 @@ G_M17703_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
bkpt
;; size=44 bbWeight=0 PerfScore 0.00
-G_M17703_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17703_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
@@ -192,7 +181,7 @@ G_M17703_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=44 bbWeight=0 PerfScore 0.00
-; Total bytes of code 356, prolog size 18, PerfScore 61.25, instruction count 112, allocated bytes for code 356 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
+; Total bytes of code 350, prolog size 18, PerfScore 59.75, instruction count 109, allocated bytes for code 350 (MethodHash=aa62bad8) for method System.Collections.Queue:.ctor(int,float):this (FullOpts)
; ============================================================
Unwind Info:
@@ -204,7 +193,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 178 (0x000b2) Actual length = 356 (0x000164)
+ Function Length : 175 (0x000af) Actual length = 350 (0x00015e)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+6.19%) : 20840.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
@@ -9,54 +9,54 @@
; Final local variable assignments
;
; V00 this [V00,T12] ( 9, 6 ) ref -> r5 this class-hnd single-def <System.Collections.Generic.Dictionary`2[ulong,System.__Canon]>
-; V01 arg1 [V01 ] ( 10, 12 ) long -> [sp+0x18] ld-addr-op single-def
-; V02 loc0 [V02,T00] ( 10, 29 ) byref -> r7
+; V01 arg1 [V01 ] ( 10, 12 ) long -> [sp+0x20] ld-addr-op single-def
+; V02 loc0 [V02,T00] ( 10, 29 ) byref -> [sp+0x0C]
; V03 loc1 [V03,T19] ( 3, 2 ) byref -> r0
; V04 loc2 [V04,T16] ( 4, 3.50) ref -> r6 class-hnd single-def <<unknown class>>
-; V05 loc3 [V05,T14] ( 3, 5 ) int -> r6
-; V06 loc4 [V06,T01] ( 6, 13.50) int -> r0
-; V07 loc5 [V07,T13] ( 3, 5 ) ref -> r2 class-hnd exact single-def <<unknown class>>
-; V08 loc6 [V08,T03] ( 4, 12.50) int -> r3
-; V09 loc7 [V09,T15] ( 3, 5 ) int -> r8
-; V10 loc8 [V10,T02] ( 6, 13.50) int -> r7
+; V05 loc3 [V05,T14] ( 3, 5 ) int -> r7
+; V06 loc4 [V06,T01] ( 6, 13.50) int -> r6
+; V07 loc5 [V07,T13] ( 3, 5 ) ref -> r8 class-hnd exact single-def <<unknown class>>
+; V08 loc6 [V08,T03] ( 4, 12.50) int -> r9
+; V09 loc7 [V09,T15] ( 3, 5 ) int -> r7
+; V10 loc8 [V10,T02] ( 6, 13.50) int -> r8
; V11 loc9 [V11,T10] ( 3, 8.50) ref -> r5 class-hnd exact single-def <<unknown class>>
; V12 loc10 [V12,T04] ( 4, 12.50) int -> r9
; V13 OutArgs [V13 ] ( 1, 1 ) struct ( 8) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp2 [V15 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V16 tmp3 [V16,T20] ( 3, 1.50) ref -> r4 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V16 tmp3 [V16,T20] ( 3, 1.50) ref -> r6 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V17 tmp4 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V18 tmp5 [V18 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
;* V19 tmp6 [V19 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V20 tmp7 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp8 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp9 [V22 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V23 tmp10 [V23,T21] ( 3, 1.50) ref -> r7 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V23 tmp10 [V23,T21] ( 3, 1.50) ref -> r4 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V24 tmp11 [V24,T17] ( 3, 3 ) int -> r2 "index expr"
; V25 tmp12 [V25,T18] ( 3, 3 ) int -> r0 "index expr"
-; V26 cse0 [V26,T22] ( 3, 1.50) int -> r7 "CSE - moderate"
-; V27 cse1 [V27,T23] ( 3, 1.50) int -> r4 "CSE - moderate"
-; V28 cse2 [V28,T11] ( 3, 8.50) int -> r1 hoist "CSE - aggressive"
+; V26 cse0 [V26,T22] ( 3, 1.50) int -> r4 "CSE - moderate"
+; V27 cse1 [V27,T23] ( 3, 1.50) int -> r8 "CSE - moderate"
+; V28 cse2 [V28,T11] ( 3, 8.50) int -> r10 hoist "CSE - aggressive"
; V29 cse3 [V29,T07] ( 3, 12 ) int -> r10 "CSE - aggressive"
-; V30 rat0 [V30,T08] ( 6, 7 ) int -> [sp+0x18] do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
-; V31 rat1 [V31,T09] ( 6, 7 ) int -> [sp+0x1C] do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
-; V32 rat2 [V32 ] ( 1, 1 ) long -> [sp+0x10] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V30 rat0 [V30,T08] ( 6, 7 ) int -> [sp+0x20] do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
+; V31 rat1 [V31,T09] ( 6, 7 ) int -> [sp+0x24] do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
+; V32 rat2 [V32 ] ( 1, 1 ) long -> [sp+0x18] multireg-ret "ReplaceWithLclVar is creating a new local variable"
; V33 rat3 [V33,T24] ( 2, 1.50) int -> r0 "field V32.lo (fldOffset=0x0)" P-INDEP
; V34 rat4 [V34,T25] ( 2, 1.50) int -> r1 "field V32.hi (fldOffset=0x4)" P-INDEP
; V35 rat5 [V35,T05] ( 3, 12 ) byref -> r0 "ReplaceWithLclVar is creating a new local variable"
-; V36 rat6 [V36 ] ( 1, 1 ) long -> [sp+0x08] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V36 rat6 [V36 ] ( 1, 1 ) long -> [sp+0x10] multireg-ret "ReplaceWithLclVar is creating a new local variable"
; V37 rat7 [V37,T26] ( 2, 1.50) int -> r0 "field V36.lo (fldOffset=0x0)" P-INDEP
; V38 rat8 [V38,T27] ( 2, 1.50) int -> r1 "field V36.hi (fldOffset=0x4)" P-INDEP
; V39 rat9 [V39,T06] ( 3, 12 ) byref -> r3 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 36
+; Lcl frame size = 44
G_M35514_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
- sub sp, 36
- add r11, sp, 64
- str r2, [sp+0x18]
- str r3, [sp+0x1C]
+ sub sp, 44
+ add r11, sp, 72
+ str r2, [sp+0x20] // [V01 arg1]
+ str r3, [sp+0x24] // [V01 arg1+0x04]
mov r5, r0
; gcrRegs +[r5]
;; size=16 bbWeight=1 PerfScore 6.00
@@ -64,7 +64,7 @@ G_M35514_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
ldr r0, [r5+0x04]
; gcrRegs +[r0]
cmp r0, 0
- beq G_M35514_IG18
+ beq G_M35514_IG20
;; size=8 bbWeight=1 PerfScore 3.00
G_M35514_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
@@ -88,16 +88,14 @@ G_M35514_IG04: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
; gcrRegs +[r6]
cmp r6, 0
bne SHORT G_M35514_IG10
- ldr r2, [sp+0x18]
- ldr r3, [sp+0x1C]
- eor r6, r2, r3
- ; gcrRegs -[r6]
- ldr r4, [r5+0x04]
- ; gcrRegs +[r4]
- ldr r7, [r4+0x04]
- mov r2, r7
+ ldr r2, [sp+0x20]
+ ldr r3, [sp+0x24]
+ eor r7, r2, r3
+ ldr r6, [r5+0x04]
+ ldr r4, [r6+0x04]
+ mov r2, r4
movs r3, 0
- mov r0, r6
+ mov r0, r7
movs r1, 0
movw lr, 0xd1ff
movt lr, 0xd1ff
@@ -106,80 +104,81 @@ G_M35514_IG04: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
tst r0, r0
bmi SHORT G_M35514_IG05
tst r1, r1
- bne SHORT G_M35514_IG19
+ bne G_M35514_IG21
b SHORT G_M35514_IG06
- ;; size=46 bbWeight=0.50 PerfScore 10.00
-G_M35514_IG05: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0.50 PerfScore 10.00
+G_M35514_IG05: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
cmp r1, -1
- bne SHORT G_M35514_IG19
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35514_IG06: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- cmp r0, r7
- bhs SHORT G_M35514_IG20
- add r2, r4, 8
+ bne G_M35514_IG21
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M35514_IG06: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+ cmp r0, r4
+ bhs G_M35514_IG22
+ add r2, r6, 8
; byrRegs +[r2]
lsls r0, r0, 2
- ldr r0, [r2+r0]
- ldr r2, [r5+0x08]
- ; gcrRegs +[r2]
+ ldr r6, [r2+r0]
+ ; gcrRegs -[r6]
+ ldr r8, [r5+0x08]
+ ; gcrRegs +[r8]
+ mov r9, 0
+ subs r6, r6, 1
+ ldr r10, [r8+0x04]
+ ;; size=28 bbWeight=0.50 PerfScore 4.50
+G_M35514_IG07: ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r5]
; byrRegs -[r2]
- movs r3, 0
- subs r0, r0, 1
- ldr r1, [r2+0x04]
- ;; size=20 bbWeight=0.50 PerfScore 4.50
-G_M35514_IG07: ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r4-r5]
- cmp r1, r0
- bls SHORT G_M35514_IG18
- mov lr, 24
- mul r0, r0, lr
+ cmp r10, r6
+ bls SHORT G_M35514_IG20
+ movs r0, 24
+ mul r0, r6, r0
adds r0, 8
- adds r7, r2, r0
- ; byrRegs +[r7]
- ldr r0, [r7+0x0C]
- cmp r0, r6
+ add r5, r8, r0
+ ; byrRegs +[r5]
+ ldr r0, [r5+0x0C]
+ cmp r0, r7
bne SHORT G_M35514_IG09
;; size=22 bbWeight=4 PerfScore 36.00
-G_M35514_IG08: ; bbWeight=2, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
- mov r0, r7
+G_M35514_IG08: ; bbWeight=2, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+ mov r0, r5
; byrRegs +[r0]
- ldr lr, [r0]
+ ldr r2, [r0]
ldr r0, [r0+0x04]
; byrRegs -[r0]
- ldr r12, [sp+0x18]
- ldr r4, [sp+0x1C]
- eor lr, lr, r12
- eors r0, r4
- orrs r0, lr, r0
- beq SHORT G_M35514_IG16
- ;; size=26 bbWeight=2 PerfScore 18.00
-G_M35514_IG09: ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
- ldr r0, [r7+0x10]
- adds r3, r3, 1
- cmp r1, r3
- blo SHORT G_M35514_IG21
+ ldr r3, [sp+0x20]
+ ldr r1, [sp+0x24]
+ eors r2, r3
+ eors r0, r1
+ orrs r0, r2
+ beq SHORT G_M35514_IG18
+ ;; size=18 bbWeight=2 PerfScore 18.00
+G_M35514_IG09: ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+ ldr r6, [r5+0x10]
+ add r9, r9, 1
+ cmp r10, r9
+ blo SHORT G_M35514_IG23
b SHORT G_M35514_IG07
- ;; size=10 bbWeight=4 PerfScore 20.00
+ ;; size=12 bbWeight=4 PerfScore 20.00
G_M35514_IG10: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r2] +[r5-r6]
- ; byrRegs -[r7]
+ ; gcrRegs -[r8] +[r5-r6]
+ ; byrRegs -[r5]
mov r0, r6
; gcrRegs +[r0]
- ldr r2, [sp+0x18]
- ldr r3, [sp+0x1C]
+ ldr r2, [sp+0x20]
+ ldr r3, [sp+0x24]
movw r4, 0xd1ff
movt r4, 0xd1ff
ldr r1, [r4]
blx r1 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- mov r8, r0
- ldr r7, [r5+0x04]
- ; gcrRegs +[r7]
- ldr r4, [r7+0x04]
- mov r2, r4
+ mov r7, r0
+ ldr r4, [r5+0x04]
+ ; gcrRegs +[r4]
+ ldr r8, [r4+0x04]
+ mov r2, r8
movs r3, 0
- mov r0, r8
+ mov r0, r7
movs r1, 0
movw lr, 0xd1ff
movt lr, 0xd1ff
@@ -188,46 +187,51 @@ G_M35514_IG10: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
tst r0, r0
bmi SHORT G_M35514_IG11
tst r1, r1
- bne SHORT G_M35514_IG19
+ bne SHORT G_M35514_IG21
...
+12 (+8.82%) : 22584.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableArray():System.Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T01] ( 5, 5 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T06] ( 3, 4 ) ref -> r5 ld-addr-op class-hnd <System.__Canon>
; V02 loc1 [V02 ] ( 2, 2 ) struct ( 4) [sp+0x08] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
; V03 loc2 [V03 ] ( 8, 33 ) struct ( 8) [sp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]>
@@ -26,9 +26,9 @@
; V15 rat0 [V15,T04] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
; V16 rat1 [V16,T07] ( 3, 4 ) int -> r2 "runtime lookup"
; V17 rat2 [V17,T02] ( 3, 5.60) int -> r2 "fgMakeTemp is creating a new local variable"
-;* V18 rat3 [V18,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V18 rat3 [V18,T05] ( 2, 4 ) int -> r0 "Spilling to split statement for tree"
;* V19 rat4 [V19,T08] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V20 rat5 [V20,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V20 rat5 [V20,T03] ( 2, 4 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -78,8 +78,14 @@ G_M57349_IG05: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
ldr r3, [r3]
blx r3 // System.Collections.Immutable.ImmutableArray`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]:this
; gcr arg pop 0
+ ldr r0, [r4]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x14]
+ cmp r0, 0
+ bne SHORT G_M57349_IG07
b SHORT G_M57349_IG07
- ;; size=18 bbWeight=1 PerfScore 7.00
+ ;; size=30 bbWeight=1 PerfScore 13.00
G_M57349_IG06: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r5]
ldr r0, [sp+0x04] // [V12 tmp7]
@@ -128,7 +134,7 @@ G_M57349_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 24, PerfScore 106.00, instruction count 56, allocated bytes for code 136 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (FullOpts)
+; Total bytes of code 148, prolog size 24, PerfScore 112.00, instruction count 62, allocated bytes for code 148 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -140,7 +146,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 68 (0x00044) Actual length = 136 (0x000088)
+ Function Length : 74 (0x0004a) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+12.35%) : 31069.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)
@@ -8,10 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 3, 3 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T02] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T05] ( 3, 4 ) ref -> r5 ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-; V03 loc2 [V03 ] ( 10, 31 ) struct ( 8) [sp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
+; V03 loc2 [V03 ] ( 10, 31 ) struct ( 8) [sp+0x04] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.__Canon>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
@@ -20,44 +20,52 @@
;* V09 tmp4 [V09,T07] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V10 tmp5 [V10,T01] ( 2, 8 ) ref -> r0 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V11 tmp6 [V11,T00] ( 2, 32 ) ref -> r0 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-; V12 tmp7 [V12 ] ( 2, 3 ) ref -> [sp+0x00] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
-; V13 tmp8 [V13 ] ( 9, 29 ) ref -> [sp+0x04] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
+; V12 tmp7 [V12 ] ( 2, 3 ) ref -> [sp+0x04] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
+; V13 tmp8 [V13 ] ( 9, 29 ) ref -> [sp+0x08] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
;* V14 cse0 [V14,T08] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-;* V15 rat0 [V15,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V15 rat0 [V15,T04] ( 2, 4 ) int -> r0 "Spilling to split statement for tree"
;* V16 rat1 [V16,T06] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V17 rat2 [V17,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V17 rat2 [V17,T03] ( 2, 4 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,r5,r11,lr}
- add r11, sp, 16
+ push {r4,r5,r11,lr}
+ sub sp, 16
+ add r11, sp, 24
movs r1, 0
- str r1, [sp] // [V03 loc2]
- str r1, [sp+0x04] // [V03 loc2+0x04]
+ str r1, [sp+0x04] // [V03 loc2]
+ str r1, [sp+0x08] // [V03 loc2+0x04]
+ str r0, [r11-0x0C]
mov r4, r0
; gcrRegs +[r4]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M64146_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
movs r5, 0
ldr r0, [r4+0x50]
; gcrRegs +[r0]
- add r1, sp, 0
+ add r1, sp, 4
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
ldr r2, [r0]
blx r3 // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this
; gcrRegs -[r0] +[r5]
+ ldr r0, [r4]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x10]
+ cmp r0, 0
+ bne SHORT G_M64146_IG04
b SHORT G_M64146_IG04
- ;; size=22 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 15.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r5]
- ldr r0, [sp+0x04]
+ ldr r0, [sp+0x08]
; gcrRegs +[r0]
cmp r0, 0
beq SHORT G_M64146_IG10
- ldr r0, [sp+0x04]
+ ldr r0, [sp+0x08]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -68,36 +76,36 @@ G_M64146_IG03: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
;; size=24 bbWeight=2 PerfScore 20.00
G_M64146_IG04: ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp+0x04]
+ ldr r0, [sp+0x08]
; gcrRegs +[r0]
cmp r0, 0
bne SHORT G_M64146_IG06
;; size=6 bbWeight=8 PerfScore 24.00
G_M64146_IG05: ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp]
+ ldr r0, [sp+0x04]
; gcrRegs +[r0]
- str r0, [sp+0x04] // [V13 tmp8]
+ str r0, [sp+0x08] // [V13 tmp8]
b SHORT G_M64146_IG07
;; size=6 bbWeight=2 PerfScore 6.00
G_M64146_IG06: ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp+0x04] // [V13 tmp8]
+ ldr r0, [sp+0x08] // [V13 tmp8]
; gcrRegs +[r0]
ldr r0, [r0+0x08]
cmp r0, 0
beq SHORT G_M64146_IG07
- ldr r0, [sp+0x04] // [V13 tmp8]
+ ldr r0, [sp+0x08] // [V13 tmp8]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
ldr r2, [r0]
blx r3 // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Pop():System.Collections.Immutable.ImmutableStack`1[System.__Canon]:this
- str r0, [sp+0x04] // [V13 tmp8]
+ str r0, [sp+0x08] // [V13 tmp8]
;; size=26 bbWeight=2 PerfScore 22.00
G_M64146_IG07: ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp+0x04] // [V13 tmp8]
+ ldr r0, [sp+0x08] // [V13 tmp8]
; gcrRegs +[r0]
ldr r0, [r0+0x08]
cmp r0, 0
@@ -109,8 +117,9 @@ G_M64146_IG08: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
G_M64146_IG09: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,r5,r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ add sp, 16
+ pop {r4,r5,r11,pc}
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M64146_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0 r5]
movw r0, 0xd1ff
@@ -136,7 +145,7 @@ G_M64146_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=48 bbWeight=0 PerfScore 0.00
-; Total bytes of code 162, prolog size 14, PerfScore 121.00, instruction count 64, allocated bytes for code 162 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 182, prolog size 20, PerfScore 130.00, instruction count 73, allocated bytes for code 182 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -148,7 +157,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 81 (0x00051) Actual length = 162 (0x0000a2)
+ Function Length : 91 (0x0005b) Actual length = 182 (0x0000b6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,7 +165,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 3C pop {r2,r3,r4,r5,r11,lr} ; opsize 32
- FF end
+ 04 add sp, sp, #16 ; opsize 16
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end
benchmarks.run_pgo.linux.arm.checked.mch
-10 (-19.23%) : 62149.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 5
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,14 +16,13 @@
; V04 tmp2 [V04,T00] ( 3, 6 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <<unknown class>>
; V05 tmp3 [V05,T02] ( 3, 2 ) byref -> r0 single-def "Inline stloc first use temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M25826_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
+ push {r3,lr}
mov r1, r0
; gcrRegs +[r1]
- ;; size=8 bbWeight=1 PerfScore 3.00
+ ;; size=4 bbWeight=1 PerfScore 2.00
G_M25826_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -36,28 +35,26 @@ G_M25826_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M25826_IG04
- ;; size=30 bbWeight=1 PerfScore 10.00
-G_M25826_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+ bne SHORT G_M25826_IG04
+ movs r0, 0
+ ; byrRegs -[r0]
+ ;; size=32 bbWeight=1 PerfScore 11.00
+G_M25826_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M25826_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref
+ ; byrRegs +[r0]
ldr r0, [r0]
; gcrRegs +[r0]
; byrRegs -[r0]
- b SHORT G_M25826_IG06
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M25826_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0]
- movs r0, 0
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M25826_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M25826_IG06: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs +[r0]
- pop {r11,pc}
- ;; size=4 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=0 PerfScore 0.00
+G_M25826_IG05: ; bbWeight=0, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=0 PerfScore 0.00
-; Total bytes of code 52, prolog size 6, PerfScore 15.00, instruction count 18, allocated bytes for code 52 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 42, prolog size 2, PerfScore 14.00, instruction count 16, allocated bytes for code 42 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
; ============================================================
Unwind Info:
@@ -69,7 +66,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -81,7 +78,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-10 (-16.13%) : 73873.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 37
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -17,12 +17,11 @@
; V05 tmp2 [V05,T00] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
; V06 tmp3 [V06,T03] ( 3, 2 ) byref -> r0 single-def "Inline stloc first use temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M15164_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M15164_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0-r1]
ldr r0, [r0+0x04]
@@ -33,43 +32,39 @@ G_M15164_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M15164_IG04
- ;; size=22 bbWeight=1 PerfScore 8.00
-G_M15164_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+ bne SHORT G_M15164_IG04
+ movs r0, 0
+ ; byrRegs -[r0]
+ ;; size=24 bbWeight=1 PerfScore 9.00
+G_M15164_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M15164_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref, isz
+ ; byrRegs +[r0]
ldr r0, [r0]
; gcrRegs +[r0]
; byrRegs -[r0]
- b SHORT G_M15164_IG06
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M15164_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0]
- movs r0, 0
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M15164_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M15164_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
; gcrRegs +[r3]
cmp r0, r3
- bne SHORT G_M15164_IG07
+ bne SHORT G_M15164_IG05
movs r0, 0
; gcrRegs -[r0]
- b SHORT G_M15164_IG08
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M15164_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ b SHORT G_M15164_IG06
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M15164_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r3]
movs r0, 1
;; size=2 bbWeight=0 PerfScore 0.00
-G_M15164_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r11,pc}
- ;; size=4 bbWeight=0 PerfScore 0.00
+G_M15164_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r3,pc}
+ ;; size=2 bbWeight=0 PerfScore 0.00
-; Total bytes of code 62, prolog size 6, PerfScore 12.00, instruction count 23, allocated bytes for code 62 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
+; Total bytes of code 52, prolog size 2, PerfScore 11.00, instruction count 21, allocated bytes for code 52 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -81,7 +76,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,7 +88,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-10 (-16.13%) : 107745.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 26
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -17,12 +17,11 @@
; V05 tmp2 [V05,T00] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
; V06 tmp3 [V06,T03] ( 3, 2 ) byref -> r0 single-def "Inline stloc first use temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M15164_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M15164_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0-r1]
ldr r0, [r0+0x04]
@@ -33,43 +32,39 @@ G_M15164_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M15164_IG04
- ;; size=22 bbWeight=1 PerfScore 8.00
-G_M15164_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+ bne SHORT G_M15164_IG04
+ movs r0, 0
+ ; byrRegs -[r0]
+ ;; size=24 bbWeight=1 PerfScore 9.00
+G_M15164_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M15164_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref, isz
+ ; byrRegs +[r0]
ldr r0, [r0]
; gcrRegs +[r0]
; byrRegs -[r0]
- b SHORT G_M15164_IG06
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M15164_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0]
- movs r0, 0
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M15164_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M15164_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
; gcrRegs +[r3]
cmp r0, r3
- bne SHORT G_M15164_IG07
+ bne SHORT G_M15164_IG05
movs r0, 0
; gcrRegs -[r0]
- b SHORT G_M15164_IG08
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M15164_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ b SHORT G_M15164_IG06
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M15164_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r3]
movs r0, 1
;; size=2 bbWeight=0 PerfScore 0.00
-G_M15164_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r11,pc}
- ;; size=4 bbWeight=0 PerfScore 0.00
+G_M15164_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r3,pc}
+ ;; size=2 bbWeight=0 PerfScore 0.00
-; Total bytes of code 62, prolog size 6, PerfScore 12.00, instruction count 23, allocated bytes for code 62 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
+; Total bytes of code 52, prolog size 2, PerfScore 11.00, instruction count 21, allocated bytes for code 52 (MethodHash=0d92c4c3) for method BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -81,7 +76,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,7 +88,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
+30 (+25.00%) : 112403.dasm - System.Text.RegularExpressions.Symbolic.MatchingState
1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver
1[ulong],ubyte):ubyte:this (Tier1)@@ -9,19 +9,19 @@
; 1 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> r5 this class-hnd single-def <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
-; V01 arg1 [V01,T02] ( 3, 2 ) ref -> r1 class-hnd single-def <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
+; V00 this [V00,T00] ( 6, 4 ) ref -> r5 this class-hnd single-def <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+; V01 arg1 [V01,T04] ( 3, 2 ) ref -> r1 class-hnd single-def <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V02 arg2 [V02,T01] ( 3, 3 ) ubyte -> r2 single-def
; V03 loc0 [V03,T06] ( 11, 2 ) ubyte -> r6
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T07] ( 2, 0 ) ubyte -> r0 "Inline return value spill temp"
-; V06 tmp2 [V06,T03] ( 3, 4 ) ref -> r2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V07 tmp3 [V07,T04] ( 2, 4 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V06 tmp2 [V06,T02] ( 5, 4 ) ref -> r2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V07 tmp3 [V07,T03] ( 4, 4 ) ref -> lr class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V08 tmp4 [V08 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V09 tmp5 [V09,T09] ( 2, 0 ) ref -> r3 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V11 tmp7 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V12 cse0 [V12,T05] ( 4, 3 ) ref -> r7 "CSE - aggressive"
+; V12 cse0 [V12,T05] ( 7, 3 ) ref -> r7 "CSE - aggressive"
; V13 rat0 [V13,T08] ( 3, 0 ) byref -> r3 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -37,19 +37,47 @@ G_M42217_IG02: ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, b
movs r6, 0
uxtb r0, r2
cmp r0, 0
- beq SHORT G_M42217_IG04
- ;; size=8 bbWeight=1 PerfScore 4.00
-G_M42217_IG03: ; bbWeight=0, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref
- movs r6, 1
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M42217_IG04: ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+ bne SHORT G_M42217_IG07
ldr r2, [r5+0x04]
; gcrRegs +[r2]
ldr r0, [r2+0x1C]
cmp r0, 1
- bne SHORT G_M42217_IG06
- ;; size=8 bbWeight=1 PerfScore 4.00
-G_M42217_IG05: ; bbWeight=0, gcrefRegs=0026 {r1 r2 r5}, byrefRegs=0000 {}, byref, isz
+ beq SHORT G_M42217_IG08
+ ;; size=16 bbWeight=1 PerfScore 8.00
+G_M42217_IG03: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r1-r2]
+ ldr r7, [r5+0x04]
+ ; gcrRegs +[r7]
+ mov lr, r7
+ ; gcrRegs +[lr]
+ ldr r0, [lr+0x28]
+ ands r0, r0, 8
+ cmp r0, 0
+ bne SHORT G_M42217_IG09
+ ;; size=16 bbWeight=1 PerfScore 6.00
+G_M42217_IG04: ; bbWeight=1, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r5 lr]
+ ldr r0, [r7+0x1C]
+ cmp r0, 17
+ bne SHORT G_M42217_IG10
+ ;; size=6 bbWeight=1 PerfScore 3.00
+G_M42217_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r7]
+ mov r0, r6
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M42217_IG06: ; bbWeight=1, epilog, nogc, extend
+ pop {r4,r5,r6,r7,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
+G_M42217_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r1 r5]
+ movs r6, 1
+ ldr r2, [r5+0x04]
+ ; gcrRegs +[r2]
+ ldr r3, [r2+0x1C]
+ cmp r3, 1
+ bne SHORT G_M42217_IG03
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M42217_IG08: ; bbWeight=0, gcrefRegs=0026 {r1 r2 r5}, byrefRegs=0000 {}, byref, isz
add r3, r2, 8
; byrRegs +[r3]
ldr r2, [r3]
@@ -64,21 +92,21 @@ G_M42217_IG05: ; bbWeight=0, gcrefRegs=0026 {r1 r2 r5}, byrefRegs=0000 {}
; gcrRegs -[r1]
blx r1 // <unknown method>
; gcrRegs -[r0]
- b SHORT G_M42217_IG12
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M42217_IG06: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+ cmp r0, 0
+ beq SHORT G_M42217_IG03
+ orr r3, r6, 2
+ uxtb r6, r3
ldr r7, [r5+0x04]
; gcrRegs +[r7]
- mov r0, r7
- ; gcrRegs +[r0]
- ldr r0, [r0+0x28]
- ; gcrRegs -[r0]
- ands r0, r0, 8
- cmp r0, 0
- beq SHORT G_M42217_IG08
- ;; size=14 bbWeight=1 PerfScore 6.00
-G_M42217_IG07: ; bbWeight=0, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r5]
+ mov lr, r7
+ ; gcrRegs +[lr]
+ ldr r3, [lr+0x28]
+ ands r3, r3, 8
+ cmp r3, 0
+ beq SHORT G_M42217_IG04
+ ;; size=48 bbWeight=0 PerfScore 0.00
+G_M42217_IG09: ; bbWeight=0, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r5 lr]
orr r3, r6, 8
uxtb r6, r3
mov r3, r7
@@ -87,36 +115,21 @@ G_M42217_IG07: ; bbWeight=0, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byre
; gcrRegs -[r3]
ands r3, r3, 1
cmp r3, 0
- beq SHORT G_M42217_IG08
+ beq SHORT G_M42217_IG04
orr r3, r6, 4
uxtb r6, r3
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M42217_IG08: ; bbWeight=1, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r7+0x1C]
- cmp r0, 17
- beq SHORT G_M42217_IG10
- ;; size=6 bbWeight=1 PerfScore 3.00
-G_M42217_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ldr r3, [r7+0x1C]
+ cmp r3, 17
+ beq SHORT G_M42217_IG05
+ ;; size=30 bbWeight=0 PerfScore 0.00
+G_M42217_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r7]
orr r3, r6, 16
uxtb r6, r3
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M42217_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r0, r6
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M42217_IG11: ; bbWeight=1, epilog, nogc, extend
- pop {r4,r5,r6,r7,r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M42217_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[r5]
- cmp r0, 0
- beq SHORT G_M42217_IG06
- orr r3, r6, 2
- uxtb r6, r3
- b SHORT G_M42217_IG06
- ;; size=12 bbWeight=0 PerfScore 0.00
+ b SHORT G_M42217_IG05
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 8, PerfScore 22.00, instruction count 48, allocated bytes for code 120 (MethodHash=f7db5b16) for method System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
+; Total bytes of code 150, prolog size 8, PerfScore 22.00, instruction count 60, allocated bytes for code 150 (MethodHash=f7db5b16) for method System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -128,7 +141,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 60 (0x0003c) Actual length = 120 (0x000078)
+ Function Length : 75 (0x0004b) Actual length = 150 (0x000096)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+14 (+25.93%) : 90234.dasm - Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 2.67) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNode>
-; V01 arg1 [V01,T00] ( 4, 4 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNode>
+; V01 arg1 [V01,T00] ( 5, 4 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundNode>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V04 tmp2 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -25,44 +25,54 @@ G_M32407_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
ldrsh r3, [r1+0x08]
ands r3, r3, 2
cmp r3, 0
- beq SHORT G_M32407_IG04
+ bne SHORT G_M32407_IG05
;; size=12 bbWeight=1 PerfScore 4.00
-G_M32407_IG03: ; bbWeight=0.33, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref
- ldrsh r3, [r0+0x08]
- orr r3, r3, 2
- strh r3, [r0+0x08]
- ;; size=10 bbWeight=0.33 PerfScore 1.00
-G_M32407_IG04: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
+G_M32407_IG03: ; bbWeight=0.67, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
ldrsh r3, [r1+0x08]
ands r3, r3, 4
cmp r3, 0
- beq SHORT G_M32407_IG06
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M32407_IG05: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+ bne SHORT G_M32407_IG06
+ ;; size=12 bbWeight=0.67 PerfScore 2.67
+G_M32407_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[r0-r1]
+ pop {r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
+G_M32407_IG05: ; bbWeight=0.33, gcVars=00000000 {}, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r0-r1]
+ ldrsh r3, [r0+0x08]
+ orr r3, r3, 2
+ strh r3, [r0+0x08]
+ ldrsh r1, [r1+0x08]
; gcrRegs -[r1]
+ ands r3, r1, 4
+ cmp r3, 0
+ beq SHORT G_M32407_IG04
+ ;; size=22 bbWeight=0.33 PerfScore 2.33
+G_M32407_IG06: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
ldrsh r3, [r0+0x08]
orr r3, r3, 4
strh r3, [r0+0x08]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M32407_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r0]
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ b SHORT G_M32407_IG04
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 54, prolog size 6, PerfScore 12.00, instruction count 17, allocated bytes for code 54 (MethodHash=db418168) for method Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
+; Total bytes of code 68, prolog size 6, PerfScore 12.00, instruction count 22, allocated bytes for code 68 (MethodHash=db418168) for method Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 1
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
- --- One epilog, unwind codes at 0
+ Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Condition : 14 (0xe) (always)
+ Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
A8 00 pop {r11,lr} ; opsize 32
+12 (+28.57%) : 145923.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; sp based frame
+; r11 based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -16,13 +16,14 @@
; V04 tmp2 [V04,T00] ( 3, 6 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <<unknown class>>
; V05 tmp3 [V05,T02] ( 3, 2 ) byref -> r0 single-def "Inline stloc first use temp"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
-G_M25826_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r3,lr}
+G_M25826_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push {r11,lr}
+ mov r11, sp
mov r1, r0
; gcrRegs +[r1]
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1 PerfScore 3.00
G_M25826_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -35,27 +36,31 @@ G_M25826_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
; byrRegs +[r0]
- ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M25826_IG05
- ;; size=30 bbWeight=1 PerfScore 10.00
-G_M25826_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
- ldr r0, [r0]
+ bne SHORT G_M25826_IG06
+ b SHORT G_M25826_IG04
+ ;; size=32 bbWeight=1 PerfScore 11.00
+G_M25826_IG03: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs +[r0]
; byrRegs -[r0]
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M25826_IG04: ; bbWeight=0, epilog, nogc, extend
- pop {r3,pc}
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M25826_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ pop {r11,pc}
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M25826_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
movs r0, 0
;; size=2 bbWeight=0 PerfScore 0.00
-G_M25826_IG06: ; bbWeight=0, epilog, nogc, extend
- pop {r3,pc}
- ;; size=2 bbWeight=0 PerfScore 0.00
+G_M25826_IG05: ; bbWeight=0, epilog, nogc, extend
+ pop {r11,pc}
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M25826_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref, isz
+ ; byrRegs +[r0]
+ ldr r0, [r0]
+ ; gcrRegs +[r0]
+ ; byrRegs -[r0]
+ b SHORT G_M25826_IG03
+ ;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 42, prolog size 2, PerfScore 12.00, instruction count 16, allocated bytes for code 42 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 54, prolog size 6, PerfScore 14.00, instruction count 19, allocated bytes for code 54 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
; ============================================================
Unwind Info:
@@ -67,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -79,7 +84,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
benchmarks.run_tiered.linux.arm.checked.mch
-14 (-2.68%) : 76726.dasm - MessagePack.Formatters.ListFormatter
1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List
1[int]:this (Tier0-FullOpts)@@ -56,7 +56,7 @@ G_M61425_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M61425_IG02: ; bbWeight=1, gcrefRegs=0140 {r6 r8}, byrefRegs=0080 {r7}, byref, isz
ldr r0, [r6+0x04]
cmp r5, r0
- bhs G_M61425_IG18
+ bhs G_M61425_IG17
add r0, r6, 8
; byrRegs +[r0]
ldrb r0, [r0+r5]
@@ -96,7 +96,7 @@ G_M61425_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
; byrRegs -[r3]
ldr r1, [r0+0x04]
cmp r3, r1
- bhs G_M61425_IG18
+ bhs G_M61425_IG17
adds r0, 8
; gcrRegs -[r0]
; byrRegs +[r0]
@@ -117,16 +117,16 @@ G_M61425_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
; byrRegs -[r3]
; gcr arg pop 0
cmp r0, 0
- blt G_M61425_IG17
+ blt G_M61425_IG16
mov r10, r0
ldr r0, [r6+0x04]
subs r0, r0, r5
- bvs G_M61425_IG17
+ bvs G_M61425_IG16
cmp r0, r10
- blt G_M61425_IG19
+ blt G_M61425_IG18
ldr r0, [r7]
adds r0, r5, r0
- bvs G_M61425_IG17
+ bvs SHORT G_M61425_IG16
mov r4, r0
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -159,12 +159,12 @@ G_M61425_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0140 {r6 r8
; gcrRegs -[r3]
; gcr arg pop 0
strb r0, [sp+0x14] // [V20 tmp9]
- ;; size=156 bbWeight=0.50 PerfScore 28.00
+ ;; size=154 bbWeight=0.50 PerfScore 28.00
G_M61425_IG06: ; bbWeight=0.50, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
mov lr, 0
str lr, [sp+0x18] // [V10 loc5]
cmp r10, 0
- ble SHORT G_M61425_IG11
+ ble SHORT G_M61425_IG13
;; size=14 bbWeight=0.50 PerfScore 2.00
G_M61425_IG07: ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
str r7, [sp] // [V11 OutArgs]
@@ -194,7 +194,7 @@ G_M61425_IG07: ; bbWeight=4, gcrefRegs=0340 {r6 r8 r9}, byrefRegs=0080 {r
ldr r3, [r4+0x08]
ldr r2, [r0+0x04]
cmp r2, r3
- bls SHORT G_M61425_IG13
+ bls SHORT G_M61425_IG12
;; size=46 bbWeight=4 PerfScore 80.00
G_M61425_IG08: ; bbWeight=2, gcrefRegs=0351 {r0 r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref
adds r2, r3, 1
@@ -210,30 +210,21 @@ G_M61425_IG09: ; bbWeight=4, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080
ldr r0, [r7]
ldr r3, [sp+0x1C] // [V02 arg2]
adds r3, r3, r0
- bvs SHORT G_M61425_IG12
- str r3, [sp+0x1C] // [V02 arg2]
+ bvs SHORT G_M61425_IG11
ldr r0, [sp+0x18] // [V10 loc5]
adds r0, r0, 1
- bvs SHORT G_M61425_IG12
+ bvs SHORT G_M61425_IG11
cmp r0, r10
str r0, [sp+0x18] // [V10 loc5]
- blt SHORT G_M61425_IG10
- b SHORT G_M61425_IG14
- ;; size=24 bbWeight=4 PerfScore 48.00
-G_M61425_IG10: ; bbWeight=2, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, byref, isz
- ldr r4, [sp+0x1C] // [V02 arg2]
+ mov r4, r3
; gcrRegs -[r4]
- b SHORT G_M61425_IG07
- ;; size=4 bbWeight=2 PerfScore 4.00
-G_M61425_IG11: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+ blt SHORT G_M61425_IG07
+ ;; size=22 bbWeight=4 PerfScore 44.00
+G_M61425_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
; gcrRegs -[r6 r8-r9]
- str r4, [sp+0x1C] // [V02 arg2]
- ldr r4, [sp+0x10] // [V08 loc3]
- ; gcrRegs +[r4]
- b SHORT G_M61425_IG14
- ;; size=6 bbWeight=0.25 PerfScore 0.75
-G_M61425_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r4]
+ b SHORT G_M61425_IG13
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M61425_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; byrRegs -[r7]
; GC ptr vars -{V08}
movw r3, 0xd1ff
@@ -241,7 +232,7 @@ G_M61425_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
blx r3 // CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG13: ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
+G_M61425_IG12: ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6 r8 r9}, byrefRegs=0080 {r7}, gcvars, byref, isz
; gcrRegs +[r4 r6 r8-r9]
; byrRegs +[r7]
; GC ptr vars +{V08}
@@ -255,80 +246,11 @@ G_M61425_IG13: ; bbWeight=2, gcVars=00000001 {V08}, gcrefRegs=0350 {r4 r6
; gcr arg pop 0
b SHORT G_M61425_IG09
;; size=16 bbWeight=2 PerfScore 12.00
-G_M61425_IG14: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
- ; gcrRegs -[r6 r8-r9]
+G_M61425_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+ ; gcrRegs -[r4 r6 r8-r9]
ldrb r0, [sp+0x14] // [V20 tmp9]
cmp r0, 0
- beq SHORT G_M61425_IG15
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- ldr r6, [r0]
- ; gcrRegs +[r6]
- mov r0, r6
- ; gcrRegs +[r0]
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- ldr r2, [r2]
- ldr r1, [r0]
- blx r2 // System.Threading.ThreadLocal`1[int]:get_Value():int:this
- ; gcrRegs -[r0]
- ; gcr arg pop 0
- subs r1, r0, 1
- bvs SHORT G_M61425_IG17
- mov r0, r6
- ; gcrRegs +[r0]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // System.Threading.ThreadLocal`1[int]:set_Value(int):this
- ; gcrRegs -[r0 r6]
- ; gcr arg pop 0
- ;; size=52 bbWeight=0.50 PerfScore 9.50
-G_M61425_IG15: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0080 {r7}, byref, isz
- ldr r3, [sp+0x1C] // [V02 arg2]
- subs r0, r3, r5
- bvs SHORT G_M61425_IG17
- str r0, [r7]
- mov r0, r4
- ; gcrRegs +[r0]
- ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M61425_IG16: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 36
- pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M61425_IG17: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r0 r4]
- ; byrRegs -[r7]
- ; GC ptr vars -{V08}
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_OVERFLOW
- ; gcr arg pop 0
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_RNGCHKFAIL
- ; gcr arg pop 0
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M61425_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
- ; gcr arg pop 0
- bkpt
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M61425_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
- push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
- sub sp, 12
- add r3, r11, 8
- str r3, [sp+0x08]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61425_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldrb r0, [r11-0x2C] // [V20 tmp9]
- cmp r0, 0
- beq SHORT G_M61425_IG22
+ beq SHORT G_M61425_IG14
movw r0, 0xd1ff
movt r0, 0xd1ff
ldr r6, [r0]
@@ -343,7 +265,75 @@ G_M61425_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; gcrRegs -[r0]
; gcr arg pop 0
subs r1, r0, 1
- bvs SHORT G_M61425_IG23
+ bvs SHORT G_M61425_IG16
+ mov r0, r6
+ ; gcrRegs +[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // System.Threading.ThreadLocal`1[int]:set_Value(int):this
+ ; gcrRegs -[r0 r6]
+ ; gcr arg pop 0
+ ;; size=52 bbWeight=0.50 PerfScore 9.50
+G_M61425_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
+ subs r0, r4, r5
+ bvs SHORT G_M61425_IG16
+ str r0, [r7]
+ ldr r0, [sp+0x10] // [V08 loc3]
+ ; gcrRegs +[r0]
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M61425_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 36
+ pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M61425_IG16: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[r0]
+ ; byrRegs -[r7]
+ ; GC ptr vars -{V08}
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ blx r3 // CORINFO_HELP_OVERFLOW
+ ; gcr arg pop 0
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ blx r3 // CORINFO_HELP_RNGCHKFAIL
+ ; gcr arg pop 0
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61425_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // MessagePack.MessagePackBinary:ThrowNotEnoughBytesException()
+ ; gcr arg pop 0
+ bkpt
+ ;; size=14 bbWeight=0 PerfScore 0.00
+G_M61425_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+ push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
+ sub sp, 12
+ add r3, r11, 8
+ str r3, [sp+0x08]
...
-18 (-1.98%) : 4627.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 10 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T04] ( 21, 14 ) ref -> [sp+0x0C] this class-hnd single-def <System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]>
+; V00 this [V00,T04] ( 21, 14 ) ref -> r5 this class-hnd single-def <System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]>
; V01 arg1 [V01,T11] ( 7, 4.50) struct ( 8) [sp+0x70] do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.Linq.Expressions.Compiler.BoundConstants+TypedConstant>
; V02 arg2 [V02,T17] ( 4, 3 ) int -> [sp+0x44] single-def
; V03 arg3 [V03,T40] ( 2, 1 ) ubyte -> [sp+0x78] single-def
@@ -16,10 +16,10 @@
; V05 loc1 [V05,T16] ( 5, 5.50) ref -> r8 class-hnd single-def <<unknown class>>
; V06 loc2 [V06,T09] ( 6, 11 ) int -> [sp+0x40] spill-single-def
; V07 loc3 [V07,T03] ( 7, 25 ) int -> [sp+0x3C]
-; V08 loc4 [V08,T22] ( 5, 3.50) byref -> r6
+; V08 loc4 [V08,T22] ( 5, 3.50) byref -> [sp+0x0C]
; V09 loc5 [V09,T02] ( 9, 26 ) int -> [sp+0x38]
; V10 loc6 [V10,T23] ( 6, 3 ) int -> r9
-; V11 loc7 [V11,T30] ( 5, 2.50) byref -> r10 single-def
+; V11 loc7 [V11,T30] ( 5, 2.50) byref -> r7 single-def
; V12 loc8 [V12,T34] ( 3, 1.50) int -> r9
; V13 OutArgs [V13 ] ( 1, 1 ) struct ( 4) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref
@@ -55,7 +55,7 @@
; V44 cse0 [V44,T05] ( 4, 14 ) int -> [sp+0x2C] spill-single-def "CSE - aggressive"
; V45 cse1 [V45,T06] ( 4, 14 ) int -> [sp+0x28] spill-single-def "CSE - aggressive"
; V46 cse2 [V46,T35] ( 3, 1.50) int -> r7 "CSE - conservative"
-; V47 cse3 [V47,T24] ( 6, 3 ) int -> lr multi-def "CSE - moderate"
+; V47 cse3 [V47,T24] ( 6, 3 ) int -> r5 multi-def "CSE - moderate"
; V48 cse4 [V48,T36] ( 3, 1.50) int -> r0 "CSE - conservative"
; V49 cse5 [V49,T37] ( 3, 1.50) int -> r0 "CSE - conservative"
; V50 cse6 [V50,T01] ( 10, 26 ) int -> [sp+0x24] multi-def "CSE - aggressive"
@@ -205,37 +205,39 @@ G_M42416_IG11: ; bbWeight=1, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=
tst r0, r0
bmi SHORT G_M42416_IG12
tst r1, r1
- bne G_M42416_IG39
+ bne G_M42416_IG40
b SHORT G_M42416_IG13
;; size=50 bbWeight=1 PerfScore 17.00
G_M42416_IG12: ; bbWeight=1, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
cmp r1, -1
- bne G_M42416_IG39
+ bne G_M42416_IG40
;; size=8 bbWeight=1 PerfScore 2.00
G_M42416_IG13: ; bbWeight=1, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
ldr r6, [sp+0x08] // [V23 tmp10]
; gcrRegs +[r6]
ldr r1, [r6+0x04]
cmp r0, r1
- bhs G_M42416_IG40
+ bhs G_M42416_IG41
add r1, r6, 8
; byrRegs +[r1]
lsls r0, r0, 2
adds r6, r1, r0
; gcrRegs -[r6]
; byrRegs +[r6]
+ str r6, [sp+0x0C] // [V08 loc4]
+ ; GC ptr vars +{V08}
ldr r0, [r6]
subs r3, r0, 1
cmp r8, 0
bne SHORT G_M42416_IG23
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M42416_IG14: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, gcvars, byref, isz
+ ;; size=30 bbWeight=1 PerfScore 12.00
+G_M42416_IG14: ; bbWeight=4, gcVars=0000000000400000 {V08}, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r8]
- ; byrRegs -[r1]
+ ; byrRegs -[r1 r6]
; GC ptr vars -{V23}
ldr r8, [r7+0x04]
cmp r8, r3
- bls G_M42416_IG30
+ bls G_M42416_IG31
movs r0, 20
str r3, [sp+0x38] // [V09 loc5]
mul r0, r3, r0
@@ -245,7 +247,7 @@ G_M42416_IG14: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=06A0 {
cmp r0, r4
bne SHORT G_M42416_IG16
;; size=30 bbWeight=4 PerfScore 44.00
-G_M42416_IG15: ; bbWeight=2, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, byref, isz
+G_M42416_IG15: ; bbWeight=2, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, byref, isz
adds r0, r7, r2
; byrRegs +[r0]
ldr r1, [r0+0x0C]
@@ -271,51 +273,51 @@ G_M42416_IG15: ; bbWeight=2, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=004
ldr r2, [sp+0x2C] // [V44 cse0]
bne SHORT G_M42416_IG18
;; size=36 bbWeight=2 PerfScore 30.00
-G_M42416_IG16: ; bbWeight=4, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, byref, isz
+G_M42416_IG16: ; bbWeight=4, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, byref, isz
adds r1, r7, r2
; byrRegs +[r1]
ldr r3, [r1+0x04]
mov lr, r3
ldr r12, [sp+0x3C] // [V07 loc3]
add r12, r12, 1
- cmp r8, r12
str r12, [sp+0x3C] // [V07 loc3]
+ cmp r8, r12
+ blo G_M42416_IG42
mov r3, lr
- blo G_M42416_IG41
b SHORT G_M42416_IG14
;; size=28 bbWeight=4 PerfScore 40.00
-G_M42416_IG17: ; bbWeight=1, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0040 {r6}, byref, isz
+G_M42416_IG17: ; bbWeight=1, gcrefRegs=06A0 {r5 r7 r9 r10}, byrefRegs=0000 {}, byref, isz
; byrRegs -[r1]
ldr r2, [sp+0x2C] // [V44 cse0]
b SHORT G_M42416_IG16
;; size=4 bbWeight=1 PerfScore 2.00
-G_M42416_IG18: ; bbWeight=0.50, gcrefRegs=0680 {r7 r9 r10}, byrefRegs=0000 {}, byref, isz
+G_M42416_IG18: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0680 {r7 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r5]
- ; byrRegs -[r6]
- ldrb lr, [sp+0x78] // [V03 arg3]
- cmp lr, 1
+ ; GC ptr vars -{V08}
+ ldrb r5, [sp+0x78] // [V03 arg3]
+ cmp r5, 1
bne SHORT G_M42416_IG20
- ;; size=10 bbWeight=0.50 PerfScore 1.50
+ ;; size=8 bbWeight=0.50 PerfScore 1.50
G_M42416_IG19: ; bbWeight=0.50, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r9-r10]
ldr r3, [sp+0x38] // [V09 loc5]
cmp r3, r8
- bhs G_M42416_IG40
- mov lr, 20
- mul r3, r3, lr
+ bhs G_M42416_IG41
+ movs r1, 20
+ mul r3, r3, r1
add r1, r3, 8
adds r1, r7, r1
; byrRegs +[r1]
ldr r6, [sp+0x44] // [V02 arg2]
str r6, [r1+0x08]
- b SHORT G_M42416_IG37
- ;; size=28 bbWeight=0.50 PerfScore 5.00
+ b SHORT G_M42416_IG38
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
G_M42416_IG20: ; bbWeight=0.50, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r7] +[r9-r10]
; byrRegs -[r1]
- cmp lr, 2
- beq G_M42416_IG42
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ cmp r5, 2
+ beq G_M42416_IG43
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
G_M42416_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r9-r10]
movs r0, 0
@@ -326,29 +328,27 @@ G_M42416_IG22: ; bbWeight=0.50, epilog, nogc, extend
add sp, 8
bx lr
;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M42416_IG23: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0040 {r6}, gcvars, byref, isz
+G_M42416_IG23: ; bbWeight=4, gcVars=0000000000400000 {V08}, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r5 r7-r10]
- ; byrRegs +[r6]
+ ; GC ptr vars +{V08}
ldr r1, [r7+0x04]
- mov r0, r1
- str r0, [sp+0x24] // [V50 cse6]
- cmp r0, r3
- bls SHORT G_M42416_IG28
+ mov lr, r1
+ str lr, [sp+0x24] // [V50 cse6]
+ cmp lr, r3
+ bls SHORT G_M42416_IG29
movs r1, 20
str r3, [sp+0x38] // [V09 loc5]
mul r1, r3, r1
- add lr, r1, 8
- str lr, [sp+0x28] // [V45 cse1]
- ldr r1, [r7+lr]
+ add r0, r1, 8
+ str r0, [sp+0x28] // [V45 cse1]
+ ldr r1, [r7+r0]
cmp r1, r4
- bne SHORT G_M42416_IG27
- ;; size=34 bbWeight=4 PerfScore 52.00
-G_M42416_IG24: ; bbWeight=2, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0040 {r6}, byref
- str r5, [sp+0x0C] // [V00 this]
- ; GC ptr vars +{V00}
- add r1, r7, lr
+ bne SHORT G_M42416_IG28
+ ;; size=32 bbWeight=4 PerfScore 52.00
+G_M42416_IG24: ; bbWeight=2, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref
+ adds r1, r7, r0
; byrRegs +[r1]
- ;; size=6 bbWeight=2 PerfScore 4.00
+ ;; size=2 bbWeight=2 PerfScore 2.00
G_M42416_IG25: ; bbWeight=2, nogc, extend
ldr r2, [r1+0x0C]
str r2, [sp+0x30] // [V43 tmp30]
@@ -369,60 +369,58 @@ G_M42416_IG26: ; bbWeight=2, isz, extend
; gcrRegs +[r0]
movw r4, 0xd1ff
movt r4, 0xd1ff
- ldr r5, [r4]
- ; gcrRegs -[r5]
- blx r5 // <unknown method>
+ ldr r6, [r4]
+ blx r6 // <unknown method>
; gcrRegs -[r0-r3]
; gcr arg pop 0
cmp r0, 0
- ldr r5, [sp+0x0C] // [V00 this]
- ; gcrRegs +[r5]
- ldr lr, [sp+0x28] // [V45 cse1]
- bne SHORT G_M42416_IG29
- ;; size=34 bbWeight=2 PerfScore 26.00
-G_M42416_IG27: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0040 {r6}, gcvars, byref, isz
- ; GC ptr vars -{V00}
- add r1, r7, lr
- ; byrRegs +[r1]
- ldr r3, [r1+0x04]
- mov r1, r3
- ; byrRegs -[r1]
+ ldr r0, [sp+0x28] // [V45 cse1]
+ ldr r4, [sp+0x40] // [V06 loc2]
+ bne SHORT G_M42416_IG30
+ ;; size=32 bbWeight=2 PerfScore 26.00
+G_M42416_IG27: ; bbWeight=4, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+ adds r0, r7, r0
+ ; byrRegs +[r0]
+ ldr r3, [r0+0x04]
ldr r12, [sp+0x3C] // [V07 loc3]
add r12, r12, 1
- ldr r0, [sp+0x24] // [V50 cse6]
- cmp r0, r12
+ ldr lr, [sp+0x24] // [V50 cse6]
+ cmp lr, r12
+ blo G_M42416_IG42
str r12, [sp+0x3C] // [V07 loc3]
- mov r3, r1
- ldr r4, [sp+0x40] // [V06 loc2]
- blo G_M42416_IG41
b SHORT G_M42416_IG23
- ;; size=34 bbWeight=4 PerfScore 48.00
-G_M42416_IG28: ; bbWeight=2, gcrefRegs=00A0 {r5 r7}, byrefRegs=0040 {r6}, byref, isz
+ ;; size=28 bbWeight=4 PerfScore 36.00
+G_M42416_IG28: ; bbWeight=2, gcrefRegs=07A0 {r5 r7 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[r0]
+ ldr r4, [sp+0x40] // [V06 loc2]
...
-2 (-1.75%) : 25932.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -72,9 +72,8 @@ G_M21922_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs +[r3]
ldr r2, [r3+0x04]
cmp r2, -1
- bge SHORT G_M21922_IG07
- b SHORT G_M21922_IG03
- ;; size=36 bbWeight=2 PerfScore 32.00
+ blt SHORT G_M21922_IG03
+ ;; size=34 bbWeight=2 PerfScore 30.00
G_M21922_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
ldr r3, [r3+0x08]
; byrRegs -[r3]
@@ -100,7 +99,7 @@ G_M21922_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-; Total bytes of code 114, prolog size 6, PerfScore 85.00, instruction count 48, allocated bytes for code 114 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
+; Total bytes of code 112, prolog size 6, PerfScore 83.00, instruction count 47, allocated bytes for code 112 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 57 (0x00039) Actual length = 114 (0x000072)
+ Function Length : 56 (0x00038) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+6.19%) : 40364.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (Tier0-FullOpts)
@@ -9,54 +9,54 @@
; Final local variable assignments
;
; V00 this [V00,T12] ( 9, 6 ) ref -> r5 this class-hnd single-def <System.Collections.Generic.Dictionary`2[ulong,System.__Canon]>
-; V01 arg1 [V01 ] ( 10, 12 ) long -> [sp+0x18] ld-addr-op single-def
-; V02 loc0 [V02,T00] ( 10, 29 ) byref -> r7
+; V01 arg1 [V01 ] ( 10, 12 ) long -> [sp+0x20] ld-addr-op single-def
+; V02 loc0 [V02,T00] ( 10, 29 ) byref -> [sp+0x0C]
; V03 loc1 [V03,T19] ( 3, 2 ) byref -> r0
; V04 loc2 [V04,T16] ( 4, 3.50) ref -> r6 class-hnd single-def <<unknown class>>
-; V05 loc3 [V05,T14] ( 3, 5 ) int -> r6
-; V06 loc4 [V06,T01] ( 6, 13.50) int -> r0
-; V07 loc5 [V07,T13] ( 3, 5 ) ref -> r2 class-hnd exact single-def <<unknown class>>
-; V08 loc6 [V08,T03] ( 4, 12.50) int -> r3
-; V09 loc7 [V09,T15] ( 3, 5 ) int -> r8
-; V10 loc8 [V10,T02] ( 6, 13.50) int -> r7
+; V05 loc3 [V05,T14] ( 3, 5 ) int -> r7
+; V06 loc4 [V06,T01] ( 6, 13.50) int -> r6
+; V07 loc5 [V07,T13] ( 3, 5 ) ref -> r8 class-hnd exact single-def <<unknown class>>
+; V08 loc6 [V08,T03] ( 4, 12.50) int -> r9
+; V09 loc7 [V09,T15] ( 3, 5 ) int -> r7
+; V10 loc8 [V10,T02] ( 6, 13.50) int -> r8
; V11 loc9 [V11,T10] ( 3, 8.50) ref -> r5 class-hnd exact single-def <<unknown class>>
; V12 loc10 [V12,T04] ( 4, 12.50) int -> r9
; V13 OutArgs [V13 ] ( 1, 1 ) struct ( 8) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp2 [V15 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V16 tmp3 [V16,T20] ( 3, 1.50) ref -> r4 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V16 tmp3 [V16,T20] ( 3, 1.50) ref -> r6 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V17 tmp4 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V18 tmp5 [V18 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
;* V19 tmp6 [V19 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V20 tmp7 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp8 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp9 [V22 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V23 tmp10 [V23,T21] ( 3, 1.50) ref -> r7 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V23 tmp10 [V23,T21] ( 3, 1.50) ref -> r4 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V24 tmp11 [V24,T17] ( 3, 3 ) int -> r2 "index expr"
; V25 tmp12 [V25,T18] ( 3, 3 ) int -> r0 "index expr"
-; V26 cse0 [V26,T22] ( 3, 1.50) int -> r7 "CSE - moderate"
-; V27 cse1 [V27,T23] ( 3, 1.50) int -> r4 "CSE - moderate"
-; V28 cse2 [V28,T11] ( 3, 8.50) int -> r1 hoist "CSE - aggressive"
+; V26 cse0 [V26,T22] ( 3, 1.50) int -> r4 "CSE - moderate"
+; V27 cse1 [V27,T23] ( 3, 1.50) int -> r8 "CSE - moderate"
+; V28 cse2 [V28,T11] ( 3, 8.50) int -> r10 hoist "CSE - aggressive"
; V29 cse3 [V29,T07] ( 3, 12 ) int -> r10 "CSE - aggressive"
-; V30 rat0 [V30,T08] ( 6, 7 ) int -> [sp+0x18] do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
-; V31 rat1 [V31,T09] ( 6, 7 ) int -> [sp+0x1C] do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
-; V32 rat2 [V32 ] ( 1, 1 ) long -> [sp+0x10] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V30 rat0 [V30,T08] ( 6, 7 ) int -> [sp+0x20] do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
+; V31 rat1 [V31,T09] ( 6, 7 ) int -> [sp+0x24] do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
+; V32 rat2 [V32 ] ( 1, 1 ) long -> [sp+0x18] multireg-ret "ReplaceWithLclVar is creating a new local variable"
; V33 rat3 [V33,T24] ( 2, 1.50) int -> r0 "field V32.lo (fldOffset=0x0)" P-INDEP
; V34 rat4 [V34,T25] ( 2, 1.50) int -> r1 "field V32.hi (fldOffset=0x4)" P-INDEP
; V35 rat5 [V35,T05] ( 3, 12 ) byref -> r0 "ReplaceWithLclVar is creating a new local variable"
-; V36 rat6 [V36 ] ( 1, 1 ) long -> [sp+0x08] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V36 rat6 [V36 ] ( 1, 1 ) long -> [sp+0x10] multireg-ret "ReplaceWithLclVar is creating a new local variable"
; V37 rat7 [V37,T26] ( 2, 1.50) int -> r0 "field V36.lo (fldOffset=0x0)" P-INDEP
; V38 rat8 [V38,T27] ( 2, 1.50) int -> r1 "field V36.hi (fldOffset=0x4)" P-INDEP
; V39 rat9 [V39,T06] ( 3, 12 ) byref -> r3 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 36
+; Lcl frame size = 44
G_M35514_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
- sub sp, 36
- add r11, sp, 64
- str r2, [sp+0x18]
- str r3, [sp+0x1C]
+ sub sp, 44
+ add r11, sp, 72
+ str r2, [sp+0x20] // [V01 arg1]
+ str r3, [sp+0x24] // [V01 arg1+0x04]
mov r5, r0
; gcrRegs +[r5]
;; size=16 bbWeight=1 PerfScore 6.00
@@ -64,7 +64,7 @@ G_M35514_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
ldr r0, [r5+0x04]
; gcrRegs +[r0]
cmp r0, 0
- beq G_M35514_IG18
+ beq G_M35514_IG20
;; size=8 bbWeight=1 PerfScore 3.00
G_M35514_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
@@ -88,16 +88,14 @@ G_M35514_IG04: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
; gcrRegs +[r6]
cmp r6, 0
bne SHORT G_M35514_IG10
- ldr r2, [sp+0x18]
- ldr r3, [sp+0x1C]
- eor r6, r2, r3
- ; gcrRegs -[r6]
- ldr r4, [r5+0x04]
- ; gcrRegs +[r4]
- ldr r7, [r4+0x04]
- mov r2, r7
+ ldr r2, [sp+0x20]
+ ldr r3, [sp+0x24]
+ eor r7, r2, r3
+ ldr r6, [r5+0x04]
+ ldr r4, [r6+0x04]
+ mov r2, r4
movs r3, 0
- mov r0, r6
+ mov r0, r7
movs r1, 0
movw lr, 0xd1ff
movt lr, 0xd1ff
@@ -106,80 +104,81 @@ G_M35514_IG04: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
tst r0, r0
bmi SHORT G_M35514_IG05
tst r1, r1
- bne SHORT G_M35514_IG19
+ bne G_M35514_IG21
b SHORT G_M35514_IG06
- ;; size=46 bbWeight=0.50 PerfScore 10.00
-G_M35514_IG05: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0.50 PerfScore 10.00
+G_M35514_IG05: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
cmp r1, -1
- bne SHORT G_M35514_IG19
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35514_IG06: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- cmp r0, r7
- bhs SHORT G_M35514_IG20
- add r2, r4, 8
+ bne G_M35514_IG21
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M35514_IG06: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+ cmp r0, r4
+ bhs G_M35514_IG22
+ add r2, r6, 8
; byrRegs +[r2]
lsls r0, r0, 2
- ldr r0, [r2+r0]
- ldr r2, [r5+0x08]
- ; gcrRegs +[r2]
+ ldr r6, [r2+r0]
+ ; gcrRegs -[r6]
+ ldr r8, [r5+0x08]
+ ; gcrRegs +[r8]
+ mov r9, 0
+ subs r6, r6, 1
+ ldr r10, [r8+0x04]
+ ;; size=28 bbWeight=0.50 PerfScore 4.50
+G_M35514_IG07: ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r5]
; byrRegs -[r2]
- movs r3, 0
- subs r0, r0, 1
- ldr r1, [r2+0x04]
- ;; size=20 bbWeight=0.50 PerfScore 4.50
-G_M35514_IG07: ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r4-r5]
- cmp r1, r0
- bls SHORT G_M35514_IG18
- mov lr, 24
- mul r0, r0, lr
+ cmp r10, r6
+ bls SHORT G_M35514_IG20
+ movs r0, 24
+ mul r0, r6, r0
adds r0, 8
- adds r7, r2, r0
- ; byrRegs +[r7]
- ldr r0, [r7+0x0C]
- cmp r0, r6
+ add r5, r8, r0
+ ; byrRegs +[r5]
+ ldr r0, [r5+0x0C]
+ cmp r0, r7
bne SHORT G_M35514_IG09
;; size=22 bbWeight=4 PerfScore 36.00
-G_M35514_IG08: ; bbWeight=2, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
- mov r0, r7
+G_M35514_IG08: ; bbWeight=2, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+ mov r0, r5
; byrRegs +[r0]
- ldr lr, [r0]
+ ldr r2, [r0]
ldr r0, [r0+0x04]
; byrRegs -[r0]
- ldr r12, [sp+0x18]
- ldr r4, [sp+0x1C]
- eor lr, lr, r12
- eors r0, r4
- orrs r0, lr, r0
- beq SHORT G_M35514_IG16
- ;; size=26 bbWeight=2 PerfScore 18.00
-G_M35514_IG09: ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0080 {r7}, byref, isz
- ldr r0, [r7+0x10]
- adds r3, r3, 1
- cmp r1, r3
- blo SHORT G_M35514_IG21
+ ldr r3, [sp+0x20]
+ ldr r1, [sp+0x24]
+ eors r2, r3
+ eors r0, r1
+ orrs r0, r2
+ beq SHORT G_M35514_IG18
+ ;; size=18 bbWeight=2 PerfScore 18.00
+G_M35514_IG09: ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0020 {r5}, byref, isz
+ ldr r6, [r5+0x10]
+ add r9, r9, 1
+ cmp r10, r9
+ blo SHORT G_M35514_IG23
b SHORT G_M35514_IG07
- ;; size=10 bbWeight=4 PerfScore 20.00
+ ;; size=12 bbWeight=4 PerfScore 20.00
G_M35514_IG10: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r2] +[r5-r6]
- ; byrRegs -[r7]
+ ; gcrRegs -[r8] +[r5-r6]
+ ; byrRegs -[r5]
mov r0, r6
; gcrRegs +[r0]
- ldr r2, [sp+0x18]
- ldr r3, [sp+0x1C]
+ ldr r2, [sp+0x20]
+ ldr r3, [sp+0x24]
movw r4, 0xd1ff
movt r4, 0xd1ff
ldr r1, [r4]
blx r1 // <unknown method>
; gcrRegs -[r0]
; gcr arg pop 0
- mov r8, r0
- ldr r7, [r5+0x04]
- ; gcrRegs +[r7]
- ldr r4, [r7+0x04]
- mov r2, r4
+ mov r7, r0
+ ldr r4, [r5+0x04]
+ ; gcrRegs +[r4]
+ ldr r8, [r4+0x04]
+ mov r2, r8
movs r3, 0
- mov r0, r8
+ mov r0, r7
movs r1, 0
movw lr, 0xd1ff
movt lr, 0xd1ff
@@ -188,46 +187,51 @@ G_M35514_IG10: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
tst r0, r0
bmi SHORT G_M35514_IG11
tst r1, r1
- bne SHORT G_M35514_IG19
+ bne SHORT G_M35514_IG21
...
+12 (+8.82%) : 45371.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableArray():System.Canon:this (Tier0-FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T01] ( 5, 5 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T06] ( 3, 4 ) ref -> r5 ld-addr-op class-hnd <System.__Canon>
; V02 loc1 [V02 ] ( 2, 2 ) struct ( 4) [sp+0x08] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
; V03 loc2 [V03 ] ( 8, 33 ) struct ( 8) [sp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]>
@@ -26,9 +26,9 @@
; V15 rat0 [V15,T04] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
; V16 rat1 [V16,T07] ( 3, 4 ) int -> r2 "runtime lookup"
; V17 rat2 [V17,T02] ( 3, 5.60) int -> r2 "fgMakeTemp is creating a new local variable"
-;* V18 rat3 [V18,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V18 rat3 [V18,T05] ( 2, 4 ) int -> r0 "Spilling to split statement for tree"
;* V19 rat4 [V19,T08] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V20 rat5 [V20,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V20 rat5 [V20,T03] ( 2, 4 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -78,8 +78,14 @@ G_M57349_IG05: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
ldr r3, [r3]
blx r3 // System.Collections.Immutable.ImmutableArray`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableArray`1+Enumerator[System.__Canon]:this
; gcr arg pop 0
+ ldr r0, [r4]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x14]
+ cmp r0, 0
+ bne SHORT G_M57349_IG07
b SHORT G_M57349_IG07
- ;; size=18 bbWeight=1 PerfScore 7.00
+ ;; size=30 bbWeight=1 PerfScore 13.00
G_M57349_IG06: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r5]
ldr r0, [sp+0x04] // [V12 tmp7]
@@ -128,7 +134,7 @@ G_M57349_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 24, PerfScore 106.00, instruction count 56, allocated bytes for code 136 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 148, prolog size 24, PerfScore 112.00, instruction count 62, allocated bytes for code 148 (MethodHash=874a1ffa) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -140,7 +146,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 68 (0x00044) Actual length = 136 (0x000088)
+ Function Length : 74 (0x0004a) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+20 (+12.35%) : 63411.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (Tier0-FullOpts)
@@ -8,10 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 3, 3 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T02] ( 4, 4 ) ref -> r4 this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T05] ( 3, 4 ) ref -> r5 ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-; V03 loc2 [V03 ] ( 10, 31 ) struct ( 8) [sp+0x00] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
+; V03 loc2 [V03 ] ( 10, 31 ) struct ( 8) [sp+0x04] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.__Canon>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
@@ -20,44 +20,52 @@
;* V09 tmp4 [V09,T07] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V10 tmp5 [V10,T01] ( 2, 8 ) ref -> r0 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V11 tmp6 [V11,T00] ( 2, 32 ) ref -> r0 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
-; V12 tmp7 [V12 ] ( 2, 3 ) ref -> [sp+0x00] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
-; V13 tmp8 [V13 ] ( 9, 29 ) ref -> [sp+0x04] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
+; V12 tmp7 [V12 ] ( 2, 3 ) ref -> [sp+0x04] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
+; V13 tmp8 [V13 ] ( 9, 29 ) ref -> [sp+0x08] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
;* V14 cse0 [V14,T08] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-;* V15 rat0 [V15,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V15 rat0 [V15,T04] ( 2, 4 ) int -> r0 "Spilling to split statement for tree"
;* V16 rat1 [V16,T06] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V17 rat2 [V17,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V17 rat2 [V17,T03] ( 2, 4 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M64146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,r5,r11,lr}
- add r11, sp, 16
+ push {r4,r5,r11,lr}
+ sub sp, 16
+ add r11, sp, 24
movs r1, 0
- str r1, [sp] // [V03 loc2]
- str r1, [sp+0x04] // [V03 loc2+0x04]
+ str r1, [sp+0x04] // [V03 loc2]
+ str r1, [sp+0x08] // [V03 loc2+0x04]
+ str r0, [r11-0x0C]
mov r4, r0
; gcrRegs +[r4]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M64146_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
movs r5, 0
ldr r0, [r4+0x50]
; gcrRegs +[r0]
- add r1, sp, 0
+ add r1, sp, 4
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
ldr r2, [r0]
blx r3 // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this
; gcrRegs -[r0] +[r5]
+ ldr r0, [r4]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x10]
+ cmp r0, 0
+ bne SHORT G_M64146_IG04
b SHORT G_M64146_IG04
- ;; size=22 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 15.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r5]
- ldr r0, [sp+0x04]
+ ldr r0, [sp+0x08]
; gcrRegs +[r0]
cmp r0, 0
beq SHORT G_M64146_IG10
- ldr r0, [sp+0x04]
+ ldr r0, [sp+0x08]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -68,36 +76,36 @@ G_M64146_IG03: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
;; size=24 bbWeight=2 PerfScore 20.00
G_M64146_IG04: ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp+0x04]
+ ldr r0, [sp+0x08]
; gcrRegs +[r0]
cmp r0, 0
bne SHORT G_M64146_IG06
;; size=6 bbWeight=8 PerfScore 24.00
G_M64146_IG05: ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp]
+ ldr r0, [sp+0x04]
; gcrRegs +[r0]
- str r0, [sp+0x04] // [V13 tmp8]
+ str r0, [sp+0x08] // [V13 tmp8]
b SHORT G_M64146_IG07
;; size=6 bbWeight=2 PerfScore 6.00
G_M64146_IG06: ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp+0x04] // [V13 tmp8]
+ ldr r0, [sp+0x08] // [V13 tmp8]
; gcrRegs +[r0]
ldr r0, [r0+0x08]
cmp r0, 0
beq SHORT G_M64146_IG07
- ldr r0, [sp+0x04] // [V13 tmp8]
+ ldr r0, [sp+0x08] // [V13 tmp8]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
ldr r2, [r0]
blx r3 // System.Collections.Immutable.ImmutableStack`1[System.__Canon]:Pop():System.Collections.Immutable.ImmutableStack`1[System.__Canon]:this
- str r0, [sp+0x04] // [V13 tmp8]
+ str r0, [sp+0x08] // [V13 tmp8]
;; size=26 bbWeight=2 PerfScore 22.00
G_M64146_IG07: ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r0, [sp+0x04] // [V13 tmp8]
+ ldr r0, [sp+0x08] // [V13 tmp8]
; gcrRegs +[r0]
ldr r0, [r0+0x08]
cmp r0, 0
@@ -109,8 +117,9 @@ G_M64146_IG08: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
G_M64146_IG09: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,r5,r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ add sp, 16
+ pop {r4,r5,r11,pc}
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M64146_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0 r5]
movw r0, 0xd1ff
@@ -136,7 +145,7 @@ G_M64146_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=48 bbWeight=0 PerfScore 0.00
-; Total bytes of code 162, prolog size 14, PerfScore 121.00, instruction count 64, allocated bytes for code 162 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 182, prolog size 20, PerfScore 130.00, instruction count 73, allocated bytes for code 182 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -148,7 +157,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 81 (0x00051) Actual length = 162 (0x0000a2)
+ Function Length : 91 (0x0005b) Actual length = 182 (0x0000b6)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -156,7 +165,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 3C pop {r2,r3,r4,r5,r11,lr} ; opsize 32
- FF end
+ 04 add sp, sp, #16 ; opsize 16
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end
coreclr_tests.run.linux.arm.checked.mch
-14 (-10.45%) : 167706.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
@@ -11,103 +11,105 @@
;
; V00 arg0 [V00,T01] ( 8, 4.78) int -> r0 single-def
; V01 arg1 [V01,T00] ( 7, 5.11) ref -> r1 class-hnd <System.Object>
-; V02 loc0 [V02,T04] ( 4, 3.11) int -> r3
-; V03 loc1 [V03,T02] ( 10, 6 ) int -> r2
-; V04 loc2 [V04,T03] ( 10, 5.78) int -> lr
+; V02 loc0 [V02,T04] ( 4, 3.11) int -> r4
+; V03 loc1 [V03,T02] ( 10, 6 ) int -> r5
+; V04 loc2 [V04,T03] ( 10, 5.78) int -> r6
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
-G_M10596_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+G_M10596_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M10596_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1]
cmp r1, 0
- beq SHORT G_M10596_IG07
- ldr r3, [r1]
- ldrh r2, [r3+0x0E]
- cmp r2, 0
beq SHORT G_M10596_IG06
- ldr lr, [r3+0x28]
- cmp r2, 4
- blt SHORT G_M10596_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M10596_IG03: ; bbWeight=0, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr r12, [lr]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x04]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x08]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x0C]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- add lr, lr, 16
- subs r2, r2, 4
- cmp r2, 4
- bge SHORT G_M10596_IG03
- cmp r2, 0
+ ldr r4, [r1]
+ ldrh r5, [r4+0x0E]
+ cmp r5, 0
+ beq SHORT G_M10596_IG05
+ ldr r6, [r4+0x28]
+ cmp r5, 4
+ bge SHORT G_M10596_IG10
+ ;; size=18 bbWeight=1 PerfScore 9.00
+G_M10596_IG03: ; bbWeight=2.78, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r6]
+ cmp r3, r0
beq SHORT G_M10596_IG06
- ;; size=46 bbWeight=0 PerfScore 0.00
-G_M10596_IG04: ; bbWeight=2.78, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr r12, [lr]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ;; size=8 bbWeight=2.78 PerfScore 8.33
-G_M10596_IG05: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- add lr, lr, 4
- subs r2, r2, 1
- cmp r2, 0
- bgt SHORT G_M10596_IG04
- ;; size=10 bbWeight=1 PerfScore 4.00
-G_M10596_IG06: ; bbWeight=0.11, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr lr, [r3]
+ ;; size=6 bbWeight=2.78 PerfScore 8.33
+G_M10596_IG04: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ adds r6, r6, 4
+ subs r5, r5, 1
+ cmp r5, 0
+ bgt SHORT G_M10596_IG03
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M10596_IG05: ; bbWeight=0.11, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r4]
movw r2, 0xd1ff
movt r2, 0xd1ff
- ands r3, lr, r2
+ ands r3, r2
cmp r3, 0
- bne SHORT G_M10596_IG09
+ bne SHORT G_M10596_IG08
movs r1, 0
; gcrRegs -[r1]
- ;; size=22 bbWeight=0.11 PerfScore 0.78
-G_M10596_IG07: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+ ;; size=18 bbWeight=0.11 PerfScore 0.78
+G_M10596_IG06: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
; gcrRegs +[r1]
mov r0, r1
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M10596_IG08: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M10596_IG07: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M10596_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
+G_M10596_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
;; size=10 bbWeight=0 PerfScore 0.00
-G_M10596_IG10: ; bbWeight=0, epilog, nogc, extend
- pop {r11,lr}
+G_M10596_IG09: ; bbWeight=0, epilog, nogc, extend
+ add sp, 4
+ pop {r4,r5,r6,r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M10596_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr r3, [r6]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x04]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x08]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x0C]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ adds r6, 16
+ subs r5, r5, 4
+ cmp r5, 4
+ bge SHORT G_M10596_IG10
+ cmp r5, 0
+ beq SHORT G_M10596_IG05
+ b SHORT G_M10596_IG03
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 134, prolog size 6, PerfScore 26.11, instruction count 50, allocated bytes for code 134 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 120, prolog size 8, PerfScore 26.11, instruction count 52, allocated bytes for code 120 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2
F bit : 0
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 134 (0x000086)
+ Function Length : 60 (0x0003c) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,10 +118,14 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
- Epilog Start Index : 0 (0x00)
+ Epilog Start Index : 3 (0x03)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ FF end
+ ---- Epilog start at index 3 ----
+ 01 add sp, sp, #4 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
-14 (-10.45%) : 213435.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
@@ -11,103 +11,105 @@
;
; V00 arg0 [V00,T01] ( 8, 10.33) int -> r0 single-def
; V01 arg1 [V01,T03] ( 7, 6 ) ref -> r1 class-hnd <System.Object>
-; V02 loc0 [V02,T04] ( 4, 4 ) int -> r3
-; V03 loc1 [V03,T02] ( 10, 9 ) int -> r2
-; V04 loc2 [V04,T00] ( 10, 13.33) int -> lr
+; V02 loc0 [V02,T04] ( 4, 4 ) int -> r4
+; V03 loc1 [V03,T02] ( 10, 9 ) int -> r5
+; V04 loc2 [V04,T00] ( 10, 13.33) int -> r6
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
-G_M10596_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+G_M10596_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M10596_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1]
cmp r1, 0
- beq SHORT G_M10596_IG07
- ldr r3, [r1]
- ldrh r2, [r3+0x0E]
- cmp r2, 0
beq SHORT G_M10596_IG06
- ldr lr, [r3+0x28]
- cmp r2, 4
- blt SHORT G_M10596_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M10596_IG03: ; bbWeight=0, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr r12, [lr]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x04]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x08]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x0C]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- add lr, lr, 16
- subs r2, r2, 4
- cmp r2, 4
- bge SHORT G_M10596_IG03
- cmp r2, 0
+ ldr r4, [r1]
+ ldrh r5, [r4+0x0E]
+ cmp r5, 0
+ beq SHORT G_M10596_IG05
+ ldr r6, [r4+0x28]
+ cmp r5, 4
+ bge SHORT G_M10596_IG10
+ ;; size=18 bbWeight=1 PerfScore 9.00
+G_M10596_IG03: ; bbWeight=8.33, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r6]
+ cmp r3, r0
beq SHORT G_M10596_IG06
- ;; size=46 bbWeight=0 PerfScore 0.00
-G_M10596_IG04: ; bbWeight=8.33, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr r12, [lr]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ;; size=8 bbWeight=8.33 PerfScore 25.00
-G_M10596_IG05: ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- add lr, lr, 4
- subs r2, r2, 1
- cmp r2, 0
- bgt SHORT G_M10596_IG04
- ;; size=10 bbWeight=2 PerfScore 8.00
-G_M10596_IG06: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr lr, [r3]
+ ;; size=6 bbWeight=8.33 PerfScore 25.00
+G_M10596_IG04: ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ adds r6, r6, 4
+ subs r5, r5, 1
+ cmp r5, 0
+ bgt SHORT G_M10596_IG03
+ ;; size=8 bbWeight=2 PerfScore 8.00
+G_M10596_IG05: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r4]
movw r2, 0xd1ff
movt r2, 0xd1ff
- ands r3, lr, r2
+ ands r3, r2
cmp r3, 0
- bne SHORT G_M10596_IG09
+ bne SHORT G_M10596_IG08
movs r1, 0
; gcrRegs -[r1]
- ;; size=22 bbWeight=1 PerfScore 7.00
-G_M10596_IG07: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+ ;; size=18 bbWeight=1 PerfScore 7.00
+G_M10596_IG06: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
; gcrRegs +[r1]
mov r0, r1
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M10596_IG08: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M10596_IG07: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M10596_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
+G_M10596_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
;; size=10 bbWeight=0 PerfScore 0.00
-G_M10596_IG10: ; bbWeight=0, epilog, nogc, extend
- pop {r11,lr}
+G_M10596_IG09: ; bbWeight=0, epilog, nogc, extend
+ add sp, 4
+ pop {r4,r5,r6,r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M10596_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr r3, [r6]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x04]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x08]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x0C]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ adds r6, 16
+ subs r5, r5, 4
+ cmp r5, 4
+ bge SHORT G_M10596_IG10
+ cmp r5, 0
+ beq SHORT G_M10596_IG05
+ b SHORT G_M10596_IG03
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 134, prolog size 6, PerfScore 53.00, instruction count 50, allocated bytes for code 134 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 120, prolog size 8, PerfScore 53.00, instruction count 52, allocated bytes for code 120 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2
F bit : 0
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 134 (0x000086)
+ Function Length : 60 (0x0003c) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,10 +118,14 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
- Epilog Start Index : 0 (0x00)
+ Epilog Start Index : 3 (0x03)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ FF end
+ ---- Epilog start at index 3 ----
+ 01 add sp, sp, #4 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
-14 (-10.45%) : 139916.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
@@ -11,103 +11,105 @@
;
; V00 arg0 [V00,T01] ( 8,102 ) int -> r0 single-def
; V01 arg1 [V01,T03] ( 7, 6 ) ref -> r1 class-hnd <System.Object>
-; V02 loc0 [V02,T04] ( 4, 4 ) int -> r3
-; V03 loc1 [V03,T02] ( 10, 9 ) int -> r2
-; V04 loc2 [V04,T00] ( 10,105 ) int -> lr
+; V02 loc0 [V02,T04] ( 4, 4 ) int -> r4
+; V03 loc1 [V03,T02] ( 10, 9 ) int -> r5
+; V04 loc2 [V04,T00] ( 10,105 ) int -> r6
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
-G_M10596_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+G_M10596_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push {r3,r4,r5,r6,r11,lr}
+ add r11, sp, 16
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M10596_IG02: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1]
cmp r1, 0
- beq SHORT G_M10596_IG07
- ldr r3, [r1]
- ldrh r2, [r3+0x0E]
- cmp r2, 0
beq SHORT G_M10596_IG06
- ldr lr, [r3+0x28]
- cmp r2, 4
- blt SHORT G_M10596_IG04
- ;; size=20 bbWeight=1 PerfScore 9.00
-G_M10596_IG03: ; bbWeight=0, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr r12, [lr]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x04]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x08]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ldr r12, [lr+0x0C]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- add lr, lr, 16
- subs r2, r2, 4
- cmp r2, 4
- bge SHORT G_M10596_IG03
- cmp r2, 0
+ ldr r4, [r1]
+ ldrh r5, [r4+0x0E]
+ cmp r5, 0
+ beq SHORT G_M10596_IG05
+ ldr r6, [r4+0x28]
+ cmp r5, 4
+ bge SHORT G_M10596_IG10
+ ;; size=18 bbWeight=1 PerfScore 9.00
+G_M10596_IG03: ; bbWeight=100, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r6]
+ cmp r3, r0
beq SHORT G_M10596_IG06
- ;; size=46 bbWeight=0 PerfScore 0.00
-G_M10596_IG04: ; bbWeight=100, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr r12, [lr]
- cmp r12, r0
- beq SHORT G_M10596_IG07
- ;; size=8 bbWeight=100 PerfScore 300.00
-G_M10596_IG05: ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- add lr, lr, 4
- subs r2, r2, 1
- cmp r2, 0
- bgt SHORT G_M10596_IG04
- ;; size=10 bbWeight=2 PerfScore 8.00
-G_M10596_IG06: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
- ldr lr, [r3]
+ ;; size=6 bbWeight=100 PerfScore 300.00
+G_M10596_IG04: ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ adds r6, r6, 4
+ subs r5, r5, 1
+ cmp r5, 0
+ bgt SHORT G_M10596_IG03
+ ;; size=8 bbWeight=2 PerfScore 8.00
+G_M10596_IG05: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r4]
movw r2, 0xd1ff
movt r2, 0xd1ff
- ands r3, lr, r2
+ ands r3, r2
cmp r3, 0
- bne SHORT G_M10596_IG09
+ bne SHORT G_M10596_IG08
movs r1, 0
; gcrRegs -[r1]
- ;; size=22 bbWeight=1 PerfScore 7.00
-G_M10596_IG07: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+ ;; size=18 bbWeight=1 PerfScore 7.00
+G_M10596_IG06: ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
; gcrRegs +[r1]
mov r0, r1
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M10596_IG08: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
+G_M10596_IG07: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,r4,r5,r6,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M10596_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
+G_M10596_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
;; size=10 bbWeight=0 PerfScore 0.00
-G_M10596_IG10: ; bbWeight=0, epilog, nogc, extend
- pop {r11,lr}
+G_M10596_IG09: ; bbWeight=0, epilog, nogc, extend
+ add sp, 4
+ pop {r4,r5,r6,r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
+G_M10596_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr r3, [r6]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x04]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x08]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ ldr r3, [r6+0x0C]
+ cmp r3, r0
+ beq SHORT G_M10596_IG06
+ adds r6, 16
+ subs r5, r5, 4
+ cmp r5, 4
+ bge SHORT G_M10596_IG10
+ cmp r5, 0
+ beq SHORT G_M10596_IG05
+ b SHORT G_M10596_IG03
+ ;; size=38 bbWeight=0 PerfScore 0.00
-; Total bytes of code 134, prolog size 6, PerfScore 328.00, instruction count 50, allocated bytes for code 134 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 120, prolog size 8, PerfScore 328.00, instruction count 52, allocated bytes for code 120 (MethodHash=701ad69b) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 2
F bit : 0
E bit : 0
X bit : 0
Vers : 0
- Function Length : 67 (0x00043) Actual length = 134 (0x000086)
+ Function Length : 60 (0x0003c) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,10 +118,14 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Condition : 14 (0xe) (always)
- Epilog Start Index : 0 (0x00)
+ Epilog Start Index : 3 (0x03)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ A8 78 pop {r3,r4,r5,r6,r11,lr} ; opsize 32
+ FF end
+ ---- Epilog start at index 3 ----
+ 01 add sp, sp, #4 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
FF end
FF end
+38 (+38.00%) : 424180.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
@@ -9,16 +9,16 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) byref -> zero-ref single-def
-; V01 arg1 [V01,T03] ( 3, 3 ) int -> r1 single-def
+; V01 arg1 [V01,T05] ( 3, 3 ) int -> r1 single-def
;* V02 arg2 [V02 ] ( 0, 0 ) byref -> zero-ref single-def
-; V03 arg3 [V03,T01] ( 4, 4 ) ref -> r3 class-hnd single-def <double[]>
+; V03 arg3 [V03,T03] ( 4, 4 ) ref -> r3 class-hnd single-def <double[]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T00] ( 2, 16 ) ref -> r0 class-hnd exact "NewObj constructor temp" <Test.AA>
-;* V06 cse0 [V06,T06] ( 0, 0 ) float -> zero-ref "CSE - aggressive"
-; V07 cse1 [V07,T02] ( 2, 2 ) double -> f16:f17 "CSE - aggressive"
-; V08 cse2 [V08,T04] ( 2, 5 ) float -> f18 hoist "CSE - aggressive"
-;* V09 cse3 [V09,T07] ( 0, 0 ) float -> zero-ref hoist "CSE - aggressive"
-; V10 cse4 [V10,T05] ( 2, 5 ) int -> r4 hoist "CSE - aggressive"
+; V05 tmp1 [V05,T01] ( 2, 16 ) ref -> r0 class-hnd exact "NewObj constructor temp" <Test.AA>
+; V06 cse0 [V06,T00] ( 4, 16 ) float -> f0 "CSE - aggressive"
+; V07 cse1 [V07,T04] ( 3, 6 ) double -> f16:f17 "CSE - aggressive"
+; V08 cse2 [V08,T02] ( 3, 9 ) float -> f18 hoist "CSE - aggressive"
+; V09 cse3 [V09,T06] ( 2, 5 ) float -> f19 hoist "CSE - aggressive"
+; V10 cse4 [V10,T07] ( 2, 5 ) int -> r4 hoist "CSE - aggressive"
;
; Lcl frame size = 0
@@ -43,7 +43,10 @@ G_M18129_IG02: ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byre
movw r0, 0xd1ff
movt r0, 0xd1ff
vmov.i2f s18, r0
- ;; size=44 bbWeight=1 PerfScore 14.00
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ vmov.i2f s19, r0
+ ;; size=56 bbWeight=1 PerfScore 17.00
G_M18129_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r3]
mov r0, r4
@@ -53,8 +56,15 @@ G_M18129_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r0]
; gcr arg pop 0
vstr s18, [r0+0x04]
+ vcvt.d2f s0, d8
+ vsub s8, s18, s0
+ vadd s0, s0, s0
+ vadd s0, s8, s0
+ vcmp s0, s19
+ vmrs APSR, FPSCR
+ beq SHORT G_M18129_IG03
b SHORT G_M18129_IG03
- ;; size=18 bbWeight=4 PerfScore 24.00
+ ;; size=44 bbWeight=4 PerfScore 52.00
G_M18129_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
movs r3, 0
@@ -72,7 +82,7 @@ G_M18129_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 12, PerfScore 45.00, instruction count 31, allocated bytes for code 100 (MethodHash=704ab92e) for method Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
+; Total bytes of code 138, prolog size 12, PerfScore 76.00, instruction count 41, allocated bytes for code 138 (MethodHash=704ab92e) for method Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
; ============================================================
Unwind Info:
@@ -84,7 +94,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 50 (0x00032) Actual length = 100 (0x000064)
+ Function Length : 69 (0x00045) Actual length = 138 (0x00008a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+30 (+39.47%) : 409273.dasm - Test10w250d.testout1:Func01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -8,47 +8,62 @@
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 3, 3 ) float -> [sp+0x04] spill-single-def
+; V00 loc0 [V00,T00] ( 5, 4 ) float -> f16 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
;* V03 loc3 [V03 ] ( 0, 0 ) float -> zero-ref
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T01] ( 2, 2 ) float -> f8 "CSE - aggressive"
+; V05 cse0 [V05,T01] ( 4, 3 ) float -> f8 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M28447_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r11,lr}
+ push {r11,lr}
+ vpush {d8-d8}
add r11, sp, 8
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M28447_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
- vstr s0, [sp+0x04]
+ vmov s16, s0
movw r0, 0xd1ff
movt r0, 0xd1ff
vmov.i2f s8, r0
- vcmp s0, s8
+ vcmp s16, s8
vmrs APSR, FPSCR
- bhi SHORT G_M28447_IG04
+ bhi SHORT G_M28447_IG07
;; size=38 bbWeight=1 PerfScore 11.00
-G_M28447_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r2,r3,r11,pc}
+G_M28447_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ vcmp s16, s8
+ vmrs APSR, FPSCR
+ blt SHORT G_M28447_IG06
+ ;; size=10 bbWeight=0.50 PerfScore 1.50
+G_M28447_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ vmov s0, s16
;; size=4 bbWeight=1 PerfScore 1.00
-G_M28447_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M28447_IG05: ; bbWeight=1, epilog, nogc, extend
+ vpop {d8-d8}
+ pop {r11,pc}
+ ;; size=8 bbWeight=1 PerfScore 2.00
+G_M28447_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ vcmp s16, s8
+ vmrs APSR, FPSCR
+ ble SHORT G_M28447_IG04
+ b SHORT G_M28447_IG04
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M28447_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- vldr s0, [sp+0x04] // [V00 loc0]
- b SHORT G_M28447_IG03
- ;; size=26 bbWeight=0.50 PerfScore 4.00
+ b SHORT G_M28447_IG04
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
-; Total bytes of code 76, prolog size 8, PerfScore 18.00, instruction count 22, allocated bytes for code 76 (MethodHash=2d4290e0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 106, prolog size 12, PerfScore 24.00, instruction count 31, allocated bytes for code 106 (MethodHash=2d4290e0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
@@ -60,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
+ Function Length : 53 (0x00035) Actual length = 106 (0x00006a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -68,7 +83,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 0C pop {r2,r3,r11,lr} ; opsize 32
- FF end
+ E0 vpop {d8} ; opsize 32
+ A8 00 pop {r11,lr} ; opsize 32
FF end
+40 (+250.00%) : 413157.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -2,48 +2,65 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
+; V00 loc0 [V00,T00] ( 4, 3.50) float -> f0 single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V02 cse0 [V02,T01] ( 3, 2.50) float -> f8 "CSE - aggressive"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M53663_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float
- ; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2f s8, r3
+ vcmp s0, s8
+ vmrs APSR, FPSCR
+ bhs SHORT G_M53663_IG04
+ ;; size=34 bbWeight=1 PerfScore 10.00
+G_M53663_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
+G_M53663_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ vcmp s0, s8
+ vmrs APSR, FPSCR
+ bne SHORT G_M53663_IG03
+ b SHORT G_M53663_IG03
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 16, prolog size 2, PerfScore 6.00, instruction count 6, allocated bytes for code 16 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+; Total bytes of code 56, prolog size 6, PerfScore 15.00, instruction count 17, allocated bytes for code 56 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 1
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 8 (0x00008) Actual length = 16 (0x000010)
- --- One epilog, unwind codes at 0
+ Function Length : 28 (0x0001c) Actual length = 56 (0x000038)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Condition : 14 (0xe) (always)
+ Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
libraries.crossgen2.linux.arm.checked.mch
-4 (-3.45%) : 78827.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
@@ -11,16 +11,16 @@
;
; V00 this [V00,T08] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.Diagnostics.Tracing.Ctf.CtfEnum>
; V01 arg1 [V01,T02] ( 4, 14 ) int -> r1 single-def
-; V02 loc0 [V02,T05] ( 3, 10 ) ref -> r0 class-hnd exact single-def <Microsoft.Diagnostics.Tracing.Ctf.CtfNamedRange[]>
-; V03 loc1 [V03,T01] ( 5, 21 ) int -> r3
+; V02 loc0 [V02,T05] ( 3, 10 ) ref -> r3 class-hnd exact single-def <Microsoft.Diagnostics.Tracing.Ctf.CtfNamedRange[]>
+; V03 loc1 [V03,T01] ( 5, 21 ) int -> r2
;* V04 loc2 [V04 ] ( 0, 0 ) struct (12) zero-ref <Microsoft.Diagnostics.Tracing.Ctf.CtfNamedRange>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T09] ( 3, 0 ) ref -> r5 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V07 tmp2 [V07,T06] ( 2, 9 ) ref -> r12 "field V04.Name (fldOffset=0x0)" P-INDEP
; V08 tmp3 [V08,T03] ( 2, 16 ) int -> r4 "field V04.Begin (fldOffset=0x4)" P-INDEP
-; V09 tmp4 [V09,T04] ( 2, 12 ) int -> lr "field V04.End (fldOffset=0x8)" P-INDEP
-; V10 tmp5 [V10,T00] ( 4, 64 ) byref -> lr "BlockOp address local"
-; V11 cse0 [V11,T07] ( 3, 6 ) int -> r2 "CSE - aggressive"
+; V09 tmp4 [V09,T04] ( 2, 12 ) int -> r0 "field V04.End (fldOffset=0x8)" P-INDEP
+; V10 tmp5 [V10,T00] ( 4, 64 ) byref -> r0 "BlockOp address local"
+; V11 cse0 [V11,T07] ( 3, 6 ) int -> lr "CSE - aggressive"
;
; Lcl frame size = 0
@@ -30,39 +30,41 @@ G_M8684_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=8 bbWeight=1 PerfScore 2.00
G_M8684_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
- ldr r0, [r0+0x10]
- movs r3, 0
- ldr r2, [r0+0x04]
- cmp r2, 0
+ ldr r3, [r0+0x10]
+ ; gcrRegs +[r3]
+ movs r2, 0
+ ldr lr, [r3+0x04]
+ cmp lr, 0
ble SHORT G_M8684_IG08
- ;; size=10 bbWeight=1 PerfScore 5.00
-G_M8684_IG03: ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
- mov lr, 12
- mul lr, r3, lr
- add lr, lr, 8
- add lr, r0
- ; byrRegs +[lr]
- ldr r12, [lr]
+ ;; size=14 bbWeight=1 PerfScore 5.00
+G_M8684_IG03: ; bbWeight=8, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r0]
+ movs r0, 12
+ mul r0, r2, r0
+ adds r0, 8
+ adds r0, r3, r0
+ ; byrRegs +[r0]
+ ldr r12, [r0]
; gcrRegs +[r12]
- ldr r4, [lr+0x04]
- ldr lr, [lr+0x08]
- ; byrRegs -[lr]
+ ldr r4, [r0+0x04]
+ ldr r0, [r0+0x08]
+ ; byrRegs -[r0]
cmp r4, r1
bgt SHORT G_M8684_IG05
- ;; size=30 bbWeight=8 PerfScore 72.00
-G_M8684_IG04: ; bbWeight=4, gcrefRegs=1001 {r0 r12}, byrefRegs=0000 {}, byref, isz
- cmp r1, lr
+ ;; size=22 bbWeight=8 PerfScore 72.00
+G_M8684_IG04: ; bbWeight=4, gcrefRegs=1008 {r3 r12}, byrefRegs=0000 {}, byref, isz
+ cmp r1, r0
ble SHORT G_M8684_IG06
;; size=4 bbWeight=4 PerfScore 8.00
-G_M8684_IG05: ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M8684_IG05: ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r12]
- adds r3, r3, 1
- cmp r2, r3
+ adds r2, r2, 1
+ cmp lr, r2
ble SHORT G_M8684_IG08
b SHORT G_M8684_IG03
;; size=8 bbWeight=4 PerfScore 16.00
G_M8684_IG06: ; bbWeight=1, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0] +[r12]
+ ; gcrRegs -[r3] +[r12]
mov r0, r12
; gcrRegs +[r0]
;; size=2 bbWeight=1 PerfScore 1.00
@@ -100,7 +102,7 @@ G_M8684_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefR
bkpt
;; size=50 bbWeight=0 PerfScore 0.00
-; Total bytes of code 116, prolog size 8, PerfScore 105.00, instruction count 43, allocated bytes for code 116 (MethodHash=c8d5de13) for method Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
+; Total bytes of code 112, prolog size 8, PerfScore 105.00, instruction count 43, allocated bytes for code 112 (MethodHash=c8d5de13) for method Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -112,7 +114,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 58 (0x0003a) Actual length = 116 (0x000074)
+ Function Length : 56 (0x00038) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.23%) : 126370.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.Canon,System.Canon]:FindValue(System.__Canon):byref:this (FullOpts)
@@ -14,8 +14,8 @@
; V02 loc0 [V02,T00] ( 10, 29 ) byref -> registers
; V03 loc1 [V03,T27] ( 3, 2 ) byref -> r0
; V04 loc2 [V04,T13] ( 4, 3.50) ref -> r7 class-hnd single-def <<unknown class>>
-; V05 loc3 [V05,T10] ( 3, 5 ) int -> r7 single-def
-; V06 loc4 [V06,T04] ( 6, 13.50) int -> r8
+; V05 loc3 [V05,T10] ( 3, 5 ) int -> r8 single-def
+; V06 loc4 [V06,T04] ( 6, 13.50) int -> r7
; V07 loc5 [V07 ] ( 4, 12.50) struct ( 8) [sp+0x34] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]>
; V08 loc6 [V08,T06] ( 4, 12.50) int -> r9
; V09 loc7 [V09,T26] ( 2, 2.50) ref -> r10 class-hnd single-def <<unknown class>>
@@ -47,7 +47,7 @@
; V35 tmp21 [V35 ] ( 4, 12.50) int -> [sp+0x38] do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x4)" P-DEP
; V36 tmp22 [V36 ] ( 2, 4.50) ref -> [sp+0x2C] do-not-enreg[X] addr-exposed "field V12._items (fldOffset=0x0)" P-DEP
; V37 tmp23 [V37 ] ( 4, 12.50) int -> [sp+0x30] do-not-enreg[X] addr-exposed "field V12._length (fldOffset=0x4)" P-DEP
-; V38 tmp24 [V38,T29] ( 3, 1.50) ref -> r8 single-def "field V18._items (fldOffset=0x0)" P-INDEP
+; V38 tmp24 [V38,T29] ( 3, 1.50) ref -> r7 single-def "field V18._items (fldOffset=0x0)" P-INDEP
; V39 tmp25 [V39,T35] ( 2, 1 ) int -> r4 single-def "field V18._length (fldOffset=0x4)" P-INDEP
; V40 tmp26 [V40,T30] ( 3, 1.50) ref -> r9 single-def "field V26._items (fldOffset=0x0)" P-INDEP
; V41 tmp27 [V41,T36] ( 2, 1 ) int -> r4 single-def "field V26._length (fldOffset=0x4)" P-INDEP
@@ -120,16 +120,16 @@ G_M65447_IG03: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
ldr r3, [r4]
blx r3 // <unknown method>
; gcrRegs -[r0 r7]
- mov r7, r0
- ldr r8, [r5+0x2C]
- ; gcrRegs +[r8]
+ mov r8, r0
+ ldr r7, [r5+0x2C]
+ ; gcrRegs +[r7]
ldr r4, [r5+0x30]
add r1, r5, 8
; byrRegs +[r1]
ldr r0, [r1]
ldr r1, [r1+0x04]
; byrRegs -[r1]
- mov r2, r7
+ mov r2, r8
movs r3, 0
movw lr, LOW RELOC 0xD1FFAB1E
movt lr, HIGH RELOC 0xD1FFAB1E
@@ -144,8 +144,8 @@ G_M65447_IG03: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
mov r0, r1
mov r1, r2
mov r2, r4
- ;; size=78 bbWeight=0.50 PerfScore 15.00
-G_M65447_IG04: ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref, isz
+ ;; size=76 bbWeight=0.50 PerfScore 15.00
+G_M65447_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
movw lr, LOW RELOC 0xD1FFAB1E
movt lr, HIGH RELOC 0xD1FFAB1E
add lr, pc
@@ -161,10 +161,10 @@ G_M65447_IG04: ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000
ldr r3, [r0+0x174]
and r3, r3, 31
asr r3, r9, r3
- ldr r2, [r8+0x04]
+ ldr r2, [r7+0x04]
cmp r3, r2
bhs G_M65447_IG21
- add r2, r8, 8
+ add r2, r7, 8
; byrRegs +[r2]
lsls r3, r3, 2
ldr r3, [r2+r3]
@@ -180,9 +180,9 @@ G_M65447_IG04: ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000
; gcrRegs -[r3]
; byrRegs +[r3]
lsls r0, r0, 2
- ldr r8, [r3+r0]
- ; gcrRegs -[r8]
- ;; size=86 bbWeight=0.50 PerfScore 14.00
+ ldr r7, [r3+r0]
+ ; gcrRegs -[r7]
+ ;; size=82 bbWeight=0.50 PerfScore 14.00
G_M65447_IG05: ; bbWeight=0.50, nogc, extend
ldr r0, [r5+0x34]
str r0, [sp+0x34]
@@ -207,12 +207,12 @@ G_M65447_IG06: ; bbWeight=0.50, extend
; gcrRegs +[r0]
mov r10, r0
; gcrRegs +[r10]
- add r8, r8, -1
- ;; size=44 bbWeight=0.50 PerfScore 7.50
+ subs r7, r7, 1
+ ;; size=42 bbWeight=0.50 PerfScore 7.50
G_M65447_IG07: ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
ldr r0, [sp+0x38]
- cmp r8, r0
+ cmp r7, r0
bhs G_M65447_IG20
ldr r0, [r5]
movw r4, LOW RELOC 0xD1FFAB1E
@@ -222,22 +222,22 @@ G_M65447_IG07: ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0000 {
blx r3 // CORINFO_HELP_READYTORUN_GENERIC_HANDLE
mov r1, r0
add r0, sp, 52
- mov r2, r8
+ mov r2, r7
movw r4, LOW RELOC 0xD1FFAB1E
movt r4, HIGH RELOC 0xD1FFAB1E
add r4, pc
ldr r3, [r4]
blx r3 // Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,System.__Canon]]:get_Item(int):byref:this
; byrRegs +[r0]
- mov r8, r0
- ; byrRegs +[r8]
- ldr r1, [r8+0x08]
- cmp r1, r7
+ mov r7, r0
+ ; byrRegs +[r7]
+ ldr r1, [r7+0x08]
+ cmp r1, r8
bne SHORT G_M65447_IG09
- ;; size=54 bbWeight=4 PerfScore 84.00
-G_M65447_IG08: ; bbWeight=2, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0100 {r8}, byref, isz
+ ;; size=52 bbWeight=4 PerfScore 84.00
+G_M65447_IG08: ; bbWeight=2, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0080 {r7}, byref, isz
; byrRegs -[r0]
- ldr r1, [r8]
+ ldr r1, [r7]
; gcrRegs +[r1]
mov r0, r10
; gcrRegs +[r0]
@@ -252,16 +252,16 @@ G_M65447_IG08: ; bbWeight=2, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0100 {
; gcrRegs -[r0-r2]
cmp r0, 0
bne G_M65447_IG18
- ;; size=32 bbWeight=2 PerfScore 22.00
-G_M65447_IG09: ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0100 {r8}, byref, isz
- ldr r8, [r8+0x0C]
- ; byrRegs -[r8]
+ ;; size=30 bbWeight=2 PerfScore 22.00
+G_M65447_IG09: ; bbWeight=4, gcrefRegs=0460 {r5 r6 r10}, byrefRegs=0080 {r7}, byref, isz
+ ldr r7, [r7+0x0C]
+ ; byrRegs -[r7]
add r9, r9, 1
ldr r0, [sp+0x38]
cmp r9, r0
bhi G_M65447_IG23
b SHORT G_M65447_IG07
- ;; size=18 bbWeight=4 PerfScore 24.00
+ ;; size=16 bbWeight=4 PerfScore 24.00
G_M65447_IG10: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref
; gcrRegs -[r10] +[r7]
ldr r10, [r5]
@@ -409,24 +409,24 @@ G_M65447_IG16: ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0200 {r
adds r4, r4, 1
ldr r0, [sp+0x30] // [V37 tmp23]
cmp r4, r0
- str r4, [sp+0x28] // [V13 loc11]
bhi SHORT G_M65447_IG23
+ str r4, [sp+0x28] // [V13 loc11]
b SHORT G_M65447_IG14
;; size=18 bbWeight=4 PerfScore 32.00
G_M65447_IG17: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0200 {r9}, byref
; gcrRegs -[r6-r7]
; byrRegs +[r9]
- mov r8, r9
- ; byrRegs +[r8]
+ mov r7, r9
+ ; byrRegs +[r7]
;; size=2 bbWeight=1 PerfScore 1.00
-G_M65447_IG18: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0100 {r8}, byref
+G_M65447_IG18: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0080 {r7}, byref
; byrRegs -[r9]
- ldrsb r0, [r8]
- add r0, r8, 4
+ ldrsb r0, [r7]
+ adds r0, r7, 4
; byrRegs +[r0]
- ;; size=8 bbWeight=0.50 PerfScore 1.00
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
G_M65447_IG19: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0001 {r0}, byref, epilog, nogc
- ; byrRegs -[r8]
+ ; byrRegs -[r7]
add sp, 68
pop {r4,r5,r6,r7,r8,r9,r10,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
@@ -460,7 +460,7 @@ G_M65447_IG23: ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
bkpt
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 718, prolog size 24, PerfScore 368.50, instruction count 269, allocated bytes for code 718 (MethodHash=66130058) for method Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
+; Total bytes of code 702, prolog size 24, PerfScore 368.50, instruction count 269, allocated bytes for code 702 (MethodHash=66130058) for method Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
; ============================================================
Unwind Info:
@@ -472,7 +472,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 359 (0x00167) Actual length = 718 (0x0002ce)
+ Function Length : 351 (0x0015f) Actual length = 702 (0x0002be)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-2 (-2.17%) : 185550.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
@@ -48,9 +48,8 @@ G_M9062_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, b
cmp r1, 0x400
beq SHORT G_M9062_IG04
cmp r1, 0x600
- bne SHORT G_M9062_IG07
- b SHORT G_M9062_IG04
- ;; size=14 bbWeight=0.50 PerfScore 2.50
+ beq SHORT G_M9062_IG04
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
G_M9062_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
mov r0, r1
@@ -69,7 +68,7 @@ G_M9062_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 8, PerfScore 15.50, instruction count 32, allocated bytes for code 92 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
+; Total bytes of code 90, prolog size 8, PerfScore 15.00, instruction count 31, allocated bytes for code 90 (MethodHash=f1e0dc99) for method System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
; ============================================================
Unwind Info:
@@ -81,7 +80,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 92 (0x00005c)
+ Function Length : 45 (0x0002d) Actual length = 90 (0x00005a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+10.53%) : 159627.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 3 ) int -> r5 single-def
+; V00 arg0 [V00,T00] ( 7, 3 ) int -> r5 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> r6 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> r7 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,7 +26,7 @@ G_M40495_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 4.00
G_M40495_IG02: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
cmp r5, 354
- bne SHORT G_M40495_IG04
+ bne SHORT G_M40495_IG06
;; size=6 bbWeight=1 PerfScore 2.00
G_M40495_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r5,r6,r7,r11,pc}
@@ -96,10 +96,19 @@ G_M40495_IG05: ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
ldr r3, [r3]
blx r3 // CORINFO_HELP_THROW
; gcrRegs -[r0 r7]
- bkpt
- ;; size=58 bbWeight=0 PerfScore 0.00
+ ;; size=56 bbWeight=0 PerfScore 0.00
+G_M40495_IG06: ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r6]
+ movw r3, 0xd1ff
+ cmp r5, r3
+ beq SHORT G_M40495_IG04
+ movw r3, 0xd1ff
+ cmp r5, r3
+ beq SHORT G_M40495_IG04
+ b SHORT G_M40495_IG04
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 152, prolog size 8, PerfScore 7.00, instruction count 56, allocated bytes for code 152 (MethodHash=165c61d0) for method System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 168, prolog size 8, PerfScore 7.00, instruction count 62, allocated bytes for code 168 (MethodHash=165c61d0) for method System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -111,7 +120,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 76 (0x0004c) Actual length = 152 (0x000098)
+ Function Length : 84 (0x00054) Actual length = 168 (0x0000a8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+22 (+14.86%) : 50823.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:
@@ -9,7 +9,7 @@
; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 3.50) ref -> r5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> r5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
; V01 arg1 [V01,T01] ( 4, 3 ) ref -> r6 class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
; V02 loc0 [V02,T03] ( 4, 2 ) ref -> r0 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
; V03 loc1 [V03,T05] ( 3, 1.50) ref -> r8 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
@@ -40,10 +40,23 @@ G_M26195_IG02: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
mov r7, r0
; gcrRegs +[r7]
cmp r7, 0
- beq SHORT G_M26195_IG05
+ bne SHORT G_M26195_IG04
;; size=22 bbWeight=1 PerfScore 9.00
-G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r0]
+G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r0 r7]
+ mov r0, r5
+ ; gcrRegs +[r0]
+ movw r4, LOW RELOC 0xD1FFAB1E
+ movt r4, HIGH RELOC 0xD1FFAB1E
+ add r4, pc
+ ldr r3, [r4]
+ blx r3 // CORINFO_HELP_READYTORUN_ISINSTANCEOF
+ cmp r0, 0
+ bne SHORT G_M26195_IG06
+ b SHORT G_M26195_IG06
+ ;; size=22 bbWeight=0.50 PerfScore 4.50
+G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r0] +[r7]
ldr r0, [r7+0x0C]
; gcrRegs +[r0]
movw r4, LOW RELOC 0xD1FFAB1E
@@ -52,12 +65,12 @@ G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
ldr r3, [r4]
blx r3 // CORINFO_HELP_READYTORUN_ISINSTANCEOF
cmp r0, 0
- beq SHORT G_M26195_IG05
+ beq SHORT G_M26195_IG06
ldr r3, [r0+0x0C]
; gcrRegs +[r3]
ldr r3, [r3+0x10]
cmp r3, 0
- bne SHORT G_M26195_IG05
+ bne SHORT G_M26195_IG06
ldr r8, [r0+0x10]
; gcrRegs +[r8]
mov r0, r8
@@ -69,7 +82,7 @@ G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
; gcrRegs -[r3]
blx r3 // <unknown method>
cmp r0, 0
- beq SHORT G_M26195_IG05
+ beq SHORT G_M26195_IG06
mov r0, r8
movw r4, LOW RELOC 0xD1FFAB1E
movt r4, HIGH RELOC 0xD1FFAB1E
@@ -88,10 +101,10 @@ G_M26195_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
blx r3 // <unknown method>
; gcrRegs -[r1 r6-r7]
;; size=88 bbWeight=0.50 PerfScore 17.50
-G_M26195_IG04: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG05: ; bbWeight=0.50, epilog, nogc, extend
pop {r3,r4,r5,r6,r7,r8,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M26195_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0] +[r5-r6]
mov r1, r6
; gcrRegs +[r1]
@@ -104,11 +117,11 @@ G_M26195_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6
blx r3 // <unknown method>
; gcrRegs -[r1 r5-r6]
;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M26195_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
pop {r3,r4,r5,r6,r7,r8,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 148, prolog size 8, PerfScore 35.00, instruction count 57, allocated bytes for code 148 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 170, prolog size 8, PerfScore 39.50, instruction count 66, allocated bytes for code 170 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
; ============================================================
Unwind Info:
@@ -120,7 +133,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 74 (0x0004a) Actual length = 148 (0x000094)
+ Function Length : 85 (0x00055) Actual length = 170 (0x0000aa)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+15.38%) : 159701.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4 ) int -> r5 single-def
+; V00 arg0 [V00,T00] ( 9, 4 ) int -> r5 single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> r6 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T02] ( 3, 0 ) ref -> r7 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -26,9 +26,9 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=12 bbWeight=1 PerfScore 4.00
G_M20631_IG02: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
cmp r5, 452
- bgt SHORT G_M20631_IG04
+ bgt SHORT G_M20631_IG07
cmp r5, 250
- bne SHORT G_M20631_IG04
+ bne SHORT G_M20631_IG06
;; size=10 bbWeight=1 PerfScore 4.00
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r5,r6,r7,r11,pc}
@@ -98,10 +98,24 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
ldr r3, [r3]
blx r3 // CORINFO_HELP_THROW
; gcrRegs -[r0 r7]
- bkpt
- ;; size=58 bbWeight=0 PerfScore 0.00
+ ;; size=56 bbWeight=0 PerfScore 0.00
+G_M20631_IG06: ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r6]
+ subw r3, r5, 451
+ cmp r3, 1
+ bls SHORT G_M20631_IG04
+ b SHORT G_M20631_IG04
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M20631_IG07: ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+ cmp r5, 552
+ beq SHORT G_M20631_IG04
+ movw r3, 0xd1ff
+ cmp r5, r3
+ beq SHORT G_M20631_IG04
+ b SHORT G_M20631_IG04
+ ;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 8, PerfScore 9.00, instruction count 58, allocated bytes for code 156 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 180, prolog size 8, PerfScore 9.00, instruction count 67, allocated bytes for code 180 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -113,7 +127,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 78 (0x0004e) Actual length = 156 (0x00009c)
+ Function Length : 90 (0x0005a) Actual length = 180 (0x0000b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.linux.arm.checked.mch
-10 (-23.81%) : 206628.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -10,18 +10,17 @@
;
; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.Build.BackEnd.SchedulingData>
; V01 arg1 [V01,T02] ( 3, 3 ) int -> r1 single-def
-; V02 loc0 [V02,T04] ( 2, 0.66) ref -> r0 ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
+; V02 loc0 [V02,T04] ( 2, 1 ) ref -> r0 ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V05 tmp2 [V05,T00] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V06 tmp3 [V06,T03] ( 3, 2.16) byref -> r0 single-def "Inline stloc first use temp"
+; V06 tmp3 [V06,T03] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M11913_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M11913_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
ldr r0, [r0+0x08]
@@ -32,28 +31,27 @@ G_M11913_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
; gcrRegs -[r0]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M11913_IG04
+ beq SHORT G_M11913_IG05
;; size=22 bbWeight=1 PerfScore 8.00
-G_M11913_IG03: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+G_M11913_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
ldr r0, [r0]
; gcrRegs +[r0]
; byrRegs -[r0]
- b SHORT G_M11913_IG06
- ;; size=4 bbWeight=0.16 PerfScore 0.33
-G_M11913_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M11913_IG05: ; bbWeight=0.50, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M11913_IG06: ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs +[r0]
- pop {r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 42, prolog size 6, PerfScore 11.83, instruction count 15, allocated bytes for code 42 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
+; Total bytes of code 32, prolog size 2, PerfScore 11.00, instruction count 13, allocated bytes for code 32 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
; ============================================================
Unwind Info:
@@ -65,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 42 (0x00002a)
+ Function Length : 16 (0x00010) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -77,7 +75,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-18 (-23.68%) : 244403.dasm - System.IO.Packaging.OrderedDictionary
2[long,System.Nullable
1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -10,25 +10,23 @@
;
; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]>
; V01 arg1 [V01 ] ( 4, 4 ) long -> [sp+0x00] single-def
-; V02 arg2 [V02,T06] ( 2, 1 ) byref -> [sp+0x18] single-def
-; V03 loc0 [V03,T05] ( 2, 0.61) ref -> r3 ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+; V02 arg2 [V02,T06] ( 2, 1 ) byref -> [sp+0x10] single-def
+; V03 loc0 [V03,T05] ( 2, 1 ) ref -> r0 ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V06 tmp2 [V06,T00] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V07 tmp3 [V07,T04] ( 3, 2.11) byref -> r0 single-def "Inline stloc first use temp"
+; V07 tmp3 [V07,T04] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
; V09 rat0 [V09,T02] ( 3, 3 ) int -> [sp+0x00] do-not-enreg[] "field V01.lo (fldOffset=0x0)" P-DEP
; V10 rat1 [V10,T03] ( 3, 3 ) int -> [sp+0x04] do-not-enreg[] "field V01.hi (fldOffset=0x4)" P-DEP
;
-; Lcl frame size = 12
+; Lcl frame size = 8
-G_M63935_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r4,r11,lr}
- sub sp, 12
- add r11, sp, 16
+G_M63935_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push {r2,r3,r4,lr}
str r2, [sp] // [V01 arg1]
str r3, [sp+0x04] // [V01 arg1+0x04]
- ;; size=14 bbWeight=1 PerfScore 5.00
+ ;; size=6 bbWeight=1 PerfScore 3.00
G_M63935_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
ldr r0, [r0+0x04]
@@ -41,44 +39,40 @@ G_M63935_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
blx r1 // <unknown method>
; gcrRegs -[r0]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M63935_IG04
+ beq SHORT G_M63935_IG05
;; size=26 bbWeight=1 PerfScore 10.00
-G_M63935_IG03: ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
- ldr r3, [r0]
- ; gcrRegs +[r3]
- b SHORT G_M63935_IG06
- ;; size=4 bbWeight=0.11 PerfScore 0.21
-G_M63935_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r3]
+G_M63935_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
+ ldr r0, [r0]
+ ; gcrRegs +[r0]
; byrRegs -[r0]
+ ldr r4, [sp+0x10] // [V02 arg2]
+ ; byrRegs +[r4]
+ ldr r3, [r0+0x10]
+ str r3, [r4]
+ ldr r3, [r0+0x14]
+ str r3, [r4+0x04]
+ movs r0, 1
+ ; gcrRegs -[r0]
+ ;; size=14 bbWeight=0.50 PerfScore 3.50
+G_M63935_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r2,r3,r4,pc}
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M63935_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; byrRegs -[r4]
movs r0, 0
- ldr r4, [sp+0x18] // [V02 arg2]
+ ldr r4, [sp+0x10] // [V02 arg2]
; byrRegs +[r4]
str r0, [r4]
str r0, [r4+0x04]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M63935_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M63935_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[r4]
- add sp, 12
- pop {r4,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M63935_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[r3]
- ldr r4, [sp+0x18] // [V02 arg2]
- ; byrRegs +[r4]
- ldr r0, [r3+0x10]
- str r0, [r4]
- ldr r0, [r3+0x14]
- str r0, [r4+0x04]
- movs r0, 1
- ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M63935_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add sp, 12
- pop {r4,r11,pc}
- ;; size=6 bbWeight=0.50 PerfScore 1.00
+ pop {r2,r3,r4,pc}
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 76, prolog size 10, PerfScore 22.21, instruction count 31, allocated bytes for code 76 (MethodHash=0a220640) for method System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
+; Total bytes of code 58, prolog size 2, PerfScore 19.50, instruction count 26, allocated bytes for code 58 (MethodHash=0a220640) for method System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -90,7 +84,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
+ Function Length : 29 (0x0001d) Actual length = 58 (0x00003a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -102,7 +96,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- 03 add sp, sp, #12 ; opsize 16
- A8 10 pop {r4,r11,lr} ; opsize 32
+ ED 1C pop {r2,r3,r4,lr} ; opsize 16
+ FF end
FF end
-12 (-20.00%) : 244391.dasm - System.IO.Packaging.OrderedDictionary
2[int,System.Nullable
1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
@@ -11,21 +11,20 @@
; V00 this [V00,T02] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]>
; V01 arg1 [V01,T03] ( 3, 3 ) int -> r1 single-def
; V02 arg2 [V02,T01] ( 4, 3 ) byref -> r4 single-def
-; V03 loc0 [V03,T05] ( 2, 0.66) ref -> r3 ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
+; V03 loc0 [V03,T05] ( 2, 1 ) ref -> r0 ld-addr-op class-hnd <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V06 tmp2 [V06,T00] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V07 tmp3 [V07,T04] ( 3, 2.16) byref -> r0 single-def "Inline stloc first use temp"
+; V07 tmp3 [V07,T04] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.Nullable`1[int]]>
;
-; Lcl frame size = 4
+; Lcl frame size = 0
-G_M14175_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr}
- add r11, sp, 8
+G_M14175_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push {r4,lr}
mov r4, r2
; byrRegs +[r4]
- ;; size=10 bbWeight=1 PerfScore 3.00
+ ;; size=4 bbWeight=1 PerfScore 2.00
G_M14175_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
; gcrRegs +[r0]
ldr r0, [r0+0x04]
@@ -36,39 +35,35 @@ G_M14175_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, by
blx r3 // <unknown method>
; gcrRegs -[r0]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M14175_IG04
+ beq SHORT G_M14175_IG05
;; size=22 bbWeight=1 PerfScore 8.00
-G_M14175_IG03: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, byref, isz
- ldr r3, [r0]
- ; gcrRegs +[r3]
- b SHORT G_M14175_IG06
- ;; size=4 bbWeight=0.16 PerfScore 0.33
-G_M14175_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
- ; gcrRegs -[r3]
+G_M14175_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, byref
+ ldr r0, [r0]
+ ; gcrRegs +[r0]
; byrRegs -[r0]
+ ldr r3, [r0+0x10]
+ str r3, [r4]
+ ldr r3, [r0+0x14]
+ str r3, [r4+0x04]
+ movs r0, 1
+ ; gcrRegs -[r0]
+ ;; size=12 bbWeight=0.50 PerfScore 3.00
+G_M14175_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ pop {r4,pc}
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M14175_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref
movs r0, 0
str r0, [r4]
str r0, [r4+0x04]
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M14175_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M14175_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[r4]
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M14175_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0008 {r3}, byrefRegs=0010 {r4}, gcvars, byref
- ; gcrRegs +[r3]
- ; byrRegs +[r4]
- ldr r0, [r3+0x10]
- str r0, [r4]
- ldr r0, [r3+0x14]
- str r0, [r4+0x04]
- movs r0, 1
- ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M14175_IG07: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
+ pop {r4,pc}
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 60, prolog size 8, PerfScore 16.33, instruction count 23, allocated bytes for code 60 (MethodHash=2d9bc8a0) for method System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
+; Total bytes of code 48, prolog size 2, PerfScore 15.50, instruction count 21, allocated bytes for code 48 (MethodHash=2d9bc8a0) for method System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -80,7 +75,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 60 (0x00003c)
+ Function Length : 24 (0x00018) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,7 +87,8 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
+ D4 pop {r4,lr} ; opsize 16
+ FF end
FF end
FF end
+12 (+19.35%) : 256451.dasm - System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
@@ -2,28 +2,29 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; 2 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList>
-; V01 arg1 [V01,T00] ( 5, 4 ) int -> r4 single-def
+; V01 arg1 [V01,T00] ( 6, 4.11) int -> r4 single-def
; V02 loc0 [V02,T03] ( 3, 3 ) ref -> r0 class-hnd exact single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-; V05 tmp2 [V05,T02] ( 3, 4 ) int -> r5 "Inlining Arg"
+; V05 tmp2 [V05,T02] ( 4, 4.22) int -> r5 "Inlining Arg"
;* V06 tmp3 [V06,T05] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V07 tmp4 [V07,T06] ( 2, 0 ) ref -> r2 single-def "argument with side effect"
; V08 cse0 [V08,T04] ( 2, 2 ) int -> r5 "CSE - aggressive"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M30474_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,lr}
+ push {r4,r5,r11,lr}
+ add r11, sp, 8
mov r4, r1
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M30474_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
ldr r0, [r0+0x04]
@@ -39,10 +40,14 @@ G_M30474_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
; byrRegs -[r0]
;; size=14 bbWeight=1 PerfScore 7.00
G_M30474_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r3,r4,r5,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M30474_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ pop {r4,r5,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
+G_M30474_IG04: ; bbWeight=0.11, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[r0]
+ cmp r4, r5
+ bls SHORT G_M30474_IG05
+ ;; size=4 bbWeight=0.11 PerfScore 0.22
+G_M30474_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
@@ -50,7 +55,6 @@ G_M30474_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_STRCNS
; gcrRegs +[r0]
- ; gcr arg pop 0
mov r2, r0
; gcrRegs +[r2]
mov r1, r5
@@ -61,11 +65,10 @@ G_M30474_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
ldr r3, [r3]
blx r3 // System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
; gcrRegs -[r2]
- ; gcr arg pop 0
bkpt
;; size=42 bbWeight=0 PerfScore 0.00
-; Total bytes of code 62, prolog size 2, PerfScore 10.00, instruction count 24, allocated bytes for code 62 (MethodHash=9dbb88f5) for method System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
+; Total bytes of code 74, prolog size 8, PerfScore 11.22, instruction count 27, allocated bytes for code 74 (MethodHash=9dbb88f5) for method System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +80,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 37 (0x00025) Actual length = 74 (0x00004a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -85,7 +88,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 38 pop {r3,r4,r5,lr} ; opsize 16
+ A8 30 pop {r4,r5,r11,lr} ; opsize 32
FF end
FF end
+16 (+21.05%) : 243314.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
@@ -8,10 +8,10 @@
; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4.50) ref -> r4 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T00] ( 7, 4.99) ref -> r4 class-hnd single-def <System.Type>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02,T01] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
+;* V03 tmp2 [V03,T02] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
;
; Lcl frame size = 4
@@ -46,26 +46,40 @@ G_M8853_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, b
movw r0, 0xd1ff
movt r0, 0xd1ff
cmp r4, r0
- bne SHORT G_M8853_IG07
+ beq SHORT G_M8853_IG08
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M8853_IG06: ; bbWeight=0.49, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r4]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ beq SHORT G_M8853_IG10
+ ;; size=14 bbWeight=0.49 PerfScore 2.47
+G_M8853_IG07: ; bbWeight=0.49, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ b SHORT G_M8853_IG10
+ ;; size=2 bbWeight=0.49 PerfScore 0.49
+G_M8853_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r4]
movs r0, 0
- ;; size=14 bbWeight=0.50 PerfScore 2.50
-G_M8853_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M8853_IG09: ; bbWeight=0.50, epilog, nogc, extend
pop {r3,r4,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M8853_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M8853_IG10: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[r4]
mov r0, r4
; gcrRegs +[r0]
ldr r3, [r4]
ldr r3, [r3+0x58]
ldr r3, [r3+0x10]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M8853_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M8853_IG11: ; bbWeight=0.50, epilog, nogc, extend
add sp, 4
pop {r4,r11,lr}
bx r3 // <unknown method>
;; size=8 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 76, prolog size 8, PerfScore 19.00, instruction count 27, allocated bytes for code 76 (MethodHash=a7e7dd6a) for method System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 21.96, instruction count 33, allocated bytes for code 92 (MethodHash=a7e7dd6a) for method System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
; ============================================================
Unwind Info:
@@ -77,7 +91,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
+ Function Length : 46 (0x0002e) Actual length = 92 (0x00005c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+10 (+71.43%) : 176585.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
@@ -13,11 +13,12 @@
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M40773_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M40773_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
uxtb r3, r1
@@ -26,15 +27,18 @@ G_M40773_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
;; size=6 bbWeight=1 PerfScore 3.00
G_M40773_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[r0]
- pop {r3,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ pop {r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
G_M40773_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r0]
ldr r3, [r0+0x08]
+ ; gcrRegs +[r3]
+ cmp r3, 0
+ beq SHORT G_M40773_IG03
b SHORT G_M40773_IG03
- ;; size=4 bbWeight=0.50 PerfScore 1.00
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 14, prolog size 2, PerfScore 6.00, instruction count 7, allocated bytes for code 14 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 24, prolog size 6, PerfScore 8.00, instruction count 10, allocated bytes for code 24 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -46,7 +50,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
+ Function Length : 12 (0x0000c) Actual length = 24 (0x000018)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -54,7 +58,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
libraries_tests.run.linux.arm.Release.mch
-10 (-21.74%) : 46054.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 482
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-; V02 loc0 [V02,T05] ( 2, 0.06) ref -> r0 ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+; V02 loc0 [V02,T05] ( 2, 0.11) ref -> r0 ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -20,12 +20,11 @@
; V08 tmp4 [V08,T03] ( 3, 3 ) ref -> r0 single-def "field V03._dictionary (fldOffset=0x0)" P-INDEP
; V09 tmp5 [V09,T02] ( 2, 4 ) int -> r3 "Cast away GC"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M65411_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M65411_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0-r1]
ldr r0, [r0+0xA0]
@@ -36,29 +35,27 @@ G_M65411_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
; byrRegs +[r0]
+ ; gcr arg pop 0
mov r3, r0
cmp r3, 0
- beq SHORT G_M65411_IG04
- ;; size=26 bbWeight=1 PerfScore 9.00
-G_M65411_IG03: ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+ bne SHORT G_M65411_IG04
+ movs r0, 0
+ ; byrRegs -[r0]
+ ;; size=28 bbWeight=1 PerfScore 10.00
+G_M65411_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M65411_IG04: ; bbWeight=0.06, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref
+ ; byrRegs +[r0]
ldr r0, [r0]
; gcrRegs +[r0]
; byrRegs -[r0]
- b SHORT G_M65411_IG06
- ;; size=4 bbWeight=0.06 PerfScore 0.11
-G_M65411_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0]
- movs r0, 0
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M65411_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M65411_IG06: ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs +[r0]
- pop {r11,pc}
- ;; size=4 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M65411_IG05: ; bbWeight=0.06, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=0.06 PerfScore 0.06
-; Total bytes of code 46, prolog size 6, PerfScore 13.11, instruction count 16, allocated bytes for code 46 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 36, prolog size 2, PerfScore 12.11, instruction count 14, allocated bytes for code 36 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
; ============================================================
Unwind Info:
@@ -70,7 +67,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -82,7 +79,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-10 (-21.74%) : 85676.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4577
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-; V02 loc0 [V02,T05] ( 2, 0.07) ref -> r0 ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+; V02 loc0 [V02,T05] ( 2, 0.14) ref -> r0 ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -20,12 +20,11 @@
; V08 tmp4 [V08,T03] ( 3, 3 ) ref -> r0 single-def "field V03._dictionary (fldOffset=0x0)" P-INDEP
; V09 tmp5 [V09,T02] ( 2, 4 ) int -> r3 "Cast away GC"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M65411_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M65411_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0-r1]
ldr r0, [r0+0xA0]
@@ -36,29 +35,27 @@ G_M65411_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, b
blx r3 // <unknown method>
; gcrRegs -[r0-r1]
; byrRegs +[r0]
+ ; gcr arg pop 0
mov r3, r0
cmp r3, 0
- beq SHORT G_M65411_IG04
- ;; size=26 bbWeight=1 PerfScore 9.00
-G_M65411_IG03: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
+ bne SHORT G_M65411_IG04
+ movs r0, 0
+ ; byrRegs -[r0]
+ ;; size=28 bbWeight=1 PerfScore 10.00
+G_M65411_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M65411_IG04: ; bbWeight=0.07, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, gcvars, byref
+ ; byrRegs +[r0]
ldr r0, [r0]
; gcrRegs +[r0]
; byrRegs -[r0]
- b SHORT G_M65411_IG06
- ;; size=4 bbWeight=0.07 PerfScore 0.14
-G_M65411_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r0]
- movs r0, 0
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M65411_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M65411_IG06: ; bbWeight=0.00, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs +[r0]
- pop {r11,pc}
- ;; size=4 bbWeight=0.00 PerfScore 0.00
+ ;; size=2 bbWeight=0.07 PerfScore 0.07
+G_M65411_IG05: ; bbWeight=0.07, epilog, nogc, extend
+ pop {r3,pc}
+ ;; size=2 bbWeight=0.07 PerfScore 0.07
-; Total bytes of code 46, prolog size 6, PerfScore 13.14, instruction count 16, allocated bytes for code 46 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 36, prolog size 2, PerfScore 12.14, instruction count 14, allocated bytes for code 36 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
; ============================================================
Unwind Info:
@@ -70,7 +67,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 46 (0x00002e)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -82,7 +79,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-20 (-17.24%) : 110318.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
@@ -3,32 +3,30 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; r11 based frame
+; sp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 7
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) ref -> r0 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel>
-; V01 RetBuf [V01,T01] ( 5, 3 ) byref -> r4 single-def
+; V01 RetBuf [V01,T01] ( 5, 3.44) byref -> r4 single-def
; V02 arg1 [V02,T03] ( 3, 3 ) ref -> r2 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
;* V03 loc0 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V06 tmp2 [V06,T00] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
; V07 tmp3 [V07,T04] ( 4, 2.44) byref -> r0 single-def "Inline stloc first use temp"
-; V08 tmp4 [V08,T05] ( 2, 0.22) ref -> r1 "field V03._one (fldOffset=0x0)" P-INDEP
-; V09 tmp5 [V09,T06] ( 2, 0.22) ref -> [sp+0x04] spill-single-def "field V03._many (fldOffset=0x4)" P-INDEP
+; V08 tmp4 [V08,T05] ( 2, 0.44) ref -> r1 "field V03._one (fldOffset=0x0)" P-INDEP
+; V09 tmp5 [V09,T06] ( 2, 0.44) ref -> r2 "field V03._many (fldOffset=0x4)" P-INDEP
;
-; Lcl frame size = 12
+; Lcl frame size = 0
G_M16819_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r4,r11,lr}
- sub sp, 12
- add r11, sp, 16
+ push {r4,lr}
mov r4, r1
; byrRegs +[r4]
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=4 bbWeight=1 PerfScore 2.00
G_M16819_IG02: ; bbWeight=1, gcrefRegs=0005 {r0 r2}, byrefRegs=0010 {r4}, byref, isz
; gcrRegs +[r0 r2]
ldr r0, [r0+0x10]
@@ -41,22 +39,9 @@ G_M16819_IG02: ; bbWeight=1, gcrefRegs=0005 {r0 r2}, byrefRegs=0010 {r4},
blx r3 // <unknown method>
; gcrRegs -[r0-r2]
; byrRegs +[r0]
+ ; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M16819_IG04
- ;; size=24 bbWeight=1 PerfScore 9.00
-G_M16819_IG03: ; bbWeight=0.22, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, byref, isz
- ldr r1, [r0]
- ; gcrRegs +[r1]
- ldr r3, [r0+0x04]
- ; gcrRegs +[r3]
- str r3, [sp+0x04] // [V09 tmp5]
- ; GC ptr vars +{V09}
- b SHORT G_M16819_IG06
- ;; size=8 bbWeight=0.22 PerfScore 0.89
-G_M16819_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
- ; gcrRegs -[r1 r3]
- ; byrRegs -[r0]
- ; GC ptr vars -{V09}
+ bne SHORT G_M16819_IG04
movw r1, 0xd1ff
movt r1, 0xd1ff
ldr r1, [r1]
@@ -65,7 +50,6 @@ G_M16819_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
; gcrRegs -[r1]
; byrRegs +[r1]
mov r0, r4
- ; byrRegs +[r0]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_BYREF
@@ -73,17 +57,17 @@ G_M16819_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_ASSIGN_BYREF
- ;; size=34 bbWeight=1 PerfScore 11.00
-G_M16819_IG05: ; bbWeight=1, epilog, nogc, extend
- add sp, 12
- pop {r4,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
-G_M16819_IG06: ; bbWeight=0, gcVars=00000040 {V09}, gcrefRegs=0002 {r1}, byrefRegs=0010 {r4}, gcvars, byref
+ ;; size=58 bbWeight=1 PerfScore 20.00
+G_M16819_IG03: ; bbWeight=1, epilog, nogc, extend
+ pop {r4,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M16819_IG04: ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0011 {r0 r4}, gcvars, byref
+ ; byrRegs -[r1] +[r4]
+ ldr r1, [r0]
; gcrRegs +[r1]
- ; byrRegs -[r0-r1] +[r4]
- ; GC ptr vars +{V06 V09}
+ ldr r2, [r0+0x04]
+ ; gcrRegs +[r2]
mov r0, r4
- ; byrRegs +[r0]
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_CHECKED_ASSIGN_REF
@@ -91,21 +75,19 @@ G_M16819_IG06: ; bbWeight=0, gcVars=00000040 {V09}, gcrefRegs=0002 {r1},
; byrRegs -[r0]
adds r0, r4, 4
; byrRegs +[r0]
- ldr r1, [sp+0x04] // [V09 tmp5]
+ mov r1, r2
; gcrRegs +[r1]
movw r12, 0xd1ff
movt r12, 0xd1ff
- ; GC ptr vars -{V06 V09}
blx r12 // CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[r1]
+ ; gcrRegs -[r1-r2]
; byrRegs -[r0 r4]
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M16819_IG07: ; bbWeight=0, epilog, nogc, extend
- add sp, 12
- pop {r4,r11,pc}
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=30 bbWeight=0.22 PerfScore 2.44
+G_M16819_IG05: ; bbWeight=0.22, epilog, nogc, extend
+ pop {r4,pc}
+ ;; size=2 bbWeight=0.22 PerfScore 0.22
-; Total bytes of code 116, prolog size 10, PerfScore 26.89, instruction count 41, allocated bytes for code 116 (MethodHash=3ddcbe4c) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
+; Total bytes of code 96, prolog size 2, PerfScore 25.67, instruction count 35, allocated bytes for code 96 (MethodHash=3ddcbe4c) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
; ============================================================
Unwind Info:
@@ -117,7 +99,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 58 (0x0003a) Actual length = 116 (0x000074)
+ Function Length : 48 (0x00030) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -129,7 +111,8 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- 03 add sp, sp, #12 ; opsize 16
- A8 10 pop {r4,r11,lr} ; opsize 32
+ D4 pop {r4,lr} ; opsize 16
+ FF end
+ FF end
FF end
+30 (+51.72%) : 151680.dasm - Roslyn.Utilities.AsyncLazy
1[System.__Canon]:.ctor(System.Func
2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)@@ -2,46 +2,46 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; Tier1 code
; optimized code
-; sp based frame
+; r11 based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 6, 6 ) ref -> r4 this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 4, 4 ) ref -> r5 class-hnd single-def <System.Func`2[System.Threading.CancellationToken,System.__Canon]>
+; V01 arg1 [V01,T01] ( 5, 4 ) ref -> r5 class-hnd single-def <System.Func`2[System.Threading.CancellationToken,System.__Canon]>
; V02 arg2 [V02,T03] ( 3, 3 ) ubyte -> r6 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-;* V05 rat0 [V05,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V05 rat0 [V05,T04] ( 2, 4 ) int -> r1 "Spilling to split statement for tree"
;* V06 rat1 [V06,T05] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V07 rat2 [V07,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V07 rat2 [V07,T02] ( 2, 4 ) int -> r1 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 12
G_M51244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r2,r3,r4,r5,r6,lr}
- str r0, [sp+0x04]
+ push {r4,r5,r6,r11,lr}
+ sub sp, 12
+ add r11, sp, 24
+ str r0, [r11-0x14]
mov r4, r0
; gcrRegs +[r4]
mov r5, r1
; gcrRegs +[r5]
mov r6, r2
- ;; size=10 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 7.00
G_M51244_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
ldr r1, [r4]
+ ldr r1, [r1+0x24]
+ ldr r1, [r1+0x04]
+ ldr r1, [r1+0x08]
+ cmp r1, 0
+ beq SHORT G_M51244_IG06
+ ;; size=12 bbWeight=1 PerfScore 6.00
+G_M51244_IG03: ; bbWeight=0.80, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
cmp r5, 0
- bne SHORT G_M51244_IG04
- ;; size=6 bbWeight=1 PerfScore 3.00
-G_M51244_IG03: ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // <unknown method>
- ; gcr arg pop 0
- ;; size=20 bbWeight=0 PerfScore 0.00
+ beq SHORT G_M51244_IG07
+ ;; size=4 bbWeight=0.80 PerfScore 1.60
G_M51244_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
adds r0, r4, 4
; byrRegs +[r0]
@@ -57,26 +57,45 @@ G_M51244_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
strb r6, [r4+0x18]
;; size=20 bbWeight=1 PerfScore 8.00
G_M51244_IG05: ; bbWeight=1, epilog, nogc, extend
- pop {r2,r3,r4,r5,r6,pc}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ add sp, 12
+ pop {r4,r5,r6,r11,pc}
+ ;; size=6 bbWeight=1 PerfScore 2.00
+G_M51244_IG06: ; bbWeight=0.20, gcVars=00000000 {}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r5]
+ cmp r5, 0
+ bne SHORT G_M51244_IG04
+ ;; size=4 bbWeight=0.20 PerfScore 0.40
+G_M51244_IG07: ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ b SHORT G_M51244_IG04
+ ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 58, prolog size 4, PerfScore 17.00, instruction count 23, allocated bytes for code 58 (MethodHash=6aec37d3) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
+; Total bytes of code 88, prolog size 14, PerfScore 25.00, instruction count 34, allocated bytes for code 88 (MethodHash=6aec37d3) for method Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 1
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 58 (0x00003a)
- --- One epilog, unwind codes at 0
+ Function Length : 44 (0x0002c) Actual length = 88 (0x000058)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Condition : 14 (0xe) (always)
+ Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 7C pop {r2,r3,r4,r5,r6,lr} ; opsize 16
- FF end
+ 03 add sp, sp, #12 ; opsize 16
+ A8 70 pop {r4,r5,r6,r11,lr} ; opsize 32
FF end
+12 (+54.55%) : 450473.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThanint (Tier1)
@@ -3,42 +3,49 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; sp based frame
+; r11 based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 3 ) int -> r0 ld-addr-op single-def
-; V01 arg1 [V01,T01] ( 4, 3 ) int -> r1 single-def
+; V00 arg0 [V00,T00] ( 5, 3 ) int -> r0 ld-addr-op single-def
+; V01 arg1 [V01,T01] ( 5, 3 ) int -> r1 single-def
; V02 arg2 [V02,T02] ( 3, 2 ) ref -> r2 class-hnd single-def <System.String>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04,T03] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M40926_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,lr}
- ;; size=2 bbWeight=1 PerfScore 1.00
+ push {r11,lr}
+ mov r11, sp
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M40926_IG02: ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r2]
cmp r0, r1
- bge SHORT G_M40926_IG04
+ blt SHORT G_M40926_IG04
;; size=4 bbWeight=1 PerfScore 2.00
-G_M40926_IG03: ; bbWeight=0, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
+G_M40926_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r2]
+ cmp r0, r1
+ ble SHORT G_M40926_IG05
+ b SHORT G_M40926_IG05
+ ;; size=6 bbWeight=0 PerfScore 0.00
+G_M40926_IG04: ; bbWeight=0, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.ArgumentOutOfRangeException:ThrowLess[int](int,int,System.String)
; gcrRegs -[r2]
- ; gcr arg pop 0
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-G_M40926_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- pop {r3,pc}
- ;; size=2 bbWeight=0 PerfScore 0.00
+G_M40926_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ pop {r11,pc}
+ ;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 22, prolog size 2, PerfScore 3.00, instruction count 9, allocated bytes for code 22 (MethodHash=63ec6021) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
+; Total bytes of code 34, prolog size 6, PerfScore 4.00, instruction count 13, allocated bytes for code 34 (MethodHash=63ec6021) for method System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
; ============================================================
Unwind Info:
@@ -50,11 +57,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- ED 08 pop {r3,lr} ; opsize 16
+ A8 00 pop {r11,lr} ; opsize 32
FF end
FF end
+16 (+57.14%) : 644582.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; r11 based frame
; partially interruptible
-; with Dynamic PGO: edge weights are valid, and fgCalledCount is 3
+; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 3
; 3 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -16,7 +16,7 @@
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref
;* V05 tmp2 [V05,T03] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Object>
;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V07 cse0 [V07,T02] ( 0, 0 ) ref -> zero-ref "CSE - conservative"
+; V07 cse0 [V07,T02] ( 2, 0.67) ref -> r0 "CSE - conservative"
;
; Lcl frame size = 0
@@ -27,40 +27,51 @@ G_M52904_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M52904_IG02: ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0-r1]
cmp r1, 0
- beq SHORT G_M52904_IG05
+ beq SHORT G_M52904_IG04
;; size=4 bbWeight=1 PerfScore 2.00
G_M52904_IG03: ; bbWeight=0.67, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
ldr r3, [r1+0x08]
ands r3, r3, 1
cmp r3, 0
- bne SHORT G_M52904_IG05
+ beq SHORT G_M52904_IG06
;; size=10 bbWeight=0.67 PerfScore 2.67
-G_M52904_IG04: ; bbWeight=0.33, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r1]
- ldr r0, [r0+0x04]
- ; gcrRegs -[r0]
- ;; size=2 bbWeight=0.33 PerfScore 0.33
-G_M52904_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52904_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r0-r1]
movs r0, 0
;; size=2 bbWeight=1 PerfScore 1.00
-G_M52904_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M52904_IG05: ; bbWeight=1, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
+G_M52904_IG06: ; bbWeight=0.33, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[r0]
+ ldr r0, [r0+0x04]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ ; gcrRegs +[r3]
+ cmp r0, r3
+ beq SHORT G_M52904_IG04
+ b SHORT G_M52904_IG04
+ ;; size=18 bbWeight=0.33 PerfScore 2.33
-; Total bytes of code 28, prolog size 6, PerfScore 9.00, instruction count 11, allocated bytes for code 28 (MethodHash=c74e3157) for method Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
+; Total bytes of code 44, prolog size 6, PerfScore 11.00, instruction count 17, allocated bytes for code 44 (MethodHash=c74e3157) for method Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 0
+ Epilog Count : 1
F bit : 0
- E bit : 1
+ E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 28 (0x00001c)
- --- One epilog, unwind codes at 0
+ Function Length : 22 (0x00016) Actual length = 44 (0x00002c)
+ ---- Epilog scopes ----
+ ---- Scope 0
+ Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+ Condition : 14 (0xe) (always)
+ Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
A8 00 pop {r11,lr} ; opsize 32
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-30 (-11.03%) : 86016.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
@@ -13,11 +13,11 @@
; V02 loc0 [V02,T09] ( 7, 4.25) ref -> r5 class-hnd exact <System.ComponentModel.LookupBindingPropertiesAttribute>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.ComponentModel.LookupBindingPropertiesAttribute>
-; V05 tmp2 [V05,T03] ( 5, 4.75) ref -> r6 class-hnd exact single-def "impAppendStmt" <System.String>
-; V06 tmp3 [V06,T04] ( 5, 4.75) ref -> r8 class-hnd exact single-def "impAppendStmt" <System.String>
-; V07 tmp4 [V07,T05] ( 5, 4.75) ref -> r10 class-hnd exact single-def "impAppendStmt" <System.String>
+; V05 tmp2 [V05,T03] ( 5, 4.75) ref -> r2 class-hnd exact single-def "impAppendStmt" <System.String>
+; V06 tmp3 [V06,T04] ( 5, 4.75) ref -> r2 class-hnd exact single-def "impAppendStmt" <System.String>
+; V07 tmp4 [V07,T05] ( 5, 4.75) ref -> r2 class-hnd exact single-def "impAppendStmt" <System.String>
; V08 tmp5 [V08,T02] ( 6, 4.98) ref -> r2 class-hnd exact single-def "impAppendStmt" <System.String>
-; V09 tmp6 [V09,T06] ( 5, 4.75) ref -> r7 class-hnd exact single-def "Inlining Arg" <System.String>
+; V09 tmp6 [V09,T06] ( 5, 4.75) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
; V10 tmp7 [V10,T18] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
; V11 tmp8 [V11,T11] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -25,17 +25,17 @@
;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp12 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V17 tmp14 [V17,T07] ( 5, 4.75) ref -> r9 class-hnd exact single-def "Inlining Arg" <System.String>
+; V17 tmp14 [V17,T07] ( 5, 4.75) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
; V18 tmp15 [V18,T19] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
-; V19 tmp16 [V19,T12] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
+; V19 tmp16 [V19,T12] ( 2, 2 ) byref -> r3 single-def "impAppendStmt"
;* V20 tmp17 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp18 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp19 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp20 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp21 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V25 tmp22 [V25,T08] ( 5, 4.75) ref -> r3 class-hnd exact single-def "Inlining Arg" <System.String>
+; V25 tmp22 [V25,T08] ( 5, 4.75) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
; V26 tmp23 [V26,T20] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
-; V27 tmp24 [V27,T13] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
+; V27 tmp24 [V27,T13] ( 2, 2 ) byref -> r3 single-def "impAppendStmt"
;* V28 tmp25 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp26 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -49,15 +49,15 @@
;* V38 tmp35 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp36 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V40 tmp37 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V41 cse0 [V41,T14] ( 3, 1.38) int -> r2 "CSE - moderate"
-; V42 cse1 [V42,T15] ( 3, 1.38) int -> r2 "CSE - moderate"
-; V43 cse2 [V43,T16] ( 3, 1.38) int -> r2 "CSE - moderate"
+; V41 cse0 [V41,T14] ( 3, 1.38) int -> r3 "CSE - moderate"
+; V42 cse1 [V42,T15] ( 3, 1.38) int -> r0 "CSE - moderate"
+; V43 cse2 [V43,T16] ( 3, 1.38) int -> r0 "CSE - moderate"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M3330_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
- add r11, sp, 32
+ push {r4,r5,r11,lr}
+ add r11, sp, 8
mov r4, r0
; gcrRegs +[r4]
;; size=10 bbWeight=1 PerfScore 3.00
@@ -66,7 +66,7 @@ G_M3330_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, by
mov r5, r1
; gcrRegs +[r5]
cmp r5, 0
- beq SHORT G_M3330_IG24
+ beq SHORT G_M3330_IG27
;; size=6 bbWeight=1 PerfScore 3.00
G_M3330_IG03: ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r1]
@@ -74,105 +74,152 @@ G_M3330_IG03: ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {},
movw r2, 0xd1ff
movt r2, 0xd1ff
cmp r0, r2
- bne SHORT G_M3330_IG24
+ bne SHORT G_M3330_IG27
;; size=14 bbWeight=0.25 PerfScore 1.25
G_M3330_IG04: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ldr r6, [r5+0x04]
- ; gcrRegs +[r6]
- ldr r7, [r4+0x04]
- ; gcrRegs +[r7]
- cmp r6, r7
- beq SHORT G_M3330_IG08
+ ldr r2, [r5+0x04]
+ ; gcrRegs +[r2]
+ ldr r1, [r4+0x04]
+ ; gcrRegs +[r1]
+ cmp r2, r1
+ beq SHORT G_M3330_IG09
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M3330_IG05: ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- cmp r6, 0
- beq SHORT G_M3330_IG24
+G_M3330_IG05: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r2, 0
+ beq SHORT G_M3330_IG27
;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M3330_IG06: ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M3330_IG22
- ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M3330_IG07: ; bbWeight=0.50, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- add r0, r6, 8
+G_M3330_IG06: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M3330_IG27
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG07: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r2+0x04]
+ ldr r0, [r1+0x04]
+ cmp r3, r0
+ bne SHORT G_M3330_IG27
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M3330_IG08: ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ add r0, r2, 8
; byrRegs +[r0]
- lsls r2, r2, 1
- add r1, r7, 8
+ lsls r2, r3, 1
+ ; gcrRegs -[r2]
+ adds r1, 8
+ ; gcrRegs -[r1]
; byrRegs +[r1]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ; gcrRegs -[r6-r7]
; byrRegs -[r0-r1]
cmp r0, 0
- beq SHORT G_M3330_IG24
- ;; size=26 bbWeight=0.50 PerfScore 4.50
-G_M3330_IG08: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ldr r8, [r5+0x08]
- ; gcrRegs +[r8]
- ldr r9, [r4+0x08]
- ; gcrRegs +[r9]
- cmp r8, r9
- beq SHORT G_M3330_IG11
- ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M3330_IG09: ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
- cmp r8, 0
- beq SHORT G_M3330_IG24
- ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M3330_IG10: ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M3330_IG29
- ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M3330_IG11: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r8-r9]
- ldr r10, [r5+0x0C]
- ; gcrRegs +[r10]
- ldr r3, [r4+0x0C]
- ; gcrRegs +[r3]
- cmp r10, r3
+ beq SHORT G_M3330_IG27
+ ;; size=24 bbWeight=0.50 PerfScore 4.50
+G_M3330_IG09: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r2, [r5+0x08]
+ ; gcrRegs +[r2]
+ ldr r1, [r4+0x08]
+ ; gcrRegs +[r1]
+ cmp r2, r1
beq SHORT G_M3330_IG14
- ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M3330_IG12: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- cmp r10, 0
- beq SHORT G_M3330_IG24
- ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M3330_IG13: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M3330_IG26
- ;; size=2 bbWeight=0.44 PerfScore 0.44
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M3330_IG10: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r2, 0
+ beq SHORT G_M3330_IG27
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG11: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M3330_IG27
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG12: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r2+0x04]
+ ldr r3, [r1+0x04]
+ cmp r0, r3
+ bne SHORT G_M3330_IG27
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M3330_IG13: ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ add r3, r2, 8
+ ; byrRegs +[r3]
+ lsls r2, r0, 1
+ ; gcrRegs -[r2]
+ adds r1, 8
+ ; gcrRegs -[r1]
+ ; byrRegs +[r1]
+ mov r0, r3
+ ; byrRegs +[r0]
+ movw r3, 0xd1ff
+ ; byrRegs -[r3]
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; byrRegs -[r0-r1]
+ cmp r0, 0
+ beq SHORT G_M3330_IG27
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
G_M3330_IG14: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r3 r10]
+ ldr r2, [r5+0x0C]
+ ; gcrRegs +[r2]
+ ldr r1, [r4+0x0C]
+ ; gcrRegs +[r1]
+ cmp r2, r1
+ beq SHORT G_M3330_IG19
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M3330_IG15: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r2, 0
+ beq SHORT G_M3330_IG27
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG16: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M3330_IG27
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M3330_IG17: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r2+0x04]
+ ldr r3, [r1+0x04]
+ cmp r0, r3
+ bne SHORT G_M3330_IG27
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M3330_IG18: ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ add r3, r2, 8
+ ; byrRegs +[r3]
+ lsls r2, r0, 1
+ ; gcrRegs -[r2]
+ adds r1, 8
+ ; gcrRegs -[r1]
+ ; byrRegs +[r1]
+ mov r0, r3
+ ; byrRegs +[r0]
+ movw r3, 0xd1ff
+ ; byrRegs -[r3]
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; byrRegs -[r0-r1]
+ cmp r0, 0
+ beq SHORT G_M3330_IG27
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M3330_IG19: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
ldr r2, [r5+0x10]
; gcrRegs +[r2]
ldr r1, [r4+0x10]
...
-30 (-10.87%) : 305396.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
@@ -12,9 +12,9 @@
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r1 class-hnd single-def <System.Xml.Linq.XNode>
; V02 loc0 [V02,T10] ( 6, 4 ) ref -> r5 class-hnd single-def <System.Xml.Linq.XDocumentType>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 5, 4.75) ref -> r10 class-hnd exact single-def "impAppendStmt" <System.String>
-; V05 tmp2 [V05,T04] ( 5, 4.75) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.String>
-; V06 tmp3 [V06,T06] ( 5, 4.75) ref -> r7 class-hnd exact single-def "Inlining Arg" <System.String>
+; V04 tmp1 [V04,T03] ( 5, 4.75) ref -> r2 class-hnd exact single-def "impAppendStmt" <System.String>
+; V05 tmp2 [V05,T04] ( 5, 4.75) ref -> r2 class-hnd exact single-def "Inlining Arg" <System.String>
+; V06 tmp3 [V06,T06] ( 5, 4.75) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
; V07 tmp4 [V07,T18] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
; V08 tmp5 [V08,T11] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
;* V09 tmp6 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -22,18 +22,18 @@
;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V14 tmp11 [V14,T05] ( 5, 4.75) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.String>
-; V15 tmp12 [V15,T07] ( 5, 4.75) ref -> r9 class-hnd exact single-def "Inlining Arg" <System.String>
+; V14 tmp11 [V14,T05] ( 5, 4.75) ref -> r2 class-hnd exact single-def "Inlining Arg" <System.String>
+; V15 tmp12 [V15,T07] ( 5, 4.75) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
; V16 tmp13 [V16,T19] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
-; V17 tmp14 [V17,T12] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
+; V17 tmp14 [V17,T12] ( 2, 2 ) byref -> r3 single-def "impAppendStmt"
;* V18 tmp15 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp16 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp17 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp18 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp19 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V23 tmp20 [V23,T08] ( 5, 4.75) ref -> r3 class-hnd exact single-def "Inlining Arg" <System.String>
+; V23 tmp20 [V23,T08] ( 5, 4.75) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
; V24 tmp21 [V24,T20] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
-; V25 tmp22 [V25,T13] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
+; V25 tmp22 [V25,T13] ( 2, 2 ) byref -> r3 single-def "impAppendStmt"
;* V26 tmp23 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp24 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp25 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -48,15 +48,15 @@
;* V37 tmp34 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V38 tmp35 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V39 tmp36 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V40 cse0 [V40,T14] ( 3, 1.38) int -> r2 "CSE - moderate"
-; V41 cse1 [V41,T15] ( 3, 1.38) int -> r2 "CSE - moderate"
-; V42 cse2 [V42,T16] ( 3, 1.38) int -> r2 "CSE - moderate"
+; V40 cse0 [V40,T14] ( 3, 1.38) int -> r3 "CSE - moderate"
+; V41 cse1 [V41,T15] ( 3, 1.38) int -> r0 "CSE - moderate"
+; V42 cse2 [V42,T16] ( 3, 1.38) int -> r0 "CSE - moderate"
;
-; Lcl frame size = 4
+; Lcl frame size = 0
G_M37476_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
- add r11, sp, 32
+ push {r4,r5,r11,lr}
+ add r11, sp, 8
mov r4, r0
; gcrRegs +[r4]
;; size=10 bbWeight=1 PerfScore 3.00
@@ -71,106 +71,153 @@ G_M37476_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
mov r5, r0
; gcrRegs +[r5]
cmp r5, 0
- beq SHORT G_M37476_IG23
+ beq SHORT G_M37476_IG26
;; size=24 bbWeight=1 PerfScore 8.00
G_M37476_IG03: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
- ldr r6, [r4+0x10]
- ; gcrRegs +[r6]
- ldr r7, [r5+0x10]
- ; gcrRegs +[r7]
- cmp r6, r7
- beq SHORT G_M37476_IG07
+ ldr r2, [r4+0x10]
+ ; gcrRegs +[r2]
+ ldr r1, [r5+0x10]
+ ; gcrRegs +[r1]
+ cmp r2, r1
+ beq SHORT G_M37476_IG08
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG04: ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- cmp r6, 0
- beq SHORT G_M37476_IG23
+G_M37476_IG04: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r2, 0
+ beq SHORT G_M37476_IG26
;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M37476_IG05: ; bbWeight=0.44, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M37476_IG21
- ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG06: ; bbWeight=0.50, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
- add r0, r6, 8
+G_M37476_IG05: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M37476_IG26
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG06: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r3, [r2+0x04]
+ ldr r0, [r1+0x04]
+ cmp r3, r0
+ bne SHORT G_M37476_IG26
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M37476_IG07: ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ add r0, r2, 8
; byrRegs +[r0]
- lsls r2, r2, 1
- add r1, r7, 8
+ lsls r2, r3, 1
+ ; gcrRegs -[r2]
+ adds r1, 8
+ ; gcrRegs -[r1]
; byrRegs +[r1]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ; gcrRegs -[r6-r7]
; byrRegs -[r0-r1]
cmp r0, 0
- beq SHORT G_M37476_IG23
- ;; size=26 bbWeight=0.50 PerfScore 4.50
-G_M37476_IG07: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ldr r8, [r4+0x14]
- ; gcrRegs +[r8]
- ldr r9, [r5+0x14]
- ; gcrRegs +[r9]
- cmp r8, r9
- beq SHORT G_M37476_IG10
- ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG08: ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
- cmp r8, 0
- beq SHORT G_M37476_IG23
- ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M37476_IG09: ; bbWeight=0.44, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M37476_IG28
- ;; size=2 bbWeight=0.44 PerfScore 0.44
-G_M37476_IG10: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r8-r9]
- ldr r10, [r4+0x18]
- ; gcrRegs +[r10]
- ldr r3, [r5+0x18]
- ; gcrRegs +[r3]
- cmp r10, r3
+ beq SHORT G_M37476_IG26
+ ;; size=24 bbWeight=0.50 PerfScore 4.50
+G_M37476_IG08: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r2, [r4+0x14]
+ ; gcrRegs +[r2]
+ ldr r1, [r5+0x14]
+ ; gcrRegs +[r1]
+ cmp r2, r1
beq SHORT G_M37476_IG13
- ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG11: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- cmp r10, 0
- beq SHORT G_M37476_IG23
- ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M37476_IG12: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M37476_IG25
- ;; size=2 bbWeight=0.44 PerfScore 0.44
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M37476_IG09: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r2, 0
+ beq SHORT G_M37476_IG26
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG10: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M37476_IG26
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG11: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r2+0x04]
+ ldr r3, [r1+0x04]
+ cmp r0, r3
+ bne SHORT G_M37476_IG26
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M37476_IG12: ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ add r3, r2, 8
+ ; byrRegs +[r3]
+ lsls r2, r0, 1
+ ; gcrRegs -[r2]
+ adds r1, 8
+ ; gcrRegs -[r1]
+ ; byrRegs +[r1]
+ mov r0, r3
+ ; byrRegs +[r0]
+ movw r3, 0xd1ff
+ ; byrRegs -[r3]
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; byrRegs -[r0-r1]
+ cmp r0, 0
+ beq SHORT G_M37476_IG26
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
G_M37476_IG13: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r3 r10]
+ ldr r2, [r4+0x18]
+ ; gcrRegs +[r2]
+ ldr r1, [r5+0x18]
+ ; gcrRegs +[r1]
+ cmp r2, r1
+ beq SHORT G_M37476_IG18
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M37476_IG14: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r2, 0
+ beq SHORT G_M37476_IG26
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG15: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M37476_IG26
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M37476_IG16: ; bbWeight=0.44, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r2+0x04]
+ ldr r3, [r1+0x04]
+ cmp r0, r3
+ bne SHORT G_M37476_IG26
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M37476_IG17: ; bbWeight=0.50, gcrefRegs=0036 {r1 r2 r4 r5}, byrefRegs=0000 {}, byref, isz
+ add r3, r2, 8
+ ; byrRegs +[r3]
+ lsls r2, r0, 1
+ ; gcrRegs -[r2]
+ adds r1, 8
+ ; gcrRegs -[r1]
+ ; byrRegs +[r1]
+ mov r0, r3
+ ; byrRegs +[r0]
+ movw r3, 0xd1ff
+ ; byrRegs -[r3]
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; byrRegs -[r0-r1]
+ cmp r0, 0
+ beq SHORT G_M37476_IG26
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M37476_IG18: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
ldr r2, [r4+0x1C]
; gcrRegs +[r2]
ldr r1, [r5+0x1C]
; gcrRegs +[r1]
cmp r2, r1
- bne SHORT G_M37476_IG15
+ beq SHORT G_M37476_IG25
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M37476_IG14: ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r1-r2 r4-r5]
- movs r0, 1
- b SHORT G_M37476_IG20
...
-32 (-10.06%) : 97331.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>cDisplayClass9_1:
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) ref -> r0 this class-hnd single-def <System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1>
-; V01 arg1 [V01,T01] ( 8, 8 ) struct (24) [sp+0x3C] do-not-enreg[S] single-def <System.Diagnostics.ActivityLink>
+; V01 arg1 [V01,T01] ( 8, 8 ) struct (24) [sp+0x34] do-not-enreg[S] single-def <System.Diagnostics.ActivityLink>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Diagnostics.ActivityLink>
; V04 tmp2 [V04,T09] ( 3, 2 ) ubyte -> r0 "Inline return value spill temp"
@@ -41,7 +41,7 @@
;* V30 tmp28 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V31 tmp29 [V31,T21] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
;* V32 tmp30 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
-; V33 tmp31 [V33,T11] ( 2, 2 ) byref -> [sp+0x0C] spill-single-def "impAppendStmt"
+; V33 tmp31 [V33,T11] ( 2, 2 ) byref -> r0 single-def "impAppendStmt"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp33 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp34 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -58,18 +58,18 @@
;* V47 tmp45 [V47 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._hexString (fldOffset=0x0)" P-INDEP
;* V48 tmp46 [V48 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._hexString (fldOffset=0x0)" P-INDEP
;* V49 tmp47 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._hexString (fldOffset=0x0)" P-INDEP
-; V50 tmp48 [V50,T14] ( 2, 1.50) ref -> r4 single-def "V03.[000..004)"
+; V50 tmp48 [V50,T14] ( 2, 1.50) ref -> [sp+0x04] spill-single-def "V03.[000..004)"
; V51 tmp49 [V51,T07] ( 5, 2.88) ref -> r5 single-def "V03.[004..008)"
; V52 tmp50 [V52,T16] ( 2, 1.50) int -> r6 "V03.[008..012)"
; V53 tmp51 [V53,T17] ( 2, 1.50) ubyte -> r7 "V03.[012..013)"
-; V54 tmp52 [V54,T04] ( 6, 3.38) ref -> [sp+0x08] single-def "V03.[016..020)"
-; V55 tmp53 [V55,T03] ( 6, 3.88) ref -> r9 single-def "V03.[020..024)"
-; V56 tmp54 [V56,T15] ( 2, 1.50) ref -> r10 single-def "V05.[000..004)"
-; V57 tmp55 [V57,T05] ( 6, 3.38) ref -> [sp+0x04] spill-single-def "V05.[004..008)"
-; V58 tmp56 [V58,T18] ( 2, 1.50) int -> [sp+0x14] spill-single-def "V05.[008..012)"
-; V59 tmp57 [V59,T19] ( 2, 1.50) ubyte -> [sp+0x10] spill-single-def "V05.[012..013)"
-; V60 tmp58 [V60,T08] ( 5, 2.88) ref -> [sp+0x00] single-def "V05.[016..020)"
-; V61 tmp59 [V61,T06] ( 5, 3.38) ref -> r2 single-def "V05.[020..024)"
+; V54 tmp52 [V54,T04] ( 6, 3.38) ref -> r8 single-def "V03.[016..020)"
+; V55 tmp53 [V55,T03] ( 6, 3.88) ref -> r2 single-def "V03.[020..024)"
+; V56 tmp54 [V56,T15] ( 2, 1.50) ref -> r9 single-def "V05.[000..004)"
+; V57 tmp55 [V57,T05] ( 6, 3.38) ref -> r10 single-def "V05.[004..008)"
+; V58 tmp56 [V58,T18] ( 2, 1.50) int -> [sp+0x0C] spill-single-def "V05.[008..012)"
+; V59 tmp57 [V59,T19] ( 2, 1.50) ubyte -> [sp+0x08] spill-single-def "V05.[012..013)"
+; V60 tmp58 [V60,T08] ( 5, 2.88) ref -> [sp+0x00] spill-single-def "V05.[016..020)"
+; V61 tmp59 [V61,T06] ( 5, 3.38) ref -> r1 single-def "V05.[020..024)"
;* V62 tmp60 [V62 ] ( 0, 0 ) ref -> zero-ref single-def "V09.[000..004)"
;* V63 tmp61 [V63 ] ( 0, 0 ) int -> zero-ref "V09.[004..008)"
;* V64 tmp62 [V64 ] ( 0, 0 ) ubyte -> zero-ref "V09.[008..009)"
@@ -93,13 +93,13 @@
; V82 tmp80 [V82,T00] ( 7, 14 ) byref -> r1 single-def "Spilling address for field-by-field copy"
; V83 cse0 [V83,T13] ( 4, 1.88) int -> r6 "CSE - moderate"
;
-; Lcl frame size = 24
+; Lcl frame size = 16
G_M4102_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r1,r2,r3}
push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
- sub sp, 24
- add r11, sp, 52
+ sub sp, 16
+ add r11, sp, 44
;; size=12 bbWeight=1 PerfScore 4.00
G_M4102_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r0]
@@ -107,216 +107,190 @@ G_M4102_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
; byrRegs +[r1]
ldr r4, [r1]
; gcrRegs +[r4]
+ str r4, [sp+0x04] // [V50 tmp48]
+ ; GC ptr vars +{V50}
ldr r5, [r1+0x04]
; gcrRegs +[r5]
ldr r6, [r1+0x08]
ldrb r7, [r1+0x0C]
ldr r8, [r1+0x10]
; gcrRegs +[r8]
- ldr r9, [r1+0x14]
- ; gcrRegs +[r9]
- ldr r10, [sp+0x3C]
- ; gcrRegs +[r10]
- ldr r3, [sp+0x40]
- ; gcrRegs +[r3]
- str r3, [sp+0x04] // [V57 tmp55]
- ; GC ptr vars +{V57}
- ldr lr, [sp+0x44] // [V01 arg1+0x08]
- str lr, [sp+0x14] // [V58 tmp56]
- ldrb r12, [sp+0x48] // [V01 arg1+0x0c]
- str r12, [sp+0x10] // [V59 tmp57]
- ldr r0, [sp+0x4C] // [V01 arg1+0x10]
- ldr r2, [sp+0x50] // [V01 arg1+0x14]
+ ldr r2, [r1+0x14]
; gcrRegs +[r2]
- cmp r9, r2
- beq SHORT G_M4102_IG05
- ;; size=50 bbWeight=1 PerfScore 18.00
-G_M4102_IG03: ; bbWeight=0.44, gcVars=00000020 {V57}, gcrefRegs=0735 {r0 r2 r4 r5 r8 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r3]
+ ldr r9, [sp+0x34] // [V01 arg1]
+ ; gcrRegs +[r9]
+ ldr r10, [sp+0x38] // [V01 arg1+0x04]
+ ; gcrRegs +[r10]
+ ldr r3, [sp+0x3C] // [V01 arg1+0x08]
+ str r3, [sp+0x0C] // [V58 tmp56]
+ ldrb lr, [sp+0x40] // [V01 arg1+0x0c]
+ str lr, [sp+0x08] // [V59 tmp57]
+ ldr r12, [sp+0x44] // [V01 arg1+0x10]
+ ; gcrRegs +[r12]
+ str r12, [sp] // [V60 tmp58]
+ ; GC ptr vars +{V60}
+ ldr r1, [sp+0x48] // [V01 arg1+0x14]
+ ; gcrRegs +[r1]
; byrRegs -[r1]
- cmp r9, 0
- beq SHORT G_M4102_IG24
- ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG04: ; bbWeight=0.44, gcrefRegs=0735 {r0 r2 r4 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
- mov r3, r8
- ; gcrRegs +[r3]
- mov lr, r0
- ; gcrRegs +[lr]
- b SHORT G_M4102_IG18
- ;; size=6 bbWeight=0.44 PerfScore 1.31
-G_M4102_IG05: ; bbWeight=0.50, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r2-r3 r9 lr]
- cmp r8, r0
- beq SHORT G_M4102_IG10
- ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M4102_IG06: ; bbWeight=0.44, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
- cmp r8, 0
- beq SHORT G_M4102_IG24
- ;; size=6 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG07: ; bbWeight=0.44, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
- cmp r0, 0
- beq SHORT G_M4102_IG24
+ cmp r2, r1
+ beq SHORT G_M4102_IG07
+ ;; size=52 bbWeight=1 PerfScore 19.00
+G_M4102_IG03: ; bbWeight=0.44, gcVars=00004100 {V50 V60}, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[r0 r4 r12]
+ cmp r2, 0
+ beq SHORT G_M4102_IG20
;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG08: ; bbWeight=0.44, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
- ldr r1, [r8+0x04]
- ldr r2, [r0+0x04]
- cmp r1, r2
- bne SHORT G_M4102_IG24
- ;; size=10 bbWeight=0.44 PerfScore 1.75
-G_M4102_IG09: ; bbWeight=0.50, gcrefRegs=0531 {r0 r4 r5 r8 r10}, byrefRegs=0000 {}, byref, isz
- add r2, r8, 8
- ; byrRegs +[r2]
- str r2, [sp+0x0C] // [V33 tmp31]
- ; GC ptr vars +{V33}
- add r1, r0, 8
- ; byrRegs +[r1]
- ldr r0, [r8+0x04]
- ; gcrRegs -[r0]
- lsls r2, r0, 1
- ; byrRegs -[r2]
- ldr r0, [sp+0x0C] // [V33 tmp31]
+G_M4102_IG04: ; bbWeight=0.44, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+ cmp r1, 0
+ beq SHORT G_M4102_IG20
+ ;; size=4 bbWeight=0.44 PerfScore 0.88
+G_M4102_IG05: ; bbWeight=0.44, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r2+0x04]
+ ldr r4, [r1+0x04]
+ cmp r0, r4
+ bne SHORT G_M4102_IG20
+ ;; size=8 bbWeight=0.44 PerfScore 1.75
+G_M4102_IG06: ; bbWeight=0.50, gcrefRegs=0726 {r1 r2 r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+ add r0, r2, 8
; byrRegs +[r0]
- movw r8, 0xd1ff
- ; gcrRegs -[r8]
- movt r8, 0xd1ff
- ldr r9, [r8]
- ; GC ptr vars -{V33}
- blx r9 // <unknown method>
+ adds r1, 8
+ ; gcrRegs -[r1]
+ ; byrRegs +[r1]
+ ldr r2, [r2+0x04]
+ ; gcrRegs -[r2]
+ lsls r2, r2, 1
+ movw r4, 0xd1ff
+ movt r4, 0xd1ff
+ ldr r4, [r4]
+ blx r4 // <unknown method>
; byrRegs -[r0-r1]
cmp r0, 0
- beq SHORT G_M4102_IG24
- ;; size=36 bbWeight=0.50 PerfScore 6.00
-G_M4102_IG10: ; bbWeight=0.50, gcrefRegs=0430 {r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- ldr lr, [sp+0x14] // [V58 tmp56]
- cmp r6, lr
- bne SHORT G_M4102_IG24
- ldr r3, [sp+0x04] // [V57 tmp55]
- ; gcrRegs +[r3]
- cmp r5, r3
- beq SHORT G_M4102_IG17
- ;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M4102_IG11: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- cmp r5, 0
- beq SHORT G_M4102_IG24
- ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG12: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- cmp r3, 0
- beq SHORT G_M4102_IG24
- ;; size=4 bbWeight=0.44 PerfScore 0.88
-G_M4102_IG13: ; bbWeight=0.44, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- ldr r6, [r5+0x04]
- ldr r0, [r3+0x04]
- cmp r6, r0
- bne SHORT G_M4102_IG24
- ;; size=8 bbWeight=0.44 PerfScore 1.75
-G_M4102_IG14: ; bbWeight=0.50, gcrefRegs=0438 {r3 r4 r5 r10}, byrefRegs=0000 {}, byref, isz
- ldr r0, [r3+0x04]
- cmp r0, r6
- beq SHORT G_M4102_IG15
- movs r0, 0
- b SHORT G_M4102_IG16
+ beq SHORT G_M4102_IG20
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M4102_IG07: ; bbWeight=0.50, gcrefRegs=0720 {r5 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
+ ldr r12, [sp] // [V60 tmp58]
+ ; gcrRegs +[r12]
+ cmp r8, r12
+ beq SHORT G_M4102_IG12
+ ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M4102_IG08: ; bbWeight=0.44, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+ cmp r8, 0
+ beq SHORT G_M4102_IG20
+ ;; size=6 bbWeight=0.44 PerfScore 0.88
+G_M4102_IG09: ; bbWeight=0.44, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+ cmp r12, 0
+ beq SHORT G_M4102_IG20
+ ;; size=6 bbWeight=0.44 PerfScore 0.88
+G_M4102_IG10: ; bbWeight=0.44, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+ ldr r1, [r8+0x04]
+ ldr r2, [r12+0x04]
+ cmp r1, r2
+ bne SHORT G_M4102_IG20
+ ;; size=12 bbWeight=0.44 PerfScore 1.75
+G_M4102_IG11: ; bbWeight=0.50, gcrefRegs=1720 {r5 r8 r9 r10 r12}, byrefRegs=0000 {}, byref, isz
+ add r0, r8, 8
+ ; byrRegs +[r0]
+ add r1, r12, 8
+ ; byrRegs +[r1]
+ ldr r2, [r8+0x04]
+ lsls r2, r2, 1
...
+22 (+29.73%) : 49333.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 5, 4 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> r3 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,20 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> r2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0 [V12,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V12 rat0 [V12,T05] ( 2, 2 ) int -> r0 "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V14 rat2 [V14,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V14 rat2 [V14,T03] ( 2, 2 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr}
- add r11, sp, 8
+ push {r4,r11,lr}
+ sub sp, 12
+ add r11, sp, 16
+ str r0, [r11-0x0C]
mov r4, r0
; gcrRegs +[r4]
- ;; size=10 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1]
ldr r0, [r4+0x10]
@@ -44,27 +46,36 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
; gcrRegs -[r0-r1]
; byrRegs +[r0]
cmp r0, 0
- beq SHORT G_M43979_IG04
+ beq SHORT G_M43979_IG05
;; size=22 bbWeight=1 PerfScore 8.00
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
ldr r3, [r0]
ldr r2, [r4+0x44]
; gcrRegs +[r2]
- b SHORT G_M43979_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r2]
+ ldr r0, [r4]
; byrRegs -[r0]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x60]
+ cmp r0, 0
+ bne SHORT G_M43979_IG07
+ ;; size=16 bbWeight=0.50 PerfScore 4.00
+G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+ b SHORT G_M43979_IG07
+ ;; size=2 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r2]
movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 12
+ pop {r4,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r2]
ldr r0, [r2+0x04]
cmp r3, r0
- bhs SHORT G_M43979_IG08
+ bhs SHORT G_M43979_IG09
add r0, r2, 8
; byrRegs +[r0]
lsls r3, r3, 2
@@ -72,10 +83,11 @@ G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4
; gcrRegs +[r0]
; byrRegs -[r0]
;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 12
+ pop {r4,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0 r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -83,7 +95,7 @@ G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 8, PerfScore 17.00, instruction count 27, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 96, prolog size 14, PerfScore 22.60, instruction count 37, allocated bytes for code 96 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -95,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 74 (0x00004a)
+ Function Length : 48 (0x00030) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,7 +119,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
- FF end
+ 03 add sp, sp, #12 ; opsize 16
+ A8 10 pop {r4,r11,lr} ; opsize 32
FF end
+22 (+29.73%) : 43394.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 5, 4 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> r3 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,20 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> r2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0 [V12,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V12 rat0 [V12,T05] ( 2, 2 ) int -> r0 "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V14 rat2 [V14,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V14 rat2 [V14,T03] ( 2, 2 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr}
- add r11, sp, 8
+ push {r4,r11,lr}
+ sub sp, 12
+ add r11, sp, 16
+ str r0, [r11-0x0C]
mov r4, r0
; gcrRegs +[r4]
- ;; size=10 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1]
ldr r0, [r4+0x10]
@@ -44,27 +46,36 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
; gcrRegs -[r0-r1]
; byrRegs +[r0]
cmp r0, 0
- beq SHORT G_M43979_IG04
+ beq SHORT G_M43979_IG05
;; size=22 bbWeight=1 PerfScore 8.00
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
ldr r3, [r0]
ldr r2, [r4+0x44]
; gcrRegs +[r2]
- b SHORT G_M43979_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r2]
+ ldr r0, [r4]
; byrRegs -[r0]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x60]
+ cmp r0, 0
+ bne SHORT G_M43979_IG07
+ ;; size=16 bbWeight=0.50 PerfScore 4.00
+G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+ b SHORT G_M43979_IG07
+ ;; size=2 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r2]
movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 12
+ pop {r4,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r2]
ldr r0, [r2+0x04]
cmp r3, r0
- bhs SHORT G_M43979_IG08
+ bhs SHORT G_M43979_IG09
add r0, r2, 8
; byrRegs +[r0]
lsls r3, r3, 2
@@ -72,10 +83,11 @@ G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4
; gcrRegs +[r0]
; byrRegs -[r0]
;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 12
+ pop {r4,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0 r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -83,7 +95,7 @@ G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 8, PerfScore 17.00, instruction count 27, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 96, prolog size 14, PerfScore 22.60, instruction count 37, allocated bytes for code 96 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -95,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 74 (0x00004a)
+ Function Length : 48 (0x00030) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,7 +119,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
- FF end
+ 03 add sp, sp, #12 ; opsize 16
+ A8 10 pop {r4,r11,lr} ; opsize 32
FF end
+24 (+32.43%) : 5259.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 3.50) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 5, 4 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> r3 ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -20,18 +20,20 @@
; V09 tmp4 [V09,T04] ( 3, 2.50) byref -> r0 single-def "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V11 tmp6 [V11,T07] ( 3, 1.50) ref -> r2 single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V12 rat0 [V12,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V12 rat0 [V12,T05] ( 2, 2 ) int -> r0 "Spilling to split statement for tree"
;* V13 rat1 [V13,T09] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V14 rat2 [V14,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V14 rat2 [V14,T03] ( 2, 2 ) int -> r0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 4
+; Lcl frame size = 12
G_M43979_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r3,r4,r11,lr}
- add r11, sp, 8
+ push {r4,r11,lr}
+ sub sp, 12
+ add r11, sp, 16
+ str r0, [r11-0x0C]
mov r4, r0
; gcrRegs +[r4]
- ;; size=10 bbWeight=1 PerfScore 3.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M43979_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r1]
ldr r0, [r4+0x10]
@@ -44,27 +46,36 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
; gcrRegs -[r0-r1]
; byrRegs +[r0]
cmp r0, 0
- beq SHORT G_M43979_IG04
+ beq SHORT G_M43979_IG05
;; size=22 bbWeight=1 PerfScore 8.00
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
ldr r3, [r0]
ldr r2, [r4+0x44]
; gcrRegs +[r2]
- b SHORT G_M43979_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r2]
+ ldr r0, [r4]
; byrRegs -[r0]
+ ldr r0, [r0+0x24]
+ ldr r0, [r0]
+ ldr r0, [r0+0x84]
+ cmp r0, 0
+ bne SHORT G_M43979_IG07
+ ;; size=18 bbWeight=0.50 PerfScore 4.00
+G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+ b SHORT G_M43979_IG07
+ ;; size=2 bbWeight=0.10 PerfScore 0.10
+G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r2]
movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 12
+ pop {r4,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r2]
ldr r0, [r2+0x04]
cmp r3, r0
- bhs SHORT G_M43979_IG08
+ bhs SHORT G_M43979_IG09
add r0, r2, 8
; byrRegs +[r0]
lsls r3, r3, 2
@@ -72,10 +83,11 @@ G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0014 {r2 r4
; gcrRegs +[r0]
; byrRegs -[r0]
;; size=14 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
- pop {r3,r4,r11,pc}
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
+ add sp, 12
+ pop {r4,r11,pc}
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M43979_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0 r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -83,7 +95,7 @@ G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 8, PerfScore 17.00, instruction count 27, allocated bytes for code 74 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 98, prolog size 14, PerfScore 22.60, instruction count 37, allocated bytes for code 98 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
@@ -95,7 +107,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 74 (0x00004a)
+ Function Length : 49 (0x00031) Actual length = 98 (0x000062)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,7 +119,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 18 pop {r3,r4,r11,lr} ; opsize 32
- FF end
+ 03 add sp, sp, #12 ; opsize 16
+ A8 10 pop {r4,r11,lr} ; opsize 32
FF end
realworld.run.linux.arm.checked.mch
-2 (-1.72%) : 18098.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
@@ -78,9 +78,8 @@ G_M20310_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs +[r3]
ldr r2, [r3+0x04]
cmp r2, -1
- bge SHORT G_M20310_IG07
- b SHORT G_M20310_IG03
- ;; size=32 bbWeight=2 PerfScore 30.00
+ blt SHORT G_M20310_IG03
+ ;; size=30 bbWeight=2 PerfScore 28.00
G_M20310_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
ldr r2, [r3+0x08]
ldr r3, [r3+0x0C]
@@ -108,7 +107,7 @@ G_M20310_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-; Total bytes of code 116, prolog size 6, PerfScore 84.50, instruction count 50, allocated bytes for code 116 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 114, prolog size 6, PerfScore 82.50, instruction count 49, allocated bytes for code 114 (MethodHash=5c1ab0a9) for method System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -120,7 +119,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 58 (0x0003a) Actual length = 116 (0x000074)
+ Function Length : 57 (0x00039) Actual length = 114 (0x000072)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-2 (-1.64%) : 5577.dasm - System.Collections.Generic.Dictionary
2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple
3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)@@ -73,9 +73,8 @@ G_M18821_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs +[r3]
ldr r2, [r3+0x04]
cmp r2, -1
- bge SHORT G_M18821_IG07
- b SHORT G_M18821_IG03
- ;; size=32 bbWeight=2 PerfScore 30.00
+ blt SHORT G_M18821_IG03
+ ;; size=30 bbWeight=2 PerfScore 28.00
G_M18821_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {r0 r3}, byref
ldr r2, [r3+0x10]
str r2, [r0+0x0C]
@@ -105,7 +104,7 @@ G_M18821_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-; Total bytes of code 122, prolog size 6, PerfScore 86.00, instruction count 53, allocated bytes for code 122 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 120, prolog size 6, PerfScore 84.00, instruction count 52, allocated bytes for code 120 (MethodHash=4fb9b67a) for method System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -117,7 +116,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 61 (0x0003d) Actual length = 122 (0x00007a)
+ Function Length : 60 (0x0003c) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-2 (-1.59%) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
@@ -72,9 +72,8 @@ G_M25445_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs +[r1]
ldr r3, [r1+0x08]
cmp r3, -1
- bge SHORT G_M25445_IG07
- b SHORT G_M25445_IG03
- ;; size=38 bbWeight=2 PerfScore 30.00
+ blt SHORT G_M25445_IG03
+ ;; size=36 bbWeight=2 PerfScore 28.00
G_M25445_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {r0 r1}, byref
ldr r1, [r1]
; gcrRegs +[r1]
@@ -105,7 +104,7 @@ G_M25445_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-; Total bytes of code 126, prolog size 6, PerfScore 84.50, instruction count 50, allocated bytes for code 126 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 124, prolog size 6, PerfScore 82.50, instruction count 49, allocated bytes for code 124 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -117,7 +116,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 63 (0x0003f) Actual length = 126 (0x00007e)
+ Function Length : 62 (0x0003e) Actual length = 124 (0x00007c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+26 (+10.24%) : 31645.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
+; V00 this [V00,T02] ( 6, 4 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T00] ( 6, 5 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator>
-; V02 arg2 [V02,T02] ( 6, 4 ) ubyte -> r5 single-def
+; V02 arg2 [V02,T03] ( 6, 4 ) ubyte -> r5 single-def
; V03 loc0 [V03,T06] ( 4, 2 ) ref -> r0 class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V04 loc1 [V04 ] ( 0, 0 ) byte -> zero-ref
-; V05 loc2 [V05,T03] ( 7, 4.50) int -> r0 single-def
+; V05 loc2 [V05,T01] ( 10, 6 ) int -> r0 single-def
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -45,42 +45,57 @@ G_M22690_IG02: ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
G_M22690_IG03: ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
cmp r0, r3
- beq SHORT G_M22690_IG05
+ beq SHORT G_M22690_IG06
movw r3, 0xd1ff
cmp r0, r3
- beq SHORT G_M22690_IG06
+ beq SHORT G_M22690_IG07
movw r3, 0xd1ff
sxth r3, r3
adds r0, r0, r3
cmp r0, 1
- bls SHORT G_M22690_IG05
- b SHORT G_M22690_IG16
+ bls SHORT G_M22690_IG06
+ b SHORT G_M22690_IG17
;; size=30 bbWeight=0.50 PerfScore 6.00
G_M22690_IG04: ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
cmp r0, r3
- bgt SHORT G_M22690_IG16
+ bgt SHORT G_M22690_IG05
movw r3, 0xd1ff
cmp r0, r3
- beq SHORT G_M22690_IG06
- b SHORT G_M22690_IG16
+ beq SHORT G_M22690_IG07
+ movw r1, 0xd1ff
+ ; gcrRegs -[r1]
+ cmp r0, r1
+ beq SHORT G_M22690_IG17
+ b SHORT G_M22690_IG17
+ ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M22690_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r4]
+ movw r3, 0xd1ff
+ cmp r0, r3
+ beq SHORT G_M22690_IG17
+ movw r3, 0xd1ff
+ cmp r0, r3
+ beq SHORT G_M22690_IG17
+ b SHORT G_M22690_IG17
;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M22690_IG05: ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
+G_M22690_IG06: ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r1 r4]
ldr r1, [r1+0x10]
ldr r0, [r1+0x0C]
; gcrRegs +[r0]
- b SHORT G_M22690_IG07
+ b SHORT G_M22690_IG08
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M22690_IG06: ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
+G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
ldr r0, [r1+0x14]
; gcrRegs +[r0]
ldr r0, [r0+0x0C]
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
+G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r1]
cmp r0, 0
- beq SHORT G_M22690_IG16
+ beq SHORT G_M22690_IG17
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -92,18 +107,18 @@ G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}
; gcrRegs -[r0]
subs r0, 9
cmp r0, 3
- bhi SHORT G_M22690_IG16
+ bhi SHORT G_M22690_IG17
movw r3, LOW ADDRESS J_M22690_DS00
movt r3, HIGH ADDRESS J_M22690_DS00
J_M22690_DS00 LABEL DWORD
- DD G_M22690_IG10
- DD G_M22690_IG08
- DD G_M22690_IG12
- DD G_M22690_IG14
+ DD G_M22690_IG11
+ DD G_M22690_IG09
+ DD G_M22690_IG13
+ DD G_M22690_IG15
ldr pc, [r3+4*r0]
;; size=42 bbWeight=0.50 PerfScore 8.00
-G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M22690_IG09: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
ldr r0, [r4+0x10]
; gcrRegs +[r0]
uxtb r3, r5
@@ -114,11 +129,11 @@ G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
ldr r12, [lr]
ldr lr, [r0]
;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG09: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop {r4,r5,r11,lr}
bx r12 // <unknown method>
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG10: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
ldr r0, [r4+0x10]
; gcrRegs +[r0]
@@ -130,11 +145,11 @@ G_M22690_IG10: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
ldr r12, [lr]
ldr lr, [r0]
;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG12: ; bbWeight=0.50, epilog, nogc, extend
pop {r4,r5,r11,lr}
bx r12 // <unknown method>
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG13: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
ldr r0, [r4+0x10]
; gcrRegs +[r0]
@@ -146,11 +161,11 @@ G_M22690_IG12: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
ldr r12, [lr]
ldr lr, [r0]
;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG14: ; bbWeight=0.50, epilog, nogc, extend
pop {r4,r5,r11,lr}
bx r12 // <unknown method>
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG14: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+G_M22690_IG15: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
ldr r0, [r4+0x10]
; gcrRegs +[r0]
@@ -162,21 +177,21 @@ G_M22690_IG14: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
ldr r12, [lr]
ldr lr, [r0]
;; size=24 bbWeight=0.50 PerfScore 4.00
-G_M22690_IG15: ; bbWeight=0.50, epilog, nogc, extend
+G_M22690_IG16: ; bbWeight=0.50, epilog, nogc, extend
pop {r4,r5,r11,lr}
bx r12 // <unknown method>
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M22690_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M22690_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[r0 r4]
pop {r4,r5,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-RWD00 dd G_M22690_IG10
- dd G_M22690_IG08
- dd G_M22690_IG12
- dd G_M22690_IG14
+RWD00 dd G_M22690_IG11
+ dd G_M22690_IG09
+ dd G_M22690_IG13
+ dd G_M22690_IG15
-; Total bytes of code 254, prolog size 8, PerfScore 51.50, instruction count 92, allocated bytes for code 254 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
+; Total bytes of code 280, prolog size 8, PerfScore 56.50, instruction count 102, allocated bytes for code 280 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -188,7 +203,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 127 (0x0007f) Actual length = 254 (0x0000fe)
+ Function Length : 140 (0x0008c) Actual length = 280 (0x000118)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+22 (+16.92%) : 32925.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:
@@ -8,21 +8,20 @@
; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> r5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
+; V00 arg0 [V00,T00] ( 6, 4.50) ref -> r5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode>
; V01 arg1 [V01,T01] ( 4, 3 ) ref -> r6 class-hnd single-def <System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]>
-; V02 loc0 [V02,T03] ( 5, 2.25) ref -> r0 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
-; V03 loc1 [V03,T04] ( 4, 2 ) ref -> r7 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
+; V02 loc0 [V02,T04] ( 5, 2.25) ref -> r0 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
+; V03 loc1 [V03,T05] ( 4, 2 ) ref -> r7 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
; V04 loc2 [V04,T02] ( 4, 2.75) ref -> r4 class-hnd exact <Microsoft.CodeAnalysis.CSharp.BoundEvaluationDecisionDagNode>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundEvaluationDecisionDagNode>
-; V07 tmp2 [V07,T05] ( 2, 2 ) ref -> r0 single-def "CASTCLASS eval op1"
+; V07 tmp2 [V07,T06] ( 2, 2 ) ref -> r0 single-def "CASTCLASS eval op1"
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundDagFieldEvaluation>
-;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
-; V10 tmp5 [V10,T06] ( 2, 2 ) ref -> r3 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
+; V09 tmp4 [V09,T03] ( 3, 2.50) ref -> r0 class-hnd "spilling QMark2" <<unknown class>>
+; V10 tmp5 [V10,T07] ( 2, 2 ) ref -> r3 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundDagTemp>
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol>
-; V13 cse0 [V13,T07] ( 3, 1.50) int -> r8 "CSE - moderate"
-; V14 cse1 [V14,T08] ( 2, 0.50) int -> r0 "CSE - conservative"
+; V13 cse0 [V13,T08] ( 3, 1.50) int -> r8 "CSE - moderate"
;
; Lcl frame size = 4
@@ -38,34 +37,53 @@ G_M26195_IG02: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
mov r4, r5
; gcrRegs +[r4]
cmp r4, 0
- beq SHORT G_M26195_IG08
+ beq SHORT G_M26195_IG04
;; size=6 bbWeight=1 PerfScore 3.00
G_M26195_IG03: ; bbWeight=0.25, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
ldr r0, [r4]
movw r3, 0xd1ff
movt r3, 0xd1ff
cmp r0, r3
- bne SHORT G_M26195_IG08
+ beq SHORT G_M26195_IG07
;; size=14 bbWeight=0.25 PerfScore 1.25
-G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M26195_IG04: ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r4]
+ mov r0, r5
+ ; gcrRegs +[r0]
+ cmp r0, 0
+ beq SHORT G_M26195_IG11
+ ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M26195_IG05: ; bbWeight=0.25, gcrefRegs=0061 {r0 r5 r6}, byrefRegs=0000 {}, byref, isz
+ ldr r0, [r0]
+ ; gcrRegs -[r0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ cmp r0, r3
+ beq SHORT G_M26195_IG11
+ ;; size=14 bbWeight=0.25 PerfScore 1.25
+G_M26195_IG06: ; bbWeight=0.12, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+ b SHORT G_M26195_IG11
+ ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M26195_IG07: ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r4]
ldr r0, [r5+0x0C]
; gcrRegs +[r0]
cmp r0, 0
- beq SHORT G_M26195_IG08
+ beq SHORT G_M26195_IG11
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M26195_IG05: ; bbWeight=0.25, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M26195_IG08: ; bbWeight=0.25, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
ldr r3, [r0]
movw r2, 0xd1ff
movt r2, 0xd1ff
cmp r3, r2
- bne SHORT G_M26195_IG08
+ bne SHORT G_M26195_IG11
;; size=14 bbWeight=0.25 PerfScore 1.25
-G_M26195_IG06: ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M26195_IG09: ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
ldr r3, [r0+0x0C]
; gcrRegs +[r3]
ldr r3, [r3+0x10]
cmp r3, 0
- bne SHORT G_M26195_IG08
+ bne SHORT G_M26195_IG11
ldr r7, [r0+0x10]
; gcrRegs +[r7]
mov r0, r7
@@ -76,7 +94,7 @@ G_M26195_IG06: ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0
blx r3 // <unknown method>
; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M26195_IG08
+ beq SHORT G_M26195_IG11
mov r0, r7
ldr r3, [r8+0x14]
blx r3 // <unknown method>
@@ -94,10 +112,10 @@ G_M26195_IG06: ; bbWeight=0.50, gcrefRegs=0071 {r0 r4 r5 r6}, byrefRegs=0
; gcrRegs -[r1 r6]
; gcr arg pop 0
;; size=52 bbWeight=0.50 PerfScore 10.50
-G_M26195_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop {r3,r4,r5,r6,r7,r8,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M26195_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
+G_M26195_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0] +[r5-r6]
mov r0, r5
; gcrRegs +[r0]
@@ -107,14 +125,14 @@ G_M26195_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0060 {r5 r6
movt r3, 0xd1ff
ldr r3, [r3]
;; size=14 bbWeight=0.50 PerfScore 2.50
-G_M26195_IG09: ; bbWeight=0.50, epilog, nogc, extend
+G_M26195_IG12: ; bbWeight=0.50, epilog, nogc, extend
add sp, 4
pop {r4,r5,r6,r7,r8,r11,lr}
bx r3 // <unknown method>
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 130, prolog size 12, PerfScore 26.00, instruction count 50, allocated bytes for code 130 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
+; Total bytes of code 152, prolog size 12, PerfScore 28.88, instruction count 59, allocated bytes for code 152 (MethodHash=af9999ac) for method Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
; ============================================================
Unwind Info:
@@ -126,7 +144,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 65 (0x00041) Actual length = 130 (0x000082)
+ Function Length : 76 (0x0004c) Actual length = 152 (0x000098)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+26 (+35.14%) : 11360.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 6, 4.50) ref -> r4 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 7, 5 ) ref -> r4 this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> r0 class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -38,39 +38,54 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
; gcrRegs -[r1] +[r0]
; gcr arg pop 0
cmp r0, 0
- beq SHORT G_M3270_IG05
+ bne SHORT G_M3270_IG04
;; size=24 bbWeight=1 PerfScore 8.00
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
+ mov r1, r4
+ ; gcrRegs +[r1]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ blx r3 // CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[r1 r4] +[r0]
+ ; gcr arg pop 0
+ cmp r0, 0
+ bne SHORT G_M3270_IG06
+ b SHORT G_M3270_IG06
+ ;; size=26 bbWeight=0.50 PerfScore 4.50
+G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r0] +[r4]
ldr r0, [r4+0x0C]
; gcrRegs +[r0]
cmp r0, 0
- beq SHORT G_M3270_IG05
+ beq SHORT G_M3270_IG06
ldr r1, [r4+0x10]
; gcrRegs +[r1]
cmp r1, 0
- bne SHORT G_M3270_IG05
+ bne SHORT G_M3270_IG06
ldr r0, [r0+0x04]
ldr r1, [r4+0x04]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
;; size=26 bbWeight=0.50 PerfScore 5.50
-G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
add sp, 4
pop {r4,r11,lr}
bx r3 // FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M3270_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3270_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0-r1 r4]
movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M3270_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
pop {r3,r4,r11,pc}
;; size=4 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 74, prolog size 10, PerfScore 19.00, instruction count 27, allocated bytes for code 74 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 10, PerfScore 23.50, instruction count 36, allocated bytes for code 100 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +97,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 74 (0x00004a)
+ Function Length : 50 (0x00032) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
Details
Improvements/regressions per collection
Collection
Contexts with diffs
Improvements
Regressions
Same size
Improvements (bytes)
Regressions (bytes)
benchmarks.run.linux.arm.checked.mch
459
81
110
268
-300
+918
benchmarks.run_pgo.linux.arm.checked.mch
45,529
4,666
36,068
4,795
-21,512
+1,054,490
benchmarks.run_tiered.linux.arm.checked.mch
393
76
95
222
-296
+796
coreclr_tests.run.linux.arm.checked.mch
53,009
11,126
17,708
24,175
-30,766
+191,190
libraries.crossgen2.linux.arm.checked.mch
878
90
163
625
-422
+1,120
libraries.pmi.linux.arm.checked.mch
27,941
3,440
11,263
13,238
-12,674
+78,626
libraries_tests.run.linux.arm.Release.mch
109,226
19,229
63,269
26,728
-85,768
+979,476
librariestestsnotieredcompilation.run.linux.arm.Release.mch
64,233
8,064
34,369
21,800
-25,818
+186,610
realworld.run.linux.arm.checked.mch
364
49
132
183
-160
+1,520
302,032
46,821
163,177
92,034
-177,716
+2,494,746
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
benchmarks.run.linux.arm.checked.mch
46,284
5,344
40,940
1,203 (2.53%)
1,208 (2.54%)
benchmarks.run_pgo.linux.arm.checked.mch
155,310
54,949
100,361
3,303 (2.08%)
3,309 (2.09%)
benchmarks.run_tiered.linux.arm.checked.mch
81,826
45,099
36,727
1,118 (1.35%)
1,122 (1.35%)
coreclr_tests.run.linux.arm.checked.mch
471,777
258,996
212,781
7,540 (1.57%)
7,543 (1.57%)
libraries.crossgen2.linux.arm.checked.mch
193,690
14
193,676
0 (0.00%)
0 (0.00%)
libraries.pmi.linux.arm.checked.mch
270,798
6
270,792
7,820 (2.81%)
7,827 (2.81%)
libraries_tests.run.linux.arm.Release.mch
707,758
441,682
266,076
18,876 (2.60%)
18,888 (2.60%)
librariestestsnotieredcompilation.run.linux.arm.Release.mch
273,849
21,565
252,284
33,275 (10.83%)
33,279 (10.84%)
realworld.run.linux.arm.checked.mch
36,398
157
36,241
1,408 (3.72%)
1,412 (3.73%)
2,237,690
827,812
1,409,878
74,543 (3.22%)
74,588 (3.23%)
jit-analyze output
benchmarks.run.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15302516 (overridden on cmd)
Total bytes of diff: 15303134 (overridden on cmd)
Total bytes of delta: 618 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
38 : 1878.dasm (1.67 % of base)
36 : 15039.dasm (2.94 % of base)
26 : 20850.dasm (1.24 % of base)
26 : 26046.dasm (0.55 % of base)
24 : 20840.dasm (6.19 % of base)
24 : 25023.dasm (2.69 % of base)
24 : 10794.dasm (0.24 % of base)
24 : 5476.dasm (6.19 % of base)
20 : 14865.dasm (1.63 % of base)
20 : 15155.dasm (0.34 % of base)
20 : 24759.dasm (2.33 % of base)
20 : 31069.dasm (12.35 % of base)
18 : 24793.dasm (0.80 % of base)
16 : 8816.dasm (1.77 % of base)
14 : 16608.dasm (1.64 % of base)
14 : 7169.dasm (3.23 % of base)
14 : 8803.dasm (0.69 % of base)
12 : 25396.dasm (3.24 % of base)
12 : 7374.dasm (2.47 % of base)
12 : 22584.dasm (8.82 % of base)
Top file improvements (bytes):
-14 : 42901.dasm (-2.68 % of base)
-12 : 10942.dasm (-1.07 % of base)
-12 : 28650.dasm (-1.08 % of base)
-12 : 4892.dasm (-1.56 % of base)
-12 : 5307.dasm (-1.57 % of base)
-10 : 12147.dasm (-0.83 % of base)
-10 : 24173.dasm (-1.21 % of base)
-10 : 28367.dasm (-0.54 % of base)
-8 : 10687.dasm (-0.08 % of base)
-8 : 14544.dasm (-0.08 % of base)
-8 : 11534.dasm (-0.71 % of base)
-6 : 2074.dasm (-0.12 % of base)
-6 : 38036.dasm (-0.07 % of base)
-6 : 5679.dasm (-1.69 % of base)
-4 : 14058.dasm (-0.80 % of base)
-4 : 18001.dasm (-0.97 % of base)
-4 : 3513.dasm (-0.40 % of base)
-4 : 6211.dasm (-1.23 % of base)
-4 : 12209.dasm (-0.14 % of base)
-4 : 1294.dasm (-0.44 % of base)
67 total files with Code Size differences (36 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
38 (1.67 % of base) : 1878.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
36 (2.94 % of base) : 15039.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (FullOpts)
26 (0.55 % of base) : 26046.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
26 (1.24 % of base) : 20850.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
24 (0.24 % of base) : 10794.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
24 (6.19 % of base) : 5476.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
24 (2.69 % of base) : 25023.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (FullOpts)
24 (6.19 % of base) : 20840.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
20 (2.33 % of base) : 24759.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
20 (12.35 % of base) : 31069.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
20 (1.63 % of base) : 14865.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
20 (0.34 % of base) : 15155.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
18 (0.80 % of base) : 24793.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
16 (1.77 % of base) : 8816.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
14 (3.23 % of base) : 7169.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
14 (0.69 % of base) : 8803.dasm - System.Text.StringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.Text.StringBuilder:this (FullOpts)
14 (1.64 % of base) : 16608.dasm - System.Xml.XmlBinaryReader:ReadElementContentAsInt():int:this (FullOpts)
12 (1.75 % of base) : 25368.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
12 (2.91 % of base) : 24756.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (FullOpts)
12 (3.19 % of base) : 25298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
Top method improvements (bytes):
-14 (-2.68 % of base) : 42901.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (FullOpts)
-12 (-1.57 % of base) : 5307.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
-12 (-1.56 % of base) : 4892.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
-12 (-1.08 % of base) : 28650.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (FullOpts)
-12 (-1.07 % of base) : 10942.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (FullOpts)
-10 (-0.54 % of base) : 28367.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
-10 (-1.21 % of base) : 24173.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
-10 (-0.83 % of base) : 12147.dasm - System.Collections.Generic.PriorityQueue`2[System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Guid,System.Guid]]):this (FullOpts)
-8 (-0.08 % of base) : 14544.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
-8 (-0.08 % of base) : 10687.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
-8 (-0.71 % of base) : 11534.dasm - System.Collections.Utils:FillCollections[System.__Canon,System.__Canon](byref,int,System.__Canon[]) (FullOpts)
-6 (-0.07 % of base) : 38036.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (FullOpts)
-6 (-1.69 % of base) : 5679.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
-6 (-0.12 % of base) : 2074.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
-4 (-0.40 % of base) : 3513.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:TryInsert(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem,ubyte):ubyte:this (FullOpts)
-4 (-0.44 % of base) : 1294.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.ValueTuple`2[System.__Canon,int]]:TryInsert(System.__Canon,System.ValueTuple`2[System.__Canon,int],ubyte):ubyte:this (FullOpts)
-4 (-1.03 % of base) : 23946.dasm - System.Diagnostics.ProcessManager+<EnumerateProcessIds>d__13:MoveNext():ubyte:this (FullOpts)
-4 (-0.14 % of base) : 12209.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (FullOpts)
-4 (-0.80 % of base) : 14058.dasm - System.Security.Cryptography.AesImplementation:CreateTransform(ubyte[],ubyte[],ubyte):System.Security.Cryptography.UniversalCryptoTransform:this (FullOpts)
-4 (-0.97 % of base) : 18001.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
Top method regressions (percentages):
20 (12.35 % of base) : 31069.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
12 (8.82 % of base) : 22584.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (FullOpts)
24 (6.19 % of base) : 5476.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
24 (6.19 % of base) : 20840.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (FullOpts)
12 (5.17 % of base) : 36416.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
10 (5.15 % of base) : 25915.dasm - Microsoft.CodeAnalysis.BindingDiagnosticBag`1[System.__Canon]:AddDependencies(System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
6 (5.08 % of base) : 18555.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
10 (4.17 % of base) : 7960.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
8 (3.81 % of base) : 27828.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
12 (3.24 % of base) : 25396.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
14 (3.23 % of base) : 7169.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
12 (3.19 % of base) : 25298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
36 (2.94 % of base) : 15039.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (FullOpts)
12 (2.91 % of base) : 24756.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (FullOpts)
12 (2.84 % of base) : 17756.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
6 (2.70 % of base) : 25481.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
24 (2.69 % of base) : 25023.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (FullOpts)
8 (2.58 % of base) : 15668.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
12 (2.47 % of base) : 7374.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (FullOpts)
20 (2.33 % of base) : 24759.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
Top method improvements (percentages):
-14 (-2.68 % of base) : 42901.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (FullOpts)
-2 (-1.75 % of base) : 11547.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
-6 (-1.69 % of base) : 5679.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
-2 (-1.59 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
-2 (-1.59 % of base) : 4457.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-12 (-1.57 % of base) : 5307.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (FullOpts)
-12 (-1.56 % of base) : 4892.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
-2 (-1.54 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.52 % of base) : 8339.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.41 % of base) : 1783.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 4662.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 14407.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 8661.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 15955.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 27704.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 29170.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.41 % of base) : 36833.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-4 (-1.23 % of base) : 6211.dasm - Utf8Json.JsonReader:ReadStringSegmentRaw():System.ArraySegment`1[ubyte]:this (FullOpts)
-10 (-1.21 % of base) : 24173.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (FullOpts)
-2 (-1.20 % of base) : 4430.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
benchmarks.run_pgo.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 60229150 (overridden on cmd)
Total bytes of diff: 61262128 (overridden on cmd)
Total bytes of delta: 1032978 (1.72 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
488 : 101322.dasm (5.28 % of base)
410 : 92418.dasm (5.55 % of base)
326 : 93107.dasm (7.94 % of base)
322 : 92518.dasm (5.98 % of base)
302 : 93144.dasm (6.83 % of base)
292 : 92458.dasm (5.52 % of base)
272 : 100848.dasm (6.15 % of base)
242 : 101751.dasm (2.93 % of base)
206 : 93075.dasm (3.50 % of base)
188 : 92821.dasm (4.41 % of base)
188 : 125751.dasm (6.14 % of base)
188 : 131495.dasm (6.14 % of base)
184 : 67520.dasm (15.21 % of base)
182 : 121564.dasm (7.82 % of base)
182 : 126924.dasm (7.82 % of base)
182 : 78948.dasm (7.82 % of base)
182 : 111432.dasm (7.82 % of base)
182 : 120688.dasm (7.82 % of base)
182 : 128628.dasm (7.82 % of base)
182 : 136612.dasm (7.82 % of base)
Top file improvements (bytes):
-162 : 55845.dasm (-5.85 % of base)
-78 : 102625.dasm (-1.87 % of base)
-70 : 114076.dasm (-3.03 % of base)
-64 : 81602.dasm (-4.84 % of base)
-62 : 128815.dasm (-5.59 % of base)
-62 : 120872.dasm (-5.59 % of base)
-58 : 55880.dasm (-6.81 % of base)
-56 : 67577.dasm (-6.57 % of base)
-50 : 98102.dasm (-4.95 % of base)
-46 : 148469.dasm (-3.62 % of base)
-46 : 106590.dasm (-1.28 % of base)
-44 : 140411.dasm (-4.06 % of base)
-44 : 37196.dasm (-4.06 % of base)
-42 : 131032.dasm (-3.30 % of base)
-42 : 137886.dasm (-3.30 % of base)
-42 : 144559.dasm (-3.30 % of base)
-42 : 152916.dasm (-4.41 % of base)
-40 : 71178.dasm (-2.07 % of base)
-40 : 79092.dasm (-4.83 % of base)
-40 : 99786.dasm (-3.11 % of base)
81 total files with Code Size differences (41 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
488 (5.28 % of base) : 101322.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Tier0-FullOpts)
410 (5.55 % of base) : 92418.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ResourceDescription],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.RebuildData,Microsoft.CodeAnalysis.CodeGen.CompilationTestData,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this (Tier1)
326 (7.94 % of base) : 93107.dasm - System.Reflection.PortableExecutable.ManagedPEBuilder:SerializeTextSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (Tier1)
322 (5.98 % of base) : 92518.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindSimpleBinaryOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
302 (6.83 % of base) : 93144.dasm - System.Reflection.PortableExecutable.PEBuilder:WritePEHeader(System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.PEDirectoriesBuilder,System.Collections.Immutable.ImmutableArray`1[System.Reflection.PortableExecutable.PEBuilder+SerializedSection]):this (Tier1)
292 (5.52 % of base) : 92458.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CompileMethods(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,System.Predicate`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal],System.Threading.CancellationToken):ubyte:this (Tier1)
272 (6.15 % of base) : 100848.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseLocalDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax],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,byref):this (Tier1)
242 (2.93 % of base) : 101751.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)
206 (3.50 % of base) : 93075.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
188 (4.41 % of base) : 92821.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:<EmitInstanceCallExpression>g__emitArgumentsAndCallEpilogue|152_2(Microsoft.CodeAnalysis.CSharp.BoundCall,int,int):this (Tier1)
188 (6.14 % of base) : 125751.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
188 (6.14 % of base) : 131495.dasm - System.Reflection.InvokerEmitUtil:EmitCallAndReturnHandling(System.Reflection.Emit.ILGenerator,System.Reflection.MethodBase,ubyte,ubyte) (Tier1)
184 (15.21 % of base) : 67520.dasm - System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (Tier1)
182 (7.82 % of base) : 121564.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
182 (7.82 % of base) : 126924.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
182 (7.82 % of base) : 78948.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
182 (7.82 % of base) : 111432.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
182 (7.82 % of base) : 120688.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
182 (7.82 % of base) : 128628.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
182 (7.82 % of base) : 136612.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
Top method improvements (bytes):
-162 (-5.85 % of base) : 55845.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
-78 (-1.87 % of base) : 102625.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:ApplyNullableTransforms(ubyte,System.Collections.Immutable.ImmutableArray`1[ubyte],byref,byref):ubyte:this (Tier1)
-70 (-3.03 % of base) : 114076.dasm - System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]:InvokeCore(System.Threading.Tasks.Task):this (Tier1)
-64 (-4.84 % of base) : 81602.dasm - System.Runtime.Serialization.CodeGenerator:Ldelem(System.Type):this (Tier1)
-62 (-5.59 % of base) : 128815.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-62 (-5.59 % of base) : 120872.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-58 (-6.81 % of base) : 55880.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Type):this (Tier1)
-56 (-6.57 % of base) : 67577.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Type):this (Tier1)
-50 (-4.95 % of base) : 98102.dasm - System.Text.Json.Utf8JsonWriter:Grow(int):this (Tier1)
-46 (-3.62 % of base) : 148469.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-46 (-1.28 % of base) : 106590.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-44 (-4.06 % of base) : 140411.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-44 (-4.06 % of base) : 37196.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-42 (-3.30 % of base) : 131032.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-42 (-3.30 % of base) : 137886.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-42 (-3.30 % of base) : 144559.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-42 (-4.41 % of base) : 152916.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label):this (Tier1)
-40 (-3.11 % of base) : 99786.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
-40 (-4.83 % of base) : 79092.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Type):this (Tier1)
-40 (-2.07 % of base) : 71178.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
Top method regressions (percentages):
12 (28.57 % of base) : 145923.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
14 (25.93 % of base) : 90234.dasm - Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
62 (25.41 % of base) : 3869.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
30 (25.00 % of base) : 94070.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
30 (25.00 % of base) : 112403.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
30 (25.00 % of base) : 40255.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
16 (24.24 % of base) : 86835.dasm - Microsoft.CodeAnalysis.DiagnosticBag:Free():this (Tier1)
74 (23.13 % of base) : 90507.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
16 (20.51 % of base) : 25600.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
16 (20.51 % of base) : 148015.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
16 (20.51 % of base) : 54719.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
16 (20.51 % of base) : 78889.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
16 (20.51 % of base) : 147175.dasm - System.Collections.Generic.Stack`1[System.__Canon]:TryPop(byref):ubyte:this (Tier1)
30 (20.27 % of base) : 131822.dasm - System.Net.Sockets.Socket:UpdateLocalEndPointOnConnect():this (Tier1)
24 (20.00 % of base) : 118748.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
24 (20.00 % of base) : 72156.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]:BuildStateFlags(System.Text.RegularExpressions.Symbolic.ISolver`1[ulong],ubyte):ubyte:this (Tier1)
92 (19.83 % of base) : 103539.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label):this (Tier1)
92 (19.83 % of base) : 71476.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label):this (Tier1)
10 (18.52 % of base) : 92377.dasm - System.Reflection.PortableExecutable.ManagedTextSection:get_SizeOfImportTable():int:this (Tier1)
14 (17.50 % of base) : 87988.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
Top method improvements (percentages):
-10 (-19.23 % of base) : 62149.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
-10 (-16.13 % of base) : 112114.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 128459.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 78326.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 108135.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 111211.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 107745.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 127335.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 73873.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-10 (-16.13 % of base) : 74843.dasm - BenchmarkDotNet.Characteristics.CharacteristicObject:HasValue(BenchmarkDotNet.Characteristics.Characteristic):ubyte:this (Tier1)
-4 (-13.33 % of base) : 91936.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
-4 (-9.09 % of base) : 47965.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 24573.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 3534.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 31393.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 38381.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 117465.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 129505.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 17325.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-9.09 % of base) : 99297.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
benchmarks.run_tiered.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 22642948 (overridden on cmd)
Total bytes of diff: 22643448 (overridden on cmd)
Total bytes of delta: 500 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
38 : 14496.dasm (1.67 % of base)
36 : 31113.dasm (2.94 % of base)
26 : 40376.dasm (1.24 % of base)
26 : 52888.dasm (0.55 % of base)
24 : 26764.dasm (0.24 % of base)
24 : 40364.dasm (6.19 % of base)
24 : 47589.dasm (2.69 % of base)
24 : 9380.dasm (6.19 % of base)
20 : 63411.dasm (12.35 % of base)
20 : 32024.dasm (0.34 % of base)
20 : 46969.dasm (2.33 % of base)
18 : 47096.dasm (0.80 % of base)
16 : 18172.dasm (1.77 % of base)
14 : 8190.dasm (3.23 % of base)
12 : 16548.dasm (0.66 % of base)
12 : 34558.dasm (2.84 % of base)
12 : 4862.dasm (2.54 % of base)
12 : 45371.dasm (8.82 % of base)
12 : 46966.dasm (2.91 % of base)
12 : 48344.dasm (1.75 % of base)
Top file improvements (bytes):
-18 : 4627.dasm (-1.98 % of base)
-14 : 76726.dasm (-2.68 % of base)
-12 : 22852.dasm (-1.07 % of base)
-12 : 58169.dasm (-1.08 % of base)
-12 : 17888.dasm (-1.57 % of base)
-12 : 20305.dasm (-1.56 % of base)
-10 : 57556.dasm (-0.54 % of base)
-10 : 25999.dasm (-0.83 % of base)
-10 : 54615.dasm (-1.21 % of base)
-8 : 25641.dasm (-0.71 % of base)
-8 : 68045.dasm (-0.08 % of base)
-8 : 24940.dasm (-0.08 % of base)
-6 : 68042.dasm (-0.07 % of base)
-6 : 14413.dasm (-0.12 % of base)
-4 : 47818.dasm (-0.92 % of base)
-4 : 19238.dasm (-1.23 % of base)
-4 : 27393.dasm (-0.14 % of base)
-4 : 29461.dasm (-0.80 % of base)
-4 : 73294.dasm (-0.12 % of base)
-4 : 5025.dasm (-0.40 % of base)
64 total files with Code Size differences (35 improved, 29 regressed), 20 unchanged.
Top method regressions (bytes):
38 (1.67 % of base) : 14496.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
36 (2.94 % of base) : 31113.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
26 (0.55 % of base) : 52888.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
26 (1.24 % of base) : 40376.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (Tier0-FullOpts)
24 (0.24 % of base) : 26764.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
24 (6.19 % of base) : 9380.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier0-FullOpts)
24 (2.69 % of base) : 47589.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier0-FullOpts)
24 (6.19 % of base) : 40364.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (Tier0-FullOpts)
20 (2.33 % of base) : 46969.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier0-FullOpts)
20 (12.35 % of base) : 63411.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
20 (0.34 % of base) : 32024.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (Tier0-FullOpts)
18 (0.80 % of base) : 47096.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
16 (1.77 % of base) : 18172.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (Tier0-FullOpts)
14 (3.23 % of base) : 8190.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
12 (0.66 % of base) : 16548.dasm - Interop+OpenSsl:AllocateSslHandle(System.Net.Security.SslAuthenticationOptions):Microsoft.Win32.SafeHandles.SafeSslHandle (Tier0-FullOpts)
12 (1.75 % of base) : 48344.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (Tier0-FullOpts)
12 (2.91 % of base) : 46966.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier0-FullOpts)
12 (3.19 % of base) : 48198.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
12 (3.24 % of base) : 48407.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
12 (2.53 % of base) : 4625.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
Top method improvements (bytes):
-18 (-1.98 % of base) : 4627.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
-14 (-2.68 % of base) : 76726.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (Tier0-FullOpts)
-12 (-1.57 % of base) : 17888.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (Tier0-FullOpts)
-12 (-1.56 % of base) : 20305.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (Tier0-FullOpts)
-12 (-1.08 % of base) : 58169.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon],int,ubyte):ubyte:this (Tier0-FullOpts)
-12 (-1.07 % of base) : 22852.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],ubyte]:TryInsert(System.ValueTuple`2[System.__Canon,System.__Canon],ubyte,ubyte):ubyte:this (Tier0-FullOpts)
-10 (-0.54 % of base) : 57556.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier0-FullOpts)
-10 (-1.21 % of base) : 54615.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (Tier0-FullOpts)
-10 (-0.83 % of base) : 25999.dasm - System.Collections.Generic.PriorityQueue`2[System.Guid,System.Guid]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Guid,System.Guid]]):this (Tier0-FullOpts)
-8 (-0.08 % of base) : 68045.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (Tier1)
-8 (-0.08 % of base) : 24940.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (Tier1)
-8 (-0.71 % of base) : 25641.dasm - System.Collections.Utils:FillCollections[System.__Canon,System.__Canon](byref,int,System.__Canon[]) (Tier0-FullOpts)
-6 (-0.07 % of base) : 68042.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
-6 (-0.12 % of base) : 14413.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
-4 (-0.92 % of base) : 47818.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (Tier0-FullOpts)
-4 (-0.40 % of base) : 5025.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:TryInsert(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem,ubyte):ubyte:this (Tier0-FullOpts)
-4 (-0.12 % of base) : 73294.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (Tier0-FullOpts)
-4 (-0.14 % of base) : 27393.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteStartAttribute(System.String,System.String,System.String):this (Tier1)
-4 (-0.80 % of base) : 29461.dasm - System.Security.Cryptography.AesImplementation:CreateTransform(ubyte[],ubyte[],ubyte):System.Security.Cryptography.UniversalCryptoTransform:this (Tier1)
-4 (-1.23 % of base) : 19238.dasm - Utf8Json.JsonReader:ReadStringSegmentRaw():System.ArraySegment`1[ubyte]:this (Tier0-FullOpts)
Top method regressions (percentages):
20 (12.35 % of base) : 63411.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
12 (8.82 % of base) : 45371.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableArray():System.__Canon:this (Tier0-FullOpts)
24 (6.19 % of base) : 9380.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (Tier0-FullOpts)
24 (6.19 % of base) : 40364.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:FindValue(ulong):byref:this (Tier0-FullOpts)
12 (5.17 % of base) : 66499.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
10 (5.15 % of base) : 49574.dasm - Microsoft.CodeAnalysis.BindingDiagnosticBag`1[System.__Canon]:AddDependencies(System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier0-FullOpts)
6 (5.08 % of base) : 37079.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (Tier0-FullOpts)
12 (3.24 % of base) : 48407.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
14 (3.23 % of base) : 8190.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
12 (3.19 % of base) : 48198.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (Tier0-FullOpts)
36 (2.94 % of base) : 31113.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
12 (2.91 % of base) : 46966.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier0-FullOpts)
12 (2.84 % of base) : 34558.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (Tier1)
24 (2.69 % of base) : 47589.dasm - System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryInsert(System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[System.__Canon],ubyte):ubyte:this (Tier0-FullOpts)
8 (2.58 % of base) : 33993.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (Tier1)
12 (2.54 % of base) : 4862.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,System.__Canon]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
12 (2.53 % of base) : 4625.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
20 (2.33 % of base) : 46969.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier0-FullOpts)
10 (2.19 % of base) : 31152.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (Tier0-FullOpts)
8 (2.16 % of base) : 17892.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (Tier0-FullOpts)
Top method improvements (percentages):
-14 (-2.68 % of base) : 76726.dasm - MessagePack.Formatters.ListFormatter`1[int]:Deserialize(ubyte[],int,MessagePack.IFormatterResolver,byref):System.Collections.Generic.List`1[int]:this (Tier0-FullOpts)
-18 (-1.98 % of base) : 4627.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
-2 (-1.75 % of base) : 25932.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.59 % of base) : 271.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.59 % of base) : 4905.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-12 (-1.57 % of base) : 17888.dasm - System.Collections.Generic.Dictionary`2[int,int]:TryInsert(int,int,ubyte):ubyte:this (Tier0-FullOpts)
-12 (-1.56 % of base) : 20305.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (Tier0-FullOpts)
-2 (-1.54 % of base) : 539.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.52 % of base) : 16912.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.41 % of base) : 28371.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 34060.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 59573.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 17743.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 21203.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 56298.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 66684.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.41 % of base) : 8541.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-4 (-1.23 % of base) : 19238.dasm - Utf8Json.JsonReader:ReadStringSegmentRaw():System.ArraySegment`1[ubyte]:this (Tier0-FullOpts)
-10 (-1.21 % of base) : 54615.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (Tier0-FullOpts)
-2 (-1.20 % of base) : 4744.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (Tier0-FullOpts)
coreclr_tests.run.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 321630692 (overridden on cmd)
Total bytes of diff: 321791116 (overridden on cmd)
Total bytes of delta: 160424 (0.05 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
382 : 278622.dasm (4.98 % of base)
354 : 212298.dasm (3.32 % of base)
354 : 424824.dasm (3.32 % of base)
272 : 463417.dasm (3.49 % of base)
212 : 307529.dasm (4.42 % of base)
212 : 304954.dasm (4.42 % of base)
208 : 418409.dasm (2.53 % of base)
208 : 277806.dasm (4.52 % of base)
204 : 309189.dasm (2.64 % of base)
202 : 278611.dasm (2.40 % of base)
192 : 312509.dasm (4.80 % of base)
192 : 310195.dasm (4.80 % of base)
178 : 278704.dasm (1.36 % of base)
176 : 143349.dasm (1.66 % of base)
172 : 383307.dasm (1.77 % of base)
172 : 425197.dasm (3.23 % of base)
162 : 153429.dasm (1.67 % of base)
160 : 309667.dasm (3.84 % of base)
156 : 272739.dasm (1.90 % of base)
136 : 312338.dasm (3.26 % of base)
Top file improvements (bytes):
-304 : 123635.dasm (-22.69 % of base)
-102 : 158360.dasm (-2.15 % of base)
-98 : 303349.dasm (-2.03 % of base)
-96 : 276682.dasm (-1.98 % of base)
-96 : 1994.dasm (-1.98 % of base)
-94 : 212359.dasm (-2.10 % of base)
-86 : 133686.dasm (-1.77 % of base)
-86 : 313378.dasm (-1.77 % of base)
-82 : 2026.dasm (-2.47 % of base)
-82 : 200115.dasm (-1.84 % of base)
-80 : 409573.dasm (-1.50 % of base)
-62 : 167907.dasm (-1.46 % of base)
-62 : 401667.dasm (-6.53 % of base)
-60 : 141871.dasm (-1.25 % of base)
-44 : 416102.dasm (-1.25 % of base)
-44 : 198113.dasm (-1.25 % of base)
-44 : 311329.dasm (-0.32 % of base)
-36 : 278603.dasm (-2.08 % of base)
-36 : 313945.dasm (-0.46 % of base)
-36 : 478209.dasm (-0.46 % of base)
96 total files with Code Size differences (56 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
382 (4.98 % of base) : 278622.dasm - System.Reflection.PortableExecutable.PEHeader:.ctor(byref):this (Tier1)
354 (3.32 % of base) : 424824.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,int,ushort,double,long,ulong):int (FullOpts)
354 (3.32 % of base) : 212298.dasm - ILGEN_0x372a9ae6:Method_0xdc6ff1a4(byte,byte,int,int,ushort,double,long,ulong):int (Tier0-FullOpts)
272 (3.49 % of base) : 463417.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
212 (4.42 % of base) : 307529.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
212 (4.42 % of base) : 304954.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
208 (2.53 % of base) : 418409.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
208 (4.52 % of base) : 277806.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
204 (2.64 % of base) : 309189.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,uint,uint,int,uint,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
202 (2.40 % of base) : 278611.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
192 (4.80 % of base) : 312509.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
192 (4.80 % of base) : 310195.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (Tier1)
178 (1.36 % of base) : 278704.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
176 (1.66 % of base) : 143349.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0-FullOpts)
172 (1.77 % of base) : 383307.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts)
172 (3.23 % of base) : 425197.dasm - TestShufflingThunk.Test16833:TestEntryPoint():int (FullOpts)
162 (1.67 % of base) : 153429.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
160 (3.84 % of base) : 309667.dasm - Internal.JitInterface.CorInfoImpl:CompileMethodInternal(ILCompiler.DependencyAnalysis.IMethodNode,Internal.IL.MethodIL):int:this (Tier1)
156 (1.90 % of base) : 272739.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
136 (3.26 % of base) : 312338.dasm - Internal.JitInterface.CorInfoImpl:CompileMethodInternal(ILCompiler.DependencyAnalysis.IMethodNode,Internal.IL.MethodIL):int:this (Tier1)
Top method improvements (bytes):
-304 (-22.69 % of base) : 123635.dasm - VectorTest+VectorExpTest`1[double]:VectorExp(System.Numerics.Vector`1[double],double,double,double):int (Tier0-FullOpts)
-102 (-2.15 % of base) : 158360.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-98 (-2.03 % of base) : 303349.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-96 (-1.98 % of base) : 276682.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-96 (-1.98 % of base) : 1994.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-94 (-2.10 % of base) : 212359.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
-86 (-1.77 % of base) : 133686.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-86 (-1.77 % of base) : 313378.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-82 (-1.84 % of base) : 200115.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
-82 (-2.47 % of base) : 2026.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
-80 (-1.50 % of base) : 409573.dasm - Rotate_explicit2_cs.App+Node:VerifyValid():this (FullOpts)
-62 (-6.53 % of base) : 401667.dasm - HelloWorld:Main():int (FullOpts)
-62 (-1.46 % of base) : 167907.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
-60 (-1.25 % of base) : 141871.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier0-FullOpts)
-44 (-1.25 % of base) : 416102.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (FullOpts)
-44 (-1.25 % of base) : 198113.dasm - DefaultNamespace.RanCollect:runTest(int,int,int,int):ubyte:this (Tier0-FullOpts)
-44 (-0.32 % of base) : 311329.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
-36 (-2.08 % of base) : 278603.dasm - Internal.TypeSystem.Ecma.EcmaModule:CreateMetadataReader(Internal.TypeSystem.TypeSystemContext,System.Reflection.PortableExecutable.PEReader):System.Reflection.Metadata.MetadataReader (Tier1)
-36 (-0.46 % of base) : 478209.dasm - Test_13662_b:TestEntryPoint():int (FullOpts)
-36 (-0.46 % of base) : 313945.dasm - Test_13662_b:TestEntryPoint():int (Tier0-FullOpts)
Top method regressions (percentages):
62 (387.50 % of base) : 413209.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
50 (312.50 % of base) : 409232.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
40 (250.00 % of base) : 413157.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
50 (41.67 % of base) : 408770.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
30 (39.47 % of base) : 409273.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
38 (38.00 % of base) : 424180.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
38 (38.00 % of base) : 211547.dasm - Test.AA:Method1(byref,int,byref,double[]):float (Tier0-FullOpts)
18 (29.03 % of base) : 328384.dasm - filter1:f4() (FullOpts)
16 (24.24 % of base) : 145128.dasm - Microsoft.CodeAnalysis.DiagnosticBag:Free():this (Tier1)
8 (23.53 % of base) : 329696.dasm - try1:f4() (FullOpts)
16 (21.05 % of base) : 382363.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
48 (20.00 % of base) : 424258.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
14 (17.50 % of base) : 146345.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
16 (14.81 % of base) : 2534.dasm - System.Collections.Generic.List`1[XUnitWrapperLibrary.TestSummary+TestResult]:Grow(int):this (Tier1)
26 (14.44 % of base) : 408026.dasm - Test_10w5d.testout1:Func_0_6_1_2():float (FullOpts)
48 (14.12 % of base) : 421715.dasm - GitHub_19171:Vector3EqualsTest() (FullOpts)
14 (11.48 % of base) : 202123.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
14 (11.48 % of base) : 138567.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
64 (11.31 % of base) : 31140.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
64 (11.27 % of base) : 141757.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
Top method improvements (percentages):
-304 (-22.69 % of base) : 123635.dasm - VectorTest+VectorExpTest`1[double]:VectorExp(System.Numerics.Vector`1[double],double,double,double):int (Tier0-FullOpts)
-14 (-10.45 % of base) : 213435.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-14 (-10.45 % of base) : 167706.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-14 (-10.45 % of base) : 139916.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-14 (-10.45 % of base) : 278244.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-14 (-10.29 % of base) : 297612.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-9.09 % of base) : 156562.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-9.09 % of base) : 156710.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-9.09 % of base) : 301166.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 198846.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 314125.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 314155.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 205595.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 313958.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 313880.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 198259.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 198378.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-10 (-7.58 % of base) : 313059.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-10 (-7.58 % of base) : 295226.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-10 (-7.58 % of base) : 296853.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
libraries.crossgen2.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 35174564 (overridden on cmd)
Total bytes of diff: 35175262 (overridden on cmd)
Total bytes of delta: 698 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
120 : 7421.dasm (23.17 % of base)
86 : 127173.dasm (0.39 % of base)
26 : 49532.dasm (9.85 % of base)
24 : 59520.dasm (2.01 % of base)
24 : 59715.dasm (0.63 % of base)
24 : 159701.dasm (15.38 % of base)
24 : 187632.dasm (3.29 % of base)
22 : 50823.dasm (14.86 % of base)
20 : 20813.dasm (0.57 % of base)
18 : 127959.dasm (2.07 % of base)
16 : 159627.dasm (10.53 % of base)
16 : 175585.dasm (0.24 % of base)
16 : 21878.dasm (0.95 % of base)
14 : 159538.dasm (9.33 % of base)
14 : 22748.dasm (6.48 % of base)
14 : 185708.dasm (3.07 % of base)
12 : 144211.dasm (0.54 % of base)
12 : 158272.dasm (2.29 % of base)
12 : 177179.dasm (1.33 % of base)
12 : 161932.dasm (3.49 % of base)
Top file improvements (bytes):
-22 : 89466.dasm (-1.26 % of base)
-18 : 59457.dasm (-0.45 % of base)
-16 : 150107.dasm (-2.13 % of base)
-16 : 102454.dasm (-1.94 % of base)
-16 : 126370.dasm (-2.23 % of base)
-14 : 120356.dasm (-1.11 % of base)
-14 : 92393.dasm (-2.13 % of base)
-14 : 120367.dasm (-0.39 % of base)
-12 : 58144.dasm (-0.73 % of base)
-12 : 134136.dasm (-0.85 % of base)
-10 : 182901.dasm (-0.30 % of base)
-10 : 81763.dasm (-0.17 % of base)
-10 : 55888.dasm (-0.58 % of base)
-8 : 145598.dasm (-0.11 % of base)
-8 : 159615.dasm (-1.15 % of base)
-8 : 162134.dasm (-1.88 % of base)
-8 : 175592.dasm (-0.30 % of base)
-8 : 185951.dasm (-0.41 % of base)
-6 : 151885.dasm (-0.27 % of base)
-6 : 163745.dasm (-0.09 % of base)
62 total files with Code Size differences (32 improved, 30 regressed), 20 unchanged.
Top method regressions (bytes):
120 (23.17 % of base) : 7421.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
86 (0.39 % of base) : 127173.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)
26 (9.85 % of base) : 49532.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
24 (0.63 % of base) : 59715.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteX(int,int,int):int:this (FullOpts)
24 (15.38 % of base) : 159701.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
24 (3.29 % of base) : 187632.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
24 (2.01 % of base) : 59520.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
22 (14.86 % of base) : 50823.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
20 (0.57 % of base) : 20813.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
18 (2.07 % of base) : 127959.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
16 (0.95 % of base) : 21878.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
16 (0.24 % of base) : 175585.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
16 (10.53 % of base) : 159627.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
14 (6.48 % of base) : 22748.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
14 (3.07 % of base) : 185708.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
14 (9.33 % of base) : 159538.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
12 (6.52 % of base) : 94341.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
12 (0.54 % of base) : 144211.dasm - System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo:GetExportDefinitions():System.Collections.Generic.List`1[System.ComponentModel.Composition.Primitives.ExportDefinition]:this (FullOpts)
12 (1.33 % of base) : 177179.dasm - System.ComponentModel.TypeDescriptor:Refresh(System.Reflection.Module) (FullOpts)
12 (2.29 % of base) : 158272.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
Top method improvements (bytes):
-22 (-1.26 % of base) : 89466.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
-18 (-0.45 % of base) : 59457.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,ubyte,System.Data.DataColumn,System.Object):System.Object[]:this (FullOpts)
-16 (-2.23 % of base) : 126370.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
-16 (-1.94 % of base) : 102454.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
-16 (-2.13 % of base) : 150107.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
-14 (-2.13 % of base) : 92393.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
-14 (-1.11 % of base) : 120356.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:AddLambdaToGraph(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+ArgumentNode,Microsoft.CodeAnalysis.VisualBasic.Binder):this (FullOpts)
-14 (-0.39 % of base) : 120367.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:InferTypeArgumentsFromLambdaArgument(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol):ubyte:this (FullOpts)
-12 (-0.73 % of base) : 58144.dasm - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
-12 (-0.85 % of base) : 134136.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
-10 (-0.17 % of base) : 81763.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
-10 (-0.58 % of base) : 55888.dasm - System.Data.DataView:ToTable(System.String,ubyte,System.String[]):System.Data.DataTable:this (FullOpts)
-10 (-0.30 % of base) : 182901.dasm - System.Security.Cryptography.Pkcs.CmsSigner:Sign(System.ReadOnlyMemory`1[ubyte],System.String,ubyte,byref):System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn:this (FullOpts)
-8 (-0.11 % of base) : 145598.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
-8 (-0.30 % of base) : 175592.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
-8 (-0.41 % of base) : 185951.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(System.Data.Odbc.OdbcDataReader+QualifiedTableName,ubyte):int:this (FullOpts)
-8 (-1.15 % of base) : 159615.dasm - System.Net.Mail.MailAddressParser:TryParseAddress(System.String,ubyte,byref,byref,ubyte):ubyte (FullOpts)
-8 (-1.88 % of base) : 162134.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
-6 (-0.09 % of base) : 163745.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,ubyte):this (FullOpts)
-6 (-0.27 % of base) : 151885.dasm - System.Transactions.TransactionScope:Dispose():this (FullOpts)
Top method regressions (percentages):
120 (23.17 % of base) : 7421.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
24 (15.38 % of base) : 159701.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
22 (14.86 % of base) : 50823.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
16 (10.53 % of base) : 159627.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
26 (9.85 % of base) : 49532.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
14 (9.33 % of base) : 159538.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
12 (6.52 % of base) : 94341.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
14 (6.48 % of base) : 22748.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
8 (4.44 % of base) : 185514.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
10 (4.31 % of base) : 175263.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
6 (4.00 % of base) : 159682.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
6 (3.95 % of base) : 128146.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
12 (3.49 % of base) : 161932.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (FullOpts)
10 (3.31 % of base) : 107893.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
24 (3.29 % of base) : 187632.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
14 (3.07 % of base) : 185708.dasm - System.Data.Odbc.OdbcDataReader:GetData(int,short,int,byref):ubyte:this (FullOpts)
2 (2.70 % of base) : 162180.dasm - System.Text.Json.Utf8JsonReader:ThrowOnDangerousLineSeparator(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
8 (2.33 % of base) : 138115.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (FullOpts)
6 (2.31 % of base) : 127633.dasm - Microsoft.VisualBasic.CompilerServices.LateBinding:VerifyObjRefPresentForInstanceCall(System.Object,System.Reflection.MemberInfo) (FullOpts)
12 (2.29 % of base) : 158272.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
Top method improvements (percentages):
-4 (-3.45 % of base) : 78827.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfEnum:GetName(int):System.String:this (FullOpts)
-16 (-2.23 % of base) : 126370.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
-2 (-2.17 % of base) : 185550.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
-14 (-2.13 % of base) : 92393.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this (FullOpts)
-16 (-2.13 % of base) : 150107.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.__Canon],System.__Canon):this (FullOpts)
-16 (-1.94 % of base) : 102454.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
-8 (-1.88 % of base) : 162134.dasm - System.Text.Json.Utf8JsonReader:SkipAllComments(byref):ubyte:this (FullOpts)
-22 (-1.26 % of base) : 89466.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
-2 (-1.20 % of base) : 126544.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.20 % of base) : 92743.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.20 % of base) : 126549.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.20 % of base) : 92748.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.20 % of base) : 91971.dasm - Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-8 (-1.15 % of base) : 159615.dasm - System.Net.Mail.MailAddressParser:TryParseAddress(System.String,ubyte,byref,byref,ubyte):ubyte (FullOpts)
-2 (-1.14 % of base) : 132304.dasm - System.Collections.Generic.SegmentedDictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.14 % of base) : 132309.dasm - System.Collections.Generic.SegmentedDictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-14 (-1.11 % of base) : 120356.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:AddLambdaToGraph(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+ArgumentNode,Microsoft.CodeAnalysis.VisualBasic.Binder):this (FullOpts)
-2 (-1.05 % of base) : 21874.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
-2 (-0.92 % of base) : 20289.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
-2 (-0.85 % of base) : 189452.dasm - System.Security.Cryptography.SymmetricPadding:GetCiphertextLength(int,int,int):int (FullOpts)
libraries.pmi.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 49549994 (overridden on cmd)
Total bytes of diff: 49615946 (overridden on cmd)
Total bytes of delta: 65952 (0.13 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
518 : 203994.dasm (30.19 % of base)
468 : 159909.dasm (866.67 % of base)
306 : 234082.dasm (1.36 % of base)
248 : 201889.dasm (5.46 % of base)
222 : 259987.dasm (2.06 % of base)
168 : 13155.dasm (2.04 % of base)
158 : 52714.dasm (3.68 % of base)
156 : 61239.dasm (8.96 % of base)
148 : 242666.dasm (5.99 % of base)
148 : 266414.dasm (5.99 % of base)
128 : 278413.dasm (2.11 % of base)
124 : 160700.dasm (4.81 % of base)
120 : 170130.dasm (2.88 % of base)
120 : 142411.dasm (6.35 % of base)
112 : 142415.dasm (4.97 % of base)
98 : 61082.dasm (2.05 % of base)
94 : 44213.dasm (5.36 % of base)
94 : 82655.dasm (1.93 % of base)
92 : 224690.dasm (1.54 % of base)
90 : 96511.dasm (7.67 % of base)
Top file improvements (bytes):
-268 : 169906.dasm (-5.69 % of base)
-86 : 160010.dasm (-1.92 % of base)
-80 : 105655.dasm (-2.66 % of base)
-78 : 154388.dasm (-2.01 % of base)
-56 : 259898.dasm (-2.66 % of base)
-52 : 67778.dasm (-1.15 % of base)
-44 : 90906.dasm (-1.91 % of base)
-40 : 21669.dasm (-6.17 % of base)
-38 : 92626.dasm (-1.91 % of base)
-38 : 97336.dasm (-0.57 % of base)
-36 : 134810.dasm (-3.95 % of base)
-36 : 273103.dasm (-1.12 % of base)
-34 : 92285.dasm (-0.80 % of base)
-34 : 132461.dasm (-3.70 % of base)
-32 : 241438.dasm (-1.82 % of base)
-32 : 105127.dasm (-1.13 % of base)
-32 : 167216.dasm (-3.77 % of base)
-32 : 250877.dasm (-3.57 % of base)
-30 : 171751.dasm (-10.87 % of base)
-30 : 265255.dasm (-9.55 % of base)
76 total files with Code Size differences (38 improved, 38 regressed), 20 unchanged.
Top method regressions (bytes):
518 (30.19 % of base) : 203994.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
468 (866.67 % of base) : 159909.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
306 (1.36 % of base) : 234082.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)
248 (5.46 % of base) : 201889.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts)
222 (2.06 % of base) : 259987.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
168 (2.04 % of base) : 13155.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
158 (3.68 % of base) : 52714.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
156 (8.96 % of base) : 61239.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:<VisitWithExpression>g__getAnonymousTypeValues|366_0(Microsoft.CodeAnalysis.CSharp.BoundWithExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager+AnonymousTypePublicSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (FullOpts)
148 (5.99 % of base) : 242666.dasm - System.Drawing.ColorConverterCommon:ConvertFromString(System.String,System.Globalization.CultureInfo):System.Drawing.Color (FullOpts)
148 (5.99 % of base) : 266414.dasm - System.Drawing.ColorConverterCommon:ConvertFromString(System.String,System.Globalization.CultureInfo):System.Drawing.Color (FullOpts)
128 (2.11 % of base) : 278413.dasm - TestRunner:DoWorkStress():int:this (FullOpts)
124 (4.81 % of base) : 160700.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
120 (6.35 % of base) : 142411.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
120 (2.88 % of base) : 170130.dasm - System.ComponentModel.CategoryAttribute:GetLocalizedString(System.String):System.String:this (FullOpts)
112 (4.97 % of base) : 142415.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
98 (2.05 % of base) : 61082.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
94 (1.93 % of base) : 82655.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
94 (5.36 % of base) : 44213.dasm - Microsoft.Diagnostics.Tracing.Parsers.IIS_Trace.W3CacheFileCacheAccessEnd:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
92 (1.54 % of base) : 224690.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
90 (7.67 % of base) : 96511.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToGenericParameter[System.__Canon](System.Object):System.__Canon (FullOpts)
Top method improvements (bytes):
-268 (-5.69 % of base) : 169906.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
-86 (-1.92 % of base) : 160010.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-80 (-2.66 % of base) : 105655.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeListSyntax]],int,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax]:this (FullOpts)
-78 (-2.01 % of base) : 154388.dasm - System.Xml.Schema.XmlSchemaInference:FindMatchingElement(ubyte,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaComplexType,byref,System.Xml.Schema.XmlSchema,ubyte):System.Xml.Schema.XmlSchemaElement:this (FullOpts)
-56 (-2.66 % of base) : 259898.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
-52 (-1.15 % of base) : 67778.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
-44 (-1.91 % of base) : 90906.dasm - System.Data.XDRSchema:HandleColumn(System.Xml.XmlElement,System.Data.DataTable):this (FullOpts)
-40 (-6.17 % of base) : 21669.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
-38 (-0.57 % of base) : 97336.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ModifiedIdentifierSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.AsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.EqualsValueSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.VisualBasic.BoundLocalDeclaration:this (FullOpts)
-38 (-1.91 % of base) : 92626.dasm - System.Data.DataTable:ReadXmlDiffgram(System.Xml.XmlReader):this (FullOpts)
-36 (-3.95 % of base) : 134810.dasm - Microsoft.CodeAnalysis.Text.CompositeText:GetSubText(Microsoft.CodeAnalysis.Text.TextSpan):Microsoft.CodeAnalysis.Text.SourceText:this (FullOpts)
-36 (-1.12 % of base) : 273103.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
-34 (-3.70 % of base) : 132461.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeObsoleteAttribute():Microsoft.CodeAnalysis.ObsoleteAttributeData:this (FullOpts)
-34 (-0.80 % of base) : 92285.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts)
-32 (-1.82 % of base) : 241438.dasm - Internal.Cryptography.PkcsHelpers:CreateBestPkcs9AttributeObjectAvailable(System.Security.Cryptography.Oid,System.ReadOnlySpan`1[ubyte]):System.Security.Cryptography.Pkcs.Pkcs9AttributeObject (FullOpts)
-32 (-1.13 % of base) : 105127.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:GetCrefOrNameAttributeReferenceSymbols(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,ubyte,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]:this (FullOpts)
-32 (-3.77 % of base) : 167216.dasm - System.Reflection.Emit.MethodBuilderImpl:SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
-32 (-3.57 % of base) : 250877.dasm - System.ServiceModel.Syndication.SyndicationFeed:TryReadTextInputFromExtension(System.ServiceModel.Syndication.SyndicationElementExtensionCollection):System.ServiceModel.Syndication.SyndicationTextInput (FullOpts)
-30 (-4.08 % of base) : 97306.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindCaseBlocks(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.CaseBlockSyntax],Microsoft.CodeAnalysis.VisualBasic.BoundRValuePlaceholder,ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundCaseBlock]:this (FullOpts)
-30 (-11.03 % of base) : 243754.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
Top method regressions (percentages):
468 (866.67 % of base) : 159909.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
10 (71.43 % of base) : 176585.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
518 (30.19 % of base) : 203994.dasm - Microsoft.Build.Construction.SolutionFile:ParseAspNetCompilerProperty(Microsoft.Build.Construction.ProjectInSolution,System.String,System.String) (FullOpts)
16 (21.05 % of base) : 243314.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
12 (19.35 % of base) : 256451.dasm - System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
22 (16.92 % of base) : 87237.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
10 (16.67 % of base) : 188665.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
24 (16.00 % of base) : 262453.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
10 (14.29 % of base) : 188664.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
10 (13.51 % of base) : 188666.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
2 (12.50 % of base) : 46714.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCFitBucketInfoTraceData:Validate():this (FullOpts)
10 (12.20 % of base) : 188663.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Object):ubyte:this (FullOpts)
14 (11.67 % of base) : 196589.dasm - System.Collections.Immutable.ImmutableArray`1[ubyte]:AsSpan(System.Range):System.ReadOnlySpan`1[ubyte]:this (FullOpts)
16 (11.59 % of base) : 2101.dasm - System.MemoryExtensions:AsSpan[ubyte](System.ArraySegment`1[ubyte],System.Range):System.Span`1[ubyte] (FullOpts)
14 (11.29 % of base) : 196479.dasm - System.Collections.Immutable.ImmutableArray`1[System.__Canon]:AsSpan(System.Range):System.ReadOnlySpan`1[System.__Canon]:this (FullOpts)
16 (10.96 % of base) : 262449.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
6 (10.71 % of base) : 2917.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[int](byref,int,int,int):int (FullOpts)
30 (10.34 % of base) : 152431.dasm - System.Xml.Schema.Datatype_dateTimeBase:Compare(System.Object,System.Object):int:this (FullOpts)
8 (10.26 % of base) : 253392.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
26 (10.24 % of base) : 85854.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
Top method improvements (percentages):
-10 (-23.81 % of base) : 206628.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
-18 (-23.68 % of base) : 244403.dasm - System.IO.Packaging.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (FullOpts)
-12 (-20.00 % of base) : 244391.dasm - System.IO.Packaging.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (FullOpts)
-12 (-19.35 % of base) : 244379.dasm - System.IO.Packaging.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (FullOpts)
-30 (-11.03 % of base) : 243754.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
-30 (-10.87 % of base) : 171751.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
-30 (-9.55 % of base) : 265255.dasm - System.Diagnostics.ActivityContext:op_Inequality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
-28 (-8.54 % of base) : 265307.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
-22 (-8.21 % of base) : 265306.dasm - System.Diagnostics.ActivityLink:op_Equality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
-14 (-8.14 % of base) : 210375.dasm - Microsoft.Build.BackEnd.ItemGroupIntrinsicTask+NestedMetadataTable:GetEscapedValueIfPresent(System.String,System.String):System.String:this (FullOpts)
-20 (-8.13 % of base) : 229228.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
-20 (-8.13 % of base) : 235815.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
-24 (-7.14 % of base) : 155298.dasm - System.Xml.Xsl.Xslt.XslAstAnalyzer:AddImportDependencies(System.Xml.Xsl.Xslt.Stylesheet,System.Xml.Xsl.Xslt.Template):this (FullOpts)
-16 (-7.08 % of base) : 147161.dasm - System.Xml.XmlSqlBinaryReader:LocateAttribute(System.String):int:this (FullOpts)
-14 (-6.86 % of base) : 265254.dasm - System.Diagnostics.ActivityContext:op_Equality(System.Diagnostics.ActivityContext,System.Diagnostics.ActivityContext):ubyte (FullOpts)
-16 (-6.84 % of base) : 255515.dasm - System.DirectoryServices.Protocols.LdapConnection:SameCredential(System.Net.NetworkCredential,System.Net.NetworkCredential):ubyte (FullOpts)
-28 (-6.67 % of base) : 172094.dasm - System.Xml.Linq.XNodeReader:GetAttribute(System.String):System.String:this (FullOpts)
-40 (-6.17 % of base) : 21669.dasm - Microsoft.FSharp.Quotations.DerivedPatternsModule:DecimalPattern(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Decimal] (FullOpts)
-268 (-5.69 % of base) : 169906.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
-10 (-5.32 % of base) : 148305.dasm - System.Xml.XmlNamespaceManager:LookupPrefix(System.String):System.String:this (FullOpts)
libraries_tests.run.linux.arm.Release.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 241868412 (overridden on cmd)
Total bytes of diff: 242762120 (overridden on cmd)
Total bytes of delta: 893708 (0.37 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1904 : 688417.dasm (7.85 % of base)
556 : 698554.dasm (8.23 % of base)
550 : 82476.dasm (10.64 % of base)
526 : 61523.dasm (7.81 % of base)
492 : 237024.dasm (4.63 % of base)
480 : 539804.dasm (4.61 % of base)
452 : 177949.dasm (4.58 % of base)
438 : 93475.dasm (6.38 % of base)
426 : 222199.dasm (4.12 % of base)
422 : 185342.dasm (5.53 % of base)
396 : 314420.dasm (5.66 % of base)
392 : 339418.dasm (3.68 % of base)
380 : 677303.dasm (7.29 % of base)
374 : 297692.dasm (4.57 % of base)
374 : 54971.dasm (5.95 % of base)
374 : 80716.dasm (2.86 % of base)
366 : 54911.dasm (3.95 % of base)
362 : 182167.dasm (7.98 % of base)
358 : 476925.dasm (3.55 % of base)
350 : 370213.dasm (3.23 % of base)
Top file improvements (bytes):
-294 : 319665.dasm (-3.47 % of base)
-264 : 454623.dasm (-6.48 % of base)
-250 : 565933.dasm (-2.68 % of base)
-232 : 428181.dasm (-2.39 % of base)
-218 : 255102.dasm (-4.65 % of base)
-208 : 222594.dasm (-2.48 % of base)
-208 : 540185.dasm (-2.48 % of base)
-176 : 235903.dasm (-1.40 % of base)
-172 : 272307.dasm (-3.78 % of base)
-168 : 317498.dasm (-3.69 % of base)
-168 : 549881.dasm (-1.74 % of base)
-168 : 576674.dasm (-3.69 % of base)
-156 : 365816.dasm (-3.42 % of base)
-156 : 18244.dasm (-1.41 % of base)
-148 : 462144.dasm (-1.19 % of base)
-144 : 621231.dasm (-1.50 % of base)
-142 : 489622.dasm (-1.14 % of base)
-138 : 415112.dasm (-3.05 % of base)
-136 : 117816.dasm (-1.08 % of base)
-132 : 718017.dasm (-3.93 % of base)
99 total files with Code Size differences (59 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
1904 (7.85 % of base) : 688417.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex6412_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
556 (8.23 % of base) : 698554.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:GetAdjustSpacesOperation(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this (Tier1)
550 (10.64 % of base) : 82476.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
526 (7.81 % of base) : 61523.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:GetAdjustSpacesOperation(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this (Tier1)
492 (4.63 % of base) : 237024.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
480 (4.61 % of base) : 539804.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
452 (4.58 % of base) : 177949.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
438 (6.38 % of base) : 93475.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:GetAdjustSpacesOperation(byref,byref,byref):Microsoft.CodeAnalysis.Formatting.Rules.AdjustSpacesOperation:this (Tier1)
426 (4.12 % of base) : 222199.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
422 (5.53 % of base) : 185342.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:BinaryOperatorOverloadResolution_NoEasyOut(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult,byref):this (Tier1)
396 (5.66 % of base) : 314420.dasm - System.IO.Tests.StreamConformanceTests+<ValidateDisposedExceptionsAsync>d__51:MoveNext():this (Tier1)
392 (3.68 % of base) : 339418.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
380 (7.29 % of base) : 677303.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindBinaryPattern(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryPatternSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundPattern:this (Tier1)
374 (5.95 % of base) : 54971.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:<CheckModifierMismatchOnImplementingMember>g__checkMethodOverride|100_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
374 (4.57 % of base) : 297692.dasm - System.Linq.Expressions.Expression:ValidateUserDefinedConditionalLogicOperator(int,System.Type,System.Type,System.Reflection.MethodInfo) (Tier1)
374 (2.86 % of base) : 80716.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
366 (3.95 % of base) : 54911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
362 (7.98 % of base) : 182167.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
358 (3.55 % of base) : 476925.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
350 (3.23 % of base) : 370213.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
Top method improvements (bytes):
-294 (-3.47 % of base) : 319665.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-264 (-6.48 % of base) : 454623.dasm - System.Xml.XmlConvertTests.XmlBaseCharConvertTests2:XmlEncodeName5():int:this (Tier1)
-250 (-2.68 % of base) : 565933.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-232 (-2.39 % of base) : 428181.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-218 (-4.65 % of base) : 255102.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (Tier0-FullOpts)
-208 (-2.48 % of base) : 222594.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-208 (-2.48 % of base) : 540185.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-176 (-1.40 % of base) : 235903.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-172 (-3.78 % of base) : 272307.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-168 (-3.69 % of base) : 317498.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-168 (-3.69 % of base) : 576674.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-168 (-1.74 % of base) : 549881.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-156 (-3.42 % of base) : 365816.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-156 (-1.41 % of base) : 18244.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
-148 (-1.19 % of base) : 462144.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-144 (-1.50 % of base) : 621231.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-142 (-1.14 % of base) : 489622.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-138 (-3.05 % of base) : 415112.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
-136 (-1.08 % of base) : 117816.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-132 (-3.93 % of base) : 718017.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier1)
Top method regressions (percentages):
16 (57.14 % of base) : 644582.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:IsDynamicallyTypedRuntimeProxy(System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):ubyte (Tier1)
12 (54.55 % of base) : 450473.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
30 (51.72 % of base) : 151680.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
30 (50.00 % of base) : 165726.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
36 (48.65 % of base) : 78318.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
36 (48.65 % of base) : 48522.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
36 (47.37 % of base) : 56685.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
36 (47.37 % of base) : 690580.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
36 (47.37 % of base) : 84903.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
36 (47.37 % of base) : 180201.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
28 (45.16 % of base) : 214472.dasm - System.Collections.Immutable.DictionaryEnumerator`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier1)
28 (45.16 % of base) : 216089.dasm - System.Collections.Immutable.ImmutableEnumerableDebuggerProxy`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
28 (45.16 % of base) : 28543.dasm - System.Collections.Immutable.ImmutableExtensions+FallbackWrapper`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
28 (45.16 % of base) : 13862.dasm - System.Collections.Immutable.ImmutableExtensions+ListOfTWrapper`1[System.ValueTuple`3[int,int,System.__Canon]]:.ctor(System.Collections.Generic.IList`1[System.ValueTuple`3[int,int,System.__Canon]]):this (Tier1)
28 (45.16 % of base) : 616629.dasm - System.Collections.Immutable.ImmutableStack`1+EnumeratorObject[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableStack`1[System.__Canon]):this (Tier1)
28 (45.16 % of base) : 18522.dasm - System.Collections.Immutable.SecurePooledObject`1[System.__Canon]:.ctor(System.__Canon):this (Tier1)
36 (43.90 % of base) : 160459.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
30 (42.86 % of base) : 29572.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
22 (36.67 % of base) : 29571.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
116 (33.92 % of base) : 444510.dasm - System.Xml.Xsl.Runtime.XmlQueryStaticData:.ctor(System.Xml.XmlWriterSettings,System.Collections.Generic.IList`1[System.Xml.Xsl.Qil.WhitespaceRule],System.Xml.Xsl.IlGen.StaticDataManager):this (Tier1)
Top method improvements (percentages):
-10 (-21.74 % of base) : 85676.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
-10 (-21.74 % of base) : 46054.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
-20 (-17.24 % of base) : 110318.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
-14 (-13.46 % of base) : 54338.dasm - Roslyn.Utilities.MultiDictionary`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:this (Tier1)
-4 (-13.33 % of base) : 51358.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
-8 (-13.33 % of base) : 679321.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[ulong]:<CreateNewNfaTransition>b__20_0(int,System.Collections.Generic.List`1[int]):this (Tier1)
-16 (-11.59 % of base) : 718116.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-16 (-11.59 % of base) : 396160.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-16 (-11.43 % of base) : 719051.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-14 (-10.45 % of base) : 717254.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-14 (-10.45 % of base) : 396744.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-10 (-9.09 % of base) : 492739.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
-10 (-9.09 % of base) : 699831.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
-10 (-9.09 % of base) : 98579.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
-10 (-9.09 % of base) : 351743.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastInterface(uint,System.Object):System.Object (Tier1)
-6 (-9.09 % of base) : 381146.dasm - Xunit.TestFrameworkOptions:GetValue[System.Nullable`1[ubyte]](System.String):System.Nullable`1[ubyte]:this (Tier1)
-12 (-8.96 % of base) : 655484.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-12 (-8.96 % of base) : 717436.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
-10 (-8.93 % of base) : 230511.dasm - System.Collections.Generic.GenericArraySortHelper`1[int]:BinarySearch(int[],int,int,int):int (Tier1)
-12 (-8.82 % of base) : 396797.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfInterface(uint,System.Object):System.Object (Tier1)
librariestestsnotieredcompilation.run.linux.arm.Release.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 93040820 (overridden on cmd)
Total bytes of diff: 93201612 (overridden on cmd)
Total bytes of delta: 160792 (0.17 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
306 : 59580.dasm (1.36 % of base)
248 : 151314.dasm (5.46 % of base)
248 : 151506.dasm (5.39 % of base)
208 : 164763.dasm (8.42 % of base)
208 : 237488.dasm (1.95 % of base)
208 : 240122.dasm (1.95 % of base)
200 : 20899.dasm (1.94 % of base)
174 : 153630.dasm (2.26 % of base)
172 : 11573.dasm (1.77 % of base)
170 : 147291.dasm (5.18 % of base)
156 : 301302.dasm (4.42 % of base)
154 : 286750.dasm (5.48 % of base)
154 : 46256.dasm (3.83 % of base)
154 : 11059.dasm (3.83 % of base)
154 : 52334.dasm (3.83 % of base)
148 : 65834.dasm (5.03 % of base)
146 : 230644.dasm (2.69 % of base)
142 : 216466.dasm (3.34 % of base)
142 : 216929.dasm (3.35 % of base)
142 : 220985.dasm (3.33 % of base)
Top file improvements (bytes):
-266 : 90092.dasm (-5.63 % of base)
-102 : 128202.dasm (-1.96 % of base)
-86 : 302094.dasm (-0.96 % of base)
-86 : 99838.dasm (-6.49 % of base)
-56 : 280738.dasm (-4.90 % of base)
-56 : 149750.dasm (-2.68 % of base)
-50 : 288215.dasm (-1.65 % of base)
-50 : 93393.dasm (-3.28 % of base)
-48 : 288321.dasm (-3.57 % of base)
-44 : 128201.dasm (-1.19 % of base)
-44 : 128209.dasm (-1.00 % of base)
-40 : 126289.dasm (-0.93 % of base)
-38 : 156846.dasm (-1.00 % of base)
-38 : 156762.dasm (-1.00 % of base)
-38 : 8924.dasm (-0.88 % of base)
-38 : 170695.dasm (-7.63 % of base)
-36 : 17729.dasm (-4.04 % of base)
-36 : 156826.dasm (-0.91 % of base)
-36 : 115219.dasm (-1.12 % of base)
-36 : 170821.dasm (-6.41 % of base)
75 total files with Code Size differences (35 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
306 (1.36 % of base) : 59580.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)
248 (5.46 % of base) : 151314.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts)
248 (5.39 % of base) : 151506.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts)
208 (1.95 % of base) : 237488.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
208 (1.95 % of base) : 240122.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
208 (8.42 % of base) : 164763.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FAB93D28E879A1C012F40790EA668F818AB3858873713FA53950E20F52E058952__EnsureArrayIndexRegex_5+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
200 (1.94 % of base) : 20899.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
174 (2.26 % of base) : 153630.dasm - System.Net.Quic.Tests.MsQuicTests+<>c__DisplayClass3_0+<<QuicRootedObjectGetReleased>g__GetWeakReferencesAsync|0>d:MoveNext():this (FullOpts)
172 (1.77 % of base) : 11573.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (FullOpts)
170 (5.18 % of base) : 147291.dasm - System.Net.Http.Tests.HttpContentHeadersTest:InvalidHeaders_AddRequestAndResponseHeaders_Throw():this (FullOpts)
156 (4.42 % of base) : 301302.dasm - System.Threading.Tasks.Tests.TaskAwaiterTests:ConfigureAwait_InvalidTimeout_Throws() (FullOpts)
154 (3.83 % of base) : 46256.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
154 (3.83 % of base) : 11059.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
154 (3.83 % of base) : 52334.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
154 (5.48 % of base) : 286750.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4954_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
148 (5.03 % of base) : 65834.dasm - System.Collections.Concurrent.Tests.BlockingCollectionTests:Test4_Dispose() (FullOpts)
146 (2.69 % of base) : 230644.dasm - System.Text.Tests.CaseConversionTests:MultipleValidCharacterConversion(System.String,System.String,System.String) (FullOpts)
142 (3.34 % of base) : 216466.dasm - System.Security.Cryptography.EcDiffieHellman.Tests.ECDiffieHellmanTests:TestExplicitImportValidationNegative() (FullOpts)
142 (3.35 % of base) : 216929.dasm - System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests:TestExplicitImportValidationNegative() (FullOpts)
142 (3.33 % of base) : 220985.dasm - System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests:TestExplicitImportValidationNegative() (FullOpts)
Top method improvements (bytes):
-266 (-5.63 % of base) : 90092.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
-102 (-1.96 % of base) : 128202.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWhenOverflowingSegments>d__16:MoveNext():this (FullOpts)
-86 (-6.49 % of base) : 99838.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
-86 (-0.96 % of base) : 302094.dasm - System.Threading.Tasks.Tests.TaskRtTests_Core:RunRefactoringTests() (FullOpts)
-56 (-2.68 % of base) : 149750.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
-56 (-4.90 % of base) : 280738.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2367_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-50 (-3.28 % of base) : 93393.dasm - System.Data.Tests.Common.DbConnectionStringBuilderTest:AssertValueTest(System.String[][],System.String[][],ubyte):this (FullOpts)
-50 (-1.65 % of base) : 288215.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5854_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-48 (-3.57 % of base) : 288321.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5894_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-44 (-1.19 % of base) : 128201.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest+<BufferSegmentsPooledUpToThreshold>d__5:MoveNext():this (FullOpts)
-44 (-1.00 % of base) : 128209.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<HelloWorldAcrossTwoBlocks>d__11:MoveNext():this (FullOpts)
-40 (-0.93 % of base) : 126289.dasm - System.IO.Hashing.Tests.XxHash128Tests:Hash_OneShot_Expected():this (FullOpts)
-38 (-0.88 % of base) : 8924.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
-38 (-1.00 % of base) : 156846.dasm - System.Net.Security.Tests.SslStreamNetworkStreamTest+<SslStream_NegotiateClientCertificateAsync_Succeeds>d__7:MoveNext():this (FullOpts)
-38 (-1.00 % of base) : 156762.dasm - System.Net.Security.Tests.SslStreamNetworkStreamTest+<SslStream_NegotiateClientCertificateAsyncNoRenego_Succeeds>d__8:MoveNext():this (FullOpts)
-38 (-7.63 % of base) : 170695.dasm - System.Xml.Xsl.Xslt.Stylesheet:AddVarPar(System.Xml.Xsl.Xslt.VarPar):ubyte:this (FullOpts)
-36 (-4.04 % of base) : 17729.dasm - Microsoft.CodeAnalysis.Text.CompositeText:GetSubText(Microsoft.CodeAnalysis.Text.TextSpan):Microsoft.CodeAnalysis.Text.SourceText:this (FullOpts)
-36 (-1.12 % of base) : 115219.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
-36 (-0.91 % of base) : 156826.dasm - System.Net.Security.Tests.SslStreamNetworkStreamTest+<SslStream_NegotiateClientCertificateAsyncTls13_Succeeds>d__12:MoveNext():this (FullOpts)
-36 (-6.41 % of base) : 170821.dasm - System.Xml.Xsl.Xslt.XsltLoader:CheckWithParam(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode],System.Xml.Xsl.Xslt.XslNode):this (FullOpts)
Top method regressions (percentages):
24 (32.43 % of base) : 5259.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
22 (29.73 % of base) : 43394.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
22 (29.73 % of base) : 49333.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
26 (21.31 % of base) : 142963.dasm - System.SpanTests.IndexerTests+<>c__DisplayClass2_0:<SlicingUsingIndexAndRangeTest>b__0():this (FullOpts)
16 (21.05 % of base) : 21411.dasm - System.ComponentModel.TypeDescriptor:GetNodeForBaseType(System.Type):System.Type (FullOpts)
12 (19.35 % of base) : 125750.dasm - System.IO.FileSystemWatcher+NormalizedFilterCollection+ImmutableStringList:get_Item(int):System.String:this (FullOpts)
12 (18.18 % of base) : 121347.dasm - System.Globalization.Tests.GraphemeBreakTest+<>c__DisplayClass3_0:<RunStringInfoTestCase>b__0(System.Range):int:this (FullOpts)
16 (17.78 % of base) : 200982.dasm - System.Tests.RangeTests+<>c__DisplayClass1_0:<GetOffsetAndLengthTest>b__0():System.Object:this (FullOpts)
16 (17.78 % of base) : 200983.dasm - System.Tests.RangeTests+<>c__DisplayClass1_0:<GetOffsetAndLengthTest>b__1():System.Object:this (FullOpts)
22 (16.67 % of base) : 55823.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
24 (16.00 % of base) : 150134.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
28 (14.14 % of base) : 77177.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,int]:MoveDownDefaultComparer(System.ValueTuple`2[System.__Canon,int],int):this (FullOpts)
8 (13.33 % of base) : 204165.dasm - System.Tests.StringSplitTests+<>c__DisplayClass10_0:<SplitCharArraySeparator>b__0(System.Range):System.String:this (FullOpts)
8 (13.33 % of base) : 204190.dasm - System.Tests.StringSplitTests+<>c__DisplayClass11_0:<SplitStringArraySeparator>b__0(System.Range):System.String:this (FullOpts)
8 (13.33 % of base) : 204175.dasm - System.Tests.StringSplitTests+<>c__DisplayClass7_0:<SplitCharSeparator>b__0(System.Range):System.String:this (FullOpts)
8 (13.33 % of base) : 204193.dasm - System.Tests.StringSplitTests+<>c__DisplayClass8_0:<SplitStringSeparator>b__0(System.Range):System.String:this (FullOpts)
6 (13.04 % of base) : 145323.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
12 (12.24 % of base) : 145139.dasm - System.SpanHelpers:LastIndexOfAnyExceptInRange[ulong](byref,ulong,ulong,int):int (FullOpts)
6 (12.00 % of base) : 225150.dasm - System.Security.Cryptography.Tests.OidCollectionTests+<>c__DisplayClass4_0:<TestOidCollection>b__0():System.Object:this (FullOpts)
12 (12.00 % of base) : 142965.dasm - System.SpanTests.IndexerTests+<>c__DisplayClass2_0:<SlicingUsingIndexAndRangeTest>b__1():this (FullOpts)
Top method improvements (percentages):
-30 (-11.03 % of base) : 86016.dasm - System.ComponentModel.LookupBindingPropertiesAttribute:Equals(System.Object):ubyte:this (FullOpts)
-30 (-10.87 % of base) : 305396.dasm - System.Xml.Linq.XDocumentType:DeepEquals(System.Xml.Linq.XNode):ubyte:this (FullOpts)
-32 (-10.06 % of base) : 97331.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
-20 (-8.13 % of base) : 180339.dasm - System.Reflection.TypeLoading.RoAssemblyName:Equals(System.Reflection.TypeLoading.RoAssemblyName):ubyte:this (FullOpts)
-38 (-7.63 % of base) : 170695.dasm - System.Xml.Xsl.Xslt.Stylesheet:AddVarPar(System.Xml.Xsl.Xslt.VarPar):ubyte:this (FullOpts)
-28 (-6.67 % of base) : 306493.dasm - System.Xml.Linq.XNodeReader:GetAttribute(System.String):System.String:this (FullOpts)
-86 (-6.49 % of base) : 99838.dasm - BasicEventSourceTests.TestUtilities:CheckNoEventSourcesRunning(System.String) (FullOpts)
-36 (-6.41 % of base) : 170821.dasm - System.Xml.Xsl.Xslt.XsltLoader:CheckWithParam(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode],System.Xml.Xsl.Xslt.XslNode):this (FullOpts)
-266 (-5.63 % of base) : 90092.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
-10 (-5.32 % of base) : 165513.dasm - System.Xml.XmlNamespaceManager:LookupPrefix(System.String):System.String:this (FullOpts)
-4 (-5.26 % of base) : 144281.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__0():this (FullOpts)
-4 (-5.13 % of base) : 144282.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__1():this (FullOpts)
-10 (-5.05 % of base) : 91584.dasm - System.Xml.Schema.SchemaNamespaceManager:LookupNamespace(System.String):System.String:this (FullOpts)
-56 (-4.90 % of base) : 280738.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2367_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-22 (-4.78 % of base) : 174131.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
-6 (-4.62 % of base) : 37981.dasm - (dynamicClass):lambda_method4(System.Runtime.CompilerServices.Closure,Microsoft.Extensions.DependencyModel.ResourceAssembly):ubyte (FullOpts)
-12 (-4.62 % of base) : 166786.dasm - System.Xml.Serialization.XmlSerializer+XmlSerializerMappingKey:Equals(System.Object):ubyte:this (FullOpts)
-10 (-4.46 % of base) : 195965.dasm - System.Runtime.Serialization.DataContracts.DataContract:Equals(System.Object,System.Collections.Generic.HashSet`1[System.Runtime.Serialization.DataContracts.DataContractPairKey]):ubyte:this (FullOpts)
-8 (-4.44 % of base) : 183213.dasm - System.Reflection.Tests.EmptyCoreMetadataAssemblyResolver:Resolve(System.Reflection.MetadataLoadContext,System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
-6 (-4.41 % of base) : 38033.dasm - (dynamicClass):lambda_method6(System.Runtime.CompilerServices.Closure,Microsoft.Extensions.DependencyModel.Dependency):ubyte (FullOpts)
realworld.run.linux.arm.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13612086 (overridden on cmd)
Total bytes of diff: 13613446 (overridden on cmd)
Total bytes of delta: 1360 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
144 : 5541.dasm (61.02 % of base)
82 : 16586.dasm (6.30 % of base)
78 : 6269.dasm (6.33 % of base)
56 : 7892.dasm (0.56 % of base)
46 : 26634.dasm (1.20 % of base)
38 : 23342.dasm (1.67 % of base)
32 : 9775.dasm (1.51 % of base)
30 : 32175.dasm (0.74 % of base)
26 : 11360.dasm (35.14 % of base)
26 : 31645.dasm (10.24 % of base)
26 : 23903.dasm (0.54 % of base)
24 : 1714.dasm (2.99 % of base)
22 : 32925.dasm (16.92 % of base)
20 : 22997.dasm (2.33 % of base)
20 : 2891.dasm (0.33 % of base)
18 : 23061.dasm (0.80 % of base)
18 : 7460.dasm (4.43 % of base)
18 : 37299.dasm (0.22 % of base)
18 : 10498.dasm (4.39 % of base)
16 : 26496.dasm (1.14 % of base)
Top file improvements (bytes):
-28 : 18245.dasm (-1.04 % of base)
-10 : 18615.dasm (-0.64 % of base)
-10 : 17675.dasm (-0.26 % of base)
-8 : 4172.dasm (-0.75 % of base)
-4 : 24298.dasm (-0.92 % of base)
-4 : 25951.dasm (-0.37 % of base)
-4 : 23307.dasm (-0.35 % of base)
-4 : 24194.dasm (-0.14 % of base)
-4 : 2872.dasm (-0.44 % of base)
-4 : 32736.dasm (-0.50 % of base)
-4 : 4157.dasm (-0.07 % of base)
-2 : 12905.dasm (-0.56 % of base)
-2 : 17769.dasm (-0.16 % of base)
-2 : 24429.dasm (-0.21 % of base)
-2 : 2681.dasm (-0.56 % of base)
-2 : 37.dasm (-0.25 % of base)
-2 : 4115.dasm (-1.59 % of base)
-2 : 4133.dasm (-0.84 % of base)
-2 : 5577.dasm (-1.64 % of base)
-2 : 18098.dasm (-1.72 % of base)
60 total files with Code Size differences (29 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
144 (61.02 % of base) : 5541.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
82 (6.30 % of base) : 16586.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
78 (6.33 % of base) : 6269.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
56 (0.56 % of base) : 7892.dasm - FSharp.Compiler.AugmentWithHashCompare:CheckAugmentationAttribs(ubyte,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.TypedTree+Entity) (FullOpts)
46 (1.20 % of base) : 26634.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
38 (1.67 % of base) : 23342.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
32 (1.51 % of base) : 9775.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
30 (0.74 % of base) : 32175.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:LowerEvaluation(Microsoft.CodeAnalysis.CSharp.BoundDagEvaluation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
26 (35.14 % of base) : 11360.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
26 (0.54 % of base) : 23903.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
26 (10.24 % of base) : 31645.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
24 (2.99 % of base) : 1714.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
22 (16.92 % of base) : 32925.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
20 (2.33 % of base) : 22997.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
20 (0.33 % of base) : 2891.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
18 (0.22 % of base) : 37299.dasm - Microsoft.ApplicationInsights.Metrics.MetricIdentifier:EnsureDimensionNamesValid(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
18 (0.80 % of base) : 23061.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
18 (4.39 % of base) : 10498.dasm - System.Collections.Generic.Dictionary`2[long,int]:FindValue(long):byref:this (FullOpts)
18 (4.43 % of base) : 7460.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
16 (1.14 % of base) : 26496.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeStructLayoutAttribute[System.__Canon,System.__Canon,System.__Canon,short](byref,int,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
Top method improvements (bytes):
-28 (-1.04 % of base) : 18245.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
-10 (-0.64 % of base) : 18615.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
-10 (-0.26 % of base) : 17675.dasm - Microsoft.ML.Data.TextLoader+Bindings:.ctor(Microsoft.ML.Data.TextLoader,Microsoft.ML.Data.TextLoader+Column[],Microsoft.ML.Data.IMultiStreamSource,Microsoft.ML.Data.IMultiStreamSource):this (FullOpts)
-8 (-0.75 % of base) : 4172.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:TryInsert(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon,ubyte):ubyte:this (FullOpts)
-4 (-0.07 % of base) : 4157.dasm - FSharp.Compiler.CompilerImports:TcConfig.TryResolveLibsUsingMSBuildRules.Static(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference],FSharp.Compiler.Text.Range,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]] (FullOpts)
-4 (-0.35 % of base) : 23307.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamespaceSymbol:LazyInitializeTypes(System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]]):this (FullOpts)
-4 (-0.14 % of base) : 24194.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetCustomAttribute(System.Reflection.Metadata.CustomAttributeHandle,byref,byref):ubyte:this (FullOpts)
-4 (-0.92 % of base) : 24298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)
-4 (-0.37 % of base) : 25951.dasm - System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon],int]:TryInsert(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon],int,ubyte):ubyte:this (FullOpts)
-4 (-0.44 % of base) : 2872.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:TryInsert(System.__Canon,System.Resources.ResourceLocator,ubyte):ubyte:this (FullOpts)
-4 (-0.50 % of base) : 32736.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
-2 (-0.56 % of base) : 12905.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
-2 (-0.84 % of base) : 4133.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]:this (FullOpts)
-2 (-1.08 % of base) : 29089.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.19 % of base) : 29475.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
-2 (-0.21 % of base) : 24429.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
-2 (-0.16 % of base) : 17769.dasm - Microsoft.ML.SchemaShape:Create(Microsoft.ML.DataViewSchema):Microsoft.ML.SchemaShape (FullOpts)
-2 (-0.54 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
-2 (-0.25 % of base) : 37.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
-2 (-1.72 % of base) : 18098.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
Top method regressions (percentages):
144 (61.02 % of base) : 5541.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
26 (35.14 % of base) : 11360.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
22 (16.92 % of base) : 32925.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
26 (10.24 % of base) : 31645.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
12 (9.23 % of base) : 27943.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
12 (8.33 % of base) : 29326.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
12 (7.69 % of base) : 29346.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
78 (6.33 % of base) : 6269.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
82 (6.30 % of base) : 16586.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
10 (5.15 % of base) : 24441.dasm - Microsoft.CodeAnalysis.BindingDiagnosticBag`1[System.__Canon]:AddDependencies(System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
18 (4.43 % of base) : 7460.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:FindValue(long):byref:this (FullOpts)
18 (4.39 % of base) : 10498.dasm - System.Collections.Generic.Dictionary`2[long,int]:FindValue(long):byref:this (FullOpts)
10 (4.17 % of base) : 19022.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
12 (3.97 % of base) : 29208.dasm - Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(Microsoft.CodeAnalysis.SmallDictionary`2[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (FullOpts)
8 (3.81 % of base) : 5921.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
14 (3.66 % of base) : 12397.dasm - System.Collections.Generic.Dictionary`2[int,int]:FindValue(int):byref:this (FullOpts)
4 (3.45 % of base) : 26223.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
12 (3.24 % of base) : 24425.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchPropertySignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
12 (3.19 % of base) : 24303.dasm - Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MatchMethodSignature(System.__Canon,System.Collections.Immutable.ImmutableArray`1[ubyte]):ubyte:this (FullOpts)
24 (2.99 % of base) : 1714.dasm - BepuUtilities.Collections.QuickSort:Sort[int,BepuPhysics.Trees.Tree+IndexMapComparer](byref,int,int,byref) (FullOpts)
Top method improvements (percentages):
-2 (-1.72 % of base) : 18098.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
-2 (-1.64 % of base) : 5577.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
-2 (-1.59 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
-2 (-1.59 % of base) : 4115.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.54 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.52 % of base) : 19544.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.37 % of base) : 28405.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
-2 (-1.19 % of base) : 29475.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
-2 (-1.08 % of base) : 29089.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-28 (-1.04 % of base) : 18245.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
-2 (-1.01 % of base) : 37561.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
-4 (-0.92 % of base) : 24298.dasm - Microsoft.CodeAnalysis.RuntimeMembers.MemberDescriptor:ParseType(System.Collections.Immutable.ImmutableArray`1+Builder[ubyte],System.IO.Stream,ubyte) (FullOpts)
-2 (-0.84 % of base) : 4133.dasm - FSharp.Compiler.CompilerConfig+TcConfig:computeKnownDllReference(System.String):System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]:this (FullOpts)
-8 (-0.75 % of base) : 4172.dasm - System.Collections.Generic.Dictionary`2[Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon]:TryInsert(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+StructBox`1[System.__Canon],System.__Canon,ubyte):ubyte:this (FullOpts)
-10 (-0.64 % of base) : 18615.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
-2 (-0.56 % of base) : 12905.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)
-2 (-0.56 % of base) : 2681.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:FindNextEntry(uint,int):this (FullOpts)
-2 (-0.54 % of base) : 229.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this (FullOpts)
-4 (-0.50 % of base) : 32736.dasm - System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this (FullOpts)
-2 (-0.50 % of base) : 18114.dasm - System.Threading.ThreadLocal`1[System.__Canon]:GrowTable(byref,int) (FullOpts)
Diffs are based on 2,296,250 contexts (841,817 MinOpts, 1,454,433 FullOpts).
MISSED contexts: base: 2,552 (0.11%), diff: 5,093 (0.22%)
Overall (+4,485,904 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run.windows.x86.checked.mch
7,107,340
+147
benchmarks.run_pgo.windows.x86.checked.mch
43,402,092
+1,820,454
benchmarks.run_tiered.windows.x86.checked.mch
9,511,225
+235
coreclr_tests.run.windows.x86.checked.mch
308,523,712
+656,768
libraries.crossgen2.windows.x86.checked.mch
31,626,935
+1,363
libraries.pmi.windows.x86.checked.mch
48,679,731
+148,189
libraries_tests.run.windows.x86.Release.mch
184,050,709
+1,497,619
librariestestsnotieredcompilation.run.windows.x86.Release.mch
101,838,360
+359,849
realworld.run.windows.x86.checked.mch
11,362,130
+1,280
FullOpts (+4,485,904 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run.windows.x86.checked.mch
7,107,061
+147
benchmarks.run_pgo.windows.x86.checked.mch
36,772,602
+1,820,454
benchmarks.run_tiered.windows.x86.checked.mch
5,241,416
+235
coreclr_tests.run.windows.x86.checked.mch
106,851,943
+656,768
libraries.crossgen2.windows.x86.checked.mch
31,625,878
+1,363
libraries.pmi.windows.x86.checked.mch
48,584,417
+148,189
libraries_tests.run.windows.x86.Release.mch
85,719,202
+1,497,619
librariestestsnotieredcompilation.run.windows.x86.Release.mch
93,168,568
+359,849
realworld.run.windows.x86.checked.mch
11,066,430
+1,280
Example diffs
benchmarks.run.windows.x86.checked.mch
-13 (-3.37%) : 4712.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
@@ -12,8 +12,8 @@
; V01 arg1 [V01,T00] ( 5, 3.50) int -> esi single-def
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Threading.CancellationToken>
; V03 loc0 [V03,T11] ( 2, 1 ) int -> [ebp-0x10] spill-single-def
-; V04 tmp0 [V04,T10] ( 2, 2 ) ref -> ecx class-hnd single-def "dup spill" <System.Action`1[System.Object]>
-; V05 tmp1 [V05,T09] ( 3, 2 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
+; V04 tmp0 [V04,T09] ( 2, 2 ) ref -> ecx class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+; V05 tmp1 [V05,T10] ( 2, 2 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "impAppendStmt" <System.Threading.Tasks.TaskFactory>
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
; V07 tmp3 [V07,T08] ( 4, 2 ) ref -> [ebp-0x1C]
;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`4[System.IO.Pipes.NamedPipeClientStream,int,System.Threading.CancellationToken,int]>
@@ -24,10 +24,10 @@
;* V13 tmp9 [V13,T12] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp10 [V14,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
-; V16 tmp12 [V16,T07] ( 3, 3 ) ref -> eax class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V16 tmp12 [V16,T06] ( 3, 3 ) ref -> eax class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V17 tmp13 [V17 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.ValueTuple`4[System.IO.Pipes.NamedPipeClientStream,int,System.Threading.CancellationToken,int]>
-; V19 tmp15 [V19,T06] ( 5, 3 ) ref -> esi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
+; V19 tmp15 [V19,T07] ( 3, 3 ) ref -> esi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskScheduler>
;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V21 tmp17 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.ValueTuple`4[System.IO.Pipes.NamedPipeClientStream,int,System.Threading.CancellationToken,int]>
@@ -81,7 +81,7 @@ G_M11209_IG04: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=0
test byte ptr [D1FFAB1EH], 1 ; global ptr
je G_M11209_IG14
;; size=30 bbWeight=0.50 PerfScore 4.50
-G_M11209_IG05: ; bbWeight=0.50, gcVars=00000200 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M11209_IG05: ; bbWeight=0.50, gcVars=00000400 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[edx]
mov ecx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[ecx]
@@ -110,7 +110,7 @@ G_M11209_IG05: ; bbWeight=0.50, gcVars=00000200 {V05}, gcrefRegs=00000088
mov gword ptr [ebp-0x1C], ecx
; GC ptr vars +{V07}
;; size=66 bbWeight=0.50 PerfScore 6.88
-G_M11209_IG06: ; bbWeight=0.50, gcVars=00000300 {V05 V07}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M11209_IG06: ; bbWeight=0.50, gcVars=00000500 {V05 V07}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[ecx]
mov eax, dword ptr [ebp-0x10]
mov dword ptr [ebp-0x14], eax
@@ -134,6 +134,8 @@ G_M11209_IG06: ; bbWeight=0.50, gcVars=00000300 {V05 V07}, gcrefRegs=0000
; byrRegs -[edx]
test byte ptr [D1FFAB1EH], 1 ; global ptr
je SHORT G_M11209_IG11
+ ;; size=53 bbWeight=0.50 PerfScore 7.12
+G_M11209_IG07: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
mov esi, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[esi]
mov edx, gword ptr [ebp-0x18]
@@ -141,13 +143,10 @@ G_M11209_IG06: ; bbWeight=0.50, gcVars=00000300 {V05 V07}, gcrefRegs=0000
cmp byte ptr [edx], dl
test esi, esi
je SHORT G_M11209_IG12
- ;; size=68 bbWeight=0.50 PerfScore 10.75
-G_M11209_IG07: ; bbWeight=0.50, gcVars=00000102 {V07 V09}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[edx]
- ; GC ptr vars -{V05 V09}
mov ecx, 0xD1FFAB1E ; System.Threading.Tasks.Task
+ ; GC ptr vars -{V05}
call CORINFO_HELP_NEWSFAST
- ; gcrRegs +[eax]
+ ; gcrRegs -[edx] +[eax]
mov edi, eax
; gcrRegs +[edi]
push gword ptr [ebp-0x20]
@@ -160,7 +159,7 @@ G_M11209_IG07: ; bbWeight=0.50, gcVars=00000102 {V07 V09}, gcrefRegs=0000
; gcrRegs +[ecx]
mov edx, gword ptr [ebp-0x1C]
; gcrRegs +[edx]
- ; GC ptr vars -{V07}
+ ; GC ptr vars -{V07 V09}
call [System.Threading.Tasks.Task:.ctor(System.Delegate,System.Object,System.Threading.Tasks.Task,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this]
; gcrRegs -[eax ecx edx ebx esi]
mov ecx, edi
@@ -170,7 +169,7 @@ G_M11209_IG07: ; bbWeight=0.50, gcVars=00000102 {V07 V09}, gcrefRegs=0000
; gcrRegs -[ecx]
mov eax, edi
; gcrRegs +[eax]
- ;; size=49 bbWeight=0.50 PerfScore 7.75
+ ;; size=64 bbWeight=0.50 PerfScore 11.38
G_M11209_IG08: ; bbWeight=0.50, epilog, nogc, extend
lea esp, [ebp-0x0C]
pop ebx
@@ -193,22 +192,16 @@ G_M11209_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret 4
;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M11209_IG11: ; bbWeight=0, gcVars=00000302 {V05 V07 V09}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M11209_IG11: ; bbWeight=0, gcVars=00000502 {V05 V07 V09}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[ebx]
; GC ptr vars +{V01 V05 V07 V09}
mov ecx, 0xD1FFAB1E
mov edx, 0x440
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- mov esi, gword ptr [D1FFAB1EH]
- ; gcrRegs +[esi]
- mov ecx, gword ptr [ebp-0x18]
- ; gcrRegs +[ecx]
- cmp byte ptr [ecx], cl
- test esi, esi
- jne SHORT G_M11209_IG07
- ;; size=30 bbWeight=0 PerfScore 0.00
+ jmp SHORT G_M11209_IG07
+ ;; size=17 bbWeight=0 PerfScore 0.00
G_M11209_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[ecx ebx esi]
+ ; gcrRegs -[ebx]
; GC ptr vars -{V01 V05 V07 V09}
mov ecx, 47
call [System.ThrowHelper:ThrowArgumentNullException(int)]
@@ -226,9 +219,9 @@ G_M11209_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs -[eax]
int3
;; size=30 bbWeight=0 PerfScore 0.00
-G_M11209_IG14: ; bbWeight=0, gcVars=00000200 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M11209_IG14: ; bbWeight=0, gcVars=00000400 {V05}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs +[ebx edi]
- ; GC ptr vars +{V05 V09}
+ ; GC ptr vars +{V05}
mov ecx, 0xD1FFAB1E
mov edx, 18
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
@@ -236,11 +229,11 @@ G_M11209_IG14: ; bbWeight=0, gcVars=00000200 {V05}, gcrefRegs=00000088 {e
;; size=20 bbWeight=0 PerfScore 0.00
G_M11209_IG15: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[ebx edi]
- ; GC ptr vars -{V05 V09}
+ ; GC ptr vars -{V05}
call [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 386, prolog size 9, PerfScore 50.12, instruction count 113, allocated bytes for code 386 (MethodHash=dac4d436) for method System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 373, prolog size 9, PerfScore 50.12, instruction count 109, allocated bytes for code 373 (MethodHash=dac4d436) for method System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
; ============================================================
-10 (-2.24%) : 9933.dasm - System.Collections.Generic.PriorityQueue
2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable
1[System.ValueTuple`2[int,int]]):this (FullOpts)@@ -54,7 +54,7 @@ G_M63155_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=18 bbWeight=1 PerfScore 6.25
G_M63155_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
test edi, edi
- je G_M63155_IG29
+ je G_M63155_IG28
xor ebx, ebx
mov edx, edi
; gcrRegs +[edx]
@@ -82,7 +82,7 @@ G_M63155_IG03: ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
jge SHORT G_M63155_IG06
mov edx, ecx
add edx, ebx
- jo G_M63155_IG28
+ jo G_M63155_IG27
mov ecx, esi
; gcrRegs +[ecx]
call [System.Collections.Generic.PriorityQueue`2[int,int]:Grow(int):this]
@@ -92,7 +92,7 @@ G_M63155_IG03: ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
;; size=46 bbWeight=0.50 PerfScore 8.38
G_M63155_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
cmp dword ptr [esi+0x10], 0
- jne G_M63155_IG21
+ jne G_M63155_IG20
;; size=10 bbWeight=1 PerfScore 4.00
G_M63155_IG05: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
test eax, eax
@@ -106,7 +106,7 @@ G_M63155_IG05: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
call [<unknown method>]
; gcrRegs -[eax ecx edx edi]
mov dword ptr [esi+0x10], ebx
- jmp G_M63155_IG19
+ jmp G_M63155_IG18
;; size=25 bbWeight=0.50 PerfScore 5.25
G_M63155_IG06: ; bbWeight=0.25, gcVars=00004000 {V03}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[edi]
@@ -136,7 +136,7 @@ G_M63155_IG08: ; bbWeight=0.50, gcVars=00000210 {V05 V06}, gcrefRegs=0000
call [<unknown method>]
; gcrRegs -[eax ecx]
test eax, eax
- je SHORT G_M63155_IG13
+ je SHORT G_M63155_IG14
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M63155_IG09: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
lea edx, [ebp-0x34]
@@ -166,7 +166,7 @@ G_M63155_IG11: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov ecx, dword ptr [ebp-0x34]
mov edx, dword ptr [ebp-0x30]
cmp ebx, dword ptr [edi+0x04]
- jae SHORT G_M63155_IG14
+ jae SHORT G_M63155_IG13
lea ebx, bword ptr [edi+8*ebx+0x08]
; byrRegs +[ebx]
mov dword ptr [ebx], ecx
@@ -179,63 +179,57 @@ G_M63155_IG11: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
test eax, eax
mov gword ptr [ebp-0x3C], edi
; GC ptr vars +{V05}
- jne SHORT G_M63155_IG12
- jmp SHORT G_M63155_IG15
- ;; size=44 bbWeight=4 PerfScore 75.00
-G_M63155_IG12: ; bbWeight=2, gcVars=00000210 {V05 V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[edi]
mov ebx, dword ptr [ebp-0x24]
- jmp SHORT G_M63155_IG09
- ;; size=5 bbWeight=2 PerfScore 6.00
-G_M63155_IG13: ; bbWeight=0.25, gcVars=00000200 {V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ jne SHORT G_M63155_IG09
+ ;; size=45 bbWeight=4 PerfScore 71.00
+G_M63155_IG12: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[edi]
; GC ptr vars -{V05}
- mov dword ptr [ebp-0x24], ebx
- jmp SHORT G_M63155_IG15
- ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M63155_IG14: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ jmp SHORT G_M63155_IG14
+ ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M63155_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M63155_IG15: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG14: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
mov ecx, gword ptr [ebp-0x40]
; gcrRegs +[ecx]
; GC ptr vars -{V06}
call [<unknown method>]
; gcrRegs -[ecx]
- jmp SHORT G_M63155_IG18
+ jmp SHORT G_M63155_IG17
;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG16: ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG15: ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[esi]
; GC ptr vars +{V06 V09}
cmp gword ptr [ebp-0x40], 0
- je SHORT G_M63155_IG17
+ je SHORT G_M63155_IG16
mov ecx, gword ptr [ebp-0x40]
; gcrRegs +[ecx]
; GC ptr vars -{V06 V09}
call [<unknown method>]
; gcrRegs -[ecx]
;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG17: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG16: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
pop eax
jmp eax
;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG18: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M63155_IG17: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp-0x24]
mov dword ptr [esi+0x10], ebx
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M63155_IG19: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=3 bbWeight=0.50 PerfScore 0.50
+G_M63155_IG18: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
inc dword ptr [esi+0x14]
cmp dword ptr [esi+0x10], 1
- jle SHORT G_M63155_IG27
+ jle SHORT G_M63155_IG26
mov ecx, esi
; gcrRegs +[ecx]
call [System.Collections.Generic.PriorityQueue`2[int,int]:Heapify():this]
; gcrRegs -[ecx esi]
;; size=17 bbWeight=0.50 PerfScore 5.12
-G_M63155_IG20: ; bbWeight=0.50, epilog, nogc, extend
+G_M63155_IG19: ; bbWeight=0.50, epilog, nogc, extend
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -243,7 +237,7 @@ G_M63155_IG20: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG21: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG20: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs +[esi edi]
mov ecx, edi
; gcrRegs +[ecx]
@@ -252,15 +246,15 @@ G_M63155_IG21: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
mov gword ptr [ebp-0x44], eax
; GC ptr vars +{V09}
;; size=11 bbWeight=0.50 PerfScore 2.12
-G_M63155_IG22: ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG21: ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
mov ecx, eax
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[eax ecx]
test eax, eax
- je SHORT G_M63155_IG24
+ je SHORT G_M63155_IG23
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M63155_IG23: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG22: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
lea edx, [ebp-0x2C]
mov ecx, gword ptr [ebp-0x44]
; gcrRegs +[ecx]
@@ -277,32 +271,32 @@ G_M63155_IG23: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[ecx]
test eax, eax
- jne SHORT G_M63155_IG23
+ jne SHORT G_M63155_IG22
;; size=39 bbWeight=4 PerfScore 60.00
-G_M63155_IG24: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG23: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
mov ecx, gword ptr [ebp-0x44]
; gcrRegs +[ecx]
; GC ptr vars -{V09}
call [<unknown method>]
; gcrRegs -[ecx]
- jmp SHORT G_M63155_IG27
+ jmp SHORT G_M63155_IG26
;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG25: ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG24: ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; GC ptr vars +{V09}
cmp gword ptr [ebp-0x44], 0
- je SHORT G_M63155_IG26
+ je SHORT G_M63155_IG25
mov ecx, gword ptr [ebp-0x44]
; gcrRegs +[ecx]
; GC ptr vars -{V09}
call [<unknown method>]
; gcrRegs -[ecx]
;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG26: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG25: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
pop eax
jmp eax
;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG27: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M63155_IG26: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -310,10 +304,10 @@ G_M63155_IG27: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
pop ebp
ret
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG28: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG27: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call CORINFO_HELP_OVERFLOW
;; size=5 bbWeight=0 PerfScore 0.00
-G_M63155_IG29: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG28: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0x85D
mov edx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -325,10 +319,10 @@ G_M63155_IG29: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 446, prolog size 14, PerfScore 247.12, instruction count 149, allocated bytes for code 446 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
+; Total bytes of code 436, prolog size 14, PerfScore 236.88, instruction count 145, allocated bytes for code 436 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
; ============================================================
*************** EH table for System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this
2 EH table entries, 2 total EH entries reported to VM
-EH#0: try [G_M63155_IG08..G_M63155_IG15) handled by [G_M63155_IG16..G_M63155_IG18) (fault)
-EH#1: try [G_M63155_IG22..G_M63155_IG24) handled by [G_M63155_IG25..G_M63155_IG27) (fault)
+EH#0: try [G_M63155_IG08..G_M63155_IG14) handled by [G_M63155_IG15..G_M63155_IG17) (fault)
+EH#1: try [G_M63155_IG21..G_M63155_IG23) handled by [G_M63155_IG24..G_M63155_IG26) (fault)
-2 (-1.98%) : 9110.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
@@ -66,9 +66,8 @@ G_M21922_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
lea edx, bword ptr [eax+4*edx+0x08]
; byrRegs +[edx]
cmp dword ptr [edx+0x04], -1
- jge SHORT G_M21922_IG07
- jmp SHORT G_M21922_IG03
- ;; size=34 bbWeight=2 PerfScore 38.00
+ jl SHORT G_M21922_IG03
+ ;; size=32 bbWeight=2 PerfScore 34.00
G_M21922_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
; gcrRegs -[eax]
mov eax, dword ptr [edx+0x08]
@@ -89,6 +88,6 @@ G_M21922_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 101, prolog size 4, PerfScore 119.12, instruction count 41, allocated bytes for code 101 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 99, prolog size 4, PerfScore 115.12, instruction count 40, allocated bytes for code 99 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
; ============================================================
+14 (+7.04%) : 23043.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (FullOpts)
@@ -23,10 +23,10 @@
; V12 tmp7 [V12,T02] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
; V13 EHSlots [V13 ] ( 1, 1 ) struct (16) [ebp-0x18] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
;* V14 cse0 [V14,T10] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-; V15 cse1 [V15,T09] ( 5, 2.20) int -> ecx hoist multi-def "CSE - aggressive"
-;* V16 rat0 [V16,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V15 cse1 [V15,T09] ( 6, 3.20) int -> ecx hoist multi-def "CSE - aggressive"
+; V16 rat0 [V16,T05] ( 2, 4 ) int -> edx "Spilling to split statement for tree"
;* V17 rat1 [V17,T08] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V18 rat2 [V18,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V18 rat2 [V18,T03] ( 2, 4 ) int -> edx "fgMakeTemp is creating a new local variable"
; V19 rat3 [V19,T04] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable"
; V20 rat4 [V20,T11] ( 3, 0 ) int -> ecx "Spilling to split statement for tree"
; V21 rat5 [V21,T12] ( 3, 0 ) int -> eax "fgMakeTemp is creating a new local variable"
@@ -63,8 +63,14 @@ G_M17622_IG03: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[ecx]
mov ecx, dword ptr [ecx]
; gcrRegs -[ecx]
+ mov edx, ecx
+ mov edx, dword ptr [edx+0x24]
+ mov edx, dword ptr [edx]
+ mov edx, dword ptr [edx+0x10]
+ test edx, edx
+ jne SHORT G_M17622_IG05
jmp SHORT G_M17622_IG05
- ;; size=7 bbWeight=1 PerfScore 5.00
+ ;; size=21 bbWeight=1 PerfScore 12.50
G_M17622_IG04: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
mov edx, dword ptr [ebp-0x1C]
@@ -168,7 +174,7 @@ G_M17622_IG18: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 199, prolog size 27, PerfScore 155.18, instruction count 74, allocated bytes for code 199 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
+; Total bytes of code 213, prolog size 27, PerfScore 162.68, instruction count 80, allocated bytes for code 213 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
; ============================================================
*************** EH table for System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this
+14 (+10.14%) : 22262.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 3, 3 ) ref -> esi this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T02] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T05] ( 3, 4 ) ref -> edi ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V03 loc2 [V03 ] ( 10, 31 ) struct ( 8) [ebp-0x10] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -22,9 +22,9 @@
; V11 tmp6 [V11 ] ( 2, 3 ) ref -> [ebp-0x10] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
; V12 tmp7 [V12 ] ( 9, 29 ) ref -> [ebp-0x0C] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
;* V13 cse0 [V13,T08] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-;* V14 rat0 [V14,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V14 rat0 [V14,T04] ( 2, 4 ) int -> ecx "Spilling to split statement for tree"
;* V15 rat1 [V15,T06] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V16 rat2 [V16,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V16 rat2 [V16,T03] ( 2, 4 ) int -> ecx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -49,8 +49,14 @@ G_M64146_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp dword ptr [ecx], ecx
call [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [ecx+0x24]
+ mov ecx, dword ptr [ecx]
+ mov ecx, dword ptr [ecx+0x10]
+ test ecx, ecx
+ jne SHORT G_M64146_IG04
jmp SHORT G_M64146_IG04
- ;; size=18 bbWeight=1 PerfScore 10.75
+ ;; size=32 bbWeight=1 PerfScore 20.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[edi]
cmp gword ptr [ebp-0x0C], 0
@@ -123,6 +129,6 @@ G_M64146_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}
int3
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 138, prolog size 16, PerfScore 138.50, instruction count 50, allocated bytes for code 138 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
+; Total bytes of code 152, prolog size 16, PerfScore 147.75, instruction count 56, allocated bytes for code 152 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
; ============================================================
+45 (+24.06%) : 17138.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
@@ -71,7 +71,7 @@ G_M65031_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
xor eax, eax
mov dword ptr [ebp-0x10], eax
;; size=11 bbWeight=1 PerfScore 3.25
-G_M65031_IG03: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
+G_M65031_IG03: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
push 13
push 226
push ebx
@@ -81,62 +81,64 @@ G_M65031_IG03: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {e
call [<unknown method>]
; byrRegs -[ecx]
cmp eax, -1
- je SHORT G_M65031_IG07
- ;; size=26 bbWeight=8 PerfScore 62.00
+ je G_M65031_IG09
+ ;; size=30 bbWeight=8 PerfScore 62.00
G_M65031_IG04: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
mov ecx, eax
add ecx, dword ptr [ebp-0x10]
mov edx, ecx
cmp eax, ebx
- jae SHORT G_M65031_IG11
+ jae G_M65031_IG13
cmp byte ptr [edi+eax], 226
- jne SHORT G_M65031_IG09
+ jne SHORT G_M65031_IG11
inc edx
mov dword ptr [ebp-0x10], edx
inc eax
cmp eax, ebx
- ja SHORT G_M65031_IG13
+ ja G_M65031_IG15
+ mov edx, dword ptr [ebp-0x10]
add edi, eax
sub ebx, eax
jns SHORT G_M65031_IG06
- ;; size=32 bbWeight=4 PerfScore 48.00
+ ;; size=43 bbWeight=4 PerfScore 52.00
G_M65031_IG05: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+ mov dword ptr [ebp-0x10], edx
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- ;; size=16 bbWeight=2 PerfScore 7.00
+ mov edx, dword ptr [ebp-0x10]
+ ;; size=22 bbWeight=2 PerfScore 11.00
G_M65031_IG06: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
cmp ebx, 2
- jl SHORT G_M65031_IG03
+ jl SHORT G_M65031_IG08
+ mov eax, edx
cmp ebx, 1
- jbe SHORT G_M65031_IG11
+ jbe SHORT G_M65031_IG13
movzx ecx, byte ptr [edi+0x01]
cmp byte ptr [edi], 128
- jne SHORT G_M65031_IG03
+ jne SHORT G_M65031_IG07
cmp ecx, 168
- je SHORT G_M65031_IG12
+ je SHORT G_M65031_IG14
cmp ecx, 169
- je SHORT G_M65031_IG12
- jmp SHORT G_M65031_IG03
- ;; size=37 bbWeight=4 PerfScore 52.00
-G_M65031_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ je SHORT G_M65031_IG14
+ mov dword ptr [ebp-0x10], eax
+ jmp G_M65031_IG03
+ ;; size=45 bbWeight=4 PerfScore 57.00
+G_M65031_IG07: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+ mov dword ptr [ebp-0x10], eax
+ jmp G_M65031_IG03
+ ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG08: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+ mov dword ptr [ebp-0x10], edx
+ jmp G_M65031_IG03
+ ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG09: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; byrRegs -[esi edi]
mov eax, -1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M65031_IG08: ; bbWeight=0.50, epilog, nogc, extend
- pop ecx
- pop ebx
- pop esi
- pop edi
- pop ebp
- ret 8
- ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG09: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- mov eax, edx
- ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M65031_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop ecx
pop ebx
@@ -145,10 +147,21 @@ G_M65031_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret 8
;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M65031_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ mov eax, edx
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M65031_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ pop ecx
+ pop ebx
+ pop esi
+ pop edi
+ pop ebp
+ ret 8
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M65031_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M65031_IG12: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+G_M65031_IG14: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
; byrRegs +[esi]
xor ecx, ecx
; byrRegs +[ecx]
@@ -161,11 +174,11 @@ G_M65031_IG12: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
; byrRegs -[ecx esi]
int3
;; size=21 bbWeight=0 PerfScore 0.00
-G_M65031_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M65031_IG15: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 187, prolog size 7, PerfScore 182.50, instruction count 74, allocated bytes for code 187 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
+; Total bytes of code 232, prolog size 7, PerfScore 207.50, instruction count 83, allocated bytes for code 232 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
; ============================================================
benchmarks.run_pgo.windows.x86.checked.mch
-7 (-21.21%) : 62494.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -18,11 +18,9 @@
; Lcl frame size = 0
G_M25826_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
mov edx, ecx
; gcrRegs +[edx]
- ;; size=5 bbWeight=1 PerfScore 1.50
+ ;; size=2 bbWeight=1 PerfScore 0.25
G_M25826_IG02: ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[ecx]
@@ -31,28 +29,25 @@ G_M25826_IG02: ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000
; gcrRegs -[ecx edx]
; byrRegs +[eax]
test eax, eax
- je SHORT G_M25826_IG04
- ;; size=18 bbWeight=1 PerfScore 9.25
-G_M25826_IG03: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+ jne SHORT G_M25826_IG04
+ xor eax, eax
+ ; gcrRegs +[eax]
+ ; byrRegs -[eax]
+ ;; size=20 bbWeight=1 PerfScore 9.50
+G_M25826_IG03: ; bbWeight=1, epilog, nogc, extend
+ ret
+ ;; size=1 bbWeight=1 PerfScore 1.00
+G_M25826_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+ ; gcrRegs -[eax]
+ ; byrRegs +[eax]
mov eax, gword ptr [eax]
; gcrRegs +[eax]
; byrRegs -[eax]
- jmp SHORT G_M25826_IG06
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M25826_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- xor eax, eax
- ; gcrRegs +[eax]
- ;; size=2 bbWeight=1 PerfScore 0.25
-G_M25826_IG05: ; bbWeight=1, epilog, nogc, extend
- pop ebp
- ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M25826_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
- pop ebp
- ret
;; size=2 bbWeight=0 PerfScore 0.00
+G_M25826_IG05: ; bbWeight=0, epilog, nogc, extend
+ ret
+ ;; size=1 bbWeight=0 PerfScore 0.00
-; Total bytes of code 33, prolog size 3, PerfScore 12.50, instruction count 15, allocated bytes for code 33 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.75, instruction count 10, allocated bytes for code 26 (MethodHash=089c9b1d) for method MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
; ============================================================
-4 (-12.50%) : 81831.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
@@ -22,27 +22,23 @@ G_M32701_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {e
; byrRegs +[ecx]
movzx eax, byte ptr [ecx+0x04]
cmp eax, 20
- jne SHORT G_M32701_IG04
+ je SHORT G_M32701_IG05
;; size=9 bbWeight=1 PerfScore 3.25
-G_M32701_IG03: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M32701_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; byrRegs -[ecx]
- mov eax, 1
- jmp SHORT G_M32701_IG05
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M32701_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
cmp eax, 29
- je SHORT G_M32701_IG03
- jmp SHORT G_M32701_IG06
- ;; size=7 bbWeight=0.50 PerfScore 1.62
-G_M32701_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+ je SHORT G_M32701_IG05
+ xor eax, eax
+ ;; size=7 bbWeight=0.50 PerfScore 0.75
+G_M32701_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-G_M32701_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
- xor eax, eax
- jmp SHORT G_M32701_IG05
- ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M32701_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ mov eax, 1
+ jmp SHORT G_M32701_IG04
+ ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 32, prolog size 3, PerfScore 8.75, instruction count 14, allocated bytes for code 32 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
+; Total bytes of code 28, prolog size 3, PerfScore 6.75, instruction count 12, allocated bytes for code 28 (MethodHash=ed408042) for method Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
; ============================================================
-39 (-12.11%) : 66677.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> ecx this class-hnd single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-; V01 loc0 [V01,T01] ( 10, 9 ) ref -> edi class-hnd <System.Type>
+; V01 loc0 [V01,T01] ( 11, 9 ) ref -> edi class-hnd <System.Type>
;* V02 tmp0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Type>
; V03 tmp1 [V03,T00] ( 19, 19 ) ref -> eax
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.Json.Serialization.JsonConverter>
@@ -37,27 +37,114 @@ G_M051_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {
mov esi, gword ptr [ecx+0x08]
; gcrRegs +[esi]
cmp byte ptr [esi+0x11], 0
+ jne G_M051_IG09
+ cmp byte ptr [esi+0x10], 0
+ je SHORT G_M051_IG03
+ test byte ptr [esi+0x08], 24
+ jne G_M051_IG11
+ ;; size=29 bbWeight=1 PerfScore 14.00
+G_M051_IG03: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi]
+ mov edi, gword ptr [ecx+0x24]
+ ; gcrRegs +[edi]
+ test edi, edi
+ je G_M051_IG12
+ ;; size=11 bbWeight=1 PerfScore 3.25
+G_M051_IG04: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[ecx]
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ mov eax, dword ptr [edi]
+ mov esi, dword ptr [eax+0x3C]
+ call [esi+0x04]<unknown method>
+ ; gcrRegs -[ecx]
+ test eax, eax
je SHORT G_M051_IG05
- ;; size=9 bbWeight=1 PerfScore 6.00
-G_M051_IG03: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[ecx esi]
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ call [esi+0x08]<unknown method>
+ ; gcrRegs -[ecx]
+ test eax, eax
+ jne SHORT G_M051_IG05
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ mov eax, dword ptr [edi]
+ mov esi, dword ptr [eax+0x40]
+ call [esi+0x0C]<unknown method>
+ ; gcrRegs -[ecx] +[eax]
+ cmp eax, 0xD1FFAB1E
+ jne SHORT G_M051_IG05
+ mov ecx, edi
+ ; gcrRegs +[ecx]
+ call [esi+0x14]<unknown method>
+ ; gcrRegs -[ecx]
+ cmp dword ptr [eax+0x04], 0
+ jbe G_M051_IG08
+ mov eax, gword ptr [eax+0x08]
+ jmp SHORT G_M051_IG06
+ ;; size=60 bbWeight=1 PerfScore 32.75
+G_M051_IG05: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[eax]
+ xor eax, eax
+ ; gcrRegs +[eax]
+ ;; size=2 bbWeight=1 PerfScore 0.25
+G_M051_IG06: ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
+ test eax, eax
+ cmove eax, edi
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ je SHORT G_M051_IG09
+ cmp eax, 0xD1FFAB1E
+ sete al
+ ; gcrRegs -[eax]
+ movzx eax, al
+ ;; size=114 bbWeight=1 PerfScore 19.50
+G_M051_IG07: ; bbWeight=1, epilog, nogc, extend
+ pop esi
+ pop edi
+ pop ebp
+ ret
+ ;; size=4 bbWeight=1 PerfScore 2.50
+G_M051_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs -[edi]
+ call CORINFO_HELP_RNGCHKFAIL
+ ;; size=5 bbWeight=0 PerfScore 0.00
+G_M051_IG09: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, 1
;; size=5 bbWeight=0 PerfScore 0.00
-G_M051_IG04: ; bbWeight=0, epilog, nogc, extend
+G_M051_IG10: ; bbWeight=0, epilog, nogc, extend
pop esi
pop edi
pop ebp
ret
;; size=4 bbWeight=0 PerfScore 0.00
-G_M051_IG05: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[ecx esi]
- cmp byte ptr [esi+0x10], 0
- je SHORT G_M051_IG09
- test byte ptr [esi+0x08], 24
- je SHORT G_M051_IG09
- ;; size=12 bbWeight=1 PerfScore 8.00
-G_M051_IG06: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[ecx]
+G_M051_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs +[esi]
mov ecx, esi
; gcrRegs +[ecx]
mov eax, dword ptr [ecx]
@@ -66,14 +153,11 @@ G_M051_IG06: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {
; gcrRegs -[ecx esi] +[eax]
mov edi, eax
; gcrRegs +[edi]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M051_IG07: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[eax]
test edi, edi
- jne SHORT G_M051_IG10
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M051_IG08: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[edi]
+ jne G_M051_IG04
+ ;; size=20 bbWeight=0 PerfScore 0.00
+G_M051_IG12: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[eax edi]
mov ecx, 0x4F46
mov edx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -84,98 +168,7 @@ G_M051_IG08: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
; gcrRegs -[eax ecx]
int3
;; size=24 bbWeight=0 PerfScore 0.00
-G_M051_IG09: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs +[ecx]
- mov edi, gword ptr [ecx+0x24]
- ; gcrRegs +[edi]
- jmp SHORT G_M051_IG07
- ;; size=5 bbWeight=1 PerfScore 4.00
-G_M051_IG10: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[ecx]
- mov ecx, edi
- ; gcrRegs +[ecx]
- mov eax, dword ptr [edi]
- mov esi, dword ptr [eax+0x3C]
- call [esi+0x04]<unknown method>
- ; gcrRegs -[ecx]
- test eax, eax
- je SHORT G_M051_IG11
- mov ecx, edi
- ; gcrRegs +[ecx]
- call [esi+0x08]<unknown method>
- ; gcrRegs -[ecx]
- test eax, eax
- jne SHORT G_M051_IG11
- mov ecx, edi
- ; gcrRegs +[ecx]
- mov eax, dword ptr [edi]
- mov esi, dword ptr [eax+0x40]
- call [esi+0x0C]<unknown method>
- ; gcrRegs -[ecx] +[eax]
- cmp eax, 0xD1FFAB1E
- jne SHORT G_M051_IG11
- mov ecx, edi
- ; gcrRegs +[ecx]
- call [esi+0x14]<unknown method>
- ; gcrRegs -[ecx]
- cmp dword ptr [eax+0x04], 0
- jbe G_M051_IG14
- mov eax, gword ptr [eax+0x08]
- jmp SHORT G_M051_IG12
- ;; size=60 bbWeight=1 PerfScore 32.75
-G_M051_IG11: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- xor eax, eax
- ; gcrRegs +[eax]
- ;; size=2 bbWeight=1 PerfScore 0.25
-G_M051_IG12: ; bbWeight=1, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref
- test eax, eax
- cmove eax, edi
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- je G_M051_IG03
- cmp eax, 0xD1FFAB1E
- sete al
- ; gcrRegs -[eax]
- movzx eax, al
- ;; size=170 bbWeight=1 PerfScore 19.50
-G_M051_IG13: ; bbWeight=1, epilog, nogc, extend
- pop esi
- pop edi
- pop ebp
- ret
- ;; size=4 bbWeight=1 PerfScore 2.50
-G_M051_IG14: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[edi]
- call CORINFO_HELP_RNGCHKFAIL
- int3
...
+16 (+29.09%) : 81859.dasm - System.Collections.Immutable.ImmutableArray
1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray
1+Builder[System.__Canon]):this (Tier1)@@ -9,13 +9,13 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-; V01 arg1 [V01,T00] ( 5, 5 ) ref -> edx class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V01 arg1 [V01,T00] ( 6, 5 ) ref -> edx class-hnd single-def <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
;* V02 tmp0 [V02 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.__Canon[]>
; V04 tmp2 [V04,T04] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
-;* V05 rat0 [V05,T03] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V05 rat0 [V05,T03] ( 2, 4 ) int -> ecx "Spilling to split statement for tree"
;* V06 rat1 [V06,T05] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V07 rat2 [V07,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V07 rat2 [V07,T02] ( 2, 4 ) int -> ecx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 0
@@ -28,24 +28,18 @@ G_M61315_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=6 bbWeight=1 PerfScore 2.50
G_M61315_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[edx]
- cmp dword ptr [esi], esi
+ mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [ecx+0x24]
+ mov ecx, dword ptr [ecx]
+ mov ecx, dword ptr [ecx+0x44]
+ test ecx, ecx
+ je SHORT G_M61315_IG06
+ ;; size=14 bbWeight=1 PerfScore 9.25
+G_M61315_IG03: ; bbWeight=0.80, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
test edx, edx
- jne SHORT G_M61315_IG04
- ;; size=6 bbWeight=1 PerfScore 4.25
-G_M61315_IG03: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[edx]
- mov ecx, 959
- mov edx, 0xD1FFAB1E
- call CORINFO_HELP_STRCNS
- ; gcrRegs +[eax]
- mov ecx, eax
- ; gcrRegs +[ecx]
- call [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
- ; gcrRegs -[eax ecx]
- int3
- ;; size=24 bbWeight=0 PerfScore 0.00
+ je SHORT G_M61315_IG07
+ ;; size=4 bbWeight=0.80 PerfScore 1.00
G_M61315_IG04: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[edx]
mov ecx, gword ptr [edx+0x04]
; gcrRegs +[ecx]
push dword ptr [edx+0x08]
@@ -59,7 +53,24 @@ G_M61315_IG05: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=3 bbWeight=1 PerfScore 2.00
+G_M61315_IG06: ; bbWeight=0.20, gcVars=00000000 {}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[edx]
+ test edx, edx
+ jne SHORT G_M61315_IG04
+ ;; size=4 bbWeight=0.20 PerfScore 0.25
+G_M61315_IG07: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[edx]
+ mov ecx, 959
+ mov edx, 0xD1FFAB1E
+ call CORINFO_HELP_STRCNS
+ ; gcrRegs +[eax]
+ mov ecx, eax
+ ; gcrRegs +[ecx]
+ call [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
+ ; gcrRegs -[eax ecx]
+ int3
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 55, prolog size 4, PerfScore 16.25, instruction count 21, allocated bytes for code 55 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
+; Total bytes of code 71, prolog size 4, PerfScore 22.50, instruction count 28, allocated bytes for code 71 (MethodHash=e419107c) for method System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
; ============================================================
+16 (+32.65%) : 79193.dasm - System.Collections.Immutable.ImmutableHashSet
1[System.__Canon]:Union(System.Collections.Generic.IEnumerable
1[System.Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.Canon]:this (Tier1)@@ -8,12 +8,12 @@
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-; V01 arg1 [V01,T01] ( 4, 4 ) ref -> edx class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+; V00 this [V00,T01] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+; V01 arg1 [V01,T00] ( 5, 4 ) ref -> edx class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
;* V02 tmp0 [V02 ] ( 0, 0 ) int -> zero-ref "spilling helperCall"
-;* V03 rat0 [V03,T03] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V03 rat0 [V03,T03] ( 2, 4 ) int -> ecx "Spilling to split statement for tree"
;* V04 rat1 [V04,T04] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V05 rat2 [V05,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V05 rat2 [V05,T02] ( 2, 4 ) int -> ecx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 0
@@ -26,24 +26,18 @@ G_M52093_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=6 bbWeight=1 PerfScore 2.50
G_M52093_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[edx]
- cmp dword ptr [esi], esi
+ mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [ecx+0x24]
+ mov ecx, dword ptr [ecx]
+ mov ecx, dword ptr [ecx+0x40]
+ test ecx, ecx
+ je SHORT G_M52093_IG06
+ ;; size=14 bbWeight=1 PerfScore 9.25
+G_M52093_IG03: ; bbWeight=0.80, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
test edx, edx
- jne SHORT G_M52093_IG04
- ;; size=6 bbWeight=1 PerfScore 4.25
-G_M52093_IG03: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[edx]
- mov ecx, 0x48B
- mov edx, 0xD1FFAB1E
- call CORINFO_HELP_STRCNS
- ; gcrRegs +[eax]
- mov ecx, eax
- ; gcrRegs +[ecx]
- call [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
- ; gcrRegs -[eax ecx]
- int3
- ;; size=24 bbWeight=0 PerfScore 0.00
+ je SHORT G_M52093_IG07
+ ;; size=4 bbWeight=0.80 PerfScore 1.00
G_M52093_IG04: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[edx]
push 0
mov ecx, esi
; gcrRegs +[ecx]
@@ -55,7 +49,24 @@ G_M52093_IG05: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=3 bbWeight=1 PerfScore 2.00
+G_M52093_IG06: ; bbWeight=0.20, gcVars=00000000 {}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[edx]
+ test edx, edx
+ jne SHORT G_M52093_IG04
+ ;; size=4 bbWeight=0.20 PerfScore 0.25
+G_M52093_IG07: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[edx]
+ mov ecx, 0x48B
+ mov edx, 0xD1FFAB1E
+ call CORINFO_HELP_STRCNS
+ ; gcrRegs +[eax]
+ mov ecx, eax
+ ; gcrRegs +[ecx]
+ call [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
+ ; gcrRegs -[eax ecx]
+ int3
+ ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 49, prolog size 4, PerfScore 13.00, instruction count 19, allocated bytes for code 49 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
+; Total bytes of code 65, prolog size 4, PerfScore 19.25, instruction count 26, allocated bytes for code 65 (MethodHash=22173482) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
; ============================================================
+9 (+34.62%) : 40684.dasm - Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; esp based frame
+; ebp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 3
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -17,10 +17,12 @@
;
; Lcl frame size = 0
-G_M46729_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46729_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push ebp
+ mov ebp, esp
mov edx, ecx
; gcrRegs +[edx]
- ;; size=2 bbWeight=1 PerfScore 0.25
+ ;; size=5 bbWeight=1 PerfScore 1.50
G_M46729_IG02: ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[ecx]
@@ -29,25 +31,33 @@ G_M46729_IG02: ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000
; gcrRegs -[ecx edx]
; byrRegs +[eax]
test eax, eax
- je SHORT G_M46729_IG05
- ;; size=18 bbWeight=1 PerfScore 9.25
-G_M46729_IG03: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref
- mov eax, gword ptr [eax]
+ jne SHORT G_M46729_IG06
+ jmp SHORT G_M46729_IG04
+ ;; size=20 bbWeight=1 PerfScore 11.25
+G_M46729_IG03: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
; gcrRegs +[eax]
; byrRegs -[eax]
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M46729_IG04: ; bbWeight=0, epilog, nogc, extend
+ pop ebp
ret
- ;; size=1 bbWeight=0 PerfScore 0.00
-G_M46729_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=2 bbWeight=0 PerfScore 0.00
+G_M46729_IG04: ; 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_M46729_IG06: ; bbWeight=0, epilog, nogc, extend
+G_M46729_IG05: ; bbWeight=0, epilog, nogc, extend
+ pop ebp
ret
- ;; size=1 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=0 PerfScore 0.00
+G_M46729_IG06: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref, isz
+ ; gcrRegs -[eax]
+ ; byrRegs +[eax]
+ mov eax, gword ptr [eax]
+ ; gcrRegs +[eax]
+ ; byrRegs -[eax]
+ jmp SHORT G_M46729_IG03
+ ;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 26, prolog size 0, PerfScore 9.50, instruction count 10, allocated bytes for code 26 (MethodHash=5d514976) for method Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
+; Total bytes of code 35, prolog size 3, PerfScore 12.75, instruction count 16, allocated bytes for code 35 (MethodHash=5d514976) for method Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
; ============================================================
benchmarks.run_tiered.windows.x86.checked.mch
-10 (-2.24%) : 25314.dasm - System.Collections.Generic.PriorityQueue
2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable
1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)@@ -54,7 +54,7 @@ G_M63155_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=18 bbWeight=1 PerfScore 6.25
G_M63155_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
test edi, edi
- je G_M63155_IG29
+ je G_M63155_IG28
xor ebx, ebx
mov edx, edi
; gcrRegs +[edx]
@@ -82,7 +82,7 @@ G_M63155_IG03: ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
jge SHORT G_M63155_IG06
mov edx, ecx
add edx, ebx
- jo G_M63155_IG28
+ jo G_M63155_IG27
mov ecx, esi
; gcrRegs +[ecx]
call [System.Collections.Generic.PriorityQueue`2[int,int]:Grow(int):this]
@@ -92,7 +92,7 @@ G_M63155_IG03: ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C1
;; size=46 bbWeight=0.50 PerfScore 8.38
G_M63155_IG04: ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
cmp dword ptr [esi+0x10], 0
- jne G_M63155_IG21
+ jne G_M63155_IG20
;; size=10 bbWeight=1 PerfScore 4.00
G_M63155_IG05: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
test eax, eax
@@ -106,7 +106,7 @@ G_M63155_IG05: ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
call [<unknown method>]
; gcrRegs -[eax ecx edx edi]
mov dword ptr [esi+0x10], ebx
- jmp G_M63155_IG19
+ jmp G_M63155_IG18
;; size=25 bbWeight=0.50 PerfScore 5.25
G_M63155_IG06: ; bbWeight=0.25, gcVars=00004000 {V03}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[edi]
@@ -136,7 +136,7 @@ G_M63155_IG08: ; bbWeight=0.50, gcVars=00000210 {V05 V06}, gcrefRegs=0000
call [<unknown method>]
; gcrRegs -[eax ecx]
test eax, eax
- je SHORT G_M63155_IG13
+ je SHORT G_M63155_IG14
;; size=12 bbWeight=0.50 PerfScore 2.25
G_M63155_IG09: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
lea edx, [ebp-0x34]
@@ -166,7 +166,7 @@ G_M63155_IG11: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov ecx, dword ptr [ebp-0x34]
mov edx, dword ptr [ebp-0x30]
cmp ebx, dword ptr [edi+0x04]
- jae SHORT G_M63155_IG14
+ jae SHORT G_M63155_IG13
lea ebx, bword ptr [edi+8*ebx+0x08]
; byrRegs +[ebx]
mov dword ptr [ebx], ecx
@@ -179,63 +179,57 @@ G_M63155_IG11: ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
test eax, eax
mov gword ptr [ebp-0x3C], edi
; GC ptr vars +{V05}
- jne SHORT G_M63155_IG12
- jmp SHORT G_M63155_IG15
- ;; size=44 bbWeight=4 PerfScore 75.00
-G_M63155_IG12: ; bbWeight=2, gcVars=00000210 {V05 V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[edi]
mov ebx, dword ptr [ebp-0x24]
- jmp SHORT G_M63155_IG09
- ;; size=5 bbWeight=2 PerfScore 6.00
-G_M63155_IG13: ; bbWeight=0.25, gcVars=00000200 {V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ jne SHORT G_M63155_IG09
+ ;; size=45 bbWeight=4 PerfScore 71.00
+G_M63155_IG12: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[edi]
; GC ptr vars -{V05}
- mov dword ptr [ebp-0x24], ebx
- jmp SHORT G_M63155_IG15
- ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M63155_IG14: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ jmp SHORT G_M63155_IG14
+ ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M63155_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; gcrRegs -[esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M63155_IG15: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG14: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
mov ecx, gword ptr [ebp-0x40]
; gcrRegs +[ecx]
; GC ptr vars -{V06}
call [<unknown method>]
; gcrRegs -[ecx]
- jmp SHORT G_M63155_IG18
+ jmp SHORT G_M63155_IG17
;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG16: ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG15: ; bbWeight=0, gcVars=00000200 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[esi]
; GC ptr vars +{V06 V09}
cmp gword ptr [ebp-0x40], 0
- je SHORT G_M63155_IG17
+ je SHORT G_M63155_IG16
mov ecx, gword ptr [ebp-0x40]
; gcrRegs +[ecx]
; GC ptr vars -{V06 V09}
call [<unknown method>]
; gcrRegs -[ecx]
;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG17: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG16: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
pop eax
jmp eax
;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG18: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M63155_IG17: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs +[esi]
- mov ebx, dword ptr [ebp-0x24]
mov dword ptr [esi+0x10], ebx
- ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M63155_IG19: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=3 bbWeight=0.50 PerfScore 0.50
+G_M63155_IG18: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
inc dword ptr [esi+0x14]
cmp dword ptr [esi+0x10], 1
- jle SHORT G_M63155_IG27
+ jle SHORT G_M63155_IG26
mov ecx, esi
; gcrRegs +[ecx]
call [System.Collections.Generic.PriorityQueue`2[int,int]:Heapify():this]
; gcrRegs -[ecx esi]
;; size=17 bbWeight=0.50 PerfScore 5.12
-G_M63155_IG20: ; bbWeight=0.50, epilog, nogc, extend
+G_M63155_IG19: ; bbWeight=0.50, epilog, nogc, extend
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -243,7 +237,7 @@ G_M63155_IG20: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG21: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG20: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs +[esi edi]
mov ecx, edi
; gcrRegs +[ecx]
@@ -252,15 +246,15 @@ G_M63155_IG21: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
mov gword ptr [ebp-0x44], eax
; GC ptr vars +{V09}
;; size=11 bbWeight=0.50 PerfScore 2.12
-G_M63155_IG22: ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG21: ; bbWeight=0.50, gcVars=00000400 {V09}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
mov ecx, eax
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[eax ecx]
test eax, eax
- je SHORT G_M63155_IG24
+ je SHORT G_M63155_IG23
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M63155_IG23: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG22: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
lea edx, [ebp-0x2C]
mov ecx, gword ptr [ebp-0x44]
; gcrRegs +[ecx]
@@ -277,32 +271,32 @@ G_M63155_IG23: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [<unknown method>]
; gcrRegs -[ecx]
test eax, eax
- jne SHORT G_M63155_IG23
+ jne SHORT G_M63155_IG22
;; size=39 bbWeight=4 PerfScore 60.00
-G_M63155_IG24: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M63155_IG23: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
mov ecx, gword ptr [ebp-0x44]
; gcrRegs +[ecx]
; GC ptr vars -{V09}
call [<unknown method>]
; gcrRegs -[ecx]
- jmp SHORT G_M63155_IG27
+ jmp SHORT G_M63155_IG26
;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M63155_IG25: ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M63155_IG24: ; bbWeight=0, gcVars=00000400 {V09}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
; GC ptr vars +{V09}
cmp gword ptr [ebp-0x44], 0
- je SHORT G_M63155_IG26
+ je SHORT G_M63155_IG25
mov ecx, gword ptr [ebp-0x44]
; gcrRegs +[ecx]
; GC ptr vars -{V09}
call [<unknown method>]
; gcrRegs -[ecx]
;; size=15 bbWeight=0 PerfScore 0.00
-G_M63155_IG26: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG25: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
pop eax
jmp eax
;; size=3 bbWeight=0 PerfScore 0.00
-G_M63155_IG27: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M63155_IG26: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -310,10 +304,10 @@ G_M63155_IG27: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
pop ebp
ret
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M63155_IG28: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M63155_IG27: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call CORINFO_HELP_OVERFLOW
;; size=5 bbWeight=0 PerfScore 0.00
-G_M63155_IG29: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M63155_IG28: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0x85D
mov edx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
@@ -325,10 +319,10 @@ G_M63155_IG29: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 446, prolog size 14, PerfScore 247.12, instruction count 149, allocated bytes for code 446 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
+; Total bytes of code 436, prolog size 14, PerfScore 236.88, instruction count 145, allocated bytes for code 436 (MethodHash=4e07094c) for method System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
; ============================================================
*************** EH table for System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this
2 EH table entries, 2 total EH entries reported to VM
-EH#0: try [G_M63155_IG08..G_M63155_IG15) handled by [G_M63155_IG16..G_M63155_IG18) (fault)
-EH#1: try [G_M63155_IG22..G_M63155_IG24) handled by [G_M63155_IG25..G_M63155_IG27) (fault)
+EH#0: try [G_M63155_IG08..G_M63155_IG14) handled by [G_M63155_IG15..G_M63155_IG17) (fault)
+EH#1: try [G_M63155_IG21..G_M63155_IG23) handled by [G_M63155_IG24..G_M63155_IG26) (fault)
-2 (-1.98%) : 19864.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -66,9 +66,8 @@ G_M21922_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
lea edx, bword ptr [eax+4*edx+0x08]
; byrRegs +[edx]
cmp dword ptr [edx+0x04], -1
- jge SHORT G_M21922_IG07
- jmp SHORT G_M21922_IG03
- ;; size=34 bbWeight=2 PerfScore 38.00
+ jl SHORT G_M21922_IG03
+ ;; size=32 bbWeight=2 PerfScore 34.00
G_M21922_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
; gcrRegs -[eax]
mov eax, dword ptr [edx+0x08]
@@ -89,6 +88,6 @@ G_M21922_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 101, prolog size 4, PerfScore 119.12, instruction count 41, allocated bytes for code 101 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
+; Total bytes of code 99, prolog size 4, PerfScore 115.12, instruction count 40, allocated bytes for code 99 (MethodHash=7a0aaa5d) for method System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
; ============================================================
-2 (-1.90%) : 8221.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -69,9 +69,8 @@ G_M27287_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
lea edx, bword ptr [eax+4*edx+0x08]
; byrRegs +[edx]
cmp dword ptr [edx+0x08], -1
- jge SHORT G_M27287_IG07
- jmp SHORT G_M27287_IG03
- ;; size=34 bbWeight=2 PerfScore 38.00
+ jl SHORT G_M27287_IG03
+ ;; size=32 bbWeight=2 PerfScore 34.00
G_M27287_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
; gcrRegs -[eax]
mov eax, gword ptr [edx]
@@ -95,6 +94,6 @@ G_M27287_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 105, prolog size 4, PerfScore 119.38, instruction count 42, allocated bytes for code 105 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
+; Total bytes of code 103, prolog size 4, PerfScore 115.38, instruction count 41, allocated bytes for code 103 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
; ============================================================
+14 (+7.04%) : 44993.dasm - System.Collections.IterateForEach`1[System.Canon]:FrozenSet():System.Canon:this (Tier0-FullOpts)
@@ -23,10 +23,10 @@
; V12 tmp7 [V12,T02] ( 3, 6 ) ref -> ecx single-def "argument with side effect"
; V13 EHSlots [V13 ] ( 1, 1 ) struct (16) [ebp-0x18] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
;* V14 cse0 [V14,T10] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-; V15 cse1 [V15,T09] ( 5, 2.20) int -> ecx hoist multi-def "CSE - aggressive"
-;* V16 rat0 [V16,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V15 cse1 [V15,T09] ( 6, 3.20) int -> ecx hoist multi-def "CSE - aggressive"
+; V16 rat0 [V16,T05] ( 2, 4 ) int -> edx "Spilling to split statement for tree"
;* V17 rat1 [V17,T08] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V18 rat2 [V18,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V18 rat2 [V18,T03] ( 2, 4 ) int -> edx "fgMakeTemp is creating a new local variable"
; V19 rat3 [V19,T04] ( 3, 5.60) int -> eax "fgMakeTemp is creating a new local variable"
; V20 rat4 [V20,T11] ( 3, 0 ) int -> ecx "Spilling to split statement for tree"
; V21 rat5 [V21,T12] ( 3, 0 ) int -> eax "fgMakeTemp is creating a new local variable"
@@ -63,8 +63,14 @@ G_M17622_IG03: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[ecx]
mov ecx, dword ptr [ecx]
; gcrRegs -[ecx]
+ mov edx, ecx
+ mov edx, dword ptr [edx+0x24]
+ mov edx, dword ptr [edx]
+ mov edx, dword ptr [edx+0x10]
+ test edx, edx
+ jne SHORT G_M17622_IG05
jmp SHORT G_M17622_IG05
- ;; size=7 bbWeight=1 PerfScore 5.00
+ ;; size=21 bbWeight=1 PerfScore 12.50
G_M17622_IG04: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
mov edx, dword ptr [ebp-0x1C]
@@ -168,7 +174,7 @@ G_M17622_IG18: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 199, prolog size 27, PerfScore 155.18, instruction count 74, allocated bytes for code 199 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 213, prolog size 27, PerfScore 162.68, instruction count 80, allocated bytes for code 213 (MethodHash=5937bb29) for method System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
; ============================================================
*************** EH table for System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this
+14 (+10.14%) : 43692.dasm - System.Collections.IterateForEach`1[System.Canon]:ImmutableStack():System.Canon:this (Tier0-FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 3, 3 ) ref -> esi this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
+; V00 this [V00,T02] ( 4, 4 ) ref -> esi this class-hnd single-def <System.Collections.IterateForEach`1[System.__Canon]>
; V01 loc0 [V01,T05] ( 3, 4 ) ref -> edi ld-addr-op class-hnd <System.__Canon>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.Immutable.ImmutableStack`1[System.__Canon]>
; V03 loc2 [V03 ] ( 10, 31 ) struct ( 8) [ebp-0x10] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]>
@@ -22,9 +22,9 @@
; V11 tmp6 [V11 ] ( 2, 3 ) ref -> [ebp-0x10] do-not-enreg[X] addr-exposed "field V03._originalStack (fldOffset=0x0)" P-DEP
; V12 tmp7 [V12 ] ( 9, 29 ) ref -> [ebp-0x0C] do-not-enreg[X] addr-exposed "field V03._remainingStack (fldOffset=0x4)" P-DEP
;* V13 cse0 [V13,T08] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-;* V14 rat0 [V14,T04] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V14 rat0 [V14,T04] ( 2, 4 ) int -> ecx "Spilling to split statement for tree"
;* V15 rat1 [V15,T06] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V16 rat2 [V16,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V16 rat2 [V16,T03] ( 2, 4 ) int -> ecx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -49,8 +49,14 @@ G_M64146_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
cmp dword ptr [ecx], ecx
call [System.Collections.Immutable.ImmutableStack`1[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableStack`1+Enumerator[System.__Canon]:this]
; gcrRegs -[ecx]
+ mov ecx, dword ptr [esi]
+ mov ecx, dword ptr [ecx+0x24]
+ mov ecx, dword ptr [ecx]
+ mov ecx, dword ptr [ecx+0x10]
+ test ecx, ecx
+ jne SHORT G_M64146_IG04
jmp SHORT G_M64146_IG04
- ;; size=18 bbWeight=1 PerfScore 10.75
+ ;; size=32 bbWeight=1 PerfScore 20.00
G_M64146_IG03: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[edi]
cmp gword ptr [ebp-0x0C], 0
@@ -123,6 +129,6 @@ G_M64146_IG10: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}
int3
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 138, prolog size 16, PerfScore 138.50, instruction count 50, allocated bytes for code 138 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
+; Total bytes of code 152, prolog size 16, PerfScore 147.75, instruction count 56, allocated bytes for code 152 (MethodHash=fec7056d) for method System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
; ============================================================
+45 (+24.06%) : 32792.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
@@ -71,7 +71,7 @@ G_M65031_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
xor eax, eax
mov dword ptr [ebp-0x10], eax
;; size=11 bbWeight=1 PerfScore 3.25
-G_M65031_IG03: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
+G_M65031_IG03: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
push 13
push 226
push ebx
@@ -81,62 +81,64 @@ G_M65031_IG03: ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=000000C0 {e
call [<unknown method>]
; byrRegs -[ecx]
cmp eax, -1
- je SHORT G_M65031_IG07
- ;; size=26 bbWeight=8 PerfScore 62.00
+ je G_M65031_IG09
+ ;; size=30 bbWeight=8 PerfScore 62.00
G_M65031_IG04: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
mov ecx, eax
add ecx, dword ptr [ebp-0x10]
mov edx, ecx
cmp eax, ebx
- jae SHORT G_M65031_IG11
+ jae G_M65031_IG13
cmp byte ptr [edi+eax], 226
- jne SHORT G_M65031_IG09
+ jne SHORT G_M65031_IG11
inc edx
mov dword ptr [ebp-0x10], edx
inc eax
cmp eax, ebx
- ja SHORT G_M65031_IG13
+ ja G_M65031_IG15
+ mov edx, dword ptr [ebp-0x10]
add edi, eax
sub ebx, eax
jns SHORT G_M65031_IG06
- ;; size=32 bbWeight=4 PerfScore 48.00
+ ;; size=43 bbWeight=4 PerfScore 52.00
G_M65031_IG05: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+ mov dword ptr [ebp-0x10], edx
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- ;; size=16 bbWeight=2 PerfScore 7.00
+ mov edx, dword ptr [ebp-0x10]
+ ;; size=22 bbWeight=2 PerfScore 11.00
G_M65031_IG06: ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
cmp ebx, 2
- jl SHORT G_M65031_IG03
+ jl SHORT G_M65031_IG08
+ mov eax, edx
cmp ebx, 1
- jbe SHORT G_M65031_IG11
+ jbe SHORT G_M65031_IG13
movzx ecx, byte ptr [edi+0x01]
cmp byte ptr [edi], 128
- jne SHORT G_M65031_IG03
+ jne SHORT G_M65031_IG07
cmp ecx, 168
- je SHORT G_M65031_IG12
+ je SHORT G_M65031_IG14
cmp ecx, 169
- je SHORT G_M65031_IG12
- jmp SHORT G_M65031_IG03
- ;; size=37 bbWeight=4 PerfScore 52.00
-G_M65031_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ je SHORT G_M65031_IG14
+ mov dword ptr [ebp-0x10], eax
+ jmp G_M65031_IG03
+ ;; size=45 bbWeight=4 PerfScore 57.00
+G_M65031_IG07: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+ mov dword ptr [ebp-0x10], eax
+ jmp G_M65031_IG03
+ ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG08: ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+ mov dword ptr [ebp-0x10], edx
+ jmp G_M65031_IG03
+ ;; size=8 bbWeight=2 PerfScore 6.00
+G_M65031_IG09: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; byrRegs -[esi edi]
mov eax, -1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M65031_IG08: ; bbWeight=0.50, epilog, nogc, extend
- pop ecx
- pop ebx
- pop esi
- pop edi
- pop ebp
- ret 8
- ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG09: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- mov eax, edx
- ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M65031_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop ecx
pop ebx
@@ -145,10 +147,21 @@ G_M65031_IG10: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret 8
;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M65031_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M65031_IG11: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ mov eax, edx
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M65031_IG12: ; bbWeight=0.50, epilog, nogc, extend
+ pop ecx
+ pop ebx
+ pop esi
+ pop edi
+ pop ebp
+ ret 8
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M65031_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M65031_IG12: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+G_M65031_IG14: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
; byrRegs +[esi]
xor ecx, ecx
; byrRegs +[ecx]
@@ -161,11 +174,11 @@ G_M65031_IG12: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
; byrRegs -[ecx esi]
int3
;; size=21 bbWeight=0 PerfScore 0.00
-G_M65031_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M65031_IG15: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 187, prolog size 7, PerfScore 182.50, instruction count 74, allocated bytes for code 187 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
+; Total bytes of code 232, prolog size 7, PerfScore 207.50, instruction count 83, allocated bytes for code 232 (MethodHash=69ec01f8) for method System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
; ============================================================
coreclr_tests.run.windows.x86.checked.mch
-9 (-12.86%) : 477494.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
@@ -35,66 +35,46 @@
;
; Lcl frame size = 0
-G_M34829_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M34829_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M34829_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
movzx ecx, cx
cmp ecx, 256
- jb SHORT G_M34829_IG05
+ jae SHORT G_M34829_IG09
;; size=11 bbWeight=1 PerfScore 1.50
-G_M34829_IG03: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- call [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
- ;; size=6 bbWeight=0 PerfScore 0.00
+G_M34829_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ movzx eax, byte ptr [ecx+D1FFAB1EH]
+ and eax, 31
+ ;; size=10 bbWeight=0.50 PerfScore 1.12
G_M34829_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
add eax, -8
cmp eax, 16
- ja SHORT G_M34829_IG08
- lea ecx, [@RWD00]
- mov ecx, dword ptr [ecx+4*eax]
- lea edx, G_M34829_IG02
- add ecx, edx
- jmp ecx
- ;; size=27 bbWeight=1 PerfScore 7.25
-G_M34829_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- movzx eax, byte ptr [ecx+D1FFAB1EH]
- and eax, 31
- jmp SHORT G_M34829_IG04
- ;; size=12 bbWeight=0.50 PerfScore 2.12
-G_M34829_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ja SHORT G_M34829_IG07
+ mov ecx, 0x1FC7D
+ bt ecx, eax
+ jae SHORT G_M34829_IG07
+ ;; size=18 bbWeight=1 PerfScore 3.25
+G_M34829_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M34829_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M34829_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M34829_IG09: ; bbWeight=0.50, epilog, nogc, extend
+G_M34829_IG08: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-RWD00 dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG08 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG08 - G_M34829_IG02
- dd G_M34829_IG08 - G_M34829_IG02
- dd G_M34829_IG08 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
- dd G_M34829_IG06 - G_M34829_IG02
+G_M34829_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ call [System.Globalization.CharUnicodeInfo:GetUnicodeCategory(int):int]
+ jmp SHORT G_M34829_IG04
+ ;; size=8 bbWeight=0 PerfScore 0.00
-
-; Total bytes of code 70, prolog size 3, PerfScore 13.88, instruction count 23, allocated bytes for code 70 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
+; Total bytes of code 61, prolog size 3, PerfScore 8.88, instruction count 21, allocated bytes for code 61 (MethodHash=b88877f2) for method System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
; ============================================================
-39 (-11.08%) : 506866.dasm - Testvariancesmallil.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
@@ -8,7 +8,7 @@
; 3 inlinees with PGO data; 23 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 8, 5.89) ref -> registers class-hnd single-def <System.String>
+; V00 arg0 [V00,T00] ( 8, 5.89) ref -> esi class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 8, 5.39) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T06] ( 6, 3.39) ref -> [ebp+0x10] class-hnd single-def <System.String>
; V03 arg3 [V03,T02] ( 12, 6.18) ref -> ebx class-hnd single-def <System.String>
@@ -114,53 +114,22 @@ G_M40721_IG02: ; bbWeight=1.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
call [<unknown method>]
; gcrRegs -[eax ecx]
cmp esi, ebx
- je SHORT G_M40721_IG05
+ je SHORT G_M40721_IG07
;; size=116 bbWeight=1.00 PerfScore 37.50
G_M40721_IG03: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
test esi, esi
- je G_M40721_IG23
+ je G_M40721_IG18
;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG04: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov edx, esi
- ; gcrRegs +[edx]
- mov esi, gword ptr [ebp+0x10]
- jmp SHORT G_M40721_IG14
- ;; size=7 bbWeight=0.45 PerfScore 1.45
-G_M40721_IG05: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[edx esi]
- cmp edi, ebx
- je SHORT G_M40721_IG08
- ;; size=4 bbWeight=0.50 PerfScore 0.63
-G_M40721_IG06: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref
- test edi, edi
- je G_M40721_IG23
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG07: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
- mov esi, gword ptr [ebp+0x10]
- ; gcrRegs +[esi]
- jmp SHORT G_M40721_IG18
- ;; size=5 bbWeight=0.45 PerfScore 1.34
-G_M40721_IG08: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[esi edi]
- mov esi, gword ptr [ebp+0x10]
- ; gcrRegs +[esi]
- cmp esi, ebx
- je SHORT G_M40721_IG13
- ;; size=7 bbWeight=0.50 PerfScore 1.13
-G_M40721_IG09: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
- test esi, esi
- je G_M40721_IG23
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG10: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40721_IG04: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
test ebx, ebx
- je G_M40721_IG23
+ je G_M40721_IG18
;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG11: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40721_IG05: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [esi+0x04]
cmp edx, dword ptr [ebx+0x04]
- jne G_M40721_IG23
- ;; size=12 bbWeight=0.45 PerfScore 2.68
-G_M40721_IG12: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ jne SHORT G_M40721_IG18
+ ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40721_IG06: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
mov edx, dword ptr [esi+0x04]
@@ -169,57 +138,29 @@ G_M40721_IG12: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=0
lea edx, bword ptr [ebx+0x08]
; byrRegs +[edx]
call [<unknown method>]
- ; gcrRegs -[ebx esi]
+ ; gcrRegs -[esi]
; byrRegs -[ecx edx]
test eax, eax
- je SHORT G_M40721_IG23
+ je SHORT G_M40721_IG18
;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40721_IG13: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- xor ecx, ecx
- cmp dword ptr [ebp+0x08], 2
- setne cl
- test cl, cl
- jne SHORT G_M40721_IG23
- jmp SHORT G_M40721_IG22
- ;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M40721_IG14: ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs +[edx ebx esi edi]
- test ebx, ebx
- je SHORT G_M40721_IG23
+G_M40721_IG07: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, ebx
+ je SHORT G_M40721_IG12
+ ;; size=4 bbWeight=0.50 PerfScore 0.63
+G_M40721_IG08: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+ test edi, edi
+ je SHORT G_M40721_IG18
;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG15: ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [edx+0x04]
- cmp ecx, dword ptr [ebx+0x04]
- jne SHORT G_M40721_IG23
- ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40721_IG16: ; bbWeight=0.50, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- lea ecx, bword ptr [edx+0x08]
- ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
- ; gcrRegs -[edx]
- add edx, edx
- push edx
- lea edx, bword ptr [ebx+0x08]
- ; byrRegs +[edx]
- call [<unknown method>]
- ; byrRegs -[ecx edx]
- test eax, eax
- je SHORT G_M40721_IG23
- ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40721_IG17: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov gword ptr [ebp+0x10], esi
- jmp SHORT G_M40721_IG05
- ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M40721_IG18: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40721_IG09: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
test ebx, ebx
- je SHORT G_M40721_IG23
+ je SHORT G_M40721_IG18
;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40721_IG19: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40721_IG10: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [edi+0x04]
cmp edx, dword ptr [ebx+0x04]
- jne SHORT G_M40721_IG23
+ jne SHORT G_M40721_IG18
;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40721_IG20: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40721_IG11: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [edi+0x08]
; byrRegs +[ecx]
mov edx, dword ptr [edi+0x04]
@@ -231,36 +172,71 @@ G_M40721_IG20: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
; gcrRegs -[edi]
; byrRegs -[ecx edx]
test eax, eax
- je SHORT G_M40721_IG23
+ je SHORT G_M40721_IG18
;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40721_IG21: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
- mov gword ptr [ebp+0x10], esi
- jmp G_M40721_IG08
- ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M40721_IG22: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[ebx esi]
- mov ecx, 0xD1FFAB1E
- ; gcrRegs +[ecx]
+G_M40721_IG12: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+ mov esi, gword ptr [ebp+0x10]
+ ; gcrRegs +[esi]
+ cmp esi, ebx
+ je SHORT G_M40721_IG17
+ ;; size=7 bbWeight=0.50 PerfScore 1.13
+G_M40721_IG13: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ test esi, esi
+ je SHORT G_M40721_IG18
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40721_IG14: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ test ebx, ebx
+ je SHORT G_M40721_IG18
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40721_IG15: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov edx, dword ptr [esi+0x04]
+ cmp edx, dword ptr [ebx+0x04]
+ jne SHORT G_M40721_IG18
+ ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40721_IG16: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ mov edx, dword ptr [esi+0x04]
+ add edx, edx
+ push edx
+ lea edx, bword ptr [ebx+0x08]
+ ; byrRegs +[edx]
call [<unknown method>]
- ; gcrRegs -[ecx]
- xor eax, eax
- jmp SHORT G_M40721_IG24
- ;; size=15 bbWeight=0.50 PerfScore 2.75
-G_M40721_IG23: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M40721_IG18
+ ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M40721_IG17: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ xor ecx, ecx
+ cmp dword ptr [ebp+0x08], 2
+ setne cl
+ test cl, cl
+ je SHORT G_M40721_IG20
+ ;; size=13 bbWeight=0.50 PerfScore 2.25
+G_M40721_IG18: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
mov eax, 1
;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M40721_IG24: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40721_IG19: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebx
pop esi
pop edi
pop ebp
ret 12
;; size=7 bbWeight=1 PerfScore 4.00
+G_M40721_IG20: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ mov ecx, 0xD1FFAB1E
+ ; gcrRegs +[ecx]
+ call [<unknown method>]
+ ; gcrRegs -[ecx]
+ xor eax, eax
+ jmp SHORT G_M40721_IG19
+ ;; size=15 bbWeight=0.50 PerfScore 2.75
-; Total bytes of code 352, prolog size 6, PerfScore 86.68, instruction count 114, allocated bytes for code 352 (MethodHash=e0c360ee) for method Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
+; Total bytes of code 313, prolog size 6, PerfScore 79.89, instruction count 104, allocated bytes for code 313 (MethodHash=e0c360ee) for method Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
; ============================================================
-39 (-11.08%) : 499687.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
@@ -8,7 +8,7 @@
; 3 inlinees with PGO data; 23 single block inlinees; 10 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 8, 5.89) ref -> registers class-hnd single-def <System.String>
+; V00 arg0 [V00,T00] ( 8, 5.89) ref -> esi class-hnd single-def <System.String>
; V01 arg1 [V01,T01] ( 8, 5.39) ref -> edi class-hnd single-def <System.String>
; V02 arg2 [V02,T06] ( 6, 3.39) ref -> [ebp+0x10] class-hnd single-def <System.String>
; V03 arg3 [V03,T02] ( 12, 6.18) ref -> ebx class-hnd single-def <System.String>
@@ -114,53 +114,22 @@ G_M40374_IG02: ; bbWeight=1.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
call [<unknown method>]
; gcrRegs -[eax ecx]
cmp esi, ebx
- je SHORT G_M40374_IG05
+ je SHORT G_M40374_IG07
;; size=116 bbWeight=1.00 PerfScore 37.50
G_M40374_IG03: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
test esi, esi
- je G_M40374_IG23
+ je G_M40374_IG18
;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG04: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov edx, esi
- ; gcrRegs +[edx]
- mov esi, gword ptr [ebp+0x10]
- jmp SHORT G_M40374_IG14
- ;; size=7 bbWeight=0.45 PerfScore 1.45
-G_M40374_IG05: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[edx esi]
- cmp edi, ebx
- je SHORT G_M40374_IG08
- ;; size=4 bbWeight=0.50 PerfScore 0.63
-G_M40374_IG06: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref
- test edi, edi
- je G_M40374_IG23
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG07: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
- mov esi, gword ptr [ebp+0x10]
- ; gcrRegs +[esi]
- jmp SHORT G_M40374_IG18
- ;; size=5 bbWeight=0.45 PerfScore 1.34
-G_M40374_IG08: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[esi edi]
- mov esi, gword ptr [ebp+0x10]
- ; gcrRegs +[esi]
- cmp esi, ebx
- je SHORT G_M40374_IG13
- ;; size=7 bbWeight=0.50 PerfScore 1.13
-G_M40374_IG09: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
- test esi, esi
- je G_M40374_IG23
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG10: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40374_IG04: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
test ebx, ebx
- je G_M40374_IG23
+ je G_M40374_IG18
;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG11: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M40374_IG05: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [esi+0x04]
cmp edx, dword ptr [ebx+0x04]
- jne G_M40374_IG23
- ;; size=12 bbWeight=0.45 PerfScore 2.68
-G_M40374_IG12: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ jne SHORT G_M40374_IG18
+ ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40374_IG06: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
mov edx, dword ptr [esi+0x04]
@@ -169,57 +138,29 @@ G_M40374_IG12: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=0
lea edx, bword ptr [ebx+0x08]
; byrRegs +[edx]
call [<unknown method>]
- ; gcrRegs -[ebx esi]
+ ; gcrRegs -[esi]
; byrRegs -[ecx edx]
test eax, eax
- je SHORT G_M40374_IG23
+ je SHORT G_M40374_IG18
;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40374_IG13: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- xor ecx, ecx
- cmp dword ptr [ebp+0x08], 2
- setne cl
- test cl, cl
- jne SHORT G_M40374_IG23
- jmp SHORT G_M40374_IG22
- ;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M40374_IG14: ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs +[edx ebx esi edi]
- test ebx, ebx
- je SHORT G_M40374_IG23
+G_M40374_IG07: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+ cmp edi, ebx
+ je SHORT G_M40374_IG12
+ ;; size=4 bbWeight=0.50 PerfScore 0.63
+G_M40374_IG08: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+ test edi, edi
+ je SHORT G_M40374_IG18
;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG15: ; bbWeight=0.45, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [edx+0x04]
- cmp ecx, dword ptr [ebx+0x04]
- jne SHORT G_M40374_IG23
- ;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40374_IG16: ; bbWeight=0.50, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- lea ecx, bword ptr [edx+0x08]
- ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
- ; gcrRegs -[edx]
- add edx, edx
- push edx
- lea edx, bword ptr [ebx+0x08]
- ; byrRegs +[edx]
- call [<unknown method>]
- ; byrRegs -[ecx edx]
- test eax, eax
- je SHORT G_M40374_IG23
- ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40374_IG17: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov gword ptr [ebp+0x10], esi
- jmp SHORT G_M40374_IG05
- ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M40374_IG18: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40374_IG09: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
test ebx, ebx
- je SHORT G_M40374_IG23
+ je SHORT G_M40374_IG18
;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M40374_IG19: ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40374_IG10: ; bbWeight=0.45, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [edi+0x04]
cmp edx, dword ptr [ebx+0x04]
- jne SHORT G_M40374_IG23
+ jne SHORT G_M40374_IG18
;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M40374_IG20: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40374_IG11: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [edi+0x08]
; byrRegs +[ecx]
mov edx, dword ptr [edi+0x04]
@@ -231,36 +172,71 @@ G_M40374_IG20: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
; gcrRegs -[edi]
; byrRegs -[ecx edx]
test eax, eax
- je SHORT G_M40374_IG23
+ je SHORT G_M40374_IG18
;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M40374_IG21: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
- mov gword ptr [ebp+0x10], esi
- jmp G_M40374_IG08
- ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M40374_IG22: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[ebx esi]
- mov ecx, 0xD1FFAB1E
- ; gcrRegs +[ecx]
+G_M40374_IG12: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+ mov esi, gword ptr [ebp+0x10]
+ ; gcrRegs +[esi]
+ cmp esi, ebx
+ je SHORT G_M40374_IG17
+ ;; size=7 bbWeight=0.50 PerfScore 1.13
+G_M40374_IG13: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ test esi, esi
+ je SHORT G_M40374_IG18
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40374_IG14: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ test ebx, ebx
+ je SHORT G_M40374_IG18
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M40374_IG15: ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov edx, dword ptr [esi+0x04]
+ cmp edx, dword ptr [ebx+0x04]
+ jne SHORT G_M40374_IG18
+ ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M40374_IG16: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ mov edx, dword ptr [esi+0x04]
+ add edx, edx
+ push edx
+ lea edx, bword ptr [ebx+0x08]
+ ; byrRegs +[edx]
call [<unknown method>]
- ; gcrRegs -[ecx]
- xor eax, eax
- jmp SHORT G_M40374_IG24
- ;; size=15 bbWeight=0.50 PerfScore 2.75
-G_M40374_IG23: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ebx esi]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M40374_IG18
+ ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M40374_IG17: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ xor ecx, ecx
+ cmp dword ptr [ebp+0x08], 2
+ setne cl
+ test cl, cl
+ je SHORT G_M40374_IG20
+ ;; size=13 bbWeight=0.50 PerfScore 2.25
+G_M40374_IG18: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
mov eax, 1
;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M40374_IG24: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40374_IG19: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebx
pop esi
pop edi
pop ebp
ret 12
;; size=7 bbWeight=1 PerfScore 4.00
+G_M40374_IG20: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ mov ecx, 0xD1FFAB1E
+ ; gcrRegs +[ecx]
+ call [<unknown method>]
+ ; gcrRegs -[ecx]
+ xor eax, eax
+ jmp SHORT G_M40374_IG19
+ ;; size=15 bbWeight=0.50 PerfScore 2.75
-; Total bytes of code 352, prolog size 6, PerfScore 86.68, instruction count 114, allocated bytes for code 352 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
+; Total bytes of code 313, prolog size 6, PerfScore 79.89, instruction count 104, allocated bytes for code 313 (MethodHash=6fa76249) for method Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
; ============================================================
+29 (+103.57%) : 509006.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -2,33 +2,50 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; esp based frame
+; ebp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
-; TEMP_01 float -> [esp+0x00]
+; V00 loc0 [V00,T00] ( 4, 3.50) float -> mm0 single-def
+; V01 cse0 [V01,T01] ( 3, 2.50) float -> mm1 "CSE - aggressive"
+; TEMP_01 float -> [ebp-0x04]
;
; Lcl frame size = 4
G_M53663_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push ebp
+ mov ebp, esp
push eax
vzeroupper
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
- fstp dword ptr [esp]
- vmovss xmm0, dword ptr [esp]
- vmovss dword ptr [esp], xmm0
- fld dword ptr [esp]
- ;; size=22 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ fstp dword ptr [ebp-0x04]
+ vmovss xmm0, dword ptr [ebp-0x04]
+ vmovss xmm1, dword ptr [@RWD00]
+ vucomiss xmm1, xmm0
+ jbe SHORT G_M53663_IG05
+ ;; size=28 bbWeight=1 PerfScore 12.50
+G_M53663_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ vmovss dword ptr [ebp-0x04], xmm0
+ fld dword ptr [ebp-0x04]
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M53663_IG04: ; bbWeight=1, epilog, nogc, extend
+ mov esp, ebp
+ pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 1.75
+G_M53663_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ vucomiss xmm0, xmm1
+ jp SHORT G_M53663_IG03
+ jne SHORT G_M53663_IG03
+ jmp SHORT G_M53663_IG03
+ ;; size=10 bbWeight=0.50 PerfScore 3.00
+RWD00 dd 41200000h ; 10
-; Total bytes of code 28, prolog size 4, PerfScore 11.50, instruction count 9, allocated bytes for code 32 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 57, prolog size 7, PerfScore 22.00, instruction count 19, allocated bytes for code 57 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
+35 (+125.00%) : 505069.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -2,36 +2,54 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; esp based frame
+; ebp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T00] ( 2, 2 ) float -> mm0 single-def
+; V00 loc0 [V00,T00] ( 5, 4 ) float -> mm0 single-def
;* V01 loc1 [V01 ] ( 0, 0 ) float -> zero-ref
;* V02 loc2 [V02 ] ( 0, 0 ) float -> zero-ref
-;* V03 cse0 [V03,T01] ( 0, 0 ) float -> zero-ref "CSE - aggressive"
-; TEMP_01 float -> [esp+0x00]
+; V03 cse0 [V03,T01] ( 4, 3 ) float -> mm1 "CSE - aggressive"
+; TEMP_01 float -> [ebp-0x04]
;
; Lcl frame size = 4
G_M53663_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push ebp
+ mov ebp, esp
push eax
vzeroupper
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53663_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53663_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
- fstp dword ptr [esp]
- vmovss xmm0, dword ptr [esp]
- vmovss dword ptr [esp], xmm0
- fld dword ptr [esp]
- ;; size=22 bbWeight=1 PerfScore 8.00
-G_M53663_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ fstp dword ptr [ebp-0x04]
+ vmovss xmm0, dword ptr [ebp-0x04]
+ vmovss xmm1, dword ptr [@RWD00]
+ vucomiss xmm1, xmm0
+ jbe SHORT G_M53663_IG05
+ ;; size=28 bbWeight=1 PerfScore 12.50
+G_M53663_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ vmovss dword ptr [ebp-0x04], xmm0
+ fld dword ptr [ebp-0x04]
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M53663_IG04: ; bbWeight=1, epilog, nogc, extend
+ mov esp, ebp
+ pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 1.75
+G_M53663_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ vucomiss xmm0, xmm1
+ jp SHORT G_M53663_IG03
+ jne SHORT G_M53663_IG03
+ vucomiss xmm0, xmm1
+ jbe SHORT G_M53663_IG03
+ jmp SHORT G_M53663_IG03
+ ;; size=16 bbWeight=0.50 PerfScore 4.50
+RWD00 dd 41200000h ; 10
-; Total bytes of code 28, prolog size 4, PerfScore 11.50, instruction count 9, allocated bytes for code 32 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 63, prolog size 7, PerfScore 23.50, instruction count 21, allocated bytes for code 63 (MethodHash=d33e2e60) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
+43 (+153.57%) : 509058.dasm - Test10w250d.testout1:Func011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_1():float (FullOpts)
@@ -2,34 +2,58 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; esp based frame
+; ebp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-;* V00 loc0 [V00 ] ( 0, 0 ) float -> zero-ref
-; V01 tmp0 [V01,T00] ( 2, 4 ) float -> mm0 "Single return block return value"
-; TEMP_01 float -> [esp+0x00]
+; V00 loc0 [V00,T00] ( 6, 4.50) float -> mm0 single-def
+; V01 tmp0 [V01,T01] ( 2, 4 ) float -> mm0 "Single return block return value"
+; V02 cse0 [V02,T02] ( 5, 3.50) float -> mm1 "CSE - aggressive"
+; TEMP_01 float -> [ebp-0x04]
;
; Lcl frame size = 4
G_M53791_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+ push ebp
+ mov ebp, esp
push eax
vzeroupper
- ;; size=4 bbWeight=1 PerfScore 2.00
-G_M53791_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ;; size=7 bbWeight=1 PerfScore 3.25
+G_M53791_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
call [Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float]
- fstp dword ptr [esp]
- vmovss xmm0, dword ptr [esp]
- vmovss dword ptr [esp], xmm0
- fld dword ptr [esp]
- ;; size=22 bbWeight=1 PerfScore 8.00
-G_M53791_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ fstp dword ptr [ebp-0x04]
+ vmovss xmm0, dword ptr [ebp-0x04]
+ vmovss xmm1, dword ptr [@RWD00]
+ vucomiss xmm0, xmm1
+ jbe SHORT G_M53791_IG04
+ ;; size=28 bbWeight=1 PerfScore 12.50
+G_M53791_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ jmp SHORT G_M53791_IG05
+ ;; size=2 bbWeight=1 PerfScore 2.00
+G_M53791_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ vucomiss xmm1, xmm0
+ ja SHORT G_M53791_IG03
+ vucomiss xmm0, xmm1
+ jp SHORT G_M53791_IG03
+ jne SHORT G_M53791_IG03
+ vucomiss xmm1, xmm0
+ jbe SHORT G_M53791_IG03
+ jmp SHORT G_M53791_IG03
+ ;; size=22 bbWeight=0.50 PerfScore 6.00
+G_M53791_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ vmovss dword ptr [ebp-0x04], xmm0
+ fld dword ptr [ebp-0x04]
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M53791_IG06: ; bbWeight=1, epilog, nogc, extend
+ mov esp, ebp
+ pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=4 bbWeight=1 PerfScore 1.75
+RWD00 dd 41200000h ; 10
-; Total bytes of code 28, prolog size 4, PerfScore 11.50, instruction count 9, allocated bytes for code 32 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
+
+; Total bytes of code 71, prolog size 7, PerfScore 27.00, instruction count 24, allocated bytes for code 71 (MethodHash=03ff2de0) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
; ============================================================
libraries.crossgen2.windows.x86.checked.mch
-31 (-5.59%) : 83605.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
@@ -9,9 +9,9 @@
; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 7, 7.50) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase>
+; V00 this [V00,T03] ( 7, 7.50) ref -> ebx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase>
; V01 arg1 [V01 ] ( 4, 5 ) struct (24) [ebp+0x08] do-not-enreg[XSF] addr-exposed ld-addr-op single-def <Microsoft.CodeAnalysis.Emit.EmitContext>
-; V02 arg2 [V02,T05] ( 6, 5 ) byref -> ebx single-def
+; V02 arg2 [V02,T05] ( 6, 5 ) byref -> esi single-def
; V03 loc0 [V03,T04] ( 7, 7 ) ref -> [ebp-0x2C] class-hnd EH-live spill-single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol]>
; V05 loc2 [V05,T07] ( 6, 6 ) int -> [ebp-0x24] spill-single-def
@@ -20,11 +20,11 @@
; V08 loc5 [V08,T08] ( 3, 6 ) ref -> edi class-hnd <<unknown class>>
; V09 tmp0 [V09,T09] ( 3, 6 ) ref -> eax class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
;* V10 tmp1 [V10 ] ( 0, 0 ) struct ( 4) zero-ref single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]>
-; V11 tmp2 [V11,T13] ( 2, 2 ) ref -> esi class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V12 tmp3 [V12,T11] ( 3, 3 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.VBDiagnostic>
+; V11 tmp2 [V11,T13] ( 2, 2 ) ref -> edi class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V12 tmp3 [V12,T11] ( 3, 3 ) ref -> ebx class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.VBDiagnostic>
;* V13 tmp4 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol>
; V14 tmp5 [V14,T12] ( 3, 3 ) ref -> [ebp-0x34] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.DiagnosticInfo>
-; V15 tmp6 [V15,T14] ( 2, 2 ) ref -> edi class-hnd exact single-def "finalizable newobj spill" <<unknown class>>
+; V15 tmp6 [V15,T14] ( 2, 2 ) ref -> ebx class-hnd exact single-def "finalizable newobj spill" <<unknown class>>
;* V16 tmp7 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Location>
; V17 tmp8 [V17,T10] ( 5, 5.50) ref -> edi single-def "field V04.array (fldOffset=0x0)" P-INDEP
; V18 tmp9 [V18,T15] ( 2, 1 ) ref -> eax "field V10.array (fldOffset=0x0)" P-INDEP
@@ -44,33 +44,33 @@ G_M43962_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
xorps xmm4, xmm4
movups xmmword ptr [ebp-0x30], xmm4
movups xmmword ptr [ebp-0x20], xmm4
- mov esi, ecx
- ; gcrRegs +[esi]
- mov ebx, edx
- ; byrRegs +[ebx]
+ mov ebx, ecx
+ ; gcrRegs +[ebx]
+ mov esi, edx
+ ; byrRegs +[esi]
;; size=24 bbWeight=1 PerfScore 9.33
-G_M43962_IG02: ; bbWeight=1, gcVars=00000040 {V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, gcvars, byref
+G_M43962_IG02: ; bbWeight=1, gcVars=00000040 {V07}, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, gcvars, byref
; GC ptr vars +{V06 V07}
mov edx, dword ptr [(reloc)] ; System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IFileReference]
- mov ecx, ebx
+ mov ecx, esi
; byrRegs +[ecx]
call [<unknown method>]
; byrRegs -[ecx]
test eax, eax
je G_M43962_IG17
;; size=22 bbWeight=1 PerfScore 6.50
-G_M43962_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+G_M43962_IG03: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref
mov ecx, dword ptr [(reloc)] ; <unknown class>
call [<unknown method>]
; gcrRegs +[eax]
mov gword ptr [ebp-0x2C], eax
; GC ptr vars +{V03}
;; size=15 bbWeight=0.50 PerfScore 3.00
-G_M43962_IG04: ; bbWeight=0.50, gcVars=00000050 {V03 V07}, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
+G_M43962_IG04: ; bbWeight=0.50, gcVars=00000050 {V03 V07}, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, gcvars, byref, isz
; gcrRegs -[eax]
; GC ptr vars -{V06}
mov edx, dword ptr [(reloc)] ; const ptr
- mov edx, gword ptr [esi+edx]
+ mov edx, gword ptr [ebx+edx]
; gcrRegs +[edx]
mov edi, gword ptr [edx+0x50]
; gcrRegs +[edi]
@@ -82,18 +82,18 @@ G_M43962_IG04: ; bbWeight=0.50, gcVars=00000050 {V03 V07}, gcrefRegs=0000
test ecx, ecx
jle SHORT G_M43962_IG06
test ecx, ecx
- jl G_M43962_IG08
+ jl SHORT G_M43962_IG07
cmp dword ptr [edi+0x04], ecx
- jle G_M43962_IG08
- ;; size=45 bbWeight=0.50 PerfScore 8.00
-G_M43962_IG05: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref, isz
+ jle SHORT G_M43962_IG07
+ ;; size=37 bbWeight=0.50 PerfScore 8.00
+G_M43962_IG05: ; bbWeight=3.96, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
mov dword ptr [ebp-0x28], edx
mov eax, gword ptr [edi+4*edx+0x08]
; gcrRegs +[eax]
push gword ptr [ebp+0x18]
mov edx, eax
; gcrRegs +[edx]
- mov ecx, esi
+ mov ecx, ebx
; gcrRegs +[ecx]
call [Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.Cci.IModuleReference:this]
; gcrRegs -[ecx edx]
@@ -114,98 +114,23 @@ G_M43962_IG05: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
cmp edx, eax
jle SHORT G_M43962_IG05
;; size=52 bbWeight=3.96 PerfScore 85.14
-G_M43962_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+G_M43962_IG06: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
; gcrRegs -[edi]
lea ecx, [ebp+0x08]
call [<unknown method>]
test eax, eax
- je G_M43962_IG09
- ;; size=17 bbWeight=0.50 PerfScore 2.38
-G_M43962_IG07: ; bbWeight=0.50, gcVars=00000010 {V03}, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, gcvars, byref
- ; GC ptr vars -{V07}
- mov ecx, gword ptr [ebp-0x2C]
- ; gcrRegs +[ecx]
- cmp dword ptr [ecx], ecx
- call [<unknown method>]
- ; gcrRegs -[ecx] +[eax]
- push eax
- mov edx, dword ptr [(reloc)] ; <unknown method>
- mov ecx, ebx
- ; byrRegs +[ecx]
- call [<unknown method>]
- ; gcrRegs -[eax]
- ; byrRegs -[ecx]
- test eax, eax
- je G_M43962_IG15
- mov ecx, gword ptr [ebx]
- ; gcrRegs +[ecx]
- cmp dword ptr [ecx+0x04], 0
- jle G_M43962_IG15
- mov ecx, dword ptr [(reloc)] ; const ptr
- ; gcrRegs -[ecx]
- mov ecx, gword ptr [esi+ecx]
- ; gcrRegs +[ecx]
- cmp dword ptr [ecx], ecx
- call [Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol:get_HashAlgorithm():int:this]
- ; gcrRegs -[ecx esi]
- mov ecx, eax
- call [<unknown method>]
- test eax, eax
- jne G_M43962_IG15
- mov esi, gword ptr [ebp+0x18]
- ; gcrRegs +[esi]
- call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
- ; byrRegs +[eax]
- mov edi, gword ptr [eax+0x230]
+ jne G_M43962_IG14
+ jmp SHORT G_M43962_IG08
+ ;; size=19 bbWeight=0.50 PerfScore 3.38
+G_M43962_IG07: ; bbWeight=0.04, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
; gcrRegs +[edi]
- call [CORINFO_HELP_READYTORUN_NEW]
- ; gcrRegs +[eax]
- ; byrRegs -[eax]
- mov gword ptr [ebp-0x34], eax
- ; GC ptr vars +{V14}
- push 0x915F
- mov ecx, eax
- ; gcrRegs +[ecx]
- mov edx, edi
- ; gcrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[eax ecx edx edi]
- call [CORINFO_HELP_READYTORUN_NEW]
- ; gcrRegs +[eax]
- mov edi, eax
- ; gcrRegs +[edi]
- call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
- ; gcrRegs -[eax]
- ; byrRegs +[eax]
- push gword ptr [eax]
- push 0
- mov edx, gword ptr [ebp-0x34]
- ; gcrRegs +[edx]
- mov ecx, edi
- ; gcrRegs +[ecx]
- ; GC ptr vars -{V14}
- call [<unknown method>]
- ; gcrRegs -[ecx edx]
- ; byrRegs -[eax]
- mov ecx, esi
- ; gcrRegs +[ecx]
- mov edx, edi
- ; gcrRegs +[edx]
- cmp dword ptr [ecx], ecx
- call [<unknown method>]
- ; gcrRegs -[ecx edx esi edi]
- jmp G_M43962_IG15
- ;; size=164 bbWeight=0.50 PerfScore 35.75
-G_M43962_IG08: ; bbWeight=0.04, gcVars=00000050 {V03 V07}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
- ; gcrRegs +[esi edi]
- ; GC ptr vars +{V06 V07}
mov dword ptr [ebp-0x28], edx
mov ecx, gword ptr [edi+4*edx+0x08]
; gcrRegs +[ecx]
push gword ptr [ebp+0x18]
mov edx, ecx
; gcrRegs +[edx]
- mov ecx, esi
+ mov ecx, ebx
call [Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.VisualBasic.Symbols.ModuleSymbol,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.Cci.IModuleReference:this]
; gcrRegs -[ecx edx] +[eax]
mov ecx, eax
@@ -224,20 +149,20 @@ G_M43962_IG08: ; bbWeight=0.04, gcVars=00000050 {V03 V07}, gcrefRegs=0000
mov eax, dword ptr [ebp-0x24]
cmp ecx, eax
mov edx, ecx
- jle SHORT G_M43962_IG08
- jmp G_M43962_IG06
- ;; size=59 bbWeight=0.04 PerfScore 0.95
-G_M43962_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+ jle SHORT G_M43962_IG07
+ jmp SHORT G_M43962_IG06
+ ;; size=56 bbWeight=0.04 PerfScore 0.95
+G_M43962_IG08: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
; gcrRegs -[edi]
mov ecx, dword ptr [(reloc)] ; const ptr
- mov ecx, gword ptr [esi+ecx]
+ mov ecx, gword ptr [ebx+ecx]
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx] +[eax]
mov gword ptr [ebp-0x30], eax
- jmp SHORT G_M43962_IG11
+ jmp SHORT G_M43962_IG10
;; size=20 bbWeight=0.50 PerfScore 5.00
-G_M43962_IG10: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M43962_IG09: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
; gcrRegs -[eax]
mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
@@ -251,7 +176,7 @@ G_M43962_IG10: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008
call [<unknown method>]
; gcrRegs -[eax ecx]
test eax, eax
- jne SHORT G_M43962_IG11
+ jne SHORT G_M43962_IG10
mov ecx, gword ptr [ebp-0x2C]
; gcrRegs +[ecx]
mov edx, edi
@@ -260,7 +185,7 @@ G_M43962_IG10: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008
call [<unknown method>]
; gcrRegs -[ecx edx edi]
;; size=38 bbWeight=2 PerfScore 38.00
-G_M43962_IG11: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M43962_IG10: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
mov eax, gword ptr [ebp-0x30]
; gcrRegs +[eax]
mov ecx, eax
@@ -268,34 +193,108 @@ G_M43962_IG11: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008
call [<unknown method>]
; gcrRegs -[eax ecx]
test eax, eax
- jne SHORT G_M43962_IG10
...
-10 (-4.46%) : 31014.dasm - System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
@@ -57,7 +57,7 @@ G_M42511_IG03: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
mov dword ptr [ebp-0x24], ebx
xor eax, eax
test ebx, ebx
- jle SHORT G_M42511_IG09
+ jle SHORT G_M42511_IG10
;; size=32 bbWeight=1 PerfScore 13.75
G_M42511_IG04: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [ebp-0x30]
@@ -74,7 +74,7 @@ G_M42511_IG04: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
;; size=29 bbWeight=4 PerfScore 61.00
G_M42511_IG05: ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
test esi, esi
- je SHORT G_M42511_IG10
+ je SHORT G_M42511_IG09
mov ecx, gword ptr [eax+0x08]
; gcrRegs +[ecx]
xor edx, edx
@@ -86,7 +86,7 @@ G_M42511_IG06: ; bbWeight=16, gcrefRegs=00000043 {eax ecx esi}, byrefRegs
mov edi, gword ptr [ecx+8*edx+0x08]
; gcrRegs +[edi]
cmp esi, edi
- je SHORT G_M42511_IG10
+ je SHORT G_M42511_IG09
inc edx
cmp ebx, edx
jg SHORT G_M42511_IG06
@@ -98,19 +98,14 @@ G_M42511_IG07: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
mov ebx, dword ptr [ebp-0x24]
cmp edi, ebx
mov eax, edi
- jl SHORT G_M42511_IG08
- jmp SHORT G_M42511_IG11
- ;; size=15 bbWeight=4 PerfScore 23.00
-G_M42511_IG08: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edi, dword ptr [ebp-0x2C]
- jmp SHORT G_M42511_IG04
- ;; size=5 bbWeight=2 PerfScore 6.00
-G_M42511_IG09: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ jl SHORT G_M42511_IG04
+ ;; size=16 bbWeight=4 PerfScore 19.00
+G_M42511_IG08: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
- mov dword ptr [ebp-0x2C], edi
- jmp SHORT G_M42511_IG11
- ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M42511_IG10: ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+ jmp SHORT G_M42511_IG10
+ ;; size=2 bbWeight=1 PerfScore 2.00
+G_M42511_IG09: ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[eax esi]
mov ecx, eax
; gcrRegs +[ecx]
@@ -118,40 +113,39 @@ G_M42511_IG10: ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
; gcrRegs -[eax ecx]
jmp SHORT G_M42511_IG07
;; size=10 bbWeight=2 PerfScore 10.50
-G_M42511_IG11: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M42511_IG10: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[esi]
mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x2C]
dec dword ptr [ecx+edi+0xD0]
cmp dword ptr [ecx+edi+0xD0], 0
- jne SHORT G_M42511_IG15
- ;; size=23 bbWeight=1 PerfScore 9.00
-G_M42511_IG12: ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+ jne SHORT G_M42511_IG14
+ ;; size=20 bbWeight=1 PerfScore 8.00
+G_M42511_IG11: ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
xor eax, eax
; gcrRegs +[eax]
mov gword ptr [ecx+edi+0x2C], eax
- jmp SHORT G_M42511_IG15
+ jmp SHORT G_M42511_IG14
;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M42511_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M42511_IG12: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax ecx]
mov edi, dword ptr [(reloc)] ; const ptr
mov ecx, gword ptr [ebp-0x30]
; gcrRegs +[ecx]
dec dword ptr [ecx+edi+0xD0]
cmp dword ptr [ecx+edi+0xD0], 0
- jne SHORT G_M42511_IG14
+ jne SHORT G_M42511_IG13
xor eax, eax
; gcrRegs +[eax]
mov gword ptr [ecx+edi+0x2C], eax
;; size=32 bbWeight=0 PerfScore 0.00
-G_M42511_IG14: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M42511_IG13: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax ecx]
; GC ptr vars -{V00}
pop eax
jmp eax
;; size=3 bbWeight=0 PerfScore 0.00
-G_M42511_IG15: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M42511_IG14: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
lea esp, [ebp-0x0C]
pop ebx
pop esi
@@ -160,9 +154,9 @@ G_M42511_IG15: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
ret
;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 224, prolog size 19, PerfScore 229.38, instruction count 80, allocated bytes for code 224 (MethodHash=9ec459f0) for method System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
+; Total bytes of code 214, prolog size 19, PerfScore 218.88, instruction count 76, allocated bytes for code 214 (MethodHash=9ec459f0) for method System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
; ============================================================
*************** EH table for System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this
1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M42511_IG03..G_M42511_IG11) handled by [G_M42511_IG13..G_M42511_IG15) (fault)
+EH#0: try [G_M42511_IG03..G_M42511_IG10) handled by [G_M42511_IG12..G_M42511_IG14) (fault)
-16 (-3.66%) : 146398.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
@@ -48,16 +48,16 @@ G_M11729_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[edi]
mov ebx, dword ptr [ebp+0x08]
;; size=14 bbWeight=1 PerfScore 6.75
-G_M11729_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M11729_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, dword ptr [esi+0x2C]
cmp ecx, 10
- ja G_M11729_IG14
+ ja SHORT G_M11729_IG06
lea edx, [reloc @RWD00]
mov edx, dword ptr [edx+4*ecx]
lea eax, G_M11729_IG02
add edx, eax
jmp edx
- ;; size=31 bbWeight=1 PerfScore 9.00
+ ;; size=27 bbWeight=1 PerfScore 9.00
G_M11729_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
cmp byte ptr [esi+0x40], 0
jne SHORT G_M11729_IG04
@@ -74,27 +74,40 @@ G_M11729_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
mov eax, dword ptr [eax+0x18]
; gcrRegs -[eax]
;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M11729_IG05: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
dec eax
cmp eax, 2
- ja G_M11729_IG14
+ ja SHORT G_M11729_IG06
mov ecx, eax
lea edx, [reloc @RWD44]
mov edx, dword ptr [edx+4*ecx]
lea eax, G_M11729_IG02
add edx, eax
jmp edx
- ;; size=31 bbWeight=0.50 PerfScore 3.75
-G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=27 bbWeight=0.50 PerfScore 3.75
+G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[esi edi]
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M11729_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ pop ecx
+ pop ebx
+ pop esi
+ pop edi
+ pop ebp
+ ret 8
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M11729_IG08: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[esi edi]
cmp dword ptr [esi+0x34], -1
- je G_M11729_IG09
+ je G_M11729_IG11
mov ecx, gword ptr [esi+0x04]
; gcrRegs +[ecx]
cmp dword ptr [ecx], ecx
call [<unknown method>]
; gcrRegs -[ecx]
test eax, eax
- je G_M11729_IG09
+ je G_M11729_IG11
push ebx
mov ecx, edi
; gcrRegs +[ecx]
@@ -102,30 +115,30 @@ G_M11729_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
call [System.Xml.XmlSubtreeReader:CheckBuffer(System.Array,int,int)]
; gcrRegs -[ecx]
test ebx, ebx
- je G_M11729_IG14
+ je SHORT G_M11729_IG06
cmp dword ptr [esi+0x38], 0
- jne SHORT G_M11729_IG08
+ jne SHORT G_M11729_IG10
mov edx, gword ptr [esi+0x1C]
; gcrRegs +[edx]
mov gword ptr [ebp-0x10], edx
; GC ptr vars +{V19}
test edx, edx
- je SHORT G_M11729_IG07
+ je SHORT G_M11729_IG09
mov ecx, edx
; gcrRegs +[ecx]
call [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
; gcrRegs -[ecx edx] +[eax]
test eax, eax
- je SHORT G_M11729_IG07
+ je SHORT G_M11729_IG09
mov ecx, gword ptr [ebp-0x10]
; gcrRegs +[ecx]
cmp dword ptr [ecx], ecx
; GC ptr vars -{V19}
call [<unknown method>]
; gcrRegs -[eax ecx]
- jmp SHORT G_M11729_IG08
- ;; size=90 bbWeight=0.50 PerfScore 20.75
-G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ jmp SHORT G_M11729_IG10
+ ;; size=86 bbWeight=0.50 PerfScore 20.75
+G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
call [CORINFO_HELP_READYTORUN_NEW]
; gcrRegs +[eax]
lea edx, bword ptr [esi+0x1C]
@@ -134,13 +147,13 @@ G_M11729_IG07: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
; gcrRegs -[eax]
; byrRegs -[edx]
;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, dword ptr [esi+0x38]
mov edx, gword ptr [esi+0x20]
; gcrRegs +[edx]
mov edx, gword ptr [edx+0x14]
cmp ecx, dword ptr [edx+0x04]
- je G_M11729_IG14
+ je SHORT G_M11729_IG06
mov ecx, gword ptr [esi+0x1C]
; gcrRegs +[ecx]
push dword ptr [ebp+0x0C]
@@ -175,9 +188,9 @@ G_M11729_IG08: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
call [<unknown method>]
; gcrRegs -[ecx esi]
mov edi, eax
- jmp SHORT G_M11729_IG12
- ;; size=86 bbWeight=0.50 PerfScore 25.25
-G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ jmp SHORT G_M11729_IG14
+ ;; size=82 bbWeight=0.50 PerfScore 25.25
+G_M11729_IG11: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi edi]
mov ecx, gword ptr [esi+0x04]
; gcrRegs +[ecx]
@@ -189,13 +202,13 @@ G_M11729_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
call [<unknown method>]
; gcrRegs -[ecx edx esi edi]
mov edi, eax
- jmp SHORT G_M11729_IG12
+ jmp SHORT G_M11729_IG14
;; size=21 bbWeight=0.50 PerfScore 6.25
-G_M11729_IG10: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M11729_IG12: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
; gcrRegs +[esi edi]
mov dword ptr [esi+0x2C], 9
;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M11729_IG11: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M11729_IG13: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [esi+0x04]
; gcrRegs +[ecx]
push dword ptr [ebp+0x0C]
@@ -207,27 +220,16 @@ G_M11729_IG11: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
; gcrRegs -[ecx edx edi]
mov edi, eax
test edi, edi
- jne SHORT G_M11729_IG12
+ jne SHORT G_M11729_IG14
mov dword ptr [esi+0x2C], 1
mov ecx, esi
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx esi]
;; size=38 bbWeight=0.50 PerfScore 8.00
-G_M11729_IG12: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M11729_IG14: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, edi
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11729_IG13: ; bbWeight=0.50, epilog, nogc, extend
- pop ecx
- pop ebx
- pop esi
- pop edi
- pop ebp
- ret 8
- ;; size=8 bbWeight=0.50 PerfScore 2.25
-G_M11729_IG14: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11729_IG15: ; bbWeight=0.50, epilog, nogc, extend
pop ecx
pop ebx
@@ -270,22 +272,22 @@ G_M11729_IG17: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs -[ecx edi]
int3
;; size=35 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG10 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
- dd G_M11729_IG14 - G_M11729_IG02
+RWD00 dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG12 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
+ dd G_M11729_IG06 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG03 - G_M11729_IG02
dd G_M11729_IG17 - G_M11729_IG02
dd G_M11729_IG17 - G_M11729_IG02
- dd G_M11729_IG11 - G_M11729_IG02
+ dd G_M11729_IG13 - G_M11729_IG02
dd G_M11729_IG17 - G_M11729_IG02
RWD44 dd G_M11729_IG16 - G_M11729_IG02
- dd G_M11729_IG06 - G_M11729_IG02
- dd G_M11729_IG09 - G_M11729_IG02
+ dd G_M11729_IG08 - G_M11729_IG02
+ dd G_M11729_IG11 - G_M11729_IG02
-; Total bytes of code 437, prolog size 7, PerfScore 97.25, instruction count 145, allocated bytes for code 437 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 421, prolog size 7, PerfScore 97.25, instruction count 145, allocated bytes for code 421 (MethodHash=f333d22e) for method System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
; ============================================================
+20 (+21.28%) : 182745.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 3 ) int -> esi single-def
+; V00 arg0 [V00,T00] ( 7, 3 ) int -> esi single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> edi class-hnd single-def <System.String>
; V02 tmp0 [V02,T02] ( 3, 0 ) ref -> ebx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V03 tmp1 [V03,T03] ( 3, 0 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,7 +28,7 @@ G_M8758_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
;; size=10 bbWeight=1 PerfScore 4.75
G_M8758_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
cmp esi, 250
- jne SHORT G_M8758_IG04
+ jne SHORT G_M8758_IG06
;; size=8 bbWeight=1 PerfScore 1.25
G_M8758_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebx
@@ -74,9 +74,17 @@ G_M8758_IG05: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
; gcrRegs +[ecx]
call [CORINFO_HELP_THROW]
; gcrRegs -[ecx ebx]
- int3
- ;; size=30 bbWeight=0 PerfScore 0.00
+ ;; size=29 bbWeight=0 PerfScore 0.00
+G_M8758_IG06: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs +[edi]
+ lea eax, [esi-0x1C3]
+ cmp eax, 1
+ jbe SHORT G_M8758_IG04
+ cmp esi, 552
+ je SHORT G_M8758_IG04
+ jmp SHORT G_M8758_IG04
+ ;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 94, prolog size 6, PerfScore 9.00, instruction count 35, allocated bytes for code 94 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 114, prolog size 6, PerfScore 9.00, instruction count 40, allocated bytes for code 114 (MethodHash=cf4bddc9) for method System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
+30 (+29.41%) : 182908.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4 ) int -> esi single-def
+; V00 arg0 [V00,T00] ( 9, 4 ) int -> esi single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> edi class-hnd single-def <System.String>
; V02 tmp0 [V02,T02] ( 3, 0 ) ref -> ebx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V03 tmp1 [V03,T03] ( 3, 0 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -28,9 +28,9 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=10 bbWeight=1 PerfScore 4.75
G_M20631_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
cmp esi, 452
- jg SHORT G_M20631_IG04
+ jg SHORT G_M20631_IG07
cmp esi, 250
- jne SHORT G_M20631_IG04
+ jne SHORT G_M20631_IG06
;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebx
@@ -76,9 +76,22 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
; gcrRegs +[ecx]
call [CORINFO_HELP_THROW]
; gcrRegs -[ecx ebx]
- int3
- ;; size=30 bbWeight=0 PerfScore 0.00
+ ;; size=29 bbWeight=0 PerfScore 0.00
+G_M20631_IG06: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs +[edi]
+ lea eax, [esi-0x1C3]
+ cmp eax, 1
+ jbe SHORT G_M20631_IG04
+ jmp SHORT G_M20631_IG04
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ cmp esi, 552
+ je SHORT G_M20631_IG04
+ cmp esi, 554
+ je SHORT G_M20631_IG04
+ jmp SHORT G_M20631_IG04
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 102, prolog size 6, PerfScore 10.25, instruction count 37, allocated bytes for code 102 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 132, prolog size 6, PerfScore 10.25, instruction count 45, allocated bytes for code 132 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
+19 (+59.38%) : 234347.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -8,9 +8,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) int -> ecx single-def
+; V00 arg0 [V00,T01] ( 4, 3.50) int -> ecx single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> eax
-; V02 rat0 [V02,T00] ( 3, 6 ) int -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V02 rat0 [V02,T00] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -19,25 +19,54 @@ G_M3102_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M3102_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- add ecx, -2
- cmp ecx, 19
- ja SHORT G_M3102_IG04
- mov eax, 0x3C003
- bt eax, ecx
- jae SHORT G_M3102_IG04
- ;; size=18 bbWeight=1 PerfScore 3.25
+ lea eax, [ecx-0x02]
+ cmp eax, 19
+ ja SHORT G_M3102_IG03
+ lea edx, [reloc @RWD00]
+ mov edx, dword ptr [edx+4*eax]
+ lea ecx, G_M3102_IG02
+ add edx, ecx
+ jmp edx
+ ;; size=27 bbWeight=1 PerfScore 7.50
G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 1
+ add ecx, -101
+ cmp ecx, 2
+ jbe SHORT G_M3102_IG05
jmp SHORT G_M3102_IG05
+ ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov eax, 1
+ jmp SHORT G_M3102_IG06
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M3102_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
+RWD00 dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
-; Total bytes of code 32, prolog size 3, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 51, prolog size 3, PerfScore 13.25, instruction count 19, allocated bytes for code 51 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
libraries.pmi.windows.x86.checked.mch
-7 (-25.00%) : 151875.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 0 single block inlinees; 0 inlinees without PGO data
@@ -10,17 +10,15 @@
;
; V00 this [V00,T01] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.Build.BackEnd.SchedulingData>
; V01 arg1 [V01,T02] ( 3, 3 ) int -> edx single-def
-; V02 loc0 [V02,T04] ( 2, 0.66) ref -> eax ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
+; V02 loc0 [V02,T04] ( 2, 1 ) ref -> eax ld-addr-op class-hnd <Microsoft.Build.BackEnd.SchedulableRequest>
;* V03 tmp0 [V03,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V04 tmp1 [V04,T00] ( 3, 6 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
-; V05 tmp2 [V05,T03] ( 3, 2.16) byref -> eax single-def "Inline stloc first use temp"
+; V05 tmp2 [V05,T03] ( 3, 2.50) byref -> eax single-def "Inline stloc first use temp"
;
; Lcl frame size = 0
G_M11913_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M11913_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
mov ecx, gword ptr [ecx+0x08]
@@ -29,28 +27,25 @@ G_M11913_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
; gcrRegs -[ecx]
; byrRegs +[eax]
test eax, eax
- je SHORT G_M11913_IG04
+ je SHORT G_M11913_IG05
;; size=15 bbWeight=1 PerfScore 9.25
-G_M11913_IG03: ; bbWeight=0.16, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+G_M11913_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref
mov eax, gword ptr [eax]
; gcrRegs +[eax]
; byrRegs -[eax]
- jmp SHORT G_M11913_IG06
- ;; size=4 bbWeight=0.16 PerfScore 0.65
-G_M11913_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M11913_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ ret
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M11913_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax]
xor eax, eax
; gcrRegs +[eax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M11913_IG05: ; bbWeight=0.50, epilog, nogc, extend
- pop ebp
+G_M11913_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M11913_IG06: ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
- pop ebp
- ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 28, prolog size 3, PerfScore 12.78, instruction count 14, allocated bytes for code 28 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
+; Total bytes of code 21, prolog size 0, PerfScore 11.38, instruction count 9, allocated bytes for code 21 (MethodHash=ea3ad176) for method Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
; ============================================================
-41 (-15.41%) : 13052.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
@@ -33,7 +33,7 @@
; V22 tmp18 [V22,T03] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
; V23 tmp19 [V23,T04] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
; V24 tmp20 [V24,T05] ( 2, 1.30) byref -> ecx single-def "argument with side effect"
-; V25 cse0 [V25,T02] ( 9, 4.01) int -> registers multi-def "CSE - aggressive"
+; V25 cse0 [V25,T02] ( 9, 4.01) int -> ebx multi-def "CSE - aggressive"
;
; Lcl frame size = 0
@@ -50,102 +50,18 @@ G_M48146_IG01: ; bbWeight=1.00, gcrefRegs=00000000 {}, byrefRegs=00000000
;; size=10 bbWeight=1.00 PerfScore 4.75
G_M48146_IG02: ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
cmp esi, 0xD1FFAB1E
- je SHORT G_M48146_IG08
+ je SHORT G_M48146_IG10
;; size=8 bbWeight=1.00 PerfScore 1.25
-G_M48146_IG03: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+G_M48146_IG03: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
test esi, esi
- jne G_M48146_IG16
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG04: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- cmp esi, 0xD1FFAB1E
- je SHORT G_M48146_IG08
- ;; size=8 bbWeight=0.50 PerfScore 0.63
-G_M48146_IG05: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- test esi, esi
- je G_M48146_IG20
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG06: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- jmp G_M48146_IG19
- ;; size=5 bbWeight=0.45 PerfScore 0.89
-G_M48146_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- lea ecx, bword ptr [esi+0x08]
- ; byrRegs +[ecx]
- lea edx, [eax+eax]
- push edx
- mov edx, 0xD1FFAB1E
- ; byrRegs +[edx]
- call [<unknown method>]
- ; byrRegs -[ecx edx]
- test eax, eax
- je G_M48146_IG20
- ;; size=26 bbWeight=0.50 PerfScore 3.25
-G_M48146_IG08: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- test byte ptr [D1FFAB1EH], 1 ; global ptr
- je G_M48146_IG23
- ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- mov ecx, gword ptr [D1FFAB1EH] ; static handle
- ; gcrRegs +[ecx]
- mov edx, edi
- ; byrRegs +[edx]
- call CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
- ; gcrRegs -[ecx]
- ; byrRegs -[edx edi]
- cmp esi, 0xD1FFAB1E
- jne SHORT G_M48146_IG11
- ;; size=21 bbWeight=0.50 PerfScore 2.25
-G_M48146_IG10: ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[esi]
- mov eax, 1
- jmp SHORT G_M48146_IG14
- ;; size=7 bbWeight=0.05 PerfScore 0.12
-G_M48146_IG11: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs +[esi]
- mov eax, dword ptr [esi+0x04]
- cmp eax, 4
- je SHORT G_M48146_IG13
- ;; size=8 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG12: ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[esi]
- xor eax, eax
- jmp SHORT G_M48146_IG14
- ;; size=4 bbWeight=0.12 PerfScore 0.28
-G_M48146_IG13: ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[esi]
- lea ecx, bword ptr [esi+0x08]
- ; byrRegs +[ecx]
- lea edx, [eax+eax]
- push edx
- mov edx, 0xD1FFAB1E
- ; byrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[esi]
- ; byrRegs -[ecx edx]
- ;; size=18 bbWeight=0.32 PerfScore 1.70
-G_M48146_IG14: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- mov edi, bword ptr [ebp+0x0C]
- ; byrRegs +[edi]
- mov byte ptr [edi], al
- mov ebx, bword ptr [ebp+0x08]
- ; byrRegs +[ebx]
- mov gword ptr [ebx], 0xD1FFAB1E
- mov eax, 1
- ;; size=19 bbWeight=0.50 PerfScore 2.12
-G_M48146_IG15: ; bbWeight=0.50, epilog, nogc, extend
- pop ebx
- pop esi
- pop edi
- pop ebp
- ret 8
- ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG16: ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
- ; gcrRegs +[esi]
- ; byrRegs -[ebx]
+ je SHORT G_M48146_IG06
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG04: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
mov ebx, dword ptr [esi+0x04]
cmp ebx, 4
- jne G_M48146_IG04
- ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG17: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+ jne SHORT G_M48146_IG06
+ ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
add ebx, ebx
@@ -155,18 +71,91 @@ G_M48146_IG17: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
call [<unknown method>]
; byrRegs -[ecx edx]
test eax, eax
- jne G_M48146_IG08
- ;; size=25 bbWeight=0.50 PerfScore 3.12
-G_M48146_IG18: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- jmp G_M48146_IG04
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG19: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- mov eax, dword ptr [esi+0x04]
- cmp eax, 4
- je G_M48146_IG07
- ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG20: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+ jne SHORT G_M48146_IG10
+ ;; size=21 bbWeight=0.50 PerfScore 3.12
+G_M48146_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ cmp esi, 0xD1FFAB1E
+ je SHORT G_M48146_IG10
+ ;; size=8 bbWeight=0.50 PerfScore 0.63
+G_M48146_IG07: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ test esi, esi
+ je SHORT G_M48146_IG18
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG08: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ mov ebx, dword ptr [esi+0x04]
+ cmp ebx, 4
+ jne SHORT G_M48146_IG18
+ ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ lea edx, [ebx+ebx]
+ push edx
+ mov edx, 0xD1FFAB1E
+ ; byrRegs +[edx]
+ call [<unknown method>]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M48146_IG18
+ ;; size=22 bbWeight=0.50 PerfScore 3.25
+G_M48146_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ test byte ptr [D1FFAB1EH], 1 ; global ptr
+ je SHORT G_M48146_IG21
+ ;; size=9 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG11: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ mov ecx, gword ptr [D1FFAB1EH] ; static handle
+ ; gcrRegs +[ecx]
+ mov edx, edi
+ ; byrRegs +[edx]
+ call CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
+ ; gcrRegs -[ecx]
+ ; byrRegs -[edx edi]
+ cmp esi, 0xD1FFAB1E
+ je SHORT G_M48146_IG17
+ ;; size=21 bbWeight=0.50 PerfScore 2.25
+G_M48146_IG12: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ mov ebx, dword ptr [esi+0x04]
+ cmp ebx, 4
+ jne SHORT G_M48146_IG16
+ ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG13: ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ lea edx, [ebx+ebx]
+ push edx
+ mov edx, 0xD1FFAB1E
+ ; byrRegs +[edx]
+ call [<unknown method>]
; gcrRegs -[esi]
+ ; byrRegs -[ecx edx]
+ ;; size=18 bbWeight=0.32 PerfScore 1.70
+G_M48146_IG14: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ mov ebx, bword ptr [ebp+0x0C]
+ ; byrRegs +[ebx]
+ mov byte ptr [ebx], al
+ mov esi, bword ptr [ebp+0x08]
+ ; byrRegs +[esi]
+ mov gword ptr [esi], 0xD1FFAB1E
+ mov eax, 1
+ ;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M48146_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ pop ebx
+ pop esi
+ pop edi
+ pop ebp
+ ret 8
+ ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG16: ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; byrRegs -[ebx esi]
+ xor eax, eax
+ jmp SHORT G_M48146_IG14
+ ;; size=4 bbWeight=0.12 PerfScore 0.28
+G_M48146_IG17: ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov eax, 1
+ jmp SHORT G_M48146_IG14
+ ;; size=7 bbWeight=0.05 PerfScore 0.12
+G_M48146_IG18: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+ ; byrRegs +[edi]
xor eax, eax
; gcrRegs +[eax]
mov gword ptr [edi], eax
@@ -174,30 +163,30 @@ G_M48146_IG20: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080
; byrRegs +[ebx]
mov byte ptr [ebx], 0
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M48146_IG21: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M48146_IG19: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax]
; byrRegs -[ebx edi]
- mov ebx, bword ptr [ebp+0x08]
- ; byrRegs +[ebx]
- mov gword ptr [ebx], eax
+ mov esi, bword ptr [ebp+0x08]
+ ; byrRegs +[esi]
+ mov gword ptr [esi], eax
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG22: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; byrRegs -[ebx]
+G_M48146_IG20: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+ ; byrRegs -[esi]
pop ebx
pop esi
pop edi
pop ebp
ret 8
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG23: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M48146_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
...
-28 (-15.14%) : 282751.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
@@ -8,10 +8,10 @@
; 2 inlinees with PGO data; 14 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 6, 4.50) ref -> [ebp-0x14] class-hnd single-def <System.Xml.XmlElement>
+; V00 arg0 [V00,T01] ( 6, 4.50) ref -> edi class-hnd single-def <System.Xml.XmlElement>
; V01 arg1 [V01,T00] ( 7, 4.89) ref -> esi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 5, 2.89) ref -> ebx class-hnd single-def <System.String>
-; V03 tmp0 [V03,T02] ( 6, 5.79) ref -> registers class-hnd exact single-def "Inlining Arg" <System.String>
+; V03 tmp0 [V03,T02] ( 6, 5.79) ref -> eax class-hnd exact single-def "Inlining Arg" <System.String>
; V04 tmp1 [V04,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
; V05 tmp2 [V05,T05] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -27,9 +27,9 @@
;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp15 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V19 cse0 [V19,T07] ( 3, 1.50) int -> [ebp-0x10] "CSE - moderate"
+; V19 cse0 [V19,T07] ( 3, 1.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 4
G_M26669_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -37,14 +37,14 @@ G_M26669_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 8
+ push eax
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
mov ebx, gword ptr [ebp+0x08]
; gcrRegs +[ebx]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=14 bbWeight=1 PerfScore 6.75
G_M26669_IG02: ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
push ebx
mov ecx, edi
@@ -61,13 +61,13 @@ G_M26669_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M26669_IG04: ; bbWeight=0.50, epilog, nogc, extend
- lea esp, [ebp-0x0C]
+ pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=10 bbWeight=0.50 PerfScore 2.25
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
G_M26669_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[ebx esi edi]
mov ecx, edi
@@ -78,45 +78,58 @@ G_M26669_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {e
call [eax+0x10]<unknown method>
; gcrRegs -[ecx] +[eax]
cmp eax, esi
- je SHORT G_M26669_IG08
+ je SHORT G_M26669_IG10
;; size=17 bbWeight=0.50 PerfScore 4.75
G_M26669_IG06: ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
test eax, eax
- je SHORT G_M26669_IG13
+ je SHORT G_M26669_IG15
;; size=4 bbWeight=0.45 PerfScore 0.56
G_M26669_IG07: ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov edx, eax
- ; gcrRegs +[edx]
- mov eax, edi
- mov edi, dword ptr [ebp-0x10]
- ; gcrRegs -[edi]
- jmp SHORT G_M26669_IG15
- ;; size=9 bbWeight=0.45 PerfScore 1.56
-G_M26669_IG08: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[eax edx esi] +[edi]
+ test esi, esi
+ je SHORT G_M26669_IG15
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG08: ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov edx, dword ptr [eax+0x04]
+ cmp edx, dword ptr [esi+0x04]
+ jne SHORT G_M26669_IG15
+ ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M26669_IG09: ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ lea ecx, bword ptr [eax+0x08]
+ ; byrRegs +[ecx]
+ mov edx, dword ptr [eax+0x04]
+ add edx, edx
+ push edx
+ lea edx, bword ptr [esi+0x08]
+ ; byrRegs +[edx]
+ call [<unknown method>]
+ ; gcrRegs -[eax esi]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M26669_IG15
+ ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M26669_IG10: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, edi
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x10]
- ; gcrRegs -[edi]
- call [edi+0x0C]<unknown method>
- ; gcrRegs -[ecx] +[eax]
+ mov esi, dword ptr [ebp-0x10]
+ call [esi+0x0C]<unknown method>
+ ; gcrRegs -[ecx edi] +[eax]
cmp eax, ebx
je SHORT G_M26669_IG03
;; size=12 bbWeight=0.50 PerfScore 2.75
-G_M26669_IG09: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
- test eax, eax
- je SHORT G_M26669_IG13
- ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG10: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
- test ebx, ebx
- je SHORT G_M26669_IG13
- ;; size=4 bbWeight=0.45 PerfScore 0.56
G_M26669_IG11: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+ test eax, eax
+ je SHORT G_M26669_IG15
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG12: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+ test ebx, ebx
+ je SHORT G_M26669_IG15
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG13: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [eax+0x04]
cmp edx, dword ptr [ebx+0x04]
- jne SHORT G_M26669_IG13
+ jne SHORT G_M26669_IG15
;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M26669_IG12: ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+G_M26669_IG14: ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [eax+0x08]
; byrRegs +[ecx]
mov edx, dword ptr [eax+0x04]
@@ -130,54 +143,18 @@ G_M26669_IG12: ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=0
test eax, eax
jne SHORT G_M26669_IG03
;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG13: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M26669_IG15: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M26669_IG14: ; bbWeight=0.50, epilog, nogc, extend
- lea esp, [ebp-0x0C]
+G_M26669_IG16: ; bbWeight=0.50, epilog, nogc, extend
+ pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M26669_IG15: ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax edx ebx esi]
- test esi, esi
- je SHORT G_M26669_IG13
- ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG16: ; bbWeight=0.45, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [edx+0x04]
- cmp ecx, dword ptr [esi+0x04]
- mov gword ptr [ebp-0x14], eax
- ; GC ptr vars +{V00}
- jne SHORT G_M26669_IG13
- ;; size=11 bbWeight=0.45 PerfScore 3.13
-G_M26669_IG17: ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[eax]
- lea ecx, bword ptr [edx+0x08]
- ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
- ; gcrRegs -[edx]
- add edx, edx
- push edx
- lea edx, bword ptr [esi+0x08]
- ; byrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[esi]
- ; byrRegs -[ecx edx]
- test eax, eax
- je SHORT G_M26669_IG13
- ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- mov esi, gword ptr [ebp-0x14]
- ; gcrRegs +[esi]
- mov dword ptr [ebp-0x10], edi
- mov edi, esi
- ; gcrRegs +[edi]
- jmp SHORT G_M26669_IG08
- ;; size=10 bbWeight=0.50 PerfScore 2.13
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
-; Total bytes of code 185, prolog size 9, PerfScore 44.23, instruction count 80, allocated bytes for code 185 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
+; Total bytes of code 157, prolog size 7, PerfScore 40.84, instruction count 71, allocated bytes for code 157 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
; ============================================================
+30 (+27.78%) : 268809.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4 ) int -> esi single-def
+; V00 arg0 [V00,T00] ( 9, 4 ) int -> esi single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> edi class-hnd single-def <System.String>
; V02 tmp0 [V02,T02] ( 3, 0 ) ref -> ebx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V03 tmp1 [V03,T03] ( 3, 0 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,9 +27,9 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=10 bbWeight=1 PerfScore 4.75
G_M20631_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
cmp esi, 452
- jg SHORT G_M20631_IG04
+ jg SHORT G_M20631_IG07
cmp esi, 250
- jne SHORT G_M20631_IG04
+ jne SHORT G_M20631_IG06
;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebx
@@ -77,9 +77,22 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
; gcrRegs +[ecx]
call CORINFO_HELP_THROW
; gcrRegs -[ecx ebx]
- int3
- ;; size=33 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
+G_M20631_IG06: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs +[edi]
+ lea ecx, [esi-0x1C3]
+ cmp ecx, 1
+ jbe SHORT G_M20631_IG04
+ jmp SHORT G_M20631_IG04
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ cmp esi, 552
+ je SHORT G_M20631_IG04
+ cmp esi, 554
+ je SHORT G_M20631_IG04
+ jmp SHORT G_M20631_IG04
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 108, prolog size 6, PerfScore 10.25, instruction count 39, allocated bytes for code 108 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 10.25, instruction count 47, allocated bytes for code 138 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
+19 (+59.38%) : 263141.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -7,9 +7,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) int -> ecx single-def
+; V00 arg0 [V00,T01] ( 4, 3.50) int -> ecx single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> eax
-; V02 rat0 [V02,T00] ( 3, 6 ) int -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V02 rat0 [V02,T00] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -18,25 +18,54 @@ G_M3102_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M3102_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- add ecx, -2
- cmp ecx, 19
- ja SHORT G_M3102_IG04
- mov eax, 0x3C003
- bt eax, ecx
- jae SHORT G_M3102_IG04
- ;; size=18 bbWeight=1 PerfScore 3.25
+ lea eax, [ecx-0x02]
+ cmp eax, 19
+ ja SHORT G_M3102_IG03
+ lea edx, [@RWD00]
+ mov edx, dword ptr [edx+4*eax]
+ lea ecx, G_M3102_IG02
+ add edx, ecx
+ jmp edx
+ ;; size=27 bbWeight=1 PerfScore 7.50
G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 1
+ add ecx, -101
+ cmp ecx, 2
+ jbe SHORT G_M3102_IG05
jmp SHORT G_M3102_IG05
+ ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov eax, 1
+ jmp SHORT G_M3102_IG06
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M3102_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
+RWD00 dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
-; Total bytes of code 32, prolog size 3, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 51, prolog size 3, PerfScore 13.25, instruction count 19, allocated bytes for code 51 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
+7 (+70.00%) : 250500.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; esp based frame
+; ebp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
@@ -15,7 +15,9 @@
; Lcl frame size = 0
G_M40773_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- ;; size=0 bbWeight=1 PerfScore 0.00
+ push ebp
+ mov ebp, esp
+ ;; size=3 bbWeight=1 PerfScore 1.25
G_M40773_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
test dl, dl
@@ -23,14 +25,16 @@ G_M40773_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
;; size=4 bbWeight=1 PerfScore 1.25
G_M40773_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
; gcrRegs -[ecx]
+ pop ebp
ret
- ;; size=1 bbWeight=1 PerfScore 1.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
G_M40773_IG04: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[ecx]
- mov eax, dword ptr [ecx+0x08]
+ cmp gword ptr [ecx+0x08], 0
+ je SHORT G_M40773_IG03
jmp SHORT G_M40773_IG03
- ;; size=5 bbWeight=0.50 PerfScore 2.00
+ ;; size=8 bbWeight=0.50 PerfScore 3.00
-; Total bytes of code 10, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 10 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
+; Total bytes of code 17, prolog size 3, PerfScore 7.00, instruction count 9, allocated bytes for code 17 (MethodHash=8a3760ba) for method System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
; ============================================================
libraries_tests.run.windows.x86.Release.mch
-7 (-21.21%) : 55069.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 895
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-; V02 loc0 [V02,T05] ( 2, 0.06) ref -> eax ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+; V02 loc0 [V02,T05] ( 2, 0.11) ref -> eax ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
;* V04 tmp0 [V04,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
@@ -22,9 +22,7 @@
; Lcl frame size = 0
G_M65411_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M65411_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx edx]
mov ecx, gword ptr [ecx+0x94]
@@ -34,28 +32,25 @@ G_M65411_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
; byrRegs +[eax]
mov edx, eax
test edx, edx
- je SHORT G_M65411_IG04
- ;; size=20 bbWeight=1 PerfScore 9.50
-G_M65411_IG03: ; bbWeight=0.06, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+ jne SHORT G_M65411_IG04
+ xor eax, eax
+ ; gcrRegs +[eax]
+ ; byrRegs -[eax]
+ ;; size=22 bbWeight=1 PerfScore 9.75
+G_M65411_IG03: ; bbWeight=1, epilog, nogc, extend
+ ret
+ ;; size=1 bbWeight=1 PerfScore 1.00
+G_M65411_IG04: ; bbWeight=0.06, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+ ; gcrRegs -[eax]
+ ; byrRegs +[eax]
mov eax, gword ptr [eax]
; gcrRegs +[eax]
; byrRegs -[eax]
- jmp SHORT G_M65411_IG06
- ;; size=4 bbWeight=0.06 PerfScore 0.23
-G_M65411_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- xor eax, eax
- ; gcrRegs +[eax]
- ;; size=2 bbWeight=1 PerfScore 0.25
-G_M65411_IG05: ; bbWeight=1, epilog, nogc, extend
- pop ebp
+ ;; size=2 bbWeight=0.06 PerfScore 0.11
+G_M65411_IG05: ; bbWeight=0.06, epilog, nogc, extend
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M65411_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
- pop ebp
- ret
- ;; size=2 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0.06 PerfScore 0.06
-; Total bytes of code 33, prolog size 3, PerfScore 12.73, instruction count 15, allocated bytes for code 33 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.92, instruction count 10, allocated bytes for code 26 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
; ============================================================
-7 (-21.21%) : 79009.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 3769
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-; V02 loc0 [V02,T05] ( 2, 0.05) ref -> eax ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+; V02 loc0 [V02,T05] ( 2, 0.11) ref -> eax ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
;* V04 tmp0 [V04,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
@@ -22,9 +22,7 @@
; Lcl frame size = 0
G_M65411_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M65411_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx edx]
mov ecx, gword ptr [ecx+0x94]
@@ -34,28 +32,25 @@ G_M65411_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
; byrRegs +[eax]
mov edx, eax
test edx, edx
- je SHORT G_M65411_IG04
- ;; size=20 bbWeight=1 PerfScore 9.50
-G_M65411_IG03: ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+ jne SHORT G_M65411_IG04
+ xor eax, eax
+ ; gcrRegs +[eax]
+ ; byrRegs -[eax]
+ ;; size=22 bbWeight=1 PerfScore 9.75
+G_M65411_IG03: ; bbWeight=1, epilog, nogc, extend
+ ret
+ ;; size=1 bbWeight=1 PerfScore 1.00
+G_M65411_IG04: ; bbWeight=0.05, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+ ; gcrRegs -[eax]
+ ; byrRegs +[eax]
mov eax, gword ptr [eax]
; gcrRegs +[eax]
; byrRegs -[eax]
- jmp SHORT G_M65411_IG06
- ;; size=4 bbWeight=0.05 PerfScore 0.21
-G_M65411_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- xor eax, eax
- ; gcrRegs +[eax]
- ;; size=2 bbWeight=1 PerfScore 0.25
-G_M65411_IG05: ; bbWeight=1, epilog, nogc, extend
- pop ebp
+ ;; size=2 bbWeight=0.05 PerfScore 0.11
+G_M65411_IG05: ; bbWeight=0.05, epilog, nogc, extend
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M65411_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
- pop ebp
- ret
- ;; size=2 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0.05 PerfScore 0.05
-; Total bytes of code 33, prolog size 3, PerfScore 12.71, instruction count 15, allocated bytes for code 33 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.91, instruction count 10, allocated bytes for code 26 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
; ============================================================
-7 (-21.21%) : 611551.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
@@ -3,7 +3,7 @@
; Tier1 code
; optimized code
; optimized using Dynamic PGO
-; ebp based frame
+; esp based frame
; partially interruptible
; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2345
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 3, 3 ) ref -> ecx this class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver>
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer>
-; V02 loc0 [V02,T05] ( 2, 0.02) ref -> eax ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
+; V02 loc0 [V02,T05] ( 2, 0.04) ref -> eax ld-addr-op class-hnd <System.Threading.SemaphoreSlim>
;* V03 loc1 [V03 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Collections.ImmutableSegmentedDictionary`2[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Threading.SemaphoreSlim]>
;* V04 tmp0 [V04,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]>
@@ -22,9 +22,7 @@
; Lcl frame size = 0
G_M65411_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M65411_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx edx]
mov ecx, gword ptr [ecx+0x94]
@@ -34,28 +32,25 @@ G_M65411_IG02: ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=0000
; byrRegs +[eax]
mov edx, eax
test edx, edx
- je SHORT G_M65411_IG04
- ;; size=20 bbWeight=1 PerfScore 9.50
-G_M65411_IG03: ; bbWeight=0.02, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
+ jne SHORT G_M65411_IG04
+ xor eax, eax
+ ; gcrRegs +[eax]
+ ; byrRegs -[eax]
+ ;; size=22 bbWeight=1 PerfScore 9.75
+G_M65411_IG03: ; bbWeight=1, epilog, nogc, extend
+ ret
+ ;; size=1 bbWeight=1 PerfScore 1.00
+G_M65411_IG04: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+ ; gcrRegs -[eax]
+ ; byrRegs +[eax]
mov eax, gword ptr [eax]
; gcrRegs +[eax]
; byrRegs -[eax]
- jmp SHORT G_M65411_IG06
- ;; size=4 bbWeight=0.02 PerfScore 0.09
-G_M65411_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- xor eax, eax
- ; gcrRegs +[eax]
- ;; size=2 bbWeight=1 PerfScore 0.25
-G_M65411_IG05: ; bbWeight=1, epilog, nogc, extend
- pop ebp
+ ;; size=2 bbWeight=0.02 PerfScore 0.04
+G_M65411_IG05: ; bbWeight=0.02, epilog, nogc, extend
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M65411_IG06: ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
- pop ebp
- ret
- ;; size=2 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0.02 PerfScore 0.02
-; Total bytes of code 33, prolog size 3, PerfScore 12.59, instruction count 15, allocated bytes for code 33 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
+; Total bytes of code 26, prolog size 0, PerfScore 10.82, instruction count 10, allocated bytes for code 26 (MethodHash=b255007c) for method Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
; ============================================================
+37 (+60.66%) : 606525.dasm - Roslyn.Utilities.AsyncLazy
1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task
1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)@@ -11,28 +11,29 @@
;
; V00 this [V00,T00] ( 7, 6 ) ref -> ecx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> eax class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
-; V02 tmp0 [V02,T02] ( 4, 4 ) int -> edx "Inline stloc first use temp"
+; V02 tmp0 [V02,T02] ( 8, 4 ) int -> esi "Inline stloc first use temp"
;* V03 tmp1 [V03,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
+ push esi
mov eax, edx
; gcrRegs +[eax]
- ;; size=5 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 2.50
G_M46606_IG02: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
cmp gword ptr [ecx+0x0C], 0
jne SHORT G_M46606_IG05
- mov edx, dword ptr [eax+0x1C]
- test edx, 0xD1FFAB1E
+ mov esi, dword ptr [eax+0x1C]
+ test esi, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edx, 0xD1FFAB1E
+ test esi, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edx, 0xD1FFAB1E
- je SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
+ je SHORT G_M46606_IG07
lea edx, bword ptr [ecx+0x0C]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
@@ -47,19 +48,33 @@ G_M46606_IG03: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=0000
;; size=3 bbWeight=1 PerfScore 1.00
G_M46606_IG04: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
; gcrRegs -[ecx]
+ pop esi
pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
G_M46606_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax] +[ecx]
mov eax, gword ptr [ecx+0x0C]
; gcrRegs +[eax]
;; size=3 bbWeight=0 PerfScore 0.00
G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
+ pop esi
pop ebp
ret
- ;; size=2 bbWeight=0 PerfScore 0.00
+ ;; size=3 bbWeight=0 PerfScore 0.00
+G_M46606_IG07: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[ecx]
+ test esi, 0xD1FFAB1E
+ jne SHORT G_M46606_IG04
+ test esi, 0x20000
+ jne SHORT G_M46606_IG04
+ test esi, 0x10000
+ jne SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
+ je SHORT G_M46606_IG04
+ jmp SHORT G_M46606_IG04
+ ;; size=34 bbWeight=0 PerfScore 0.00
-; Total bytes of code 61, prolog size 3, PerfScore 16.50, instruction count 22, allocated bytes for code 61 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 98, prolog size 4, PerfScore 18.00, instruction count 34, allocated bytes for code 98 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
+37 (+60.66%) : 77802.dasm - Roslyn.Utilities.AsyncLazy
1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task
1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)@@ -11,28 +11,29 @@
;
; V00 this [V00,T00] ( 7, 6 ) ref -> ecx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> eax class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
-; V02 tmp0 [V02,T02] ( 4, 4 ) int -> edx "Inline stloc first use temp"
+; V02 tmp0 [V02,T02] ( 8, 4.08) int -> esi "Inline stloc first use temp"
;* V03 tmp1 [V03,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
-G_M46606_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M46606_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
+ push esi
mov eax, edx
; gcrRegs +[eax]
- ;; size=5 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 2.50
G_M46606_IG02: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
cmp gword ptr [ecx+0x0C], 0
- jne SHORT G_M46606_IG05
- mov edx, dword ptr [eax+0x1C]
- test edx, 0xD1FFAB1E
+ jne SHORT G_M46606_IG06
+ mov esi, dword ptr [eax+0x1C]
+ test esi, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edx, 0xD1FFAB1E
+ test esi, 0xD1FFAB1E
jne SHORT G_M46606_IG04
- test edx, 0xD1FFAB1E
- je SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
+ je SHORT G_M46606_IG05
lea edx, bword ptr [ecx+0x0C]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
@@ -47,19 +48,32 @@ G_M46606_IG03: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=0000
;; size=3 bbWeight=1 PerfScore 1.00
G_M46606_IG04: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
; gcrRegs -[ecx]
+ pop esi
pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M46606_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=3 bbWeight=1 PerfScore 2.00
+G_M46606_IG05: ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+ test esi, 0xD1FFAB1E
+ jne SHORT G_M46606_IG04
+ test esi, 0x20000
+ jne SHORT G_M46606_IG04
+ test esi, 0x10000
+ jne SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
+ je SHORT G_M46606_IG04
+ jmp SHORT G_M46606_IG04
+ ;; size=34 bbWeight=0.02 PerfScore 0.13
+G_M46606_IG06: ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax] +[ecx]
mov eax, gword ptr [ecx+0x0C]
; gcrRegs +[eax]
;; size=3 bbWeight=0 PerfScore 0.00
-G_M46606_IG06: ; bbWeight=0, epilog, nogc, extend
+G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
+ pop esi
pop ebp
ret
- ;; size=2 bbWeight=0 PerfScore 0.00
+ ;; size=3 bbWeight=0 PerfScore 0.00
-; Total bytes of code 61, prolog size 3, PerfScore 16.50, instruction count 22, allocated bytes for code 61 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 98, prolog size 4, PerfScore 18.13, instruction count 34, allocated bytes for code 98 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
+37 (+60.66%) : 54535.dasm - Roslyn.Utilities.AsyncLazy
1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task
1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 7, 6 ) ref -> ecx this class-hnd single-def <Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> eax class-hnd single-def <System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]>
-; V02 tmp0 [V02,T02] ( 4, 4 ) int -> edx "Inline stloc first use temp"
+; V02 tmp0 [V02,T02] ( 8, 4.15) int -> esi "Inline stloc first use temp"
;* V03 tmp1 [V03,T03] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
@@ -19,31 +19,21 @@
G_M46606_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
+ push esi
mov eax, edx
; gcrRegs +[eax]
- ;; size=5 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 2.50
G_M46606_IG02: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[ecx]
cmp gword ptr [ecx+0x0C], 0
+ jne SHORT G_M46606_IG06
+ mov esi, dword ptr [eax+0x1C]
+ test esi, 0xD1FFAB1E
+ jne SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
+ jne SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
je SHORT G_M46606_IG05
- ;; size=6 bbWeight=1 PerfScore 4.00
-G_M46606_IG03: ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax]
- mov eax, gword ptr [ecx+0x0C]
- ; gcrRegs +[eax]
- ;; size=3 bbWeight=0 PerfScore 0.00
-G_M46606_IG04: ; bbWeight=0, epilog, nogc, extend
- pop ebp
- ret
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M46606_IG05: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
- mov edx, dword ptr [eax+0x1C]
- test edx, 0xD1FFAB1E
- jne SHORT G_M46606_IG07
- test edx, 0xD1FFAB1E
- jne SHORT G_M46606_IG07
- test edx, 0xD1FFAB1E
- je SHORT G_M46606_IG07
lea edx, bword ptr [ecx+0x0C]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EAX
@@ -51,17 +41,39 @@ G_M46606_IG05: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000003 {eax
xor edx, edx
; gcrRegs +[edx]
mov gword ptr [ecx+0x04], edx
- ;; size=40 bbWeight=1 PerfScore 8.50
-G_M46606_IG06: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref
+ ;; size=46 bbWeight=1 PerfScore 12.50
+G_M46606_IG03: ; bbWeight=1, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref
; gcrRegs -[edx]
mov gword ptr [ecx+0x08], edx
;; size=3 bbWeight=1 PerfScore 1.00
-G_M46606_IG07: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M46606_IG04: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
; gcrRegs -[ecx]
+ pop esi
pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=3 bbWeight=1 PerfScore 2.00
+G_M46606_IG05: ; bbWeight=0.04, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+ test esi, 0xD1FFAB1E
+ jne SHORT G_M46606_IG04
+ test esi, 0x20000
+ jne SHORT G_M46606_IG04
+ test esi, 0x10000
+ jne SHORT G_M46606_IG04
+ test esi, 0xD1FFAB1E
+ je SHORT G_M46606_IG04
+ jmp SHORT G_M46606_IG04
+ ;; size=34 bbWeight=0.04 PerfScore 0.27
+G_M46606_IG06: ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[eax] +[ecx]
+ mov eax, gword ptr [ecx+0x0C]
+ ; gcrRegs +[eax]
+ ;; size=3 bbWeight=0 PerfScore 0.00
+G_M46606_IG07: ; bbWeight=0, epilog, nogc, extend
+ pop esi
+ pop ebp
+ ret
+ ;; size=3 bbWeight=0 PerfScore 0.00
-; Total bytes of code 61, prolog size 3, PerfScore 16.50, instruction count 22, allocated bytes for code 61 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
+; Total bytes of code 98, prolog size 4, PerfScore 18.27, instruction count 34, allocated bytes for code 98 (MethodHash=b9a349f1) for method Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
; ============================================================
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-41 (-15.41%) : 254405.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
@@ -33,7 +33,7 @@
; V22 tmp18 [V22,T03] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
; V23 tmp19 [V23,T04] ( 2, 2 ) byref -> ecx single-def "argument with side effect"
; V24 tmp20 [V24,T05] ( 2, 1.30) byref -> ecx single-def "argument with side effect"
-; V25 cse0 [V25,T02] ( 9, 4.01) int -> registers multi-def "CSE - aggressive"
+; V25 cse0 [V25,T02] ( 9, 4.01) int -> ebx multi-def "CSE - aggressive"
;
; Lcl frame size = 0
@@ -50,102 +50,18 @@ G_M48146_IG01: ; bbWeight=1.00, gcrefRegs=00000000 {}, byrefRegs=00000000
;; size=10 bbWeight=1.00 PerfScore 4.75
G_M48146_IG02: ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
cmp esi, 0xD1FFAB1E
- je SHORT G_M48146_IG08
+ je SHORT G_M48146_IG10
;; size=8 bbWeight=1.00 PerfScore 1.25
-G_M48146_IG03: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+G_M48146_IG03: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
test esi, esi
- jne G_M48146_IG16
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG04: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- cmp esi, 0xD1FFAB1E
- je SHORT G_M48146_IG08
- ;; size=8 bbWeight=0.50 PerfScore 0.63
-G_M48146_IG05: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- test esi, esi
- je G_M48146_IG20
- ;; size=8 bbWeight=0.45 PerfScore 0.56
-G_M48146_IG06: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- jmp G_M48146_IG19
- ;; size=5 bbWeight=0.45 PerfScore 0.89
-G_M48146_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- lea ecx, bword ptr [esi+0x08]
- ; byrRegs +[ecx]
- lea edx, [eax+eax]
- push edx
- mov edx, 0xD1FFAB1E
- ; byrRegs +[edx]
- call [<unknown method>]
- ; byrRegs -[ecx edx]
- test eax, eax
- je G_M48146_IG20
- ;; size=26 bbWeight=0.50 PerfScore 3.25
-G_M48146_IG08: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- test byte ptr [D1FFAB1EH], 1 ; global ptr
- je G_M48146_IG23
- ;; size=13 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
- mov ecx, gword ptr [D1FFAB1EH] ; static handle
- ; gcrRegs +[ecx]
- mov edx, edi
- ; byrRegs +[edx]
- call CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
- ; gcrRegs -[ecx]
- ; byrRegs -[edx edi]
- cmp esi, 0xD1FFAB1E
- jne SHORT G_M48146_IG11
- ;; size=21 bbWeight=0.50 PerfScore 2.25
-G_M48146_IG10: ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[esi]
- mov eax, 1
- jmp SHORT G_M48146_IG14
- ;; size=7 bbWeight=0.05 PerfScore 0.12
-G_M48146_IG11: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs +[esi]
- mov eax, dword ptr [esi+0x04]
- cmp eax, 4
- je SHORT G_M48146_IG13
- ;; size=8 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG12: ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[esi]
- xor eax, eax
- jmp SHORT G_M48146_IG14
- ;; size=4 bbWeight=0.12 PerfScore 0.28
-G_M48146_IG13: ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[esi]
- lea ecx, bword ptr [esi+0x08]
- ; byrRegs +[ecx]
- lea edx, [eax+eax]
- push edx
- mov edx, 0xD1FFAB1E
- ; byrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[esi]
- ; byrRegs -[ecx edx]
- ;; size=18 bbWeight=0.32 PerfScore 1.70
-G_M48146_IG14: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- mov edi, bword ptr [ebp+0x0C]
- ; byrRegs +[edi]
- mov byte ptr [edi], al
- mov ebx, bword ptr [ebp+0x08]
- ; byrRegs +[ebx]
- mov gword ptr [ebx], 0xD1FFAB1E
- mov eax, 1
- ;; size=19 bbWeight=0.50 PerfScore 2.12
-G_M48146_IG15: ; bbWeight=0.50, epilog, nogc, extend
- pop ebx
- pop esi
- pop edi
- pop ebp
- ret 8
- ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG16: ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
- ; gcrRegs +[esi]
- ; byrRegs -[ebx]
+ je SHORT G_M48146_IG06
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG04: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
mov ebx, dword ptr [esi+0x04]
cmp ebx, 4
- jne G_M48146_IG04
- ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG17: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+ jne SHORT G_M48146_IG06
+ ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
lea ecx, bword ptr [esi+0x08]
; byrRegs +[ecx]
add ebx, ebx
@@ -155,18 +71,91 @@ G_M48146_IG17: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
call [<unknown method>]
; byrRegs -[ecx edx]
test eax, eax
- jne G_M48146_IG08
- ;; size=25 bbWeight=0.50 PerfScore 3.12
-G_M48146_IG18: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- jmp G_M48146_IG04
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG19: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
- mov eax, dword ptr [esi+0x04]
- cmp eax, 4
- je G_M48146_IG07
- ;; size=12 bbWeight=0.45 PerfScore 1.45
-G_M48146_IG20: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+ jne SHORT G_M48146_IG10
+ ;; size=21 bbWeight=0.50 PerfScore 3.12
+G_M48146_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ cmp esi, 0xD1FFAB1E
+ je SHORT G_M48146_IG10
+ ;; size=8 bbWeight=0.50 PerfScore 0.63
+G_M48146_IG07: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ test esi, esi
+ je SHORT G_M48146_IG18
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M48146_IG08: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ mov ebx, dword ptr [esi+0x04]
+ cmp ebx, 4
+ jne SHORT G_M48146_IG18
+ ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ lea edx, [ebx+ebx]
+ push edx
+ mov edx, 0xD1FFAB1E
+ ; byrRegs +[edx]
+ call [<unknown method>]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M48146_IG18
+ ;; size=22 bbWeight=0.50 PerfScore 3.25
+G_M48146_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ test byte ptr [D1FFAB1EH], 1 ; global ptr
+ je SHORT G_M48146_IG21
+ ;; size=9 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG11: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+ mov ecx, gword ptr [D1FFAB1EH] ; static handle
+ ; gcrRegs +[ecx]
+ mov edx, edi
+ ; byrRegs +[edx]
+ call CORINFO_HELP_CHECKED_ASSIGN_REF_ECX
+ ; gcrRegs -[ecx]
+ ; byrRegs -[edx edi]
+ cmp esi, 0xD1FFAB1E
+ je SHORT G_M48146_IG17
+ ;; size=21 bbWeight=0.50 PerfScore 2.25
+G_M48146_IG12: ; bbWeight=0.45, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ mov ebx, dword ptr [esi+0x04]
+ cmp ebx, 4
+ jne SHORT G_M48146_IG16
+ ;; size=8 bbWeight=0.45 PerfScore 1.45
+G_M48146_IG13: ; bbWeight=0.32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ lea edx, [ebx+ebx]
+ push edx
+ mov edx, 0xD1FFAB1E
+ ; byrRegs +[edx]
+ call [<unknown method>]
; gcrRegs -[esi]
+ ; byrRegs -[ecx edx]
+ ;; size=18 bbWeight=0.32 PerfScore 1.70
+G_M48146_IG14: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ mov ebx, bword ptr [ebp+0x0C]
+ ; byrRegs +[ebx]
+ mov byte ptr [ebx], al
+ mov esi, bword ptr [ebp+0x08]
+ ; byrRegs +[esi]
+ mov gword ptr [esi], 0xD1FFAB1E
+ mov eax, 1
+ ;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M48146_IG15: ; bbWeight=0.50, epilog, nogc, extend
+ pop ebx
+ pop esi
+ pop edi
+ pop ebp
+ ret 8
+ ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M48146_IG16: ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; byrRegs -[ebx esi]
+ xor eax, eax
+ jmp SHORT G_M48146_IG14
+ ;; size=4 bbWeight=0.12 PerfScore 0.28
+G_M48146_IG17: ; bbWeight=0.05, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov eax, 1
+ jmp SHORT G_M48146_IG14
+ ;; size=7 bbWeight=0.05 PerfScore 0.12
+G_M48146_IG18: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+ ; byrRegs +[edi]
xor eax, eax
; gcrRegs +[eax]
mov gword ptr [edi], eax
@@ -174,30 +163,30 @@ G_M48146_IG20: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080
; byrRegs +[ebx]
mov byte ptr [ebx], 0
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M48146_IG21: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M48146_IG19: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax]
; byrRegs -[ebx edi]
- mov ebx, bword ptr [ebp+0x08]
- ; byrRegs +[ebx]
- mov gword ptr [ebx], eax
+ mov esi, bword ptr [ebp+0x08]
+ ; byrRegs +[esi]
+ mov gword ptr [esi], eax
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48146_IG22: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- ; byrRegs -[ebx]
+G_M48146_IG20: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+ ; byrRegs -[esi]
pop ebx
pop esi
pop edi
pop ebp
ret 8
;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M48146_IG23: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M48146_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
...
-28 (-15.14%) : 236674.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
@@ -8,10 +8,10 @@
; 2 inlinees with PGO data; 14 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 6, 4.50) ref -> [ebp-0x14] class-hnd single-def <System.Xml.XmlElement>
+; V00 arg0 [V00,T01] ( 6, 4.50) ref -> edi class-hnd single-def <System.Xml.XmlElement>
; V01 arg1 [V01,T00] ( 7, 4.89) ref -> esi class-hnd single-def <System.String>
; V02 arg2 [V02,T04] ( 5, 2.89) ref -> ebx class-hnd single-def <System.String>
-; V03 tmp0 [V03,T02] ( 6, 5.79) ref -> registers class-hnd exact single-def "Inlining Arg" <System.String>
+; V03 tmp0 [V03,T02] ( 6, 5.79) ref -> eax class-hnd exact single-def "Inlining Arg" <System.String>
; V04 tmp1 [V04,T08] ( 2, 1 ) ubyte -> eax "Inline return value spill temp"
; V05 tmp2 [V05,T05] ( 2, 2 ) byref -> ecx single-def "impAppendStmt"
;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -27,9 +27,9 @@
;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp15 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V19 cse0 [V19,T07] ( 3, 1.50) int -> [ebp-0x10] "CSE - moderate"
+; V19 cse0 [V19,T07] ( 3, 1.50) int -> [ebp-0x10] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 4
G_M26669_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -37,14 +37,14 @@ G_M26669_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 8
+ push eax
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
; gcrRegs +[esi]
mov ebx, gword ptr [ebp+0x08]
; gcrRegs +[ebx]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ ;; size=14 bbWeight=1 PerfScore 6.75
G_M26669_IG02: ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
push ebx
mov ecx, edi
@@ -61,13 +61,13 @@ G_M26669_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M26669_IG04: ; bbWeight=0.50, epilog, nogc, extend
- lea esp, [ebp-0x0C]
+ pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=10 bbWeight=0.50 PerfScore 2.25
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
G_M26669_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[ebx esi edi]
mov ecx, edi
@@ -78,45 +78,58 @@ G_M26669_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C8 {e
call [eax+0x10]<unknown method>
; gcrRegs -[ecx] +[eax]
cmp eax, esi
- je SHORT G_M26669_IG08
+ je SHORT G_M26669_IG10
;; size=17 bbWeight=0.50 PerfScore 4.75
G_M26669_IG06: ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
test eax, eax
- je SHORT G_M26669_IG13
+ je SHORT G_M26669_IG15
;; size=4 bbWeight=0.45 PerfScore 0.56
G_M26669_IG07: ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov edx, eax
- ; gcrRegs +[edx]
- mov eax, edi
- mov edi, dword ptr [ebp-0x10]
- ; gcrRegs -[edi]
- jmp SHORT G_M26669_IG15
- ;; size=9 bbWeight=0.45 PerfScore 1.56
-G_M26669_IG08: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[eax edx esi] +[edi]
+ test esi, esi
+ je SHORT G_M26669_IG15
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG08: ; bbWeight=0.45, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov edx, dword ptr [eax+0x04]
+ cmp edx, dword ptr [esi+0x04]
+ jne SHORT G_M26669_IG15
+ ;; size=8 bbWeight=0.45 PerfScore 2.68
+G_M26669_IG09: ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ lea ecx, bword ptr [eax+0x08]
+ ; byrRegs +[ecx]
+ mov edx, dword ptr [eax+0x04]
+ add edx, edx
+ push edx
+ lea edx, bword ptr [esi+0x08]
+ ; byrRegs +[edx]
+ call [<unknown method>]
+ ; gcrRegs -[eax esi]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M26669_IG15
+ ;; size=22 bbWeight=0.50 PerfScore 4.25
+G_M26669_IG10: ; bbWeight=0.50, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, edi
; gcrRegs +[ecx]
- mov edi, dword ptr [ebp-0x10]
- ; gcrRegs -[edi]
- call [edi+0x0C]<unknown method>
- ; gcrRegs -[ecx] +[eax]
+ mov esi, dword ptr [ebp-0x10]
+ call [esi+0x0C]<unknown method>
+ ; gcrRegs -[ecx edi] +[eax]
cmp eax, ebx
je SHORT G_M26669_IG03
;; size=12 bbWeight=0.50 PerfScore 2.75
-G_M26669_IG09: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
- test eax, eax
- je SHORT G_M26669_IG13
- ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG10: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
- test ebx, ebx
- je SHORT G_M26669_IG13
- ;; size=4 bbWeight=0.45 PerfScore 0.56
G_M26669_IG11: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+ test eax, eax
+ je SHORT G_M26669_IG15
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG12: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+ test ebx, ebx
+ je SHORT G_M26669_IG15
+ ;; size=4 bbWeight=0.45 PerfScore 0.56
+G_M26669_IG13: ; bbWeight=0.45, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
mov edx, dword ptr [eax+0x04]
cmp edx, dword ptr [ebx+0x04]
- jne SHORT G_M26669_IG13
+ jne SHORT G_M26669_IG15
;; size=8 bbWeight=0.45 PerfScore 2.68
-G_M26669_IG12: ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
+G_M26669_IG14: ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [eax+0x08]
; byrRegs +[ecx]
mov edx, dword ptr [eax+0x04]
@@ -130,54 +143,18 @@ G_M26669_IG12: ; bbWeight=0.50, gcrefRegs=00000009 {eax ebx}, byrefRegs=0
test eax, eax
jne SHORT G_M26669_IG03
;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG13: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M26669_IG15: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M26669_IG14: ; bbWeight=0.50, epilog, nogc, extend
- lea esp, [ebp-0x0C]
+G_M26669_IG16: ; bbWeight=0.50, epilog, nogc, extend
+ pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M26669_IG15: ; bbWeight=0.45, gcVars=00000000 {}, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax edx ebx esi]
- test esi, esi
- je SHORT G_M26669_IG13
- ;; size=4 bbWeight=0.45 PerfScore 0.56
-G_M26669_IG16: ; bbWeight=0.45, gcrefRegs=0000004D {eax edx ebx esi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [edx+0x04]
- cmp ecx, dword ptr [esi+0x04]
- mov gword ptr [ebp-0x14], eax
- ; GC ptr vars +{V00}
- jne SHORT G_M26669_IG13
- ;; size=11 bbWeight=0.45 PerfScore 3.13
-G_M26669_IG17: ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[eax]
- lea ecx, bword ptr [edx+0x08]
- ; byrRegs +[ecx]
- mov edx, dword ptr [edx+0x04]
- ; gcrRegs -[edx]
- add edx, edx
- push edx
- lea edx, bword ptr [esi+0x08]
- ; byrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[esi]
- ; byrRegs -[ecx edx]
- test eax, eax
- je SHORT G_M26669_IG13
- ;; size=22 bbWeight=0.50 PerfScore 4.25
-G_M26669_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- mov esi, gword ptr [ebp-0x14]
- ; gcrRegs +[esi]
- mov dword ptr [ebp-0x10], edi
- mov edi, esi
- ; gcrRegs +[edi]
- jmp SHORT G_M26669_IG08
- ;; size=10 bbWeight=0.50 PerfScore 2.13
+ ;; size=8 bbWeight=0.50 PerfScore 2.25
-; Total bytes of code 185, prolog size 9, PerfScore 44.23, instruction count 80, allocated bytes for code 185 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
+; Total bytes of code 157, prolog size 7, PerfScore 40.84, instruction count 71, allocated bytes for code 157 (MethodHash=ea0a97d2) for method System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
; ============================================================
-43 (-13.23%) : 34472.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
@@ -8,19 +8,19 @@
; 2 inlinees with PGO data; 17 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 4, 12 ) ref -> [ebp-0x1C] this class-hnd single-def <System.Xml.XmlAttributeCollection>
+; V00 this [V00,T06] ( 4, 12 ) ref -> edi this class-hnd single-def <System.Xml.XmlAttributeCollection>
; V01 arg1 [V01,T05] ( 8, 12.58) ref -> esi class-hnd single-def <System.String>
-; V02 arg2 [V02,T09] ( 5, 9.58) ref -> [ebp+0x08] class-hnd single-def <System.String>
+; V02 arg2 [V02,T09] ( 5, 9.58) ref -> ebx class-hnd single-def <System.String>
; V03 loc0 [V03,T18] ( 2, 3 ) int -> [ebp-0x10] spill-single-def
; V04 loc1 [V04,T04] ( 5, 15 ) int -> [ebp-0x14]
-; V05 loc2 [V05,T08] ( 6, 10.50) ref -> [ebp-0x20] class-hnd spill-single-def <System.Xml.XmlAttribute>
+; V05 loc2 [V05,T08] ( 6, 10.50) ref -> [ebp-0x1C] class-hnd spill-single-def <System.Xml.XmlAttribute>
; V06 tmp0 [V06,T10] ( 3, 9 ) ref -> eax "CASTCLASS eval op1"
; V07 tmp1 [V07,T15] ( 3, 5 ) int -> ecx "fgMakeTemp is creating a new local variable"
; V08 tmp2 [V08,T03] ( 5, 15 ) ref -> registers class-hnd "spilling QMark2" <System.Xml.XmlAttribute>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlName>
-; V10 tmp4 [V10,T01] ( 5, 19.15) ref -> registers class-hnd exact "Inlining Arg" <System.String>
+; V10 tmp4 [V10,T01] ( 5, 19.15) ref -> edx class-hnd exact "Inlining Arg" <System.String>
; V11 tmp5 [V11,T16] ( 2, 4 ) ubyte -> eax "Inline return value spill temp"
-; V12 tmp6 [V12,T11] ( 2, 8 ) byref -> ebx "impAppendStmt"
+; V12 tmp6 [V12,T11] ( 2, 8 ) byref -> ecx "impAppendStmt"
;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp9 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -37,9 +37,9 @@
; V26 tmp20 [V26,T07] ( 4, 14 ) int -> edx "Inline return value spill temp"
; V27 tmp21 [V27,T00] ( 3, 36 ) byref -> edx "Inlining Arg"
; V28 tmp22 [V28,T13] ( 3, 6 ) ref -> eax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V29 cse0 [V29,T14] ( 3, 6.00) int -> [ebp-0x18] "CSE - moderate"
+; V29 cse0 [V29,T14] ( 3, 6.00) int -> [ebp-0x18] spill-single-def "CSE - moderate"
;
-; Lcl frame size = 20
+; Lcl frame size = 16
G_M17160_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push ebp
@@ -47,7 +47,7 @@ G_M17160_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
push edi
push esi
push ebx
- sub esp, 20
+ sub esp, 16
mov edi, ecx
; gcrRegs +[edi]
mov esi, edx
@@ -63,7 +63,7 @@ G_M17160_IG02: ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
mov dword ptr [ebp-0x10], eax
xor ecx, ecx
mov dword ptr [ebp-0x14], ecx
- jmp G_M17160_IG16
+ jmp G_M17160_IG18
;; size=21 bbWeight=1 PerfScore 7.50
G_M17160_IG03: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [edi+0x08]
@@ -95,14 +95,14 @@ G_M17160_IG06: ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefR
; gcrRegs -[eax]
mov eax, edx
; gcrRegs +[eax]
- mov gword ptr [ebp-0x20], eax
+ mov gword ptr [ebp-0x1C], eax
; GC ptr vars +{V05}
mov ecx, gword ptr [eax+0x08]
; gcrRegs +[ecx]
mov edx, dword ptr [ebp-0x10]
; gcrRegs -[edx]
cmp edx, dword ptr [ecx+0x1C]
- jne SHORT G_M17160_IG15
+ jne SHORT G_M17160_IG17
;; size=16 bbWeight=2 PerfScore 16.50
G_M17160_IG07: ; bbWeight=2.00, gcVars=00000100 {V05}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[ecx]
@@ -116,47 +116,62 @@ G_M17160_IG07: ; bbWeight=2.00, gcVars=00000100 {V05}, gcrefRegs=000000C9
mov edx, eax
; gcrRegs +[edx]
cmp esi, edx
- je SHORT G_M17160_IG10
+ je SHORT G_M17160_IG12
;; size=19 bbWeight=2.00 PerfScore 19.50
G_M17160_IG08: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
test esi, esi
- je SHORT G_M17160_IG15
+ je SHORT G_M17160_IG17
;; size=4 bbWeight=1.79 PerfScore 2.24
G_M17160_IG09: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, edx
+ test edx, edx
+ je SHORT G_M17160_IG17
+ ;; size=4 bbWeight=1.79 PerfScore 2.23
+G_M17160_IG10: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, dword ptr [esi+0x04]
+ cmp ecx, dword ptr [edx+0x04]
+ jne SHORT G_M17160_IG17
+ ;; size=8 bbWeight=1.79 PerfScore 10.72
+G_M17160_IG11: ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ lea ecx, bword ptr [esi+0x08]
+ ; byrRegs +[ecx]
+ mov eax, dword ptr [esi+0x04]
+ add eax, eax
+ push eax
+ add edx, 8
+ ; gcrRegs -[edx]
+ ; byrRegs +[edx]
+ call [<unknown method>]
+ ; byrRegs -[ecx edx]
+ test eax, eax
+ je SHORT G_M17160_IG17
+ ;; size=22 bbWeight=2 PerfScore 16.50
+G_M17160_IG12: ; bbWeight=2.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, gword ptr [ebp-0x1C]
; gcrRegs +[ecx]
- mov eax, gword ptr [ebp-0x20]
- ; gcrRegs +[eax]
- jmp SHORT G_M17160_IG18
- ;; size=7 bbWeight=1.79 PerfScore 5.81
-G_M17160_IG10: ; bbWeight=2.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[eax ecx edx]
- mov ecx, gword ptr [ebp-0x20]
- ; gcrRegs +[ecx]
- mov eax, dword ptr [ebp-0x18]
- call [eax+0x0C]<unknown method>
+ mov edx, dword ptr [ebp-0x18]
+ call [edx+0x0C]<unknown method>
; gcrRegs -[ecx] +[eax]
mov edx, eax
; gcrRegs +[edx]
cmp ebx, edx
- je G_M17160_IG28
- ;; size=19 bbWeight=2.00 PerfScore 13.00
-G_M17160_IG11: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+ je SHORT G_M17160_IG26
+ ;; size=15 bbWeight=2.00 PerfScore 13.00
+G_M17160_IG13: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
test ebx, ebx
- je SHORT G_M17160_IG15
+ je SHORT G_M17160_IG17
;; size=4 bbWeight=1.79 PerfScore 2.24
-G_M17160_IG12: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG14: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
test edx, edx
- je SHORT G_M17160_IG15
+ je SHORT G_M17160_IG17
;; size=4 bbWeight=1.79 PerfScore 2.23
-G_M17160_IG13: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG15: ; bbWeight=1.79, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
mov ecx, dword ptr [ebx+0x04]
cmp ecx, dword ptr [edx+0x04]
- jne SHORT G_M17160_IG15
+ jne SHORT G_M17160_IG17
;; size=8 bbWeight=1.79 PerfScore 10.72
-G_M17160_IG14: ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M17160_IG16: ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
lea ecx, bword ptr [ebx+0x08]
; byrRegs +[ecx]
mov eax, dword ptr [ebx+0x04]
@@ -168,78 +183,39 @@ G_M17160_IG14: ; bbWeight=2, gcrefRegs=000000CC {edx ebx esi edi}, byrefR
call [<unknown method>]
; byrRegs -[ecx edx]
test eax, eax
- jne G_M17160_IG28
- ;; size=26 bbWeight=2 PerfScore 16.50
-G_M17160_IG15: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+ jne SHORT G_M17160_IG26
+ ;; size=22 bbWeight=2 PerfScore 16.50
+G_M17160_IG17: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
; GC ptr vars -{V05}
mov eax, dword ptr [ebp-0x14]
inc eax
mov dword ptr [ebp-0x14], eax
;; size=7 bbWeight=2 PerfScore 4.50
-G_M17160_IG16: ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG18: ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
lea edx, bword ptr [edi+0x08]
; byrRegs +[edx]
cmp gword ptr [edx], 0
jne SHORT G_M17160_IG23
;; size=8 bbWeight=8 PerfScore 36.00
-G_M17160_IG17: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M17160_IG19: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
; byrRegs -[edx]
xor edx, edx
- jmp SHORT G_M17160_IG25
+ jmp SHORT G_M17160_IG21
;; size=4 bbWeight=2 PerfScore 4.50
-G_M17160_IG18: ; bbWeight=1.79, gcVars=00000100 {V05}, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs +[eax ecx]
- ; GC ptr vars +{V05 V08}
- test ecx, ecx
- je SHORT G_M17160_IG15
- ;; size=4 bbWeight=1.79 PerfScore 2.23
-G_M17160_IG19: ; bbWeight=1.79, gcrefRegs=000000CB {eax ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
- mov gword ptr [ebp+0x08], ebx
- mov ebx, dword ptr [esi+0x04]
- ; gcrRegs -[ebx]
- cmp ebx, dword ptr [ecx+0x04]
- jne SHORT G_M17160_IG22
- ;; size=11 bbWeight=1.79 PerfScore 12.51
-G_M17160_IG20: ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[eax]
- mov gword ptr [ebp-0x1C], edi
- ; GC ptr vars +{V00}
- lea ebx, bword ptr [esi+0x08]
- ; byrRegs +[ebx]
- mov edi, dword ptr [esi+0x04]
- ; gcrRegs -[edi]
- add edi, edi
- push edi
- lea edx, bword ptr [ecx+0x08]
- ; byrRegs +[edx]
- mov ecx, ebx
- ; gcrRegs -[ecx]
- ; byrRegs +[ecx]
- ; GC ptr vars -{V08}
- call [<unknown method>]
- ; byrRegs -[ecx edx ebx]
- test eax, eax
- mov ebx, gword ptr [ebp+0x08]
- ; gcrRegs +[ebx]
- mov edi, gword ptr [ebp-0x1C]
- ; gcrRegs +[edi]
- je SHORT G_M17160_IG15
- ;; size=33 bbWeight=2 PerfScore 23.50
-G_M17160_IG21: ; bbWeight=2.00, gcVars=00000100 {V05}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars -{V00}
- mov eax, gword ptr [ebp-0x20]
- ; gcrRegs +[eax]
- mov ecx, dword ptr [ebp-0x18]
- jmp G_M17160_IG10
- ;; size=11 bbWeight=2.00 PerfScore 8.00
-G_M17160_IG22: ; bbWeight=0.89, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[eax ebx]
- ; GC ptr vars -{V05}
- mov ebx, gword ptr [ebp+0x08]
- ; gcrRegs +[ebx]
- jmp SHORT G_M17160_IG15
- ;; size=5 bbWeight=0.89 PerfScore 2.68
+G_M17160_IG20: ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ mov edx, 1
+ ;; size=5 bbWeight=2 PerfScore 0.50
+G_M17160_IG21: ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+ mov ecx, dword ptr [ebp-0x14]
+ cmp ecx, edx
+ jl G_M17160_IG03
+ ;; size=11 bbWeight=8 PerfScore 18.00
+G_M17160_IG22: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[ebx esi edi]
+ jmp SHORT G_M17160_IG24
+ ;; size=2 bbWeight=0.50 PerfScore 1.00
...
+30 (+27.78%) : 159030.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4 ) int -> esi single-def
+; V00 arg0 [V00,T00] ( 9, 4 ) int -> esi single-def
; V01 arg1 [V01,T01] ( 4, 2 ) ref -> edi class-hnd single-def <System.String>
; V02 tmp0 [V02,T02] ( 3, 0 ) ref -> ebx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V03 tmp1 [V03,T03] ( 3, 0 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -27,9 +27,9 @@ G_M20631_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=10 bbWeight=1 PerfScore 4.75
G_M20631_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
cmp esi, 452
- jg SHORT G_M20631_IG04
+ jg SHORT G_M20631_IG07
cmp esi, 250
- jne SHORT G_M20631_IG04
+ jne SHORT G_M20631_IG06
;; size=16 bbWeight=1 PerfScore 2.50
G_M20631_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebx
@@ -77,9 +77,22 @@ G_M20631_IG05: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
; gcrRegs +[ecx]
call CORINFO_HELP_THROW
; gcrRegs -[ecx ebx]
- int3
- ;; size=33 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
+G_M20631_IG06: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs +[edi]
+ lea ecx, [esi-0x1C3]
+ cmp ecx, 1
+ jbe SHORT G_M20631_IG04
+ jmp SHORT G_M20631_IG04
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M20631_IG07: ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+ cmp esi, 552
+ je SHORT G_M20631_IG04
+ cmp esi, 554
+ je SHORT G_M20631_IG04
+ jmp SHORT G_M20631_IG04
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 108, prolog size 6, PerfScore 10.25, instruction count 39, allocated bytes for code 108 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
+; Total bytes of code 138, prolog size 6, PerfScore 10.25, instruction count 47, allocated bytes for code 138 (MethodHash=46f4af68) for method System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
; ============================================================
+17 (+33.33%) : 5376.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.Canon,System.Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
@@ -8,7 +8,7 @@
; 1 inlinees with PGO data; 3 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 <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
+; V00 this [V00,T00] ( 5, 4 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.MetadataReference>
; V02 loc0 [V02,T06] ( 3, 1.50) int -> edx ld-addr-op
;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
@@ -19,9 +19,9 @@
; V08 tmp3 [V08,T04] ( 3, 2.50) byref -> eax single-def "Inline stloc first use temp"
;* V09 tmp4 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V10 tmp5 [V10,T07] ( 3, 1.50) ref -> ecx single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;* V11 rat0 [V11,T05] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V11 rat0 [V11,T05] ( 2, 2 ) int -> eax "Spilling to split statement for tree"
;* V12 rat1 [V12,T09] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V13 rat2 [V13,T03] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V13 rat2 [V13,T03] ( 2, 2 ) int -> eax "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 0
@@ -41,43 +41,51 @@ G_M43979_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
; gcrRegs -[ecx edx]
; byrRegs +[eax]
test eax, eax
- je SHORT G_M43979_IG04
+ je SHORT G_M43979_IG05
;; size=15 bbWeight=1 PerfScore 9.25
G_M43979_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref, isz
mov edx, dword ptr [eax]
mov ecx, gword ptr [esi+0x44]
; gcrRegs +[ecx]
- jmp SHORT G_M43979_IG06
- ;; size=7 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG04: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[ecx]
+ mov eax, dword ptr [esi]
; byrRegs -[eax]
+ mov eax, dword ptr [eax+0x24]
+ mov eax, dword ptr [eax]
+ mov eax, dword ptr [eax+0x80]
+ test eax, eax
+ jne SHORT G_M43979_IG07
+ ;; size=22 bbWeight=0.50 PerfScore 6.62
+G_M43979_IG04: ; bbWeight=0.10, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
+ jmp SHORT G_M43979_IG07
+ ;; size=2 bbWeight=0.10 PerfScore 0.20
+G_M43979_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[ecx]
xor eax, eax
; gcrRegs +[eax]
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43979_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop esi
pop ebp
ret
;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M43979_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M43979_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[ecx]
cmp edx, dword ptr [ecx+0x04]
- jae SHORT G_M43979_IG08
+ jae SHORT G_M43979_IG09
mov eax, gword ptr [ecx+4*edx+0x08]
; gcrRegs +[eax]
;; size=9 bbWeight=0.50 PerfScore 3.00
-G_M43979_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M43979_IG08: ; bbWeight=0.50, epilog, nogc, extend
pop esi
pop ebp
ret
;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M43979_IG08: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M43979_IG09: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax ecx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 51, prolog size 4, PerfScore 19.88, instruction count 24, allocated bytes for code 51 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
+; Total bytes of code 68, prolog size 4, PerfScore 23.70, instruction count 30, allocated bytes for code 68 (MethodHash=0bbf5434) for method Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
; ============================================================
+19 (+59.38%) : 147579.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
@@ -7,9 +7,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) int -> ecx single-def
+; V00 arg0 [V00,T01] ( 4, 3.50) int -> ecx single-def
; V01 loc0 [V01,T02] ( 3, 2 ) ubyte -> eax
-; V02 rat0 [V02,T00] ( 3, 6 ) int -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V02 rat0 [V02,T00] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -18,25 +18,54 @@ G_M3102_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M3102_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- add ecx, -2
- cmp ecx, 19
- ja SHORT G_M3102_IG04
- mov eax, 0x3C003
- bt eax, ecx
- jae SHORT G_M3102_IG04
- ;; size=18 bbWeight=1 PerfScore 3.25
+ lea eax, [ecx-0x02]
+ cmp eax, 19
+ ja SHORT G_M3102_IG03
+ lea edx, [@RWD00]
+ mov edx, dword ptr [edx+4*eax]
+ lea ecx, G_M3102_IG02
+ add edx, ecx
+ jmp edx
+ ;; size=27 bbWeight=1 PerfScore 7.50
G_M3102_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 1
+ add ecx, -101
+ cmp ecx, 2
+ jbe SHORT G_M3102_IG05
jmp SHORT G_M3102_IG05
+ ;; size=10 bbWeight=0.50 PerfScore 1.75
+G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ mov eax, 1
+ jmp SHORT G_M3102_IG06
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M3102_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M3102_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3102_IG05: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M3102_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
+RWD00 dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG04 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
+ dd G_M3102_IG05 - G_M3102_IG02
-; Total bytes of code 32, prolog size 3, PerfScore 7.25, instruction count 13, allocated bytes for code 32 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
+
+; Total bytes of code 51, prolog size 3, PerfScore 13.25, instruction count 19, allocated bytes for code 51 (MethodHash=6afef3e1) for method System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
; ============================================================
realworld.run.windows.x86.checked.mch
-4 (-2.06%) : 5655.dasm - FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption
1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc
2[System.Tuple2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption
1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)@@ -80,14 +80,13 @@ G_M61085_IG02: ; bbWeight=1, gcVars=00000004 {V00}, gcrefRegs=00000040 {e
mov gword ptr [ebp-0x28], eax
; GC ptr vars +{V05}
cmp byte ptr [ebp+0x0C], 0
- jne SHORT G_M61085_IG07
+ jne SHORT G_M61085_IG08
+ ;; size=63 bbWeight=1 PerfScore 15.25
+G_M61085_IG03: ; bbWeight=1, gcVars=00000044 {V00 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
cmp dword ptr [D1FFAB1EH], 0
- jne SHORT G_M61085_IG06
- ;; size=72 bbWeight=1 PerfScore 19.25
-G_M61085_IG03: ; bbWeight=1, gcVars=00000044 {V00 V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[eax]
- mov eax, gword ptr [ebp-0x28]
- ; gcrRegs +[eax]
+ jne SHORT G_M61085_IG07
+ ;; size=9 bbWeight=1 PerfScore 4.00
+G_M61085_IG04: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
mov ecx, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[ecx]
cmp byte ptr [ecx], cl
@@ -103,31 +102,36 @@ G_M61085_IG03: ; bbWeight=1, gcVars=00000044 {V00 V05}, gcrefRegs=0000000
call CORINFO_HELP_TAILCALL
; gcrRegs -[eax ecx edx]
int3
- ;; size=33 bbWeight=1 PerfScore 13.50
-G_M61085_IG04: ; bbWeight=0, gcVars=00000044 {V00 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ;; size=30 bbWeight=1 PerfScore 12.50
+G_M61085_IG05: ; bbWeight=0, gcVars=00000044 {V00 V05}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs +[eax]
; GC ptr vars +{V00 V02 V05}
test eax, eax
- je SHORT G_M61085_IG05
+ je SHORT G_M61085_IG06
mov ecx, 0xD1FFAB1E ; <unknown class>
cmp dword ptr [eax], ecx
- je SHORT G_M61085_IG05
+ je SHORT G_M61085_IG06
mov edx, eax
; gcrRegs +[edx]
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[edx]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M61085_IG05: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M61085_IG06: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
call CORINFO_HELP_ENDCATCH
- cmp dword ptr [D1FFAB1EH], 0
- je SHORT G_M61085_IG03
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M61085_IG06: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- call CORINFO_HELP_POLL_GC
+ mov eax, gword ptr [ebp-0x28]
+ ; gcrRegs +[eax]
jmp SHORT G_M61085_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M61085_IG07: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61085_IG07: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[eax]
+ call CORINFO_HELP_POLL_GC
+ mov eax, gword ptr [ebp-0x28]
+ ; gcrRegs +[eax]
+ jmp SHORT G_M61085_IG04
+ ;; size=10 bbWeight=0 PerfScore 0.00
+G_M61085_IG08: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[eax]
mov ecx, gword ptr [ebp-0x24]
; gcrRegs +[ecx]
call [System.Reflection.Assembly:ReflectionOnlyLoadFrom(System.String):System.Reflection.Assembly]
@@ -142,9 +146,9 @@ G_M61085_IG07: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 194, prolog size 23, PerfScore 42.75, instruction count 62, allocated bytes for code 194 (MethodHash=4c851162) for method FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)
+; Total bytes of code 190, prolog size 23, PerfScore 41.75, instruction count 62, allocated bytes for code 190 (MethodHash=4c851162) for method FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)
; ============================================================
*************** EH table for FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader
1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M61085_IG07..END) handled by [G_M61085_IG04..G_M61085_IG06) (class: 1000001)
+EH#0: try [G_M61085_IG08..END) handled by [G_M61085_IG05..G_M61085_IG07) (class: 1000001)
-2 (-1.90%) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
@@ -69,9 +69,8 @@ G_M25445_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
lea edx, bword ptr [eax+edx+0x08]
; byrRegs +[edx]
cmp dword ptr [edx+0x08], -1
- jge SHORT G_M25445_IG07
- jmp SHORT G_M25445_IG03
- ;; size=34 bbWeight=2 PerfScore 38.00
+ jl SHORT G_M25445_IG03
+ ;; size=32 bbWeight=2 PerfScore 34.00
G_M25445_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
; gcrRegs -[eax]
mov eax, gword ptr [edx]
@@ -95,6 +94,6 @@ G_M25445_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 105, prolog size 4, PerfScore 119.38, instruction count 42, allocated bytes for code 105 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 103, prolog size 4, PerfScore 115.38, instruction count 41, allocated bytes for code 103 (MethodHash=60f49c9a) for method System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
; ============================================================
-2 (-1.90%) : 20013.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
@@ -69,9 +69,8 @@ G_M27287_IG06: ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
lea edx, bword ptr [eax+4*edx+0x08]
; byrRegs +[edx]
cmp dword ptr [edx+0x08], -1
- jge SHORT G_M27287_IG07
- jmp SHORT G_M27287_IG03
- ;; size=34 bbWeight=2 PerfScore 38.00
+ jl SHORT G_M27287_IG03
+ ;; size=32 bbWeight=2 PerfScore 34.00
G_M27287_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000006 {ecx edx}, byref
; gcrRegs -[eax]
mov eax, gword ptr [edx]
@@ -95,6 +94,6 @@ G_M27287_IG10: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 105, prolog size 4, PerfScore 119.38, instruction count 42, allocated bytes for code 105 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 103, prolog size 4, PerfScore 115.38, instruction count 41, allocated bytes for code 103 (MethodHash=08a69568) for method System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
; ============================================================
+14 (+10.94%) : 25019.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System._Canon]:getHasAnyApplicableMember():ubyte:this (FullOpts)
@@ -27,10 +27,10 @@
;* V16 tmp12 [V16 ] ( 0, 0 ) ubyte -> zero-ref "V03.[004..005)"
; V17 tmp13 [V17,T04] ( 2, 8 ) ref -> ecx "argument with side effect"
;* V18 cse0 [V18,T14] ( 0, 0 ) int -> zero-ref hoist "CSE - aggressive"
-; V19 cse1 [V19,T09] ( 1, 1 ) int -> edi hoist "CSE - moderate"
-;* V20 rat0 [V20,T10] ( 0, 0 ) int -> zero-ref "Spilling to split statement for tree"
+; V19 cse1 [V19,T09] ( 2, 2 ) int -> edi hoist "CSE - moderate"
+; V20 rat0 [V20,T10] ( 2, 4 ) int -> ecx "Spilling to split statement for tree"
;* V21 rat1 [V21,T11] ( 0, 0 ) int -> zero-ref "runtime lookup"
-;* V22 rat2 [V22,T08] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
+; V22 rat2 [V22,T08] ( 2, 4 ) int -> ecx "fgMakeTemp is creating a new local variable"
;* V23 rat3 [V23,T13] ( 0, 0 ) int -> zero-ref "runtime lookup"
;* V24 rat4 [V24,T02] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
;
@@ -59,8 +59,14 @@ G_M864_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {
call [Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:GetEnumerator():Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]:this]
; gcrRegs -[ecx]
mov edi, dword ptr [esi]
+ mov ecx, edi
+ mov ecx, dword ptr [ecx+0x24]
+ mov ecx, dword ptr [ecx]
+ mov ecx, dword ptr [ecx+0x18]
+ test ecx, ecx
+ jne SHORT G_M864_IG04
jmp SHORT G_M864_IG04
- ;; size=18 bbWeight=1 PerfScore 12.50
+ ;; size=32 bbWeight=1 PerfScore 20.00
G_M864_IG03: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [ebp-0x10]
; gcrRegs +[ecx]
@@ -111,6 +117,6 @@ G_M864_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 128, prolog size 28, PerfScore 130.58, instruction count 51, allocated bytes for code 128 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
+; Total bytes of code 142, prolog size 28, PerfScore 138.08, instruction count 57, allocated bytes for code 142 (MethodHash=caadfc9f) for method Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
; ============================================================
+37 (+14.51%) : 28959.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
@@ -8,12 +8,12 @@
; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
+; V00 this [V00,T02] ( 6, 4 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T00] ( 6, 5 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator>
; V02 arg2 [V02,T06] ( 4, 2 ) ubyte -> ebx single-def
; V03 loc0 [V03,T05] ( 4, 2 ) ref -> ecx class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V04 loc1 [V04 ] ( 0, 0 ) byte -> zero-ref
-; V05 loc2 [V05,T02] ( 7, 4.50) int -> ecx single-def
+; V05 loc2 [V05,T01] ( 10, 6 ) int -> ecx single-def
;* V06 tmp0 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -48,37 +48,48 @@ G_M22690_IG02: ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
;; size=23 bbWeight=1 PerfScore 5.75
G_M22690_IG03: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
cmp ecx, 0x1115
- je SHORT G_M22690_IG05
- cmp ecx, 0x1116
je SHORT G_M22690_IG06
+ cmp ecx, 0x1116
+ je SHORT G_M22690_IG07
add ecx, -0x1214
cmp ecx, 1
- jbe SHORT G_M22690_IG05
- jmp G_M22690_IG12
+ jbe SHORT G_M22690_IG06
+ jmp G_M22690_IG13
;; size=32 bbWeight=0.50 PerfScore 3.00
G_M22690_IG04: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
cmp ecx, 0x1D14
- jg G_M22690_IG12
+ jg SHORT G_M22690_IG05
cmp ecx, 0x1216
- je SHORT G_M22690_IG06
- jmp G_M22690_IG12
- ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M22690_IG05: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
+ je SHORT G_M22690_IG07
+ cmp ecx, 0x1D14
+ je G_M22690_IG13
+ jmp G_M22690_IG13
+ ;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M22690_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ ; gcrRegs -[edx esi]
+ cmp ecx, 0x1E14
+ je G_M22690_IG13
+ cmp ecx, 0x1F14
+ je G_M22690_IG13
+ jmp G_M22690_IG13
+ ;; size=29 bbWeight=0.50 PerfScore 2.25
+G_M22690_IG06: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs +[edx esi]
mov edx, gword ptr [edx+0x10]
mov ecx, gword ptr [edx+0x0C]
; gcrRegs +[ecx]
- jmp SHORT G_M22690_IG07
+ jmp SHORT G_M22690_IG08
;; size=8 bbWeight=0.50 PerfScore 3.00
-G_M22690_IG06: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[ecx]
mov ecx, gword ptr [edx+0x14]
; gcrRegs +[ecx]
mov ecx, gword ptr [ecx+0x0C]
;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[edx]
test ecx, ecx
- je G_M22690_IG12
+ je G_M22690_IG13
call [Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:GetEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]
; gcrRegs -[ecx] +[eax]
mov ecx, eax
@@ -90,14 +101,14 @@ G_M22690_IG07: ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=0
; gcrRegs -[ecx]
add eax, -9
cmp eax, 3
- ja SHORT G_M22690_IG12
+ ja SHORT G_M22690_IG13
lea ecx, [@RWD00]
mov ecx, dword ptr [ecx+4*eax]
lea edx, G_M22690_IG02
add ecx, edx
jmp ecx
;; size=51 bbWeight=0.50 PerfScore 9.38
-G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
push 12
@@ -107,9 +118,9 @@ G_M22690_IG08: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
cmp dword ptr [ecx], ecx
call [<unknown method>]
; gcrRegs -[ecx esi]
- jmp SHORT G_M22690_IG12
+ jmp SHORT G_M22690_IG13
;; size=24 bbWeight=0.50 PerfScore 6.25
-G_M22690_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
@@ -120,9 +131,9 @@ G_M22690_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
cmp dword ptr [ecx], ecx
call [<unknown method>]
; gcrRegs -[ecx esi]
- jmp SHORT G_M22690_IG12
+ jmp SHORT G_M22690_IG13
;; size=24 bbWeight=0.50 PerfScore 6.25
-G_M22690_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M22690_IG11: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs +[esi]
mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
@@ -133,9 +144,9 @@ G_M22690_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
cmp dword ptr [ecx], ecx
call [<unknown method>]
; gcrRegs -[ecx esi]
- jmp SHORT G_M22690_IG12
+ jmp SHORT G_M22690_IG13
;; size=24 bbWeight=0.50 PerfScore 6.25
-G_M22690_IG11: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M22690_IG12: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs +[esi]
mov ecx, gword ptr [esi+0x10]
; gcrRegs +[ecx]
@@ -147,18 +158,18 @@ G_M22690_IG11: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
call [<unknown method>]
; gcrRegs -[ecx esi]
;; size=22 bbWeight=0.50 PerfScore 5.25
-G_M22690_IG12: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M22690_IG13: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
pop ebx
pop esi
pop ebp
ret 4
;; size=6 bbWeight=1 PerfScore 3.50
-RWD00 dd G_M22690_IG09 - G_M22690_IG02
- dd G_M22690_IG08 - G_M22690_IG02
- dd G_M22690_IG10 - G_M22690_IG02
+RWD00 dd G_M22690_IG10 - G_M22690_IG02
+ dd G_M22690_IG09 - G_M22690_IG02
dd G_M22690_IG11 - G_M22690_IG02
+ dd G_M22690_IG12 - G_M22690_IG02
-; Total bytes of code 255, prolog size 5, PerfScore 57.38, instruction count 80, allocated bytes for code 255 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
+; Total bytes of code 292, prolog size 5, PerfScore 60.25, instruction count 87, allocated bytes for code 292 (MethodHash=a8a6a75d) for method Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
; ============================================================
+18 (+32.73%) : 10043.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
@@ -8,8 +8,8 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 6, 4.50) ref -> esi this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
-;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <FSharp.Compiler.Infos+PropInfo>
+; V00 this [V00,T00] ( 7, 5 ) ref -> esi this class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
+;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <FSharp.Compiler.Infos+PropInfo>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V03 loc2 [V03,T04] ( 2, 1 ) ref -> ecx class-hnd exact single-def <<unknown class>>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <FSharp.Compiler.TypedTree+ValRef>
@@ -34,36 +34,47 @@ G_M3270_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[edx] +[eax]
test eax, eax
- je SHORT G_M3270_IG05
+ jne SHORT G_M3270_IG04
;; size=16 bbWeight=1 PerfScore 2.75
G_M3270_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
+ mov edx, esi
+ ; gcrRegs +[edx]
+ mov ecx, 0xD1FFAB1E ; <unknown class>
+ call CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[edx esi] +[eax]
+ test eax, eax
+ jne SHORT G_M3270_IG06
+ jmp SHORT G_M3270_IG06
+ ;; size=18 bbWeight=0.50 PerfScore 2.38
+G_M3270_IG04: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[eax] +[esi]
mov ecx, gword ptr [esi+0x0C]
; gcrRegs +[ecx]
test ecx, ecx
- je SHORT G_M3270_IG05
+ je SHORT G_M3270_IG06
cmp gword ptr [esi+0x10], 0
- jne SHORT G_M3270_IG05
+ jne SHORT G_M3270_IG06
mov ecx, gword ptr [ecx+0x04]
mov edx, gword ptr [esi+0x04]
; gcrRegs +[edx]
call [FSharp.Compiler.Infos:ValRef.IsFSharpEventProperty(FSharp.Compiler.TypedTree+ValRef,FSharp.Compiler.TcGlobals+TcGlobals):ubyte]
; gcrRegs -[ecx edx esi]
;; size=25 bbWeight=0.50 PerfScore 7.12
-G_M3270_IG04: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG05: ; bbWeight=0.50, epilog, nogc, extend
pop esi
pop ebp
ret
;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M3270_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M3270_IG06: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3270_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M3270_IG07: ; bbWeight=0.50, epilog, nogc, extend
pop esi
pop ebp
ret
;; size=3 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 55, prolog size 4, PerfScore 14.50, instruction count 24, allocated bytes for code 55 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
+; Total bytes of code 73, prolog size 4, PerfScore 16.88, instruction count 30, allocated bytes for code 73 (MethodHash=cb2ef339) for method FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
; ============================================================
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
To reproduce these diffs on Windows x86:
Details
Improvements/regressions per collection
Collection
Contexts with diffs
Improvements
Regressions
Same size
Improvements (bytes)
Regressions (bytes)
benchmarks.run.windows.x86.checked.mch
455
183
82
190
-587
+734
benchmarks.run_pgo.windows.x86.checked.mch
41,607
3,438
35,926
2,243
-14,556
+1,835,010
benchmarks.run_tiered.windows.x86.checked.mch
360
127
74
159
-433
+668
coreclr_tests.run.windows.x86.checked.mch
63,347
3,666
37,322
22,359
-23,749
+680,517
libraries.crossgen2.windows.x86.checked.mch
1,185
159
235
791
-815
+2,178
libraries.pmi.windows.x86.checked.mch
31,009
4,118
16,247
10,644
-21,085
+169,274
libraries_tests.run.windows.x86.Release.mch
84,727
13,757
60,224
10,746
-87,820
+1,585,439
librariestestsnotieredcompilation.run.windows.x86.Release.mch
72,650
11,307
43,517
17,826
-64,660
+424,509
realworld.run.windows.x86.checked.mch
386
84
114
188
-330
+1,610
295,726
36,839
193,741
65,146
-214,035
+4,699,939
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
benchmarks.run.windows.x86.checked.mch
24,475
4
24,471
3 (0.01%)
13 (0.05%)
benchmarks.run_pgo.windows.x86.checked.mch
119,515
42,004
77,511
175 (0.15%)
348 (0.29%)
benchmarks.run_tiered.windows.x86.checked.mch
47,896
28,726
19,170
2 (0.00%)
11 (0.02%)
coreclr_tests.run.windows.x86.checked.mch
574,838
320,010
254,828
348 (0.06%)
569 (0.10%)
libraries.crossgen2.windows.x86.checked.mch
241,911
15
241,896
4 (0.00%)
16 (0.01%)
libraries.pmi.windows.x86.checked.mch
303,525
6
303,519
4 (0.00%)
707 (0.23%)
libraries_tests.run.windows.x86.Release.mch
632,872
429,177
203,695
1,993 (0.31%)
2,910 (0.46%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch
315,247
21,872
293,375
20 (0.01%)
508 (0.16%)
realworld.run.windows.x86.checked.mch
35,971
3
35,968
3 (0.01%)
11 (0.03%)
2,296,250
841,817
1,454,433
2,552 (0.11%)
5,093 (0.22%)
jit-analyze output
benchmarks.run.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 7107340 (overridden on cmd)
Total bytes of diff: 7107487 (overridden on cmd)
Total bytes of delta: 147 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
78 : 11930.dasm (1.46 % of base)
45 : 17138.dasm (24.06 % of base)
36 : 16216.dasm (1.76 % of base)
28 : 1905.dasm (1.32 % of base)
28 : 19452.dasm (0.57 % of base)
23 : 18190.dasm (1.12 % of base)
23 : 6169.dasm (0.55 % of base)
20 : 15745.dasm (0.83 % of base)
19 : 12704.dasm (0.66 % of base)
19 : 1705.dasm (2.07 % of base)
18 : 7846.dasm (4.52 % of base)
17 : 14954.dasm (4.59 % of base)
16 : 6470.dasm (1.44 % of base)
16 : 21059.dasm (0.85 % of base)
14 : 3945.dasm (6.60 % of base)
14 : 16888.dasm (1.60 % of base)
14 : 22262.dasm (10.14 % of base)
14 : 23043.dasm (7.04 % of base)
13 : 18150.dasm (1.80 % of base)
12 : 13803.dasm (0.96 % of base)
Top file improvements (bytes):
-41 : 2730.dasm (-0.97 % of base)
-26 : 8629.dasm (-0.31 % of base)
-18 : 2178.dasm (-1.21 % of base)
-13 : 2510.dasm (-0.57 % of base)
-13 : 4712.dasm (-3.37 % of base)
-12 : 18440.dasm (-1.02 % of base)
-12 : 22805.dasm (-0.14 % of base)
-12 : 6086.dasm (-0.14 % of base)
-11 : 4594.dasm (-1.63 % of base)
-10 : 9933.dasm (-2.24 % of base)
-10 : 12458.dasm (-0.37 % of base)
-10 : 2157.dasm (-1.09 % of base)
-10 : 24374.dasm (-0.36 % of base)
-9 : 4014.dasm (-0.74 % of base)
-8 : 6742.dasm (-0.96 % of base)
-8 : 9396.dasm (-0.42 % of base)
-7 : 5546.dasm (-0.97 % of base)
-7 : 7757.dasm (-0.98 % of base)
-7 : 15715.dasm (-0.46 % of base)
-7 : 284.dasm (-1.13 % of base)
65 total files with Code Size differences (36 improved, 29 regressed), 20 unchanged.
Top method regressions (bytes):
78 (1.46 % of base) : 11930.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
45 (24.06 % of base) : 17138.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
36 (1.76 % of base) : 16216.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
28 (0.57 % of base) : 19452.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
28 (1.32 % of base) : 1905.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
23 (1.12 % of base) : 18190.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
23 (0.55 % of base) : 6169.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
20 (0.83 % of base) : 15745.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
19 (2.07 % of base) : 1705.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (FullOpts)
19 (0.66 % of base) : 12704.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
18 (4.52 % of base) : 7846.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
17 (4.59 % of base) : 14954.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
16 (0.85 % of base) : 21059.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
16 (1.44 % of base) : 6470.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
14 (1.60 % of base) : 16888.dasm - LUDecomp:Run():double:this (FullOpts)
14 (7.04 % of base) : 23043.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
14 (10.14 % of base) : 22262.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
14 (6.60 % of base) : 3945.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
13 (1.80 % of base) : 18150.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
12 (0.96 % of base) : 13803.dasm - System.Net.Http.Tests.SocketsHttpHandlerPerfTest+<Get_EnumerateHeaders_Unvalidated>d__12:MoveNext():this (FullOpts)
Top method improvements (bytes):
-41 (-0.97 % of base) : 2730.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
-26 (-0.31 % of base) : 8629.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
-18 (-1.21 % of base) : 2178.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (FullOpts)
-13 (-3.37 % of base) : 4712.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
-13 (-0.57 % of base) : 2510.dasm - System.Uri:GetCanonicalPath(byref,int):this (FullOpts)
-12 (-0.14 % of base) : 6086.dasm - Jil.Deserialize.Methods:ParseISO8601Date(System.IO.TextReader,ushort[],int,int):System.DateTime (FullOpts)
-12 (-0.14 % of base) : 22805.dasm - Jil.Deserialize.Methods:ParseISO8601DateThunkReader(byref,ushort[],int,int):System.DateTime (FullOpts)
-12 (-1.02 % of base) : 18440.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeNamespaceNamesOrThrow(System.Collections.Generic.Dictionary`2[System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Reflection.Metadata.TypeDefinitionHandle]]):this (FullOpts)
-11 (-1.63 % of base) : 4594.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
-10 (-1.09 % of base) : 2157.dasm - System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem]:TryInsert(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory+ServiceDescriptorCacheItem,ubyte):ubyte:this (FullOpts)
-10 (-2.24 % of base) : 9933.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
-10 (-0.37 % of base) : 12458.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (FullOpts)
-10 (-0.36 % of base) : 24374.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (FullOpts)
-9 (-0.74 % of base) : 4014.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
-8 (-0.96 % of base) : 6742.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (FullOpts)
-8 (-0.42 % of base) : 9396.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
-7 (-0.98 % of base) : 7757.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
-7 (-0.97 % of base) : 5546.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (FullOpts)
-7 (-1.13 % of base) : 284.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
-7 (-0.46 % of base) : 15715.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
Top method regressions (percentages):
45 (24.06 % of base) : 17138.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
14 (10.14 % of base) : 22262.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (FullOpts)
14 (7.04 % of base) : 23043.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (FullOpts)
14 (6.60 % of base) : 3945.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
6 (6.52 % of base) : 15441.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (FullOpts)
10 (6.13 % of base) : 8494.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
10 (4.67 % of base) : 14620.dasm - System.Collections.Generic.Dictionary`2[int,System.__Canon]:System.Collections.IDictionary.set_Item(System.Object,System.Object):this (FullOpts)
17 (4.59 % of base) : 14954.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
18 (4.52 % of base) : 7846.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (FullOpts)
7 (4.19 % of base) : 18880.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
19 (2.07 % of base) : 1705.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (FullOpts)
7 (1.99 % of base) : 5770.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (FullOpts)
12 (1.85 % of base) : 7471.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
13 (1.80 % of base) : 18150.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (FullOpts)
36 (1.76 % of base) : 16216.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
14 (1.60 % of base) : 16888.dasm - LUDecomp:Run():double:this (FullOpts)
78 (1.46 % of base) : 11930.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
16 (1.44 % of base) : 6470.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
9 (1.38 % of base) : 20037.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[int,System.Collections.Generic.KeyValuePair`2[System.Collections.Immutable.ImmutableArray`1[ubyte],System.Reflection.Metadata.BlobHandle]]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[int,System.Collections.Generic.KeyValuePair`2[System.Collections.Immutable.ImmutableArray`1[ubyte],System.Reflection.Metadata.BlobHandle]],int,byref):byref (FullOpts)
10 (1.36 % of base) : 1772.dasm - System.Collections.Generic.Dictionary`2[ulong,System.__Canon]:TryInsert(ulong,System.__Canon,ubyte):ubyte:this (FullOpts)
Top method improvements (percentages):
-13 (-3.37 % of base) : 4712.dasm - System.IO.Pipes.NamedPipeClientStream:ConnectAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
-10 (-2.24 % of base) : 9933.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (FullOpts)
-2 (-1.98 % of base) : 9110.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
-2 (-1.90 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
-2 (-1.90 % of base) : 1749.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.89 % of base) : 4915.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.79 % of base) : 1243.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 14202.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 15117.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 15313.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 15999.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 7180.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 9236.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.79 % of base) : 9928.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
-2 (-1.75 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-11 (-1.63 % of base) : 4594.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
-2 (-1.53 % of base) : 6762.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
-4 (-1.33 % of base) : 17081.dasm - System.Collections.Queue:.ctor(int,float):this (FullOpts)
-2 (-1.31 % of base) : 8097.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
-18 (-1.21 % of base) : 2178.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (FullOpts)
benchmarks.run_pgo.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 43402092 (overridden on cmd)
Total bytes of diff: 45222546 (overridden on cmd)
Total bytes of delta: 1820454 (4.19 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
893 : 13891.dasm (41.48 % of base)
304 : 43010.dasm (19.25 % of base)
284 : 75032.dasm (6.26 % of base)
276 : 44068.dasm (17.37 % of base)
267 : 10793.dasm (17.03 % of base)
262 : 114208.dasm (12.03 % of base)
261 : 87125.dasm (2.85 % of base)
261 : 57300.dasm (12.02 % of base)
258 : 25557.dasm (11.73 % of base)
258 : 42144.dasm (11.73 % of base)
257 : 79434.dasm (4.03 % of base)
255 : 49481.dasm (19.38 % of base)
252 : 85138.dasm (15.69 % of base)
250 : 52266.dasm (11.91 % of base)
250 : 82716.dasm (11.91 % of base)
250 : 46036.dasm (11.91 % of base)
250 : 65525.dasm (11.91 % of base)
247 : 54930.dasm (22.19 % of base)
247 : 103588.dasm (11.36 % of base)
245 : 105214.dasm (11.91 % of base)
Top file improvements (bytes):
-316 : 76876.dasm (-6.75 % of base)
-135 : 99094.dasm (-4.06 % of base)
-56 : 30413.dasm (-0.66 % of base)
-52 : 1585.dasm (-6.32 % of base)
-49 : 75926.dasm (-1.07 % of base)
-45 : 111594.dasm (-3.37 % of base)
-42 : 118121.dasm (-7.08 % of base)
-39 : 66677.dasm (-12.11 % of base)
-36 : 115915.dasm (-2.89 % of base)
-36 : 111872.dasm (-2.89 % of base)
-36 : 114885.dasm (-2.89 % of base)
-32 : 7659.dasm (-4.96 % of base)
-32 : 87420.dasm (-2.35 % of base)
-32 : 48937.dasm (-4.99 % of base)
-31 : 114.dasm (-1.91 % of base)
-30 : 85973.dasm (-1.46 % of base)
-30 : 71455.dasm (-1.46 % of base)
-30 : 64631.dasm (-1.46 % of base)
-27 : 24435.dasm (-1.70 % of base)
-27 : 107718.dasm (-2.31 % of base)
78 total files with Code Size differences (39 improved, 39 regressed), 20 unchanged.
Top method regressions (bytes):
893 (41.48 % of base) : 13891.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier0-FullOpts)
304 (19.25 % of base) : 43010.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
284 (6.26 % of base) : 75032.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol,System.Reflection.Metadata.PropertyDefinitionHandle,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):this (Tier1)
276 (17.37 % of base) : 44068.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
267 (17.03 % of base) : 10793.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier1)
262 (12.03 % of base) : 114208.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
261 (2.85 % of base) : 87125.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)
261 (12.02 % of base) : 57300.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
258 (11.73 % of base) : 25557.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
258 (11.73 % of base) : 42144.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
257 (4.03 % of base) : 79434.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
255 (19.38 % of base) : 49481.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
252 (15.69 % of base) : 85138.dasm - System.Reflection.Emit.DynamicILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo):this (Tier1)
250 (11.91 % of base) : 52266.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
250 (11.91 % of base) : 82716.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
250 (11.91 % of base) : 46036.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
250 (11.91 % of base) : 65525.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
247 (22.19 % of base) : 54930.dasm - System.Reflection.Emit.RuntimeILGenerator:EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[]):this (Tier1)
247 (11.36 % of base) : 103588.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
245 (11.91 % of base) : 105214.dasm - System.Threading.PortableThreadPool:PerformBlockingAdjustment(ubyte,byref):uint:this (Tier1)
Top method improvements (bytes):
-316 (-6.75 % of base) : 76876.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0-FullOpts)
-135 (-4.06 % of base) : 99094.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-56 (-0.66 % of base) : 30413.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
-52 (-6.32 % of base) : 1585.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Vector(uint,uint):uint (Tier0-FullOpts)
-49 (-1.07 % of base) : 75926.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
-45 (-3.37 % of base) : 111594.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:CreateLoop(System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ubyte,int,int):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-42 (-7.08 % of base) : 118121.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleChar|16(System.Text.RegularExpressions.RegexNode,ubyte,System.Reflection.Emit.LocalBuilder):this (Tier1)
-39 (-12.11 % of base) : 66677.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (Tier1)
-36 (-2.89 % of base) : 115915.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
-36 (-2.89 % of base) : 111872.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
-36 (-2.89 % of base) : 114885.dasm - System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this (Tier1)
-32 (-2.35 % of base) : 87420.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:EnsureNullabilityAnalysisPerformedIfNecessary():this (Tier1)
-32 (-4.99 % of base) : 48937.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__7`1[System.ValueTuple`4[System.__Canon,System.ReadOnlyMemory`1[ubyte],long,System.__Canon]]:MoveNext():this (Tier1)
-32 (-4.96 % of base) : 7659.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__8`2[System.ValueTuple`4[System.__Canon,System.Memory`1[ubyte],long,System.__Canon],int]:MoveNext():this (Tier1)
-31 (-1.91 % of base) : 114.dasm - System.Text.Ascii:NarrowUtf16ToAscii(uint,uint,uint):uint (Tier0-FullOpts)
-30 (-1.46 % of base) : 85973.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-30 (-1.46 % of base) : 71455.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-30 (-1.46 % of base) : 64631.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
-27 (-2.31 % of base) : 107718.dasm - System.IO.FileStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
-27 (-1.70 % of base) : 24435.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<DeserializeAsync>d__1[System.__Canon]:MoveNext():this (Tier0-FullOpts)
Top method regressions (percentages):
171 (65.52 % of base) : 81639.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
893 (41.48 % of base) : 13891.dasm - System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]:IndexOf(byref,int):int:this (Tier0-FullOpts)
9 (34.62 % of base) : 40684.dasm - Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
55 (34.59 % of base) : 3945.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
76 (33.78 % of base) : 12249.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
76 (33.78 % of base) : 28115.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
75 (33.19 % of base) : 1417.dasm - System.Text.StringBuilder:AssertInvariants():this (Tier0-FullOpts)
71 (33.18 % of base) : 4349.dasm - Interop:GetRandomBytes(uint,int) (Tier1)
16 (32.65 % of base) : 79193.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
149 (32.04 % of base) : 42056.dasm - System.Array:GetValue(int,int,int):System.Object:this (Tier1)
109 (30.03 % of base) : 113506.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
109 (30.03 % of base) : 48029.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
109 (30.03 % of base) : 71433.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
109 (30.03 % of base) : 31291.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
109 (30.03 % of base) : 59560.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
109 (30.03 % of base) : 65897.dasm - System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this (Tier1)
67 (29.13 % of base) : 101351.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
67 (29.13 % of base) : 29008.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
67 (29.13 % of base) : 91416.dasm - System.Reflection.PseudoCustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,byref) (Tier1)
16 (29.09 % of base) : 81859.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:AddRange(System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]):this (Tier1)
Top method improvements (percentages):
-7 (-21.21 % of base) : 62494.dasm - MessagePack.Internal.BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (Tier1)
-4 (-12.50 % of base) : 81831.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
-39 (-12.11 % of base) : 66677.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (Tier1)
-26 (-11.02 % of base) : 77003.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (Tier0-FullOpts)
-4 (-10.81 % of base) : 49491.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 13073.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 101743.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 12611.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 2586.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 3162.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 3925.dasm - System.Reflection.RuntimePropertyInfo:GetGetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 67519.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 67771.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 88333.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 14735.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 30440.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-4 (-10.53 % of base) : 56048.dasm - System.Reflection.RuntimePropertyInfo:GetSetMethod(ubyte):System.Reflection.RuntimeMethodInfo:this (Tier1)
-6 (-9.68 % of base) : 86262.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsAdditionalLocalFunctionModifier(ushort):ubyte (Tier1)
-24 (-8.79 % of base) : 45830.dasm - System.String:Replace(ushort,ushort):System.String:this (Tier1)
-2 (-8.00 % of base) : 106453.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastClass(uint,System.Object):System.Object (Tier1)
benchmarks.run_tiered.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 9511225 (overridden on cmd)
Total bytes of diff: 9511460 (overridden on cmd)
Total bytes of delta: 235 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
78 : 20950.dasm (1.46 % of base)
45 : 32792.dasm (24.06 % of base)
36 : 31115.dasm (1.76 % of base)
28 : 39953.dasm (0.57 % of base)
28 : 10398.dasm (1.32 % of base)
23 : 11676.dasm (0.55 % of base)
23 : 34434.dasm (1.12 % of base)
19 : 9934.dasm (2.07 % of base)
19 : 20768.dasm (0.66 % of base)
18 : 12627.dasm (4.52 % of base)
17 : 31683.dasm (4.59 % of base)
16 : 41173.dasm (0.85 % of base)
14 : 32228.dasm (1.60 % of base)
14 : 43692.dasm (10.14 % of base)
14 : 44993.dasm (7.04 % of base)
13 : 34322.dasm (1.80 % of base)
12 : 26824.dasm (0.96 % of base)
12 : 13148.dasm (1.85 % of base)
11 : 29765.dasm (0.87 % of base)
10 : 47143.dasm (6.13 % of base)
Top file improvements (bytes):
-41 : 14258.dasm (-0.97 % of base)
-26 : 19395.dasm (-0.31 % of base)
-18 : 9508.dasm (-1.21 % of base)
-12 : 34934.dasm (-1.02 % of base)
-11 : 6694.dasm (-1.63 % of base)
-10 : 47892.dasm (-0.36 % of base)
-10 : 25227.dasm (-0.37 % of base)
-10 : 25314.dasm (-2.24 % of base)
-9 : 3334.dasm (-0.74 % of base)
-8 : 19803.dasm (-0.42 % of base)
-8 : 9255.dasm (-0.99 % of base)
-7 : 14891.dasm (-0.97 % of base)
-7 : 12349.dasm (-0.98 % of base)
-7 : 691.dasm (-1.13 % of base)
-7 : 7575.dasm (-0.93 % of base)
-7 : 29528.dasm (-0.46 % of base)
-6 : 40863.dasm (-0.82 % of base)
-6 : 10086.dasm (-0.91 % of base)
-6 : 26550.dasm (-0.47 % of base)
-6 : 9071.dasm (-0.62 % of base)
66 total files with Code Size differences (36 improved, 30 regressed), 20 unchanged.
Top method regressions (bytes):
78 (1.46 % of base) : 20950.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (Tier0-FullOpts)
45 (24.06 % of base) : 32792.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
36 (1.76 % of base) : 31115.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (Tier0-FullOpts)
28 (0.57 % of base) : 39953.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
28 (1.32 % of base) : 10398.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)
23 (1.12 % of base) : 34434.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
23 (0.55 % of base) : 11676.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (Tier0-FullOpts)
19 (2.07 % of base) : 9934.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (Tier0-FullOpts)
19 (0.66 % of base) : 20768.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
18 (4.52 % of base) : 12627.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
17 (4.59 % of base) : 31683.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (Tier1)
16 (0.85 % of base) : 41173.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier0-FullOpts)
14 (1.60 % of base) : 32228.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
14 (7.04 % of base) : 44993.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
14 (10.14 % of base) : 43692.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
13 (1.80 % of base) : 34322.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier0-FullOpts)
12 (0.96 % of base) : 26824.dasm - System.Net.Http.Tests.SocketsHttpHandlerPerfTest+<Get_EnumerateHeaders_Unvalidated>d__12:MoveNext():this (Tier0-FullOpts)
12 (1.85 % of base) : 13148.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (Tier0-FullOpts)
11 (0.87 % of base) : 29765.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (Tier0-FullOpts)
10 (1.36 % of base) : 4834.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)
Top method improvements (bytes):
-41 (-0.97 % of base) : 14258.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
-26 (-0.31 % of base) : 19395.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
-18 (-1.21 % of base) : 9508.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (Tier0-FullOpts)
-12 (-1.02 % of base) : 34934.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeNamespaceNamesOrThrow(System.Collections.Generic.Dictionary`2[System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Reflection.Metadata.TypeDefinitionHandle]]):this (Tier0-FullOpts)
-11 (-1.63 % of base) : 6694.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (Tier0-FullOpts)
-10 (-2.24 % of base) : 25314.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
-10 (-0.37 % of base) : 25227.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_SocketAddress>d__14:MoveNext():this (Tier0-FullOpts)
-10 (-0.36 % of base) : 47892.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<ReceiveFromAsyncThenSendToAsync_Task>d__13:MoveNext():this (Tier0-FullOpts)
-9 (-0.74 % of base) : 3334.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (Tier0-FullOpts)
-8 (-0.99 % of base) : 9255.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:TryInsert(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int,ubyte):ubyte:this (Tier0-FullOpts)
-8 (-0.42 % of base) : 19803.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (Tier0-FullOpts)
-7 (-0.98 % of base) : 12349.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (Tier0-FullOpts)
-7 (-0.93 % of base) : 7575.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:TryInsert(System.ValueTuple`2[int,int],System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)
-7 (-0.97 % of base) : 14891.dasm - System.Collections.Generic.Dictionary`2[ushort,System.__Canon]:TryInsert(ushort,System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)
-7 (-1.13 % of base) : 691.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (Tier0-FullOpts)
-7 (-0.46 % of base) : 29528.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
-6 (-0.91 % of base) : 10086.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[ulong,System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[ulong,System.__Canon],ulong,byref):byref (Tier0-FullOpts)
-6 (-0.82 % of base) : 40863.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.__Canon,System.__Canon]]):this (Tier0-FullOpts)
-6 (-0.62 % of base) : 9071.dasm - System.Linq.Expressions.Expression:ValidateLambdaArgs(System.Type,byref,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression],System.String) (Tier0-FullOpts)
-6 (-0.47 % of base) : 26550.dasm - System.Xml.XmlTextReaderImpl:ParseQName(ubyte,int,byref):int:this (Tier0-FullOpts)
Top method regressions (percentages):
45 (24.06 % of base) : 32792.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (Tier0-FullOpts)
14 (10.14 % of base) : 43692.dasm - System.Collections.IterateForEach`1[System.__Canon]:ImmutableStack():System.__Canon:this (Tier0-FullOpts)
14 (7.04 % of base) : 44993.dasm - System.Collections.IterateForEach`1[System.__Canon]:FrozenSet():System.__Canon:this (Tier0-FullOpts)
6 (6.52 % of base) : 29723.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:MoveUpDefaultComparer(System.ValueTuple`2[int,int],int):this (Tier0-FullOpts)
10 (6.13 % of base) : 47143.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (Tier1)
17 (4.59 % of base) : 31683.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (Tier1)
18 (4.52 % of base) : 12627.dasm - System.Collections.Generic.PriorityQueue`2[System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[System.__Canon,System.__Canon],int):this (Tier0-FullOpts)
8 (3.90 % of base) : 25005.dasm - System.Xml.XmlConvert:CreateException(System.String,System.String[],int,int,int):System.Exception (Tier1)
19 (2.07 % of base) : 9934.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[System.ValueTuple`3[int,System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`3[int,System.__Canon,System.__Canon],byref):byref (Tier0-FullOpts)
7 (1.99 % of base) : 15413.dasm - System.Linq.Enumerable:Min[ulong](System.Collections.Generic.IEnumerable`1[ulong],System.Collections.Generic.IComparer`1[ulong]):ulong (Tier0-FullOpts)
12 (1.85 % of base) : 13148.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (Tier0-FullOpts)
8 (1.83 % of base) : 9253.dasm - System.Collections.Generic.Dictionary`2[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:FindValue(System.Linq.Expressions.Compiler.BoundConstants+TypedConstant):byref:this (Tier0-FullOpts)
13 (1.80 % of base) : 34322.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:Bind(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],Microsoft.CodeAnalysis.MetadataReferenceResolver,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][]:this (Tier0-FullOpts)
36 (1.76 % of base) : 31115.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (Tier0-FullOpts)
14 (1.60 % of base) : 32228.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
6 (1.50 % of base) : 7716.dasm - System.Collections.Generic.Dictionary`2[System.ValueTuple`2[int,int],System.__Canon]:FindValue(System.ValueTuple`2[int,int]):byref:this (Tier0-FullOpts)
78 (1.46 % of base) : 20950.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (Tier0-FullOpts)
6 (1.38 % of base) : 6119.dasm - Internal.Cryptography.Helpers:ToLpstrArray(System.Security.Cryptography.OidCollection,byref):System.Runtime.InteropServices.SafeHandle (Tier0-FullOpts)
9 (1.38 % of base) : 38676.dasm - System.Collections.Generic.Dictionary`2+CollectionsMarshalHelper[int,System.Collections.Generic.KeyValuePair`2[System.Collections.Immutable.ImmutableArray`1[ubyte],System.Reflection.Metadata.BlobHandle]]:GetValueRefOrAddDefault(System.Collections.Generic.Dictionary`2[int,System.Collections.Generic.KeyValuePair`2[System.Collections.Immutable.ImmutableArray`1[ubyte],System.Reflection.Metadata.BlobHandle]],int,byref):byref (Tier0-FullOpts)
10 (1.36 % of base) : 4834.dasm - System.Collections.Generic.Dictionary`2[long,System.__Canon]:TryInsert(long,System.__Canon,ubyte):ubyte:this (Tier0-FullOpts)
Top method improvements (percentages):
-10 (-2.24 % of base) : 25314.dasm - System.Collections.Generic.PriorityQueue`2[int,int]:EnqueueRange(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]):this (Tier0-FullOpts)
-2 (-1.98 % of base) : 19864.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.90 % of base) : 236.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.90 % of base) : 8221.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.89 % of base) : 4910.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.79 % of base) : 8960.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 28878.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 29297.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 17869.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 20252.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 27333.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 30425.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.79 % of base) : 5362.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
-2 (-1.75 % of base) : 498.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
-11 (-1.63 % of base) : 6694.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (Tier0-FullOpts)
-2 (-1.53 % of base) : 9309.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (Tier0-FullOpts)
-2 (-1.31 % of base) : 18086.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (Tier0-FullOpts)
-18 (-1.21 % of base) : 9508.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:CreateConstructorCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ResultCache,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite:this (Tier0-FullOpts)
-7 (-1.13 % of base) : 691.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (Tier0-FullOpts)
-2 (-1.12 % of base) : 32417.dasm - System.Text.Json.Utf8JsonWriter:ValidateEnd(ubyte):this (Tier1)
coreclr_tests.run.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 308523712 (overridden on cmd)
Total bytes of diff: 309180480 (overridden on cmd)
Total bytes of delta: 656768 (0.21 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
605 : 373350.dasm (8.59 % of base)
469 : 44700.dasm (12.57 % of base)
456 : 559511.dasm (6.02 % of base)
366 : 514778.dasm (5.49 % of base)
320 : 183813.dasm (6.49 % of base)
320 : 81320.dasm (6.49 % of base)
315 : 173421.dasm (6.40 % of base)
315 : 280045.dasm (6.40 % of base)
312 : 521691.dasm (7.01 % of base)
300 : 370606.dasm (4.20 % of base)
280 : 514808.dasm (7.56 % of base)
280 : 338217.dasm (5.65 % of base)
280 : 559107.dasm (5.65 % of base)
272 : 459272.dasm (10.22 % of base)
269 : 342931.dasm (4.78 % of base)
268 : 374728.dasm (5.33 % of base)
265 : 30310.dasm (5.00 % of base)
256 : 44802.dasm (23.81 % of base)
241 : 197238.dasm (11.33 % of base)
241 : 477988.dasm (2.16 % of base)
Top file improvements (bytes):
-219 : 223857.dasm (-9.89 % of base)
-155 : 227133.dasm (-3.39 % of base)
-148 : 237378.dasm (-10.31 % of base)
-148 : 292766.dasm (-10.31 % of base)
-143 : 291927.dasm (-9.92 % of base)
-141 : 239265.dasm (-9.78 % of base)
-129 : 206603.dasm (-9.27 % of base)
-128 : 505410.dasm (-3.19 % of base)
-125 : 284983.dasm (-8.85 % of base)
-125 : 341605.dasm (-8.85 % of base)
-125 : 362571.dasm (-8.85 % of base)
-123 : 238056.dasm (-8.71 % of base)
-120 : 272136.dasm (-8.46 % of base)
-118 : 6579.dasm (-8.35 % of base)
-117 : 375132.dasm (-8.33 % of base)
-117 : 256906.dasm (-8.31 % of base)
-117 : 290058.dasm (-8.33 % of base)
-117 : 202234.dasm (-8.33 % of base)
-115 : 361045.dasm (-8.19 % of base)
-115 : 376416.dasm (-8.17 % of base)
78 total files with Code Size differences (33 improved, 45 regressed), 20 unchanged.
Top method regressions (bytes):
605 (8.59 % of base) : 373350.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,uint,uint,int,uint,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
469 (12.57 % of base) : 44700.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
456 (6.02 % of base) : 559511.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
366 (5.49 % of base) : 514778.dasm - Runtime_34587:TestEntryPoint():int (FullOpts)
320 (6.49 % of base) : 183813.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
320 (6.49 % of base) : 81320.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
315 (6.40 % of base) : 173421.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
315 (6.40 % of base) : 280045.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
312 (7.01 % of base) : 521691.dasm - TestShufflingThunk.Test16833:TestEntryPoint():int (FullOpts)
300 (4.20 % of base) : 370606.dasm - Internal.JitInterface.CorInfoImpl:ceeInfoGetCallInfo(byref,uint,uint,int,uint,byref,byref,byref,byref,byref,byref,byref,byref):this (Tier1)
280 (5.65 % of base) : 559107.dasm - ILCompiler.DependencyAnalysis.NodeFactory:AttachToDependencyGraph(ILCompiler.DependencyAnalysisFramework.DependencyAnalyzerBase`1[ILCompiler.DependencyAnalysis.NodeFactory],Internal.IL.ILProvider):this (FullOpts)
280 (5.65 % of base) : 338217.dasm - ILCompiler.DependencyAnalysis.NodeFactory:AttachToDependencyGraph(ILCompiler.DependencyAnalysisFramework.DependencyAnalyzerBase`1[ILCompiler.DependencyAnalysis.NodeFactory],Internal.IL.ILProvider):this (Tier0-FullOpts)
280 (7.56 % of base) : 514808.dasm - Runtime_34587:ValidateX86():ubyte (FullOpts)
272 (10.22 % of base) : 459272.dasm - JIT.HardwareIntrinsics.X86._Sse41.handwritten.SimpleBinaryOpTest__MultipleSumAbsoluteDifferences:ValidateResult(ubyte[],ubyte[],ubyte,ushort[],System.String):this (FullOpts)
269 (4.78 % of base) : 342931.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier1)
268 (5.33 % of base) : 374728.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
265 (5.00 % of base) : 30310.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier1)
256 (23.81 % of base) : 44802.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
241 (2.16 % of base) : 477988.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
241 (11.33 % of base) : 197238.dasm - System.Linq.Expressions.Compiler.ILGen:EmitConvertToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type,ubyte,System.Linq.Expressions.Compiler.ILocalCache) (Tier1)
Top method improvements (bytes):
-219 (-9.89 % of base) : 223857.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
-155 (-3.39 % of base) : 227133.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
-148 (-10.31 % of base) : 237378.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-148 (-10.31 % of base) : 292766.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-143 (-9.92 % of base) : 291927.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-141 (-9.78 % of base) : 239265.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-129 (-9.27 % of base) : 206603.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-128 (-3.19 % of base) : 505410.dasm - Rotate_explicit2_cs.App+Node:VerifyValid():this (FullOpts)
-125 (-8.85 % of base) : 284983.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-125 (-8.85 % of base) : 341605.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-125 (-8.85 % of base) : 362571.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-123 (-8.71 % of base) : 238056.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-120 (-8.46 % of base) : 272136.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-118 (-8.35 % of base) : 6579.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-117 (-8.33 % of base) : 375132.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-117 (-8.31 % of base) : 256906.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-117 (-8.33 % of base) : 290058.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-117 (-8.33 % of base) : 202234.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-115 (-8.19 % of base) : 361045.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-115 (-8.17 % of base) : 376416.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
Top method regressions (percentages):
43 (153.57 % of base) : 509058.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
35 (125.00 % of base) : 505069.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
29 (103.57 % of base) : 509006.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
33 (38.82 % of base) : 520607.dasm - Test.AA:Method1(byref,int,byref,double[]):float (FullOpts)
33 (38.82 % of base) : 290568.dasm - Test.AA:Method1(byref,int,byref,double[]):float (Tier0-FullOpts)
36 (36.36 % of base) : 504647.dasm - Test_10w5d.testout1:Func_0_2_6_2_2():double (FullOpts)
26 (36.11 % of base) : 505110.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1():float (FullOpts)
16 (32.65 % of base) : 230010.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
36 (30.00 % of base) : 34150.dasm - TestLibrary.Generator:GetUInt16():ushort (Tier1)
8 (29.63 % of base) : 276897.dasm - Microsoft.CodeAnalysis.CSharp.BoundNode:CopyAttributes(Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
54 (26.73 % of base) : 520685.dasm - ILGEN_0xc53351bb:Method_0x6cf4(short,byte,uint,ulong,int,long,short,short,ubyte,long,float,ubyte,ulong,ubyte):float (FullOpts)
25 (24.04 % of base) : 520889.dasm - Test.AA:Main1() (FullOpts)
25 (24.04 % of base) : 290872.dasm - Test.AA:Main1() (Tier0-FullOpts)
256 (23.81 % of base) : 44802.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
70 (22.22 % of base) : 511783.dasm - Test_Finalize+CreateObj:RunTest():System.Runtime.InteropServices.GCHandle:this (FullOpts)
25 (22.12 % of base) : 520892.dasm - Test.AA:Main1() (FullOpts)
25 (22.12 % of base) : 290875.dasm - Test.AA:Main1() (Tier0-FullOpts)
229 (21.30 % of base) : 87798.dasm - System.DefaultBinder:CanChangePrimitive(System.Type,System.Type):ubyte (Tier1)
84 (20.14 % of base) : 252510.dasm - System.Threading.ThreadPoolWorkQueue:Dequeue(System.Threading.ThreadPoolWorkQueueThreadLocals,byref):System.Object:this (Tier1)
80 (19.18 % of base) : 342461.dasm - System.Threading.ThreadPoolWorkQueue:Dequeue(System.Threading.ThreadPoolWorkQueueThreadLocals,byref):System.Object:this (Tier1)
Top method improvements (percentages):
-58 (-16.48 % of base) : 495848.dasm - HelloWorld:Main():int (FullOpts)
-9 (-12.86 % of base) : 477494.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
-39 (-11.08 % of base) : 499687.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
-39 (-11.08 % of base) : 500788.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
-39 (-11.08 % of base) : 500808.dasm - Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
-39 (-11.08 % of base) : 506866.dasm - Test_variancesmall_il.Program:Verification(System.String,System.String,System.String,System.String,int):int (FullOpts)
-26 (-11.02 % of base) : 228286.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (Tier0-FullOpts)
-148 (-10.31 % of base) : 237378.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-148 (-10.31 % of base) : 292766.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-24 (-10.17 % of base) : 478757.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
-18 (-10.00 % of base) : 276022.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
-143 (-9.92 % of base) : 291927.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-219 (-9.89 % of base) : 223857.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
-141 (-9.78 % of base) : 239265.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-45 (-9.34 % of base) : 572310.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
-45 (-9.34 % of base) : 365572.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (Tier0-FullOpts)
-129 (-9.27 % of base) : 206603.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-22 (-8.91 % of base) : 373696.dasm - Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey+RuntimeDeterminedTypeKeyHashtable:CompareValueToValue(Internal.TypeSystem.RuntimeDeterminedType,Internal.TypeSystem.RuntimeDeterminedType):ubyte:this (Tier1)
-125 (-8.85 % of base) : 284983.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
-125 (-8.85 % of base) : 341605.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
libraries.crossgen2.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 31626935 (overridden on cmd)
Total bytes of diff: 31628298 (overridden on cmd)
Total bytes of delta: 1363 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
577 : 150453.dasm (1,407.32 % of base)
82 : 218453.dasm (0.37 % of base)
64 : 74987.dasm (21.92 % of base)
51 : 82633.dasm (0.97 % of base)
39 : 33430.dasm (1.32 % of base)
38 : 219268.dasm (5.57 % of base)
37 : 62131.dasm (14.51 % of base)
30 : 182908.dasm (29.41 % of base)
29 : 236541.dasm (2.13 % of base)
27 : 214858.dasm (3.94 % of base)
26 : 34495.dasm (2.01 % of base)
21 : 32139.dasm (2.15 % of base)
21 : 234264.dasm (1.09 % of base)
20 : 126994.dasm (1.51 % of base)
20 : 127152.dasm (4.95 % of base)
20 : 173479.dasm (1.25 % of base)
20 : 178388.dasm (2.18 % of base)
20 : 182745.dasm (21.28 % of base)
19 : 234347.dasm (59.38 % of base)
19 : 178462.dasm (2.40 % of base)
Top file improvements (bytes):
-96 : 17593.dasm (-2.24 % of base)
-31 : 22972.dasm (-1.56 % of base)
-31 : 83605.dasm (-5.59 % of base)
-23 : 238409.dasm (-2.17 % of base)
-22 : 30762.dasm (-1.63 % of base)
-20 : 155068.dasm (-0.43 % of base)
-19 : 237873.dasm (-1.26 % of base)
-16 : 146398.dasm (-3.66 % of base)
-16 : 146400.dasm (-3.66 % of base)
-15 : 238414.dasm (-1.94 % of base)
-15 : 230672.dasm (-0.96 % of base)
-14 : 22923.dasm (-2.07 % of base)
-13 : 164957.dasm (-0.82 % of base)
-13 : 140149.dasm (-0.82 % of base)
-12 : 215581.dasm (-2.26 % of base)
-12 : 76525.dasm (-2.40 % of base)
-11 : 174275.dasm (-0.57 % of base)
-10 : 31014.dasm (-4.46 % of base)
-10 : 207788.dasm (-2.98 % of base)
-10 : 23101.dasm (-2.88 % of base)
63 total files with Code Size differences (29 improved, 34 regressed), 20 unchanged.
Top method regressions (bytes):
577 (1,407.32 % of base) : 150453.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
82 (0.37 % of base) : 218453.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)
64 (21.92 % of base) : 74987.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
51 (0.97 % of base) : 82633.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:ParseConditionalCompilationSymbols(System.String,byref,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Object] (FullOpts)
39 (1.32 % of base) : 33430.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
38 (5.57 % of base) : 219268.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
37 (14.51 % of base) : 62131.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
30 (29.41 % of base) : 182908.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
29 (2.13 % of base) : 236541.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
27 (3.94 % of base) : 214858.dasm - System.Data.OleDb.OleDbConnectionStringBuilder:get_Keys():System.Collections.ICollection:this (FullOpts)
26 (2.01 % of base) : 34495.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
21 (1.09 % of base) : 234264.dasm - System.Management.ManagementClassGenerator:GenerateSystemPropertiesClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
21 (2.15 % of base) : 32139.dasm - System.Xml.XmlDataDocument:OnRowChanging(System.Object,System.Data.DataRowChangeEventArgs):this (FullOpts)
20 (4.95 % of base) : 127152.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
20 (1.51 % of base) : 126994.dasm - System.Formats.Tar.TarHeader+<ProcessDataBlockAsync>d__52:MoveNext():this (FullOpts)
20 (2.18 % of base) : 178388.dasm - System.IO.Packaging.InternalRelationshipCollection:ParseRelationshipPart(System.IO.Packaging.PackagePart):this (FullOpts)
20 (21.28 % of base) : 182745.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
20 (1.25 % of base) : 173479.dasm - System.Security.Cryptography.Pbkdf2Implementation:FillKeyDerivation(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.String,System.Span`1[ubyte]) (FullOpts)
19 (2.40 % of base) : 178462.dasm - System.IO.Packaging.ZipPackage+ContentTypeHelper:ParseContentTypesFile(System.Collections.ObjectModel.ReadOnlyCollection`1[System.IO.Compression.ZipArchiveEntry]):this (FullOpts)
19 (59.38 % of base) : 234347.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
Top method improvements (bytes):
-96 (-2.24 % of base) : 17593.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
-31 (-5.59 % of base) : 83605.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
-31 (-1.56 % of base) : 22972.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this (FullOpts)
-23 (-2.17 % of base) : 238409.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
-22 (-1.63 % of base) : 30762.dasm - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,ubyte):ubyte:this (FullOpts)
-20 (-0.43 % of base) : 155068.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (FullOpts)
-19 (-1.26 % of base) : 237873.dasm - System.Threading.Tasks.Parallel+<>c__DisplayClass43_0`2[System.__Canon,System.__Canon]:<PartitionerForEachWorker>b__1(byref,long,byref):this (FullOpts)
-16 (-3.66 % of base) : 146398.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
-16 (-3.66 % of base) : 146400.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
-15 (-0.96 % of base) : 230672.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitSwitchBucket(System.Linq.Expressions.Compiler.LambdaCompiler+SwitchInfo,System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+SwitchLabel]):this (FullOpts)
-15 (-1.94 % of base) : 238414.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
-14 (-2.07 % of base) : 22923.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
-13 (-0.82 % of base) : 140149.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (FullOpts)
-13 (-0.82 % of base) : 164957.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__176:MoveNext():ubyte:this (FullOpts)
-12 (-2.40 % of base) : 76525.dasm - Microsoft.CodeAnalysis.VisualBasic.ExecutableCodeBinder:LookupInSingleBinder(Microsoft.CodeAnalysis.VisualBasic.LookupResult,System.String,int,int,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):this (FullOpts)
-12 (-2.26 % of base) : 215581.dasm - System.Data.OleDb.RowBinding:SetBindings(System.Data.OleDb.OleDbDataReader,System.Data.OleDb.Bindings,int,int,System.Data.OleDb.OleDbParameter[],System.Data.OleDb.tagDBBINDING[],ubyte):System.Data.OleDb.ColumnBinding[]:this (FullOpts)
-11 (-0.57 % of base) : 174275.dasm - R2RTest.BuildFolder:.ctor(System.Collections.Generic.List`1[System.String],System.Collections.Generic.List`1[System.String],System.Collections.Generic.List`1[System.String],System.Collections.Generic.IEnumerable`1[R2RTest.CompilerRunner],System.String,System.String,R2RTest.BuildOptions):this (FullOpts)
-10 (-0.92 % of base) : 169541.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]:TryInsert(Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue,ubyte):ubyte:this (FullOpts)
-10 (-2.88 % of base) : 23101.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
-10 (-4.46 % of base) : 31014.dasm - System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
Top method regressions (percentages):
577 (1,407.32 % of base) : 150453.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
19 (59.38 % of base) : 234347.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
30 (29.41 % of base) : 182908.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
64 (21.92 % of base) : 74987.dasm - Microsoft.FSharp.Core.LanguagePrimitives+FastGenericComparerTable`1[int]:.cctor() (FullOpts)
20 (21.28 % of base) : 182745.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
17 (18.09 % of base) : 182834.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
37 (14.51 % of base) : 62131.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
14 (12.84 % of base) : 63421.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
10 (11.90 % of base) : 241035.dasm - System.Transactions.Oletx.OletxTransactionManager:ConvertIsolationLevelFromProxyValue(int):int (FullOpts)
14 (10.07 % of base) : 75426.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:GetUnassignedSymbolFirstLocation(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.VisualBasic.BoundFieldAccess):Microsoft.CodeAnalysis.Location:this (FullOpts)
9 (9.57 % of base) : 182889.dasm - System.Net.Mail.StartTlsCommand:CheckResponse(int,System.String) (FullOpts)
18 (8.53 % of base) : 35363.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
10 (7.52 % of base) : 202224.dasm - System.Data.Odbc.OdbcHandle:ReleaseHandle():ubyte:this (FullOpts)
7 (6.93 % of base) : 219469.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:IsMemberPublic(System.Reflection.MemberInfo):ubyte (FullOpts)
14 (6.86 % of base) : 222734.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
13 (6.70 % of base) : 89266.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SingleLineLambdaContext:ProcessStatementTerminator(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.BlockContext:this (FullOpts)
16 (5.93 % of base) : 209664.dasm - System.IO.Compression.ZipArchiveEntry:GetDataCompressor(System.IO.Stream,ubyte,System.EventHandler):System.IO.Compression.CheckSumAndSizeWriteStream:this (FullOpts)
38 (5.57 % of base) : 219268.dasm - Microsoft.VisualBasic.Strings:GetCurrencyFormatString(int,int,int,int,byref):System.String (FullOpts)
20 (4.95 % of base) : 127152.dasm - System.Formats.Tar.TarHeader:ProcessDataBlock(System.IO.Stream,ubyte):this (FullOpts)
12 (4.53 % of base) : 152969.dasm - System.Xml.Serialization.XmlSchemas:CreateValidationException(System.Xml.Schema.XmlSchemaException,System.String):System.Exception (FullOpts)
Top method improvements (percentages):
-31 (-5.59 % of base) : 83605.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEAssemblyBuilderBase:GetFilesCore(Microsoft.CodeAnalysis.Emit.EmitContext,byref):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFileReference]:this (FullOpts)
-10 (-4.46 % of base) : 31014.dasm - System.Data.DataTable:ResetInternalIndexes(System.Data.DataColumn):this (FullOpts)
-16 (-3.66 % of base) : 146398.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBase64(ubyte[],int,int):int:this (FullOpts)
-16 (-3.66 % of base) : 146400.dasm - System.Xml.XmlSubtreeReader:ReadContentAsBinHex(ubyte[],int,int):int:this (FullOpts)
-10 (-2.98 % of base) : 207788.dasm - System.Speech.Internal.StringBlob:SerializeData():ushort[]:this (FullOpts)
-10 (-2.88 % of base) : 23101.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Threading.PortableThreadPool+IOCompletionPoller+Event]:CopyTo(System.Threading.PortableThreadPool+IOCompletionPoller+Event[],int):this (FullOpts)
-2 (-2.74 % of base) : 202263.dasm - System.Data.Odbc.OdbcParameter:set_SourceVersion(int):this (FullOpts)
-2 (-2.74 % of base) : 214720.dasm - System.Data.OleDb.OleDbParameter:set_SourceVersion(int):this (FullOpts)
-12 (-2.40 % of base) : 76525.dasm - Microsoft.CodeAnalysis.VisualBasic.ExecutableCodeBinder:LookupInSingleBinder(Microsoft.CodeAnalysis.VisualBasic.LookupResult,System.String,int,int,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):this (FullOpts)
-12 (-2.26 % of base) : 215581.dasm - System.Data.OleDb.RowBinding:SetBindings(System.Data.OleDb.OleDbDataReader,System.Data.OleDb.Bindings,int,int,System.Data.OleDb.OleDbParameter[],System.Data.OleDb.tagDBBINDING[],ubyte):System.Data.OleDb.ColumnBinding[]:this (FullOpts)
-96 (-2.24 % of base) : 17593.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (FullOpts)
-23 (-2.17 % of base) : 238409.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts)
-7 (-2.10 % of base) : 135049.dasm - Microsoft.CodeAnalysis.SyntaxNodeOrToken:GetFirstChildIndexSpanningPosition(Microsoft.CodeAnalysis.ChildSyntaxList,int):int (FullOpts)
-7 (-2.10 % of base) : 159967.dasm - Microsoft.CodeAnalysis.SyntaxNodeOrToken:GetFirstChildIndexSpanningPosition(Microsoft.CodeAnalysis.ChildSyntaxList,int):int (FullOpts)
-14 (-2.07 % of base) : 22923.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
-2 (-1.96 % of base) : 23043.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
-15 (-1.94 % of base) : 238414.dasm - System.Net.Sockets.Socket:ReceiveFrom(System.Span`1[ubyte],int,byref):int:this (FullOpts)
-2 (-1.92 % of base) : 23048.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[int,ubyte]:MoveNext():ubyte:this (FullOpts)
-2 (-1.87 % of base) : 14087.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.87 % of base) : 13778.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
libraries.pmi.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 48679731 (overridden on cmd)
Total bytes of diff: 48827920 (overridden on cmd)
Total bytes of delta: 148189 (0.30 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
577 : 193431.dasm (1,407.32 % of base)
564 : 147560.dasm (2.39 % of base)
490 : 196621.dasm (6.47 % of base)
443 : 30251.dasm (7.54 % of base)
354 : 266569.dasm (3.80 % of base)
292 : 196391.dasm (5.82 % of base)
243 : 59792.dasm (2.17 % of base)
219 : 123118.dasm (8.31 % of base)
206 : 170932.dasm (7.80 % of base)
191 : 38813.dasm (3.66 % of base)
188 : 186360.dasm (5.30 % of base)
188 : 185700.dasm (5.27 % of base)
177 : 119118.dasm (5.37 % of base)
177 : 211716.dasm (3.32 % of base)
176 : 123114.dasm (8.18 % of base)
169 : 170928.dasm (7.78 % of base)
162 : 186370.dasm (7.71 % of base)
155 : 82009.dasm (2.37 % of base)
153 : 282573.dasm (4.42 % of base)
151 : 218687.dasm (1.86 % of base)
Top file improvements (bytes):
-260 : 159638.dasm (-11.00 % of base)
-260 : 111672.dasm (-11.00 % of base)
-225 : 246114.dasm (-9.12 % of base)
-199 : 30742.dasm (-4.23 % of base)
-177 : 193875.dasm (-3.32 % of base)
-156 : 267316.dasm (-2.94 % of base)
-150 : 193534.dasm (-3.19 % of base)
-139 : 266480.dasm (-7.93 % of base)
-97 : 79159.dasm (-1.48 % of base)
-87 : 263037.dasm (-1.87 % of base)
-87 : 183859.dasm (-8.97 % of base)
-86 : 58770.dasm (-1.53 % of base)
-84 : 110805.dasm (-8.02 % of base)
-84 : 158824.dasm (-8.02 % of base)
-84 : 193532.dasm (-1.94 % of base)
-77 : 86300.dasm (-0.93 % of base)
-69 : 176360.dasm (-2.89 % of base)
-66 : 250018.dasm (-3.72 % of base)
-65 : 266936.dasm (-1.82 % of base)
-65 : 68632.dasm (-8.90 % of base)
84 total files with Code Size differences (39 improved, 45 regressed), 20 unchanged.
Top method regressions (bytes):
577 (1,407.32 % of base) : 193431.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
564 (2.39 % of base) : 147560.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)
490 (6.47 % of base) : 196621.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
443 (7.54 % of base) : 30251.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
354 (3.80 % of base) : 266569.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
292 (5.82 % of base) : 196391.dasm - ILCompiler.DependencyAnalysis.NodeFactory:AttachToDependencyGraph(ILCompiler.DependencyAnalysisFramework.DependencyAnalyzerBase`1[ILCompiler.DependencyAnalysis.NodeFactory],Internal.IL.ILProvider):this (FullOpts)
243 (2.17 % of base) : 59792.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
219 (8.31 % of base) : 123118.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
206 (7.80 % of base) : 170932.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[ubyte]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
191 (3.66 % of base) : 38813.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
188 (5.27 % of base) : 185700.dasm - System.Xml.Schema.Compiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
188 (5.30 % of base) : 186360.dasm - System.Xml.Schema.SchemaCollectionCompiler:CalculateEffectiveTotalRange(System.Xml.Schema.XmlSchemaParticle,byref,byref) (FullOpts)
177 (5.37 % of base) : 119118.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncMapTableRows(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Generic.List`1[int],System.Collections.Generic.List`1[int]):this (FullOpts)
177 (3.32 % of base) : 211716.dasm - Newtonsoft.Json.JsonTextReader+<ParseValueAsync>d__8:MoveNext():this (FullOpts)
176 (8.18 % of base) : 123114.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
169 (7.78 % of base) : 170928.dasm - Microsoft.CodeAnalysis.PredicateSyntaxStrategy`1+Builder[System.__Canon]:VisitTree(System.Lazy`1[Microsoft.CodeAnalysis.SyntaxNode],int,System.Lazy`1[Microsoft.CodeAnalysis.SemanticModel],System.Threading.CancellationToken):this (FullOpts)
162 (7.71 % of base) : 186370.dasm - System.Xml.Schema.SchemaCollectionCompiler:BuildParticleContentModel(System.Xml.Schema.ParticleContentValidator,System.Xml.Schema.XmlSchemaParticle) (FullOpts)
155 (2.37 % of base) : 82009.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ConstraintsHelper:RemoveDirectConstraintConflicts(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterSymbol],int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterDiagnosticInfo]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint] (FullOpts)
153 (4.42 % of base) : 282573.dasm - System.Security.Cryptography.Xml.KeyInfoX509Data:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
151 (1.86 % of base) : 218687.dasm - R2RTest.BuildFolderSet:WriteBuildStatistics(System.IO.StreamWriter):this (FullOpts)
Top method improvements (bytes):
-260 (-11.00 % of base) : 159638.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
-260 (-11.00 % of base) : 111672.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
-225 (-9.12 % of base) : 246114.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)
-199 (-4.23 % of base) : 30742.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAsOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-177 (-3.32 % of base) : 193875.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-156 (-2.94 % of base) : 267316.dasm - System.Net.Http.SocksHelper+<EstablishSocks5TunnelAsync>d__14:MoveNext():this (FullOpts)
-150 (-3.19 % of base) : 193534.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateEncodedMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-139 (-7.93 % of base) : 266480.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
-97 (-1.48 % of base) : 79159.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ModifiedIdentifierSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.AsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.EqualsValueSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.VisualBasic.BoundLocalDeclaration:this (FullOpts)
-87 (-1.87 % of base) : 263037.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
-87 (-8.97 % of base) : 183859.dasm - System.Xml.XmlWellFormedWriter:AddAttribute(System.String,System.String,System.String):this (FullOpts)
-86 (-1.53 % of base) : 58770.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
-84 (-8.02 % of base) : 110805.dasm - Microsoft.CodeAnalysis.TopologicalSort:PredecessorCounts[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],Microsoft.CodeAnalysis.TopologicalSortAddSuccessors`1[ubyte],byref):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[ubyte,int] (FullOpts)
-84 (-8.02 % of base) : 158824.dasm - Microsoft.CodeAnalysis.TopologicalSort:PredecessorCounts[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],Microsoft.CodeAnalysis.TopologicalSortAddSuccessors`1[ubyte],byref):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[ubyte,int] (FullOpts)
-84 (-1.94 % of base) : 193532.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
-77 (-0.93 % of base) : 86300.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:ParseConditionalCompilationSymbols(System.String,byref,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Object] (FullOpts)
-69 (-2.89 % of base) : 176360.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
-66 (-3.72 % of base) : 250018.dasm - System.Formats.Tar.TarReader+<TryProcessGnuMetadataHeaderAsync>d__19:MoveNext():this (FullOpts)
-65 (-8.90 % of base) : 68632.dasm - System.Data.XmlDataLoader:LoadRows(System.Data.DataRow,System.Xml.XmlNode):this (FullOpts)
-65 (-1.82 % of base) : 266936.dasm - System.Net.Http.Http3Connection+<ProcessServerControlStreamAsync>d__42:MoveNext():this (FullOpts)
Top method regressions (percentages):
577 (1,407.32 % of base) : 193431.dasm - System.Xml.Serialization.XmlSerializationReader:ReadTypedNull(System.Xml.XmlQualifiedName):System.Object:this (FullOpts)
7 (70.00 % of base) : 250500.dasm - System.IO.Compression.DeflateManagedStream:PurgeBuffers(ubyte):this (FullOpts)
19 (59.38 % of base) : 263141.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
30 (27.78 % of base) : 268809.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
45 (24.06 % of base) : 292334.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
29 (20.14 % of base) : 275614.dasm - System.Xml.Linq.XElement:GetNamespaceOfPrefixInScope(System.String,System.Xml.Linq.XElement):System.String:this (FullOpts)
20 (20.00 % of base) : 268828.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
49 (19.52 % of base) : 273028.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (FullOpts)
41 (18.81 % of base) : 252745.dasm - System.IO.Pipes.PipeStream+PipeValueTaskSource:ReleaseResources():this (FullOpts)
10 (17.24 % of base) : 273207.dasm - System.Net.Sockets.UdpReceiveResult:op_Equality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
17 (17.00 % of base) : 268805.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
10 (16.95 % of base) : 273206.dasm - System.Net.Sockets.UdpReceiveResult:Equals(System.Net.Sockets.UdpReceiveResult):ubyte:this (FullOpts)
47 (16.10 % of base) : 296671.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.__Canon]:RunCompletionAction(System.Action`1[System.Object],System.Object,ubyte):this (FullOpts)
47 (16.10 % of base) : 296689.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[ubyte]:RunCompletionAction(System.Action`1[System.Object],System.Object,ubyte):this (FullOpts)
41 (15.95 % of base) : 177313.dasm - System.Runtime.Serialization.Json.JsonEncodingStreamWrapper:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
36 (15.38 % of base) : 215784.dasm - Microsoft.Build.Framework.FileClassifier:.cctor() (FullOpts)
27 (15.08 % of base) : 281611.dasm - System.Security.Cryptography.Pkcs.SignerInfo:FindAttributeIndexByOid(System.Security.Cryptography.Asn1.AttributeAsn[],System.Security.Cryptography.Oid,int):int (FullOpts)
37 (14.51 % of base) : 63553.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
10 (14.49 % of base) : 273208.dasm - System.Net.Sockets.UdpReceiveResult:op_Inequality(System.Net.Sockets.UdpReceiveResult,System.Net.Sockets.UdpReceiveResult):ubyte (FullOpts)
94 (14.33 % of base) : 189648.dasm - System.Xml.Xsl.XsltOld.RootAction:AddDecimalFormat(System.Xml.XmlQualifiedName,System.Xml.Xsl.Runtime.DecimalFormat):this (FullOpts)
Top method improvements (percentages):
-7 (-25.00 % of base) : 151875.dasm - Microsoft.Build.BackEnd.SchedulingData:GetBlockedRequestIfAny(int):Microsoft.Build.BackEnd.SchedulableRequest:this (FullOpts)
-41 (-15.41 % of base) : 13052.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
-56 (-15.22 % of base) : 176463.dasm - System.Runtime.Serialization.SchemaImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
-56 (-15.22 % of base) : 279933.dasm - System.Runtime.Serialization.XsdDataContractImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
-28 (-15.14 % of base) : 282751.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
-36 (-13.43 % of base) : 187927.dasm - System.Xml.Schema.XmlSchemaInference:FindElementRef(System.Xml.Schema.XmlSchemaObjectCollection,System.String,System.String):System.Xml.Schema.XmlSchemaElement (FullOpts)
-43 (-13.23 % of base) : 184712.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
-9 (-12.86 % of base) : 13053.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
-43 (-12.65 % of base) : 184713.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
-41 (-12.02 % of base) : 242580.dasm - System.Diagnostics.DiagnosticSourceEventSource+FilterAndTransform:Sample(System.String,System.String,System.Diagnostics.DiagnosticSourceEventSource):int (FullOpts)
-40 (-11.80 % of base) : 242446.dasm - System.Diagnostics.ActivityLink:Equals(System.Object):ubyte:this (FullOpts)
-38 (-11.48 % of base) : 242449.dasm - System.Diagnostics.ActivityLink:op_Inequality(System.Diagnostics.ActivityLink,System.Diagnostics.ActivityLink):ubyte (FullOpts)
-28 (-11.02 % of base) : 69927.dasm - System.Data.DataSet:set_Prefix(System.String):this (FullOpts)
-260 (-11.00 % of base) : 159638.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
-260 (-11.00 % of base) : 111672.dasm - Microsoft.CodeAnalysis.Win32ResourceConversions:AppendIconToResourceStream(System.IO.Stream,System.IO.Stream) (FullOpts)
-32 (-10.39 % of base) : 187200.dasm - System.Xml.Schema.XmlSchemaSet:Schemas(System.String):System.Collections.ICollection:this (FullOpts)
-12 (-10.26 % of base) : 164177.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager:HasCustomTag(System.Collections.Immutable.ImmutableArray`1[System.String],System.String):ubyte (FullOpts)
-26 (-9.92 % of base) : 181539.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
-45 (-9.34 % of base) : 150332.dasm - Microsoft.Build.Evaluation.ToolsetReader:ReadEachToolset(System.Collections.Generic.Dictionary`2[System.String,Microsoft.Build.Evaluation.Toolset],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],Microsoft.Build.Collections.PropertyDictionary`1[Microsoft.Build.Execution.ProjectPropertyInstance],ubyte):this (FullOpts)
-225 (-9.12 % of base) : 246114.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:DateTimeFilterBuilder(System.String,System.DateTime,System.DateTime,ubyte,int):System.String (FullOpts)
libraries_tests.run.windows.x86.Release.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 184050709 (overridden on cmd)
Total bytes of diff: 185548328 (overridden on cmd)
Total bytes of delta: 1497619 (0.81 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
683 : 633848.dasm (6.08 % of base)
674 : 596451.dasm (10.12 % of base)
670 : 155385.dasm (6.22 % of base)
650 : 158601.dasm (12.61 % of base)
629 : 341190.dasm (5.57 % of base)
619 : 155168.dasm (8.60 % of base)
610 : 283405.dasm (10.91 % of base)
608 : 114447.dasm (5.78 % of base)
599 : 28350.dasm (6.18 % of base)
577 : 52438.dasm (14.70 % of base)
574 : 169024.dasm (2.43 % of base)
567 : 52497.dasm (6.34 % of base)
548 : 593147.dasm (10.76 % of base)
531 : 352720.dasm (6.14 % of base)
499 : 77370.dasm (9.98 % of base)
492 : 52517.dasm (6.41 % of base)
491 : 78088.dasm (5.79 % of base)
486 : 622337.dasm (4.32 % of base)
482 : 286127.dasm (4.19 % of base)
473 : 594911.dasm (3.84 % of base)
Top file improvements (bytes):
-475 : 451875.dasm (-7.06 % of base)
-475 : 385074.dasm (-7.06 % of base)
-377 : 200271.dasm (-4.19 % of base)
-377 : 456585.dasm (-4.19 % of base)
-321 : 364200.dasm (-3.25 % of base)
-321 : 547941.dasm (-3.25 % of base)
-321 : 253107.dasm (-3.25 % of base)
-280 : 444662.dasm (-2.36 % of base)
-248 : 154690.dasm (-10.16 % of base)
-234 : 230425.dasm (-1.98 % of base)
-223 : 88815.dasm (-1.88 % of base)
-194 : 381818.dasm (-1.88 % of base)
-194 : 463693.dasm (-4.90 % of base)
-178 : 155126.dasm (-5.53 % of base)
-177 : 591999.dasm (-2.73 % of base)
-170 : 582818.dasm (-6.68 % of base)
-164 : 175962.dasm (-2.85 % of base)
-164 : 364525.dasm (-3.77 % of base)
-164 : 382576.dasm (-3.77 % of base)
-158 : 468281.dasm (-2.92 % of base)
100 total files with Code Size differences (60 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
683 (6.08 % of base) : 633848.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
674 (10.12 % of base) : 596451.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ResourceDescription],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.RebuildData,Microsoft.CodeAnalysis.CodeGen.CompilationTestData,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this (Tier1)
670 (6.22 % of base) : 155385.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:DecodeWellKnownAttributeImpl(byref):this (Tier1)
650 (12.61 % of base) : 158601.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
629 (5.57 % of base) : 341190.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
619 (8.60 % of base) : 155168.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:EarlyDecodeWellKnownAttribute(byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]:this (Tier1)
610 (10.91 % of base) : 283405.dasm - System.IO.Tests.StreamConformanceTests+<ValidateDisposedExceptionsAsync>d__51:MoveNext():this (Tier1)
608 (5.78 % of base) : 114447.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
599 (6.18 % of base) : 28350.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
577 (14.70 % of base) : 52438.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
574 (2.43 % of base) : 169024.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
567 (6.34 % of base) : 52497.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
548 (10.76 % of base) : 593147.dasm - System.Reflection.PortableExecutable.PEBuilder:WritePEHeader(System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.PEDirectoriesBuilder,System.Collections.Immutable.ImmutableArray`1[System.Reflection.PortableExecutable.PEBuilder+SerializedSection]):this (Tier1)
531 (6.14 % of base) : 352720.dasm - System.Net.Mail.Message:PrepareHeaders(ubyte):this (Tier1)
499 (9.98 % of base) : 77370.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:Equals(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this (Tier1)
492 (6.41 % of base) : 52517.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeWellKnownAttributeAppliedToMethod(byref):this (Tier1)
491 (5.79 % of base) : 78088.dasm - Microsoft.Interop.LibraryImportGenerator:PrintForwarderStub(Microsoft.Interop.ContainingSyntax,ubyte,Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext,Microsoft.Interop.GeneratorDiagnosticsBag):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax (Tier1)
486 (4.32 % of base) : 622337.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
482 (4.19 % of base) : 286127.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
473 (3.84 % of base) : 594911.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitLoop|33(System.Text.RegularExpressions.RegexNode):this (Tier1)
Top method improvements (bytes):
-475 (-7.06 % of base) : 451875.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (Tier1)
-475 (-7.06 % of base) : 385074.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (Tier1)
-377 (-4.19 % of base) : 200271.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-377 (-4.19 % of base) : 456585.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-321 (-3.25 % of base) : 364200.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-321 (-3.25 % of base) : 547941.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-321 (-3.25 % of base) : 253107.dasm - Xunit.ExecutionEventSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-280 (-2.36 % of base) : 444662.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-248 (-10.16 % of base) : 154690.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__expandParamsArray|232_2(byref,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref) (Tier0-FullOpts)
-234 (-1.98 % of base) : 230425.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-223 (-1.88 % of base) : 88815.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
-194 (-1.88 % of base) : 381818.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
-194 (-4.90 % of base) : 463693.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-178 (-5.53 % of base) : 155126.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:EarlyDecodeDeprecatedOrExperimentalOrObsoleteAttribute(byref,byref,byref,byref):ubyte (Tier1)
-177 (-2.73 % of base) : 591999.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier1)
-170 (-6.68 % of base) : 582818.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ConstructBoundMemberGroupAndReportOmittedTypeArguments(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.LookupResult,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundMethodOrPropertyGroup:this (Tier1)
-164 (-2.85 % of base) : 175962.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (Tier0-FullOpts)
-164 (-3.77 % of base) : 364525.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-164 (-3.77 % of base) : 382576.dasm - Xunit.DelegatingXmlCreationSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier1)
-158 (-2.92 % of base) : 468281.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
Top method regressions (percentages):
189 (67.02 % of base) : 156988.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:GetEmbeddedTypes(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (Tier1)
37 (60.66 % of base) : 54535.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
37 (60.66 % of base) : 77802.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
37 (60.66 % of base) : 606525.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
37 (60.66 % of base) : 155997.dasm - Roslyn.Utilities.AsyncLazy`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]):System.Threading.Tasks.Task`1[Microsoft.CodeAnalysis.ProjectState+AnalyzerConfigOptionsCache]:this (Tier1)
37 (60.66 % of base) : 53577.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
37 (55.22 % of base) : 141686.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:GetCachedValueAndCacheThisValueIfNoneCached_NoLock(System.Threading.Tasks.Task`1[System.__Canon]):System.Threading.Tasks.Task`1[System.__Canon]:this (Tier1)
22 (50.00 % of base) : 45481.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
9 (50.00 % of base) : 402242.dasm - System.ArgumentOutOfRangeException:ThrowIfLessThan[int](int,int,System.String) (Tier1)
22 (43.14 % of base) : 133851.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
158 (39.90 % of base) : 360312.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
158 (39.90 % of base) : 344095.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
22 (39.29 % of base) : 146485.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
21 (38.18 % of base) : 45475.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon]):this (Tier1)
149 (37.63 % of base) : 365874.dasm - System.Net.Sockets.Socket:UpdateAcceptSocket(System.Net.Sockets.Socket,System.Net.EndPoint):System.Net.Sockets.Socket:this (Tier1)
21 (36.21 % of base) : 133852.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
21 (33.33 % of base) : 146486.dasm - Roslyn.Utilities.AsyncLazy`1[System.__Canon]:.ctor(System.Func`2[System.Threading.CancellationToken,System.__Canon],System.Func`2[System.Threading.CancellationToken,System.__Canon],ubyte):this (Tier1)
16 (32.65 % of base) : 44200.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
16 (32.65 % of base) : 41701.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Union(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:this (Tier1)
16 (31.37 % of base) : 45503.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.ImmutableSortedDictionary`2[System.__Canon,System.__Canon]:this (Tier1)
Top method improvements (percentages):
-7 (-21.21 % of base) : 55069.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
-7 (-21.21 % of base) : 611551.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
-7 (-21.21 % of base) : 79009.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAnalyzerGate(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer):System.Threading.SemaphoreSlim:this (Tier1)
-48 (-18.68 % of base) : 353107.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this (Tier1)
-8 (-16.00 % of base) : 359216.dasm - Xunit.TestFrameworkOptions:GetValue[System.Nullable`1[ubyte]](System.String):System.Nullable`1[ubyte]:this (Tier1)
-53 (-15.54 % of base) : 239931.dasm - System.Diagnostics.DiagnosticSourceEventSource+FilterAndTransform:Sample(System.String,System.String,System.Diagnostics.DiagnosticSourceEventSource):int (Tier0-FullOpts)
-56 (-15.34 % of base) : 444586.dasm - System.Runtime.Serialization.XsdDataContractImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (Tier0-FullOpts)
-56 (-15.22 % of base) : 444196.dasm - System.Runtime.Serialization.SchemaImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (Tier0-FullOpts)
-45 (-13.85 % of base) : 102965.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (Tier0-FullOpts)
-39 (-12.58 % of base) : 72307.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsPossibleTypedIdentifierStart(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,ubyte):System.Nullable`1[ubyte]:this (Tier1)
-4 (-12.50 % of base) : 50973.dasm - Microsoft.CodeAnalysis.CSharp.Conversion:get_IsUserDefined():ubyte:this (Tier1)
-79 (-12.23 % of base) : 474824.dasm - System.Globalization.DateTimeFormatInfoScanner:AddDateWordOrPostfix(System.String,System.String):this (Tier1)
-41 (-12.20 % of base) : 420613.dasm - System.Reflection.Tests.TypeInfoDeclaredMemberTests:VerifyMembers(System.Type,System.String[]) (Tier0-FullOpts)
-41 (-12.20 % of base) : 419809.dasm - System.Reflection.Tests.TypeInfoDeclaredMethodTests:VerifyMethods(System.Type,System.String[]) (Tier0-FullOpts)
-57 (-12.00 % of base) : 585995.dasm - Microsoft.CodeAnalysis.CSharp.BoundLocal:Update(Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,int,Microsoft.CodeAnalysis.ConstantValue,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundLocal:this (Tier1)
-60 (-11.72 % of base) : 396943.dasm - System.Xml.Xsl.Xslt.Stylesheet:AddVarPar(System.Xml.Xsl.Xslt.VarPar):ubyte:this (Tier0-FullOpts)
-50 (-11.55 % of base) : 573674.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_IsIndexer():ubyte:this (Tier1)
-50 (-10.62 % of base) : 112621.dasm - System.SpanHelpers:IndexOfNullByte(uint):int (Tier1)
-73 (-10.58 % of base) : 585947.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:WriteConsideredUse(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (Tier1)
-56 (-10.55 % of base) : 109278.dasm - System.Dynamic.Utils.TypeExtensions:GetAnyStaticMethodValidated(System.Type,System.String,System.Type[]):System.Reflection.MethodInfo (Tier1)
librariestestsnotieredcompilation.run.windows.x86.Release.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 101838360 (overridden on cmd)
Total bytes of diff: 102198209 (overridden on cmd)
Total bytes of delta: 359849 (0.35 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
571 : 59928.dasm (2.43 % of base)
486 : 257938.dasm (5.35 % of base)
486 : 249420.dasm (5.35 % of base)
443 : 11651.dasm (7.85 % of base)
443 : 52369.dasm (7.85 % of base)
443 : 46666.dasm (7.85 % of base)
416 : 55011.dasm (3.86 % of base)
360 : 257920.dasm (5.15 % of base)
360 : 249467.dasm (5.15 % of base)
321 : 21371.dasm (3.63 % of base)
278 : 136425.dasm (7.51 % of base)
278 : 136391.dasm (7.52 % of base)
271 : 216051.dasm (2.94 % of base)
265 : 215891.dasm (3.77 % of base)
265 : 216061.dasm (3.79 % of base)
264 : 271263.dasm (3.56 % of base)
264 : 263175.dasm (3.56 % of base)
254 : 257901.dasm (3.55 % of base)
249 : 215950.dasm (8.83 % of base)
249 : 216006.dasm (8.83 % of base)
Top file improvements (bytes):
-164 : 63922.dasm (-2.84 % of base)
-158 : 17672.dasm (-6.28 % of base)
-139 : 158308.dasm (-7.97 % of base)
-126 : 218836.dasm (-3.58 % of base)
-126 : 199274.dasm (-3.58 % of base)
-112 : 123347.dasm (-1.46 % of base)
-109 : 284213.dasm (-2.89 % of base)
-104 : 134113.dasm (-2.95 % of base)
-97 : 133833.dasm (-2.20 % of base)
-95 : 133825.dasm (-1.95 % of base)
-94 : 133668.dasm (-3.14 % of base)
-93 : 14599.dasm (-1.62 % of base)
-87 : 1983.dasm (-8.97 % of base)
-86 : 147436.dasm (-1.87 % of base)
-81 : 31537.dasm (-1.73 % of base)
-79 : 12905.dasm (-1.65 % of base)
-79 : 63210.dasm (-11.08 % of base)
-73 : 39193.dasm (-2.88 % of base)
-71 : 212130.dasm (-7.46 % of base)
-69 : 207570.dasm (-2.94 % of base)
87 total files with Code Size differences (39 improved, 48 regressed), 20 unchanged.
Top method regressions (bytes):
571 (2.43 % of base) : 59928.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)
486 (5.35 % of base) : 257938.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
486 (5.35 % of base) : 249420.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (FullOpts)
443 (7.85 % of base) : 11651.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
443 (7.85 % of base) : 52369.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
443 (7.85 % of base) : 46666.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckConstantBounds(byte,System.Decimal,byref):ubyte (FullOpts)
416 (3.86 % of base) : 55011.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributesValidator:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.OptionsUsingGeneratedAttributes):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
360 (5.15 % of base) : 257920.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
360 (5.15 % of base) : 249467.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestStructSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestStruct):this (FullOpts)
321 (3.63 % of base) : 21371.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (FullOpts)
278 (7.52 % of base) : 136391.dasm - System.IO.Tests.StringReaderTests+<ReadBlockMemoryAsync_Success>d__20:MoveNext():this (FullOpts)
278 (7.51 % of base) : 136425.dasm - System.IO.Tests.StringReaderTests+<ReadMemoryAsync_Success>d__19:MoveNext():this (FullOpts)
271 (2.94 % of base) : 216051.dasm - System.Tests.DecimalTests_GenericMath:IsIntegerTest() (FullOpts)
265 (3.77 % of base) : 215891.dasm - System.Tests.DecimalTests_GenericMath:IsEvenIntegerTest() (FullOpts)
265 (3.79 % of base) : 216061.dasm - System.Tests.DecimalTests_GenericMath:IsOddIntegerTest() (FullOpts)
264 (3.56 % of base) : 271263.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
264 (3.56 % of base) : 263175.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<DictionaryOfString>d__29:MoveNext():this (FullOpts)
254 (3.55 % of base) : 257901.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:ObjWCtorMixedParamsSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.ObjWCtorMixedParams):this (FullOpts)
249 (8.83 % of base) : 215950.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeNumberTest() (FullOpts)
249 (8.83 % of base) : 216006.dasm - System.Tests.DecimalTests_GenericMath:MinMagnitudeTest() (FullOpts)
Top method improvements (bytes):
-164 (-2.84 % of base) : 63922.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (FullOpts)
-158 (-6.28 % of base) : 17672.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-139 (-7.97 % of base) : 158308.dasm - System.Net.Http.HttpConnection+ChunkedEncodingWriteStream+<<WriteAsync>g__WriteChunkAsync|4_0>d:MoveNext():this (FullOpts)
-126 (-3.58 % of base) : 218836.dasm - System.Tests.StringTests:ZeroLengthTrim_Memory() (FullOpts)
-126 (-3.58 % of base) : 199274.dasm - System.Tests.StringTests:ZeroLengthTrim_Memory() (FullOpts)
-112 (-1.46 % of base) : 123347.dasm - System.Formats.Tar.Tests.TarWriter_WriteEntryAsync_Tests+<Write_TwoEntries_With_UnseekableDataStreams_Async>d__20:MoveNext():this (FullOpts)
-109 (-2.89 % of base) : 284213.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3472_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-104 (-2.95 % of base) : 134113.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<CancellingBeforeAdvance>d__1:MoveNext():this (FullOpts)
-97 (-2.20 % of base) : 133833.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<HelloWorldAcrossTwoBlocks>d__11:MoveNext():this (FullOpts)
-95 (-1.95 % of base) : 133825.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<ReaderShouldNotGetUnflushedBytesWhenOverflowingSegments>d__16:MoveNext():this (FullOpts)
-94 (-3.14 % of base) : 133668.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest+<BufferSegmentsPooledUpToThreshold>d__5:MoveNext():this (FullOpts)
-93 (-1.62 % of base) : 14599.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
-87 (-8.97 % of base) : 1983.dasm - System.Xml.XmlWellFormedWriter:AddAttribute(System.String,System.String,System.String):this (FullOpts)
-86 (-1.87 % of base) : 147436.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,int,ubyte):System.Object (FullOpts)
-81 (-1.73 % of base) : 31537.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAsOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
-79 (-1.65 % of base) : 12905.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:BetterFunctionMember[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],ubyte,byref):int:this (FullOpts)
-79 (-11.08 % of base) : 63210.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
-73 (-2.88 % of base) : 39193.dasm - Castle.DynamicProxy.Generators.InvocationTypeGenerator:ImplementInvokeMethodOnTarget(Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter,System.Reflection.ParameterInfo[],Castle.DynamicProxy.Generators.Emitters.MethodEmitter,Castle.DynamicProxy.Generators.Emitters.SimpleAST.Reference):this (FullOpts)
-71 (-7.46 % of base) : 212130.dasm - System.Tests.GetCustomAttribute:PositiveTest8() (FullOpts)
-69 (-2.94 % of base) : 207570.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
Top method regressions (percentages):
19 (59.38 % of base) : 147579.dasm - System.Management.ManagementClassGenerator:isTypeInt(int):ubyte (FullOpts)
17 (33.33 % of base) : 5376.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
30 (27.78 % of base) : 159030.dasm - System.Net.Mail.DataStopCommand:CheckResponse(int,System.String) (FullOpts)
14 (27.45 % of base) : 49650.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
14 (27.45 % of base) : 43950.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetReferencedAssemblySymbol(Microsoft.CodeAnalysis.MetadataReference):System.__Canon:this (FullOpts)
45 (24.06 % of base) : 265673.dasm - System.Text.Json.Utf8JsonReader:FindLineSeparator(System.ReadOnlySpan`1[ubyte]):int:this (FullOpts)
39 (21.55 % of base) : 149737.dasm - System.SpanTests.ReplaceTests`1+<>c__DisplayClass5_0[System.__Canon]:<ArgumentValidation_Copy>b__1():this (FullOpts)
29 (20.14 % of base) : 22207.dasm - System.Xml.Linq.XElement:GetNamespaceOfPrefixInScope(System.String,System.Xml.Linq.XElement):System.String:this (FullOpts)
20 (20.00 % of base) : 159018.dasm - System.Net.Mail.MailCommand:CheckResponse(int,System.String) (FullOpts)
49 (19.52 % of base) : 21151.dasm - System.Net.Sockets.SocketAsyncEventArgs:<CompleteCore>g__CleanupIOCPResult|168_0():this (FullOpts)
41 (18.81 % of base) : 134441.dasm - System.IO.Pipes.PipeStream+PipeValueTaskSource:ReleaseResources():this (FullOpts)
240 (18.74 % of base) : 214490.dasm - System.Tests.TimeZoneInfoTests:GetAmbiguousTimeOffsets_LocalAmbiguousOffsets() (FullOpts)
74 (18.00 % of base) : 219512.dasm - System.Tests.StringTests:IndexerUsingRangeTest() (FullOpts)
74 (18.00 % of base) : 198999.dasm - System.Tests.StringTests:IndexerUsingRangeTest() (FullOpts)
74 (18.00 % of base) : 218756.dasm - System.Tests.StringTests:SubstringUsingRangeTest() (FullOpts)
74 (18.00 % of base) : 198213.dasm - System.Tests.StringTests:SubstringUsingRangeTest() (FullOpts)
17 (17.00 % of base) : 159023.dasm - System.Net.Mail.DataCommand:CheckResponse(int,System.String) (FullOpts)
6 (16.67 % of base) : 150679.dasm - System.SpanTests.SpanTests+<>c__DisplayClass651_0:<SliceIntRangeChecksd>b__5():this (FullOpts)
39 (16.25 % of base) : 74734.dasm - System.Collections.Tests.StackTests+<>c:<Clone_IsShallowCopy>b__9_0(System.Collections.Stack):this (FullOpts)
27 (15.08 % of base) : 228069.dasm - System.Security.Cryptography.Pkcs.SignerInfo:FindAttributeIndexByOid(System.Security.Cryptography.Asn1.AttributeAsn[],System.Security.Cryptography.Oid,int):int (FullOpts)
Top method improvements (percentages):
-41 (-15.41 % of base) : 254405.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
-56 (-15.34 % of base) : 205015.dasm - System.Runtime.Serialization.XsdDataContractImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
-56 (-15.22 % of base) : 204863.dasm - System.Runtime.Serialization.SchemaImporter:ImportAnnotation(System.Xml.Schema.XmlSchemaAnnotation,System.Xml.XmlQualifiedName):System.Xml.XmlElement (FullOpts)
-28 (-15.14 % of base) : 236674.dasm - System.Security.Cryptography.Xml.Utils:HasNamespace(System.Xml.XmlElement,System.String,System.String):ubyte (FullOpts)
-43 (-13.23 % of base) : 34472.dasm - System.Xml.XmlAttributeCollection:get_ItemOf(System.String,System.String):System.Xml.XmlAttribute:this (FullOpts)
-30 (-13.10 % of base) : 277555.dasm - System.Text.RegularExpressions.RegexCharClass:IsUnicodeCategoryOfSmallCharCount(System.String,byref,byref,byref):ubyte (FullOpts)
-9 (-12.86 % of base) : 278170.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
-9 (-12.86 % of base) : 5628.dasm - System.Text.RegularExpressions.RegexCharClass:ParticipatesInCaseConversion(int):ubyte (FullOpts)
-43 (-12.65 % of base) : 179899.dasm - System.Xml.XmlAttributeCollection:FindNodeOffsetNS(System.Xml.XmlAttribute):int:this (FullOpts)
-41 (-12.02 % of base) : 100401.dasm - System.Diagnostics.DiagnosticSourceEventSource+FilterAndTransform:Sample(System.String,System.String,System.Diagnostics.DiagnosticSourceEventSource):int (FullOpts)
-40 (-11.80 % of base) : 100301.dasm - System.Diagnostics.ActivityLink:Equals(System.Object):ubyte:this (FullOpts)
-32 (-11.19 % of base) : 94645.dasm - System.Xml.Schema.XmlSchemaSet:Schemas(System.String):System.Collections.ICollection:this (FullOpts)
-36 (-11.18 % of base) : 100670.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c__DisplayClass9_1:<TestActivityCreationProperties>b__7(System.Diagnostics.ActivityLink):ubyte:this (FullOpts)
-79 (-11.08 % of base) : 63210.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts)
-28 (-11.02 % of base) : 94689.dasm - System.Data.DataSet:set_Prefix(System.String):this (FullOpts)
-12 (-10.26 % of base) : 7971.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager:HasCustomTag(System.Collections.Immutable.ImmutableArray`1[System.String],System.String):ubyte (FullOpts)
-24 (-10.17 % of base) : 11888.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitBinaryOperatorChildren(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
-30 (-10.00 % of base) : 301300.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31902_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-30 (-10.00 % of base) : 301305.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31907_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
-26 (-9.92 % of base) : 96331.dasm - System.Xml.XmlNamedNodeMap:FindNodeOffset(System.String,System.String):int:this (FullOpts)
realworld.run.windows.x86.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 11362130 (overridden on cmd)
Total bytes of diff: 11363410 (overridden on cmd)
Total bytes of delta: 1280 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
108 : 4504.dasm (57.75 % of base)
102 : 34808.dasm (1.82 % of base)
84 : 14676.dasm (1.21 % of base)
64 : 1846.dasm (1.17 % of base)
60 : 16268.dasm (1.92 % of base)
60 : 5864.dasm (5.64 % of base)
47 : 8700.dasm (4.95 % of base)
40 : 9263.dasm (2.54 % of base)
39 : 15257.dasm (3.69 % of base)
37 : 28959.dasm (14.51 % of base)
34 : 1547.dasm (4.61 % of base)
30 : 27318.dasm (2.17 % of base)
30 : 23979.dasm (0.98 % of base)
28 : 20643.dasm (1.32 % of base)
28 : 21202.dasm (0.57 % of base)
25 : 25966.dasm (5.34 % of base)
23 : 20360.dasm (1.12 % of base)
22 : 7027.dasm (1.66 % of base)
22 : 16339.dasm (1.94 % of base)
21 : 14674.dasm (0.31 % of base)
Top file improvements (bytes):
-41 : 20750.dasm (-0.96 % of base)
-19 : 15564.dasm (-0.43 % of base)
-13 : 1703.dasm (-0.57 % of base)
-11 : 35758.dasm (-1.63 % of base)
-11 : 14002.dasm (-1.52 % of base)
-10 : 16421.dasm (-0.61 % of base)
-10 : 33970.dasm (-0.73 % of base)
-9 : 14749.dasm (-0.74 % of base)
-9 : 34455.dasm (-0.43 % of base)
-8 : 20587.dasm (-0.70 % of base)
-8 : 3154.dasm (-0.26 % of base)
-7 : 14315.dasm (-1.04 % of base)
-7 : 35269.dasm (-0.03 % of base)
-7 : 2181.dasm (-0.94 % of base)
-7 : 283.dasm (-1.13 % of base)
-6 : 1777.dasm (-0.91 % of base)
-6 : 1848.dasm (-0.47 % of base)
-6 : 19927.dasm (-1.10 % of base)
-6 : 32211.dasm (-0.63 % of base)
-6 : 18998.dasm (-0.41 % of base)
66 total files with Code Size differences (32 improved, 34 regressed), 20 unchanged.
Top method regressions (bytes):
108 (57.75 % of base) : 4504.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
102 (1.82 % of base) : 34808.dasm - Microsoft.ApplicationInsights.Metrics.MetricIdentifier:EnsureDimensionNamesValid(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
84 (1.21 % of base) : 14676.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator+RowOperationWrapper`2[SixLabors.ImageSharp.Processing.Processors.Convolution.Convolution2PassProcessor`1+HorizontalConvolutionRowOperation[SixLabors.ImageSharp.PixelFormats.Rgba32],System.Numerics.Vector4]:Invoke(int):this (FullOpts)
64 (1.17 % of base) : 1846.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
60 (5.64 % of base) : 5864.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
60 (1.92 % of base) : 16268.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:CheckConvergence(Microsoft.ML.Runtime.IProgressChannel,int,Microsoft.ML.Trainers.FloatLabelCursor+Factory,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],Microsoft.ML.Data.VBuffer`1[float][],Microsoft.ML.Data.VBuffer`1[float][],float[],float[],float[],float[],long,double[],byref,byref):ubyte:this (FullOpts)
47 (4.95 % of base) : 8700.dasm - FSharp.Compiler.NameResolution:AddResults[System.__Canon](Internal.Utilities.Library.ResultOrException`1[System.__Canon],Internal.Utilities.Library.ResultOrException`1[System.__Canon]):Internal.Utilities.Library.ResultOrException`1[System.__Canon] (FullOpts)
40 (2.54 % of base) : 9263.dasm - FSharp.Compiler.ConstraintSolver:consistent@1992(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.Import+ImportMap,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+TyparConstraint,FSharp.Compiler.TypedTree+TyparConstraint):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
39 (3.69 % of base) : 15257.dasm - Microsoft.ML.SchemaShape:Create(Microsoft.ML.DataViewSchema):Microsoft.ML.SchemaShape (FullOpts)
37 (14.51 % of base) : 28959.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
34 (4.61 % of base) : 1547.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
30 (2.17 % of base) : 27318.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:GetRefEscape(Microsoft.CodeAnalysis.CSharp.BoundExpression,uint):uint:this (FullOpts)
30 (0.98 % of base) : 23979.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (FullOpts)
28 (0.57 % of base) : 21202.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
28 (1.32 % of base) : 20643.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (FullOpts)
25 (5.34 % of base) : 25966.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
23 (1.12 % of base) : 20360.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
22 (1.66 % of base) : 7027.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadConstant(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+HasConstantTag]):FSharp.Compiler.AbstractIL.IL+ILFieldInit (FullOpts)
22 (1.94 % of base) : 16339.dasm - Microsoft.ML.Data.EvaluatorBase`1[System.__Canon]:ProcessData(Microsoft.ML.IDataView,Microsoft.ML.Data.RoleMappedSchema,System.Func`2[int,ubyte],System.__Canon,System.__Canon[]):System.Collections.Generic.Dictionary`2[System.String,Microsoft.ML.IDataView]:this (FullOpts)
21 (0.31 % of base) : 14674.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator:IterateRows[SixLabors.ImageSharp.Processing.Processors.Convolution.Convolution2PassProcessor`1+HorizontalConvolutionRowOperation[SixLabors.ImageSharp.PixelFormats.Rgba32],System.Numerics.Vector4](SixLabors.ImageSharp.Rectangle,byref,byref) (FullOpts)
Top method improvements (bytes):
-41 (-0.96 % of base) : 20750.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
-19 (-0.43 % of base) : 15564.dasm - Microsoft.ML.Transforms.Text.NgramExtractingTransformer:Train(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.Text.NgramExtractingEstimator+ColumnOptions[],System.Collections.Immutable.ImmutableArray`1[Microsoft.ML.Transforms.Text.NgramExtractingTransformer+TransformInfo],Microsoft.ML.IDataView,byref):Microsoft.ML.Internal.Utilities.SequencePool[] (FullOpts)
-13 (-0.57 % of base) : 1703.dasm - System.Uri:GetCanonicalPath(byref,int):this (FullOpts)
-11 (-1.52 % of base) : 14002.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
-11 (-1.63 % of base) : 35758.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
-10 (-0.61 % of base) : 16421.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionMatrix(Microsoft.ML.Runtime.IHost,Microsoft.ML.IDataView,ubyte,int,ubyte):Microsoft.ML.Data.ConfusionMatrix (FullOpts)
-10 (-0.73 % of base) : 33970.dasm - System.Dynamic.DynamicMetaObjectBinder:Bind(System.Object[],System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression],System.Linq.Expressions.LabelTarget):System.Linq.Expressions.Expression:this (FullOpts)
-9 (-0.43 % of base) : 34455.dasm - System.Linq.Expressions.Expression:Switch(System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.SwitchCase]):System.Linq.Expressions.SwitchExpression (FullOpts)
-9 (-0.74 % of base) : 14749.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
-8 (-0.26 % of base) : 3154.dasm - FSharp.Compiler.CompilerImports:TcConfig.TryResolveLibsUsingMSBuildRules.Static(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference],FSharp.Compiler.Text.Range,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]] (FullOpts)
-8 (-0.70 % of base) : 20587.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeNamespaceNamesOrThrow(System.Collections.Generic.Dictionary`2[System.String,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.Reflection.Metadata.TypeDefinitionHandle]]):this (FullOpts)
-7 (-0.03 % of base) : 35269.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)
-7 (-1.04 % of base) : 14315.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
-7 (-0.94 % of base) : 2181.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
-7 (-1.13 % of base) : 283.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
-6 (-0.41 % of base) : 18998.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddSkippedSyntax(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken,Microsoft.CodeAnalysis.GreenNode,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
-6 (-1.10 % of base) : 19927.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,uint]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,uint][],int):this (FullOpts)
-6 (-0.63 % of base) : 32211.dasm - System.Linq.Expressions.Expression:ValidateLambdaArgs(System.Type,byref,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression],System.String) (FullOpts)
-6 (-0.91 % of base) : 1777.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (FullOpts)
-6 (-0.47 % of base) : 1848.dasm - System.Xml.XmlTextReaderImpl:ParseQName(ubyte,int,byref):int:this (FullOpts)
Top method regressions (percentages):
108 (57.75 % of base) : 4504.dasm - FSharp.Compiler.LexFilter:tokenForcesHeadContextClosure@1347(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.Parser+token,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):ubyte (FullOpts)
18 (32.73 % of base) : 10043.dasm - FSharp.Compiler.Infos+PropInfo:get_IsFSharpEventProperty():ubyte:this (FullOpts)
37 (14.51 % of base) : 28959.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConversionToEnumUnderlyingType(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
14 (10.94 % of base) : 25019.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
14 (10.69 % of base) : 26027.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this (FullOpts)
14 (9.86 % of base) : 26886.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:ResolveBranches(Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,Microsoft.CodeAnalysis.CSharp.BoundStatement):ubyte:this (FullOpts)
14 (6.60 % of base) : 17033.dasm - System.Uri:get_HostNameType():int:this (FullOpts)
10 (6.13 % of base) : 4790.dasm - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.Add(System.Object):int:this (FullOpts)
60 (5.64 % of base) : 5864.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:GenericCompare(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Object,System.Object):int (FullOpts)
5 (5.43 % of base) : 23998.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AttributeDataExtensions:DecodeNotNullIfNotNullAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.String (FullOpts)
25 (5.34 % of base) : 25966.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddDelegateOperation(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature]):this (FullOpts)
47 (4.95 % of base) : 8700.dasm - FSharp.Compiler.NameResolution:AddResults[System.__Canon](Internal.Utilities.Library.ResultOrException`1[System.__Canon],Internal.Utilities.Library.ResultOrException`1[System.__Canon]):Internal.Utilities.Library.ResultOrException`1[System.__Canon] (FullOpts)
6 (4.92 % of base) : 30238.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+PatternLocalRewriter:<RewriteTupleInput>g__makeReplacement|17_1(Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode]):Microsoft.CodeAnalysis.CSharp.BoundDecisionDagNode (FullOpts)
5 (4.72 % of base) : 23825.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:DecodeMaybeNullWhenOrNotNullWhenOrDoesNotReturnIfAttribute(Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData):System.Nullable`1[ubyte] (FullOpts)
34 (4.61 % of base) : 1547.dasm - BepuUtilities.Collections.QuickSort:Sort[BepuPhysics.CollisionDetection.TypeBatchIndex,BepuPhysics.CollisionDetection.ConstraintRemover+RemovalsForTypeBatch,BepuPhysics.CollisionDetection.ConstraintRemover+TypeBatchIndexComparer](byref,byref,int,int,byref) (FullOpts)
18 (4.29 % of base) : 32462.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetHiveRoot(System.String):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
7 (4.19 % of base) : 22256.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__buildDeclaredMembersAndInitializers|169_1(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (FullOpts)
16 (4.01 % of base) : 34079.dasm - System.Management.Automation.PSMethod:GetMethodGroupType(System.Reflection.MethodInfo):System.Type (FullOpts)
14 (3.94 % of base) : 21511.dasm - Microsoft.CodeAnalysis.AttributeData:DecodeAttributeUsageAttribute(Microsoft.CodeAnalysis.TypedConstant,System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[System.String,Microsoft.CodeAnalysis.TypedConstant]]):Microsoft.CodeAnalysis.AttributeUsageInfo (FullOpts)
39 (3.69 % of base) : 15257.dasm - Microsoft.ML.SchemaShape:Create(Microsoft.ML.DataViewSchema):Microsoft.ML.SchemaShape (FullOpts)
Top method improvements (percentages):
-4 (-2.06 % of base) : 5655.dasm - FSharp.Compiler.CompilerImports:OpenILBinary(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag,Microsoft.FSharp.Core.FSharpOption`1[System.String],ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,int,int]]]):FSharp.Compiler.AbstractIL.ILBinaryReader+ILModuleReader (FullOpts)
-2 (-1.90 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
-2 (-1.90 % of base) : 20013.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.89 % of base) : 3117.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.82 % of base) : 15348.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
-2 (-1.75 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-2 (-1.68 % of base) : 4540.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
-2 (-1.65 % of base) : 25873.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
-11 (-1.63 % of base) : 35758.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
-11 (-1.52 % of base) : 14002.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.__Canon]:TryInsert(ubyte,System.__Canon,ubyte):ubyte:this (FullOpts)
-2 (-1.33 % of base) : 26590.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:IsReceiverRefReadOnly(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte (FullOpts)
-2 (-1.31 % of base) : 35063.dasm - System.Collections.Hashtable+HashtableEnumerator:MoveNext():ubyte:this (FullOpts)
-7 (-1.13 % of base) : 283.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.ReadOnlySpan`1[System.String],System.String):System.Type:this (FullOpts)
-2 (-1.12 % of base) : 26969.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
-6 (-1.10 % of base) : 19927.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,uint]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,uint][],int):this (FullOpts)
-7 (-1.04 % of base) : 14315.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
-41 (-0.96 % of base) : 20750.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
-7 (-0.94 % of base) : 2181.dasm - System.Collections.Generic.Dictionary`2[int,ubyte]:TryInsert(int,ubyte,ubyte):ubyte:this (FullOpts)
-6 (-0.91 % of base) : 1777.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this (FullOpts)
-2 (-0.79 % of base) : 7402.dasm - FSharp.Compiler.CompilerConfig:GetWarningNumber(FSharp.Compiler.Text.Range,System.String):Microsoft.FSharp.Core.FSharpOption`1[int] (FullOpts)