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