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).