Assembly Diffs

linux arm64

Diffs are based on 2,533,745 contexts (1,007,248 MinOpts, 1,526,497 FullOpts).

MISSED contexts: 3 (0.00%)

Overall (-4 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch 518,962,008 -4
libraries_tests.run.linux.arm64.Release.mch 381,002,252 +0

FullOpts (-4 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.arm64.checked.mch 167,095,208 -4
libraries_tests.run.linux.arm64.Release.mch 166,087,844 +0

Example diffs

coreclr_tests.run.linux.arm64.checked.mch

-4 (-1.32%) : 255019.dasm - AssignJagged:LoadAssign(int[][]) (Tier1-OSR)

@@ -63,35 +63,31 @@ G_M35678_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre movk w7, #15 LSL #16 movz w8, #0xD1FFAB1E movk w8, #76 LSL #16
- b G_M35678_IG04 - ;; size=56 bbWeight=1 PerfScore 10.00 -G_M35678_IG03: ; bbWeight=0.99, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref - mov w1, wzr - ;; size=4 bbWeight=0.99 PerfScore 0.49 -G_M35678_IG04: ; bbWeight=0.99, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref, isz
+ ;; size=52 bbWeight=1 PerfScore 9.00 +G_M35678_IG03: ; bbWeight=0.99, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref, isz
cmp w1, #101
- bge G_M35678_IG09
+ bge G_M35678_IG08
;; size=8 bbWeight=0.99 PerfScore 1.48
-G_M35678_IG05: ; bbWeight=0.98, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref
+G_M35678_IG04: ; bbWeight=0.98, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref
ldr w9, [x0, #0x08] mov w10, w2 ;; size=8 bbWeight=0.98 PerfScore 3.41
-G_M35678_IG06: ; bbWeight=99.01, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref, isz
+G_M35678_IG05: ; bbWeight=99.01, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref, isz
cmp w2, w9
- bhs G_M35678_IG10
+ bhs G_M35678_IG09
ldr x11, [x3, x10, LSL #3] ; gcrRegs +[x11] mov x13, x4 ; gcrRegs +[x13] ldr w14, [x13, #0x08] cmp w14, #0
- bls G_M35678_IG10
+ bls G_M35678_IG09
ldr w13, [x13, #0x10] ; gcrRegs -[x13] mov x12, x4 ; gcrRegs +[x12] cmp w14, #1
- bls G_M35678_IG10
+ bls G_M35678_IG09
ldr w14, [x12, #0x14] mul w14, w14, w6 madd w14, w13, w5, w14 @@ -119,15 +115,15 @@ G_M35678_IG06: ; bbWeight=99.01, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 { ; gcrRegs -[x12] add w13, w12, w13, LSR #31 msub w13, w13, w8, w14
- tbz w13, #31, G_M35678_IG08
+ tbz w13, #31, G_M35678_IG07
;; size=136 bbWeight=99.01 PerfScore 4158.62
-G_M35678_IG07: ; bbWeight=49.02, gcrefRegs=0811 {x0 x4 x11}, byrefRegs=0008 {x3}, byref
+G_M35678_IG06: ; bbWeight=49.02, gcrefRegs=0811 {x0 x4 x11}, byrefRegs=0008 {x3}, byref
neg w13, w13 ;; size=4 bbWeight=49.02 PerfScore 24.51
-G_M35678_IG08: ; bbWeight=99.01, gcrefRegs=0811 {x0 x4 x11}, byrefRegs=0008 {x3}, byref, isz
+G_M35678_IG07: ; bbWeight=99.01, gcrefRegs=0811 {x0 x4 x11}, byrefRegs=0008 {x3}, byref, isz
ldr w14, [x11, #0x08] cmp w1, w14
- bhs G_M35678_IG10
+ bhs G_M35678_IG09
add x11, x11, #16 ; gcrRegs -[x11] ; byrRegs +[x11] @@ -135,29 +131,30 @@ G_M35678_IG08: ; bbWeight=99.01, gcrefRegs=0811 {x0 x4 x11}, byrefRegs=00 add w1, w1, #1 sxth w1, w1 cmp w1, #101
- blt G_M35678_IG06
+ blt G_M35678_IG05
;; size=36 bbWeight=99.01 PerfScore 841.63
-G_M35678_IG09: ; bbWeight=0.99, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref, isz
+G_M35678_IG08: ; bbWeight=0.99, gcrefRegs=0011 {x0 x4}, byrefRegs=0008 {x3}, byref, isz
; byrRegs -[x11] add w2, w2, #1 sxth w2, w2 cmp w2, #101
- bge G_M35678_IG11
+ bge G_M35678_IG10 + mov w1, wzr
b G_M35678_IG03
- ;; size=20 bbWeight=0.99 PerfScore 3.45 -G_M35678_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=0.99 PerfScore 3.94 +G_M35678_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x4] ; byrRegs -[x3] bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35678_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M35678_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10 add sp, sp, #64 ret lr ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 304, prolog size 16, PerfScore 5049.09, instruction count 76, allocated bytes for code 304 (MethodHash=0d8974a1) for method AssignJagged:LoadAssign(int[][]) (Tier1-OSR)
+; Total bytes of code 300, prolog size 16, PerfScore 5048.09, instruction count 75, allocated bytes for code 300 (MethodHash=0d8974a1) for method AssignJagged:LoadAssign(int[][]) (Tier1-OSR)
; ============================================================ Unwind Info: @@ -168,7 +165,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 76 (0x0004c) Actual length = 304 (0x000130)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.linux.arm64.Release.mch

+0 (0.00%) : 93018.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)

@@ -113,18 +113,14 @@ G_M60245_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=44 bbWeight=1 PerfScore 8.50 G_M60245_IG02: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref mov w23, #1
- b G_M60245_IG04 - ;; size=8 bbWeight=1 PerfScore 1.50 -G_M60245_IG03: ; bbWeight=0.09, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref - add w23, w23, #1 - ;; size=4 bbWeight=0.09 PerfScore 0.04 -G_M60245_IG04: ; bbWeight=0.09, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 0.50 +G_M60245_IG03: ; bbWeight=0.09, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldp w0, w1, [x19, #0x38] add w0, w0, w23 cmp w0, w1
- blt G_M60245_IG06
+ blt G_M60245_IG05
;; size=16 bbWeight=0.09 PerfScore 0.44
-G_M60245_IG05: ; bbWeight=1.33, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG04: ; bbWeight=1.33, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -137,12 +133,12 @@ G_M60245_IG05: ; bbWeight=1.33, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldp w0, w1, [x19, #0x38] add w0, w0, w23 cmp w0, w1
- bge G_M60245_IG05
+ bge G_M60245_IG04
;; size=40 bbWeight=1.33 PerfScore 14.64
-G_M60245_IG06: ; bbWeight=1.09, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG05: ; bbWeight=1.09, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M60245_IG59
+ cbnz x0, G_M60245_IG61
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w24, w1, w23 @@ -155,20 +151,20 @@ G_M60245_IG06: ; bbWeight=1.09, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=48 bbWeight=1.09 PerfScore 21.75
-G_M60245_IG07: ; bbWeight=1.09, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG06: ; bbWeight=1.09, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E ; gcrRegs -[x1] cmp w0, w1
- beq G_M60245_IG03
+ beq G_M60245_IG46
;; size=16 bbWeight=1.09 PerfScore 5.44
-G_M60245_IG08: ; bbWeight=1.00, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG07: ; bbWeight=1.00, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr w0, [x19, #0x3C] cmp w24, w0
- blt G_M60245_IG10
+ blt G_M60245_IG09
;; size=12 bbWeight=1.00 PerfScore 4.50
-G_M60245_IG09: ; bbWeight=0.22, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG08: ; bbWeight=0.22, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -181,12 +177,12 @@ G_M60245_IG09: ; bbWeight=0.22, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldp w0, w1, [x19, #0x38] add w0, w0, w23 cmp w0, w1
- bge G_M60245_IG09
+ bge G_M60245_IG08
;; size=40 bbWeight=0.22 PerfScore 2.47
-G_M60245_IG10: ; bbWeight=1.00, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG09: ; bbWeight=1.00, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M60245_IG60
+ cbnz x0, G_M60245_IG47
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w1, w1, w23 @@ -198,7 +194,7 @@ G_M60245_IG10: ; bbWeight=1.00, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=44 bbWeight=1.00 PerfScore 19.50
-G_M60245_IG11: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG10: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E @@ -227,9 +223,9 @@ G_M60245_IG11: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300 movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- beq G_M60245_IG27
+ beq G_M60245_IG26
;; size=88 bbWeight=1 PerfScore 25.00
-G_M60245_IG12: ; bbWeight=0.64, gcrefRegs=4480001 {x0 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG11: ; bbWeight=0.64, gcrefRegs=4480001 {x0 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
ldr x1, [x0] ldr x1, [x1, #0x68] ldr x1, [x1, #0x28] @@ -238,7 +234,7 @@ G_M60245_IG12: ; bbWeight=0.64, gcrefRegs=4480001 {x0 x19 x22 x26}, byref mov x15, x0 ; gcrRegs +[x15] ;; size=20 bbWeight=0.64 PerfScore 6.72
-G_M60245_IG13: ; bbWeight=1.00, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG12: ; bbWeight=1.00, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0] add x14, x19, #32 ; byrRegs +[x14] @@ -248,9 +244,9 @@ G_M60245_IG13: ; bbWeight=1.00, gcrefRegs=4488000 {x15 x19 x22 x26}, byre str xzr, [x19, #0x10] ldr x14, [x19, #0x28] ; gcrRegs +[x14]
- cbnz x14, G_M60245_IG61
+ cbnz x14, G_M60245_IG59
;; size=20 bbWeight=1.00 PerfScore 6.50
-G_M60245_IG14: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG13: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
; gcrRegs -[x14] ldr w14, [x19, #0x38] add w14, w14, #1 @@ -258,7 +254,7 @@ G_M60245_IG14: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=3 mov x15, x26 ; gcrRegs +[x15] ;; size=16 bbWeight=1 PerfScore 5.00
-G_M60245_IG15: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG14: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x26] mov x14, x20 ; byrRegs +[x14] @@ -281,28 +277,28 @@ G_M60245_IG15: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=30 blr x1 ; gcr arg pop 0 cmp w23, w0
- blt G_M60245_IG47
+ blt G_M60245_IG60
;; size=56 bbWeight=1 PerfScore 21.00
-G_M60245_IG16: ; bbWeight=1.00, gcrefRegs=8480000 {x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG15: ; bbWeight=1.00, gcrefRegs=8480000 {x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref
; gcrRegs -[x28] mov x1, xzr ; gcrRegs +[x1] ;; size=4 bbWeight=1.00 PerfScore 0.50
-G_M60245_IG17: ; bbWeight=1.00, gcrefRegs=8480002 {x1 x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG16: ; bbWeight=1.00, gcrefRegs=8480002 {x1 x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref, isz
cbnz x1, G_M60245_IG49 mov x15, x27 ; gcrRegs +[x15] ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M60245_IG18: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG17: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x1 x27] mov x14, x20 ; byrRegs +[x14] bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14 x20]
- cbnz w25, G_M60245_IG34
+ cbnz w25, G_M60245_IG33
;; size=12 bbWeight=1 PerfScore 2.50
-G_M60245_IG19: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref
+G_M60245_IG18: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgument():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax:this @@ -323,7 +319,7 @@ G_M60245_IG19: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=200 ; gcrRegs -[x0-x1] ; gcr arg pop 0 ;; size=56 bbWeight=0.72 PerfScore 11.24
-G_M60245_IG20: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG19: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -336,9 +332,9 @@ G_M60245_IG20: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=200 ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- bne G_M60245_IG33
+ bne G_M60245_IG32
;; size=40 bbWeight=1.03 PerfScore 11.34
-G_M60245_IG21: ; bbWeight=0.72, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG20: ; bbWeight=0.72, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x22] mov x0, x19 ; gcrRegs +[x0] @@ -362,16 +358,16 @@ G_M60245_IG21: ; bbWeight=0.72, gcrefRegs=80000 {x19}, byrefRegs=200000 { movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- beq G_M60245_IG36
+ beq G_M60245_IG35
;; size=72 bbWeight=0.72 PerfScore 14.86
-G_M60245_IG22: ; bbWeight=0.46, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref
+G_M60245_IG21: ; bbWeight=0.46, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref
ldr x1, [x0] ldr x1, [x1, #0x68] ldr x1, [x1, #0x28] blr x1 ; gcr arg pop 0 ;; size=16 bbWeight=0.46 PerfScore 4.64
-G_M60245_IG23: ; bbWeight=0.72, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG22: ; bbWeight=0.72, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref, isz
add x14, x19, #32 ; byrRegs +[x14] mov x15, x0 @@ -384,7 +380,7 @@ G_M60245_IG23: ; bbWeight=0.72, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs ; gcrRegs +[x14] cbnz x14, G_M60245_IG56 ;; size=24 bbWeight=0.72 PerfScore 5.07
-G_M60245_IG24: ; bbWeight=0.72, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
+G_M60245_IG23: ; bbWeight=0.72, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
; gcrRegs -[x14] ldr w14, [x19, #0x38] add w14, w14, #1 @@ -392,7 +388,7 @@ G_M60245_IG24: ; bbWeight=0.72, gcrefRegs=1080000 {x19 x24}, byrefRegs=20 mov x15, x24 ; gcrRegs +[x15] ;; size=16 bbWeight=0.72 PerfScore 3.62
-G_M60245_IG25: ; bbWeight=0.72, gcrefRegs=8000 {x15}, byrefRegs=200000 {x21}, byref
+G_M60245_IG24: ; bbWeight=0.72, gcrefRegs=8000 {x15}, byrefRegs=200000 {x21}, byref
; gcrRegs -[x19 x24] mov x14, x21 ; byrRegs +[x14] @@ -400,7 +396,7 @@ G_M60245_IG25: ; bbWeight=0.72, gcrefRegs=8000 {x15}, byrefRegs=200000 {x ; gcrRegs -[x15] ; byrRegs -[x14 x21] ;; size=8 bbWeight=0.72 PerfScore 1.09
-G_M60245_IG26: ; bbWeight=0.72, epilog, nogc, extend
+G_M60245_IG25: ; bbWeight=0.72, epilog, nogc, extend
ldp x27, x28, [sp, #0x50] ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] @@ -409,14 +405,14 @@ G_M60245_IG26: ; bbWeight=0.72, epilog, nogc, extend ldp fp, lr, [sp], #0x60 ret lr ;; size=28 bbWeight=0.72 PerfScore 5.07
-G_M60245_IG27: ; bbWeight=0.36, gcVars=0000000000000000 {}, gcrefRegs=4480001 {x0 x19 x22 x26}, byrefRegs=300000 {x20 x21}, gcvars, byref
+G_M60245_IG26: ; bbWeight=0.36, gcVars=0000000000000000 {}, gcrefRegs=4480001 {x0 x19 x22 x26}, byrefRegs=300000 {x20 x21}, gcvars, byref
; gcrRegs +[x0 x19 x22 x26] ; byrRegs +[x20-x21] ldr x15, [x0, #0x18] ; gcrRegs +[x15]
- b G_M60245_IG13
+ b G_M60245_IG12
;; size=8 bbWeight=0.36 PerfScore 1.44
-G_M60245_IG28: ; bbWeight=0.31, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG27: ; bbWeight=0.31, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
...

+0 (0.00%) : 61055.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)

@@ -105,18 +105,14 @@ G_M60245_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=44 bbWeight=1 PerfScore 8.50 G_M60245_IG02: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref mov w23, #1
- b G_M60245_IG04 - ;; size=8 bbWeight=1 PerfScore 1.50 -G_M60245_IG03: ; bbWeight=0.03, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref - add w23, w23, #1 - ;; size=4 bbWeight=0.03 PerfScore 0.02 -G_M60245_IG04: ; bbWeight=0.03, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 0.50 +G_M60245_IG03: ; bbWeight=0.03, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldp w0, w1, [x19, #0x38] add w0, w0, w23 cmp w0, w1
- blt G_M60245_IG06
+ blt G_M60245_IG05
;; size=16 bbWeight=0.03 PerfScore 0.16
-G_M60245_IG05: ; bbWeight=1.29, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG04: ; bbWeight=1.29, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this @@ -129,12 +125,12 @@ G_M60245_IG05: ; bbWeight=1.29, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldp w0, w1, [x19, #0x38] add w0, w0, w23 cmp w0, w1
- bge G_M60245_IG05
+ bge G_M60245_IG04
;; size=40 bbWeight=1.29 PerfScore 14.16
-G_M60245_IG06: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG05: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M60245_IG48
+ cbnz x0, G_M60245_IG50
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w24, w1, w23 @@ -147,20 +143,20 @@ G_M60245_IG06: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=48 bbWeight=1.03 PerfScore 20.64
-G_M60245_IG07: ; bbWeight=1.03, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG06: ; bbWeight=1.03, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E ; gcrRegs -[x1] cmp w0, w1
- beq G_M60245_IG03
+ beq G_M60245_IG38
;; size=16 bbWeight=1.03 PerfScore 5.16
-G_M60245_IG08: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG07: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr w0, [x19, #0x3C] cmp w24, w0
- blt G_M60245_IG10
+ blt G_M60245_IG09
;; size=12 bbWeight=1 PerfScore 4.50
-G_M60245_IG09: ; bbWeight=0.25, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG08: ; bbWeight=0.25, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this @@ -173,12 +169,12 @@ G_M60245_IG09: ; bbWeight=0.25, gcrefRegs=480000 {x19 x22}, byrefRegs=300 ldp w0, w1, [x19, #0x38] add w0, w0, w23 cmp w0, w1
- bge G_M60245_IG09
+ bge G_M60245_IG08
;; size=40 bbWeight=0.25 PerfScore 2.71
-G_M60245_IG10: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG09: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M60245_IG49
+ cbnz x0, G_M60245_IG39
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w1, w1, w23 @@ -190,7 +186,7 @@ G_M60245_IG10: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=44 bbWeight=1 PerfScore 19.50
-G_M60245_IG11: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG10: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E @@ -219,9 +215,9 @@ G_M60245_IG11: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300 movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- beq G_M60245_IG26
+ beq G_M60245_IG25
;; size=88 bbWeight=1 PerfScore 25.00
-G_M60245_IG12: ; bbWeight=0.55, gcrefRegs=4480001 {x0 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG11: ; bbWeight=0.55, gcrefRegs=4480001 {x0 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
ldr x1, [x0] ldr x1, [x1, #0x68] ldr x1, [x1, #0x28] @@ -230,7 +226,7 @@ G_M60245_IG12: ; bbWeight=0.55, gcrefRegs=4480001 {x0 x19 x22 x26}, byref mov x15, x0 ; gcrRegs +[x15] ;; size=20 bbWeight=0.55 PerfScore 5.77
-G_M60245_IG13: ; bbWeight=1, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG12: ; bbWeight=1, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0] add x14, x19, #32 ; byrRegs +[x14] @@ -240,9 +236,9 @@ G_M60245_IG13: ; bbWeight=1, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRe str xzr, [x19, #0x10] ldr x14, [x19, #0x28] ; gcrRegs +[x14]
- cbnz x14, G_M60245_IG50
+ cbnz x14, G_M60245_IG48
;; size=20 bbWeight=1 PerfScore 6.50
-G_M60245_IG14: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG13: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
; gcrRegs -[x14] ldr w14, [x19, #0x38] add w14, w14, #1 @@ -250,7 +246,7 @@ G_M60245_IG14: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=3 mov x15, x26 ; gcrRegs +[x15] ;; size=16 bbWeight=1 PerfScore 5.00
-G_M60245_IG15: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG14: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x26] mov x14, x20 ; byrRegs +[x14] @@ -273,26 +269,26 @@ G_M60245_IG15: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=30 blr x1 ; gcr arg pop 0 cmp w23, w0
- blt G_M60245_IG39
+ blt G_M60245_IG49
mov x1, xzr ; gcrRegs +[x1] ;; size=60 bbWeight=1 PerfScore 21.50
-G_M60245_IG16: ; bbWeight=1, gcrefRegs=8480002 {x1 x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG15: ; bbWeight=1, gcrefRegs=8480002 {x1 x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x28] cbnz x1, G_M60245_IG41 mov x15, x27 ; gcrRegs +[x15] ;; size=8 bbWeight=1 PerfScore 1.50
-G_M60245_IG17: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG16: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x1 x27] mov x14, x20 ; byrRegs +[x14] bl CORINFO_HELP_CHECKED_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14 x20]
- cbnz w25, G_M60245_IG35
+ cbnz w25, G_M60245_IG34
;; size=12 bbWeight=1 PerfScore 2.50
-G_M60245_IG18: ; bbWeight=0.92, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref
+G_M60245_IG17: ; bbWeight=0.92, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgument():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax:this @@ -313,7 +309,7 @@ G_M60245_IG18: ; bbWeight=0.92, gcrefRegs=480000 {x19 x22}, byrefRegs=200 ; gcrRegs -[x0-x1] ; gcr arg pop 0 ;; size=56 bbWeight=0.92 PerfScore 14.24
-G_M60245_IG19: ; bbWeight=1.33, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG18: ; bbWeight=1.33, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -326,9 +322,9 @@ G_M60245_IG19: ; bbWeight=1.33, gcrefRegs=480000 {x19 x22}, byrefRegs=200 ; gcrRegs -[x0] mov w1, #0xD1FFAB1E cmp w0, w1
- bne G_M60245_IG27
+ bne G_M60245_IG26
;; size=40 bbWeight=1.33 PerfScore 14.66
-G_M60245_IG20: ; bbWeight=0.92, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG19: ; bbWeight=0.92, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x22] mov x0, x19 ; gcrRegs +[x0] @@ -352,16 +348,16 @@ G_M60245_IG20: ; bbWeight=0.92, gcrefRegs=80000 {x19}, byrefRegs=200000 { movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- beq G_M60245_IG33
+ beq G_M60245_IG32
;; size=72 bbWeight=0.92 PerfScore 18.84
-G_M60245_IG21: ; bbWeight=0.51, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref
+G_M60245_IG20: ; bbWeight=0.51, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref
ldr x1, [x0] ldr x1, [x1, #0x68] ldr x1, [x1, #0x28] blr x1 ; gcr arg pop 0 ;; size=16 bbWeight=0.51 PerfScore 5.05
-G_M60245_IG22: ; bbWeight=0.92, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG21: ; bbWeight=0.92, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs=200000 {x21}, byref, isz
add x14, x19, #32 ; byrRegs +[x14] mov x15, x0 @@ -374,7 +370,7 @@ G_M60245_IG22: ; bbWeight=0.92, gcrefRegs=1080001 {x0 x19 x24}, byrefRegs ; gcrRegs +[x14] cbnz x14, G_M60245_IG45 ;; size=24 bbWeight=0.92 PerfScore 6.43
-G_M60245_IG23: ; bbWeight=0.92, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
+G_M60245_IG22: ; bbWeight=0.92, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
; gcrRegs -[x14] ldr w14, [x19, #0x38] add w14, w14, #1 @@ -382,7 +378,7 @@ G_M60245_IG23: ; bbWeight=0.92, gcrefRegs=1080000 {x19 x24}, byrefRegs=20 mov x15, x24 ; gcrRegs +[x15] ;; size=16 bbWeight=0.92 PerfScore 4.59
-G_M60245_IG24: ; bbWeight=0.92, gcrefRegs=8000 {x15}, byrefRegs=200000 {x21}, byref
+G_M60245_IG23: ; bbWeight=0.92, gcrefRegs=8000 {x15}, byrefRegs=200000 {x21}, byref
; gcrRegs -[x19 x24] mov x14, x21 ; byrRegs +[x14] @@ -390,7 +386,7 @@ G_M60245_IG24: ; bbWeight=0.92, gcrefRegs=8000 {x15}, byrefRegs=200000 {x ; gcrRegs -[x15] ; byrRegs -[x14 x21] ;; size=8 bbWeight=0.92 PerfScore 1.38
-G_M60245_IG25: ; bbWeight=0.92, epilog, nogc, extend
+G_M60245_IG24: ; bbWeight=0.92, epilog, nogc, extend
ldp x27, x28, [sp, #0x50] ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] @@ -399,14 +395,14 @@ G_M60245_IG25: ; bbWeight=0.92, epilog, nogc, extend ldp fp, lr, [sp], #0x60 ret lr ;; size=28 bbWeight=0.92 PerfScore 6.43
-G_M60245_IG26: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, gcvars, byref
+G_M60245_IG25: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, gcvars, byref
; gcrRegs +[x19 x22 x26] ; byrRegs +[x20-x21] mov x15, xzr ; gcrRegs +[x15]
- b G_M60245_IG13
+ b G_M60245_IG12
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M60245_IG27: ; bbWeight=0.41, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG26: ; bbWeight=0.41, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x15 x26] ; byrRegs -[x20] mov x0, x19 ...

+0 (0.00%) : 93019.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)

@@ -40,18 +40,14 @@ G_M28701_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=20 bbWeight=1 PerfScore 4.00 G_M28701_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov w20, #1
- b G_M28701_IG04 - ;; size=8 bbWeight=1 PerfScore 1.50 -G_M28701_IG03: ; bbWeight=0.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - add w20, w20, #1 - ;; size=4 bbWeight=0.09 PerfScore 0.04 -G_M28701_IG04: ; bbWeight=0.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 0.50 +G_M28701_IG03: ; bbWeight=0.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldp w0, w1, [x19, #0x38] add w0, w0, w20 cmp w0, w1
- blt G_M28701_IG06
+ blt G_M28701_IG05
;; size=16 bbWeight=0.09 PerfScore 0.44
-G_M28701_IG05: ; bbWeight=1.33, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG04: ; bbWeight=1.33, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -64,38 +60,38 @@ G_M28701_IG05: ; bbWeight=1.33, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldp w0, w1, [x19, #0x38] add w0, w0, w20 cmp w0, w1
- bge G_M28701_IG05
+ bge G_M28701_IG04
;; size=40 bbWeight=1.33 PerfScore 14.64
-G_M28701_IG06: ; bbWeight=1.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG05: ; bbWeight=1.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M28701_IG14
+ cbnz x0, G_M28701_IG15
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w21, w1, w20 sxtw w1, w21 ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M28701_IG13
+ bhs G_M28701_IG14
ubfiz x1, x1, #3, #32 add x1, x1, #16 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=48 bbWeight=1.09 PerfScore 21.75
-G_M28701_IG07: ; bbWeight=1.09, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG06: ; bbWeight=1.09, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E ; gcrRegs -[x1] cmp w0, w1
- beq G_M28701_IG03
+ beq G_M28701_IG12
;; size=16 bbWeight=1.09 PerfScore 5.44
-G_M28701_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x3C] cmp w21, w0
- blt G_M28701_IG10
+ blt G_M28701_IG09
;; size=12 bbWeight=1 PerfScore 4.50
-G_M28701_IG09: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG08: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -108,24 +104,24 @@ G_M28701_IG09: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldp w0, w1, [x19, #0x38] add w0, w0, w20 cmp w0, w1
- bge G_M28701_IG09
+ bge G_M28701_IG08
;; size=40 bbWeight=0.22 PerfScore 2.47
-G_M28701_IG10: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG09: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M28701_IG15
+ cbnz x0, G_M28701_IG13
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w1, w1, w20 ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M28701_IG13
+ bhs G_M28701_IG14
ubfiz x1, x1, #3, #32 add x1, x1, #16 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=44 bbWeight=1 PerfScore 19.50
-G_M28701_IG11: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+G_M28701_IG10: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E @@ -133,17 +129,42 @@ G_M28701_IG11: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre cmp w0, w1 cset x0, eq ;; size=16 bbWeight=1 PerfScore 4.50
-G_M28701_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M28701_IG11: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=1 PerfScore 5.00
-G_M28701_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M28701_IG12: ; bbWeight=0.09, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + add w20, w20, #1 + b G_M28701_IG03 + ;; size=8 bbWeight=0.09 PerfScore 0.13 +G_M28701_IG13: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ldr x0, [x19, #0x28] + ; gcrRegs +[x0] + ldr w1, [x19, #0x38] + add w1, w1, w20 + ldr w2, [x0, #0x08] + cmp w1, w2 + bhs G_M28701_IG14 + mov w2, #96 + mov x3, #16 + umaddl x1, w1, w2, x3 + add x0, x0, x1 + ; gcrRegs -[x0] + ; byrRegs +[x0] + ldr x1, [x0, #0x08] + ; gcrRegs +[x1] + b G_M28701_IG10 + ;; size=48 bbWeight=0 PerfScore 0.00 +G_M28701_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[x1 x19] + ; byrRegs -[x0]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M28701_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19] ldr x0, [x19, #0x28] ; gcrRegs +[x0] @@ -152,7 +173,7 @@ G_M28701_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by sxtw w1, w21 ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M28701_IG13
+ bhs G_M28701_IG14
mov w2, #96 mov x3, #16 umaddl x1, w1, w2, x3 @@ -161,30 +182,10 @@ G_M28701_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; byrRegs +[x0] ldr x1, [x0, #0x08] ; gcrRegs +[x1]
- b G_M28701_IG07
+ b G_M28701_IG06
;; size=52 bbWeight=0 PerfScore 0.00
-G_M28701_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x1] - ; byrRegs -[x0] - ldr x0, [x19, #0x28] - ; gcrRegs +[x0] - ldr w1, [x19, #0x38] - add w1, w1, w20 - ldr w2, [x0, #0x08] - cmp w1, w2 - bhs G_M28701_IG13 - mov w2, #96 - mov x3, #16 - umaddl x1, w1, w2, x3 - add x0, x0, x1 - ; gcrRegs -[x0] - ; byrRegs +[x0] - ldr x1, [x0, #0x08] - ; gcrRegs +[x1] - b G_M28701_IG11 - ;; size=48 bbWeight=0 PerfScore 0.00
-; Total bytes of code 384, prolog size 20, PerfScore 83.78, instruction count 96, allocated bytes for code 384 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
+; Total bytes of code 384, prolog size 20, PerfScore 82.86, instruction count 96, allocated bytes for code 384 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 200111.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryGenericTestsstringstring:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)

@@ -67,7 +67,7 @@ ; ; Lcl frame size = 40
-G_M22506_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M22506_IG01: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]! stp x19, x20, [sp, #0x38] stp x21, x22, [sp, #0x48] @@ -81,90 +81,23 @@ G_M22506_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[x20-x21] ldr w22, [fp, #0xCC] ldr w19, [fp, #0xBC]
- ;; size=48 bbWeight=1 PerfScore 15.50 -G_M22506_IG02: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref - b G_M22506_IG04 - ;; size=4 bbWeight=1 PerfScore 1.00 -G_M22506_IG03: ; bbWeight=0.91, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz - cmp w22, w3 - bhs G_M22506_IG13 - ldr x3, [x20, #0x08] - ; gcrRegs +[x3] - ldr w7, [x3, #0x08] - cmp w22, w7 - bhs G_M22506_IG08 - add x3, x3, #16 - ; gcrRegs -[x3] - ; byrRegs +[x3] - ldr x19, [x3, w22, UXTW #3] - ; gcrRegs +[x19] - ldrsb wzr, [x21] - cbz x19, G_M22506_IG11 - add x3, x21, #8 - ldapr x1, [x3] - ; gcrRegs +[x1] - strb wzr, [fp, #0x18] // [V48 tmp41] - str wzr, [fp, #0x1C] // [V48 tmp41+0x04] - ldr x3, [fp, #0x18] // [V48 tmp41] - ; byrRegs -[x3] - add x7, fp, #48 // [V13 tmp6] - mov x2, x19 - ; gcrRegs +[x2] - mov x0, x21 - ; gcrRegs +[x0] - mov x4, x19 - ; gcrRegs +[x4] - mov w5, wzr - mov w6, #1 - movz x8, #0xD1FFAB1E // code for <unknown method> - movk x8, #0xD1FFAB1E LSL #16 - movk x8, #0xD1FFAB1E LSL #32 - ldr x8, [x8] - blr x8 - ; gcrRegs -[x0-x2 x4] - str xzr, [fp, #0x30] // [V13 tmp6] - cbz w0, G_M22506_IG10 - add x3, x21, #8 - ; byrRegs +[x3] - ldapr x1, [x3] - ; gcrRegs +[x1] - ldr x3, [fp, #0x18] // [V48 tmp41] - ; byrRegs -[x3] - add x7, fp, #40 // [V19 tmp12] - mov x2, x19 - ; gcrRegs +[x2] - mov x0, x21 - ; gcrRegs +[x0] - mov x4, x19 - ; gcrRegs +[x4] - mov w5, wzr - mov w6, #1 - movz x8, #0xD1FFAB1E // code for <unknown method> - movk x8, #0xD1FFAB1E LSL #16 - movk x8, #0xD1FFAB1E LSL #32 - ldr x8, [x8] - blr x8 - ; gcrRegs -[x0-x2 x4 x19] - str xzr, [fp, #0x28] // [V19 tmp12] - cbnz w0, G_M22506_IG12 - mov w19, wzr - ;; size=180 bbWeight=0.91 PerfScore 46.28 -G_M22506_IG04: ; bbWeight=0.91, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0.91 PerfScore 14.07 +G_M22506_IG02: ; bbWeight=0.91, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldr w2, [x20, #0x10] cmp w19, w2
- bge G_M22506_IG07
+ bge G_M22506_IG05
;; size=12 bbWeight=0.91 PerfScore 4.08
-G_M22506_IG05: ; bbWeight=99.09, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M22506_IG03: ; bbWeight=99.09, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldr w2, [x20, #0x10] cmp w19, w2
- bhs G_M22506_IG13
+ bhs G_M22506_IG10
;; size=12 bbWeight=99.09 PerfScore 445.92
-G_M22506_IG06: ; bbWeight=99.47, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M22506_IG04: ; bbWeight=99.47, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x2, [x20, #0x08] ; gcrRegs +[x2] ldr w0, [x2, #0x08] cmp w19, w0
- bhs G_M22506_IG08
+ bhs G_M22506_IG11
add x2, x2, #16 ; gcrRegs -[x2] ; byrRegs +[x2] @@ -265,20 +198,79 @@ G_M22506_IG06: ; bbWeight=99.47, gcrefRegs=300000 {x20 x21}, byrefRegs=00 add w19, w19, #1 ldr w3, [x20, #0x10] cmp w19, w3
- blt G_M22506_IG05
+ blt G_M22506_IG03
;; size=280 bbWeight=99.47 PerfScore 6067.68
-G_M22506_IG07: ; bbWeight=0.91, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M22506_IG05: ; bbWeight=0.91, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
add w22, w22, #1 ldr w3, [x20, #0x10] cmp w22, w3
- bge G_M22506_IG09 - b G_M22506_IG03 - ;; size=20 bbWeight=0.91 PerfScore 5.44 -G_M22506_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bge G_M22506_IG06 + cmp w22, w3 + bhs G_M22506_IG10 + ldr x3, [x20, #0x08] + ; gcrRegs +[x3] + ldr w7, [x3, #0x08] + cmp w22, w7 + bhs G_M22506_IG11 + add x3, x3, #16 + ; gcrRegs -[x3] + ; byrRegs +[x3] + ldr x19, [x3, w22, UXTW #3] + ; gcrRegs +[x19] + ldrsb wzr, [x21] + cbz x19, G_M22506_IG08 + add x3, x21, #8 + ldapr x1, [x3] + ; gcrRegs +[x1] + strb wzr, [fp, #0x18] // [V48 tmp41] + str wzr, [fp, #0x1C] // [V48 tmp41+0x04] + ldr x3, [fp, #0x18] // [V48 tmp41] + ; byrRegs -[x3] + add x7, fp, #48 // [V13 tmp6] + mov x2, x19 + ; gcrRegs +[x2] + mov x0, x21 + ; gcrRegs +[x0] + mov x4, x19 + ; gcrRegs +[x4] + mov w5, wzr + mov w6, #1 + movz x8, #0xD1FFAB1E // code for <unknown method> + movk x8, #0xD1FFAB1E LSL #16 + movk x8, #0xD1FFAB1E LSL #32 + ldr x8, [x8] + blr x8 + ; gcrRegs -[x0-x2 x4] + str xzr, [fp, #0x30] // [V13 tmp6] + cbz w0, G_M22506_IG07 + add x3, x21, #8 + ; byrRegs +[x3] + ldapr x1, [x3] + ; gcrRegs +[x1] + ldr x3, [fp, #0x18] // [V48 tmp41] + ; byrRegs -[x3] + add x7, fp, #40 // [V19 tmp12] + mov x2, x19 + ; gcrRegs +[x2] + mov x0, x21 + ; gcrRegs +[x0] + mov x4, x19 + ; gcrRegs +[x4] + mov w5, wzr + mov w6, #1 + movz x8, #0xD1FFAB1E // code for <unknown method> + movk x8, #0xD1FFAB1E LSL #16 + movk x8, #0xD1FFAB1E LSL #32 + ldr x8, [x8] + blr x8 + ; gcrRegs -[x0-x2 x4 x19] + str xzr, [fp, #0x28] // [V19 tmp12] + cbnz w0, G_M22506_IG09 + mov w19, wzr + b G_M22506_IG02 + ;; size=200 bbWeight=0.91 PerfScore 51.72 +G_M22506_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x20-x21]
- bl CORINFO_HELP_RNGCHKFAIL - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M22506_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x27, [sp, #0x78] ldp x25, x26, [sp, #0x68] ldp x23, x24, [sp, #0x58] @@ -288,7 +280,7 @@ G_M22506_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add sp, sp, #112 ret lr ;; size=32 bbWeight=0 PerfScore 0.00
-G_M22506_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M22506_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w1, #1 strb w1, [fp, #0x10] // [V49 tmp42] strb wzr, [fp, #0x11] // [V49 tmp42+0x01] @@ -303,7 +295,7 @@ G_M22506_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { bl CORINFO_HELP_THROW ; gcrRegs -[x0] ;; size=44 bbWeight=0 PerfScore 0.00
-G_M22506_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22506_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1 movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 @@ -318,7 +310,7 @@ G_M22506_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] brk_unix #0 ;; size=44 bbWeight=0 PerfScore 0.00
-G_M22506_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22506_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #1 strb w1, [fp, #0x10] // [V49 tmp42] strb w0, [fp, #0x11] // [V49 tmp42+0x01] @@ -333,7 +325,7 @@ G_M22506_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_THROW ; gcrRegs -[x0] ;; size=44 bbWeight=0 PerfScore 0.00
-G_M22506_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22506_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -341,8 +333,12 @@ G_M22506_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
+G_M22506_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + bl CORINFO_HELP_RNGCHKFAIL + brk_unix #0 + ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 748, prolog size 36, PerfScore 6585.90, instruction count 187, allocated bytes for code 748 (MethodHash=967ea815) for method System.Collections.Concurrent.Tests.ConcurrentDictionary_Generic_Tests_string_string:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)
+; Total bytes of code 748, prolog size 36, PerfScore 6583.47, instruction count 187, allocated bytes for code 748 (MethodHash=967ea815) for method System.Collections.Concurrent.Tests.ConcurrentDictionary_Generic_Tests_string_string:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)
; ============================================================ Unwind Info:

+0 (0.00%) : 61056.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)

@@ -40,18 +40,14 @@ G_M28701_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=20 bbWeight=1 PerfScore 4.00 G_M28701_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref mov w20, #1
- b G_M28701_IG04 - ;; size=8 bbWeight=1 PerfScore 1.50 -G_M28701_IG03: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - add w20, w20, #1 - ;; size=4 bbWeight=0.03 PerfScore 0.02 -G_M28701_IG04: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 0.50 +G_M28701_IG03: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldp w0, w1, [x19, #0x38] add w0, w0, w20 cmp w0, w1
- blt G_M28701_IG06
+ blt G_M28701_IG05
;; size=16 bbWeight=0.03 PerfScore 0.16
-G_M28701_IG05: ; bbWeight=1.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG04: ; bbWeight=1.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this @@ -64,38 +60,38 @@ G_M28701_IG05: ; bbWeight=1.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldp w0, w1, [x19, #0x38] add w0, w0, w20 cmp w0, w1
- bge G_M28701_IG05
+ bge G_M28701_IG04
;; size=40 bbWeight=1.29 PerfScore 14.16
-G_M28701_IG06: ; bbWeight=1.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG05: ; bbWeight=1.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M28701_IG14
+ cbnz x0, G_M28701_IG15
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w21, w1, w20 sxtw w1, w21 ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M28701_IG13
+ bhs G_M28701_IG14
ubfiz x1, x1, #3, #32 add x1, x1, #16 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=48 bbWeight=1.03 PerfScore 20.64
-G_M28701_IG07: ; bbWeight=1.03, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG06: ; bbWeight=1.03, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E ; gcrRegs -[x1] cmp w0, w1
- beq G_M28701_IG03
+ beq G_M28701_IG12
;; size=16 bbWeight=1.03 PerfScore 5.16
-G_M28701_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x3C] cmp w21, w0
- blt G_M28701_IG10
+ blt G_M28701_IG09
;; size=12 bbWeight=1 PerfScore 4.50
-G_M28701_IG09: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG08: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this @@ -108,24 +104,24 @@ G_M28701_IG09: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldp w0, w1, [x19, #0x38] add w0, w0, w20 cmp w0, w1
- bge G_M28701_IG09
+ bge G_M28701_IG08
;; size=40 bbWeight=0.25 PerfScore 2.71
-G_M28701_IG10: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG09: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x28] ; gcrRegs +[x0]
- cbnz x0, G_M28701_IG15
+ cbnz x0, G_M28701_IG13
ldr x0, [x19, #0x18] ldr w1, [x19, #0x38] add w1, w1, w20 ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M28701_IG13
+ bhs G_M28701_IG14
ubfiz x1, x1, #3, #32 add x1, x1, #16 ldr x1, [x0, x1] ; gcrRegs +[x1] ;; size=44 bbWeight=1 PerfScore 19.50
-G_M28701_IG11: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+G_M28701_IG10: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19] ldrh w0, [x1, #0x0C] mov w1, #0xD1FFAB1E @@ -133,17 +129,42 @@ G_M28701_IG11: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre cmp w0, w1 cset x0, eq ;; size=16 bbWeight=1 PerfScore 4.50
-G_M28701_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M28701_IG11: ; bbWeight=1, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=1 PerfScore 5.00
-G_M28701_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M28701_IG12: ; bbWeight=0.03, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + add w20, w20, #1 + b G_M28701_IG03 + ;; size=8 bbWeight=0.03 PerfScore 0.05 +G_M28701_IG13: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ldr x0, [x19, #0x28] + ; gcrRegs +[x0] + ldr w1, [x19, #0x38] + add w1, w1, w20 + ldr w2, [x0, #0x08] + cmp w1, w2 + bhs G_M28701_IG14 + mov w2, #96 + mov x3, #16 + umaddl x1, w1, w2, x3 + add x0, x0, x1 + ; gcrRegs -[x0] + ; byrRegs +[x0] + ldr x1, [x0, #0x08] + ; gcrRegs +[x1] + b G_M28701_IG10 + ;; size=48 bbWeight=0 PerfScore 0.00 +G_M28701_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[x1 x19] + ; byrRegs -[x0]
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M28701_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19] ldr x0, [x19, #0x28] ; gcrRegs +[x0] @@ -152,7 +173,7 @@ G_M28701_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by sxtw w1, w21 ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M28701_IG13
+ bhs G_M28701_IG14
mov w2, #96 mov x3, #16 umaddl x1, w1, w2, x3 @@ -161,30 +182,10 @@ G_M28701_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; byrRegs +[x0] ldr x1, [x0, #0x08] ; gcrRegs +[x1]
- b G_M28701_IG07
+ b G_M28701_IG06
;; size=52 bbWeight=0 PerfScore 0.00
-G_M28701_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x1] - ; byrRegs -[x0] - ldr x0, [x19, #0x28] - ; gcrRegs +[x0] - ldr w1, [x19, #0x38] - add w1, w1, w20 - ldr w2, [x0, #0x08] - cmp w1, w2 - bhs G_M28701_IG13 - mov w2, #96 - mov x3, #16 - umaddl x1, w1, w2, x3 - add x0, x0, x1 - ; gcrRegs -[x0] - ; byrRegs +[x0] - ldr x1, [x0, #0x08] - ; gcrRegs +[x1] - b G_M28701_IG11 - ;; size=48 bbWeight=0 PerfScore 0.00
-; Total bytes of code 384, prolog size 20, PerfScore 81.85, instruction count 96, allocated bytes for code 384 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
+; Total bytes of code 384, prolog size 20, PerfScore 80.88, instruction count 96, allocated bytes for code 384 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
; ============================================================ Unwind Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.linux.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm64.checked.mch 1 1 0 0 -4 +0
libraries.crossgen2.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.arm64.Release.mch 5 0 0 5 -0 +0
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.arm64.checked.mch 0 0 0 0 -0 +0
6 1 0 5 -4 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 37,883 4,043 33,840 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch 148,410 57,402 91,008 0 (0.00%) 0 (0.00%)
benchmarks.run_tiered.linux.arm64.checked.mch 59,574 44,824 14,750 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 636,460 390,881 245,579 3 (0.00%) 3 (0.00%)
libraries.crossgen2.linux.arm64.checked.mch 265,473 15 265,458 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 297,587 6 297,581 0 (0.00%) 0 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 730,776 488,299 242,477 0 (0.00%) 0 (0.00%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 305,220 21,620 283,600 0 (0.00%) 0 (0.00%)
realworld.run.linux.arm64.checked.mch 33,362 151 33,211 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,000 7 18,993 0 (0.00%) 0 (0.00%)
2,533,745 1,007,248 1,526,497 3 (0.00%) 3 (0.00%)

jit-analyze output

coreclr_tests.run.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 518962008 (overridden on cmd)
Total bytes of diff: 518962004 (overridden on cmd)
Total bytes of delta: -4 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
          -4 : 255019.dasm (-1.32 % of base)

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

Top method improvements (bytes):
          -4 (-1.32 % of base) : 255019.dasm - AssignJagged:LoadAssign(int[][]) (Tier1-OSR)

Top method improvements (percentages):
          -4 (-1.32 % of base) : 255019.dasm - AssignJagged:LoadAssign(int[][]) (Tier1-OSR)

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


libraries_tests.run.linux.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 381002252 (overridden on cmd)
Total bytes of diff: 381002252 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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



linux x64

Diffs are based on 2,573,319 contexts (1,008,940 MinOpts, 1,564,379 FullOpts).

Overall (+49 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch 426,828,729 +36
libraries_tests.run.linux.x64.Release.mch 333,393,493 +13

FullOpts (+49 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.linux.x64.checked.mch 133,190,581 +36
libraries_tests.run.linux.x64.Release.mch 150,726,678 +13

Example diffs

coreclr_tests.run.linux.x64.checked.mch

+8 (+0.79%) : 635980.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

@@ -14,8 +14,8 @@ ; V02 arg2 [V02,T11] ( 5, 3 ) ushort -> r15 single-def ; V03 arg3 [V03,T12] ( 5, 3 ) ushort -> r14 single-def ; V04 arg4 [V04,T13] ( 5, 3 ) ushort -> r13 single-def
-; V05 loc0 [V05,T03] ( 8, 15 ) long -> r12 -; V06 loc1 [V06,T00] ( 22, 51.46) long -> [rbp-0x30]
+; V05 loc0 [V05,T03] ( 8, 15.23) long -> r12 +; V06 loc1 [V06,T00] ( 22, 51.69) long -> [rbp-0x30]
; V07 loc2 [V07,T04] ( 5, 11.85) byref -> [rbp-0x1C0] spill-single-def ; V08 loc3 [V08,T44] ( 2, 0.73) simd64 -> [rbp-0x70] spill-single-def <System.Runtime.Intrinsics.Vector512`1[ushort]> ; V09 loc4 [V09,T45] ( 2, 0.73) simd64 -> [rbp-0xB0] spill-single-def <System.Runtime.Intrinsics.Vector512`1[ushort]> @@ -111,12 +111,12 @@ G_M10293_IG02: ; bbWeight=1, gcVars=0000000000020000 {V53}, gcrefRegs=000 mov bword ptr [rbp-0x1C0], rcx ; GC ptr vars +{V07} cmp r12, 64
- jae G_M10293_IG14
+ jae G_M10293_IG19
;; size=45 bbWeight=1 PerfScore 8.25 G_M10293_IG03: ; bbWeight=0.85, gcVars=0000000000000010 {V07}, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, gcvars, byref ; GC ptr vars -{V53} cmp r12, 32
- jb G_M10293_IG41
+ jb G_M10293_IG31
;; size=10 bbWeight=0.85 PerfScore 1.06 G_M10293_IG04: ; bbWeight=0.54, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref movzx r15, r15w @@ -136,7 +136,7 @@ G_M10293_IG05: ; bbWeight=1.23, gcrefRegs=0000 {}, byrefRegs=000A {rcx rb vpcmpeqw ymm3, ymm3, ymm2 vpternlogd ymm4, ymm5, ymm3, -2 vptest ymm4, ymm4
- je G_M10293_IG13
+ je G_M10293_IG18
;; size=35 bbWeight=1.23 PerfScore 16.00 G_M10293_IG06: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref ; byrRegs -[rcx] @@ -156,7 +156,7 @@ G_M10293_IG07: ; bbWeight=1.54, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, ; byrRegs +[r8] mov r9d, dword ptr [rbx+0x18] cmp edi, r9d
- jae G_M10293_IG42
+ jae G_M10293_IG39
;; size=42 bbWeight=1.54 PerfScore 19.23 G_M10293_IG08: ; bbWeight=1.54, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, byref mov r9d, edi @@ -164,138 +164,45 @@ G_M10293_IG08: ; bbWeight=1.54, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8 inc edi mov dword ptr [rbx+0x08], edi ;; size=12 bbWeight=1.54 PerfScore 3.85
-G_M10293_IG09: ; bbWeight=1.54, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M10293_IG09: ; bbWeight=1.54, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; byrRegs -[r8] blsr edx, dword ptr [rbp-0x174]
- jne SHORT G_M10293_IG12 - ;; size=11 bbWeight=1.54 PerfScore 4.62 -G_M10293_IG10: ; bbWeight=1.23, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ jne G_M10293_IG17 + ;; size=15 bbWeight=1.54 PerfScore 4.62 +G_M10293_IG10: ; bbWeight=1.23, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov rax, qword ptr [rbp-0x30] add rax, 16 lea rdi, [r12-0x10] cmp rax, rdi
- mov rcx, bword ptr [rbp-0x1C0] - ; byrRegs +[rcx]
vmovups ymm0, ymmword ptr [rbp-0x130] vmovups ymm1, ymmword ptr [rbp-0x150] vmovups ymm2, ymmword ptr [rbp-0x170]
- jbe G_M10293_IG05 - ;; size=53 bbWeight=1.23 PerfScore 19.69 -G_M10293_IG11: ; bbWeight=0.54, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - jmp G_M10293_IG36 - ;; size=5 bbWeight=0.54 PerfScore 1.08 -G_M10293_IG12: ; bbWeight=0.77, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - ; byrRegs -[rcx] - mov rax, qword ptr [rbp-0x30] - jmp G_M10293_IG07 - ;; size=9 bbWeight=0.77 PerfScore 2.31 -G_M10293_IG13: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov qword ptr [rbp-0x30], rax - jmp SHORT G_M10293_IG10 - ;; size=6 bbWeight=0.62 PerfScore 1.85 -G_M10293_IG14: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - ; byrRegs +[rcx] - movzx r15, r15w - vpbroadcastw zmm0, r15d - vmovups zmmword ptr [rbp-0x70], zmm0 - movzx r14, r14w - vpbroadcastw zmm1, r14d - vmovups zmmword ptr [rbp-0xB0], zmm1 - movzx r13, r13w - vpbroadcastw zmm2, r13d - vmovups zmmword ptr [rbp-0xF0], zmm2 - ;; size=60 bbWeight=0.15 PerfScore 1.50 -G_M10293_IG15: ; bbWeight=0.58, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - vmovups zmm3, zmmword ptr [rcx+2*rax] - vpcmpeqw k1, zmm3, zmm0 - vpcmpeqw k2, zmm3, zmm1 - kord k1, k1, k2 - vpcmpeqw k2, zmm3, zmm2 - kord k1, k1, k2 - vpmovm2w zmm3, k1 - vptestmb k1, zmm3, zmm3 - kortestq k1, k1 - je G_M10293_IG23 - ;; size=58 bbWeight=0.58 PerfScore 8.37 -G_M10293_IG16: ; bbWeight=0.35, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - ; byrRegs -[rcx] - vpmovb2m k1, zmm3 - kmovq rdx, k1 - mov r8, 0xD1FFAB1E - and rdx, r8 - ;; size=24 bbWeight=0.35 PerfScore 1.56 -G_M10293_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov qword ptr [rbp-0xF8], rdx - xor edi, edi - tzcnt rdi, rdx - shr edi, 1 - mov esi, edi - mov qword ptr [rbp-0x30], rax - add esi, eax - mov edi, dword ptr [rbx+0x08] - mov r8, bword ptr [rbx+0x10] - ; byrRegs +[r8] - mov r9d, dword ptr [rbx+0x18] - cmp edi, r9d - jae SHORT G_M10293_IG24 - ;; size=40 bbWeight=1 PerfScore 12.50 -G_M10293_IG18: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, byref - mov r9d, edi - mov dword ptr [r8+4*r9], esi - inc edi - mov dword ptr [rbx+0x08], edi - ;; size=12 bbWeight=1.00 PerfScore 2.50 -G_M10293_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - ; byrRegs -[r8] - blsr rdx, qword ptr [rbp-0xF8] - jne SHORT G_M10293_IG22 - ;; size=11 bbWeight=1 PerfScore 3.00 -G_M10293_IG20: ; bbWeight=0.58, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov rax, qword ptr [rbp-0x30] - add rax, 32 - lea rdi, [r12-0x20] - cmp rax, rdi
+ jbe SHORT G_M10293_IG16 + ;; size=42 bbWeight=1.23 PerfScore 18.46 +G_M10293_IG11: ; bbWeight=0.54, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz + cmp rax, r12 + jae SHORT G_M10293_IG15 + ;; size=5 bbWeight=0.54 PerfScore 0.67 +G_M10293_IG12: ; bbWeight=8.27, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov rcx, bword ptr [rbp-0x1C0] ; byrRegs +[rcx]
- vmovups zmm0, zmmword ptr [rbp-0x70] - vmovups zmm1, zmmword ptr [rbp-0xB0] - vmovups zmm2, zmmword ptr [rbp-0xF0] - jbe G_M10293_IG15 - ;; size=59 bbWeight=0.58 PerfScore 7.50 -G_M10293_IG21: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - jmp G_M10293_IG36 - ;; size=5 bbWeight=0.15 PerfScore 0.31 -G_M10293_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ movzx rdi, word ptr [rcx+2*rax] + cmp edi, r15d + je G_M10293_IG29 + ;; size=20 bbWeight=8.27 PerfScore 35.14 +G_M10293_IG13: ; bbWeight=7.46, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; byrRegs -[rcx]
- mov rax, qword ptr [rbp-0x30] - jmp G_M10293_IG17 - ;; size=9 bbWeight=0.50 PerfScore 1.50 -G_M10293_IG23: ; bbWeight=0.29, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov qword ptr [rbp-0x30], rax - jmp SHORT G_M10293_IG20 - ;; size=6 bbWeight=0.29 PerfScore 0.87 -G_M10293_IG24: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - jmp SHORT G_M10293_IG19 - ;; size=11 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG25: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - mov rax, qword ptr [rbp-0x30] - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG26: ; bbWeight=9.27, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ cmp edi, r14d + je G_M10293_IG29 + cmp edi, r13d + je G_M10293_IG29 + ;; size=18 bbWeight=7.46 PerfScore 18.65 +G_M10293_IG14: ; bbWeight=9.27, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
inc rax cmp rax, r12
- jb G_M10293_IG37 - ;; size=12 bbWeight=9.27 PerfScore 13.90 -G_M10293_IG27: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+ jb SHORT G_M10293_IG12 + ;; size=8 bbWeight=9.27 PerfScore 13.90 +G_M10293_IG15: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
; byrRegs -[rbx] ; GC ptr vars -{V07} vzeroupper @@ -308,33 +215,133 @@ G_M10293_IG27: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { pop rbp ret ;; size=21 bbWeight=1 PerfScore 5.25
-G_M10293_IG28: ; bbWeight=0.00, gcVars=0000000000000010 {V07}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+G_M10293_IG16: ; bbWeight=0.62, gcVars=0000000000000010 {V07}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs +[rbx] ; GC ptr vars +{V04 V07}
- mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - ;; size=9 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG29: ; bbWeight=0.42, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - blsr edx, dword ptr [rbp-0x1B4] - mov rax, qword ptr [rbp-0x30] - jne SHORT G_M10293_IG34 - ;; size=15 bbWeight=0.42 PerfScore 1.69 -G_M10293_IG30: ; bbWeight=0.77, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - add rax, 8 - lea rdi, [r12-0x08] - cmp rax, rdi - vmovaps xmm0, xmmword ptr [rbp-0x190] - vmovaps xmm1, xmmword ptr [rbp-0x1A0] - vmovaps xmm2, xmmword ptr [rbp-0x1B0] - ja SHORT G_M10293_IG36 - ;; size=38 bbWeight=0.77 PerfScore 8.46 -G_M10293_IG31: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov rcx, bword ptr [rbp-0x1C0] ; byrRegs +[rcx]
- ;; size=7 bbWeight=0.38 PerfScore 0.38
+ jmp G_M10293_IG05 + ;; size=12 bbWeight=0.62 PerfScore 1.85 +G_M10293_IG17: ; bbWeight=0.77, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + ; byrRegs -[rcx] + mov rax, qword ptr [rbp-0x30] + jmp G_M10293_IG07 + ;; size=9 bbWeight=0.77 PerfScore 2.31 +G_M10293_IG18: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + mov qword ptr [rbp-0x30], rax + jmp G_M10293_IG10
...

+28 (+2.78%) : 639735.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

@@ -14,8 +14,8 @@ ; V02 arg2 [V02,T11] ( 5, 3 ) ushort -> r15 single-def ; V03 arg3 [V03,T12] ( 5, 3 ) ushort -> r14 single-def ; V04 arg4 [V04,T13] ( 5, 3 ) ushort -> r13 single-def
-; V05 loc0 [V05,T03] ( 8, 13.77) long -> r12 -; V06 loc1 [V06,T00] ( 22, 45.64) long -> [rbp-0x30]
+; V05 loc0 [V05,T03] ( 8, 13.95) long -> r12 +; V06 loc1 [V06,T00] ( 22, 45.82) long -> [rbp-0x30]
; V07 loc2 [V07,T04] ( 5, 10.50) byref -> [rbp-0x1C0] spill-single-def ; V08 loc3 [V08,T44] ( 2, 0.36) simd64 -> [rbp-0x70] spill-single-def <System.Runtime.Intrinsics.Vector512`1[ushort]> ; V09 loc4 [V09,T45] ( 2, 0.36) simd64 -> [rbp-0xB0] spill-single-def <System.Runtime.Intrinsics.Vector512`1[ushort]> @@ -111,12 +111,12 @@ G_M10293_IG02: ; bbWeight=1, gcVars=0000000000008000 {V53}, gcrefRegs=000 mov bword ptr [rbp-0x1C0], rcx ; GC ptr vars +{V07} cmp r12, 64
- jae G_M10293_IG14
+ jae G_M10293_IG27
;; size=45 bbWeight=1 PerfScore 8.25 G_M10293_IG03: ; bbWeight=0.91, gcVars=0000000000000010 {V07}, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, gcvars, byref ; GC ptr vars -{V53} cmp r12, 32
- jb G_M10293_IG41
+ jb G_M10293_IG19
;; size=10 bbWeight=0.91 PerfScore 1.14 G_M10293_IG04: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref movzx r15, r15w @@ -136,7 +136,7 @@ G_M10293_IG05: ; bbWeight=1.27, gcrefRegs=0000 {}, byrefRegs=000A {rcx rb vpcmpeqw ymm3, ymm3, ymm2 vpternlogd ymm4, ymm5, ymm3, -2 vptest ymm4, ymm4
- je G_M10293_IG13
+ je G_M10293_IG18
;; size=35 bbWeight=1.27 PerfScore 16.55 G_M10293_IG06: ; bbWeight=0.64, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref ; byrRegs -[rcx] @@ -156,7 +156,7 @@ G_M10293_IG07: ; bbWeight=1.59, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, ; byrRegs +[r8] mov r9d, dword ptr [rbx+0x18] cmp edi, r9d
- jae G_M10293_IG42
+ jae G_M10293_IG40
;; size=42 bbWeight=1.59 PerfScore 19.89 G_M10293_IG08: ; bbWeight=1.59, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, byref mov r9d, edi @@ -164,138 +164,45 @@ G_M10293_IG08: ; bbWeight=1.59, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8 inc edi mov dword ptr [rbx+0x08], edi ;; size=12 bbWeight=1.59 PerfScore 3.98
-G_M10293_IG09: ; bbWeight=1.59, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M10293_IG09: ; bbWeight=1.59, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; byrRegs -[r8] blsr edx, dword ptr [rbp-0x174]
- jne SHORT G_M10293_IG12 - ;; size=11 bbWeight=1.59 PerfScore 4.77 -G_M10293_IG10: ; bbWeight=1.27, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ jne G_M10293_IG17 + ;; size=15 bbWeight=1.59 PerfScore 4.77 +G_M10293_IG10: ; bbWeight=1.27, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
mov rax, qword ptr [rbp-0x30] add rax, 16 lea rdi, [r12-0x10] cmp rax, rdi
- mov rcx, bword ptr [rbp-0x1C0] - ; byrRegs +[rcx]
vmovups ymm0, ymmword ptr [rbp-0x130] vmovups ymm1, ymmword ptr [rbp-0x150] vmovups ymm2, ymmword ptr [rbp-0x170]
- jbe G_M10293_IG05 - ;; size=53 bbWeight=1.27 PerfScore 20.36 -G_M10293_IG11: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - jmp G_M10293_IG36 - ;; size=5 bbWeight=0.55 PerfScore 1.09 -G_M10293_IG12: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - ; byrRegs -[rcx] - mov rax, qword ptr [rbp-0x30] - jmp G_M10293_IG07 - ;; size=9 bbWeight=0.80 PerfScore 2.39 -G_M10293_IG13: ; bbWeight=0.64, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov qword ptr [rbp-0x30], rax - jmp SHORT G_M10293_IG10 - ;; size=6 bbWeight=0.64 PerfScore 1.91 -G_M10293_IG14: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - ; byrRegs +[rcx] - movzx r15, r15w - vpbroadcastw zmm0, r15d - vmovups zmmword ptr [rbp-0x70], zmm0 - movzx r14, r14w - vpbroadcastw zmm1, r14d - vmovups zmmword ptr [rbp-0xB0], zmm1 - movzx r13, r13w - vpbroadcastw zmm2, r13d - vmovups zmmword ptr [rbp-0xF0], zmm2 - ;; size=60 bbWeight=0.09 PerfScore 0.89 -G_M10293_IG15: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - vmovups zmm3, zmmword ptr [rcx+2*rax] - vpcmpeqw k1, zmm3, zmm0 - vpcmpeqw k2, zmm3, zmm1 - kord k1, k1, k2 - vpcmpeqw k2, zmm3, zmm2 - kord k1, k1, k2 - vpmovm2w zmm3, k1 - vptestmb k1, zmm3, zmm3 - kortestq k1, k1 - je G_M10293_IG23 - ;; size=58 bbWeight=0.27 PerfScore 3.95 -G_M10293_IG16: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - ; byrRegs -[rcx] - vpmovb2m k1, zmm3 - kmovq rdx, k1 - mov r8, 0xD1FFAB1E - and rdx, r8 - ;; size=24 bbWeight=0.18 PerfScore 0.82 -G_M10293_IG17: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov qword ptr [rbp-0xF8], rdx - xor edi, edi - tzcnt rdi, rdx - shr edi, 1 - mov esi, edi - mov qword ptr [rbp-0x30], rax - add esi, eax - mov edi, dword ptr [rbx+0x08] - mov r8, bword ptr [rbx+0x10] - ; byrRegs +[r8] - mov r9d, dword ptr [rbx+0x18] - cmp edi, r9d - jae SHORT G_M10293_IG24 - ;; size=40 bbWeight=0.45 PerfScore 5.68 -G_M10293_IG18: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, byref - mov r9d, edi - mov dword ptr [r8+4*r9], esi - inc edi - mov dword ptr [rbx+0x08], edi - ;; size=12 bbWeight=0.45 PerfScore 1.14 -G_M10293_IG19: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - ; byrRegs -[r8] - blsr rdx, qword ptr [rbp-0xF8] - jne SHORT G_M10293_IG22 - ;; size=11 bbWeight=0.45 PerfScore 1.36 -G_M10293_IG20: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov rax, qword ptr [rbp-0x30] - add rax, 32 - lea rdi, [r12-0x20] - cmp rax, rdi
+ jbe SHORT G_M10293_IG16 + ;; size=42 bbWeight=1.27 PerfScore 19.09 +G_M10293_IG11: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz + cmp rax, r12 + jae SHORT G_M10293_IG15 + ;; size=5 bbWeight=0.55 PerfScore 0.68 +G_M10293_IG12: ; bbWeight=7.05, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov rcx, bword ptr [rbp-0x1C0] ; byrRegs +[rcx]
- vmovups zmm0, zmmword ptr [rbp-0x70] - vmovups zmm1, zmmword ptr [rbp-0xB0] - vmovups zmm2, zmmword ptr [rbp-0xF0] - jbe G_M10293_IG15 - ;; size=59 bbWeight=0.27 PerfScore 3.55 -G_M10293_IG21: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - jmp G_M10293_IG36 - ;; size=5 bbWeight=0.09 PerfScore 0.18 -G_M10293_IG22: ; bbWeight=0.23, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ movzx rdi, word ptr [rcx+2*rax] + cmp edi, r15d + je G_M10293_IG24 + ;; size=20 bbWeight=7.05 PerfScore 29.94 +G_M10293_IG13: ; bbWeight=6.32, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
; byrRegs -[rcx]
- mov rax, qword ptr [rbp-0x30] - jmp G_M10293_IG17 - ;; size=9 bbWeight=0.23 PerfScore 0.68 -G_M10293_IG23: ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov qword ptr [rbp-0x30], rax - jmp SHORT G_M10293_IG20 - ;; size=6 bbWeight=0.14 PerfScore 0.41 -G_M10293_IG24: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - jmp SHORT G_M10293_IG19 - ;; size=11 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG25: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - mov rax, qword ptr [rbp-0x30] - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG26: ; bbWeight=8.05, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ cmp edi, r14d + je G_M10293_IG24 + cmp edi, r13d + je G_M10293_IG24 + ;; size=18 bbWeight=6.32 PerfScore 15.80 +G_M10293_IG14: ; bbWeight=8.05, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
inc rax cmp rax, r12
- jb G_M10293_IG37 - ;; size=12 bbWeight=8.05 PerfScore 12.07 -G_M10293_IG27: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+ jb SHORT G_M10293_IG12 + ;; size=8 bbWeight=8.05 PerfScore 12.07 +G_M10293_IG15: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
; byrRegs -[rbx] ; GC ptr vars -{V07} vzeroupper @@ -308,48 +215,49 @@ G_M10293_IG27: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { pop rbp ret ;; size=21 bbWeight=1 PerfScore 5.25
-G_M10293_IG28: ; bbWeight=0.00, gcVars=0000000000000010 {V07}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+G_M10293_IG16: ; bbWeight=0.64, gcVars=0000000000000010 {V07}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
; byrRegs +[rbx] ; GC ptr vars +{V04 V07}
- mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - ;; size=9 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - blsr edx, dword ptr [rbp-0x1B4] - mov rax, qword ptr [rbp-0x30] - jne SHORT G_M10293_IG34 - ;; size=15 bbWeight=0.50 PerfScore 2.00 -G_M10293_IG30: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - add rax, 8 - lea rdi, [r12-0x08] - cmp rax, rdi - vmovaps xmm0, xmmword ptr [rbp-0x190] - vmovaps xmm1, xmmword ptr [rbp-0x1A0] - vmovaps xmm2, xmmword ptr [rbp-0x1B0] - ja SHORT G_M10293_IG36 - ;; size=38 bbWeight=0.91 PerfScore 10.00 -G_M10293_IG31: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov rcx, bword ptr [rbp-0x1C0] ; byrRegs +[rcx]
- ;; size=7 bbWeight=0.45 PerfScore 0.45 -G_M10293_IG32: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz
+ jmp G_M10293_IG05 + ;; size=12 bbWeight=0.64 PerfScore 1.91 +G_M10293_IG17: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + ; byrRegs -[rcx] + mov rax, qword ptr [rbp-0x30] + jmp G_M10293_IG07 + ;; size=9 bbWeight=0.80 PerfScore 2.39 +G_M10293_IG18: ; bbWeight=0.64, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + mov qword ptr [rbp-0x30], rax
...

libraries_tests.run.linux.x64.Release.mch

-45 (-6.26%) : 38477.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

@@ -14,8 +14,8 @@ ; V02 arg2 [V02,T11] ( 4, 3 ) ushort -> r15 single-def ; V03 arg3 [V03,T12] ( 4, 3 ) ushort -> r14 single-def ; V04 arg4 [V04,T13] ( 4, 3 ) ushort -> r13 single-def
-; V05 loc0 [V05,T02] ( 7, 18.71) long -> r12 -; V06 loc1 [V06,T00] ( 20, 67.92) long -> [rbp-0x30]
+; V05 loc0 [V05,T02] ( 6, 19.45) long -> r12 +; V06 loc1 [V06,T00] ( 17, 68.67) long -> [rbp-0x30]
; V07 loc2 [V07,T03] ( 4, 16.58) byref -> [rbp-0xE0] spill-single-def ;* V08 loc3 [V08 ] ( 0, 0 ) simd64 -> zero-ref <System.Runtime.Intrinsics.Vector512`1[ushort]> ;* V09 loc4 [V09 ] ( 0, 0 ) simd64 -> zero-ref <System.Runtime.Intrinsics.Vector512`1[ushort]> @@ -106,7 +106,7 @@ G_M10293_IG02: ; bbWeight=1, gcVars=0000000000008000 {V50}, gcrefRegs=000 mov bword ptr [rbp-0xE0], rcx ; GC ptr vars +{V07} cmp r12, 32
- jb G_M10293_IG19
+ jb G_M10293_IG15
;; size=45 bbWeight=1 PerfScore 8.25 G_M10293_IG03: ; bbWeight=0.87, gcVars=0000000000000008 {V07}, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, gcvars, byref ; GC ptr vars -{V50} @@ -134,7 +134,7 @@ G_M10293_IG05: ; bbWeight=1.24, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, vpmovmskb edx, ymm4 and edx, 0xD1FFAB1E ;; size=10 bbWeight=1.24 PerfScore 4.02
-G_M10293_IG06: ; bbWeight=1.47, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M10293_IG06: ; bbWeight=1.47, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov dword ptr [rbp-0x94], edx xor edi, edi tzcnt edi, edx @@ -147,8 +147,8 @@ G_M10293_IG06: ; bbWeight=1.47, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, ; byrRegs +[r8] mov r9d, dword ptr [rbx+0x18] cmp edi, r9d
- jae SHORT G_M10293_IG11 - ;; size=38 bbWeight=1.47 PerfScore 18.41
+ jae G_M10293_IG19 + ;; size=42 bbWeight=1.47 PerfScore 18.41
G_M10293_IG07: ; bbWeight=1.47, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, byref mov r9d, edi mov dword ptr [r8+4*r9], esi @@ -161,36 +161,35 @@ G_M10293_IG08: ; bbWeight=1.47, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, mov rax, qword ptr [rbp-0x30] jne SHORT G_M10293_IG06 ;; size=15 bbWeight=1.47 PerfScore 5.89
-G_M10293_IG09: ; bbWeight=3.32, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M10293_IG09: ; bbWeight=3.32, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
add rax, 16 lea rdi, [r12-0x10] cmp rax, rdi
- mov rcx, bword ptr [rbp-0xE0] - ; byrRegs +[rcx]
vmovups ymm0, ymmword ptr [rbp-0x50] vmovups ymm1, ymmword ptr [rbp-0x70] vmovups ymm2, ymmword ptr [rbp-0x90]
- jbe G_M10293_IG04 - ;; size=43 bbWeight=3.32 PerfScore 49.84 -G_M10293_IG10: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - jmp G_M10293_IG17 - ;; size=5 bbWeight=0.87 PerfScore 1.74 -G_M10293_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - ; byrRegs -[rcx] - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - jmp SHORT G_M10293_IG08 - ;; size=11 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG12: ; bbWeight=12.87, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - inc rax
+ jbe SHORT G_M10293_IG14 + ;; size=32 bbWeight=3.32 PerfScore 46.52 +G_M10293_IG10: ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp rax, r12
+ jae SHORT G_M10293_IG13 + ;; size=5 bbWeight=0.87 PerfScore 1.09 +G_M10293_IG11: ; bbWeight=11.87, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov rcx, bword ptr [rbp-0xE0] ; byrRegs +[rcx]
- jb G_M10293_IG18 - ;; size=19 bbWeight=12.87 PerfScore 32.18
+ movzx rdi, word ptr [rcx+2*rax] + cmp edi, r15d + je G_M10293_IG24 + cmp edi, r14d + je G_M10293_IG24 + cmp edi, r13d + je G_M10293_IG24 + ;; size=38 bbWeight=11.87 PerfScore 80.13 +G_M10293_IG12: ; bbWeight=12.87, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz + inc rax + cmp rax, r12 + jb SHORT G_M10293_IG11 + ;; size=8 bbWeight=12.87 PerfScore 19.31
G_M10293_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc ; byrRegs -[rcx rbx] ; GC ptr vars -{V07} @@ -204,50 +203,14 @@ G_M10293_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { pop rbp ret ;; size=21 bbWeight=1 PerfScore 5.25
-G_M10293_IG14: ; bbWeight=0.39, gcVars=0000000000000008 {V07}, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, gcvars, byref, isz - ; byrRegs +[rcx rbx]
+G_M10293_IG14: ; bbWeight=1.66, gcVars=0000000000000008 {V07}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref + ; byrRegs +[rbx]
; GC ptr vars +{V03 V07}
- add rax, 8 - lea rdx, [r12-0x08] - cmp rax, rdx - vmovaps xmm0, xmmword ptr [rbp-0xB0] - vmovaps xmm1, xmmword ptr [rbp-0xC0] - vmovaps xmm2, xmmword ptr [rbp-0xD0] - ja SHORT G_M10293_IG17 - ;; size=38 bbWeight=0.39 PerfScore 4.26 -G_M10293_IG15: ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - vmovups xmm3, xmmword ptr [rcx+2*rax] - vpcmpeqw xmm4, xmm3, xmm0 - vpcmpeqw xmm5, xmm3, xmm1 - vpcmpeqw xmm3, xmm3, xmm2 - vpternlogd xmm4, xmm5, xmm3, -2 - vptest xmm4, xmm4 - jne G_M10293_IG20 - ;; size=35 bbWeight=0.39 PerfScore 3.87 -G_M10293_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz - add rax, 8 - lea rdx, [r12-0x08] - cmp rax, rdx - vmovaps xmm0, xmmword ptr [rbp-0xB0] - vmovaps xmm1, xmmword ptr [rbp-0xC0] - vmovaps xmm2, xmmword ptr [rbp-0xD0] - jbe SHORT G_M10293_IG15 - ;; size=38 bbWeight=0 PerfScore 0.00 -G_M10293_IG17: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - cmp rax, r12 - jae G_M10293_IG13 - ;; size=9 bbWeight=0.13 PerfScore 0.16 -G_M10293_IG18: ; bbWeight=11.87, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - movzx rdi, word ptr [rcx+2*rax] - cmp edi, r15d - je G_M10293_IG25 - cmp edi, r14d - je G_M10293_IG25 - cmp edi, r13d - je G_M10293_IG25 - jmp G_M10293_IG12 - ;; size=36 bbWeight=11.87 PerfScore 92.00 -G_M10293_IG19: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref
+ mov rcx, bword ptr [rbp-0xE0] + ; byrRegs +[rcx] + jmp G_M10293_IG04 + ;; size=12 bbWeight=1.66 PerfScore 4.98 +G_M10293_IG15: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref
movzx r15, r15w vpbroadcastw xmm0, r15d vmovaps xmmword ptr [rbp-0xB0], xmm0 @@ -257,9 +220,36 @@ G_M10293_IG19: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=000A {rcx rb movzx r13, r13w vpbroadcastw xmm2, r13d vmovaps xmmword ptr [rbp-0xD0], xmm2
- jmp G_M10293_IG15 - ;; size=59 bbWeight=0.13 PerfScore 1.13
+ ;; size=54 bbWeight=0.13 PerfScore 0.87 +G_M10293_IG16: ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz + vmovups xmm3, xmmword ptr [rcx+2*rax] + vpcmpeqw xmm4, xmm3, xmm0 + vpcmpeqw xmm5, xmm3, xmm1 + vpcmpeqw xmm3, xmm3, xmm2 + vpternlogd xmm4, xmm5, xmm3, -2 + vptest xmm4, xmm4 + jne SHORT G_M10293_IG20 + ;; size=31 bbWeight=0.39 PerfScore 3.87 +G_M10293_IG17: ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz + add rax, 8 + lea rdi, [r12-0x08] + cmp rax, rdi + jbe SHORT G_M10293_IG16 + ;; size=14 bbWeight=0.39 PerfScore 0.77 +G_M10293_IG18: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref + jmp G_M10293_IG10 + ;; size=5 bbWeight=0.13 PerfScore 0.26 +G_M10293_IG19: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + ; byrRegs -[rcx] + mov rdi, rbx + ; byrRegs +[rdi] + call [<unknown method>] + ; byrRegs -[rdi] + ; gcr arg pop 0 + jmp G_M10293_IG08 + ;; size=14 bbWeight=0.00 PerfScore 0.00
G_M10293_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref
+ ; byrRegs +[rcx]
vpmovmskb edx, xmm4 and edx, 0x5555 ;; size=10 bbWeight=0 PerfScore 0.00 @@ -292,24 +282,17 @@ G_M10293_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, ; gcr arg pop 0 mov rcx, bword ptr [rbp-0xE0] ; byrRegs +[rcx]
- ;; size=16 bbWeight=0 PerfScore 0.00
+ vmovaps xmm0, xmmword ptr [rbp-0xB0] + vmovaps xmm1, xmmword ptr [rbp-0xC0] + vmovaps xmm2, xmmword ptr [rbp-0xD0] + ;; size=40 bbWeight=0 PerfScore 0.00
G_M10293_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz blsr edx, dword ptr [rbp-0xD4] mov rax, qword ptr [rbp-0x30] jne SHORT G_M10293_IG21
- jmp G_M10293_IG14
+ jmp G_M10293_IG17
;; size=20 bbWeight=0 PerfScore 0.00
-G_M10293_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - ; byrRegs -[rcx] - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - mov rax, qword ptr [rbp-0x30] - jmp G_M10293_IG12 - ;; size=18 bbWeight=0 PerfScore 0.00 -G_M10293_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M10293_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz
mov qword ptr [rbp-0x30], rax mov esi, eax mov edi, dword ptr [rbx+0x08] @@ -317,7 +300,7 @@ G_M10293_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr ; byrRegs +[rdx] mov r8d, dword ptr [rbx+0x18] cmp edi, r8d
- jae SHORT G_M10293_IG24
+ jae SHORT G_M10293_IG25
mov r8d, edi mov dword ptr [rdx+4*r8], esi inc edi @@ -325,8 +308,20 @@ G_M10293_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr mov rax, qword ptr [rbp-0x30] jmp G_M10293_IG12 ;; size=43 bbWeight=0 PerfScore 0.00
+G_M10293_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref + ; byrRegs -[rdx] + mov rdi, rbx + ; byrRegs +[rdi] + call [<unknown method>] + ; byrRegs -[rcx rdi] + ; gcr arg pop 0 + mov rax, qword ptr [rbp-0x30] + mov rcx, bword ptr [rbp-0xE0] + ; byrRegs +[rcx] + jmp G_M10293_IG12 + ;; size=25 bbWeight=0 PerfScore 0.00
...

-38 (-5.39%) : 398007.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

@@ -14,8 +14,8 @@ ; V02 arg2 [V02,T08] ( 4, 3 ) ushort -> r15 single-def ; V03 arg3 [V03,T09] ( 4, 3 ) ushort -> r14 single-def ; V04 arg4 [V04,T10] ( 4, 3 ) ushort -> r13 single-def
-; V05 loc0 [V05,T01] ( 7,122.85) long -> r12 -; V06 loc1 [V06,T00] ( 20,483.26) long -> [rbp-0x30]
+; V05 loc0 [V05,T01] ( 6,123.19) long -> r12 +; V06 loc1 [V06,T00] ( 17,483.59) long -> [rbp-0x30]
; V07 loc2 [V07,T02] ( 4,120.52) byref -> [rbp-0xE0] spill-single-def ;* V08 loc3 [V08 ] ( 0, 0 ) simd64 -> zero-ref <System.Runtime.Intrinsics.Vector512`1[ushort]> ;* V09 loc4 [V09 ] ( 0, 0 ) simd64 -> zero-ref <System.Runtime.Intrinsics.Vector512`1[ushort]> @@ -106,7 +106,7 @@ G_M10293_IG02: ; bbWeight=1, gcVars=0000000000001000 {V50}, gcrefRegs=000 mov bword ptr [rbp-0xE0], rcx ; GC ptr vars +{V07} cmp r12, 32
- jb G_M10293_IG23
+ jb G_M10293_IG16
;; size=45 bbWeight=1 PerfScore 8.25 G_M10293_IG03: ; bbWeight=0.67, gcVars=0000000000000004 {V07}, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, gcvars, byref ; GC ptr vars -{V50} @@ -134,7 +134,7 @@ G_M10293_IG05: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, vpmovmskb edx, ymm4 and edx, 0xD1FFAB1E ;; size=10 bbWeight=0.33 PerfScore 1.08
-G_M10293_IG06: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M10293_IG06: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov dword ptr [rbp-0x94], edx xor edi, edi tzcnt edi, edx @@ -147,8 +147,8 @@ G_M10293_IG06: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, ; byrRegs +[r8] mov r9d, dword ptr [rbx+0x18] cmp edi, r9d
- jae SHORT G_M10293_IG11 - ;; size=38 bbWeight=0.67 PerfScore 8.33
+ jae G_M10293_IG22 + ;; size=42 bbWeight=0.67 PerfScore 8.33
G_M10293_IG07: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, byref mov r9d, edi mov dword ptr [r8+4*r9], esi @@ -161,46 +161,40 @@ G_M10293_IG08: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, mov rax, qword ptr [rbp-0x30] jne SHORT G_M10293_IG06 ;; size=15 bbWeight=0.67 PerfScore 2.67
-G_M10293_IG09: ; bbWeight=112.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M10293_IG09: ; bbWeight=112.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
add rax, 16 lea rdi, [r12-0x10] cmp rax, rdi
- mov rcx, bword ptr [rbp-0xE0] - ; byrRegs +[rcx]
vmovups ymm0, ymmword ptr [rbp-0x50] vmovups ymm1, ymmword ptr [rbp-0x70] vmovups ymm2, ymmword ptr [rbp-0x90]
- jbe G_M10293_IG04 - ;; size=43 bbWeight=112.67 PerfScore 1690.00 -G_M10293_IG10: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - jmp G_M10293_IG18 - ;; size=5 bbWeight=0.67 PerfScore 1.33 -G_M10293_IG11: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - ; byrRegs -[rcx] - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - jmp SHORT G_M10293_IG08 - ;; size=11 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov rdi, rbx - ; byrRegs +[rdi] - call [<unknown method>] - ; byrRegs -[rdi] - ; gcr arg pop 0 - mov rax, qword ptr [rbp-0x30] - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M10293_IG13: ; bbWeight=7.11, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - inc rax
+ jbe SHORT G_M10293_IG15 + ;; size=32 bbWeight=112.67 PerfScore 1577.33 +G_M10293_IG10: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp rax, r12
+ jae SHORT G_M10293_IG14 + ;; size=5 bbWeight=0.67 PerfScore 0.83 +G_M10293_IG11: ; bbWeight=6.11, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov rcx, bword ptr [rbp-0xE0] ; byrRegs +[rcx]
- jb G_M10293_IG19 - ;; size=19 bbWeight=7.11 PerfScore 17.78
+ movzx rdi, word ptr [rcx+2*rax] + cmp edi, r15d + je G_M10293_IG20 + ;; size=20 bbWeight=6.11 PerfScore 25.97 +G_M10293_IG12: ; bbWeight=5.93, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + ; byrRegs -[rcx] + cmp edi, r14d + je G_M10293_IG20 + cmp edi, r13d + je G_M10293_IG20 + ;; size=18 bbWeight=5.93 PerfScore 14.81 +G_M10293_IG13: ; bbWeight=7.11, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz + inc rax + cmp rax, r12 + jb SHORT G_M10293_IG11 + ;; size=8 bbWeight=7.11 PerfScore 10.67
G_M10293_IG14: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
- ; byrRegs -[rcx rbx]
+ ; byrRegs -[rbx]
; GC ptr vars -{V07} vzeroupper add rsp, 200 @@ -212,71 +206,14 @@ G_M10293_IG14: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { pop rbp ret ;; size=21 bbWeight=1 PerfScore 5.25
-G_M10293_IG15: ; bbWeight=0.74, gcVars=0000000000000004 {V07}, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, gcvars, byref, isz - ; byrRegs +[rcx rbx]
+G_M10293_IG15: ; bbWeight=56.33, gcVars=0000000000000004 {V07}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref + ; byrRegs +[rbx]
; GC ptr vars +{V02 V07}
- add rax, 8 - lea rdx, [r12-0x08] - cmp rax, rdx - vmovaps xmm0, xmmword ptr [rbp-0xB0] - vmovaps xmm1, xmmword ptr [rbp-0xC0] - vmovaps xmm2, xmmword ptr [rbp-0xD0] - ja SHORT G_M10293_IG18 - ;; size=38 bbWeight=0.74 PerfScore 8.15 -G_M10293_IG16: ; bbWeight=0.74, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - vmovups xmm3, xmmword ptr [rcx+2*rax] - vpcmpeqw xmm4, xmm3, xmm0 - vpcmpeqw xmm5, xmm3, xmm1 - vpcmpeqw xmm3, xmm3, xmm2 - vpternlogd xmm4, xmm5, xmm3, -2 - vptest xmm4, xmm4 - jne G_M10293_IG24 - ;; size=35 bbWeight=0.74 PerfScore 7.41 -G_M10293_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz - add rax, 8 - lea rdx, [r12-0x08] - cmp rax, rdx - vmovaps xmm0, xmmword ptr [rbp-0xB0] - vmovaps xmm1, xmmword ptr [rbp-0xC0] - vmovaps xmm2, xmmword ptr [rbp-0xD0] - jbe SHORT G_M10293_IG16 - ;; size=38 bbWeight=0 PerfScore 0.00 -G_M10293_IG18: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - cmp rax, r12 - jae G_M10293_IG14 - ;; size=9 bbWeight=0.33 PerfScore 0.42 -G_M10293_IG19: ; bbWeight=6.11, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz - movzx rdi, word ptr [rcx+2*rax] - cmp edi, r15d - je SHORT G_M10293_IG21 - ;; size=9 bbWeight=6.11 PerfScore 19.86 -G_M10293_IG20: ; bbWeight=5.93, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz - ; byrRegs -[rcx] - cmp edi, r14d - je SHORT G_M10293_IG21 - cmp edi, r13d - jne G_M10293_IG13 - ;; size=14 bbWeight=5.93 PerfScore 14.81 -G_M10293_IG21: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref - mov qword ptr [rbp-0x30], rax - mov esi, eax - mov edi, dword ptr [rbx+0x08] - mov rdx, bword ptr [rbx+0x10] - ; byrRegs +[rdx] - mov r8d, dword ptr [rbx+0x18] - cmp edi, r8d - jae G_M10293_IG12 - ;; size=26 bbWeight=0.19 PerfScore 1.57 -G_M10293_IG22: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=000C {rdx rbx}, byref - mov r8d, edi - mov dword ptr [rdx+4*r8], esi - inc edi - mov dword ptr [rbx+0x08], edi - mov rax, qword ptr [rbp-0x30] - jmp G_M10293_IG13 - ;; size=21 bbWeight=0.19 PerfScore 1.02 -G_M10293_IG23: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref - ; byrRegs -[rdx] +[rcx]
+ mov rcx, bword ptr [rbp-0xE0] + ; byrRegs +[rcx] + jmp G_M10293_IG04 + ;; size=12 bbWeight=56.33 PerfScore 169.00 +G_M10293_IG16: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref
movzx r15, r15w vpbroadcastw xmm0, r15d vmovaps xmmword ptr [rbp-0xB0], xmm0 @@ -286,9 +223,64 @@ G_M10293_IG23: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=000A {rcx rb movzx r13, r13w vpbroadcastw xmm2, r13d vmovaps xmmword ptr [rbp-0xD0], xmm2
- jmp G_M10293_IG16 - ;; size=59 bbWeight=0.33 PerfScore 2.92
+ ;; size=54 bbWeight=0.33 PerfScore 2.25 +G_M10293_IG17: ; bbWeight=0.74, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz + vmovups xmm3, xmmword ptr [rcx+2*rax] + vpcmpeqw xmm4, xmm3, xmm0 + vpcmpeqw xmm5, xmm3, xmm1 + vpcmpeqw xmm3, xmm3, xmm2 + vpternlogd xmm4, xmm5, xmm3, -2 + vptest xmm4, xmm4 + jne SHORT G_M10293_IG24 + ;; size=31 bbWeight=0.74 PerfScore 7.41 +G_M10293_IG18: ; bbWeight=0.74, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz + add rax, 8 + lea rdi, [r12-0x08] + cmp rax, rdi + jbe SHORT G_M10293_IG17 + ;; size=14 bbWeight=0.74 PerfScore 1.48 +G_M10293_IG19: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref + jmp G_M10293_IG10 + ;; size=5 bbWeight=0.33 PerfScore 0.67 +G_M10293_IG20: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz + ; byrRegs -[rcx] + mov qword ptr [rbp-0x30], rax + mov esi, eax + mov edi, dword ptr [rbx+0x08] + mov rdx, bword ptr [rbx+0x10] + ; byrRegs +[rdx] + mov r8d, dword ptr [rbx+0x18] + cmp edi, r8d + jae SHORT G_M10293_IG23 + ;; size=22 bbWeight=0.19 PerfScore 1.57 +G_M10293_IG21: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=000C {rdx rbx}, byref + mov r8d, edi + mov dword ptr [rdx+4*r8], esi + inc edi + mov dword ptr [rbx+0x08], edi + mov rax, qword ptr [rbp-0x30] + jmp G_M10293_IG13 + ;; size=21 bbWeight=0.19 PerfScore 1.02 +G_M10293_IG22: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + ; byrRegs -[rdx] + mov rdi, rbx + ; byrRegs +[rdi] + call [<unknown method>] + ; byrRegs -[rdi] + ; gcr arg pop 0 + jmp G_M10293_IG08 + ;; size=14 bbWeight=0.00 PerfScore 0.00 +G_M10293_IG23: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref + mov rdi, rbx + ; byrRegs +[rdi] + call [<unknown method>] + ; byrRegs -[rdi] + ; gcr arg pop 0 + mov rax, qword ptr [rbp-0x30]
...

-12 (-1.78%) : 211971.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionaryGenericTestsstringstring:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)

@@ -65,7 +65,7 @@ ; ; Lcl frame size = 88
-G_M22506_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M22506_IG01: ; bbWeight=0.90, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp] push rax sub rsp, 128 @@ -85,84 +85,20 @@ G_M22506_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[r14] mov r13d, dword ptr [rbp+0x54] mov ebx, dword ptr [rbp+0x44]
- ;; size=91 bbWeight=1 PerfScore 20.33 -G_M22506_IG02: ; bbWeight=1, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref - jmp G_M22506_IG04 - ;; size=5 bbWeight=1 PerfScore 2.00 -G_M22506_IG03: ; bbWeight=0.90, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref - cmp r13d, ecx - jae G_M22506_IG15 - mov rcx, gword ptr [r15+0x08] - ; gcrRegs +[rcx] - cmp r13d, dword ptr [rcx+0x08] - jae G_M22506_IG09 - mov esi, r13d - mov rbx, gword ptr [rcx+8*rsi+0x10] - ; gcrRegs +[rbx] - cmp byte ptr [r14], r14b - test rbx, rbx - je G_M22506_IG13 - mov rsi, gword ptr [r14+0x08] - ; gcrRegs +[rsi] - mov byte ptr [rbp-0x48], 0 - xor ecx, ecx - ; gcrRegs -[rcx] - mov dword ptr [rbp-0x44], ecx - mov dword ptr [rsp], 1 - lea rcx, [rbp-0x30] - mov qword ptr [rsp+0x08], rcx - mov rcx, qword ptr [rbp-0x48] - mov rdx, rbx - ; gcrRegs +[rdx] - mov rdi, r14 - ; gcrRegs +[rdi] - mov r8, rbx - ; gcrRegs +[r8] - xor r9d, r9d - call [<unknown method>] - ; gcrRegs -[rdx rsi rdi r8] - xor rcx, rcx - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x30], rcx - test eax, eax - je G_M22506_IG12 - mov rsi, gword ptr [r14+0x08] - ; gcrRegs +[rsi] - mov dword ptr [rsp], 1 - lea rcx, [rbp-0x38] - ; gcrRegs -[rcx] - mov qword ptr [rsp+0x08], rcx - mov rcx, qword ptr [rbp-0x48] - mov rdx, rbx - ; gcrRegs +[rdx] - mov rdi, r14 - ; gcrRegs +[rdi] - mov r8, rbx - ; gcrRegs +[r8] - xor r9d, r9d - call [<unknown method>] - ; gcrRegs -[rdx rbx rsi rdi r8] - xor rsi, rsi - ; gcrRegs +[rsi] - mov gword ptr [rbp-0x38], rsi - test eax, eax - jne G_M22506_IG14 - xor ebx, ebx - ;; size=166 bbWeight=0.90 PerfScore 36.36 -G_M22506_IG04: ; bbWeight=0.90, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref - ; gcrRegs -[rsi]
+ ;; size=91 bbWeight=0.90 PerfScore 18.37 +G_M22506_IG02: ; bbWeight=0.90, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
cmp ebx, dword ptr [r15+0x10]
- jge G_M22506_IG08
+ jge G_M22506_IG06
;; size=10 bbWeight=0.90 PerfScore 3.61
-G_M22506_IG05: ; bbWeight=99.10, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
+G_M22506_IG03: ; bbWeight=99.10, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
cmp ebx, dword ptr [r15+0x10]
- jae G_M22506_IG15
+ jae G_M22506_IG11
;; size=10 bbWeight=99.10 PerfScore 396.39
-G_M22506_IG06: ; bbWeight=99.78, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
+G_M22506_IG04: ; bbWeight=99.78, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
mov rdx, gword ptr [r15+0x08] ; gcrRegs +[rdx] cmp ebx, dword ptr [rdx+0x08]
- jae G_M22506_IG09
+ jae G_M22506_IG12
mov edi, ebx mov rsi, gword ptr [rdx+8*rdi+0x10] ; gcrRegs +[rsi] @@ -239,7 +175,7 @@ G_M22506_IG06: ; bbWeight=99.78, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 mov rsi, gword ptr [rbp-0x70] ; gcrRegs +[rsi] ;; size=221 bbWeight=99.78 PerfScore 4140.82
-G_M22506_IG07: ; bbWeight=99.78, extend
+G_M22506_IG05: ; bbWeight=99.78, extend
; GC ptr vars -{V30} call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rax rsi] @@ -255,23 +191,74 @@ G_M22506_IG07: ; bbWeight=99.78, extend ; gcrRegs -[rdx] inc ebx cmp ebx, dword ptr [r15+0x10]
- jl G_M22506_IG05
+ jl G_M22506_IG03
;; size=39 bbWeight=99.78 PerfScore 1097.57
-G_M22506_IG08: ; bbWeight=0.90, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M22506_IG06: ; bbWeight=0.90, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref, isz
inc r13d mov ecx, dword ptr [r15+0x10] cmp r13d, ecx
- jge SHORT G_M22506_IG10 - jmp G_M22506_IG03 - ;; size=17 bbWeight=0.90 PerfScore 4.97 -G_M22506_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[r14-r15] - call CORINFO_HELP_RNGCHKFAIL - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M22506_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - nop - ;; size=1 bbWeight=0 PerfScore 0.00 -G_M22506_IG11: ; bbWeight=0, epilog, nogc, extend
+ jge G_M22506_IG07 + jae G_M22506_IG11 + mov rcx, gword ptr [r15+0x08] + ; gcrRegs +[rcx] + cmp r13d, dword ptr [rcx+0x08] + jae G_M22506_IG12 + mov esi, r13d + mov rbx, gword ptr [rcx+8*rsi+0x10] + ; gcrRegs +[rbx] + cmp byte ptr [r14], r14b + test rbx, rbx + je G_M22506_IG09 + mov rsi, gword ptr [r14+0x08] + ; gcrRegs +[rsi] + mov byte ptr [rbp-0x48], 0 + xor ecx, ecx + ; gcrRegs -[rcx] + mov dword ptr [rbp-0x44], ecx + mov dword ptr [rsp], 1 + lea rcx, [rbp-0x30] + mov qword ptr [rsp+0x08], rcx + mov rcx, qword ptr [rbp-0x48] + mov rdx, rbx + ; gcrRegs +[rdx] + mov rdi, r14 + ; gcrRegs +[rdi] + mov r8, rbx + ; gcrRegs +[r8] + xor r9d, r9d + call [<unknown method>] + ; gcrRegs -[rdx rsi rdi r8] + xor rcx, rcx + ; gcrRegs +[rcx] + mov gword ptr [rbp-0x30], rcx + test eax, eax + je SHORT G_M22506_IG08 + mov rsi, gword ptr [r14+0x08] + ; gcrRegs +[rsi] + mov dword ptr [rsp], 1 + lea rcx, [rbp-0x38] + ; gcrRegs -[rcx] + mov qword ptr [rsp+0x08], rcx + mov rcx, qword ptr [rbp-0x48] + mov rdx, rbx + ; gcrRegs +[rdx] + mov rdi, r14 + ; gcrRegs +[rdi] + mov r8, rbx + ; gcrRegs +[r8] + xor r9d, r9d + call [<unknown method>] + ; gcrRegs -[rdx rbx rsi rdi r8] + xor rsi, rsi + ; gcrRegs +[rsi] + mov gword ptr [rbp-0x38], rsi + test eax, eax + jne SHORT G_M22506_IG10 + xor ebx, ebx + jmp G_M22506_IG02 + ;; size=176 bbWeight=0.90 PerfScore 41.11 +G_M22506_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ; gcrRegs -[rsi r14-r15]
add rsp, 248 pop rbx pop r12 @@ -281,7 +268,7 @@ G_M22506_IG11: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=18 bbWeight=0 PerfScore 0.00
-G_M22506_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M22506_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov byte ptr [rbp-0x50], 1 mov byte ptr [rbp-0x4F], 0 movzx rsi, word ptr [rbp-0x50] @@ -294,7 +281,7 @@ G_M22506_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { call CORINFO_HELP_THROW ; gcrRegs -[rax rdi] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M22506_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22506_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 1 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS @@ -305,7 +292,7 @@ G_M22506_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax rdi] int3 ;; size=30 bbWeight=0 PerfScore 0.00
-G_M22506_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22506_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov byte ptr [rbp-0x50], 1 mov byte ptr [rbp-0x4F], al movzx rsi, word ptr [rbp-0x50] @@ -318,12 +305,16 @@ G_M22506_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call CORINFO_HELP_THROW ; gcrRegs -[rax rdi] ;; size=27 bbWeight=0 PerfScore 0.00
-G_M22506_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22506_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] int3 ;; size=7 bbWeight=0 PerfScore 0.00
+G_M22506_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + call CORINFO_HELP_RNGCHKFAIL + int3 + ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 675, prolog size 76, PerfScore 5702.06, instruction count 156, allocated bytes for code 675 (MethodHash=967ea815) for method System.Collections.Concurrent.Tests.ConcurrentDictionary_Generic_Tests_string_string:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)
+; Total bytes of code 663, prolog size 76, PerfScore 5697.87, instruction count 154, allocated bytes for code 663 (MethodHash=967ea815) for method System.Collections.Concurrent.Tests.ConcurrentDictionary_Generic_Tests_string_string:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)
; ============================================================ Unwind Info:

+15 (+2.45%) : 664662.dasm - System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan1[ushort],System.Span1[ubyte],byref,byref):ubyte (Tier1)

@@ -68,7 +68,7 @@ G_M25359_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, push rax lea rbp, [rsp+0x30] ;; size=16 bbWeight=1 PerfScore 7.50
-G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0384 {rdx rdi r8 r9}, byref, isz
+G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0384 {rdx rdi r8 r9}, byref
; byrRegs +[rdx rdi r8-r9] mov r10, rdx ; byrRegs +[r10] @@ -79,34 +79,23 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0384 {rdx rdi r xor r14d, r14d mov dword ptr [rbp-0x30], esi test esi, esi
- je G_M25359_IG12
+ je G_M25359_IG11
mov r13, 0xD1FFAB1E ; static handle mov eax, ebx sar eax, 2 lea eax, [rax+2*rax] cmp ecx, eax
- jl SHORT G_M25359_IG04 - ;; size=50 bbWeight=1 PerfScore 7.25 -G_M25359_IG03: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref, isz
+ jl G_M25359_IG15 + ;; size=54 bbWeight=1 PerfScore 7.25 +G_M25359_IG03: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
; byrRegs -[rdx] +[r13] lea r12d, [rbx-0x04]
- jmp SHORT G_M25359_IG05 - ;; size=6 bbWeight=0.83 PerfScore 2.08
+ ;; size=4 bbWeight=0.83 PerfScore 0.42
G_M25359_IG04: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
- mov edx, 0xD1FFAB1E - mov eax, edx - imul edx:eax, ecx - mov r12d, edx - shr r12d, 31 - add r12d, edx - shl r12d, 2 - mov ecx, dword ptr [rbp-0x2C] - ;; size=26 bbWeight=0.17 PerfScore 1.00 -G_M25359_IG05: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
test r12d, r12d
- jle G_M25359_IG09
+ jle G_M25359_IG08
;; size=9 bbWeight=0.17 PerfScore 0.21
-G_M25359_IG06: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
+G_M25359_IG05: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
movsxd rax, r15d lea rax, bword ptr [rdi+2*rax] ; byrRegs +[rax] @@ -136,11 +125,11 @@ G_M25359_IG06: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r shl eax, 6 or edx, eax ;; size=90 bbWeight=20.67 PerfScore 625.17
-G_M25359_IG07: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
+G_M25359_IG06: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
test edx, edx
- jl G_M25359_IG14
+ jl G_M25359_IG13
;; size=8 bbWeight=20.67 PerfScore 25.83
-G_M25359_IG08: ; bbWeight=21.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
+G_M25359_IG07: ; bbWeight=21.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
movsxd rax, r14d add rax, r10 ; byrRegs +[rax] @@ -154,15 +143,15 @@ G_M25359_IG08: ; bbWeight=21.67, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r add r14d, 3 add r15d, 4 cmp r15d, r12d
- jl G_M25359_IG06
+ jl G_M25359_IG05
;; size=41 bbWeight=21.67 PerfScore 146.25
-G_M25359_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
+G_M25359_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref
; byrRegs -[rax] lea eax, [rbx-0x04] cmp r12d, eax
- jne G_M25359_IG14
+ jne G_M25359_IG13
cmp r15d, ebx
- je G_M25359_IG14
+ je G_M25359_IG13
lea eax, [rbx-0x04] cdqe movzx rax, word ptr [rdi+2*rax] @@ -181,7 +170,7 @@ G_M25359_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 or esi, edx or esi, edi test esi, -256
- jne G_M25359_IG14
+ jne G_M25359_IG13
cdqe movsx rax, byte ptr [rax+r13] shl eax, 18 @@ -192,7 +181,7 @@ G_M25359_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 cmp edi, 61 je G_M25359_IG16 ;; size=112 bbWeight=1 PerfScore 27.25
-G_M25359_IG10: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=2700 {r8 r9 r10 r13}, byref, isz
+G_M25359_IG09: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=2700 {r8 r9 r10 r13}, byref, isz
movsxd rdi, edi movsx rdi, byte ptr [rdi+r13] or eax, edi @@ -200,11 +189,11 @@ G_M25359_IG10: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=2700 {r8 r9 movsx rdi, byte ptr [rdx+r13] shl edi, 6 or eax, edi
- jl SHORT G_M25359_IG14
+ jl SHORT G_M25359_IG13
mov ecx, dword ptr [rbp-0x2C] add ecx, -3 cmp r14d, ecx
- jg SHORT G_M25359_IG14
+ jg SHORT G_M25359_IG13
movsxd rdi, r14d add r10, rdi mov edi, eax @@ -216,18 +205,18 @@ G_M25359_IG10: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=2700 {r8 r9 mov byte ptr [r10+0x02], al add r14d, 3 ;; size=67 bbWeight=0.83 PerfScore 15.21
-G_M25359_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byref, isz
+G_M25359_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byref, isz
; byrRegs -[r10 r13] add r15d, 4 cmp ebx, dword ptr [rbp-0x30]
- jne SHORT G_M25359_IG14
+ jne SHORT G_M25359_IG13
;; size=9 bbWeight=1 PerfScore 3.25
-G_M25359_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byref
+G_M25359_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byref
mov dword ptr [r8], r15d mov dword ptr [r9], r14d mov eax, 1 ;; size=11 bbWeight=1 PerfScore 2.25
-G_M25359_IG13: ; bbWeight=1, epilog, nogc, extend
+G_M25359_IG12: ; bbWeight=1, epilog, nogc, extend
add rsp, 8 pop rbx pop r12 @@ -237,7 +226,7 @@ G_M25359_IG13: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25
-G_M25359_IG14: ; bbWeight=5.94, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, gcvars, byref
+G_M25359_IG13: ; bbWeight=5.94, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, gcvars, byref
mov dword ptr [r8], r15d mov dword ptr [r9], r14d xor edi, edi @@ -248,7 +237,7 @@ G_M25359_IG14: ; bbWeight=5.94, gcVars=0000000000000000 {}, gcrefRegs=000 ; gcr arg pop 0 xor eax, eax ;; size=24 bbWeight=5.94 PerfScore 56.42
-G_M25359_IG15: ; bbWeight=5.94, epilog, nogc, extend
+G_M25359_IG14: ; bbWeight=5.94, epilog, nogc, extend
add rsp, 8 pop rbx pop r12 @@ -258,8 +247,20 @@ G_M25359_IG15: ; bbWeight=5.94, epilog, nogc, extend pop rbp ret ;; size=15 bbWeight=5.94 PerfScore 25.24
-G_M25359_IG16: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=2700 {r8 r9 r10 r13}, gcvars, byref, isz - ; byrRegs +[r8-r10 r13]
+G_M25359_IG15: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, gcvars, byref + ; byrRegs +[rdi r8-r10 r13] + mov edx, 0xD1FFAB1E + mov eax, edx + imul edx:eax, ecx + mov r12d, edx + shr r12d, 31 + add r12d, edx + shl r12d, 2 + mov ecx, dword ptr [rbp-0x2C] + jmp G_M25359_IG04 + ;; size=31 bbWeight=0.17 PerfScore 1.33 +G_M25359_IG16: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=2700 {r8 r9 r10 r13}, byref, isz + ; byrRegs -[rdi]
cmp edx, 61 je SHORT G_M25359_IG17 movsxd rdi, edx @@ -268,11 +269,11 @@ G_M25359_IG16: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=000 or edi, eax mov eax, edi test eax, eax
- jl SHORT G_M25359_IG14
+ jl SHORT G_M25359_IG13
mov ecx, dword ptr [rbp-0x2C] lea edi, [rcx-0x02] cmp r14d, edi
- jg SHORT G_M25359_IG14
+ jg SHORT G_M25359_IG13
mov edi, eax sar edi, 16 movsxd rcx, r14d @@ -282,29 +283,29 @@ G_M25359_IG16: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=000 movsxd rdi, edi mov byte ptr [r10+rdi], al add r14d, 2
- jmp G_M25359_IG11
+ jmp G_M25359_IG10
;; size=70 bbWeight=0.17 PerfScore 2.83
-G_M25359_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0700 {r8 r9 r10}, byref, isz
+G_M25359_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0700 {r8 r9 r10}, byref
; byrRegs -[r13] test eax, eax
- jl SHORT G_M25359_IG14
+ jl G_M25359_IG13
mov ecx, dword ptr [rbp-0x2C] dec ecx cmp r14d, ecx
- jg SHORT G_M25359_IG14
+ jg G_M25359_IG13
sar eax, 16 movsxd rcx, r14d mov byte ptr [r10+rcx], al inc r14d
- jmp G_M25359_IG11 - ;; size=32 bbWeight=0 PerfScore 0.00
+ jmp G_M25359_IG10 + ;; size=40 bbWeight=0 PerfScore 0.00
G_M25359_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2780 {rdi r8 r9 r10 r13}, byref ; byrRegs +[rdi r13] mov edx, -1
- jmp G_M25359_IG07
+ jmp G_M25359_IG06
;; size=10 bbWeight=0 PerfScore 0.00
-; Total bytes of code 611, prolog size 16, PerfScore 951.99, instruction count 195, allocated bytes for code 611 (MethodHash=70389cf0) for method System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref):ubyte (Tier1)
+; Total bytes of code 626, prolog size 16, PerfScore 950.66, instruction count 195, allocated bytes for code 626 (MethodHash=70389cf0) for method System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref):ubyte (Tier1)
; ============================================================ Unwind Info:

+10 (+4.31%) : 62710.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)

@@ -40,20 +40,16 @@ G_M28701_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=15 bbWeight=1 PerfScore 5.75
-G_M28701_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r15d, 1
- jmp SHORT G_M28701_IG04 - ;; size=8 bbWeight=1 PerfScore 2.25 -G_M28701_IG03: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - inc r15d - ;; size=3 bbWeight=0.04 PerfScore 0.01 -G_M28701_IG04: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=6 bbWeight=1 PerfScore 0.25 +G_M28701_IG03: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov edi, r15d add edi, dword ptr [rbx+0x38] cmp edi, dword ptr [rbx+0x3C]
- jl SHORT G_M28701_IG06
+ jl SHORT G_M28701_IG05
;; size=11 bbWeight=0.04 PerfScore 0.28
-G_M28701_IG05: ; bbWeight=1.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG04: ; bbWeight=1.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, rbx ; gcrRegs +[rdi] call [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this] @@ -62,32 +58,32 @@ G_M28701_IG05: ; bbWeight=1.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov edi, r15d add edi, dword ptr [rbx+0x38] cmp edi, dword ptr [rbx+0x3C]
- jge SHORT G_M28701_IG05
+ jge SHORT G_M28701_IG04
;; size=20 bbWeight=1.29 PerfScore 13.56
-G_M28701_IG06: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG05: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x28], 0
- jne SHORT G_M28701_IG14
+ jne G_M28701_IG15
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] mov r14d, r15d add r14d, dword ptr [rbx+0x38] mov eax, r14d cmp eax, dword ptr [rdi+0x08]
- jae SHORT G_M28701_IG13
+ jae SHORT G_M28701_IG14
mov rax, gword ptr [rdi+8*rax+0x10] ; gcrRegs +[rax]
- ;; size=31 bbWeight=1.04 PerfScore 16.10 -G_M28701_IG07: ; bbWeight=1.04, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=35 bbWeight=1.04 PerfScore 16.10 +G_M28701_IG06: ; bbWeight=1.04, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] cmp word ptr [rax+0x0C], 0x2018
- je SHORT G_M28701_IG03
+ je SHORT G_M28701_IG12
;; size=8 bbWeight=1.04 PerfScore 4.15
-G_M28701_IG08: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG07: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] cmp r14d, dword ptr [rbx+0x3C]
- jl SHORT G_M28701_IG10
+ jl SHORT G_M28701_IG09
;; size=6 bbWeight=1 PerfScore 4.00
-G_M28701_IG09: ; bbWeight=0.24, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG08: ; bbWeight=0.24, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, rbx ; gcrRegs +[rdi] call [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this] @@ -96,27 +92,27 @@ G_M28701_IG09: ; bbWeight=0.24, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov eax, r15d add eax, dword ptr [rbx+0x38] cmp eax, dword ptr [rbx+0x3C]
- jge SHORT G_M28701_IG09
+ jge SHORT G_M28701_IG08
;; size=20 bbWeight=0.24 PerfScore 2.56
-G_M28701_IG10: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG09: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x28], 0
- jne SHORT G_M28701_IG15
+ jne SHORT G_M28701_IG13
mov rax, gword ptr [rbx+0x18] ; gcrRegs +[rax] mov ecx, r15d add ecx, dword ptr [rbx+0x38] cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M28701_IG13
+ jae SHORT G_M28701_IG14
mov rcx, gword ptr [rax+8*rcx+0x10] ; gcrRegs +[rcx] ;; size=27 bbWeight=1 PerfScore 15.25
-G_M28701_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M28701_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx] xor eax, eax cmp word ptr [rcx+0x0C], 0x2019 sete al ;; size=11 bbWeight=1 PerfScore 4.25
-G_M28701_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M28701_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 8 pop rbx pop r14 @@ -124,12 +120,29 @@ G_M28701_IG12: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25
-G_M28701_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[rcx]
+G_M28701_IG12: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[rcx] +[rbx] + inc r15d + jmp G_M28701_IG03 + ;; size=8 bbWeight=0.04 PerfScore 0.09 +G_M28701_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + mov rax, gword ptr [rbx+0x28] + ; gcrRegs +[rax] + mov ecx, r15d + add ecx, dword ptr [rbx+0x38] + cmp ecx, dword ptr [rax+0x08] + jae SHORT G_M28701_IG14 + imul rcx, rcx, 96 + mov rcx, gword ptr [rax+rcx+0x18] + ; gcrRegs +[rcx] + jmp SHORT G_M28701_IG10 + ;; size=26 bbWeight=0 PerfScore 0.00 +G_M28701_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax rcx rbx]
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M28701_IG14: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx] mov rcx, gword ptr [rbx+0x28] ; gcrRegs +[rcx] @@ -137,27 +150,14 @@ G_M28701_IG14: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr add r14d, dword ptr [rbx+0x38] mov eax, r14d cmp eax, dword ptr [rcx+0x08]
- jae SHORT G_M28701_IG13
+ jae SHORT G_M28701_IG14
imul rax, rax, 96 mov rax, gword ptr [rcx+rax+0x18] ; gcrRegs +[rax]
- jmp SHORT G_M28701_IG07 - ;; size=30 bbWeight=0 PerfScore 0.00 -G_M28701_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[rax rcx] - mov rax, gword ptr [rbx+0x28] - ; gcrRegs +[rax] - mov ecx, r15d - add ecx, dword ptr [rbx+0x38] - cmp ecx, dword ptr [rax+0x08] - jae SHORT G_M28701_IG13 - imul rcx, rcx, 96 - mov rcx, gword ptr [rax+rcx+0x18] - ; gcrRegs +[rcx] - jmp SHORT G_M28701_IG11 - ;; size=26 bbWeight=0 PerfScore 0.00
+ jmp G_M28701_IG06 + ;; size=33 bbWeight=0 PerfScore 0.00
-; Total bytes of code 232, prolog size 15, PerfScore 71.41, instruction count 74, allocated bytes for code 232 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
+; Total bytes of code 242, prolog size 15, PerfScore 69.49, instruction count 74, allocated bytes for code 242 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
; ============================================================ Unwind Info:

+10 (+4.31%) : 95752.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)

@@ -40,20 +40,16 @@ G_M28701_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=15 bbWeight=1 PerfScore 5.75
-G_M28701_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r15d, 1
- jmp SHORT G_M28701_IG04 - ;; size=8 bbWeight=1 PerfScore 2.25 -G_M28701_IG03: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - inc r15d - ;; size=3 bbWeight=0.08 PerfScore 0.02 -G_M28701_IG04: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=6 bbWeight=1 PerfScore 0.25 +G_M28701_IG03: ; bbWeight=0.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov edi, r15d add edi, dword ptr [rbx+0x38] cmp edi, dword ptr [rbx+0x3C]
- jl SHORT G_M28701_IG06
+ jl SHORT G_M28701_IG05
;; size=11 bbWeight=0.08 PerfScore 0.58
-G_M28701_IG05: ; bbWeight=1.36, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG04: ; bbWeight=1.36, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, rbx ; gcrRegs +[rdi] call [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this] @@ -62,34 +58,34 @@ G_M28701_IG05: ; bbWeight=1.36, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov edi, r15d add edi, dword ptr [rbx+0x38] cmp edi, dword ptr [rbx+0x3C]
- jge SHORT G_M28701_IG05
+ jge SHORT G_M28701_IG04
;; size=20 bbWeight=1.36 PerfScore 14.25
-G_M28701_IG06: ; bbWeight=1.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG05: ; bbWeight=1.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
cmp gword ptr [rbx+0x28], 0
- jne SHORT G_M28701_IG15 - ;; size=7 bbWeight=1.08 PerfScore 4.32 -G_M28701_IG07: ; bbWeight=1.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jne G_M28701_IG16 + ;; size=11 bbWeight=1.08 PerfScore 4.32 +G_M28701_IG06: ; bbWeight=1.08, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] mov r14d, r15d add r14d, dword ptr [rbx+0x38] mov eax, r14d cmp eax, dword ptr [rdi+0x08]
- jae SHORT G_M28701_IG14
+ jae SHORT G_M28701_IG15
mov rax, gword ptr [rdi+8*rax+0x10] ; gcrRegs +[rax] ;; size=24 bbWeight=1.08 PerfScore 12.41
-G_M28701_IG08: ; bbWeight=1.08, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG07: ; bbWeight=1.08, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] cmp word ptr [rax+0x0C], 0x2018
- je SHORT G_M28701_IG03
+ je SHORT G_M28701_IG13
;; size=8 bbWeight=1.08 PerfScore 4.32
-G_M28701_IG09: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG08: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] cmp r14d, dword ptr [rbx+0x3C]
- jl SHORT G_M28701_IG11
+ jl SHORT G_M28701_IG10
;; size=6 bbWeight=1 PerfScore 4.00
-G_M28701_IG10: ; bbWeight=0.26, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG09: ; bbWeight=0.26, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdi, rbx ; gcrRegs +[rdi] call [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this] @@ -98,27 +94,27 @@ G_M28701_IG10: ; bbWeight=0.26, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov eax, r15d add eax, dword ptr [rbx+0x38] cmp eax, dword ptr [rbx+0x3C]
- jge SHORT G_M28701_IG10
+ jge SHORT G_M28701_IG09
;; size=20 bbWeight=0.26 PerfScore 2.70
-G_M28701_IG11: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG10: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x28], 0
- jne SHORT G_M28701_IG16
+ jne SHORT G_M28701_IG14
mov rax, gword ptr [rbx+0x18] ; gcrRegs +[rax] mov ecx, r15d add ecx, dword ptr [rbx+0x38] cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M28701_IG14
+ jae SHORT G_M28701_IG15
mov rcx, gword ptr [rax+8*rcx+0x10] ; gcrRegs +[rcx] ;; size=27 bbWeight=1 PerfScore 15.25
-G_M28701_IG12: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M28701_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx] xor eax, eax cmp word ptr [rcx+0x0C], 0x2019 sete al ;; size=11 bbWeight=1 PerfScore 4.25
-G_M28701_IG13: ; bbWeight=1, epilog, nogc, extend
+G_M28701_IG12: ; bbWeight=1, epilog, nogc, extend
add rsp, 8 pop rbx pop r14 @@ -126,12 +122,29 @@ G_M28701_IG13: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25
-G_M28701_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[rcx]
+G_M28701_IG13: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[rcx] +[rbx] + inc r15d + jmp G_M28701_IG03 + ;; size=8 bbWeight=0.08 PerfScore 0.18 +G_M28701_IG14: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + mov rax, gword ptr [rbx+0x28] + ; gcrRegs +[rax] + mov ecx, r15d + add ecx, dword ptr [rbx+0x38] + cmp ecx, dword ptr [rax+0x08] + jae SHORT G_M28701_IG15 + imul rcx, rcx, 96 + mov rcx, gword ptr [rax+rcx+0x18] + ; gcrRegs +[rcx] + jmp SHORT G_M28701_IG11 + ;; size=26 bbWeight=0 PerfScore 0.00 +G_M28701_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax rcx rbx]
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M28701_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG16: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx] mov rcx, gword ptr [rbx+0x28] ; gcrRegs +[rcx] @@ -139,27 +152,14 @@ G_M28701_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr add r14d, dword ptr [rbx+0x38] mov eax, r14d cmp eax, dword ptr [rcx+0x08]
- jae SHORT G_M28701_IG14
+ jae SHORT G_M28701_IG15
imul rax, rax, 96 mov rax, gword ptr [rcx+rax+0x18] ; gcrRegs +[rax]
- jmp SHORT G_M28701_IG08 - ;; size=30 bbWeight=0 PerfScore 0.00 -G_M28701_IG16: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[rax rcx] - mov rax, gword ptr [rbx+0x28] - ; gcrRegs +[rax] - mov ecx, r15d - add ecx, dword ptr [rbx+0x38] - cmp ecx, dword ptr [rax+0x08] - jae SHORT G_M28701_IG14 - imul rcx, rcx, 96 - mov rcx, gword ptr [rax+rcx+0x18] - ; gcrRegs +[rcx] - jmp SHORT G_M28701_IG12 - ;; size=26 bbWeight=0 PerfScore 0.00
+ jmp G_M28701_IG07 + ;; size=33 bbWeight=0 PerfScore 0.00
-; Total bytes of code 232, prolog size 15, PerfScore 73.34, instruction count 74, allocated bytes for code 232 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
+; Total bytes of code 242, prolog size 15, PerfScore 71.50, instruction count 74, allocated bytes for code 242 (MethodHash=1e3e8fe2) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
; ============================================================ Unwind Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.linux.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.x64.checked.mch 2 0 2 0 -0 +36
libraries.crossgen2.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.x64.Release.mch 15 5 10 0 -104 +117
librariestestsnotieredcompilation.run.linux.x64.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.x64.checked.mch 0 0 0 0 -0 +0
17 5 12 0 -104 +153

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 30,556 1,671 28,885 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.x64.checked.mch 154,583 58,338 96,245 0 (0.00%) 0 (0.00%)
benchmarks.run_tiered.linux.x64.checked.mch 61,656 46,926 14,730 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 643,180 386,479 256,701 0 (0.00%) 0 (0.00%)
libraries.crossgen2.linux.x64.checked.mch 265,300 15 265,285 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 298,634 6 298,628 0 (0.00%) 0 (0.00%)
libraries_tests.run.linux.x64.Release.mch 752,906 493,519 259,387 0 (0.00%) 0 (0.00%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,849 21,933 283,916 0 (0.00%) 0 (0.00%)
realworld.run.linux.x64.checked.mch 33,248 43 33,205 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,407 10 27,397 0 (0.00%) 0 (0.00%)
2,573,319 1,008,940 1,564,379 0 (0.00%) 0 (0.00%)

jit-analyze output

coreclr_tests.run.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 426828729 (overridden on cmd)
Total bytes of diff: 426828765 (overridden on cmd)
Total bytes of delta: 36 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          28 : 639735.dasm (2.78 % of base)
           8 : 635980.dasm (0.79 % of base)

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

Top method regressions (bytes):
          28 (2.78 % of base) : 639735.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
           8 (0.79 % of base) : 635980.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

Top method regressions (percentages):
          28 (2.78 % of base) : 639735.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
           8 (0.79 % of base) : 635980.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

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


libraries_tests.run.linux.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 333393493 (overridden on cmd)
Total bytes of diff: 333393506 (overridden on cmd)
Total bytes of delta: 13 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          15 : 62709.dasm (1.06 % of base)
          15 : 95751.dasm (0.88 % of base)
          15 : 664662.dasm (2.45 % of base)
          14 : 102708.dasm (2.06 % of base)
          13 : 409975.dasm (1.94 % of base)
          11 : 725887.dasm (1.65 % of base)
          10 : 62710.dasm (4.31 % of base)
          10 : 95752.dasm (4.31 % of base)
           8 : 83988.dasm (1.20 % of base)
           6 : 71242.dasm (0.90 % of base)

Top file improvements (bytes):
         -45 : 38477.dasm (-6.26 % of base)
         -38 : 398007.dasm (-5.39 % of base)
         -12 : 211971.dasm (-1.78 % of base)
          -8 : 512514.dasm (-1.14 % of base)
          -1 : 390946.dasm (-0.15 % of base)

15 total files with Code Size differences (5 improved, 10 regressed), 0 unchanged.

Top method regressions (bytes):
          15 (1.06 % of base) : 62709.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)
          15 (0.88 % of base) : 95751.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)
          15 (2.45 % of base) : 664662.dasm - System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref):ubyte (Tier1)
          14 (2.06 % of base) : 102708.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          13 (1.94 % of base) : 409975.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          11 (1.65 % of base) : 725887.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          10 (4.31 % of base) : 62710.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
          10 (4.31 % of base) : 95752.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
           8 (1.20 % of base) : 83988.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
           6 (0.90 % of base) : 71242.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

Top method improvements (bytes):
         -45 (-6.26 % of base) : 38477.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
         -38 (-5.39 % of base) : 398007.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
         -12 (-1.78 % of base) : 211971.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionary_Generic_Tests_string_string:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)
          -8 (-1.14 % of base) : 512514.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          -1 (-0.15 % of base) : 390946.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

Top method regressions (percentages):
          10 (4.31 % of base) : 62710.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
          10 (4.31 % of base) : 95752.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsOpenName():ubyte:this (Tier1)
          15 (2.45 % of base) : 664662.dasm - System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref,byref):ubyte (Tier1)
          14 (2.06 % of base) : 102708.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          13 (1.94 % of base) : 409975.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          11 (1.65 % of base) : 725887.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
           8 (1.20 % of base) : 83988.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          15 (1.06 % of base) : 62709.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)
           6 (0.90 % of base) : 71242.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          15 (0.88 % of base) : 95751.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)

Top method improvements (percentages):
         -45 (-6.26 % of base) : 38477.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
         -38 (-5.39 % of base) : 398007.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
         -12 (-1.78 % of base) : 211971.dasm - System.Collections.Concurrent.Tests.ConcurrentDictionary_Generic_Tests_string_string:NonRandomizedToRandomizedUpgrade_FunctionsCorrectly(ubyte):this (Tier1-OSR)
          -8 (-1.14 % of base) : 512514.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)
          -1 (-0.15 % of base) : 390946.dasm - System.String:MakeSeparatorListVectorized(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort) (Tier1)

15 total methods with Code Size differences (5 improved, 10 regressed).