Assembly Diffs
osx arm64
Diffs are based on 455,045 contexts (86,477 MinOpts, 368,568 FullOpts).
No diffs found.
Details
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.osx.arm64.checked.mch |
25,056 |
4 |
25,052 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
84,691 |
48,692 |
35,999 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.osx.arm64.checked.mch |
48,657 |
37,763 |
10,894 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.osx.arm64.checked.mch |
265,043 |
15 |
265,028 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.osx.arm64.checked.mch |
31,598 |
3 |
31,595 |
0 (0.00%) |
0 (0.00%) |
|
455,045 |
86,477 |
368,568 |
0 (0.00%) |
0 (0.00%) |
windows arm64
Diffs are based on 1,454,211 contexts (555,875 MinOpts, 898,336 FullOpts).
Overall (+0 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| libraries_tests.run.windows.arm64.Release.mch |
322,127,180 |
+0 |
FullOpts (+0 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| libraries_tests.run.windows.arm64.Release.mch |
117,771,784 |
+0 |
Example diffs
libraries_tests.run.windows.arm64.Release.mch
+0 (0.00%) : 431449.dasm - System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan1[ushort],System.Span1[ubyte],byref,byref):ubyte (Tier1)
@@ -69,7 +69,7 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0035 {x0 x2 x4
and w19, w1, #0xD1FFAB1E
mov w6, wzr
mov w7, wzr
- cbz w1, G_M25359_IG18
+ cbz w1, G_M25359_IG20
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
@@ -77,26 +77,17 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0035 {x0 x2 x4
mov w9, #3
mul w8, w8, w9
cmp w3, w8
- blt G_M25359_IG04
+ blt G_M25359_IG13
;; size=48 bbWeight=1 PerfScore 9.00
G_M25359_IG03: ; bbWeight=0.51, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref
; byrRegs +[x20]
sub w21, w19, #4
- b G_M25359_IG05
- ;; size=8 bbWeight=0.51 PerfScore 0.76
-G_M25359_IG04: ; bbWeight=0.49, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref
- movz w8, #0xD1FFAB1E
- movk w8, #0xD1FFAB1E LSL #16
- smull x8, w8, w3
- asr x8, x8, #32
- add w8, w8, w8, LSR #31
- lsl w21, w8, #2
- ;; size=24 bbWeight=0.49 PerfScore 2.96
-G_M25359_IG05: ; bbWeight=0.49, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+ ;; size=4 bbWeight=0.51 PerfScore 0.25
+G_M25359_IG04: ; bbWeight=0.49, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
cmp w21, #0
- ble G_M25359_IG09
+ ble G_M25359_IG08
;; size=8 bbWeight=0.49 PerfScore 0.74
-G_M25359_IG06: ; bbWeight=1.40, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG05: ; bbWeight=1.40, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
sbfiz x8, x6, #1, #32
add x8, x0, x8
; byrRegs +[x8]
@@ -118,10 +109,10 @@ G_M25359_IG06: ; bbWeight=1.40, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x
ldrsb w9, [x20, w11, SXTW #2]
orr w9, w8, w9, LSL #6
;; size=72 bbWeight=1.40 PerfScore 44.11
-G_M25359_IG07: ; bbWeight=1.40, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
- tbnz w9, #31, G_M25359_IG22
+G_M25359_IG06: ; bbWeight=1.40, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+ tbnz w9, #31, G_M25359_IG14
;; size=4 bbWeight=1.40 PerfScore 1.40
-G_M25359_IG08: ; bbWeight=2.13, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG07: ; bbWeight=2.13, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
sxtw x8, w7
add x8, x2, x8
; byrRegs +[x8]
@@ -133,16 +124,16 @@ G_M25359_IG08: ; bbWeight=2.13, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x
add w7, w7, #3
add w6, w6, #4
cmp w6, w21
- blt G_M25359_IG06
+ blt G_M25359_IG05
;; size=44 bbWeight=2.13 PerfScore 18.07
-G_M25359_IG09: ; bbWeight=0.73, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG08: ; bbWeight=0.73, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
; byrRegs -[x8]
sub w8, w19, #4
cmp w21, w8
ccmp w6, w19, z, eq
- beq G_M25359_IG22
+ beq G_M25359_IG14
;; size=16 bbWeight=0.73 PerfScore 1.81
-G_M25359_IG10: ; bbWeight=0.56, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG09: ; bbWeight=0.56, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
sub w8, w19, #4
ldrh w8, [x0, w8, SXTW #2]
sub w9, w19, #3
@@ -156,17 +147,17 @@ G_M25359_IG10: ; bbWeight=0.56, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x
orr w11, w11, w10
orr w11, w11, w0
tst w11, #0xD1FFAB1E
- bne G_M25359_IG22
+ bne G_M25359_IG14
;; size=52 bbWeight=0.56 PerfScore 9.52
-G_M25359_IG11: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
+G_M25359_IG10: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
ldrsb w8, [x20, w8, SXTW #2]
lsl w8, w8, #18
ldrsb w9, [x20, w9, SXTW #2]
orr w8, w8, w9, LSL #12
cmp w0, #61
- beq G_M25359_IG14
+ beq G_M25359_IG16
;; size=24 bbWeight=0.55 PerfScore 5.22
-G_M25359_IG12: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
+G_M25359_IG11: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
ldrsb w0, [x20, w0, SXTW #2]
orr w8, w0, w8
ldrsb w10, [x20, w10, SXTW #2]
@@ -174,9 +165,9 @@ G_M25359_IG12: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x
sub w3, w3, #3
cmp w7, w3
ccmp w8, #0, nc, le
- blt G_M25359_IG22
+ blt G_M25359_IG14
;; size=32 bbWeight=0.32 PerfScore 3.15
-G_M25359_IG13: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
+G_M25359_IG12: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
; byrRegs -[x20]
sxtw x0, w7
add x2, x2, x0
@@ -186,63 +177,20 @@ G_M25359_IG13: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4
strb w0, [x2, #0x01]
strb w8, [x2, #0x02]
add w7, w7, #3
- b G_M25359_IG17
+ b G_M25359_IG19
;; size=36 bbWeight=0.05 PerfScore 0.41
-G_M25359_IG14: ; bbWeight=0.23, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
- ; byrRegs +[x20]
- cmp w10, #61
- bne G_M25359_IG20
- ;; size=8 bbWeight=0.23 PerfScore 0.35
-G_M25359_IG15: ; bbWeight=0.21, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref, isz
- ; byrRegs -[x20]
- sub w0, w3, #1
- cmp w7, w0
- ccmp w8, #0, nc, le
- blt G_M25359_IG22
- ;; size=16 bbWeight=0.21 PerfScore 0.53
-G_M25359_IG16: ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
- asr w0, w8, #16
- strb w0, [x2, w7, SXTW #2]
- add w7, w7, #1
- ;; size=12 bbWeight=0.12 PerfScore 0.31
-G_M25359_IG17: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref, isz
- ; byrRegs -[x2]
- add w6, w6, #4
- cmp w19, w1
- bne G_M25359_IG22
- ;; size=12 bbWeight=0.20 PerfScore 0.39
-G_M25359_IG18: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
- str w6, [x4]
- str w7, [x5]
- mov w0, #1
- ;; size=12 bbWeight=0.16 PerfScore 0.40
-G_M25359_IG19: ; bbWeight=0.16, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=0.16 PerfScore 0.80
-G_M25359_IG20: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, gcvars, byref, isz
- ; byrRegs +[x2 x20]
- ldrsb w0, [x20, w10, SXTW #2]
- orr w8, w8, w0, LSL #6
- sub w3, w3, #2
- cmp w7, w3
- ccmp w8, #0, nc, le
- blt G_M25359_IG22
- ;; size=24 bbWeight=0.02 PerfScore 0.14
-G_M25359_IG21: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
- ; byrRegs -[x20]
- asr w0, w8, #16
- strb w0, [x2, w7, SXTW #2]
- asr w8, w8, #8
- add w0, w7, #1
- strb w8, [x2, w0, SXTW #2]
- add w7, w7, #2
- b G_M25359_IG17
- ;; size=28 bbWeight=0.02 PerfScore 0.12
-G_M25359_IG22: ; bbWeight=0.84, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
- ; byrRegs -[x2]
+G_M25359_IG13: ; bbWeight=0.49, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref
+ ; byrRegs +[x0 x20]
+ movz w8, #0xD1FFAB1E
+ movk w8, #0xD1FFAB1E LSL #16
+ smull x8, w8, w3
+ asr x8, x8, #32
+ add w8, w8, w8, LSR #31
+ lsl w21, w8, #2
+ b G_M25359_IG04
+ ;; size=28 bbWeight=0.49 PerfScore 3.45
+G_M25359_IG14: ; bbWeight=0.84, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
+ ; byrRegs -[x0 x2 x20]
str w6, [x4]
str w7, [x5]
ldr w0, [x4]
@@ -257,19 +205,72 @@ G_M25359_IG22: ; bbWeight=0.84, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}
; gcr arg pop 0
mov w0, wzr
;; size=44 bbWeight=0.84 PerfScore 10.08
-G_M25359_IG23: ; bbWeight=0.84, epilog, nogc, extend
+G_M25359_IG15: ; bbWeight=0.84, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=0.84 PerfScore 4.20
-G_M25359_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, gcvars, byref
- ; byrRegs +[x0 x2 x4-x5 x20]
+G_M25359_IG16: ; bbWeight=0.23, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, gcvars, byref, isz
+ ; byrRegs +[x2 x4-x5 x20]
+ cmp w10, #61
+ bne G_M25359_IG22
+ ;; size=8 bbWeight=0.23 PerfScore 0.35
+G_M25359_IG17: ; bbWeight=0.21, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref, isz
+ ; byrRegs -[x20]
+ sub w0, w3, #1
+ cmp w7, w0
+ ccmp w8, #0, nc, le
+ blt G_M25359_IG14
+ ;; size=16 bbWeight=0.21 PerfScore 0.53
+G_M25359_IG18: ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
+ asr w0, w8, #16
+ strb w0, [x2, w7, SXTW #2]
+ add w7, w7, #1
+ ;; size=12 bbWeight=0.12 PerfScore 0.31
+G_M25359_IG19: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref, isz
+ ; byrRegs -[x2]
+ add w6, w6, #4
+ cmp w19, w1
+ bne G_M25359_IG14
+ ;; size=12 bbWeight=0.20 PerfScore 0.39
+G_M25359_IG20: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
+ str w6, [x4]
+ str w7, [x5]
+ mov w0, #1
+ ;; size=12 bbWeight=0.16 PerfScore 0.40
+G_M25359_IG21: ; bbWeight=0.16, epilog, nogc, extend
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x30
+ ret lr
+ ;; size=16 bbWeight=0.16 PerfScore 0.80
+G_M25359_IG22: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, gcvars, byref, isz
+ ; byrRegs +[x2 x20]
+ ldrsb w0, [x20, w10, SXTW #2]
+ orr w8, w8, w0, LSL #6
+ sub w3, w3, #2
+ cmp w7, w3
+ ccmp w8, #0, nc, le
+ blt G_M25359_IG14
+ ;; size=24 bbWeight=0.02 PerfScore 0.14
+G_M25359_IG23: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
+ ; byrRegs -[x20]
+ asr w0, w8, #16
+ strb w0, [x2, w7, SXTW #2]
+ asr w8, w8, #8
+ add w0, w7, #1
+ strb w8, [x2, w0, SXTW #2]
...
+0 (0.00%) : 492545.dasm - System.Convert:TryDecodeFromUtf16(System.ReadOnlySpan1[ushort],System.Span1[ubyte],byref,byref):ubyte (Tier1)
@@ -21,9 +21,9 @@
; V09 loc5 [V09,T06] ( 19, 39.77) int -> x7
; V10 loc6 [V10,T05] ( 10, 49.65) byref -> x20 single-def
; V11 loc7 [V11,T11] ( 5, 13.96) int -> x21
-; V12 loc8 [V12,T22] ( 17, 2.09) int -> x8
-; V13 loc9 [V13,T25] ( 3, 0.76) int -> x9
-; V14 loc10 [V14,T24] ( 5, 0.84) int -> x10
+; V12 loc8 [V12,T22] ( 17, 2.09) int -> x21
+; V13 loc9 [V13,T25] ( 3, 0.76) int -> x8
+; V14 loc10 [V14,T24] ( 5, 0.84) int -> x22
; V15 loc11 [V15,T23] ( 4, 0.86) int -> x0
;* V16 loc12 [V16 ] ( 0, 0 ) int -> zero-ref
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -56,12 +56,12 @@
;* V44 tmp27 [V44 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
; V45 rat0 [V45,T21] ( 3, 2.67) int -> x8 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M25359_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
;; size=16 bbWeight=1 PerfScore 3.50
G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0035 {x0 x2 x4 x5}, byref, isz
@@ -69,7 +69,7 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0035 {x0 x2 x4
and w19, w1, #0xD1FFAB1E
mov w6, wzr
mov w7, wzr
- cbz w1, G_M25359_IG14
+ cbz w1, G_M25359_IG13
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #0xD1FFAB1E LSL #32
@@ -77,26 +77,17 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0035 {x0 x2 x4
mov w9, #3
mul w8, w8, w9
cmp w3, w8
- blt G_M25359_IG04
+ blt G_M25359_IG17
;; size=48 bbWeight=1 PerfScore 9.00
G_M25359_IG03: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref
; byrRegs +[x20]
sub w21, w19, #4
- b G_M25359_IG05
- ;; size=8 bbWeight=0.55 PerfScore 0.83
-G_M25359_IG04: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref
- movz w8, #0xD1FFAB1E
- movk w8, #0xD1FFAB1E LSL #16
- smull x8, w8, w3
- asr x8, x8, #32
- add w8, w8, w8, LSR #31
- lsl w21, w8, #2
- ;; size=24 bbWeight=0.45 PerfScore 2.67
-G_M25359_IG05: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+ ;; size=4 bbWeight=0.55 PerfScore 0.28
+G_M25359_IG04: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
cmp w21, #0
- ble G_M25359_IG09
+ ble G_M25359_IG08
;; size=8 bbWeight=0.45 PerfScore 0.67
-G_M25359_IG06: ; bbWeight=11.97, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG05: ; bbWeight=11.97, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
sbfiz x8, x6, #1, #32
add x8, x0, x8
; byrRegs +[x8]
@@ -118,10 +109,10 @@ G_M25359_IG06: ; bbWeight=11.97, gcrefRegs=0000 {}, byrefRegs=100035 {x0
ldrsb w9, [x20, w11, SXTW #2]
orr w9, w8, w9, LSL #6
;; size=72 bbWeight=11.97 PerfScore 377.07
-G_M25359_IG07: ; bbWeight=11.97, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
- tbnz w9, #31, G_M25359_IG20
+G_M25359_IG06: ; bbWeight=11.97, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+ tbnz w9, #31, G_M25359_IG15
;; size=4 bbWeight=11.97 PerfScore 11.97
-G_M25359_IG08: ; bbWeight=12.24, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG07: ; bbWeight=12.24, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
sxtw x8, w7
add x8, x2, x8
; byrRegs +[x8]
@@ -133,112 +124,69 @@ G_M25359_IG08: ; bbWeight=12.24, gcrefRegs=0000 {}, byrefRegs=100035 {x0
add w7, w7, #3
add w6, w6, #4
cmp w6, w21
- blt G_M25359_IG06
+ blt G_M25359_IG05
;; size=44 bbWeight=12.24 PerfScore 104.04
-G_M25359_IG09: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG08: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
; byrRegs -[x8]
sub w8, w19, #4
cmp w21, w8
ccmp w6, w19, z, eq
- beq G_M25359_IG20
+ beq G_M25359_IG15
;; size=16 bbWeight=0.27 PerfScore 0.67
-G_M25359_IG10: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
+G_M25359_IG09: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, byref, isz
sub w8, w19, #4
+ ldrh w21, [x0, w8, SXTW #2]
+ sub w8, w19, #3
ldrh w8, [x0, w8, SXTW #2]
- sub w9, w19, #3
- ldrh w9, [x0, w9, SXTW #2]
- sub w10, w19, #2
- ldrh w10, [x0, w10, SXTW #2]
- sub w11, w19, #1
- ldrh w0, [x0, w11, SXTW #2]
+ sub w9, w19, #2
+ ldrh w22, [x0, w9, SXTW #2]
+ sub w9, w19, #1
+ ldrh w0, [x0, w9, SXTW #2]
; byrRegs -[x0]
- orr w11, w8, w9
- orr w11, w11, w10
- orr w11, w11, w0
- tst w11, #0xD1FFAB1E
- bne G_M25359_IG20
+ orr w9, w21, w8
+ orr w9, w9, w22
+ orr w9, w9, w0
+ tst w9, #0xD1FFAB1E
+ bne G_M25359_IG15
+ ldrsb w9, [x20, w21, SXTW #2]
+ lsl w9, w9, #18
ldrsb w8, [x20, w8, SXTW #2]
- lsl w8, w8, #18
- ldrsb w9, [x20, w9, SXTW #2]
- orr w8, w8, w9, LSL #12
+ orr w21, w9, w8, LSL #12
cmp w0, #61
- bne G_M25359_IG16
- ;; size=76 bbWeight=0.25 PerfScore 6.76
-G_M25359_IG11: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
- cmp w10, #61
bne G_M25359_IG18
+ ;; size=76 bbWeight=0.25 PerfScore 6.76
+G_M25359_IG10: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
+ cmp w22, #61
+ bne G_M25359_IG20
;; size=8 bbWeight=0.16 PerfScore 0.24
-G_M25359_IG12: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref, isz
+G_M25359_IG11: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref, isz
; byrRegs -[x20]
sub w0, w3, #1
cmp w7, w0
- ccmp w8, #0, nc, le
- blt G_M25359_IG20
- asr w0, w8, #16
+ ccmp w21, #0, nc, le
+ blt G_M25359_IG15
+ asr w0, w21, #16
strb w0, [x2, w7, SXTW #2]
add w7, w7, #1
;; size=28 bbWeight=0.09 PerfScore 0.44
-G_M25359_IG13: ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref, isz
+G_M25359_IG12: ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref, isz
; byrRegs -[x2]
add w6, w6, #4
cmp w19, w1
- bne G_M25359_IG20
+ bne G_M25359_IG15
;; size=12 bbWeight=0.24 PerfScore 0.48
-G_M25359_IG14: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
+G_M25359_IG13: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
str w6, [x4]
str w7, [x5]
mov w0, #1
;; size=12 bbWeight=0.20 PerfScore 0.50
-G_M25359_IG15: ; bbWeight=0.20, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+G_M25359_IG14: ; bbWeight=0.20, epilog, nogc, extend
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=0.20 PerfScore 1.00
-G_M25359_IG16: ; bbWeight=0.09, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, gcvars, byref, isz
- ; byrRegs +[x2 x20]
- ldrsb w0, [x20, w0, SXTW #2]
- orr w8, w0, w8
- ldrsb w10, [x20, w10, SXTW #2]
- orr w8, w8, w10, LSL #6
- sub w3, w3, #3
- cmp w7, w3
- ccmp w8, #0, nc, le
- blt G_M25359_IG20
- ;; size=32 bbWeight=0.09 PerfScore 0.94
-G_M25359_IG17: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
- ; byrRegs -[x20]
- sxtw x0, w7
- add x2, x2, x0
- asr w0, w8, #16
- strb w0, [x2]
- asr w0, w8, #8
- strb w0, [x2, #0x01]
- strb w8, [x2, #0x02]
- add w7, w7, #3
- b G_M25359_IG13
- ;; size=36 bbWeight=0.08 PerfScore 0.62
-G_M25359_IG18: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=100034 {x2 x4 x5 x20}, byref, isz
- ; byrRegs +[x20]
- ldrsb w0, [x20, w10, SXTW #2]
- orr w8, w8, w0, LSL #6
- sub w3, w3, #2
- cmp w7, w3
- ccmp w8, #0, nc, le
- blt G_M25359_IG20
- ;; size=24 bbWeight=0.07 PerfScore 0.48
-G_M25359_IG19: ; bbWeight=0.07, gcrefRegs=0000 {}, byrefRegs=0034 {x2 x4 x5}, byref
- ; byrRegs -[x20]
- asr w0, w8, #16
- strb w0, [x2, w7, SXTW #2]
- asr w8, w8, #8
- add w0, w7, #1
- strb w8, [x2, w0, SXTW #2]
- add w7, w7, #2
- b G_M25359_IG13
- ;; size=28 bbWeight=0.07 PerfScore 0.43
-G_M25359_IG20: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, byref
- ; byrRegs -[x2]
+ ;; size=16 bbWeight=0.20 PerfScore 0.80
+G_M25359_IG15: ; bbWeight=0.80, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}, gcvars, byref
str w6, [x4]
str w7, [x5]
ldr w0, [x4]
@@ -253,19 +201,71 @@ G_M25359_IG20: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0030 {x4 x5}
; gcr arg pop 0
mov w0, wzr
;; size=44 bbWeight=0.80 PerfScore 9.61
-G_M25359_IG21: ; bbWeight=0.80, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+G_M25359_IG16: ; bbWeight=0.80, epilog, nogc, extend
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=0.80 PerfScore 4.00
-G_M25359_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, gcvars, byref
+ ;; size=16 bbWeight=0.80 PerfScore 3.20
+G_M25359_IG17: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100035 {x0 x2 x4 x5 x20}, gcvars, byref
; byrRegs +[x0 x2 x4-x5 x20]
+ movz w8, #0xD1FFAB1E
+ movk w8, #0xD1FFAB1E LSL #16
...
+0 (0.00%) : 61706.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeArgumentList(byref,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax],byref):this (Tier1)
@@ -108,18 +108,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.05, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref
- add w23, w23, #1
- ;; size=4 bbWeight=0.05 PerfScore 0.02
-G_M60245_IG04: ; bbWeight=0.05, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M60245_IG03: ; bbWeight=0.05, 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.05 PerfScore 0.25
-G_M60245_IG05: ; bbWeight=1.30, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG04: ; bbWeight=1.30, 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
@@ -132,14 +128,14 @@ G_M60245_IG05: ; bbWeight=1.30, 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.30 PerfScore 14.34
-G_M60245_IG06: ; bbWeight=1.05, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG05: ; bbWeight=1.05, 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_IG58
;; size=8 bbWeight=1.05 PerfScore 4.20
-G_M60245_IG07: ; bbWeight=1.05, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG06: ; bbWeight=1.05, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
@@ -148,26 +144,26 @@ G_M60245_IG07: ; bbWeight=1.05, gcrefRegs=480000 {x19 x22}, byrefRegs=300
sxtw w1, w24
ldr w2, [x0, #0x08]
cmp w1, w2
- bhs G_M60245_IG47
+ bhs G_M60245_IG55
ubfiz x1, x1, #3, #32
add x1, x1, #16
ldr x1, [x0, x1]
; gcrRegs +[x1]
;; size=40 bbWeight=1.05 PerfScore 16.79
-G_M60245_IG08: ; bbWeight=1.05, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG07: ; bbWeight=1.05, 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_IG43
;; size=16 bbWeight=1.05 PerfScore 5.25
-G_M60245_IG09: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG08: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
ldr w0, [x19, #0x3C]
cmp w24, w0
- blt G_M60245_IG11
+ blt G_M60245_IG10
;; size=12 bbWeight=1 PerfScore 4.50
-G_M60245_IG10: ; bbWeight=0.24, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG09: ; bbWeight=0.24, 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
@@ -180,24 +176,24 @@ G_M60245_IG10: ; bbWeight=0.24, gcrefRegs=480000 {x19 x22}, byrefRegs=300
ldp w0, w1, [x19, #0x38]
add w0, w0, w23
cmp w0, w1
- bge G_M60245_IG10
+ bge G_M60245_IG09
;; size=40 bbWeight=0.24 PerfScore 2.67
-G_M60245_IG11: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG10: ; 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_IG44
ldr x0, [x19, #0x18]
ldr w1, [x19, #0x38]
add w1, w1, w23
ldr w2, [x0, #0x08]
cmp w1, w2
- bhs G_M60245_IG47
+ bhs G_M60245_IG55
ubfiz x1, x1, #3, #32
add x1, x1, #16
ldr x1, [x0, x1]
; gcrRegs +[x1]
;; size=44 bbWeight=1 PerfScore 19.50
-G_M60245_IG12: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG11: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x0]
ldrh w0, [x1, #0x0C]
mov w1, #0xD1FFAB1E
@@ -218,7 +214,7 @@ G_M60245_IG12: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300
; gcrRegs -[x0]
mov w1, #0xD1FFAB1E
cmp w0, w1
- bne G_M60245_IG54
+ bne G_M60245_IG46
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -226,14 +222,14 @@ G_M60245_IG12: ; bbWeight=1, gcrefRegs=480002 {x1 x19 x22}, byrefRegs=300
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M60245_IG28
+ bne G_M60245_IG27
;; size=88 bbWeight=1 PerfScore 25.00
-G_M60245_IG13: ; bbWeight=0.54, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG12: ; bbWeight=0.54, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
; gcrRegs -[x0]
mov x15, xzr
; gcrRegs +[x15]
;; size=4 bbWeight=0.54 PerfScore 0.27
-G_M60245_IG14: ; bbWeight=1, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG13: ; bbWeight=1, gcrefRegs=4488000 {x15 x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref, isz
add x14, x19, #32
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
@@ -242,9 +238,9 @@ G_M60245_IG14: ; 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_IG45
;; size=20 bbWeight=1 PerfScore 6.50
-G_M60245_IG15: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
+G_M60245_IG14: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=300000 {x20 x21}, byref
; gcrRegs -[x14]
ldr w14, [x19, #0x38]
add w14, w14, #1
@@ -252,7 +248,7 @@ G_M60245_IG15: ; bbWeight=1, gcrefRegs=4480000 {x19 x22 x26}, byrefRegs=3
mov x15, x26
; gcrRegs +[x15]
;; size=16 bbWeight=1 PerfScore 5.00
-G_M60245_IG16: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG15: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x26]
mov x14, x20
; byrRegs +[x14]
@@ -275,26 +271,26 @@ G_M60245_IG16: ; bbWeight=1, gcrefRegs=488000 {x15 x19 x22}, byrefRegs=30
blr x1
; gcr arg pop 0
cmp w23, w0
- blt G_M60245_IG53
+ blt G_M60245_IG47
mov x1, xzr
; gcrRegs +[x1]
;; size=60 bbWeight=1 PerfScore 21.50
-G_M60245_IG17: ; bbWeight=1, gcrefRegs=8480002 {x1 x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M60245_IG16: ; bbWeight=1, gcrefRegs=8480002 {x1 x19 x22 x27}, byrefRegs=300000 {x20 x21}, byref, isz
; gcrRegs -[x28]
- cbnz x1, G_M60245_IG55
+ cbnz x1, G_M60245_IG48
mov x15, x27
; gcrRegs +[x15]
;; size=8 bbWeight=1 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_IG37
+ cbnz w25, G_M60245_IG36
;; size=12 bbWeight=1 PerfScore 2.50
-G_M60245_IG19: ; bbWeight=0.84, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref
+G_M60245_IG18: ; bbWeight=0.84, 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
@@ -315,7 +311,7 @@ G_M60245_IG19: ; bbWeight=0.84, gcrefRegs=480000 {x19 x22}, byrefRegs=200
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=56 bbWeight=0.84 PerfScore 13.06
-G_M60245_IG20: ; bbWeight=1.15, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG19: ; bbWeight=1.15, gcrefRegs=480000 {x19 x22}, byrefRegs=200000 {x21}, byref, isz
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -328,9 +324,9 @@ G_M60245_IG20: ; bbWeight=1.15, gcrefRegs=480000 {x19 x22}, byrefRegs=200
; gcrRegs -[x0]
mov w1, #0xD1FFAB1E
cmp w0, w1
- bne G_M60245_IG32
+ bne G_M60245_IG31
;; size=40 bbWeight=1.15 PerfScore 12.64
-G_M60245_IG21: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG20: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x22]
mov x0, x19
; gcrRegs +[x0]
@@ -346,9 +342,9 @@ G_M60245_IG21: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=200000 {
; gcrRegs -[x0]
mov w1, #0xD1FFAB1E
cmp w0, w1
- bne G_M60245_IG46
+ bne G_M60245_IG54
;; size=44 bbWeight=0.84 PerfScore 9.69
-G_M60245_IG22: ; bbWeight=0.84, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG21: ; bbWeight=0.84, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref, isz
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -356,14 +352,14 @@ G_M60245_IG22: ; bbWeight=0.84, gcrefRegs=1080000 {x19 x24}, byrefRegs=20
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M60245_IG29
+ bne G_M60245_IG28
;; size=28 bbWeight=0.84 PerfScore 7.58
-G_M60245_IG23: ; bbWeight=0.45, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
+G_M60245_IG22: ; bbWeight=0.45, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
; gcrRegs -[x0]
mov x15, xzr
; gcrRegs +[x15]
;; size=4 bbWeight=0.45 PerfScore 0.23
-G_M60245_IG24: ; bbWeight=0.84, gcrefRegs=1088000 {x15 x19 x24}, byrefRegs=200000 {x21}, byref, isz
+G_M60245_IG23: ; bbWeight=0.84, gcrefRegs=1088000 {x15 x19 x24}, byrefRegs=200000 {x21}, byref, isz
add x14, x19, #32
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
@@ -372,9 +368,9 @@ G_M60245_IG24: ; bbWeight=0.84, gcrefRegs=1088000 {x15 x19 x24}, byrefReg
str xzr, [x19, #0x10]
ldr x14, [x19, #0x28]
; gcrRegs +[x14]
- cbnz x14, G_M60245_IG51
+ cbnz x14, G_M60245_IG56
;; size=20 bbWeight=0.84 PerfScore 5.47
-G_M60245_IG25: ; bbWeight=0.84, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
+G_M60245_IG24: ; bbWeight=0.84, gcrefRegs=1080000 {x19 x24}, byrefRegs=200000 {x21}, byref
; gcrRegs -[x14]
ldr w14, [x19, #0x38]
add w14, w14, #1
@@ -382,7 +378,7 @@ G_M60245_IG25: ; bbWeight=0.84, gcrefRegs=1080000 {x19 x24}, byrefRegs=20
...
+0 (0.00%) : 59851.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.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- add w20, w20, #1
- ;; size=4 bbWeight=0.05 PerfScore 0.02
-G_M28701_IG04: ; bbWeight=0.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M28701_IG03: ; bbWeight=0.05, 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.05 PerfScore 0.25
-G_M28701_IG05: ; bbWeight=1.30, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG04: ; bbWeight=1.30, 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.30, 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.30 PerfScore 14.34
-G_M28701_IG06: ; bbWeight=1.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG05: ; bbWeight=1.05, 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.05 PerfScore 20.98
-G_M28701_IG07: ; bbWeight=1.05, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG06: ; bbWeight=1.05, 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.05 PerfScore 5.25
-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.24, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M28701_IG08: ; bbWeight=0.24, 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.24, 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.24 PerfScore 2.67
-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.05, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x19]
+ add w20, w20, #1
+ b G_M28701_IG03
+ ;; size=8 bbWeight=0.05 PerfScore 0.07
+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 82.52, 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 81.57, 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.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.crossgen2.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.pmi.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries_tests.run.windows.arm64.Release.mch |
4 |
0 |
0 |
4 |
-0 |
+0 |
| realworld.run.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
4 |
0 |
0 |
4 |
-0 |
+0 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.windows.arm64.checked.mch |
24,648 |
4 |
24,644 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
95,649 |
48,780 |
46,869 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.windows.arm64.checked.mch |
48,804 |
37,116 |
11,688 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.windows.arm64.checked.mch |
275,110 |
15 |
275,095 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.windows.arm64.checked.mch |
307,382 |
6 |
307,376 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.windows.arm64.Release.mch |
645,201 |
469,943 |
175,258 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.windows.arm64.checked.mch |
33,258 |
3 |
33,255 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
24,159 |
8 |
24,151 |
0 (0.00%) |
0 (0.00%) |
|
1,454,211 |
555,875 |
898,336 |
0 (0.00%) |
0 (0.00%) |
jit-analyze output
libraries_tests.run.windows.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 322127180 (overridden on cmd)
Total bytes of diff: 322127180 (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), 4 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
windows x64
Diffs are based on 526,995 contexts (86,785 MinOpts, 440,210 FullOpts).
No diffs found.
Details
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.windows.x64.checked.mch |
28,108 |
4 |
28,104 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.windows.x64.checked.mch |
100,368 |
49,464 |
50,904 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.windows.x64.checked.mch |
54,369 |
37,288 |
17,081 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.windows.x64.checked.mch |
274,686 |
15 |
274,671 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.windows.x64.checked.mch |
36,892 |
3 |
36,889 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.windows.x64.checked.mch |
32,572 |
11 |
32,561 |
0 (0.00%) |
0 (0.00%) |
|
526,995 |
86,785 |
440,210 |
0 (0.00%) |
0 (0.00%) |