Diffs are based on 2,484,722 contexts (1,009,726 MinOpts, 1,474,996 FullOpts).
MISSED contexts: base: 1,691 (0.07%), diff: 1,747 (0.07%)
Overall (-104,520 bytes)
Collection | Base size (bytes) | Diff size (bytes) | PerfScore in Diffs |
---|---|---|---|
benchmarks.run.windows.arm64.checked.mch | 11,067,588 | -4,580 | -1.15% |
benchmarks.run_pgo.windows.arm64.checked.mch | 49,077,212 | -11,132 | -0.11% |
benchmarks.run_tiered.windows.arm64.checked.mch | 15,223,420 | -376 | -0.55% |
coreclr_tests.run.windows.arm64.checked.mch | 495,153,996 | -27,656 | -0.16% |
libraries.crossgen2.windows.arm64.checked.mch | 67,820,424 | -10,356 | -1.21% |
libraries.pmi.windows.arm64.checked.mch | 78,737,668 | -10,108 | -0.74% |
libraries_tests.run.windows.arm64.Release.mch | 366,264,132 | -21,416 | -0.94% |
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch | 182,592,880 | -16,216 | -0.88% |
realworld.run.windows.arm64.checked.mch | 13,086,704 | -1,436 | -0.46% |
smoke_tests.nativeaot.windows.arm64.checked.mch | 3,976,468 | -1,244 | -0.26% |
FullOpts (-104,520 bytes)
Collection | Base size (bytes) | Diff size (bytes) | PerfScore in Diffs |
---|---|---|---|
benchmarks.run.windows.arm64.checked.mch | 11,066,968 | -4,580 | -1.15% |
benchmarks.run_pgo.windows.arm64.checked.mch | 32,480,572 | -11,132 | -0.11% |
benchmarks.run_tiered.windows.arm64.checked.mch | 3,768,944 | -376 | -0.55% |
coreclr_tests.run.windows.arm64.checked.mch | 157,155,416 | -27,656 | -0.16% |
libraries.crossgen2.windows.arm64.checked.mch | 67,818,364 | -10,356 | -1.21% |
libraries.pmi.windows.arm64.checked.mch | 78,618,100 | -10,108 | -0.74% |
libraries_tests.run.windows.arm64.Release.mch | 144,623,168 | -21,416 | -0.94% |
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch | 169,154,500 | -16,216 | -0.88% |
realworld.run.windows.arm64.checked.mch | 12,721,420 | -1,436 | -0.46% |
smoke_tests.nativeaot.windows.arm64.checked.mch | 3,975,416 | -1,244 | -0.26% |
Example diffs
benchmarks.run.windows.arm64.checked.mch
-16 (-13.33%) : 3021.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
@@ -8,23 +8,22 @@
; Final local variable assignments
;
; V00 arg0 [V00,T03] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd exact single-def <System.String>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd exact single-def <System.String>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T02] ( 3, 12 ) ushort -> x0
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35714_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -34,11 +33,10 @@ G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M35714_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M35714_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cbz w0, G_M35714_IG05
movz x1, #0xD1FFAB1E // code for System.Reflection.Emit.TypeNameBuilder:IsTypeNameReservedChar(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -46,7 +44,7 @@ G_M35714_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
ldr x1, [x1]
blr x1
cbnz w0, G_M35714_IG07
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M35714_IG04
;; size=44 bbWeight=4 PerfScore 50.00
@@ -55,22 +53,20 @@ G_M35714_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35714_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35714_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35714_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 120, prolog size 16, PerfScore 63.75, instruction count 30, allocated bytes for code 120 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 60.62, instruction count 26, allocated bytes for code 104 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -81,7 +77,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,9 +88,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-12 (-13.04%) : 19543.dasm - System.IO.Tests.Perf_Directory:CreateDirectory():this (FullOpts)
@@ -9,23 +9,22 @@
;
; V00 this [V00,T02] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.IO.Tests.Perf_Directory>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String[]>
-; V02 loc1 [V02,T04] ( 3, 2.25) ref -> x0 class-hnd exact single-def <System.String[]>
-;* V03 loc2 [V03,T06] ( 0, 0 ) int -> zero-ref
+; V02 loc1 [V02,T03] ( 3, 2.25) ref -> x0 class-hnd exact single-def <System.String[]>
+;* V03 loc2 [V03,T05] ( 0, 0 ) int -> zero-ref
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 cse0 [V06,T03] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V07 cse1 [V07,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V08 rat0 [V08,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V06 cse0 [V06,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V07 cse1 [V07,T04] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V08 rat0 [V08,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V09 rat1 [V09,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M64687_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 fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M64687_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x0, [x0, #0x18]
@@ -36,11 +35,10 @@ G_M64687_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M64687_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M64687_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.IO.Directory:CreateDirectory(System.String):System.IO.DirectoryInfo
movk x1, #0xD1FFAB1E LSL #16
@@ -48,19 +46,18 @@ G_M64687_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
ldr x1, [x1]
blr x1
; gcrRegs -[x0]
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M64687_IG04
;; size=36 bbWeight=4 PerfScore 42.00
G_M64687_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[x20]
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 92, prolog size 16, PerfScore 58.25, instruction count 23, allocated bytes for code 92 (MethodHash=f1710350) for method System.IO.Tests.Perf_Directory:CreateDirectory():this (FullOpts)
+; Total bytes of code 80, prolog size 12, PerfScore 55.12, instruction count 20, allocated bytes for code 80 (MethodHash=f1710350) for method System.IO.Tests.Perf_Directory:CreateDirectory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -71,7 +68,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -79,9 +76,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-12 (-11.11%) : 16926.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
@@ -17,23 +17,22 @@
;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp4 [V08,T03] ( 4, 2.75) ref -> x2 single-def "field V02.array (fldOffset=0x0)" P-INDEP
-; V09 cse0 [V09,T05] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
-; V10 cse1 [V10,T04] ( 2, 4.25) byref -> x21 hoist "CSE #02: aggressive"
-; V11 cse2 [V11,T06] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
-; V12 rat0 [V12,T00] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V09 cse0 [V09,T04] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
+; V10 cse1 [V10,T06] ( 2, 0.50) byref -> x21 hoist "CSE #02: aggressive"
+; V11 cse2 [V11,T05] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
+; V12 rat0 [V12,T00] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
; V13 rat1 [V13,T01] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38436_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M38436_IG02: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x2]
cbz x2, G_M38436_IG06
@@ -49,32 +48,30 @@ G_M38436_IG04: ; bbWeight=0.25, gcrefRegs=80004 {x2 x19}, byrefRegs=0000
ldr xzr, [x19]
ldr x1, [x19]
ldr x22, [x1, #0x48]
- mov x23, xzr
- ;; size=20 bbWeight=0.25 PerfScore 2.50
+ ;; size=16 bbWeight=0.25 PerfScore 2.38
G_M38436_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x2]
- ldr x1, [x21, x23]
+ ldr x1, [x21]
; gcrRegs +[x1]
mov x0, x19
; gcrRegs +[x0]
ldr x2, [x22, #0x20]
blr x2
; gcrRegs -[x0-x1]
- add x23, x23, #8
+ add x21, x21, #8
sub w20, w20, #1
cbnz w20, G_M38436_IG05
;; size=28 bbWeight=4 PerfScore 38.00
G_M38436_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
; byrRegs -[x21]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 108, prolog size 20, PerfScore 54.75, instruction count 27, allocated bytes for code 108 (MethodHash=b16469db) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
+; Total bytes of code 96, prolog size 16, PerfScore 51.62, instruction count 24, allocated bytes for code 96 (MethodHash=b16469db) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -85,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +90,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
+0 (0.00%) : 13464.dasm - AssignRect:second_assignments(int[,],short[,]) (FullOpts)
@@ -28,18 +28,18 @@
; V18 cse4 [V18,T21] ( 2, 15.68) int -> x11 "CSE #22: aggressive"
; V19 cse5 [V19,T23] ( 2, 15.68) int -> x14 "CSE #24: aggressive"
; V20 cse6 [V20,T06] ( 5,172.97) int -> x8 "CSE #07: aggressive"
-; V21 cse7 [V21,T09] ( 7, 98.46) byref -> x0 hoist "CSE #03: aggressive"
+; V21 cse7 [V21,T09] ( 7, 94.75) byref -> x0 hoist "CSE #03: aggressive"
; V22 cse8 [V22,T05] ( 13,266.59) int -> x13 multi-def "CSE #13: aggressive"
-; V23 cse9 [V23,T10] ( 9, 96.64) byref -> x1 hoist "CSE #02: aggressive"
+; V23 cse9 [V23,T11] ( 9, 92.93) byref -> x1 hoist "CSE #02: aggressive"
; V24 cse10 [V24,T16] ( 3, 64.71) int -> x4 "CSE #04: aggressive"
; V25 cse11 [V25,T13] ( 3, 79.56) int -> x6 hoist "CSE #06: aggressive"
; V26 cse12 [V26,T08] ( 8,113.73) int -> x10 hoist multi-def "CSE #12: aggressive"
-; V27 cse13 [V27,T11] ( 3, 94.41) int -> x9 "CSE #09: aggressive"
+; V27 cse13 [V27,T10] ( 3, 94.41) int -> x9 "CSE #09: aggressive"
; V28 cse14 [V28,T30] ( 3, 0.75) long -> x21 "CSE #01: aggressive"
; V29 cse15 [V29,T12] ( 3, 94.09) long -> x7 "CSE #17: aggressive"
-; V30 rat0 [V30,T25] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
-; V31 rat1 [V31,T26] ( 4, 12.13) int -> x3 "Trip count IV"
-; V32 rat2 [V32,T27] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
+; V30 rat0 [V30,T25] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
+; V31 rat1 [V31,T27] ( 4, 12.13) int -> x3 "Trip count IV"
+; V32 rat2 [V32,T26] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
; V33 rat3 [V33,T28] ( 4, 12.13) int -> x3 "Trip count IV"
;
; Lcl frame size = 0
@@ -73,30 +73,34 @@ G_M4546_IG02: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
; gcr arg pop 0
add x1, x22, #16
; byrRegs +[x1]
- mov x2, xzr
+ mov x2, x1
+ ; byrRegs +[x2]
mov w3, #101
;; size=52 bbWeight=0.25 PerfScore 1.88
-G_M4546_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref, isz
+G_M4546_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0006 {x1 x2}, byref, isz
; gcrRegs -[x22]
- strh wzr, [x1, x2]
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M4546_IG03
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M4546_IG04: ; bbWeight=0.25, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref
+ ; byrRegs -[x2]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- mov x2, xzr
+ mov x2, x0
+ ; byrRegs +[x2]
mov w3, #101
;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M4546_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref, isz
- strh wzr, [x0, x2]
+G_M4546_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0007 {x0 x1 x2}, byref, isz
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M4546_IG05
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M4546_IG06: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref
+ ; byrRegs -[x2]
mov w2, wzr
;; size=4 bbWeight=0.25 PerfScore 0.12
G_M4546_IG07: ; bbWeight=0.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref
+0 (0.00%) : 19321.dasm - Benchstone.BenchI.QuickSort:Test():ubyte:this (FullOpts)
@@ -15,13 +15,13 @@
; V04 loc3 [V04,T01] ( 5, 16.09) int -> x1
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T00] ( 3, 23.76) int -> x3 "fgMakeTemp is creating a new local variable"
-; V07 cse0 [V07,T06] ( 3, 11.88) int -> x3 "CSE #04: aggressive"
+; V07 cse0 [V07,T05] ( 3, 11.88) int -> x3 "CSE #04: aggressive"
;* V08 cse1 [V08,T10] ( 0, 0 ) byref -> zero-ref hoist "CSE #02: aggressive"
-; V09 cse2 [V09,T03] ( 4, 12.13) byref -> x20 hoist "CSE #05: aggressive"
+; V09 cse2 [V09,T07] ( 4, 8.42) byref -> x20 hoist "CSE #05: aggressive"
; V10 cse3 [V10,T08] ( 3, 8.17) long -> x2 hoist "CSE #03: aggressive"
-; V11 cse4 [V11,T07] ( 3, 11.88) int -> x1 "CSE #07: aggressive"
-; V12 rat0 [V12,T04] ( 4, 12.13) long -> x0 "Strength reduced derived IV"
-; V13 rat1 [V13,T05] ( 4, 12.13) int -> x1 "Trip count IV"
+; V11 cse4 [V11,T06] ( 3, 11.88) int -> x1 "CSE #07: aggressive"
+; V12 rat0 [V12,T03] ( 4, 12.13) byref -> x0 "Strength reduced derived IV"
+; V13 rat1 [V13,T04] ( 4, 12.13) int -> x1 "Trip count IV"
;
; Lcl frame size = 0
@@ -53,10 +53,11 @@ G_M13947_IG03: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x2, #0xD1FFAB1E LSL #32
add x20, x19, #16
; byrRegs +[x20]
- mov x0, xzr
+ mov x0, x20
+ ; byrRegs +[x0]
mov w1, #200
;; size=24 bbWeight=0.25 PerfScore 0.75
-G_M13947_IG04: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M13947_IG04: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, byref, isz
ldr w3, [x2]
mov w4, #0xD1FFAB1E
mov w5, #0xD1FFAB1E
@@ -68,16 +69,17 @@ G_M13947_IG04: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {
csneg w3, w4, w3, mi
tbz w3, #31, G_M13947_IG06
;; size=40 bbWeight=3.96 PerfScore 39.60
-G_M13947_IG05: ; bbWeight=1.98, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M13947_IG05: ; bbWeight=1.98, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, byref
neg w3, w3
;; size=4 bbWeight=1.98 PerfScore 0.99
-G_M13947_IG06: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- str w3, [x20, x0]
+G_M13947_IG06: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, byref, isz
+ str w3, [x0]
add x0, x0, #4
sub w1, w1, #1
cbnz w1, G_M13947_IG04
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M13947_IG07: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+ ; byrRegs -[x0]
mov x2, x19
; gcrRegs +[x2]
mov w0, wzr
+0 (0.00%) : 12668.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
@@ -36,19 +36,19 @@
; V26 cse7 [V26,T30] ( 6, 10.97) ref -> x9 multi-def "CSE #49: moderate"
; V27 cse8 [V27,T20] ( 3, 23.52) int -> x4 "CSE #28: moderate"
; V28 cse9 [V28,T31] ( 13, 9.68) byref -> x6 hoist "CSE #10: moderate"
-; V29 cse10 [V29,T05] ( 15,100.05) byref -> x0 hoist "CSE #03: aggressive"
-; V30 cse11 [V30,T06] ( 16, 97.57) byref -> x1 hoist "CSE #02: aggressive"
+; V29 cse10 [V29,T05] ( 15, 96.34) byref -> x0 hoist "CSE #03: aggressive"
+; V30 cse11 [V30,T07] ( 16, 93.86) byref -> x1 hoist "CSE #02: aggressive"
; V31 cse12 [V31,T10] ( 7, 64.93) byref -> x4 hoist multi-def "CSE #05: aggressive"
; V32 cse13 [V32,T28] ( 20, 11.59) int -> registers hoist multi-def "CSE #11: moderate"
; V33 cse14 [V33,T33] ( 7, 6.25) int -> registers hoist multi-def "CSE #04: moderate"
-; V34 cse15 [V34,T07] ( 4, 95.04) long -> x10 "CSE #19: aggressive"
+; V34 cse15 [V34,T06] ( 4, 95.04) long -> x10 "CSE #19: aggressive"
; V35 cse16 [V35,T04] ( 4,188.18) long -> x8 "CSE #20: aggressive"
; V36 cse17 [V36,T35] ( 5, 4.13) long -> x6 hoist multi-def "CSE #06: moderate"
; V37 cse18 [V37,T37] ( 3, 0.96) long -> x9 "CSE #17: moderate"
; V38 cse19 [V38,T43] ( 3, 0.19) long -> x5 hoist "CSE #09: conservative"
-; V39 rat0 [V39,T24] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
-; V40 rat1 [V40,T25] ( 4, 12.13) int -> x3 "Trip count IV"
-; V41 rat2 [V41,T26] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
+; V39 rat0 [V39,T24] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
+; V40 rat1 [V40,T26] ( 4, 12.13) int -> x3 "Trip count IV"
+; V41 rat2 [V41,T25] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
; V42 rat3 [V42,T27] ( 4, 12.13) int -> x3 "Trip count IV"
; V43 rat4 [V43,T12] ( 4, 48.03) long -> x5 "Strength reduced derived IV"
; V44 rat5 [V44,T13] ( 4, 48.03) int -> x8 "Trip count IV"
@@ -85,30 +85,34 @@ G_M6376_IG02: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
; gcr arg pop 0
add x1, x21, #16
; byrRegs +[x1]
- mov x2, xzr
+ mov x2, x1
+ ; byrRegs +[x2]
mov w3, #101
;; size=56 bbWeight=0.25 PerfScore 2.00
-G_M6376_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref, isz
+G_M6376_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0006 {x1 x2}, byref, isz
; gcrRegs -[x21]
- strh wzr, [x1, x2]
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M6376_IG03
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M6376_IG04: ; bbWeight=0.25, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref
+ ; byrRegs -[x2]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- mov x2, xzr
+ mov x2, x0
+ ; byrRegs +[x2]
mov w3, #101
;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M6376_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref, isz
- strh wzr, [x0, x2]
+G_M6376_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0007 {x0 x1 x2}, byref, isz
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M6376_IG05
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M6376_IG06: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref, isz
+ ; byrRegs -[x2]
mov w2, wzr
cbz x20, G_M6376_IG51
ldr w3, [x20, #0x08]
benchmarks.run_pgo.windows.arm64.checked.mch
-16 (-10.26%) : 30602.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
@@ -35,17 +35,16 @@
;* V23 tmp21 [V23 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
; V24 cse0 [V24,T05] ( 2, 2 ) byref -> x20 hoist "CSE #01: aggressive"
; V25 cse1 [V25,T04] ( 3, 3 ) int -> x19 "CSE #02: aggressive"
-; V26 rat0 [V26,T02] ( 4, 4 ) long -> x21 "Strength reduced derived IV"
+; V26 rat0 [V26,T02] ( 4, 4 ) byref -> x20 "Strength reduced derived IV"
; V27 rat1 [V27,T03] ( 4, 4 ) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44603_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 fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
cbz x0, G_M44603_IG08
@@ -54,11 +53,10 @@ G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ble G_M44603_IG08
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=24 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 6.00
G_M44603_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
bhs G_M44603_IG07
movz x1, #0xD1FFAB1E
@@ -72,14 +70,13 @@ G_M44603_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=1 PerfScore 0.50
G_M44603_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M44603_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; byrRegs +[x20]
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M44603_IG03
b G_M44603_IG08
@@ -99,13 +96,12 @@ G_M44603_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M44603_IG09: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 16, PerfScore 28.50, instruction count 39, allocated bytes for code 156 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 25.00, instruction count 35, allocated bytes for code 140 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -116,7 +112,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -127,9 +123,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-10.26%) : 18996.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
@@ -35,17 +35,16 @@
;* V23 tmp21 [V23 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
; V24 cse0 [V24,T05] ( 2, 2 ) byref -> x20 hoist "CSE #01: aggressive"
; V25 cse1 [V25,T04] ( 3, 3 ) int -> x19 "CSE #02: aggressive"
-; V26 rat0 [V26,T02] ( 4, 4 ) long -> x21 "Strength reduced derived IV"
+; V26 rat0 [V26,T02] ( 4, 4 ) byref -> x20 "Strength reduced derived IV"
; V27 rat1 [V27,T03] ( 4, 4 ) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44603_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 fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
cbz x0, G_M44603_IG08
@@ -54,11 +53,10 @@ G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ble G_M44603_IG08
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=24 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 6.00
G_M44603_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
bhs G_M44603_IG07
movz x1, #0xD1FFAB1E
@@ -72,14 +70,13 @@ G_M44603_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=1 PerfScore 0.50
G_M44603_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M44603_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; byrRegs +[x20]
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M44603_IG03
b G_M44603_IG08
@@ -99,13 +96,12 @@ G_M44603_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M44603_IG09: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 16, PerfScore 28.50, instruction count 39, allocated bytes for code 156 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 25.00, instruction count 35, allocated bytes for code 140 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -116,7 +112,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -127,9 +123,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-10.26%) : 36247.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
@@ -35,17 +35,16 @@
;* V23 tmp21 [V23 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
; V24 cse0 [V24,T05] ( 2, 2 ) byref -> x20 hoist "CSE #01: aggressive"
; V25 cse1 [V25,T04] ( 3, 3 ) int -> x19 "CSE #02: aggressive"
-; V26 rat0 [V26,T02] ( 4, 4 ) long -> x21 "Strength reduced derived IV"
+; V26 rat0 [V26,T02] ( 4, 4 ) byref -> x20 "Strength reduced derived IV"
; V27 rat1 [V27,T03] ( 4, 4 ) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44603_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 fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
cbz x0, G_M44603_IG08
@@ -54,11 +53,10 @@ G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ble G_M44603_IG08
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=24 bbWeight=1 PerfScore 6.50
+ ;; size=20 bbWeight=1 PerfScore 6.00
G_M44603_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
bhs G_M44603_IG07
movz x1, #0xD1FFAB1E
@@ -72,14 +70,13 @@ G_M44603_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=1 PerfScore 0.50
G_M44603_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
G_M44603_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; byrRegs +[x20]
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M44603_IG03
b G_M44603_IG08
@@ -99,13 +96,12 @@ G_M44603_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M44603_IG09: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 156, prolog size 16, PerfScore 28.50, instruction count 39, allocated bytes for code 156 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
+; Total bytes of code 140, prolog size 12, PerfScore 25.00, instruction count 35, allocated bytes for code 140 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -116,7 +112,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
+ Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -127,9 +123,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
+4 (+0.27%) : 65116.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
@@ -19,11 +19,11 @@
; V07 loc3 [V07 ] ( 10, 15.80) struct (80) [fp+0xA0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Reflection.MetadataEnumResult>
; V08 loc4 [V08,T00] ( 10, 19.90) int -> x19
; V09 loc5 [V09,T02] ( 6, 12.71) int -> x20
-; V10 loc6 [V10,T09] ( 5, 8.38) int -> x26 ld-addr-op
-; V11 loc7 [V11,T32] ( 3, 2.98) int -> x27
-; V12 loc8 [V12,T24] ( 3, 3.97) ubyte -> x22
+; V10 loc6 [V10,T09] ( 5, 8.38) int -> x22 ld-addr-op
+; V11 loc7 [V11,T32] ( 3, 2.98) int -> x26
+; V12 loc8 [V12,T24] ( 3, 3.97) ubyte -> x23
;* V13 loc9 [V13 ] ( 0, 0 ) ubyte -> zero-ref
-; V14 loc10 [V14,T42] ( 2, 0.28) int -> x22
+; V14 loc10 [V14,T42] ( 2, 0.28) int -> x23
;* V15 loc11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.MdFieldInfo>
;* V16 loc12 [V16 ] ( 0, 0 ) struct (16) zero-ref <System.MdUtf8String>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -107,10 +107,10 @@
; V95 tmp78 [V95,T22] ( 2, 4.00) long -> x3 "Cast away GC"
; V96 tmp79 [V96,T23] ( 2, 4.00) long -> x3 "argument with side effect"
; V97 tmp80 [V97,T40] ( 3, 1.02) ref -> x0 "arr expr"
-; V98 cse0 [V98,T15] ( 2, 5.40) byref -> x23 hoist "CSE #04: aggressive"
-; V99 cse1 [V99,T16] ( 2, 5.40) int -> x21 hoist "CSE #05: aggressive"
-; V100 rat0 [V100,T05] ( 4, 10.80) long -> x3 "Strength reduced derived IV"
-; V101 rat1 [V101,T06] ( 4, 10.80) int -> x22 "Trip count IV"
+; V98 cse0 [V98,T15] ( 2, 5.40) byref -> x3 hoist "CSE #04: aggressive"
+; V99 cse1 [V99,T16] ( 2, 5.40) int -> x23 hoist "CSE #05: aggressive"
+; V100 rat0 [V100,T05] ( 4, 10.80) byref -> x3 "Strength reduced derived IV"
+; V101 rat1 [V101,T06] ( 4, 10.80) int -> x21 "Trip count IV"
;
; Lcl frame size = 224
@@ -280,20 +280,19 @@ G_M26087_IG14: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov w2, #0xD1FFAB1E
str w2, [x0, #0x10]
- add x23, x0, #16
- ; byrRegs +[x23]
- and w21, w20, #0xD1FFAB1E
- mov x3, xzr
- mov w22, #1
- ;; size=44 bbWeight=2.70 PerfScore 17.55
-G_M26087_IG15: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=800000 {x23}, byref, isz
+ add x3, x0, #16
+ ; byrRegs +[x3]
+ and w23, w20, #0xD1FFAB1E
+ mov w21, #1
+ ;; size=40 bbWeight=2.70 PerfScore 16.20
+G_M26087_IG15: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
; gcrRegs -[x0]
- ldr w2, [x23, x3]
- cmp w2, w21
+ ldr w2, [x3]
+ cmp w2, w23
bne G_M26087_IG31
;; size=12 bbWeight=2.70 PerfScore 12.15
G_M26087_IG16: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x23]
+ ; byrRegs -[x3]
tst w20, #0xD1FFAB1E
beq G_M26087_IG44
;; size=8 bbWeight=2.70 PerfScore 4.05
@@ -304,9 +303,9 @@ G_M26087_IG17: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
bl <unknown method>
; gcr arg pop 0
tbnz w0, #31, G_M26087_IG52
- ldr w26, [fp, #0x90] // [V45 tmp28]
- and w27, w26, #7
- tbz w26, #6, G_M26087_IG28
+ ldr w22, [fp, #0x90] // [V45 tmp28]
+ and w26, w22, #7
+ tbz w22, #6, G_M26087_IG28
;; size=32 bbWeight=2.70 PerfScore 18.90
G_M26087_IG18: ; bbWeight=1.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x21, [fp, #0x38] // [V00 this]
@@ -314,23 +313,23 @@ G_M26087_IG18: ; bbWeight=1.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x2, [x21, #0x10]
; gcrRegs +[x2]
ldr x2, [x2, #0x08]
- ldr x23, [fp, #0x28] // [V02 arg2]
- ; gcrRegs +[x23]
- cmp x23, x2
- cset x22, ne
- cbnz w22, G_M26087_IG32
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
+ cmp x27, x2
+ cset x23, ne
+ cbnz w23, G_M26087_IG32
;; size=28 bbWeight=1.91 PerfScore 22.95
-G_M26087_IG19: ; bbWeight=1.81, gcVars=00000000000C0010 {V01 V03 V05}, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26087_IG19: ; bbWeight=1.81, gcVars=00000000000C0010 {V01 V03 V05}, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x2]
; GC ptr vars -{V00 V02}
cmp w25, #1
beq G_M26087_IG21
;; size=8 bbWeight=1.81 PerfScore 2.72
-G_M26087_IG20: ; bbWeight=1.75, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG20: ; bbWeight=1.75, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cmp w25, #2
bne G_M26087_IG39
;; size=8 bbWeight=1.75 PerfScore 2.63
-G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
add x2, fp, #136 // [V50 tmp33]
mov x0, x28
mov w1, w20
@@ -348,37 +347,37 @@ G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
blr x2
; gcr arg pop 0
;; size=56 bbWeight=1.77 PerfScore 23.90
-G_M26087_IG22: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG22: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
mov w3, #1
cmp w25, #1
bne G_M26087_IG46
cmp w0, w24
beq G_M26087_IG34
;; size=20 bbWeight=1.77 PerfScore 6.20
-G_M26087_IG23: ; bbWeight=0.98, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG23: ; bbWeight=0.98, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
mov w3, wzr
;; size=4 bbWeight=0.98 PerfScore 0.49
-G_M26087_IG24: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG24: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cbnz w3, G_M26087_IG39
;; size=4 bbWeight=1.77 PerfScore 1.77
-G_M26087_IG25: ; bbWeight=1.18, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG25: ; bbWeight=1.18, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cmp w25, #1
beq G_M26087_IG38
;; size=8 bbWeight=1.18 PerfScore 1.77
-G_M26087_IG26: ; bbWeight=1.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG26: ; bbWeight=1.14, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
cmp w25, #2
cset x0, eq
;; size=8 bbWeight=1.14 PerfScore 1.14
-G_M26087_IG27: ; bbWeight=1.18, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG27: ; bbWeight=1.18, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
tst w0, #255
- str x23, [fp, #0x28] // [V02 arg2]
+ str x27, [fp, #0x28] // [V02 arg2]
; GC ptr vars +{V02}
str x21, [fp, #0x38] // [V00 this]
; GC ptr vars +{V00}
beq G_M26087_IG50
;; size=16 bbWeight=1.18 PerfScore 4.13
G_M26087_IG28: ; bbWeight=2.70, gcVars=00000000000C0490 {V00 V01 V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x21 x23]
+ ; gcrRegs -[x21 x27]
add w19, w19, #1
ldr w0, [fp, #0xA8] // [V07 loc3+0x08]
cmp w19, w0
@@ -396,8 +395,8 @@ G_M26087_IG29: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=000
;; size=28 bbWeight=1.00 PerfScore 7.00
G_M26087_IG30: ; bbWeight=0.17, gcVars=00000000000C0490 {V00 V01 V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V01 V02 V03 V04 V05 V10 V18}
- ldr x23, [fp, #0x28] // [V02 arg2]
- ; gcrRegs +[x23]
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
ldr x0, [fp, #0xA0] // [V07 loc3]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -407,32 +406,35 @@ G_M26087_IG30: ; bbWeight=0.17, gcVars=00000000000C0490 {V00 V01 V02 V03
; gcrRegs -[x0]
; byrRegs +[x0]
ldr w20, [x0, w19, UXTW #2]
- str x23, [fp, #0x28] // [V02 arg2]
+ str x27, [fp, #0x28] // [V02 arg2]
b G_M26087_IG14
;; size=36 bbWeight=0.17 PerfScore 2.38
-G_M26087_IG31: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=800000 {x23}, byref, isz
- ; gcrRegs -[x23]
- ; byrRegs -[x0] +[x23]
+G_M26087_IG31: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+ ; gcrRegs -[x27]
+ ; byrRegs -[x0] +[x3]
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
add x3, x3, #4
- sub w22, w22, #1
- cbnz w22, G_M26087_IG15
+ sub w21, w21, #1
+ str x27, [fp, #0x28] // [V02 arg2]
+ cbnz w21, G_M26087_IG15
b G_M26087_IG43
- ;; size=16 bbWeight=2.70 PerfScore 8.10
-G_M26087_IG32: ; bbWeight=0.14, gcVars=00000000000C0010 {V01 V03 V05}, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x21 x23]
- ; byrRegs -[x23]
+ ;; size=24 bbWeight=2.70 PerfScore 16.20
+G_M26087_IG32: ; bbWeight=0.14, gcVars=00000000000C0010 {V01 V03 V05}, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[x21]
+ ; byrRegs -[x3]
; GC ptr vars -{V00 V02 V04 V10 V18}
- cmp w27, #1
+ cmp w26, #1
bne G_M26087_IG19
;; size=8 bbWeight=0.14 PerfScore 0.20
-G_M26087_IG33: ; bbWeight=0.10, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
- str x23, [fp, #0x28] // [V02 arg2]
+G_M26087_IG33: ; bbWeight=0.10, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
+ str x27, [fp, #0x28] // [V02 arg2]
; GC ptr vars +{V02}
str x21, [fp, #0x38] // [V00 this]
; GC ptr vars +{V00}
b G_M26087_IG28
;; size=12 bbWeight=0.10 PerfScore 0.30
-G_M26087_IG34: ; bbWeight=0.79, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG34: ; bbWeight=0.79, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
; GC ptr vars -{V00 V02}
ldr x3, [fp, #0x30] // [V01 arg1]
; byrRegs +[x3]
@@ -441,7 +443,7 @@ G_M26087_IG34: ; bbWeight=0.79, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
cmp x2, #4
beq G_M26087_IG36
;; size=20 bbWeight=0.79 PerfScore 5.51
-G_M26087_IG35: ; bbWeight=0.39, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG35: ; bbWeight=0.39, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
; byrRegs -[x3]
ldr x0, [fp, #0x80] // [V54 tmp37]
movz x4, #0xD1FFAB1E // code for <unknown method>
@@ -453,7 +455,7 @@ G_M26087_IG35: ; bbWeight=0.39, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
sxtw w3, w0
b G_M26087_IG37
;; size=32 bbWeight=0.39 PerfScore 3.54
-G_M26087_IG36: ; bbWeight=0.39, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG36: ; bbWeight=0.39, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
ldr x4, [fp, #0x80] // [V54 tmp37]
ldr w2, [x4]
ldr w0, [x1]
@@ -461,26 +463,26 @@ G_M26087_IG36: ; bbWeight=0.39, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
cset x2, eq
mov w3, w2
;; size=24 bbWeight=0.39 PerfScore 3.74
-G_M26087_IG37: ; bbWeight=0.79, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG37: ; bbWeight=0.79, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
b G_M26087_IG24
;; size=4 bbWeight=0.79 PerfScore 0.79
-G_M26087_IG38: ; bbWeight=0.04, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG38: ; bbWeight=0.04, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
mov w0, #1
b G_M26087_IG27
;; size=8 bbWeight=0.04 PerfScore 0.06
-G_M26087_IG39: ; bbWeight=0.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
- tst w26, #16
+G_M26087_IG39: ; bbWeight=0.14, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
+ tst w22, #16
cset x2, ne
- cmp w27, #6
...
+4 (+0.27%) : 74639.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
@@ -19,11 +19,11 @@
; V07 loc3 [V07 ] ( 10, 15.80) struct (80) [fp+0xA0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Reflection.MetadataEnumResult>
; V08 loc4 [V08,T00] ( 10, 19.90) int -> x19
; V09 loc5 [V09,T02] ( 6, 12.71) int -> x20
-; V10 loc6 [V10,T09] ( 5, 8.38) int -> x26 ld-addr-op
-; V11 loc7 [V11,T31] ( 3, 2.98) int -> x27
-; V12 loc8 [V12,T24] ( 3, 3.97) ubyte -> x22
+; V10 loc6 [V10,T09] ( 5, 8.38) int -> x22 ld-addr-op
+; V11 loc7 [V11,T31] ( 3, 2.98) int -> x26
+; V12 loc8 [V12,T24] ( 3, 3.97) ubyte -> x23
;* V13 loc9 [V13 ] ( 0, 0 ) ubyte -> zero-ref
-; V14 loc10 [V14,T39] ( 2, 0.28) int -> x22
+; V14 loc10 [V14,T39] ( 2, 0.28) int -> x23
;* V15 loc11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.MdFieldInfo>
;* V16 loc12 [V16 ] ( 0, 0 ) struct (16) zero-ref <System.MdUtf8String>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -103,10 +103,10 @@
; V91 tmp74 [V91,T22] ( 2, 4.00) long -> x3 "Cast away GC"
; V92 tmp75 [V92,T23] ( 2, 4.00) long -> x3 "argument with side effect"
; V93 tmp76 [V93,T25] ( 3, 3.77) ref -> x1 "arr expr"
-; V94 cse0 [V94,T15] ( 2, 5.40) byref -> x23 hoist "CSE #04: aggressive"
-; V95 cse1 [V95,T16] ( 2, 5.40) int -> x21 hoist "CSE #05: aggressive"
-; V96 rat0 [V96,T04] ( 4, 10.80) long -> x3 "Strength reduced derived IV"
-; V97 rat1 [V97,T05] ( 4, 10.80) int -> x22 "Trip count IV"
+; V94 cse0 [V94,T15] ( 2, 5.40) byref -> x3 hoist "CSE #04: aggressive"
+; V95 cse1 [V95,T16] ( 2, 5.40) int -> x23 hoist "CSE #05: aggressive"
+; V96 rat0 [V96,T04] ( 4, 10.80) byref -> x3 "Strength reduced derived IV"
+; V97 rat1 [V97,T05] ( 4, 10.80) int -> x21 "Trip count IV"
;
; Lcl frame size = 224
@@ -276,20 +276,19 @@ G_M26087_IG14: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov w2, #0xD1FFAB1E
str w2, [x0, #0x10]
- add x23, x0, #16
- ; byrRegs +[x23]
- and w21, w20, #0xD1FFAB1E
- mov x3, xzr
- mov w22, #1
- ;; size=44 bbWeight=2.70 PerfScore 17.55
-G_M26087_IG15: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=800000 {x23}, byref, isz
+ add x3, x0, #16
+ ; byrRegs +[x3]
+ and w23, w20, #0xD1FFAB1E
+ mov w21, #1
+ ;; size=40 bbWeight=2.70 PerfScore 16.20
+G_M26087_IG15: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
; gcrRegs -[x0]
- ldr w2, [x23, x3]
- cmp w2, w21
+ ldr w2, [x3]
+ cmp w2, w23
bne G_M26087_IG31
;; size=12 bbWeight=2.70 PerfScore 12.15
G_M26087_IG16: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x23]
+ ; byrRegs -[x3]
tst w20, #0xD1FFAB1E
beq G_M26087_IG41
;; size=8 bbWeight=2.70 PerfScore 4.05
@@ -300,9 +299,9 @@ G_M26087_IG17: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
bl <unknown method>
; gcr arg pop 0
tbnz w0, #31, G_M26087_IG49
- ldr w26, [fp, #0x90] // [V45 tmp28]
- and w27, w26, #7
- tbz w26, #6, G_M26087_IG28
+ ldr w22, [fp, #0x90] // [V45 tmp28]
+ and w26, w22, #7
+ tbz w22, #6, G_M26087_IG28
;; size=32 bbWeight=2.70 PerfScore 18.90
G_M26087_IG18: ; bbWeight=1.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x21, [fp, #0x38] // [V00 this]
@@ -310,23 +309,23 @@ G_M26087_IG18: ; bbWeight=1.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x2, [x21, #0x10]
; gcrRegs +[x2]
ldr x2, [x2, #0x08]
- ldr x23, [fp, #0x28] // [V02 arg2]
- ; gcrRegs +[x23]
- cmp x23, x2
- cset x22, ne
- cbnz w22, G_M26087_IG32
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
+ cmp x27, x2
+ cset x23, ne
+ cbnz w23, G_M26087_IG32
;; size=28 bbWeight=1.91 PerfScore 22.95
-G_M26087_IG19: ; bbWeight=1.81, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26087_IG19: ; bbWeight=1.81, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x2]
; GC ptr vars -{V00 V02}
cmp w25, #1
beq G_M26087_IG21
;; size=8 bbWeight=1.81 PerfScore 2.72
-G_M26087_IG20: ; bbWeight=1.54, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG20: ; bbWeight=1.54, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cmp w25, #2
bne G_M26087_IG36
;; size=8 bbWeight=1.54 PerfScore 2.30
-G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
add x2, fp, #136 // [V50 tmp33]
mov x0, x28
mov w1, w20
@@ -344,37 +343,37 @@ G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
blr x2
; gcr arg pop 0
;; size=56 bbWeight=1.77 PerfScore 23.90
-G_M26087_IG22: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG22: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
mov w3, #1
cmp w25, #1
bne G_M26087_IG43
cmp w0, w24
beq G_M26087_IG34
;; size=20 bbWeight=1.77 PerfScore 6.20
-G_M26087_IG23: ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG23: ; bbWeight=1.59, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
mov w3, wzr
;; size=4 bbWeight=1.59 PerfScore 0.80
-G_M26087_IG24: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG24: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cbnz w3, G_M26087_IG36
;; size=4 bbWeight=1.77 PerfScore 1.77
-G_M26087_IG25: ; bbWeight=1.68, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG25: ; bbWeight=1.68, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cmp w25, #1
beq G_M26087_IG35
;; size=8 bbWeight=1.68 PerfScore 2.52
-G_M26087_IG26: ; bbWeight=1.42, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG26: ; bbWeight=1.42, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
cmp w25, #2
cset x1, eq
;; size=8 bbWeight=1.42 PerfScore 1.42
-G_M26087_IG27: ; bbWeight=1.68, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG27: ; bbWeight=1.68, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
tst w1, #255
- str x23, [fp, #0x28] // [V02 arg2]
+ str x27, [fp, #0x28] // [V02 arg2]
; GC ptr vars +{V02}
str x21, [fp, #0x38] // [V00 this]
; GC ptr vars +{V00}
beq G_M26087_IG47
;; size=16 bbWeight=1.68 PerfScore 5.89
G_M26087_IG28: ; bbWeight=2.70, gcVars=00000000000C04C0 {V00 V01 V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x21 x23]
+ ; gcrRegs -[x21 x27]
add w19, w19, #1
ldr w1, [fp, #0xA8] // [V07 loc3+0x08]
cmp w19, w1
@@ -392,8 +391,8 @@ G_M26087_IG29: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=000
;; size=28 bbWeight=1.00 PerfScore 7.00
G_M26087_IG30: ; bbWeight=0.63, gcVars=00000000000C04C0 {V00 V01 V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V01 V02 V03 V05 V10 V18}
- ldr x23, [fp, #0x28] // [V02 arg2]
- ; gcrRegs +[x23]
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
ldr x1, [fp, #0xA0] // [V07 loc3]
; gcrRegs +[x1]
ldr w2, [x1, #0x08]
@@ -403,32 +402,35 @@ G_M26087_IG30: ; bbWeight=0.63, gcVars=00000000000C04C0 {V00 V01 V02 V03
; gcrRegs -[x1]
; byrRegs +[x1]
ldr w20, [x1, w19, UXTW #2]
- str x23, [fp, #0x28] // [V02 arg2]
+ str x27, [fp, #0x28] // [V02 arg2]
b G_M26087_IG14
;; size=36 bbWeight=0.63 PerfScore 8.81
-G_M26087_IG31: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=800000 {x23}, byref, isz
- ; gcrRegs -[x23]
- ; byrRegs -[x1] +[x23]
+G_M26087_IG31: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+ ; gcrRegs -[x27]
+ ; byrRegs -[x1] +[x3]
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
add x3, x3, #4
- sub w22, w22, #1
- cbnz w22, G_M26087_IG15
+ sub w21, w21, #1
+ str x27, [fp, #0x28] // [V02 arg2]
+ cbnz w21, G_M26087_IG15
b G_M26087_IG40
- ;; size=16 bbWeight=2.70 PerfScore 8.10
-G_M26087_IG32: ; bbWeight=0.14, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x21 x23]
- ; byrRegs -[x23]
+ ;; size=24 bbWeight=2.70 PerfScore 16.20
+G_M26087_IG32: ; bbWeight=0.14, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[x21]
+ ; byrRegs -[x3]
; GC ptr vars -{V00 V02 V10 V18}
- cmp w27, #1
+ cmp w26, #1
bne G_M26087_IG19
;; size=8 bbWeight=0.14 PerfScore 0.20
-G_M26087_IG33: ; bbWeight=0.10, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
- str x23, [fp, #0x28] // [V02 arg2]
+G_M26087_IG33: ; bbWeight=0.10, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
+ str x27, [fp, #0x28] // [V02 arg2]
; GC ptr vars +{V02}
str x21, [fp, #0x38] // [V00 this]
; GC ptr vars +{V00}
b G_M26087_IG28
;; size=12 bbWeight=0.10 PerfScore 0.30
-G_M26087_IG34: ; bbWeight=0.18, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG34: ; bbWeight=0.18, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
; GC ptr vars -{V00 V02}
ldr x3, [fp, #0x30] // [V01 arg1]
; byrRegs +[x3]
@@ -445,23 +447,23 @@ G_M26087_IG34: ; bbWeight=0.18, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
sxtw w3, w0
b G_M26087_IG24
;; size=44 bbWeight=0.18 PerfScore 2.57
-G_M26087_IG35: ; bbWeight=0.26, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG35: ; bbWeight=0.26, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
mov w1, #1
b G_M26087_IG27
;; size=8 bbWeight=0.26 PerfScore 0.39
-G_M26087_IG36: ; bbWeight=0.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
- tst w26, #16
+G_M26087_IG36: ; bbWeight=0.14, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
+ tst w22, #16
cset x2, ne
- cmp w27, #6
+ cmp w26, #6
cset x0, eq
- mov w1, w22
+ mov w1, w23
movz x3, #0xD1FFAB1E // code for <unknown method>
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
; gcr arg pop 0
- sxtw w22, w0
+ sxtw w23, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -471,10 +473,10 @@ G_M26087_IG36: ; bbWeight=0.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
mov x2, x0
; gcrRegs +[x2]
ldr x0, [x21, #0x10]
- str w22, [x2, #0x18]
+ str w23, [x2, #0x18]
add x14, x2, #16
...
+4 (+0.27%) : 10679.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
@@ -19,11 +19,11 @@
; V07 loc3 [V07 ] ( 10, 15.80) struct (80) [fp+0xA0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Reflection.MetadataEnumResult>
; V08 loc4 [V08,T00] ( 10, 19.90) int -> x19
; V09 loc5 [V09,T02] ( 6, 12.71) int -> x20
-; V10 loc6 [V10,T08] ( 5, 8.38) int -> x26 ld-addr-op
-; V11 loc7 [V11,T30] ( 3, 2.98) int -> x27
-; V12 loc8 [V12,T24] ( 3, 3.97) ubyte -> x22
+; V10 loc6 [V10,T08] ( 5, 8.38) int -> x22 ld-addr-op
+; V11 loc7 [V11,T30] ( 3, 2.98) int -> x26
+; V12 loc8 [V12,T24] ( 3, 3.97) ubyte -> x23
;* V13 loc9 [V13 ] ( 0, 0 ) ubyte -> zero-ref
-; V14 loc10 [V14,T40] ( 2, 0.28) int -> x22
+; V14 loc10 [V14,T40] ( 2, 0.28) int -> x23
;* V15 loc11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.MdFieldInfo>
;* V16 loc12 [V16 ] ( 0, 0 ) struct (16) zero-ref <System.MdUtf8String>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -103,10 +103,10 @@
; V91 tmp74 [V91,T22] ( 2, 4.00) long -> x3 "Cast away GC"
; V92 tmp75 [V92,T23] ( 2, 4.00) long -> x3 "argument with side effect"
; V93 tmp76 [V93,T37] ( 3, 1.21) ref -> x2 "arr expr"
-; V94 cse0 [V94,T15] ( 2, 5.40) byref -> x23 hoist "CSE #04: aggressive"
-; V95 cse1 [V95,T16] ( 2, 5.40) int -> x21 hoist "CSE #05: aggressive"
-; V96 rat0 [V96,T04] ( 4, 10.80) long -> x3 "Strength reduced derived IV"
-; V97 rat1 [V97,T05] ( 4, 10.80) int -> x22 "Trip count IV"
+; V94 cse0 [V94,T15] ( 2, 5.40) byref -> x3 hoist "CSE #04: aggressive"
+; V95 cse1 [V95,T16] ( 2, 5.40) int -> x23 hoist "CSE #05: aggressive"
+; V96 rat0 [V96,T04] ( 4, 10.80) byref -> x3 "Strength reduced derived IV"
+; V97 rat1 [V97,T05] ( 4, 10.80) int -> x21 "Trip count IV"
;
; Lcl frame size = 224
@@ -276,20 +276,19 @@ G_M26087_IG14: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov w2, #0xD1FFAB1E
str w2, [x0, #0x10]
- add x23, x0, #16
- ; byrRegs +[x23]
- and w21, w20, #0xD1FFAB1E
- mov x3, xzr
- mov w22, #1
- ;; size=44 bbWeight=2.70 PerfScore 17.55
-G_M26087_IG15: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=800000 {x23}, byref, isz
+ add x3, x0, #16
+ ; byrRegs +[x3]
+ and w23, w20, #0xD1FFAB1E
+ mov w21, #1
+ ;; size=40 bbWeight=2.70 PerfScore 16.20
+G_M26087_IG15: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
; gcrRegs -[x0]
- ldr w2, [x23, x3]
- cmp w2, w21
+ ldr w2, [x3]
+ cmp w2, w23
bne G_M26087_IG30
;; size=12 bbWeight=2.70 PerfScore 12.15
G_M26087_IG16: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x23]
+ ; byrRegs -[x3]
tst w20, #0xD1FFAB1E
beq G_M26087_IG41
;; size=8 bbWeight=2.70 PerfScore 4.05
@@ -300,9 +299,9 @@ G_M26087_IG17: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
bl <unknown method>
; gcr arg pop 0
tbnz w0, #31, G_M26087_IG49
- ldr w26, [fp, #0x90] // [V45 tmp28]
- and w27, w26, #7
- tbz w26, #6, G_M26087_IG27
+ ldr w22, [fp, #0x90] // [V45 tmp28]
+ and w26, w22, #7
+ tbz w22, #6, G_M26087_IG27
;; size=32 bbWeight=2.70 PerfScore 18.90
G_M26087_IG18: ; bbWeight=1.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x21, [fp, #0x38] // [V00 this]
@@ -310,19 +309,19 @@ G_M26087_IG18: ; bbWeight=1.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x2, [x21, #0x10]
; gcrRegs +[x2]
ldr x2, [x2, #0x08]
- ldr x23, [fp, #0x28] // [V02 arg2]
- ; gcrRegs +[x23]
- cmp x23, x2
- cset x22, ne
- cbnz w22, G_M26087_IG31
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
+ cmp x27, x2
+ cset x23, ne
+ cbnz w23, G_M26087_IG31
;; size=28 bbWeight=1.91 PerfScore 22.95
-G_M26087_IG19: ; bbWeight=1.81, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26087_IG19: ; bbWeight=1.81, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x2]
; GC ptr vars -{V00 V02}
cmp w25, #1
bne G_M26087_IG33
;; size=8 bbWeight=1.81 PerfScore 2.72
-G_M26087_IG20: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG20: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
add x2, fp, #136 // [V50 tmp33]
mov x0, x28
mov w1, w20
@@ -340,36 +339,36 @@ G_M26087_IG20: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
blr x2
; gcr arg pop 0
;; size=56 bbWeight=1.77 PerfScore 23.90
-G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG21: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
mov w3, #1
cmp w25, #1
bne G_M26087_IG43
cmp w0, w24
beq G_M26087_IG35
;; size=20 bbWeight=1.77 PerfScore 6.20
-G_M26087_IG22: ; bbWeight=1.59, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG22: ; bbWeight=1.59, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
mov w3, wzr
;; size=4 bbWeight=1.59 PerfScore 0.80
-G_M26087_IG23: ; bbWeight=1.77, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG23: ; bbWeight=1.77, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cbnz w3, G_M26087_IG34
;; size=4 bbWeight=1.77 PerfScore 1.77
-G_M26087_IG24: ; bbWeight=1.68, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG24: ; bbWeight=1.68, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
cmp w25, #1
bne G_M26087_IG36
;; size=8 bbWeight=1.68 PerfScore 2.52
-G_M26087_IG25: ; bbWeight=0.90, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
+G_M26087_IG25: ; bbWeight=0.90, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
mov w2, #1
;; size=4 bbWeight=0.90 PerfScore 0.45
-G_M26087_IG26: ; bbWeight=1.68, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG26: ; bbWeight=1.68, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
tst w2, #255
- str x23, [fp, #0x28] // [V02 arg2]
+ str x27, [fp, #0x28] // [V02 arg2]
; GC ptr vars +{V02}
str x21, [fp, #0x38] // [V00 this]
; GC ptr vars +{V00}
beq G_M26087_IG47
;; size=16 bbWeight=1.68 PerfScore 5.89
G_M26087_IG27: ; bbWeight=2.70, gcVars=00000000000C04C0 {V00 V01 V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x21 x23]
+ ; gcrRegs -[x21 x27]
add w19, w19, #1
ldr w2, [fp, #0xA8] // [V07 loc3+0x08]
cmp w19, w2
@@ -387,8 +386,8 @@ G_M26087_IG28: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=000
;; size=28 bbWeight=1.00 PerfScore 7.00
G_M26087_IG29: ; bbWeight=0.20, gcVars=00000000000C04C0 {V00 V01 V02 V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V01 V02 V03 V05 V10 V18}
- ldr x23, [fp, #0x28] // [V02 arg2]
- ; gcrRegs +[x23]
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
ldr x2, [fp, #0xA0] // [V07 loc3]
; gcrRegs +[x2]
ldr w0, [x2, #0x08]
@@ -398,49 +397,52 @@ G_M26087_IG29: ; bbWeight=0.20, gcVars=00000000000C04C0 {V00 V01 V02 V03
; gcrRegs -[x2]
; byrRegs +[x2]
ldr w20, [x2, w19, UXTW #2]
- str x23, [fp, #0x28] // [V02 arg2]
+ str x27, [fp, #0x28] // [V02 arg2]
b G_M26087_IG14
;; size=36 bbWeight=0.20 PerfScore 2.83
-G_M26087_IG30: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=800000 {x23}, byref, isz
- ; gcrRegs -[x23]
- ; byrRegs -[x2] +[x23]
+G_M26087_IG30: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref, isz
+ ; gcrRegs -[x27]
+ ; byrRegs -[x2] +[x3]
+ ldr x27, [fp, #0x28] // [V02 arg2]
+ ; gcrRegs +[x27]
add x3, x3, #4
- sub w22, w22, #1
- cbnz w22, G_M26087_IG15
+ sub w21, w21, #1
+ str x27, [fp, #0x28] // [V02 arg2]
+ cbnz w21, G_M26087_IG15
b G_M26087_IG40
- ;; size=16 bbWeight=2.70 PerfScore 8.10
-G_M26087_IG31: ; bbWeight=0.14, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x21 x23]
- ; byrRegs -[x23]
+ ;; size=24 bbWeight=2.70 PerfScore 16.20
+G_M26087_IG31: ; bbWeight=0.14, gcVars=00000000000C0040 {V01 V03 V05}, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[x21]
+ ; byrRegs -[x3]
; GC ptr vars -{V00 V02 V10 V18}
- cmp w27, #1
+ cmp w26, #1
bne G_M26087_IG19
;; size=8 bbWeight=0.14 PerfScore 0.20
-G_M26087_IG32: ; bbWeight=0.10, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
- str x23, [fp, #0x28] // [V02 arg2]
+G_M26087_IG32: ; bbWeight=0.10, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
+ str x27, [fp, #0x28] // [V02 arg2]
; GC ptr vars +{V02}
str x21, [fp, #0x38] // [V00 this]
; GC ptr vars +{V00}
b G_M26087_IG27
;; size=12 bbWeight=0.10 PerfScore 0.30
-G_M26087_IG33: ; bbWeight=0.85, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M26087_IG33: ; bbWeight=0.85, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref, isz
; GC ptr vars -{V00 V02}
cmp w25, #2
beq G_M26087_IG20
;; size=8 bbWeight=0.85 PerfScore 1.27
-G_M26087_IG34: ; bbWeight=0.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=0000 {}, byref
- tst w26, #16
+G_M26087_IG34: ; bbWeight=0.14, gcrefRegs=8200000 {x21 x27}, byrefRegs=0000 {}, byref
+ tst w22, #16
cset x2, ne
- cmp w27, #6
+ cmp w26, #6
cset x0, eq
- mov w1, w22
+ mov w1, w23
movz x3, #0xD1FFAB1E // code for <unknown method>
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
; gcr arg pop 0
- sxtw w22, w0
+ sxtw w23, w0
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -450,10 +452,10 @@ G_M26087_IG34: ; bbWeight=0.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
mov x2, x0
; gcrRegs +[x2]
ldr x0, [x21, #0x10]
- str w22, [x2, #0x18]
+ str w23, [x2, #0x18]
add x14, x2, #16
; byrRegs +[x14]
- mov x15, x23
+ mov x15, x27
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
@@ -467,7 +469,7 @@ G_M26087_IG34: ; bbWeight=0.14, gcrefRegs=A00000 {x21 x23}, byrefRegs=000
; byrRegs -[x14]
str w20, [x2, #0x1C]
str xzr, [x2, #0x20]
- str w26, [x2, #0x30]
+ str w22, [x2, #0x30]
ldr x0, [fp, #0x20] // [V03 arg3]
; byrRegs +[x0]
...
benchmarks.run_tiered.windows.arm64.checked.mch
-12 (-11.11%) : 37911.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier1)
@@ -17,23 +17,22 @@
;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp4 [V08,T03] ( 4, 2.75) ref -> x2 single-def "field V02.array (fldOffset=0x0)" P-INDEP
-; V09 cse0 [V09,T05] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
-; V10 cse1 [V10,T04] ( 2, 4.25) byref -> x21 hoist "CSE #02: aggressive"
-; V11 cse2 [V11,T06] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
-; V12 rat0 [V12,T00] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V09 cse0 [V09,T04] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
+; V10 cse1 [V10,T06] ( 2, 0.50) byref -> x21 hoist "CSE #02: aggressive"
+; V11 cse2 [V11,T05] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
+; V12 rat0 [V12,T00] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
; V13 rat1 [V13,T01] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38436_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M38436_IG02: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x2]
cbz x2, G_M38436_IG06
@@ -49,32 +48,30 @@ G_M38436_IG04: ; bbWeight=0.25, gcrefRegs=80004 {x2 x19}, byrefRegs=0000
ldr xzr, [x19]
ldr x1, [x19]
ldr x22, [x1, #0x48]
- mov x23, xzr
- ;; size=20 bbWeight=0.25 PerfScore 2.50
+ ;; size=16 bbWeight=0.25 PerfScore 2.38
G_M38436_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x2]
- ldr x1, [x21, x23]
+ ldr x1, [x21]
; gcrRegs +[x1]
mov x0, x19
; gcrRegs +[x0]
ldr x2, [x22, #0x20]
blr x2
; gcrRegs -[x0-x1]
- add x23, x23, #8
+ add x21, x21, #8
sub w20, w20, #1
cbnz w20, G_M38436_IG05
;; size=28 bbWeight=4 PerfScore 38.00
G_M38436_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
; byrRegs -[x21]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 108, prolog size 20, PerfScore 54.75, instruction count 27, allocated bytes for code 108 (MethodHash=b16469db) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier1)
+; Total bytes of code 96, prolog size 16, PerfScore 51.62, instruction count 24, allocated bytes for code 96 (MethodHash=b16469db) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier1)
; ============================================================
Unwind Info:
@@ -85,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +90,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
-16 (-10.81%) : 8062.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
@@ -11,7 +11,7 @@
; V00 arg0 [V00,T03] ( 5, 3.75) ref -> x0 class-hnd single-def <System.String>
;* V01 loc0 [V01,T07] ( 0, 0 ) int -> zero-ref
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T05] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
+; V03 tmp1 [V03,T04] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V04 tmp2 [V04,T00] ( 4, 24 ) ushort -> x0 "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V06 tmp4 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -32,19 +32,18 @@
;* V21 tmp19 [V21 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V22 tmp20 [V22 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V23 tmp21 [V23 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V24 cse0 [V24,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V25 cse1 [V25,T06] ( 3, 1.25) int -> x19 "CSE #02: aggressive"
-; V26 rat0 [V26,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V24 cse0 [V24,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V25 cse1 [V25,T05] ( 3, 1.25) int -> x19 "CSE #02: aggressive"
+; V26 rat0 [V26,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V27 rat1 [V27,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44603_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 fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
cbz x0, G_M44603_IG11
@@ -57,11 +56,10 @@ G_M44603_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
G_M44603_IG04: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M44603_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
bhs G_M44603_IG09
;; size=12 bbWeight=4 PerfScore 18.00
@@ -77,11 +75,10 @@ G_M44603_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44603_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44603_IG09: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; byrRegs +[x20]
movz x1, #0xD1FFAB1E // code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
@@ -93,7 +90,7 @@ G_M44603_IG09: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
cbz w0, G_M44603_IG07
;; size=24 bbWeight=2 PerfScore 13.00
G_M44603_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M44603_IG05
;; size=12 bbWeight=4 PerfScore 8.00
@@ -102,13 +99,12 @@ G_M44603_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44603_IG12: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 148, prolog size 16, PerfScore 62.50, instruction count 37, allocated bytes for code 148 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
+; Total bytes of code 132, prolog size 12, PerfScore 59.38, instruction count 33, allocated bytes for code 132 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -119,7 +115,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 148 (0x000094)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -130,9 +126,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-12 (-8.82%) : 7137.dasm - System.Text.Encodings.Web.TextEncoderSettings:AllowRanges(System.Text.Unicode.UnicodeRange[]):this (Tier1)
@@ -9,25 +9,24 @@
;
; V00 this [V00,T02] ( 5, 6.50) ref -> x19 this class-hnd single-def <System.Text.Encodings.Web.TextEncoderSettings>
; V01 arg1 [V01,T03] ( 5, 4.25) ref -> x1 class-hnd single-def <System.Text.Unicode.UnicodeRange[]>
-;* V02 loc0 [V02,T07] ( 0, 0 ) int -> zero-ref
+;* V02 loc0 [V02,T06] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T05] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
-; V05 cse1 [V05,T04] ( 2, 4.25) byref -> x21 hoist "CSE #02: aggressive"
-; V06 cse2 [V06,T06] ( 3, 2.25) int -> x20 "CSE #04: aggressive"
-; V07 rat0 [V07,T00] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V04 cse0 [V04,T04] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
+; V05 cse1 [V05,T07] ( 2, 0.50) byref -> x21 hoist "CSE #02: aggressive"
+; V06 cse2 [V06,T05] ( 3, 2.25) int -> x20 "CSE #04: aggressive"
+; V07 rat0 [V07,T00] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M46771_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M46771_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
cbz x1, G_M46771_IG06
@@ -42,29 +41,27 @@ G_M46771_IG03: ; bbWeight=0.25, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
ldr x1, [x19]
; gcrRegs -[x1]
ldr x22, [x1, #0x48]
- mov x23, xzr
- ;; size=20 bbWeight=0.25 PerfScore 2.50
+ ;; size=16 bbWeight=0.25 PerfScore 2.38
G_M46771_IG04: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
- ldr x1, [x21, x23]
+ ldr x1, [x21]
; gcrRegs +[x1]
mov x0, x19
; gcrRegs +[x0]
ldr x2, [x22, #0x38]
blr x2
; gcrRegs -[x0-x1]
- add x23, x23, #8
+ add x21, x21, #8
sub w20, w20, #1
cbnz w20, G_M46771_IG04
;; size=28 bbWeight=4 PerfScore 38.00
G_M46771_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
; byrRegs -[x21]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M46771_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #8
movz x1, #0xD1FFAB1E // code for System.Text.Encodings.Web.ThrowHelper:ThrowArgumentNullException(int)
@@ -75,7 +72,7 @@ G_M46771_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 20, PerfScore 57.00, instruction count 34, allocated bytes for code 136 (MethodHash=3e54494c) for method System.Text.Encodings.Web.TextEncoderSettings:AllowRanges(System.Text.Unicode.UnicodeRange[]):this (Tier1)
+; Total bytes of code 124, prolog size 16, PerfScore 53.88, instruction count 31, allocated bytes for code 124 (MethodHash=3e54494c) for method System.Text.Encodings.Web.TextEncoderSettings:AllowRanges(System.Text.Unicode.UnicodeRange[]):this (Tier1)
; ============================================================
Unwind Info:
@@ -86,7 +83,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -94,9 +91,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
-4 (-0.13%) : 5903.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
@@ -11,45 +11,45 @@
; V00 this [V00,T00] (107,111.50) ref -> x19 this class-hnd single-def <System.Reflection.Emit.SignatureHelper>
; V01 arg1 [V01,T01] ( 39, 70.75) ref -> x20 class-hnd <System.Type>
; V02 arg2 [V02,T06] ( 4, 20 ) ubyte -> x21
-; V03 loc0 [V03,T72] ( 3, 1.50) ref -> x20 class-hnd single-def <<unknown class>>
-; V04 loc1 [V04,T77] ( 2, 0.75) ref -> x20 class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T71] ( 3, 1.50) ref -> x20 class-hnd single-def <<unknown class>>
+; V04 loc1 [V04,T76] ( 2, 0.75) ref -> x20 class-hnd single-def <<unknown class>>
;* V05 loc2 [V05,T80] ( 0, 0 ) int -> zero-ref
;* V06 loc3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Type>
;* V07 loc4 [V07,T78] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.Emit.RuntimeTypeBuilder>
-; V08 loc5 [V08,T53] ( 4, 2 ) int -> x21
+; V08 loc5 [V08,T52] ( 4, 2 ) int -> x21
;* V09 loc6 [V09,T79] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Reflection.Emit.RuntimeEnumBuilder>
-; V10 loc7 [V10,T51] ( 5, 2.50) ref -> x21 class-hnd exact single-def <System.Reflection.Emit.RuntimeTypeBuilder>
-; V11 loc8 [V11,T54] ( 4, 2 ) int -> x23
-; V12 loc9 [V12,T52] ( 5, 2.25) int -> x20
+; V10 loc7 [V10,T50] ( 5, 2.50) ref -> x21 class-hnd exact single-def <System.Reflection.Emit.RuntimeTypeBuilder>
+; V11 loc8 [V11,T53] ( 4, 2 ) int -> x23
+; V12 loc9 [V12,T51] ( 5, 2.25) int -> x20
;* V13 loc10 [V13,T81] ( 0, 0 ) int -> zero-ref
-; V14 loc11 [V14,T23] ( 8, 4 ) ubyte -> x24
+; V14 loc11 [V14,T22] ( 8, 4 ) ubyte -> x24
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.RuntimeTypeBuilder>
;* V17 tmp2 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.RuntimeEnumBuilder>
;* V18 tmp3 [V18 ] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.MethodBase>
;* V20 tmp5 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V21 tmp6 [V21,T55] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V22 tmp7 [V22,T27] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V23 tmp8 [V23,T28] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V24 tmp9 [V24,T56] ( 4, 2 ) int -> x0 "Inline stloc first use temp"
-; V25 tmp10 [V25,T29] ( 3, 3 ) ref -> x1 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V26 tmp11 [V26,T30] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V27 tmp12 [V27,T57] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V28 tmp13 [V28,T31] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V29 tmp14 [V29,T32] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V30 tmp15 [V30,T58] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V31 tmp16 [V31,T33] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V32 tmp17 [V32,T34] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V33 tmp18 [V33,T59] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V34 tmp19 [V34,T35] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V35 tmp20 [V35,T36] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V36 tmp21 [V36,T60] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V37 tmp22 [V37,T37] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V38 tmp23 [V38,T38] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V39 tmp24 [V39,T61] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V40 tmp25 [V40,T39] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V41 tmp26 [V41,T40] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V21 tmp6 [V21,T54] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V22 tmp7 [V22,T26] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V23 tmp8 [V23,T27] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V24 tmp9 [V24,T55] ( 4, 2 ) int -> x0 "Inline stloc first use temp"
+; V25 tmp10 [V25,T28] ( 3, 3 ) ref -> x1 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V26 tmp11 [V26,T29] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V27 tmp12 [V27,T56] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V28 tmp13 [V28,T30] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V29 tmp14 [V29,T31] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V30 tmp15 [V30,T57] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V31 tmp16 [V31,T32] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V32 tmp17 [V32,T33] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V33 tmp18 [V33,T58] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V34 tmp19 [V34,T34] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V35 tmp20 [V35,T35] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V36 tmp21 [V36,T59] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V37 tmp22 [V37,T36] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V38 tmp23 [V38,T37] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V39 tmp24 [V39,T60] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V40 tmp25 [V40,T38] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V41 tmp26 [V41,T39] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
; V42 tmp27 [V42,T19] ( 4, 8 ) int -> x1 "Inline stloc first use temp"
; V43 tmp28 [V43,T15] ( 3, 12 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
; V44 tmp29 [V44,T16] ( 3, 12 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
@@ -61,47 +61,47 @@
; V50 tmp35 [V50,T05] ( 3, 24 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
; V51 tmp36 [V51,T18] ( 3, 12 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
;* V52 tmp37 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
-; V53 tmp38 [V53,T62] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V54 tmp39 [V54,T41] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V55 tmp40 [V55,T42] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V53 tmp38 [V53,T61] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V54 tmp39 [V54,T40] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V55 tmp40 [V55,T41] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
;* V56 tmp41 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
;* V57 tmp42 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V58 tmp43 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Emit.ModuleBuilder>
-; V59 tmp44 [V59,T68] ( 2, 2 ) int -> x20 "Inlining Arg"
-; V60 tmp45 [V60,T63] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V61 tmp46 [V61,T43] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V62 tmp47 [V62,T44] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V63 tmp48 [V63,T69] ( 2, 2 ) int -> x20 "Inlining Arg"
-; V64 tmp49 [V64,T64] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
-; V65 tmp50 [V65,T45] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
-; V66 tmp51 [V66,T46] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
-; V67 tmp52 [V67,T47] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V68 tmp53 [V68,T48] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V69 tmp54 [V69,T66] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V59 tmp44 [V59,T67] ( 2, 2 ) int -> x20 "Inlining Arg"
+; V60 tmp45 [V60,T62] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V61 tmp46 [V61,T42] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V62 tmp47 [V62,T43] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V63 tmp48 [V63,T68] ( 2, 2 ) int -> x20 "Inlining Arg"
+; V64 tmp49 [V64,T63] ( 4, 2 ) int -> x1 "Inline stloc first use temp"
+; V65 tmp50 [V65,T44] ( 3, 3 ) ref -> x0 class-hnd single-def "impAppendStmt" <ubyte[]>
+; V66 tmp51 [V66,T45] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V67 tmp52 [V67,T46] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V68 tmp53 [V68,T47] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V69 tmp54 [V69,T65] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
; V70 tmp55 [V70,T09] ( 2, 16 ) ref -> x20 single-def "argument with side effect"
; V71 tmp56 [V71,T10] ( 2, 16 ) ref -> x20 single-def "argument with side effect"
; V72 tmp57 [V72,T20] ( 2, 8 ) ref -> x20 single-def "argument with side effect"
-; V73 tmp58 [V73,T49] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V74 tmp59 [V74,T50] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V75 tmp60 [V75,T67] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V76 tmp61 [V76,T70] ( 2, 2 ) int -> x1 "argument with side effect"
+; V73 tmp58 [V73,T48] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V74 tmp59 [V74,T49] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V75 tmp60 [V75,T66] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V76 tmp61 [V76,T69] ( 2, 2 ) int -> x1 "argument with side effect"
; V77 cse0 [V77,T03] ( 5, 28 ) long -> x23 "CSE #03: aggressive"
; V78 cse1 [V78,T11] ( 4, 14 ) long -> x24 "CSE #02: aggressive"
-; V79 cse2 [V79,T71] ( 4, 1.75) int -> x22 "CSE #14: moderate"
+; V79 cse2 [V79,T70] ( 4, 1.75) int -> x22 "CSE #14: moderate"
; V80 cse3 [V80,T21] ( 3, 6 ) ref -> x0 "CSE #04: moderate"
-; V81 cse4 [V81,T24] ( 6, 3 ) ref -> x0 multi-def "CSE #08: conservative"
-; V82 cse5 [V82,T25] ( 6, 3 ) ref -> x0 multi-def "CSE #16: conservative"
-; V83 cse6 [V83,T26] ( 6, 3 ) ref -> x0 multi-def "CSE #23: conservative"
-; V84 cse7 [V84,T73] ( 3, 1.50) ref -> x0 "CSE #13: conservative"
-; V85 cse8 [V85,T74] ( 3, 1.50) ref -> x0 "CSE #32: conservative"
-; V86 cse9 [V86,T75] ( 3, 1.50) ref -> x0 "CSE #37: conservative"
+; V81 cse4 [V81,T23] ( 6, 3 ) ref -> x0 multi-def "CSE #08: conservative"
+; V82 cse5 [V82,T24] ( 6, 3 ) ref -> x0 multi-def "CSE #16: conservative"
+; V83 cse6 [V83,T25] ( 6, 3 ) ref -> x0 multi-def "CSE #23: conservative"
+; V84 cse7 [V84,T72] ( 3, 1.50) ref -> x0 "CSE #13: conservative"
+; V85 cse8 [V85,T73] ( 3, 1.50) ref -> x0 "CSE #32: conservative"
+; V86 cse9 [V86,T74] ( 3, 1.50) ref -> x0 "CSE #37: conservative"
; V87 cse10 [V87,T02] ( 18, 43 ) long -> x22 "CSE #01: aggressive"
-; V88 cse11 [V88,T22] ( 2, 4.25) byref -> x20 hoist "CSE #15: moderate"
-; V89 rat0 [V89,T12] ( 4, 12.25) int -> x20 "Trip count IV"
-; V90 rat1 [V90,T13] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V88 cse11 [V88,T77] ( 2, 0.50) byref -> x20 hoist "CSE #15: moderate"
+; V89 rat0 [V89,T13] ( 4, 12.25) int -> x20 "Trip count IV"
+; V90 rat1 [V90,T12] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V91 rat2 [V91,T14] ( 4, 12.25) int -> x22 "Trip count IV"
-; V92 rat3 [V92,T65] ( 3, 2 ) ref -> x0 "replacement local"
-; V93 rat4 [V93,T76] ( 3, 1 ) long -> [fp+0x18] spill-single-def "CSE for expectedClsNode"
+; V92 rat3 [V92,T64] ( 3, 2 ) ref -> x0 "replacement local"
+; V93 rat4 [V93,T75] ( 3, 1 ) long -> [fp+0x18] spill-single-def "CSE for expectedClsNode"
;
; Lcl frame size = 16
@@ -1066,10 +1066,9 @@ G_M48127_IG54: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
add x20, x20, #16
; gcrRegs -[x20]
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M48127_IG55: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- ldr x1, [x20, x21]
+ ldr x1, [x20]
; gcrRegs +[x1]
mov x0, x19
; gcrRegs +[x0]
@@ -1080,7 +1079,7 @@ G_M48127_IG55: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1]
- add x21, x21, #8
+ add x20, x20, #8
sub w22, w22, #1
cbnz w22, G_M48127_IG55
;; size=44 bbWeight=4 PerfScore 46.00
@@ -1214,7 +1213,7 @@ G_M48127_IG64: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2976, prolog size 20, PerfScore 1135.12, instruction count 744, allocated bytes for code 2976 (MethodHash=a85d4400) for method System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
+; Total bytes of code 2972, prolog size 20, PerfScore 1135.00, instruction count 743, allocated bytes for code 2972 (MethodHash=a85d4400) for method System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
; ============================================================
Unwind Info:
@@ -1225,7 +1224,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 744 (0x002e8) Actual length = 2976 (0x000ba0)
+ Function Length : 743 (0x002e7) Actual length = 2972 (0x000b9c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 28449.dasm - AssignRect:second_assignments(int[,],short[,]) (Tier1)
@@ -28,18 +28,18 @@
; V18 cse4 [V18,T21] ( 2, 15.68) int -> x11 "CSE #22: aggressive"
; V19 cse5 [V19,T23] ( 2, 15.68) int -> x14 "CSE #24: aggressive"
; V20 cse6 [V20,T06] ( 5,172.97) int -> x8 "CSE #07: aggressive"
-; V21 cse7 [V21,T09] ( 7, 98.46) byref -> x0 hoist "CSE #03: aggressive"
+; V21 cse7 [V21,T09] ( 7, 94.75) byref -> x0 hoist "CSE #03: aggressive"
; V22 cse8 [V22,T05] ( 13,266.59) int -> x13 multi-def "CSE #13: aggressive"
-; V23 cse9 [V23,T10] ( 9, 96.64) byref -> x1 hoist "CSE #02: aggressive"
+; V23 cse9 [V23,T11] ( 9, 92.93) byref -> x1 hoist "CSE #02: aggressive"
; V24 cse10 [V24,T16] ( 3, 64.71) int -> x4 "CSE #04: aggressive"
; V25 cse11 [V25,T13] ( 3, 79.56) int -> x6 hoist "CSE #06: aggressive"
; V26 cse12 [V26,T08] ( 8,113.73) int -> x10 hoist multi-def "CSE #12: aggressive"
-; V27 cse13 [V27,T11] ( 3, 94.41) int -> x9 "CSE #09: aggressive"
+; V27 cse13 [V27,T10] ( 3, 94.41) int -> x9 "CSE #09: aggressive"
; V28 cse14 [V28,T30] ( 3, 0.75) long -> x21 "CSE #01: aggressive"
; V29 cse15 [V29,T12] ( 3, 94.09) long -> x7 "CSE #17: aggressive"
-; V30 rat0 [V30,T25] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
-; V31 rat1 [V31,T26] ( 4, 12.13) int -> x3 "Trip count IV"
-; V32 rat2 [V32,T27] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
+; V30 rat0 [V30,T25] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
+; V31 rat1 [V31,T27] ( 4, 12.13) int -> x3 "Trip count IV"
+; V32 rat2 [V32,T26] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
; V33 rat3 [V33,T28] ( 4, 12.13) int -> x3 "Trip count IV"
;
; Lcl frame size = 0
@@ -73,30 +73,34 @@ G_M4546_IG02: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
; gcr arg pop 0
add x1, x22, #16
; byrRegs +[x1]
- mov x2, xzr
+ mov x2, x1
+ ; byrRegs +[x2]
mov w3, #101
;; size=52 bbWeight=0.25 PerfScore 1.88
-G_M4546_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref, isz
+G_M4546_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0006 {x1 x2}, byref, isz
; gcrRegs -[x22]
- strh wzr, [x1, x2]
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M4546_IG03
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M4546_IG04: ; bbWeight=0.25, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref
+ ; byrRegs -[x2]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- mov x2, xzr
+ mov x2, x0
+ ; byrRegs +[x2]
mov w3, #101
;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M4546_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref, isz
- strh wzr, [x0, x2]
+G_M4546_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0007 {x0 x1 x2}, byref, isz
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M4546_IG05
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M4546_IG06: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref
+ ; byrRegs -[x2]
mov w2, wzr
;; size=4 bbWeight=0.25 PerfScore 0.12
G_M4546_IG07: ; bbWeight=0.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref
+0 (0.00%) : 27463.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
@@ -36,19 +36,19 @@
; V26 cse7 [V26,T30] ( 6, 10.97) ref -> x9 multi-def "CSE #49: moderate"
; V27 cse8 [V27,T20] ( 3, 23.52) int -> x4 "CSE #28: moderate"
; V28 cse9 [V28,T31] ( 13, 9.68) byref -> x6 hoist "CSE #10: moderate"
-; V29 cse10 [V29,T05] ( 15,100.05) byref -> x0 hoist "CSE #03: aggressive"
-; V30 cse11 [V30,T06] ( 16, 97.57) byref -> x1 hoist "CSE #02: aggressive"
+; V29 cse10 [V29,T05] ( 15, 96.34) byref -> x0 hoist "CSE #03: aggressive"
+; V30 cse11 [V30,T07] ( 16, 93.86) byref -> x1 hoist "CSE #02: aggressive"
; V31 cse12 [V31,T10] ( 7, 64.93) byref -> x4 hoist multi-def "CSE #05: aggressive"
; V32 cse13 [V32,T28] ( 20, 11.59) int -> registers hoist multi-def "CSE #11: moderate"
; V33 cse14 [V33,T33] ( 7, 6.25) int -> registers hoist multi-def "CSE #04: moderate"
-; V34 cse15 [V34,T07] ( 4, 95.04) long -> x10 "CSE #19: aggressive"
+; V34 cse15 [V34,T06] ( 4, 95.04) long -> x10 "CSE #19: aggressive"
; V35 cse16 [V35,T04] ( 4,188.18) long -> x8 "CSE #20: aggressive"
; V36 cse17 [V36,T35] ( 5, 4.13) long -> x6 hoist multi-def "CSE #06: moderate"
; V37 cse18 [V37,T37] ( 3, 0.96) long -> x9 "CSE #17: moderate"
; V38 cse19 [V38,T43] ( 3, 0.19) long -> x5 hoist "CSE #09: conservative"
-; V39 rat0 [V39,T24] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
-; V40 rat1 [V40,T25] ( 4, 12.13) int -> x3 "Trip count IV"
-; V41 rat2 [V41,T26] ( 4, 12.13) long -> x2 "Strength reduced derived IV"
+; V39 rat0 [V39,T24] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
+; V40 rat1 [V40,T26] ( 4, 12.13) int -> x3 "Trip count IV"
+; V41 rat2 [V41,T25] ( 4, 12.13) byref -> x2 "Strength reduced derived IV"
; V42 rat3 [V42,T27] ( 4, 12.13) int -> x3 "Trip count IV"
; V43 rat4 [V43,T12] ( 4, 48.03) long -> x5 "Strength reduced derived IV"
; V44 rat5 [V44,T13] ( 4, 48.03) int -> x8 "Trip count IV"
@@ -85,30 +85,34 @@ G_M6376_IG02: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
; gcr arg pop 0
add x1, x21, #16
; byrRegs +[x1]
- mov x2, xzr
+ mov x2, x1
+ ; byrRegs +[x2]
mov w3, #101
;; size=56 bbWeight=0.25 PerfScore 2.00
-G_M6376_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref, isz
+G_M6376_IG03: ; bbWeight=3.96, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0006 {x1 x2}, byref, isz
; gcrRegs -[x21]
- strh wzr, [x1, x2]
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M6376_IG03
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M6376_IG04: ; bbWeight=0.25, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0002 {x1}, byref
+ ; byrRegs -[x2]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- mov x2, xzr
+ mov x2, x0
+ ; byrRegs +[x2]
mov w3, #101
;; size=12 bbWeight=0.25 PerfScore 0.38
-G_M6376_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref, isz
- strh wzr, [x0, x2]
+G_M6376_IG05: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=0007 {x0 x1 x2}, byref, isz
+ strh wzr, [x2]
add x2, x2, #2
sub w3, w3, #1
cbnz w3, G_M6376_IG05
;; size=16 bbWeight=3.96 PerfScore 11.88
G_M6376_IG06: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0003 {x0 x1}, byref, isz
+ ; byrRegs -[x2]
mov w2, wzr
cbz x20, G_M6376_IG51
ldr w3, [x20, #0x08]
coreclr_tests.run.windows.arm64.checked.mch
-12 (-15.79%) : 571640.dasm - Pointers+Test`1[int]:FunctionPointerArray(ulong[]):this (FullOpts)
@@ -9,24 +9,23 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Pointers+Test`1[int]>
; V01 arg1 [V01,T03] ( 3, 3 ) ref -> x1 class-hnd single-def <ulong[]>
-; V02 loc0 [V02,T05] ( 3, 2.25) ref -> x1 class-hnd single-def <ulong[]>
-;* V03 loc1 [V03,T07] ( 0, 0 ) int -> zero-ref
+; V02 loc0 [V02,T04] ( 3, 2.25) ref -> x1 class-hnd single-def <ulong[]>
+;* V03 loc1 [V03,T06] ( 0, 0 ) int -> zero-ref
; V04 loc2 [V04,T02] ( 2, 8 ) long -> x1
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 cse0 [V07,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V08 cse1 [V08,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V09 rat0 [V09,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V07 cse0 [V07,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V08 cse1 [V08,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V09 rat0 [V09,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V10 rat1 [V10,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M52437_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 fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M52437_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr w19, [x1, #0x08]
@@ -36,26 +35,24 @@ G_M52437_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre
G_M52437_IG03: ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
add x20, x1, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M52437_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x1]
- ldr x1, [x20, x21]
+ ldr x1, [x20]
mov w0, wzr
blr x1
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M52437_IG04
;; size=24 bbWeight=4 PerfScore 26.00
G_M52437_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[x20]
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=12 bbWeight=1 PerfScore 3.00
-; Total bytes of code 76, prolog size 16, PerfScore 39.25, instruction count 19, allocated bytes for code 76 (MethodHash=56d3332a) for method Pointers+Test`1[int]:FunctionPointerArray(ulong[]):this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 36.12, instruction count 16, allocated bytes for code 64 (MethodHash=56d3332a) for method Pointers+Test`1[int]:FunctionPointerArray(ulong[]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -66,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -74,9 +71,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.33%) : 392043.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
@@ -8,24 +8,23 @@
; with Dynamic PGO: fgCalledCount is 2
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T05] ( 3, 2.95) ref -> x0 class-hnd exact single-def <System.String>
+; V00 arg0 [V00,T03] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
+; V01 loc0 [V01,T04] ( 3, 2.95) ref -> x0 class-hnd exact single-def <System.String>
;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T02] ( 3, 57.00) ushort -> x0
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T03] ( 2, 19.95) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.95) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T00] ( 4, 57.95) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T06] ( 2, 1.90) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.95) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T00] ( 4, 57.95) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4, 57.95) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35714_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -35,11 +34,10 @@ G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M35714_IG03: ; bbWeight=0.95, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.95 PerfScore 0.95
+ ;; size=4 bbWeight=0.95 PerfScore 0.47
G_M35714_IG04: ; bbWeight=19.00, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cbz w0, G_M35714_IG05
movz x1, #0xD1FFAB1E // code for System.Reflection.Emit.TypeNameBuilder:IsTypeNameReservedChar(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -47,7 +45,7 @@ G_M35714_IG04: ; bbWeight=19.00, gcrefRegs=0000 {}, byrefRegs=100000 {x20
ldr x1, [x1]
blr x1
cbnz w0, G_M35714_IG07
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M35714_IG04
;; size=44 bbWeight=19.00 PerfScore 237.50
@@ -56,22 +54,20 @@ G_M35714_IG05: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=1.00 PerfScore 0.50
G_M35714_IG06: ; bbWeight=1.00, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1.00 PerfScore 5.00
+ ;; size=12 bbWeight=1.00 PerfScore 3.00
G_M35714_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M35714_IG08: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 16, PerfScore 251.95, instruction count 30, allocated bytes for code 120 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
+; Total bytes of code 104, prolog size 12, PerfScore 248.47, instruction count 26, allocated bytes for code 104 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-11.76%) : 538067.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
@@ -8,22 +8,21 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 3, 3 ) ref -> x0 class-hnd single-def <System.Reflection.MethodInfo>
-; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.ParameterInfo[]>
-;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T03] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.ParameterInfo[]>
+;* V02 loc1 [V02,T05] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V05 cse1 [V05,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V06 rat0 [V06,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V04 cse0 [V04,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V05 cse1 [V05,T04] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V06 rat0 [V06,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V07 rat1 [V07,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M42632_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M42632_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Dynamic.Utils.TypeExtensions:GetParametersCached(System.Reflection.MethodBase):System.Reflection.ParameterInfo[]
@@ -38,11 +37,10 @@ G_M42632_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M42632_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M42632_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Dynamic.Utils.TypeExtensions:IsByRefParameter(System.Reflection.ParameterInfo):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -51,7 +49,7 @@ G_M42632_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
blr x1
; gcrRegs -[x0]
cbnz w0, G_M42632_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M42632_IG04
;; size=40 bbWeight=4 PerfScore 46.00
@@ -60,22 +58,20 @@ G_M42632_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M42632_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M42632_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M42632_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 136, prolog size 16, PerfScore 65.25, instruction count 34, allocated bytes for code 136 (MethodHash=51775977) for method System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 62.12, instruction count 30, allocated bytes for code 120 (MethodHash=51775977) for method System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -86,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,9 +93,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
+4 (+0.52%) : 520629.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt64() (FullOpts)
@@ -10,27 +10,27 @@
;
;* V00 loc0 [V00,T22] ( 0, 0 ) int -> zero-ref single-def
; V01 loc1 [V01,T03] ( 11, 9.50) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V02 loc2 [V02 ] ( 5, 5 ) struct (64) [fp+0x10] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.Intrinsics.Vector512`1[long]>
-; V03 loc3 [V03,T19] ( 3, 2 ) ref -> x20 class-hnd exact single-def <System.String>
-; V04 loc4 [V04,T20] ( 3, 2 ) ref -> x19 class-hnd exact single-def <System.String>
+; V02 loc2 [V02 ] ( 5, 5 ) struct (64) [fp+0x18] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.Intrinsics.Vector512`1[long]>
+; V03 loc3 [V03,T18] ( 3, 2 ) ref -> x20 class-hnd exact single-def <System.String>
+; V04 loc4 [V04,T19] ( 3, 2 ) ref -> x19 class-hnd exact single-def <System.String>
;* V05 loc5 [V05,T23] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T00] ( 2, 15.84) long -> x0 "Strict ordering of exceptions for Array store"
-; V08 tmp2 [V08,T06] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[long,System.String]>
+; V08 tmp2 [V08,T05] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[long,System.String]>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
-; V12 tmp6 [V12,T18] ( 4, 3.50) ref -> x2
+; V12 tmp6 [V12,T17] ( 4, 3.50) ref -> x2
; V13 tmp7 [V13,T28] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V14 tmp8 [V14,T04] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[long,System.String]>
-; V15 tmp9 [V15,T10] ( 2, 4 ) long -> x0 "Inlining Arg"
-; V16 tmp10 [V16,T11] ( 2, 4 ) long -> x1 "Inlining Arg"
-; V17 tmp11 [V17,T12] ( 2, 4 ) long -> x2 "Inlining Arg"
-; V18 tmp12 [V18,T13] ( 2, 4 ) long -> x3 "Inlining Arg"
-; V19 tmp13 [V19,T14] ( 2, 4 ) long -> x4 "Inlining Arg"
-; V20 tmp14 [V20,T15] ( 2, 4 ) long -> x5 "Inlining Arg"
-; V21 tmp15 [V21,T16] ( 2, 4 ) long -> x6 "Inlining Arg"
-; V22 tmp16 [V22,T17] ( 2, 4 ) long -> x7 "Inlining Arg"
+; V15 tmp9 [V15,T09] ( 2, 4 ) long -> x0 "Inlining Arg"
+; V16 tmp10 [V16,T10] ( 2, 4 ) long -> x1 "Inlining Arg"
+; V17 tmp11 [V17,T11] ( 2, 4 ) long -> x2 "Inlining Arg"
+; V18 tmp12 [V18,T12] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V19 tmp13 [V19,T13] ( 2, 4 ) long -> x4 "Inlining Arg"
+; V20 tmp14 [V20,T14] ( 2, 4 ) long -> x5 "Inlining Arg"
+; V21 tmp15 [V21,T15] ( 2, 4 ) long -> x6 "Inlining Arg"
+; V22 tmp16 [V22,T16] ( 2, 4 ) long -> x7 "Inlining Arg"
;* V23 tmp17 [V23 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "impAppendStmt" <System.Runtime.Intrinsics.Vector256`1[long]>
;* V24 tmp18 [V24 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "spilled call-like call argument" <System.Runtime.Intrinsics.Vector256`1[long]>
; V25 tmp19 [V25,T24] ( 2, 4 ) simd16 -> d16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[long]>
@@ -40,7 +40,7 @@
; V29 tmp23 [V29,T27] ( 2, 4 ) simd16 -> d19 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[long]>
;* V30 tmp24 [V30 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector256`1[long]>
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (64) zero-ref HFA(simd16) do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector512`1[long]>
-; V32 tmp26 [V32,T21] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <JIT.HardwareIntrinsics.General._Vector512_1.Program+<>c>
+; V32 tmp26 [V32,T20] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <JIT.HardwareIntrinsics.General._Vector512_1.Program+<>c>
;* V33 tmp27 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V34 tmp28 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V35 tmp29 [V35 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) "field V23._lower (fldOffset=0x0)" P-INDEP
@@ -55,24 +55,24 @@
;* V44 tmp38 [V44 ] ( 0, 0 ) simd16 -> zero-ref "V31.[016..032)"
;* V45 tmp39 [V45 ] ( 0, 0 ) simd16 -> zero-ref "V31.[032..048)"
;* V46 tmp40 [V46 ] ( 0, 0 ) simd16 -> zero-ref "V31.[048..064)"
-; V47 tmp41 [V47,T07] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V48 tmp42 [V48,T08] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V49 tmp43 [V49,T09] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V47 tmp41 [V47,T06] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
+; V48 tmp42 [V48,T07] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V49 tmp43 [V49,T08] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V50 tmp44 [V50,T29] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V51 tmp45 [V51,T30] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V52 tmp46 [V52,T31] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V53 cse0 [V53,T05] ( 2, 4.21) byref -> x20 hoist "CSE #01: moderate"
-; V54 rat0 [V54,T01] ( 4, 12.13) long -> x21 "Strength reduced derived IV"
-; V55 rat1 [V55,T02] ( 4, 12.13) int -> x22 "Trip count IV"
+; V53 cse0 [V53,T21] ( 2, 0.50) byref -> x20 hoist "CSE #01: moderate"
+; V54 rat0 [V54,T01] ( 4, 12.13) byref -> x20 "Strength reduced derived IV"
+; V55 rat1 [V55,T02] ( 4, 12.13) int -> x21 "Trip count IV"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M25863_IG01: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x50]
- stp x21, x22, [sp, #0x60]
+ stp x19, x20, [sp, #0x58]
+ str x21, [sp, #0x68]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
@@ -88,9 +88,8 @@ G_M25863_IG02: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs +[x19]
add x20, x19, #16
; byrRegs +[x20]
- mov x21, xzr
- mov w22, #8
- ;; size=36 bbWeight=0.25 PerfScore 1.25
+ mov w21, #8
+ ;; size=32 bbWeight=0.25 PerfScore 1.12
G_M25863_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for TestLibrary.Generator:GetInt64():long
@@ -98,10 +97,10 @@ G_M25863_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- str x0, [x20, x21]
- add x21, x21, #8
- sub w22, w22, #1
- cbnz w22, G_M25863_IG03
+ str x0, [x20]
+ add x20, x20, #8
+ sub w21, w21, #1
+ cbnz w21, G_M25863_IG03
;; size=36 bbWeight=3.96 PerfScore 33.66
G_M25863_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x20]
@@ -117,8 +116,10 @@ G_M25863_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ins v18.d[1], x5
ins v19.d[0], x6
ins v19.d[1], x7
- stp q16, q17, [fp, #0x10] // [V02 loc2], [V02 loc2+0x10]
- stp q18, q19, [fp, #0x30] // [V02 loc2+0x20], [V02 loc2+0x30]
+ str q16, [fp, #0x18] // [V02 loc2]
+ str q17, [fp, #0x28] // [V02 loc2+0x10]
+ str q18, [fp, #0x38] // [V02 loc2+0x20]
+ str q19, [fp, #0x48] // [V02 loc2+0x30]
movz x0, #0xD1FFAB1E // code for System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -127,7 +128,7 @@ G_M25863_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x0]
mov x2, x0
; gcrRegs +[x2]
- add x0, fp, #16 // [V02 loc2]
+ add x0, fp, #24 // [V02 loc2]
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -147,7 +148,7 @@ G_M25863_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ldr x2, [x0]
; gcrRegs +[x2]
cbnz x2, G_M25863_IG06
- ;; size=140 bbWeight=1 PerfScore 45.50
+ ;; size=148 bbWeight=1 PerfScore 47.50
G_M25863_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
movz x0, #0xD1FFAB1E
@@ -232,11 +233,11 @@ G_M25863_IG06: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
cbz w0, G_M25863_IG08
;; size=156 bbWeight=1 PerfScore 32.00
G_M25863_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x60]
- ldp x19, x20, [sp, #0x50]
+ ldr x21, [sp, #0x68]
+ ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x70
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M25863_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
@@ -328,7 +329,7 @@ G_M25863_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
brk_windows #0
;; size=280 bbWeight=0 PerfScore 0.00
-; Total bytes of code 776, prolog size 32, PerfScore 125.28, instruction count 194, allocated bytes for code 776 (MethodHash=208b9af8) for method JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt64() (FullOpts)
+; Total bytes of code 780, prolog size 32, PerfScore 128.16, instruction count 195, allocated bytes for code 780 (MethodHash=208b9af8) for method JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt64() (FullOpts)
; ============================================================
Unwind Info:
@@ -339,7 +340,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 194 (0x000c2) Actual length = 776 (0x000308)
+ Function Length : 195 (0x000c3) Actual length = 780 (0x00030c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -347,10 +348,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- E6 save_next
- C8 0A save_regp X#0 Z#10 (0x0A); stp x19, x20, [sp, #80]
+ D0 8D save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+ C8 0B save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
8D save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
E4 end
E4 end
- E4 end
+4 (+0.52%) : 520632.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt64() (FullOpts)
@@ -10,27 +10,27 @@
;
;* V00 loc0 [V00,T22] ( 0, 0 ) int -> zero-ref single-def
; V01 loc1 [V01,T03] ( 11, 9.50) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V02 loc2 [V02 ] ( 5, 5 ) struct (64) [fp+0x10] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.Intrinsics.Vector512`1[ulong]>
-; V03 loc3 [V03,T19] ( 3, 2 ) ref -> x20 class-hnd exact single-def <System.String>
-; V04 loc4 [V04,T20] ( 3, 2 ) ref -> x19 class-hnd exact single-def <System.String>
+; V02 loc2 [V02 ] ( 5, 5 ) struct (64) [fp+0x18] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.Intrinsics.Vector512`1[ulong]>
+; V03 loc3 [V03,T18] ( 3, 2 ) ref -> x20 class-hnd exact single-def <System.String>
+; V04 loc4 [V04,T19] ( 3, 2 ) ref -> x19 class-hnd exact single-def <System.String>
;* V05 loc5 [V05,T23] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T00] ( 2, 15.84) long -> x0 "Strict ordering of exceptions for Array store"
-; V08 tmp2 [V08,T06] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[ulong,System.String]>
+; V08 tmp2 [V08,T05] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[ulong,System.String]>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
-; V12 tmp6 [V12,T18] ( 4, 3.50) ref -> x2
+; V12 tmp6 [V12,T17] ( 4, 3.50) ref -> x2
; V13 tmp7 [V13,T28] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V14 tmp8 [V14,T04] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[ulong,System.String]>
-; V15 tmp9 [V15,T10] ( 2, 4 ) long -> x0 "Inlining Arg"
-; V16 tmp10 [V16,T11] ( 2, 4 ) long -> x1 "Inlining Arg"
-; V17 tmp11 [V17,T12] ( 2, 4 ) long -> x2 "Inlining Arg"
-; V18 tmp12 [V18,T13] ( 2, 4 ) long -> x3 "Inlining Arg"
-; V19 tmp13 [V19,T14] ( 2, 4 ) long -> x4 "Inlining Arg"
-; V20 tmp14 [V20,T15] ( 2, 4 ) long -> x5 "Inlining Arg"
-; V21 tmp15 [V21,T16] ( 2, 4 ) long -> x6 "Inlining Arg"
-; V22 tmp16 [V22,T17] ( 2, 4 ) long -> x7 "Inlining Arg"
+; V15 tmp9 [V15,T09] ( 2, 4 ) long -> x0 "Inlining Arg"
+; V16 tmp10 [V16,T10] ( 2, 4 ) long -> x1 "Inlining Arg"
+; V17 tmp11 [V17,T11] ( 2, 4 ) long -> x2 "Inlining Arg"
+; V18 tmp12 [V18,T12] ( 2, 4 ) long -> x3 "Inlining Arg"
+; V19 tmp13 [V19,T13] ( 2, 4 ) long -> x4 "Inlining Arg"
+; V20 tmp14 [V20,T14] ( 2, 4 ) long -> x5 "Inlining Arg"
+; V21 tmp15 [V21,T15] ( 2, 4 ) long -> x6 "Inlining Arg"
+; V22 tmp16 [V22,T16] ( 2, 4 ) long -> x7 "Inlining Arg"
;* V23 tmp17 [V23 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "impAppendStmt" <System.Runtime.Intrinsics.Vector256`1[ulong]>
;* V24 tmp18 [V24 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) "spilled call-like call argument" <System.Runtime.Intrinsics.Vector256`1[ulong]>
; V25 tmp19 [V25,T24] ( 2, 4 ) simd16 -> d16 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]>
@@ -40,7 +40,7 @@
; V29 tmp23 [V29,T27] ( 2, 4 ) simd16 -> d19 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ulong]>
;* V30 tmp24 [V30 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector256`1[ulong]>
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (64) zero-ref HFA(simd16) do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector512`1[ulong]>
-; V32 tmp26 [V32,T21] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <JIT.HardwareIntrinsics.General._Vector512_1.Program+<>c>
+; V32 tmp26 [V32,T20] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <JIT.HardwareIntrinsics.General._Vector512_1.Program+<>c>
;* V33 tmp27 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V34 tmp28 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V35 tmp29 [V35 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) "field V23._lower (fldOffset=0x0)" P-INDEP
@@ -55,24 +55,24 @@
;* V44 tmp38 [V44 ] ( 0, 0 ) simd16 -> zero-ref "V31.[016..032)"
;* V45 tmp39 [V45 ] ( 0, 0 ) simd16 -> zero-ref "V31.[032..048)"
;* V46 tmp40 [V46 ] ( 0, 0 ) simd16 -> zero-ref "V31.[048..064)"
-; V47 tmp41 [V47,T07] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V48 tmp42 [V48,T08] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V49 tmp43 [V49,T09] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V47 tmp41 [V47,T06] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
+; V48 tmp42 [V48,T07] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V49 tmp43 [V49,T08] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V50 tmp44 [V50,T29] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V51 tmp45 [V51,T30] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V52 tmp46 [V52,T31] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V53 cse0 [V53,T05] ( 2, 4.21) byref -> x20 hoist "CSE #01: moderate"
-; V54 rat0 [V54,T01] ( 4, 12.13) long -> x21 "Strength reduced derived IV"
-; V55 rat1 [V55,T02] ( 4, 12.13) int -> x22 "Trip count IV"
+; V53 cse0 [V53,T21] ( 2, 0.50) byref -> x20 hoist "CSE #01: moderate"
+; V54 rat0 [V54,T01] ( 4, 12.13) byref -> x20 "Strength reduced derived IV"
+; V55 rat1 [V55,T02] ( 4, 12.13) int -> x21 "Trip count IV"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M2610_IG01: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x50]
- stp x21, x22, [sp, #0x60]
+ stp x19, x20, [sp, #0x58]
+ str x21, [sp, #0x68]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
@@ -88,9 +88,8 @@ G_M2610_IG02: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs +[x19]
add x20, x19, #16
; byrRegs +[x20]
- mov x21, xzr
- mov w22, #8
- ;; size=36 bbWeight=0.25 PerfScore 1.25
+ mov w21, #8
+ ;; size=32 bbWeight=0.25 PerfScore 1.12
G_M2610_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for TestLibrary.Generator:GetUInt64():ulong
@@ -98,10 +97,10 @@ G_M2610_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- str x0, [x20, x21]
- add x21, x21, #8
- sub w22, w22, #1
- cbnz w22, G_M2610_IG03
+ str x0, [x20]
+ add x20, x20, #8
+ sub w21, w21, #1
+ cbnz w21, G_M2610_IG03
;; size=36 bbWeight=3.96 PerfScore 33.66
G_M2610_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x20]
@@ -117,8 +116,10 @@ G_M2610_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
ins v18.d[1], x5
ins v19.d[0], x6
ins v19.d[1], x7
- stp q16, q17, [fp, #0x10] // [V02 loc2], [V02 loc2+0x10]
- stp q18, q19, [fp, #0x30] // [V02 loc2+0x20], [V02 loc2+0x30]
+ str q16, [fp, #0x18] // [V02 loc2]
+ str q17, [fp, #0x28] // [V02 loc2+0x10]
+ str q18, [fp, #0x38] // [V02 loc2+0x20]
+ str q19, [fp, #0x48] // [V02 loc2+0x30]
movz x0, #0xD1FFAB1E // code for System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -127,7 +128,7 @@ G_M2610_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
; gcrRegs +[x0]
mov x2, x0
; gcrRegs +[x2]
- add x0, fp, #16 // [V02 loc2]
+ add x0, fp, #24 // [V02 loc2]
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -147,7 +148,7 @@ G_M2610_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byr
ldr x2, [x0]
; gcrRegs +[x2]
cbnz x2, G_M2610_IG06
- ;; size=140 bbWeight=1 PerfScore 45.50
+ ;; size=148 bbWeight=1 PerfScore 47.50
G_M2610_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
movz x0, #0xD1FFAB1E
@@ -232,11 +233,11 @@ G_M2610_IG06: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000
cbz w0, G_M2610_IG08
;; size=156 bbWeight=1 PerfScore 32.00
G_M2610_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x60]
- ldp x19, x20, [sp, #0x50]
+ ldr x21, [sp, #0x68]
+ ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x70
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M2610_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
@@ -328,7 +329,7 @@ G_M2610_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
brk_windows #0
;; size=280 bbWeight=0 PerfScore 0.00
-; Total bytes of code 776, prolog size 32, PerfScore 125.28, instruction count 194, allocated bytes for code 776 (MethodHash=6885f5cd) for method JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt64() (FullOpts)
+; Total bytes of code 780, prolog size 32, PerfScore 128.16, instruction count 195, allocated bytes for code 780 (MethodHash=6885f5cd) for method JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt64() (FullOpts)
; ============================================================
Unwind Info:
@@ -339,7 +340,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 194 (0x000c2) Actual length = 776 (0x000308)
+ Function Length : 195 (0x000c3) Actual length = 780 (0x00030c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -347,10 +348,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- E6 save_next
- C8 0A save_regp X#0 Z#10 (0x0A); stp x19, x20, [sp, #80]
+ D0 8D save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+ C8 0B save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
8D save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
E4 end
E4 end
- E4 end
+4 (+0.53%) : 520626.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringDouble() (FullOpts)
@@ -10,17 +10,17 @@
;
;* V00 loc0 [V00,T13] ( 0, 0 ) int -> zero-ref single-def
; V01 loc1 [V01,T02] ( 11, 9.50) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V02 loc2 [V02 ] ( 5, 5 ) struct (64) [fp+0x10] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.Intrinsics.Vector512`1[double]>
-; V03 loc3 [V03,T10] ( 3, 2 ) ref -> x20 class-hnd exact single-def <System.String>
-; V04 loc4 [V04,T11] ( 3, 2 ) ref -> x19 class-hnd exact single-def <System.String>
+; V02 loc2 [V02 ] ( 5, 5 ) struct (64) [fp+0x18] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.Intrinsics.Vector512`1[double]>
+; V03 loc3 [V03,T09] ( 3, 2 ) ref -> x20 class-hnd exact single-def <System.String>
+; V04 loc4 [V04,T10] ( 3, 2 ) ref -> x19 class-hnd exact single-def <System.String>
;* V05 loc5 [V05,T14] ( 0, 0 ) int -> zero-ref
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T15] ( 2, 15.84) double -> d0 "Strict ordering of exceptions for Array store"
-; V08 tmp2 [V08,T05] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[double,System.String]>
+; V08 tmp2 [V08,T04] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[double,System.String]>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
-; V12 tmp6 [V12,T09] ( 4, 3.50) ref -> x2
+; V12 tmp6 [V12,T08] ( 4, 3.50) ref -> x2
; V13 tmp7 [V13,T28] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V14 tmp8 [V14,T03] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[double,System.String]>
; V15 tmp9 [V15,T16] ( 2, 4 ) double -> d16 "Inlining Arg"
@@ -40,7 +40,7 @@
; V29 tmp23 [V29,T27] ( 2, 4 ) simd16 -> d22 HFA(simd16) "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[double]>
;* V30 tmp24 [V30 ] ( 0, 0 ) struct (32) zero-ref HFA(simd16) ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector256`1[double]>
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (64) zero-ref HFA(simd16) do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector512`1[double]>
-; V32 tmp26 [V32,T12] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <JIT.HardwareIntrinsics.General._Vector512_1.Program+<>c>
+; V32 tmp26 [V32,T11] ( 2, 2 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <JIT.HardwareIntrinsics.General._Vector512_1.Program+<>c>
;* V33 tmp27 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V34 tmp28 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V35 tmp29 [V35 ] ( 0, 0 ) simd16 -> zero-ref HFA(simd16) "field V23._lower (fldOffset=0x0)" P-INDEP
@@ -55,24 +55,24 @@
;* V44 tmp38 [V44 ] ( 0, 0 ) simd16 -> zero-ref "V31.[016..032)"
;* V45 tmp39 [V45 ] ( 0, 0 ) simd16 -> zero-ref "V31.[032..048)"
;* V46 tmp40 [V46 ] ( 0, 0 ) simd16 -> zero-ref "V31.[048..064)"
-; V47 tmp41 [V47,T06] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V48 tmp42 [V48,T07] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V49 tmp43 [V49,T08] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V47 tmp41 [V47,T05] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
+; V48 tmp42 [V48,T06] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V49 tmp43 [V49,T07] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
; V50 tmp44 [V50,T29] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V51 tmp45 [V51,T30] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V52 tmp46 [V52,T31] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V53 cse0 [V53,T04] ( 2, 4.21) byref -> x20 hoist "CSE #01: moderate"
-; V54 rat0 [V54,T00] ( 4, 12.13) long -> x21 "Strength reduced derived IV"
-; V55 rat1 [V55,T01] ( 4, 12.13) int -> x22 "Trip count IV"
+; V53 cse0 [V53,T12] ( 2, 0.50) byref -> x20 hoist "CSE #01: moderate"
+; V54 rat0 [V54,T00] ( 4, 12.13) byref -> x20 "Strength reduced derived IV"
+; V55 rat1 [V55,T01] ( 4, 12.13) int -> x21 "Trip count IV"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M10819_IG01: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x50]
- stp x21, x22, [sp, #0x60]
+ stp x19, x20, [sp, #0x58]
+ str x21, [sp, #0x68]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
@@ -88,9 +88,8 @@ G_M10819_IG02: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs +[x19]
add x20, x19, #16
; byrRegs +[x20]
- mov x21, xzr
- mov w22, #8
- ;; size=36 bbWeight=0.25 PerfScore 1.25
+ mov w21, #8
+ ;; size=32 bbWeight=0.25 PerfScore 1.12
G_M10819_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for TestLibrary.Generator:GetDouble():double
@@ -98,10 +97,10 @@ G_M10819_IG03: ; bbWeight=3.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- str d0, [x20, x21]
- add x21, x21, #8
- sub w22, w22, #1
- cbnz w22, G_M10819_IG03
+ str d0, [x20]
+ add x20, x20, #8
+ sub w21, w21, #1
+ cbnz w21, G_M10819_IG03
;; size=36 bbWeight=3.96 PerfScore 33.66
G_M10819_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x20]
@@ -113,8 +112,10 @@ G_M10819_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ins v18.d[1], v19.d[0]
ins v20.d[1], v21.d[0]
ins v22.d[1], v23.d[0]
- stp q16, q18, [fp, #0x10] // [V02 loc2], [V02 loc2+0x10]
- stp q20, q22, [fp, #0x30] // [V02 loc2+0x20], [V02 loc2+0x30]
+ str q16, [fp, #0x18] // [V02 loc2]
+ str q18, [fp, #0x28] // [V02 loc2+0x10]
+ str q20, [fp, #0x38] // [V02 loc2+0x20]
+ str q22, [fp, #0x48] // [V02 loc2+0x30]
movz x0, #0xD1FFAB1E // code for System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -123,7 +124,7 @@ G_M10819_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x0]
mov x2, x0
; gcrRegs +[x2]
- add x0, fp, #16 // [V02 loc2]
+ add x0, fp, #24 // [V02 loc2]
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -143,7 +144,7 @@ G_M10819_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ldr x2, [x0]
; gcrRegs +[x2]
cbnz x2, G_M10819_IG06
- ;; size=124 bbWeight=1 PerfScore 41.50
+ ;; size=132 bbWeight=1 PerfScore 43.50
G_M10819_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
movz x0, #0xD1FFAB1E
@@ -228,11 +229,11 @@ G_M10819_IG06: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
cbz w0, G_M10819_IG08
;; size=156 bbWeight=1 PerfScore 32.00
G_M10819_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x60]
- ldp x19, x20, [sp, #0x50]
+ ldr x21, [sp, #0x68]
+ ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x70
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 5.00
G_M10819_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
mov w0, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
@@ -324,7 +325,7 @@ G_M10819_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
brk_windows #0
;; size=280 bbWeight=0 PerfScore 0.00
-; Total bytes of code 760, prolog size 32, PerfScore 121.28, instruction count 190, allocated bytes for code 760 (MethodHash=2a01d5bc) for method JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringDouble() (FullOpts)
+; Total bytes of code 764, prolog size 32, PerfScore 124.16, instruction count 191, allocated bytes for code 764 (MethodHash=2a01d5bc) for method JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringDouble() (FullOpts)
; ============================================================
Unwind Info:
@@ -335,7 +336,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 190 (0x000be) Actual length = 760 (0x0002f8)
+ Function Length : 191 (0x000bf) Actual length = 764 (0x0002fc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -343,10 +344,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- E6 save_next
- C8 0A save_regp X#0 Z#10 (0x0A); stp x19, x20, [sp, #80]
+ D0 8D save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+ C8 0B save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
8D save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
E4 end
E4 end
- E4 end
libraries.crossgen2.windows.arm64.checked.mch
-16 (-13.79%) : 273863.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
@@ -9,23 +9,22 @@
; Final local variable assignments
;
; V00 arg0 [V00,T03] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd single-def <System.String>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.String>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T02] ( 3, 12 ) ushort -> x0
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35714_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -35,18 +34,17 @@ G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M35714_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M35714_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cbz w0, G_M35714_IG05
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [x11]
blr xip0
cbnz w0, G_M35714_IG07
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M35714_IG04
;; size=40 bbWeight=4 PerfScore 48.00
@@ -55,22 +53,20 @@ G_M35714_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35714_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35714_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35714_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 61.75, instruction count 29, allocated bytes for code 116 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 58.62, instruction count 25, allocated bytes for code 100 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -81,7 +77,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,9 +88,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.79%) : 24539.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
@@ -9,23 +9,22 @@
; Final local variable assignments
;
; V00 arg0 [V00,T03] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd exact single-def <System.String>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd exact single-def <System.String>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T02] ( 3, 12 ) ushort -> x0
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35714_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -35,18 +34,17 @@ G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M35714_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M35714_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cbz w0, G_M35714_IG05
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr xip0, [x11]
blr xip0
cbnz w0, G_M35714_IG07
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M35714_IG04
;; size=40 bbWeight=4 PerfScore 48.00
@@ -55,22 +53,20 @@ G_M35714_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35714_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M35714_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35714_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 61.75, instruction count 29, allocated bytes for code 116 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 58.62, instruction count 25, allocated bytes for code 100 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -81,7 +77,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,9 +88,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-24 (-13.33%) : 240769.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]]:System.Collections.Generic.ICollection.Contains(Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]):ubyte:this (FullOpts)
@@ -10,32 +10,31 @@
;
; V00 this [V00,T04] ( 3, 3 ) byref -> x0 this single-def
; V01 arg1 [V01,T01] ( 3, 12 ) byref -> x19 single-def
-; V02 loc0 [V02,T07] ( 3, 2.25) ref -> x0 class-hnd exact single-def <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue][][]>
-;* V03 loc1 [V03,T09] ( 0, 0 ) int -> zero-ref
+; V02 loc0 [V02,T06] ( 3, 2.25) ref -> x0 class-hnd exact single-def <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue][][]>
+;* V03 loc1 [V03,T08] ( 0, 0 ) int -> zero-ref
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 2, 16 ) struct (48) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]>
+; V05 tmp1 [V05 ] ( 2, 16 ) struct (48) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]>
; V06 tmp2 [V06,T00] ( 2, 16 ) ref -> x0 "argument with side effect"
-; V07 cse0 [V07,T05] ( 2, 4.25) byref -> x21 hoist "CSE #01: aggressive"
-; V08 cse1 [V08,T08] ( 3, 2.25) int -> x20 "CSE #03: aggressive"
-; V09 cse2 [V09,T06] ( 2, 4.25) long -> x22 hoist "CSE #02: aggressive"
-; V10 rat0 [V10,T02] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V07 cse0 [V07,T09] ( 2, 0.50) byref -> x21 hoist "CSE #01: aggressive"
+; V08 cse1 [V08,T07] ( 3, 2.25) int -> x20 "CSE #03: aggressive"
+; V09 cse2 [V09,T05] ( 2, 4.25) long -> x22 hoist "CSE #02: aggressive"
+; V10 rat0 [V10,T02] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
; V11 rat1 [V11,T03] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M52719_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x70]!
- stp x19, x20, [sp, #0x48]
- stp x21, x22, [sp, #0x58]
- str x23, [sp, #0x68]
+ stp fp, lr, [sp, #-0x60]!
+ stp x19, x20, [sp, #0x40]
+ stp x21, x22, [sp, #0x50]
mov fp, sp
- add x9, fp, #24
+ add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp xzr, xzr, [x9, #0x20]
mov x19, x1
; byrRegs +[x19]
- ;; size=40 bbWeight=1 PerfScore 8.00
+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M52719_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80001 {x0 x19}, byref, isz
; byrRegs +[x0]
ldr x0, [x0]
@@ -50,29 +49,26 @@ G_M52719_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19
; byrRegs +[x21]
adrp x22, [HIGH RELOC #0xD1FFAB1E]
add x22, x22, [LOW RELOC #0xD1FFAB1E]
- mov x23, xzr
- ;; size=16 bbWeight=0.25 PerfScore 0.50
+ ;; size=12 bbWeight=0.25 PerfScore 0.38
G_M52719_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=280000 {x19 x21}, byref
; gcrRegs -[x0]
- ldr x0, [x21, x23]
+ ldr x0, [x21]
; gcrRegs +[x0]
;; size=4 bbWeight=4 PerfScore 12.00
G_M52719_IG05: ; bbWeight=4, nogc, extend
- ldp x1, x11, [x19]
- stp x1, x11, [fp, #0x18]
- ldp x1, x11, [x19, #0x10]
- stp x1, x11, [fp, #0x28]
- ldp x1, x11, [x19, #0x20]
- stp x1, x11, [fp, #0x38]
- ;; size=24 bbWeight=4 PerfScore 60.00
+ ldp q16, q17, [x19]
+ stp q16, q17, [fp, #0x10]
+ ldr q16, [x19, #0x20]
+ str q16, [fp, #0x30]
+ ;; size=16 bbWeight=4 PerfScore 32.00
G_M52719_IG06: ; bbWeight=4, isz, extend
- add x1, fp, #24 // [V05 tmp1]
+ add x1, fp, #16 // [V05 tmp1]
mov x11, x22
ldr xip0, [x11]
blr xip0
; gcrRegs -[x0]
cbnz w0, G_M52719_IG09
- add x23, x23, #8
+ add x21, x21, #8
sub w20, w20, #1
cbnz w20, G_M52719_IG04
;; size=32 bbWeight=4 PerfScore 32.00
@@ -81,24 +77,22 @@ G_M52719_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M52719_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x23, [sp, #0x68]
- ldp x21, x22, [sp, #0x58]
- ldp x19, x20, [sp, #0x48]
- ldp fp, lr, [sp], #0x70
+ ldp x21, x22, [sp, #0x50]
+ ldp x19, x20, [sp, #0x40]
+ ldp fp, lr, [sp], #0x60
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M52719_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M52719_IG10: ; bbWeight=0.50, epilog, nogc, extend
- ldr x23, [sp, #0x68]
- ldp x21, x22, [sp, #0x58]
- ldp x19, x20, [sp, #0x48]
- ldp fp, lr, [sp], #0x70
+ ldp x21, x22, [sp, #0x50]
+ ldp x19, x20, [sp, #0x40]
+ ldp fp, lr, [sp], #0x60
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 180, prolog size 36, PerfScore 126.50, instruction count 45, allocated bytes for code 180 (MethodHash=22f23210) for method Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]]:System.Collections.Generic.ICollection<T>.Contains(Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]):ubyte:this (FullOpts)
+; Total bytes of code 156, prolog size 32, PerfScore 95.38, instruction count 39, allocated bytes for code 156 (MethodHash=22f23210) for method Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]]:System.Collections.Generic.ICollection<T>.Contains(Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -109,7 +103,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 45 (0x0002d) Actual length = 180 (0x0000b4)
+ Function Length : 39 (0x00027) Actual length = 156 (0x00009c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -120,9 +114,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 0D save_reg X#4 Z#13 (0x0D); str x23, [sp, #104]
E6 save_next
- C8 09 save_regp X#0 Z#9 (0x09); stp x19, x20, [sp, #72]
- 8D save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
+ C8 08 save_regp X#0 Z#8 (0x08); stp x19, x20, [sp, #64]
+ 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ E4 end
+ E4 end
E4 end
+0 (0.00%) : 17118.dasm - System.Globalization.DateTimeFormatInfo:GetCombinedPatterns(System.String[],System.String[],System.String):System.String[] (FullOpts)
@@ -9,13 +9,13 @@
; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T14] ( 5, 4.25) ref -> x20 class-hnd single-def <System.String[]>
-; V01 arg1 [V01,T15] ( 5, 4.25) ref -> x21 class-hnd single-def <System.String[]>
+; V00 arg0 [V00,T13] ( 5, 4.25) ref -> x20 class-hnd single-def <System.String[]>
+; V01 arg1 [V01,T14] ( 5, 4.25) ref -> x21 class-hnd single-def <System.String[]>
; V02 arg2 [V02,T07] ( 3, 18 ) ref -> x19 class-hnd single-def <System.String>
; V03 loc0 [V03,T05] ( 4, 34 ) ref -> x24 class-hnd exact single-def <System.String[]>
; V04 loc1 [V04,T06] ( 3, 33 ) int -> [fp+0x1C]
-; V05 loc2 [V05,T11] ( 5, 14 ) int -> x26
-;* V06 loc3 [V06,T16] ( 0, 0 ) int -> zero-ref
+; V05 loc2 [V05,T10] ( 5, 14 ) int -> x26
+;* V06 loc3 [V06,T15] ( 0, 0 ) int -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T00] ( 4,128 ) int -> x25 "impSpillLclRefs"
; V09 tmp2 [V09,T01] ( 2, 64 ) ref -> x15 class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
@@ -24,12 +24,12 @@
;* V12 tmp5 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp6 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V14 tmp7 [V14,T02] ( 2, 64 ) ref -> x0 "argument with side effect"
-; V15 cse0 [V15,T12] ( 4, 7 ) int -> x23 "CSE #06: aggressive"
+; V15 cse0 [V15,T11] ( 4, 7 ) int -> x23 "CSE #06: aggressive"
; V16 cse1 [V16,T09] ( 2, 16.25) byref -> x20 hoist "CSE #07: aggressive"
-; V17 cse2 [V17,T10] ( 2, 16.25) byref -> x21 hoist "CSE #08: aggressive"
-; V18 cse3 [V18,T13] ( 4, 7 ) int -> x22 "CSE #05: aggressive"
+; V17 cse2 [V17,T16] ( 2, 1.25) byref -> x21 hoist "CSE #08: aggressive"
+; V18 cse3 [V18,T12] ( 4, 7 ) int -> x22 "CSE #05: aggressive"
; V19 cse4 [V19,T08] ( 2, 17 ) long -> x27 hoist "CSE #09: aggressive"
-; V20 rat0 [V20,T03] ( 4, 49 ) long -> x28 "Strength reduced derived IV"
+; V20 rat0 [V20,T03] ( 4, 49 ) byref -> x28 "Strength reduced derived IV"
; V21 rat1 [V21,T04] ( 4, 49 ) int -> [fp+0x18] "Trip count IV"
;
; Lcl frame size = 16
@@ -124,15 +124,16 @@ G_M35289_IG08: ; bbWeight=4, gcrefRegs=1080000 {x19 x24}, byrefRegs=30000
;; size=8 bbWeight=4 PerfScore 6.00
G_M35289_IG09: ; bbWeight=1, gcrefRegs=1080000 {x19 x24}, byrefRegs=300000 {x20 x21}, byref
mov w27, w26
- mov x28, xzr
+ mov x28, x21
+ ; byrRegs +[x28]
str w23, [fp, #0x18] // [V21 rat1]
;; size=12 bbWeight=1 PerfScore 2.00
-G_M35289_IG10: ; bbWeight=16, gcrefRegs=1080000 {x19 x24}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M35289_IG10: ; bbWeight=16, gcrefRegs=1080000 {x19 x24}, byrefRegs=10300000 {x20 x21 x28}, byref, isz
add w0, w25, #1
str w0, [fp, #0x1C] // [V04 loc1]
ldr x0, [x20, x27, LSL #3]
; gcrRegs +[x0]
- ldr x2, [x21, x28]
+ ldr x2, [x28]
; gcrRegs +[x2]
mov x1, x19
; gcrRegs +[x1]
@@ -163,6 +164,7 @@ G_M35289_IG10: ; bbWeight=16, gcrefRegs=1080000 {x19 x24}, byrefRegs=3000
cbnz w25, G_M35289_IG14
;; size=96 bbWeight=16 PerfScore 472.00
G_M35289_IG11: ; bbWeight=4, gcrefRegs=1080000 {x19 x24}, byrefRegs=300000 {x20 x21}, byref, isz
+ ; byrRegs -[x28]
add w26, w26, #1
cmp w22, w26
ldr w25, [fp, #0x1C] // [V04 loc1]
@@ -183,13 +185,14 @@ G_M35289_IG13: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=1 PerfScore 7.00
-G_M35289_IG14: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=1080000 {x19 x24}, byrefRegs=300000 {x20 x21}, gcvars, byref
+G_M35289_IG14: ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=1080000 {x19 x24}, byrefRegs=10300000 {x20 x21 x28}, gcvars, byref
; gcrRegs -[x0] +[x19]
- ; byrRegs +[x20-x21]
+ ; byrRegs +[x20-x21 x28]
ldr w25, [fp, #0x1C] // [V04 loc1]
b G_M35289_IG10
;; size=8 bbWeight=8 PerfScore 24.00
G_M35289_IG15: ; bbWeight=2, gcrefRegs=1080000 {x19 x24}, byrefRegs=300000 {x20 x21}, byref
+ ; byrRegs -[x28]
str w25, [fp, #0x1C] // [V04 loc1]
b G_M35289_IG11
;; size=8 bbWeight=2 PerfScore 4.00
+0 (0.00%) : 64479.dasm - System.Data.ConstraintCollection:CompareArrays(System.Data.DataColumn[],System.Data.DataColumn[]):ubyte (FullOpts)
@@ -8,18 +8,18 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T08] ( 4, 3.25) ref -> x0 class-hnd single-def <System.Data.DataColumn[]>
-; V01 arg1 [V01,T09] ( 4, 3.25) ref -> x1 class-hnd single-def <System.Data.DataColumn[]>
-; V02 loc0 [V02,T05] ( 5, 13.50) int -> x4
-;* V03 loc1 [V03,T10] ( 0, 0 ) int -> zero-ref
-;* V04 loc2 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
+; V00 arg0 [V00,T07] ( 4, 3.25) ref -> x0 class-hnd single-def <System.Data.DataColumn[]>
+; V01 arg1 [V01,T08] ( 4, 3.25) ref -> x1 class-hnd single-def <System.Data.DataColumn[]>
+; V02 loc0 [V02,T04] ( 5, 13.50) int -> x4
+;* V03 loc1 [V03,T09] ( 0, 0 ) int -> zero-ref
+;* V04 loc2 [V04,T10] ( 0, 0 ) ubyte -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 cse0 [V06,T06] ( 4, 7 ) int -> x3 "CSE #02: aggressive"
+; V06 cse0 [V06,T05] ( 4, 7 ) int -> x3 "CSE #02: aggressive"
; V07 cse1 [V07,T03] ( 2, 16.25) byref -> x5 hoist "CSE #03: aggressive"
-; V08 cse2 [V08,T04] ( 2, 16.25) byref -> x1 hoist "CSE #04: aggressive"
-; V09 cse3 [V09,T07] ( 4, 6.50) int -> x2 "CSE #01: aggressive"
+; V08 cse2 [V08,T11] ( 2, 1.25) byref -> x1 hoist "CSE #04: aggressive"
+; V09 cse3 [V09,T06] ( 4, 6.50) int -> x2 "CSE #01: aggressive"
; V10 cse4 [V10,T02] ( 2, 17 ) long -> x0 hoist "CSE #05: aggressive"
-; V11 rat0 [V11,T00] ( 4, 49 ) long -> x6 "Strength reduced derived IV"
+; V11 rat0 [V11,T00] ( 4, 49 ) byref -> x6 "Strength reduced derived IV"
; V12 rat1 [V12,T01] ( 4, 49 ) int -> x7 "Trip count IV"
;
; Lcl frame size = 0
@@ -54,13 +54,14 @@ G_M51459_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5}, b
;; size=8 bbWeight=4 PerfScore 6.00
G_M51459_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5}, byref
mov w0, w4
- mov x6, xzr
+ mov x6, x1
+ ; byrRegs +[x6]
sxtw w7, w3
;; size=12 bbWeight=1 PerfScore 1.50
-G_M51459_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5}, byref, isz
+G_M51459_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0062 {x1 x5 x6}, byref, isz
ldr x8, [x5, x0, LSL #3]
; gcrRegs +[x8]
- ldr x9, [x1, x6]
+ ldr x9, [x6]
; gcrRegs +[x9]
cmp x8, x9
beq G_M51459_IG10
@@ -70,7 +71,7 @@ G_M51459_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5},
;; size=28 bbWeight=16 PerfScore 152.00
G_M51459_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x8-x9]
- ; byrRegs -[x1 x5]
+ ; byrRegs -[x1 x5-x6]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M51459_IG09: ; bbWeight=0.50, epilog, nogc, extend
+4 (+2.38%) : 12930.dasm - System.Diagnostics.Tracing.InvokeTypeInfo:WriteData(System.Diagnostics.Tracing.PropertyValue):this (FullOpts)
@@ -10,30 +10,30 @@
;
; V00 this [V00,T06] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Diagnostics.Tracing.InvokeTypeInfo>
; V01 arg1 [V01,T02] ( 3, 12 ) byref -> x19 single-def
-; V02 loc0 [V02,T10] ( 3, 1.25) ref -> x1 class-hnd exact single-def <System.Diagnostics.Tracing.PropertyAnalysis[]>
+; V02 loc0 [V02,T09] ( 3, 1.25) ref -> x1 class-hnd exact single-def <System.Diagnostics.Tracing.PropertyAnalysis[]>
;* V03 loc1 [V03,T12] ( 0, 0 ) int -> zero-ref
; V04 loc2 [V04,T05] ( 3, 12 ) ref -> x1 class-hnd exact <System.Diagnostics.Tracing.PropertyAnalysis>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T01] ( 2, 16 ) ref -> x24 class-hnd "non-inline candidate call" <System.Diagnostics.Tracing.TraceLoggingTypeInfo>
-; V07 tmp2 [V07 ] ( 2, 16 ) struct (32) [fp+0x30] do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument" <System.Diagnostics.Tracing.PropertyValue>
-; V08 tmp3 [V08 ] ( 2, 16 ) struct (32) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Diagnostics.Tracing.PropertyValue>
+; V06 tmp1 [V06,T01] ( 2, 16 ) ref -> x23 class-hnd "non-inline candidate call" <System.Diagnostics.Tracing.TraceLoggingTypeInfo>
+; V07 tmp2 [V07 ] ( 2, 16 ) struct (32) [fp+0x38] do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument" <System.Diagnostics.Tracing.PropertyValue>
+; V08 tmp3 [V08 ] ( 2, 16 ) struct (32) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Diagnostics.Tracing.PropertyValue>
; V09 tmp4 [V09,T00] ( 3, 24 ) ref -> x2 "argument with side effect"
-; V10 cse0 [V10,T09] ( 3, 2.50) ref -> x1 "CSE #01: aggressive"
-; V11 cse1 [V11,T07] ( 2, 4.25) byref -> x21 hoist "CSE #02: aggressive"
-; V12 cse2 [V12,T11] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
-; V13 cse3 [V13,T08] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
-; V14 rat0 [V14,T03] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V10 cse0 [V10,T08] ( 3, 2.50) ref -> x1 "CSE #01: aggressive"
+; V11 cse1 [V11,T11] ( 2, 0.50) byref -> x21 hoist "CSE #02: aggressive"
+; V12 cse2 [V12,T10] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
+; V13 cse3 [V13,T07] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
+; V14 rat0 [V14,T03] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
; V15 rat1 [V15,T04] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 64
+; Lcl frame size = 72
G_M36986_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x50]
- stp x21, x22, [sp, #0x60]
- stp x23, x24, [sp, #0x70]
+ stp x19, x20, [sp, #0x58]
+ stp x21, x22, [sp, #0x68]
+ str x23, [sp, #0x78]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
@@ -57,51 +57,52 @@ G_M36986_IG04: ; bbWeight=0.25, gcrefRegs=0002 {x1}, byrefRegs=80000 {x19
; byrRegs +[x21]
adrp x22, [HIGH RELOC #0xD1FFAB1E]
add x22, x22, [LOW RELOC #0xD1FFAB1E]
- mov x23, xzr
- ;; size=16 bbWeight=0.25 PerfScore 0.50
+ ;; size=12 bbWeight=0.25 PerfScore 0.38
G_M36986_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=280000 {x19 x21}, byref
; gcrRegs -[x1]
- ldr x1, [x21, x23]
+ ldr x1, [x21]
; gcrRegs +[x1]
- ldp x2, x24, [x1, #0x18]
- ; gcrRegs +[x2 x24]
+ ldp x2, x23, [x1, #0x18]
+ ; gcrRegs +[x2 x23]
;; size=8 bbWeight=4 PerfScore 28.00
G_M36986_IG06: ; bbWeight=4, nogc, extend
- ldp q16, q17, [x19]
- stp q16, q17, [fp, #0x10]
- ;; size=8 bbWeight=4 PerfScore 16.00
-G_M36986_IG07: ; bbWeight=4, isz, extend
- add x1, fp, #16 // [V08 tmp3]
+ ldp x1, x8, [x19]
; gcrRegs -[x1]
- add x8, fp, #48 // [V07 tmp2]
+ stp x1, x8, [fp, #0x18]
+ ldp x1, x8, [x19, #0x10]
+ stp x1, x8, [fp, #0x28]
+ ;; size=16 bbWeight=4 PerfScore 40.00
+G_M36986_IG07: ; bbWeight=4, isz, extend
+ add x1, fp, #24 // [V08 tmp3]
+ add x8, fp, #56 // [V07 tmp2]
ldr x0, [x2, #0x08]
; gcrRegs +[x0]
ldr x2, [x2, #0x18]
; gcrRegs -[x2]
blr x2
; gcrRegs -[x0]
- add x1, fp, #48 // [V07 tmp2]
- mov x0, x24
+ add x1, fp, #56 // [V07 tmp2]
+ mov x0, x23
; gcrRegs +[x0]
mov x11, x22
ldr wzr, [x0]
ldr xip0, [x11]
blr xip0
- ; gcrRegs -[x0 x24]
- add x23, x23, #8
+ ; gcrRegs -[x0 x23]
+ add x21, x21, #8
sub w20, w20, #1
cbnz w20, G_M36986_IG05
;; size=56 bbWeight=4 PerfScore 74.00
G_M36986_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[x19 x21]
- ldp x23, x24, [sp, #0x70]
- ldp x21, x22, [sp, #0x60]
- ldp x19, x20, [sp, #0x50]
+ ldr x23, [sp, #0x78]
+ ldp x21, x22, [sp, #0x68]
+ ldp x19, x20, [sp, #0x58]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=20 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 6.00
-; Total bytes of code 168, prolog size 36, PerfScore 137.75, instruction count 42, allocated bytes for code 168 (MethodHash=fae96f85) for method System.Diagnostics.Tracing.InvokeTypeInfo:WriteData(System.Diagnostics.Tracing.PropertyValue):this (FullOpts)
+; Total bytes of code 172, prolog size 36, PerfScore 162.62, instruction count 43, allocated bytes for code 172 (MethodHash=fae96f85) for method System.Diagnostics.Tracing.InvokeTypeInfo:WriteData(System.Diagnostics.Tracing.PropertyValue):this (FullOpts)
; ============================================================
Unwind Info:
@@ -112,7 +113,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 43 (0x0002b) Actual length = 172 (0x0000ac)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -120,10 +121,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 0F save_reg X#4 Z#15 (0x0F); str x23, [sp, #120]
E6 save_next
- E6 save_next
- C8 0A save_regp X#0 Z#10 (0x0A); stp x19, x20, [sp, #80]
+ C8 0B save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
- E4 end
libraries.pmi.windows.arm64.checked.mch
-16 (-13.79%) : 165991.dasm - System.Xml.Serialization.DynamicAssemblies:IsTypeDynamic(System.Type[]):ubyte (FullOpts)
@@ -8,22 +8,21 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 3, 3 ) ref -> x0 class-hnd single-def <System.Type[]>
-; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Type[]>
-;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T03] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Type[]>
+;* V02 loc1 [V02,T05] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V05 cse1 [V05,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V06 rat0 [V06,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V04 cse0 [V04,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V05 cse1 [V05,T04] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V06 rat0 [V06,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V07 rat1 [V07,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M16567_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M16567_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -33,11 +32,10 @@ G_M16567_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M16567_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M16567_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Xml.Serialization.DynamicAssemblies:IsTypeDynamic(System.Type):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -46,7 +44,7 @@ G_M16567_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
blr x1
; gcrRegs -[x0]
cbnz w0, G_M16567_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M16567_IG04
;; size=40 bbWeight=4 PerfScore 46.00
@@ -55,22 +53,20 @@ G_M16567_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M16567_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M16567_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M16567_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 59.75, instruction count 29, allocated bytes for code 116 (MethodHash=ab5cbf48) for method System.Xml.Serialization.DynamicAssemblies:IsTypeDynamic(System.Type[]):ubyte (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 56.62, instruction count 25, allocated bytes for code 100 (MethodHash=ab5cbf48) for method System.Xml.Serialization.DynamicAssemblies:IsTypeDynamic(System.Type[]):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -81,7 +77,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,9 +88,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.79%) : 237322.dasm - System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
@@ -8,23 +8,22 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.RoConstructedGenericType>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.TypeLoading.RoType[]>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.TypeLoading.RoType[]>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M14923_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M14923_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x0, [x0, #0x68]
@@ -35,11 +34,10 @@ G_M14923_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M14923_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M14923_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
ldr x1, [x0]
ldr x1, [x1, #0xB8]
@@ -47,7 +45,7 @@ G_M14923_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
blr x1
; gcrRegs -[x0]
cbnz w0, G_M14923_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M14923_IG04
;; size=36 bbWeight=4 PerfScore 64.00
@@ -56,22 +54,20 @@ G_M14923_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M14923_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M14923_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M14923_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 80.75, instruction count 29, allocated bytes for code 116 (MethodHash=0272c5b4) for method System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 77.62, instruction count 25, allocated bytes for code 100 (MethodHash=0272c5b4) for method System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.79%) : 292476.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
@@ -8,23 +8,22 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase[]>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase[]>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M3689_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M3689_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x0, [x0, #0x10]
@@ -35,11 +34,10 @@ G_M3689_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
G_M3689_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M3689_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
ldr x1, [x0]
ldr x1, [x1, #0x48]
@@ -47,7 +45,7 @@ G_M3689_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, by
blr x1
; gcrRegs -[x0]
cbz w0, G_M3689_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M3689_IG04
;; size=36 bbWeight=4 PerfScore 64.00
@@ -56,22 +54,20 @@ G_M3689_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M3689_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M3689_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M3689_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 80.75, instruction count 29, allocated bytes for code 116 (MethodHash=11d7f196) for method System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 77.62, instruction count 25, allocated bytes for code 100 (MethodHash=11d7f196) for method System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
+0 (0.00%) : 146927.dasm - System.Data.DataTable:ReadXmlDiffgram(System.Xml.XmlReader):this (FullOpts)
@@ -15,14 +15,14 @@
; V04 loc2 [V04,T40] ( 11, 5.50) ref -> x26 class-hnd <System.Data.DataTable>
; V05 loc3 [V05,T63] ( 3, 1.50) ubyte -> x25
; V06 loc4 [V06,T21] ( 13, 31.50) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V07 loc5 [V07,T66] ( 2, 1 ) ref -> [fp+0x78] class-hnd spill-single-def <System.Xml.XmlElement>
-; V08 loc6 [V08,T13] ( 10, 48.50) int -> x21
+; V07 loc5 [V07,T66] ( 2, 1 ) ref -> [fp+0x80] class-hnd spill-single-def <System.Xml.XmlElement>
+; V08 loc6 [V08,T12] ( 10, 48.50) int -> x21
; V09 loc7 [V09,T22] ( 4, 25 ) ref -> x22 class-hnd <System.Data.DataRelation[]>
;* V10 loc8 [V10,T17] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation[]>
;* V11 loc9 [V11,T46] ( 0, 0 ) int -> zero-ref
-; V12 loc10 [V12,T14] ( 4, 48 ) ref -> x0 class-hnd <System.Data.DataRelation>
-; V13 loc11 [V13,T02] ( 6,1072 ) ref -> [fp+0x70] do-not-enreg[Z] class-hnd exact EH-live <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
-; V14 loc12 [V14,T04] ( 2, 544 ) ref -> [fp+0x68] class-hnd spill-single-def <System.Data.DataRow>
+; V12 loc10 [V12,T13] ( 4, 48 ) ref -> x0 class-hnd <System.Data.DataRelation>
+; V13 loc11 [V13,T02] ( 6,1072 ) ref -> [fp+0x78] do-not-enreg[Z] class-hnd exact EH-live <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
+; V14 loc12 [V14,T04] ( 2, 544 ) ref -> [fp+0x70] class-hnd spill-single-def <System.Data.DataRow>
;* V15 loc13 [V15,T19] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation[]>
;* V16 loc14 [V16,T20] ( 0, 0 ) int -> zero-ref
;* V17 loc15 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation>
@@ -31,10 +31,10 @@
; V20 tmp1 [V20,T49] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V21 tmp2 [V21,T18] ( 2, 32 ) ref -> x0 class-hnd "impAppendStmt" <System.Data.DataTable>
;* V22 tmp3 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.XMLDiffLoader>
-; V23 tmp4 [V23,T50] ( 3, 3 ) ref -> [fp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlDocument>
+; V23 tmp4 [V23,T50] ( 3, 3 ) ref -> [fp+0x68] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlDocument>
;* V24 tmp5 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
;* V25 tmp6 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
-; V26 tmp7 [V26,T33] ( 10, 10 ) ref -> [fp+0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.XmlDataLoader>
+; V26 tmp7 [V26,T33] ( 10, 10 ) ref -> [fp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.XmlDataLoader>
;* V27 tmp8 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataRowCollection>
;* V28 tmp9 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataRowCollection+DataRowTree>
;* V29 tmp10 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
@@ -61,10 +61,10 @@
;* V50 tmp31 [V50 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V51 tmp32 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V52 tmp33 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V53 tmp34 [V53,T51] ( 3, 3 ) ref -> [fp+0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlImplementation>
-; V54 tmp35 [V54,T52] ( 3, 3 ) ref -> [fp+0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.NameTable>
-; V55 tmp36 [V55,T53] ( 3, 3 ) ref -> [fp+0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Hashtable>
-; V56 tmp37 [V56,T54] ( 3, 3 ) ref -> [fp+0x38] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V53 tmp34 [V53,T51] ( 3, 3 ) ref -> [fp+0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlImplementation>
+; V54 tmp35 [V54,T52] ( 3, 3 ) ref -> [fp+0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.NameTable>
+; V55 tmp36 [V55,T53] ( 3, 3 ) ref -> [fp+0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Hashtable>
+; V56 tmp37 [V56,T54] ( 3, 3 ) ref -> [fp+0x40] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
;* V57 tmp38 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V58 tmp39 [V58,T47] ( 5, 3 ) ref -> x0 single-def "spilling varStr"
;* V59 tmp40 [V59 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
@@ -90,23 +90,23 @@
;* V79 tmp60 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V80 tmp61 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V81 tmp62 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataRowCollection>
-; V82 tmp63 [V82,T10] ( 4, 64 ) ref -> [fp+0x30] class-hnd exact spill-single-def "Inlining Arg" <System.Data.DataRowCollection+DataRowTree>
+; V82 tmp63 [V82,T09] ( 4, 64 ) ref -> [fp+0x38] class-hnd exact spill-single-def "Inlining Arg" <System.Data.DataRowCollection+DataRowTree>
;* V83 tmp64 [V83 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
-; V84 tmp65 [V84,T08] ( 7, 112 ) ref -> x0 class-hnd exact "Single-def Box Helper" <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
+; V84 tmp65 [V84,T07] ( 7, 112 ) ref -> x0 class-hnd exact "Single-def Box Helper" <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
;* V85 tmp66 [V85 ] ( 0, 0 ) ref -> zero-ref "V83.[000..008)"
;* V86 tmp67 [V86 ] ( 0, 0 ) ref -> zero-ref "V83.[008..016)"
; V87 tmp68 [V87,T28] ( 2, 16 ) int -> [fp+0x94] spill-single-def "V83.[016..020)"
;* V88 tmp69 [V88 ] ( 0, 0 ) int -> zero-ref "V83.[020..024)"
; V89 tmp70 [V89,T29] ( 2, 16 ) int -> [fp+0x90] spill-single-def "V83.[024..028)"
; V90 tmp71 [V90,T60] ( 2, 2 ) int -> x1 "argument with side effect"
-; V91 tmp72 [V91,T55] ( 2, 2 ) ref -> [fp+0x28] spill-single-def "argument with side effect"
-; V92 tmp73 [V92,T56] ( 2, 2 ) ref -> [fp+0x20] spill-single-def "argument with side effect"
+; V91 tmp72 [V91,T55] ( 2, 2 ) ref -> [fp+0x30] spill-single-def "argument with side effect"
+; V92 tmp73 [V92,T56] ( 2, 2 ) ref -> [fp+0x28] spill-single-def "argument with side effect"
; V93 tmp74 [V93,T57] ( 2, 2 ) ref -> x3 single-def "argument with side effect"
; V94 tmp75 [V94,T58] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
; V95 tmp76 [V95,T24] ( 3, 24 ) ref -> x0 "arr expr"
;* V96 tmp77 [V96,T30] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V97 tmp78 [V97,T07] ( 3, 144 ) ref -> x0 "argument with side effect"
-; V98 tmp79 [V98,T15] ( 3, 48 ) ref -> x1 "arr expr"
+; V97 tmp78 [V97,T06] ( 3, 144 ) ref -> x0 "argument with side effect"
+; V98 tmp79 [V98,T14] ( 3, 48 ) ref -> x1 "arr expr"
; V99 PSPSym [V99,T72] ( 1, 1 ) long -> [fp+0x98] do-not-enreg[V] "PSPSym"
; V100 cse0 [V100,T25] ( 3, 24 ) ref -> x1 "CSE #23: moderate"
; V101 cse1 [V101,T31] ( 14, 11.50) long -> x22 "CSE #02: moderate"
@@ -115,16 +115,16 @@
; V104 cse4 [V104,T62] ( 3, 1.50) ref -> x0 "CSE #16: conservative"
; V105 cse5 [V105,T26] ( 2, 16 ) ref -> x1 "CSE #19: moderate"
; V106 cse6 [V106,T16] ( 4, 41 ) int -> x23 "CSE #17: aggressive"
-; V107 cse7 [V107,T03] ( 6,1064 ) byref -> [fp+0x18] multi-def "CSE #24: aggressive"
-; V108 cse8 [V108,T05] ( 2, 528 ) byref -> [fp+0x10] spill-single-def "CSE #25: aggressive"
+; V107 cse7 [V107,T03] ( 6,1064 ) byref -> [fp+0x20] multi-def "CSE #24: aggressive"
+; V108 cse8 [V108,T15] ( 2, 48 ) byref -> [fp+0x18] spill-single-def "CSE #25: aggressive"
; V109 cse9 [V109,T44] ( 5, 4.50) long -> x21 "CSE #01: moderate"
; V110 cse10 [V110,T43] ( 10, 5 ) ref -> x28 multi-def "CSE #04: moderate"
-; V111 rat0 [V111,T11] ( 4, 49 ) byref -> x27 "Strength reduced derived IV"
-; V112 rat1 [V112,T12] ( 4, 49 ) int -> x28 "Trip count IV"
-; V113 rat2 [V113,T00] ( 4,1568 ) long -> [fp+0x88] "Strength reduced derived IV"
-; V114 rat3 [V114,T01] ( 4,1568 ) int -> [fp+0x84] "Trip count IV"
-; V115 rat4 [V115,T06] ( 5, 240 ) ref -> x2 "replacement local"
-; V116 rat5 [V116,T09] ( 3, 80 ) long -> x3 "CSE for expectedClsNode"
+; V111 rat0 [V111,T10] ( 4, 49 ) byref -> x27 "Strength reduced derived IV"
+; V112 rat1 [V112,T11] ( 4, 49 ) int -> x28 "Trip count IV"
+; V113 rat2 [V113,T00] ( 4,1568 ) byref -> [fp+0x10] "Strength reduced derived IV"
+; V114 rat3 [V114,T01] ( 4,1568 ) int -> [fp+0x8C] "Trip count IV"
+; V115 rat4 [V115,T05] ( 5, 240 ) ref -> x2 "replacement local"
+; V116 rat5 [V116,T08] ( 3, 80 ) long -> x3 "CSE for expectedClsNode"
; V117 rat6 [V117,T73] ( 3, 3 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 144
@@ -423,7 +423,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x60] // [V23 tmp4]
+ str x0, [fp, #0x68] // [V23 tmp4]
; GC ptr vars +{V23}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -432,7 +432,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x50] // [V53 tmp34]
+ str x0, [fp, #0x58] // [V53 tmp34]
; GC ptr vars +{V53}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -443,7 +443,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
; gcr arg pop 0
mov x1, x0
; gcrRegs +[x1]
- str x1, [fp, #0x48] // [V54 tmp35]
+ str x1, [fp, #0x50] // [V54 tmp35]
; GC ptr vars +{V54}
mov x0, x1
movz x2, #0xD1FFAB1E // code for System.Xml.NameTable:.ctor():this
@@ -453,17 +453,17 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- ldr x1, [fp, #0x50] // [V53 tmp34]
+ ldr x1, [fp, #0x58] // [V53 tmp34]
; gcrRegs +[x1]
add x14, x1, #8
; byrRegs +[x14]
- ldr x15, [fp, #0x48] // [V54 tmp35]
+ ldr x15, [fp, #0x50] // [V54 tmp35]
; gcrRegs +[x15]
; GC ptr vars -{V54}
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14]
- ldr x0, [fp, #0x60] // [V23 tmp4]
+ ldr x0, [fp, #0x68] // [V23 tmp4]
; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -478,13 +478,13 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
ldr x1, [x22, #0x08]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x28] // [V91 tmp72]
+ str x0, [fp, #0x30] // [V91 tmp72]
; GC ptr vars +{V91}
mov x0, x19
ldr x2, [x27, #0x38]
blr x2
; gcr arg pop 0
- str x0, [fp, #0x20] // [V92 tmp73]
+ str x0, [fp, #0x28] // [V92 tmp73]
; GC ptr vars +{V92}
mov x0, x19
ldr x2, [x22]
@@ -492,9 +492,9 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
; gcr arg pop 0
mov x3, x0
; gcrRegs +[x3]
- ldp x2, x1, [fp, #0x20] // [V92 tmp73], [V91 tmp72]
+ ldp x2, x1, [fp, #0x28] // [V92 tmp73], [V91 tmp72]
; gcrRegs +[x1-x2]
- ldr x0, [fp, #0x60] // [V23 tmp4]
+ ldr x0, [fp, #0x68] // [V23 tmp4]
movz x4, #0xD1FFAB1E // code for System.Xml.XmlDocument:CreateElement(System.String,System.String,System.String):System.Xml.XmlElement:this
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
@@ -503,7 +503,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
blr x4
; gcrRegs -[x1-x3]
; gcr arg pop 0
- str x0, [fp, #0x78] // [V07 loc5]
+ str x0, [fp, #0x80] // [V07 loc5]
; GC ptr vars +{V07}
mov x0, x19
ldr x2, [x21, #0x10]
@@ -527,7 +527,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
; gcr arg pop 0
mov x1, x0
; gcrRegs +[x1]
- str x1, [fp, #0x58] // [V26 tmp7]
+ str x1, [fp, #0x60] // [V26 tmp7]
; GC ptr vars +{V26}
str xzr, [x1, #0x08]
add x14, x1, #48
@@ -547,7 +547,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
; gcr arg pop 0
mov x2, x0
; gcrRegs +[x2]
- str x2, [fp, #0x40] // [V55 tmp36]
+ str x2, [fp, #0x48] // [V55 tmp36]
; GC ptr vars +{V55}
fmov s0, #1.0000
mov x0, x2
@@ -559,11 +559,11 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
blr x3
; gcrRegs -[x0 x2]
; gcr arg pop 0
- ldr x1, [fp, #0x58] // [V26 tmp7]
+ ldr x1, [fp, #0x60] // [V26 tmp7]
; gcrRegs +[x1]
add x14, x1, #24
; byrRegs +[x14]
- ldr x15, [fp, #0x40] // [V55 tmp36]
+ ldr x15, [fp, #0x48] // [V55 tmp36]
; gcrRegs +[x15]
; GC ptr vars -{V55}
bl CORINFO_HELP_ASSIGN_REF
@@ -576,7 +576,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
bl CORINFO_HELP_NEWSFAST
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x38] // [V56 tmp37]
+ str x0, [fp, #0x40] // [V56 tmp37]
; GC ptr vars +{V56}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -586,7 +586,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
bl CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[x0]
; gcr arg pop 0
- ldr x1, [fp, #0x38] // [V56 tmp37]
+ ldr x1, [fp, #0x40] // [V56 tmp37]
; gcrRegs +[x1]
add x14, x1, #8
; byrRegs +[x14]
@@ -595,7 +595,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ldr x2, [fp, #0x58] // [V26 tmp7]
+ ldr x2, [fp, #0x60] // [V26 tmp7]
; gcrRegs +[x2]
add x14, x2, #32
; byrRegs +[x14]
@@ -607,7 +607,7 @@ G_M19993_IG22: ; bbWeight=0.50, gcrefRegs=14180000 {x19 x20 x26 x28}, byr
; byrRegs -[x14]
add x14, x2, #40
...
+0 (0.00%) : 145584.dasm - System.Data.ConstraintCollection:CompareArrays(System.Data.DataColumn[],System.Data.DataColumn[]):ubyte (FullOpts)
@@ -7,18 +7,18 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T08] ( 4, 3.25) ref -> x0 class-hnd single-def <System.Data.DataColumn[]>
-; V01 arg1 [V01,T09] ( 4, 3.25) ref -> x1 class-hnd single-def <System.Data.DataColumn[]>
-; V02 loc0 [V02,T05] ( 5, 13.50) int -> x4
-;* V03 loc1 [V03,T10] ( 0, 0 ) int -> zero-ref
-;* V04 loc2 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
+; V00 arg0 [V00,T07] ( 4, 3.25) ref -> x0 class-hnd single-def <System.Data.DataColumn[]>
+; V01 arg1 [V01,T08] ( 4, 3.25) ref -> x1 class-hnd single-def <System.Data.DataColumn[]>
+; V02 loc0 [V02,T04] ( 5, 13.50) int -> x4
+;* V03 loc1 [V03,T09] ( 0, 0 ) int -> zero-ref
+;* V04 loc2 [V04,T10] ( 0, 0 ) ubyte -> zero-ref
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 cse0 [V06,T06] ( 4, 7 ) int -> x3 "CSE #02: aggressive"
+; V06 cse0 [V06,T05] ( 4, 7 ) int -> x3 "CSE #02: aggressive"
; V07 cse1 [V07,T03] ( 2, 16.25) byref -> x5 hoist "CSE #03: aggressive"
-; V08 cse2 [V08,T04] ( 2, 16.25) byref -> x1 hoist "CSE #04: aggressive"
-; V09 cse3 [V09,T07] ( 4, 6.50) int -> x2 "CSE #01: aggressive"
+; V08 cse2 [V08,T11] ( 2, 1.25) byref -> x1 hoist "CSE #04: aggressive"
+; V09 cse3 [V09,T06] ( 4, 6.50) int -> x2 "CSE #01: aggressive"
; V10 cse4 [V10,T02] ( 2, 17 ) long -> x0 hoist "CSE #05: aggressive"
-; V11 rat0 [V11,T00] ( 4, 49 ) long -> x6 "Strength reduced derived IV"
+; V11 rat0 [V11,T00] ( 4, 49 ) byref -> x6 "Strength reduced derived IV"
; V12 rat1 [V12,T01] ( 4, 49 ) int -> x7 "Trip count IV"
;
; Lcl frame size = 0
@@ -53,13 +53,14 @@ G_M51459_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5}, b
;; size=8 bbWeight=4 PerfScore 6.00
G_M51459_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5}, byref
mov w0, w4
- mov x6, xzr
+ mov x6, x1
+ ; byrRegs +[x6]
sxtw w7, w3
;; size=12 bbWeight=1 PerfScore 1.50
-G_M51459_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5}, byref, isz
+G_M51459_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0062 {x1 x5 x6}, byref, isz
ldr x8, [x5, x0, LSL #3]
; gcrRegs +[x8]
- ldr x9, [x1, x6]
+ ldr x9, [x6]
; gcrRegs +[x9]
cmp x8, x9
beq G_M51459_IG10
@@ -69,7 +70,7 @@ G_M51459_IG07: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0022 {x1 x5},
;; size=28 bbWeight=16 PerfScore 152.00
G_M51459_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x8-x9]
- ; byrRegs -[x1 x5]
+ ; byrRegs -[x1 x5-x6]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M51459_IG09: ; bbWeight=0.50, epilog, nogc, extend
+0 (0.00%) : 146592.dasm - System.Data.DataSet:ReadXmlDiffgram(System.Xml.XmlReader):this (FullOpts)
@@ -15,26 +15,26 @@
; V04 loc2 [V04,T68] ( 3, 2 ) ubyte -> x23
; V05 loc3 [V05,T40] ( 13, 7 ) ref -> x25 class-hnd <System.Data.DataSet>
; V06 loc4 [V06,T66] ( 3, 2.50) ubyte -> x24
-; V07 loc5 [V07,T18] ( 15, 88 ) ref -> [fp+0x98] do-not-enreg[M] class-hnd EH-live <System.Collections.IEnumerator>
+; V07 loc5 [V07,T17] ( 15, 88 ) ref -> [fp+0xA0] do-not-enreg[M] class-hnd EH-live <System.Collections.IEnumerator>
; V08 loc6 [V08,T29] ( 22, 21.50) ref -> x0 class-hnd <<unknown class>>
-; V09 loc7 [V09,T80] ( 2, 1 ) ref -> [fp+0x90] class-hnd spill-single-def <System.Xml.XmlElement>
+; V09 loc7 [V09,T80] ( 2, 1 ) ref -> [fp+0x98] class-hnd spill-single-def <System.Xml.XmlElement>
; V10 loc8 [V10,T39] ( 3, 8 ) ref -> x19 class-hnd <System.Data.DataTable>
-; V11 loc9 [V11,T13] ( 4, 104 ) ref -> x19 class-hnd <System.Data.DataTable>
-; V12 loc10 [V12,T11] ( 4, 98 ) ref -> x21 class-hnd <System.Data.DataRelation[]>
-;* V13 loc11 [V13,T22] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation[]>
+; V11 loc9 [V11,T12] ( 4, 104 ) ref -> x19 class-hnd <System.Data.DataTable>
+; V12 loc10 [V12,T10] ( 4, 98 ) ref -> x21 class-hnd <System.Data.DataRelation[]>
+;* V13 loc11 [V13,T21] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation[]>
;* V14 loc12 [V14,T25] ( 0, 0 ) int -> zero-ref
-; V15 loc13 [V15,T02] ( 6,1072 ) ref -> [fp+0x88] do-not-enreg[Z] class-hnd exact EH-live <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
-; V16 loc14 [V16,T04] ( 2, 544 ) ref -> [fp+0x80] class-hnd spill-single-def <System.Data.DataRow>
+; V15 loc13 [V15,T02] ( 6,1072 ) ref -> [fp+0x90] do-not-enreg[Z] class-hnd exact EH-live <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
+; V16 loc14 [V16,T04] ( 2, 544 ) ref -> [fp+0x88] class-hnd spill-single-def <System.Data.DataRow>
;* V17 loc15 [V17,T24] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation[]>
;* V18 loc16 [V18,T26] ( 0, 0 ) int -> zero-ref
;* V19 loc17 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.DataRelation>
;# V20 OutArgs [V20 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V21 tmp1 [V21,T52] ( 3, 5 ) ref -> x21 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
;* V22 tmp2 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Data.XMLDiffLoader>
-; V23 tmp3 [V23,T56] ( 3, 3 ) ref -> [fp+0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlDocument>
+; V23 tmp3 [V23,T56] ( 3, 3 ) ref -> [fp+0x80] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlDocument>
;* V24 tmp4 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
;* V25 tmp5 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
-; V26 tmp6 [V26,T38] ( 8, 8 ) ref -> [fp+0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.XmlDataLoader>
+; V26 tmp6 [V26,T38] ( 8, 8 ) ref -> [fp+0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.XmlDataLoader>
; V27 tmp7 [V27,T69] ( 3, 2 ) long -> x23 "Inline return value spill temp"
; V28 tmp8 [V28,T65] ( 2, 3 ) int -> x22 "Inlining Arg"
; V29 tmp9 [V29,T57] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Int32>
@@ -53,28 +53,28 @@
;* V42 tmp22 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V43 tmp23 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V44 tmp24 [V44 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V45 tmp25 [V45,T43] ( 7, 6.36) ref -> [fp+0x68] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V45 tmp25 [V45,T43] ( 7, 6.36) ref -> [fp+0x70] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V46 tmp26 [V46 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V47 tmp27 [V47,T83] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V48 tmp28 [V48 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V49 tmp29 [V49 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V50 tmp30 [V50 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V51 tmp31 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V52 tmp32 [V52,T44] ( 7, 6.36) ref -> [fp+0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V52 tmp32 [V52,T44] ( 7, 6.36) ref -> [fp+0x68] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V53 tmp33 [V53 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V54 tmp34 [V54,T84] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V55 tmp35 [V55 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V56 tmp36 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp37 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V58 tmp38 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V59 tmp39 [V59,T58] ( 3, 3 ) ref -> [fp+0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlImplementation>
-; V60 tmp40 [V60,T59] ( 3, 3 ) ref -> [fp+0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.NameTable>
-; V61 tmp41 [V61,T60] ( 3, 3 ) ref -> [fp+0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Hashtable>
-; V62 tmp42 [V62,T61] ( 3, 3 ) ref -> [fp+0x40] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V59 tmp39 [V59,T58] ( 3, 3 ) ref -> [fp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlImplementation>
+; V60 tmp40 [V60,T59] ( 3, 3 ) ref -> [fp+0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.NameTable>
+; V61 tmp41 [V61,T60] ( 3, 3 ) ref -> [fp+0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Hashtable>
+; V62 tmp42 [V62,T61] ( 3, 3 ) ref -> [fp+0x48] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
;* V63 tmp43 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V64 tmp44 [V64,T54] ( 5, 3 ) ref -> x0 single-def "spilling varStr"
;* V65 tmp45 [V65 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V66 tmp46 [V66,T45] ( 7, 6.36) ref -> [fp+0x38] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V66 tmp46 [V66,T45] ( 7, 6.36) ref -> [fp+0x40] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V67 tmp47 [V67 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V68 tmp48 [V68,T85] ( 2, 1 ) ubyte -> x0 "Inline return value spill temp"
;* V69 tmp49 [V69 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
@@ -94,9 +94,9 @@
;* V83 tmp63 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataTableCollection>
;* V84 tmp64 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataTableCollection>
;* V85 tmp65 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataRowCollection>
-; V86 tmp66 [V86,T21] ( 4, 64 ) ref -> [fp+0x30] class-hnd exact spill-single-def "Inlining Arg" <System.Data.DataRowCollection+DataRowTree>
+; V86 tmp66 [V86,T20] ( 4, 64 ) ref -> [fp+0x38] class-hnd exact spill-single-def "Inlining Arg" <System.Data.DataRowCollection+DataRowTree>
;* V87 tmp67 [V87 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
-; V88 tmp68 [V88,T12] ( 7, 112 ) ref -> x0 class-hnd exact "Single-def Box Helper" <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
+; V88 tmp68 [V88,T11] ( 7, 112 ) ref -> x0 class-hnd exact "Single-def Box Helper" <System.Data.RBTree`1+RBTreeEnumerator[System.Data.DataRow]>
;* V89 tmp69 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V90 tmp70 [V90,T53] ( 5, 4.50) ref -> x14 single-def "spilling varStr"
; V91 tmp71 [V91,T76] ( 2, 2 ) int -> x14 "spilling unroll qmark"
@@ -112,8 +112,8 @@
; V101 tmp81 [V101,T48] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
; V102 tmp82 [V102,T30] ( 3, 18 ) ref -> x0 "argument with side effect"
; V103 tmp83 [V103,T77] ( 2, 2 ) int -> x1 "argument with side effect"
-; V104 tmp84 [V104,T71] ( 2, 2 ) ref -> [fp+0x28] spill-single-def "argument with side effect"
-; V105 tmp85 [V105,T72] ( 2, 2 ) ref -> [fp+0x20] spill-single-def "argument with side effect"
+; V104 tmp84 [V104,T71] ( 2, 2 ) ref -> [fp+0x30] spill-single-def "argument with side effect"
+; V105 tmp85 [V105,T72] ( 2, 2 ) ref -> [fp+0x28] spill-single-def "argument with side effect"
; V106 tmp86 [V106,T73] ( 2, 2 ) ref -> x3 single-def "argument with side effect"
; V107 tmp87 [V107,T78] ( 2, 2 ) int -> x1 "argument with side effect"
; V108 tmp88 [V108,T79] ( 2, 2 ) int -> x1 "argument with side effect"
@@ -121,31 +121,31 @@
; V110 tmp90 [V110,T62] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V111 tmp91 [V111,T31] ( 3, 18 ) ref -> x0 "argument with side effect"
; V112 tmp92 [V112,T63] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-; V113 tmp93 [V113,T09] ( 3, 144 ) ref -> x0 "argument with side effect"
-; V114 tmp94 [V114,T08] ( 3, 192 ) ref -> x0 "argument with side effect"
-; V115 tmp95 [V115,T10] ( 3, 144 ) ref -> x0 "argument with side effect"
+; V113 tmp93 [V113,T08] ( 3, 144 ) ref -> x0 "argument with side effect"
+; V114 tmp94 [V114,T07] ( 3, 192 ) ref -> x0 "argument with side effect"
+; V115 tmp95 [V115,T09] ( 3, 144 ) ref -> x0 "argument with side effect"
; V116 PSPSym [V116,T87] ( 1, 1 ) long -> [fp+0xC8] do-not-enreg[V] "PSPSym"
; V117 cse0 [V117,T64] ( 3, 3 ) ref -> x0 "CSE #05: moderate"
;* V118 cse1 [V118,T81] ( 0, 0 ) byref -> zero-ref multi-def "CSE #02: moderate"
; V119 cse2 [V119,T34] ( 16, 12.50) long -> x21 "CSE #08: moderate"
; V120 cse3 [V120,T50] ( 4, 5.50) long -> x28 "CSE #18: moderate"
; V121 cse4 [V121,T51] ( 8, 5 ) long -> x27 "CSE #11: moderate"
-; V122 cse5 [V122,T16] ( 4, 98 ) int -> x22 "CSE #21: aggressive"
-; V123 cse6 [V123,T05] ( 2, 544 ) byref -> [fp+0x18] spill-single-def "CSE #23: aggressive"
-; V124 cse7 [V124,T03] ( 3,1056 ) byref -> [fp+0x10] spill-single-def "CSE #22: aggressive"
-; V125 cse8 [V125,T14] ( 19, 101.50) long -> x26 multi-def "CSE #06: aggressive"
-; V126 rat0 [V126,T15] ( 4, 98 ) byref -> x27 "Strength reduced derived IV"
-; V127 rat1 [V127,T17] ( 4, 98 ) int -> x28 "Trip count IV"
-; V128 rat2 [V128,T00] ( 4,1568 ) long -> [fp+0xA8] "Strength reduced derived IV"
-; V129 rat3 [V129,T01] ( 4,1568 ) int -> [fp+0xA4] "Trip count IV"
+; V122 cse5 [V122,T15] ( 4, 98 ) int -> x22 "CSE #21: aggressive"
+; V123 cse6 [V123,T22] ( 2, 64 ) byref -> [fp+0x20] spill-single-def "CSE #23: aggressive"
+; V124 cse7 [V124,T03] ( 3,1056 ) byref -> [fp+0x18] spill-single-def "CSE #22: aggressive"
+; V125 cse8 [V125,T13] ( 19, 101.50) long -> x26 multi-def "CSE #06: aggressive"
+; V126 rat0 [V126,T14] ( 4, 98 ) byref -> x27 "Strength reduced derived IV"
+; V127 rat1 [V127,T16] ( 4, 98 ) int -> x28 "Trip count IV"
+; V128 rat2 [V128,T00] ( 4,1568 ) byref -> [fp+0x10] "Strength reduced derived IV"
+; V129 rat3 [V129,T01] ( 4,1568 ) int -> [fp+0xAC] "Trip count IV"
; V130 rat4 [V130,T27] ( 5, 30 ) ref -> x2 "replacement local"
; V131 rat5 [V131,T36] ( 3, 10 ) long -> x3 "CSE for expectedClsNode"
; V132 rat6 [V132,T28] ( 5, 30 ) ref -> x19 "replacement local"
; V133 rat7 [V133,T37] ( 3, 10 ) long -> x2 "CSE for expectedClsNode"
-; V134 rat8 [V134,T06] ( 5, 240 ) ref -> x19 "replacement local"
-; V135 rat9 [V135,T19] ( 3, 80 ) long -> x2 "CSE for expectedClsNode"
-; V136 rat10 [V136,T07] ( 5, 240 ) ref -> x2 "replacement local"
-; V137 rat11 [V137,T20] ( 3, 80 ) long -> x3 "CSE for expectedClsNode"
+; V134 rat8 [V134,T05] ( 5, 240 ) ref -> x19 "replacement local"
+; V135 rat9 [V135,T18] ( 3, 80 ) long -> x2 "CSE for expectedClsNode"
+; V136 rat10 [V136,T06] ( 5, 240 ) ref -> x2 "replacement local"
+; V137 rat11 [V137,T19] ( 3, 80 ) long -> x3 "CSE for expectedClsNode"
; V138 rat12 [V138,T90] ( 3, 3 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
; V139 rat13 [V139,T91] ( 3, 3 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
;
@@ -302,12 +302,12 @@ G_M20677_IG10: ; bbWeight=1, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0
ldr x1, [x1]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x98] // [V07 loc5]
+ str x0, [fp, #0xA0] // [V07 loc5]
; GC ptr vars +{V07}
;; size=28 bbWeight=1 PerfScore 17.00
-G_M20677_IG11: ; bbWeight=8, gcVars=00000000000000000000000000040000 {V07}, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M20677_IG11: ; bbWeight=8, gcVars=00000000000000000000000000020000 {V07}, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x98] // [V07 loc5]
+ ldr x0, [fp, #0xA0] // [V07 loc5]
; gcrRegs +[x0]
movz x26, #0xD1FFAB1E // code for <unknown method>
movk x26, #0xD1FFAB1E LSL #16
@@ -320,7 +320,7 @@ G_M20677_IG11: ; bbWeight=8, gcVars=00000000000000000000000000040000 {V07
cbz w0, G_M20677_IG16
;; size=32 bbWeight=8 PerfScore 72.00
G_M20677_IG12: ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x98] // [V07 loc5]
+ ldr x0, [fp, #0xA0] // [V07 loc5]
; gcrRegs +[x0]
add x11, x26, #8
ldr xip0, [x11]
@@ -359,7 +359,7 @@ G_M20677_IG15: ; bbWeight=4, gcrefRegs=2180004 {x2 x19 x20 x25}, byrefReg
;; size=12 bbWeight=4 PerfScore 20.00
G_M20677_IG16: ; bbWeight=1, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1-x2]
- ldr x1, [fp, #0x98] // [V07 loc5]
+ ldr x1, [fp, #0xA0] // [V07 loc5]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -522,7 +522,7 @@ G_M20677_IG27: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
; gcr arg pop 0
mov x2, x0
; gcrRegs +[x2]
- str x2, [fp, #0x68] // [V45 tmp25]
+ str x2, [fp, #0x70] // [V45 tmp25]
; GC ptr vars +{V45}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -558,7 +558,7 @@ G_M20677_IG30: ; bbWeight=0.29, gcrefRegs=2180004 {x2 x19 x20 x25}, byref
; gcr arg pop 0
;; size=56 bbWeight=0.29 PerfScore 3.83
G_M20677_IG31: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
- ldr x2, [fp, #0x68] // [V45 tmp25]
+ ldr x2, [fp, #0x70] // [V45 tmp25]
; gcrRegs +[x2]
ldr w1, [x2, #0x08]
lsl w1, w1, #1
@@ -567,7 +567,7 @@ G_M20677_IG31: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- ldr x0, [fp, #0x68] // [V45 tmp25]
+ ldr x0, [fp, #0x70] // [V45 tmp25]
; gcrRegs +[x0]
add x0, x0, #12
; gcrRegs -[x0]
@@ -590,7 +590,7 @@ G_M20677_IG32: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
; gcr arg pop 0
mov x2, x0
; gcrRegs +[x2]
- str x2, [fp, #0x60] // [V52 tmp32]
+ str x2, [fp, #0x68] // [V52 tmp32]
; GC ptr vars +{V52}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -626,7 +626,7 @@ G_M20677_IG35: ; bbWeight=0.29, gcrefRegs=2180004 {x2 x19 x20 x25}, byref
; gcr arg pop 0
;; size=56 bbWeight=0.29 PerfScore 3.83
G_M20677_IG36: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
- ldr x2, [fp, #0x60] // [V52 tmp32]
+ ldr x2, [fp, #0x68] // [V52 tmp32]
; gcrRegs +[x2]
ldr w1, [x2, #0x08]
lsl w1, w1, #1
@@ -635,7 +635,7 @@ G_M20677_IG36: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- ldr x0, [fp, #0x60] // [V52 tmp32]
+ ldr x0, [fp, #0x68] // [V52 tmp32]
; gcrRegs +[x0]
add x0, x0, #12
; gcrRegs -[x0]
@@ -657,7 +657,7 @@ G_M20677_IG37: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x78] // [V23 tmp3]
+ str x0, [fp, #0x80] // [V23 tmp3]
; GC ptr vars +{V23}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -666,7 +666,7 @@ G_M20677_IG37: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x58] // [V59 tmp39]
+ str x0, [fp, #0x60] // [V59 tmp39]
; GC ptr vars +{V59}
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
@@ -677,7 +677,7 @@ G_M20677_IG37: ; bbWeight=0.50, gcrefRegs=2180000 {x19 x20 x25}, byrefReg
; gcr arg pop 0
...
libraries_tests.run.windows.arm64.Release.mch
-16 (-13.33%) : 439476.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
@@ -8,24 +8,23 @@
; with Dynamic PGO: fgCalledCount is 2
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T05] ( 3, 2.97) ref -> x0 class-hnd exact single-def <System.String>
+; V00 arg0 [V00,T03] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
+; V01 loc0 [V01,T04] ( 3, 2.97) ref -> x0 class-hnd exact single-def <System.String>
;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T02] ( 3,102.00) ushort -> x0
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T03] ( 2, 34.97) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.97) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T00] ( 4,102.97) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T06] ( 2, 1.94) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.97) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T00] ( 4,102.97) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4,102.97) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35714_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -35,11 +34,10 @@ G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M35714_IG03: ; bbWeight=0.97, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.97 PerfScore 0.97
+ ;; size=4 bbWeight=0.97 PerfScore 0.49
G_M35714_IG04: ; bbWeight=34.00, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cbz w0, G_M35714_IG05
movz x1, #0xD1FFAB1E // code for System.Reflection.Emit.TypeNameBuilder:IsTypeNameReservedChar(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -47,7 +45,7 @@ G_M35714_IG04: ; bbWeight=34.00, gcrefRegs=0000 {}, byrefRegs=100000 {x20
ldr x1, [x1]
blr x1
cbnz w0, G_M35714_IG07
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M35714_IG04
;; size=44 bbWeight=34.00 PerfScore 425.00
@@ -56,22 +54,20 @@ G_M35714_IG05: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=1.00 PerfScore 0.50
G_M35714_IG06: ; bbWeight=1.00, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1.00 PerfScore 5.00
+ ;; size=12 bbWeight=1.00 PerfScore 3.00
G_M35714_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M35714_IG08: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 16, PerfScore 439.47, instruction count 30, allocated bytes for code 120 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
+; Total bytes of code 104, prolog size 12, PerfScore 435.99, instruction count 26, allocated bytes for code 104 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.33%) : 517469.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
@@ -8,24 +8,23 @@
; with Dynamic PGO: fgCalledCount is 56
; Final local variable assignments
;
-; V00 arg0 [V00,T04] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
-; V01 loc0 [V01,T05] ( 3, 2.98) ref -> x0 class-hnd exact single-def <System.String>
+; V00 arg0 [V00,T03] ( 3, 3 ) ref -> x0 class-hnd single-def <System.String>
+; V01 loc0 [V01,T04] ( 3, 2.98) ref -> x0 class-hnd exact single-def <System.String>
;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
; V03 loc2 [V03,T02] ( 3,130.93) ushort -> x0
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 cse0 [V05,T03] ( 2, 44.62) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.98) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T00] ( 4,131.91) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T06] ( 2, 1.96) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.98) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T00] ( 4,131.91) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T01] ( 4,131.91) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35714_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr w19, [x0, #0x08]
@@ -35,11 +34,10 @@ G_M35714_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M35714_IG03: ; bbWeight=0.98, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.98 PerfScore 0.98
+ ;; size=4 bbWeight=0.98 PerfScore 0.49
G_M35714_IG04: ; bbWeight=43.64, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cbz w0, G_M35714_IG05
movz x1, #0xD1FFAB1E // code for System.Reflection.Emit.TypeNameBuilder:IsTypeNameReservedChar(ushort):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -47,7 +45,7 @@ G_M35714_IG04: ; bbWeight=43.64, gcrefRegs=0000 {}, byrefRegs=100000 {x20
ldr x1, [x1]
blr x1
cbnz w0, G_M35714_IG07
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M35714_IG04
;; size=44 bbWeight=43.64 PerfScore 545.54
@@ -56,22 +54,20 @@ G_M35714_IG05: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=1.00 PerfScore 0.50
G_M35714_IG06: ; bbWeight=1.00, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=1.00 PerfScore 5.00
+ ;; size=12 bbWeight=1.00 PerfScore 3.00
G_M35714_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M35714_IG08: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 120, prolog size 16, PerfScore 560.01, instruction count 30, allocated bytes for code 120 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
+; Total bytes of code 104, prolog size 12, PerfScore 556.52, instruction count 26, allocated bytes for code 104 (MethodHash=6c0a747d) for method System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-12 (-9.68%) : 321836.dasm - System.Linq.Parallel.MergeExecutor`1[long]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[long][] (Tier1)
@@ -15,20 +15,19 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 2, 8.00) ref -> x15 class-hnd exact "NewObj constructor temp" <System.Linq.Parallel.SynchronousChannel`1[long]>
; V05 cse0 [V05,T04] ( 3, 4.00) long -> x19 "CSE #01: aggressive"
-; V06 cse1 [V06,T07] ( 2, 2.67) byref -> x22 hoist "CSE #02: aggressive"
+; V06 cse1 [V06,T07] ( 2, 1.33) byref -> x22 hoist "CSE #02: aggressive"
; V07 cse2 [V07,T06] ( 3, 2.67) int -> x21 "CSE #03: moderate"
-; V08 rat0 [V08,T01] ( 4, 6.67) long -> x23 "Strength reduced derived IV"
+; V08 rat0 [V08,T01] ( 4, 6.67) byref -> x22 "Strength reduced derived IV"
; V09 rat1 [V09,T02] ( 4, 6.67) int -> x21 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M16160_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M16160_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
sxtw x1, w0
movz x19, #0xD1FFAB1E
@@ -48,8 +47,7 @@ G_M16160_IG03: ; bbWeight=0.67, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
; gcrRegs -[x0]
add x22, x20, #16
; byrRegs +[x22]
- mov x23, xzr
- ;; size=8 bbWeight=0.67 PerfScore 0.67
+ ;; size=4 bbWeight=0.67 PerfScore 0.33
G_M16160_IG04: ; bbWeight=2.00, gcrefRegs=100000 {x20}, byrefRegs=400000 {x22}, byref, isz
mov x0, x19
bl CORINFO_HELP_NEWSFAST
@@ -57,12 +55,12 @@ G_M16160_IG04: ; bbWeight=2.00, gcrefRegs=100000 {x20}, byrefRegs=400000
; gcr arg pop 0
mov x15, x0
; gcrRegs +[x15]
- add x14, x22, x23
+ mov x14, x22
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- add x23, x23, #8
+ add x22, x22, #8
sub w21, w21, #1
cbnz w21, G_M16160_IG04
;; size=32 bbWeight=2.00 PerfScore 11.00
@@ -72,14 +70,13 @@ G_M16160_IG05: ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
; gcrRegs +[x0]
;; size=4 bbWeight=1.00 PerfScore 0.50
G_M16160_IG06: ; bbWeight=1.00, epilog, nogc, extend
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=1.00 PerfScore 6.00
+ ;; size=16 bbWeight=1.00 PerfScore 4.00
-; Total bytes of code 124, prolog size 20, PerfScore 31.17, instruction count 31, allocated bytes for code 124 (MethodHash=8accc0df) for method System.Linq.Parallel.MergeExecutor`1[long]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[long][] (Tier1)
+; Total bytes of code 112, prolog size 16, PerfScore 27.83, instruction count 28, allocated bytes for code 112 (MethodHash=8accc0df) for method System.Linq.Parallel.MergeExecutor`1[long]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[long][] (Tier1)
; ============================================================
Unwind Info:
@@ -90,7 +87,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 124 (0x00007c)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -98,9 +95,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
+4 (+0.18%) : 155622.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
@@ -23,7 +23,7 @@
; V11 loc4 [V11,T24] ( 3, 2.17) int -> x19
; V12 loc5 [V12,T16] ( 10, 3.27) int -> x23
; V13 loc6 [V13,T35] ( 5, 1.41) int -> x24
-; V14 loc7 [V14,T33] ( 9, 1.64) ref -> x27 class-hnd exact <System.Reflection.RuntimePropertyInfo>
+; V14 loc7 [V14,T33] ( 9, 1.64) ref -> x26 class-hnd exact <System.Reflection.RuntimePropertyInfo>
; V15 loc8 [V15 ] ( 2, 0.64) ubyte -> [fp+0xB0] do-not-enreg[X] addr-exposed ld-addr-op
;* V16 loc9 [V16 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.MdUtf8String>
;* V17 loc10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodInfo>
@@ -36,7 +36,7 @@
;# V24 OutArgs [V24 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V25 tmp1 [V25,T26] ( 4, 2 ) int -> x0
; V26 tmp2 [V26,T25] ( 3, 2.09) ref -> x0 class-hnd exact "dup spill" <int[]>
-; V27 tmp3 [V27,T31] ( 3, 1.95) ref -> x27 class-hnd exact "NewObj constructor temp" <System.Reflection.RuntimePropertyInfo>
+; V27 tmp3 [V27,T31] ( 3, 1.95) ref -> x26 class-hnd exact "NewObj constructor temp" <System.Reflection.RuntimePropertyInfo>
; V28 tmp4 [V28,T39] ( 2, 1.28) ref -> x24 class-hnd "dup spill" <System.Reflection.MethodInfo>
; V29 tmp5 [V29,T32] ( 12, 1.78) ref -> x24
; V30 tmp6 [V30,T38] ( 3, 1.39) ref -> [fp+0x18] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]>
@@ -110,14 +110,14 @@
; V98 tmp74 [V98,T42] ( 2, 0.93) int -> x0 "argument with side effect"
; V99 tmp75 [V99,T54] ( 3, 0.41) ref -> x1 "arr expr"
; V100 tmp76 [V100,T59] ( 2, 0.27) ref -> x1 "argument with side effect"
-; V101 cse0 [V101,T50] ( 2, 0.70) int -> x27 hoist "CSE #08: moderate"
+; V101 cse0 [V101,T50] ( 2, 0.70) int -> x26 hoist "CSE #08: moderate"
; V102 cse1 [V102,T53] ( 2, 0.47) int -> x12 "CSE #13: conservative"
; V103 cse2 [V103,T55] ( 3, 0.35) long -> x0 "CSE #12: conservative"
; V104 cse3 [V104,T20] ( 3, 3 ) int -> x0 "CSE #01: moderate"
; V105 cse4 [V105,T22] ( 3, 2.99) int -> x0 "CSE #02: moderate"
-; V106 cse5 [V106,T49] ( 2, 0.70) byref -> x26 hoist "CSE #07: moderate"
-; V107 rat0 [V107,T36] ( 4, 1.40) long -> x2 "Strength reduced derived IV"
-; V108 rat1 [V108,T37] ( 4, 1.40) int -> x28 "Trip count IV"
+; V106 cse5 [V106,T49] ( 2, 0.70) byref -> x2 hoist "CSE #07: moderate"
+; V107 rat0 [V107,T36] ( 4, 1.40) byref -> x2 "Strength reduced derived IV"
+; V108 rat1 [V108,T37] ( 4, 1.40) int -> x27 "Trip count IV"
; V109 rat2 [V109,T51] ( 2, 0.35) ref -> x0 "replacement local"
; V110 rat3 [V110,T57] ( 3, 0.35) long -> x2 "CSE for expectedClsNode"
;
@@ -413,21 +413,20 @@ G_M9628_IG19: ; bbWeight=0.35, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
; gcr arg pop 0
mov w1, #0xD1FFAB1E
str w1, [x0, #0x10]
- add x26, x0, #16
- ; byrRegs +[x26]
- and w27, w24, #0xD1FFAB1E
- mov x2, xzr
- mov w28, #1
- ;; size=84 bbWeight=0.35 PerfScore 5.06
-G_M9628_IG20: ; bbWeight=0.35, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref, isz
+ add x2, x0, #16
+ ; byrRegs +[x2]
+ and w26, w24, #0xD1FFAB1E
+ mov w27, #1
+ ;; size=80 bbWeight=0.35 PerfScore 4.88
+G_M9628_IG20: ; bbWeight=0.35, gcrefRegs=100000 {x20}, byrefRegs=0004 {x2}, byref, isz
; gcrRegs -[x0]
- ldr w0, [x26, x2]
- cmp w0, w27
+ ldr w0, [x2]
+ cmp w0, w26
bne G_M9628_IG37
mov w0, #1
;; size=16 bbWeight=0.35 PerfScore 1.74
G_M9628_IG21: ; bbWeight=0.35, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x26]
+ ; byrRegs -[x2]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -437,30 +436,30 @@ G_M9628_IG21: ; bbWeight=0.35, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
ldr x2, [x2]
blr x2
; gcr arg pop 0
- ldr x26, [fp, #0x50] // [V01 arg1]
- ; byrRegs +[x26]
- ldr w0, [x26, #0x10]
+ ldr x28, [fp, #0x50] // [V01 arg1]
+ ; byrRegs +[x28]
+ ldr w0, [x28, #0x10]
cmp w0, #1
beq G_M9628_IG24
;; size=48 bbWeight=0.35 PerfScore 4.71
-G_M9628_IG22: ; bbWeight=0.21, gcVars=00000000000000000000000000020170 {V00 V03 V06 V08 V76}, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, gcvars, byref, isz
+G_M9628_IG22: ; bbWeight=0.21, gcVars=00000000000000000000000000020170 {V00 V03 V06 V08 V76}, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; GC ptr vars -{V01 V05}
- ldr w0, [x26, #0x10]
+ ldr w0, [x28, #0x10]
cmp w0, #2
bne G_M9628_IG25
;; size=12 bbWeight=0.21 PerfScore 0.94
-G_M9628_IG23: ; bbWeight=0.02, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref
+G_M9628_IG23: ; bbWeight=0.02, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, byref
ldr x22, [fp, #0x40] // [V03 arg3]
; gcrRegs +[x22]
b G_M9628_IG38
;; size=8 bbWeight=0.02 PerfScore 0.07
-G_M9628_IG24: ; bbWeight=0.14, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref
+G_M9628_IG24: ; bbWeight=0.14, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, byref
; gcrRegs -[x22]
ldr x22, [fp, #0x40] // [V03 arg3]
; gcrRegs +[x22]
b G_M9628_IG38
;; size=8 bbWeight=0.14 PerfScore 0.42
-G_M9628_IG25: ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG25: ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, byref, isz
; gcrRegs -[x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -468,14 +467,14 @@ G_M9628_IG25: ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=4000000
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x27, x0
+ mov x26, x0
+ ; gcrRegs +[x26]
+ ldr x27, [fp, #0x58] // [V00 this]
; gcrRegs +[x27]
- ldr x28, [fp, #0x58] // [V00 this]
- ; gcrRegs +[x28]
- ldr x3, [x28, #0x10]
+ ldr x3, [x27, #0x10]
; gcrRegs +[x3]
add x4, fp, #176 // [V15 loc8]
- mov x0, x27
+ mov x0, x26
mov w1, w24
mov x2, x20
; gcrRegs +[x2]
@@ -490,8 +489,8 @@ G_M9628_IG25: ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=4000000
tst w21, #255
bne G_M9628_IG49
;; size=72 bbWeight=0.32 PerfScore 5.51
-G_M9628_IG26: ; bbWeight=0.32, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
- ldr x0, [x28, #0x10]
+G_M9628_IG26: ; bbWeight=0.32, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
+ ldr x0, [x27, #0x10]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
cmp x20, x0
@@ -500,7 +499,7 @@ G_M9628_IG26: ; bbWeight=0.32, gcrefRegs=18100000 {x20 x27 x28}, byrefReg
ldrb w1, [fp, #0xB0] // [V15 loc8]
tst w0, w1
bne G_M9628_IG50
- mov x0, x27
+ mov x0, x26
; gcrRegs +[x0]
mov w1, wzr
movz x2, #0xD1FFAB1E
@@ -514,11 +513,11 @@ G_M9628_IG26: ; bbWeight=0.32, gcrefRegs=18100000 {x20 x27 x28}, byrefReg
; gcrRegs +[x24]
cbz x24, G_M9628_IG40
;; size=68 bbWeight=0.32 PerfScore 6.87
-G_M9628_IG27: ; bbWeight=0.32, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG27: ; bbWeight=0.32, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
; gcrRegs -[x0]
cbz x24, G_M9628_IG33
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M9628_IG28: ; bbWeight=0.09, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG28: ; bbWeight=0.09, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
mov x0, x24
; gcrRegs +[x0]
movz x2, #0xD1FFAB1E
@@ -529,7 +528,7 @@ G_M9628_IG28: ; bbWeight=0.09, gcrefRegs=19100000 {x20 x24 x27 x28}, byre
cmp x0, x2
bne G_M9628_IG59
;; size=28 bbWeight=0.09 PerfScore 0.56
-G_M9628_IG29: ; bbWeight=0.17, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG29: ; bbWeight=0.17, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
mov w0, #1
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -548,7 +547,7 @@ G_M9628_IG29: ; bbWeight=0.17, gcrefRegs=19100000 {x20 x24 x27 x28}, byre
cmp w2, w19
bge G_M9628_IG33
;; size=60 bbWeight=0.17 PerfScore 2.51
-G_M9628_IG30: ; bbWeight=0.12, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG30: ; bbWeight=0.12, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
ldr x0, [x24]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -557,7 +556,7 @@ G_M9628_IG30: ; bbWeight=0.12, gcrefRegs=19100000 {x20 x24 x27 x28}, byre
bne G_M9628_IG58
ldr w3, [x24, #0x5C]
;; size=28 bbWeight=0.12 PerfScore 1.10
-G_M9628_IG31: ; bbWeight=0.12, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG31: ; bbWeight=0.12, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
; gcrRegs -[x24]
tst w3, #64
cset x0, ne
@@ -579,22 +578,22 @@ G_M9628_IG31: ; bbWeight=0.12, gcrefRegs=18100000 {x20 x27 x28}, byrefReg
ldrb w1, [x24, x0]
cbnz w1, G_M9628_IG36
;; size=68 bbWeight=0.12 PerfScore 2.20
-G_M9628_IG32: ; bbWeight=0.11, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=5000000 {x24 x26}, gcvars, byref
+G_M9628_IG32: ; bbWeight=0.11, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=11000000 {x24 x28}, gcvars, byref
; GC ptr vars -{V76}
mov w1, #1
strb w1, [x24, x0]
str x24, [fp, #0x10] // [V76 tmp52]
; GC ptr vars +{V76}
;; size=12 bbWeight=0.11 PerfScore 0.27
-G_M9628_IG33: ; bbWeight=0.31, gcVars=00000000000000000000000000020150 {V03 V06 V08 V76}, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000000 {x26}, gcvars, byref, isz
+G_M9628_IG33: ; bbWeight=0.31, gcVars=00000000000000000000000000020150 {V03 V06 V08 V76}, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; byrRegs -[x24]
ldr x22, [fp, #0x40] // [V03 arg3]
; gcrRegs +[x22]
cbz x22, G_M9628_IG52
;; size=8 bbWeight=0.31 PerfScore 0.92
-G_M9628_IG34: ; bbWeight=0.30, gcVars=00000000000000000000000000020140 {V06 V08 V76}, gcrefRegs=18500000 {x20 x22 x27 x28}, byrefRegs=4000000 {x26}, gcvars, byref, isz
+G_M9628_IG34: ; bbWeight=0.30, gcVars=00000000000000000000000000020140 {V06 V08 V76}, gcrefRegs=C500000 {x20 x22 x26 x27}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; GC ptr vars -{V03}
- mov x0, x27
+ mov x0, x26
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Reflection.RuntimePropertyInfo:get_Name():System.String:this
movk x1, #0xD1FFAB1E LSL #16
@@ -619,7 +618,7 @@ G_M9628_IG34: ; bbWeight=0.30, gcVars=00000000000000000000000000020140 {V
; gcr arg pop 0
cbz x0, G_M9628_IG41
;; size=64 bbWeight=0.30 PerfScore 4.50
-G_M9628_IG35: ; bbWeight=0.16, gcVars=00000000000000000000000000020140 {V06 V08 V76}, gcrefRegs=18500000 {x20 x22 x27 x28}, byrefRegs=4000001 {x0 x26}, gcvars, byref
+G_M9628_IG35: ; bbWeight=0.16, gcVars=00000000000000000000000000020140 {V06 V08 V76}, gcrefRegs=C500000 {x20 x22 x26 x27}, byrefRegs=10000001 {x0 x28}, gcvars, byref
; GC ptr vars -{V19}
ldr x2, [x0]
; gcrRegs +[x2]
@@ -627,27 +626,31 @@ G_M9628_IG35: ; bbWeight=0.16, gcVars=00000000000000000000000000020140 {V
; GC ptr vars +{V20}
b G_M9628_IG42
;; size=12 bbWeight=0.16 PerfScore 0.81
-G_M9628_IG36: ; bbWeight=0.01, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=10100000 {x20 x28}, byrefRegs=5000000 {x24 x26}, gcvars, byref
- ; gcrRegs -[x2 x22 x27]
+G_M9628_IG36: ; bbWeight=0.01, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=8100000 {x20 x27}, byrefRegs=11000000 {x24 x28}, gcvars, byref
+ ; gcrRegs -[x2 x22 x26]
; byrRegs -[x0] +[x24]
; GC ptr vars -{V20 V76} +{V03}
str x24, [fp, #0x10] // [V76 tmp52]
; GC ptr vars +{V76}
b G_M9628_IG50
;; size=8 bbWeight=0.01 PerfScore 0.02
-G_M9628_IG37: ; bbWeight=0.35, gcVars=00000000000000000000000000020172 {V00 V01 V03 V06 V08 V76}, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, gcvars, byref, isz
- ; gcrRegs -[x28]
- ; byrRegs -[x24]
+G_M9628_IG37: ; bbWeight=0.35, gcVars=00000000000000000000000000020172 {V00 V01 V03 V06 V08 V76}, gcrefRegs=100000 {x20}, byrefRegs=0004 {x2}, gcvars, byref, isz
+ ; gcrRegs -[x27]
+ ; byrRegs -[x24 x28] +[x2]
; GC ptr vars +{V00 V01 V05}
ldr x22, [fp, #0x40] // [V03 arg3]
; gcrRegs +[x22]
+ ldr x28, [fp, #0x50] // [V01 arg1]
+ ; byrRegs +[x28]
add x2, x2, #4
...
+4 (+0.19%) : 215170.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
@@ -23,7 +23,7 @@
; V11 loc4 [V11,T26] ( 3, 2.23) int -> x19
; V12 loc5 [V12,T15] ( 10, 3.88) int -> x23
; V13 loc6 [V13,T36] ( 5, 1.65) int -> x24
-; V14 loc7 [V14,T35] ( 9, 1.76) ref -> x27 class-hnd exact <System.Reflection.RuntimePropertyInfo>
+; V14 loc7 [V14,T35] ( 9, 1.76) ref -> x26 class-hnd exact <System.Reflection.RuntimePropertyInfo>
; V15 loc8 [V15 ] ( 2, 0.78) ubyte -> [fp+0xA0] do-not-enreg[X] addr-exposed ld-addr-op
;* V16 loc9 [V16 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.MdUtf8String>
;* V17 loc10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodInfo>
@@ -36,7 +36,7 @@
;# V24 OutArgs [V24 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V25 tmp1 [V25,T28] ( 4, 2 ) int -> x0
; V26 tmp2 [V26,T24] ( 3, 2.47) ref -> x0 class-hnd exact "dup spill" <int[]>
-; V27 tmp3 [V27,T25] ( 3, 2.45) ref -> x27 class-hnd exact "NewObj constructor temp" <System.Reflection.RuntimePropertyInfo>
+; V27 tmp3 [V27,T25] ( 3, 2.45) ref -> x26 class-hnd exact "NewObj constructor temp" <System.Reflection.RuntimePropertyInfo>
; V28 tmp4 [V28,T39] ( 2, 1.36) ref -> x24 class-hnd "dup spill" <System.Reflection.MethodInfo>
; V29 tmp5 [V29,T27] ( 10, 2.08) ref -> x24
; V30 tmp6 [V30,T34] ( 3, 1.83) ref -> [fp+0x18] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]>
@@ -109,12 +109,12 @@
; V97 tmp73 [V97,T41] ( 2, 1.22) int -> x0 "argument with side effect"
; V98 tmp74 [V98,T59] ( 3, 0.02) ref -> x1 "arr expr"
; V99 tmp75 [V99,T60] ( 2, 0.01) ref -> x1 "argument with side effect"
-; V100 cse0 [V100,T49] ( 2, 0.82) int -> x27 hoist "CSE #08: moderate"
+; V100 cse0 [V100,T49] ( 2, 0.82) int -> x26 hoist "CSE #08: moderate"
; V101 cse1 [V101,T20] ( 3, 3 ) int -> x0 "CSE #01: moderate"
; V102 cse2 [V102,T23] ( 3, 2.83) int -> x0 "CSE #02: moderate"
-; V103 cse3 [V103,T48] ( 2, 0.82) byref -> x26 hoist "CSE #07: moderate"
-; V104 rat0 [V104,T37] ( 4, 1.65) long -> x2 "Strength reduced derived IV"
-; V105 rat1 [V105,T38] ( 4, 1.65) int -> x28 "Trip count IV"
+; V103 cse3 [V103,T48] ( 2, 0.82) byref -> x2 hoist "CSE #07: moderate"
+; V104 rat0 [V104,T37] ( 4, 1.65) byref -> x2 "Strength reduced derived IV"
+; V105 rat1 [V105,T38] ( 4, 1.65) int -> x27 "Trip count IV"
; V106 rat2 [V106,T42] ( 2, 0.57) ref -> x0 "replacement local"
; V107 rat3 [V107,T53] ( 3, 0.57) long -> x2 "CSE for expectedClsNode"
;
@@ -397,21 +397,20 @@ G_M9628_IG18: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
; gcr arg pop 0
mov w1, #0xD1FFAB1E
str w1, [x0, #0x10]
- add x26, x0, #16
- ; byrRegs +[x26]
- and w27, w24, #0xD1FFAB1E
- mov x2, xzr
- mov w28, #1
- ;; size=84 bbWeight=0.41 PerfScore 5.98
-G_M9628_IG19: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref, isz
+ add x2, x0, #16
+ ; byrRegs +[x2]
+ and w26, w24, #0xD1FFAB1E
+ mov w27, #1
+ ;; size=80 bbWeight=0.41 PerfScore 5.77
+G_M9628_IG19: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=0004 {x2}, byref, isz
; gcrRegs -[x0]
- ldr w0, [x26, x2]
- cmp w0, w27
+ ldr w0, [x2]
+ cmp w0, w26
bne G_M9628_IG37
mov w0, #1
;; size=16 bbWeight=0.41 PerfScore 2.06
G_M9628_IG20: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x26]
+ ; byrRegs -[x2]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -421,30 +420,30 @@ G_M9628_IG20: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
ldr x2, [x2]
blr x2
; gcr arg pop 0
- ldr x26, [fp, #0x48] // [V01 arg1]
- ; byrRegs +[x26]
- ldr w0, [x26, #0x10]
+ ldr x28, [fp, #0x48] // [V01 arg1]
+ ; byrRegs +[x28]
+ ldr w0, [x28, #0x10]
cmp w0, #1
beq G_M9628_IG23
;; size=48 bbWeight=0.41 PerfScore 5.56
-G_M9628_IG21: ; bbWeight=0.25, gcVars=00000000000000000000000000020170 {V00 V03 V06 V08 V74}, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, gcvars, byref, isz
+G_M9628_IG21: ; bbWeight=0.25, gcVars=00000000000000000000000000020170 {V00 V03 V06 V08 V74}, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; GC ptr vars -{V01 V05}
- ldr w0, [x26, #0x10]
+ ldr w0, [x28, #0x10]
cmp w0, #2
bne G_M9628_IG24
;; size=12 bbWeight=0.25 PerfScore 1.11
-G_M9628_IG22: ; bbWeight=0.00, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref
+G_M9628_IG22: ; bbWeight=0.00, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, byref
ldr x22, [fp, #0x38] // [V03 arg3]
; gcrRegs +[x22]
b G_M9628_IG38
;; size=8 bbWeight=0.00 PerfScore 0.01
-G_M9628_IG23: ; bbWeight=0.16, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref
+G_M9628_IG23: ; bbWeight=0.16, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, byref
; gcrRegs -[x22]
ldr x22, [fp, #0x38] // [V03 arg3]
; gcrRegs +[x22]
b G_M9628_IG38
;; size=8 bbWeight=0.16 PerfScore 0.49
-G_M9628_IG24: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG24: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=10000000 {x28}, byref, isz
; gcrRegs -[x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -452,14 +451,14 @@ G_M9628_IG24: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=4000000
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x27, x0
+ mov x26, x0
+ ; gcrRegs +[x26]
+ ldr x27, [fp, #0x50] // [V00 this]
; gcrRegs +[x27]
- ldr x28, [fp, #0x50] // [V00 this]
- ; gcrRegs +[x28]
- ldr x3, [x28, #0x10]
+ ldr x3, [x27, #0x10]
; gcrRegs +[x3]
add x4, fp, #160 // [V15 loc8]
- mov x0, x27
+ mov x0, x26
mov w1, w24
mov x2, x20
; gcrRegs +[x2]
@@ -474,8 +473,8 @@ G_M9628_IG24: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=4000000
tst w21, #255
bne G_M9628_IG47
;; size=72 bbWeight=0.41 PerfScore 6.93
-G_M9628_IG25: ; bbWeight=0.37, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
- ldr x0, [x28, #0x10]
+G_M9628_IG25: ; bbWeight=0.37, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
+ ldr x0, [x27, #0x10]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
cmp x20, x0
@@ -485,8 +484,8 @@ G_M9628_IG25: ; bbWeight=0.37, gcrefRegs=18100000 {x20 x27 x28}, byrefReg
tst w0, w1
bne G_M9628_IG48
;; size=28 bbWeight=0.37 PerfScore 3.91
-G_M9628_IG26: ; bbWeight=0.34, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
- mov x0, x27
+G_M9628_IG26: ; bbWeight=0.34, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
+ mov x0, x26
; gcrRegs +[x0]
mov w1, wzr
movz x2, #0xD1FFAB1E
@@ -500,11 +499,11 @@ G_M9628_IG26: ; bbWeight=0.34, gcrefRegs=18100000 {x20 x27 x28}, byrefReg
; gcrRegs +[x24]
cbz x24, G_M9628_IG40
;; size=40 bbWeight=0.34 PerfScore 3.75
-G_M9628_IG27: ; bbWeight=0.34, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG27: ; bbWeight=0.34, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
; gcrRegs -[x0]
cbz x24, G_M9628_IG32
;; size=4 bbWeight=0.34 PerfScore 0.34
-G_M9628_IG28: ; bbWeight=0.14, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG28: ; bbWeight=0.14, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
mov x0, x24
; gcrRegs +[x0]
movz x2, #0xD1FFAB1E
@@ -515,7 +514,7 @@ G_M9628_IG28: ; bbWeight=0.14, gcrefRegs=19100000 {x20 x24 x27 x28}, byre
cmp x0, x2
bne G_M9628_IG56
;; size=28 bbWeight=0.14 PerfScore 0.93
-G_M9628_IG29: ; bbWeight=0.29, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG29: ; bbWeight=0.29, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
mov w0, #1
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -534,7 +533,7 @@ G_M9628_IG29: ; bbWeight=0.29, gcrefRegs=19100000 {x20 x24 x27 x28}, byre
cmp w1, w19
bge G_M9628_IG32
;; size=60 bbWeight=0.29 PerfScore 4.15
-G_M9628_IG30: ; bbWeight=0.14, gcrefRegs=19100000 {x20 x24 x27 x28}, byrefRegs=4000000 {x26}, byref, isz
+G_M9628_IG30: ; bbWeight=0.14, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=10000000 {x28}, byref, isz
mov x0, x24
; gcrRegs +[x0]
ldr x2, [x24]
@@ -562,22 +561,22 @@ G_M9628_IG30: ; bbWeight=0.14, gcrefRegs=19100000 {x20 x24 x27 x28}, byre
ldrb w0, [x1, w24, UXTW #2]
cbnz w0, G_M9628_IG35
;; size=84 bbWeight=0.14 PerfScore 4.03
-G_M9628_IG31: ; bbWeight=0.11, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000002 {x1 x26}, gcvars, byref
+G_M9628_IG31: ; bbWeight=0.11, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000002 {x1 x28}, gcvars, byref
; GC ptr vars -{V74}
mov w0, #1
str x1, [fp, #0x10] // [V74 tmp50]
; GC ptr vars +{V74}
strb w0, [x1, w24, UXTW #2]
;; size=12 bbWeight=0.11 PerfScore 0.28
-G_M9628_IG32: ; bbWeight=0.31, gcVars=00000000000000000000000000020150 {V03 V06 V08 V74}, gcrefRegs=18100000 {x20 x27 x28}, byrefRegs=4000000 {x26}, gcvars, byref, isz
+G_M9628_IG32: ; bbWeight=0.31, gcVars=00000000000000000000000000020150 {V03 V06 V08 V74}, gcrefRegs=C100000 {x20 x26 x27}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; byrRegs -[x1]
ldr x22, [fp, #0x38] // [V03 arg3]
; gcrRegs +[x22]
cbz x22, G_M9628_IG50
;; size=8 bbWeight=0.31 PerfScore 0.92
-G_M9628_IG33: ; bbWeight=0.31, gcVars=00000000000000000000000000020140 {V06 V08 V74}, gcrefRegs=18500000 {x20 x22 x27 x28}, byrefRegs=4000000 {x26}, gcvars, byref, isz
+G_M9628_IG33: ; bbWeight=0.31, gcVars=00000000000000000000000000020140 {V06 V08 V74}, gcrefRegs=C500000 {x20 x22 x26 x27}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; GC ptr vars -{V03}
- mov x0, x27
+ mov x0, x26
; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for System.Reflection.RuntimePropertyInfo:get_Name():System.String:this
movk x2, #0xD1FFAB1E LSL #16
@@ -600,7 +599,7 @@ G_M9628_IG33: ; bbWeight=0.31, gcVars=00000000000000000000000000020140 {V
; gcr arg pop 0
cbz x0, G_M9628_IG41
;; size=60 bbWeight=0.31 PerfScore 4.30
-G_M9628_IG34: ; bbWeight=0.17, gcrefRegs=18500000 {x20 x22 x27 x28}, byrefRegs=4000001 {x0 x26}, byref
+G_M9628_IG34: ; bbWeight=0.17, gcrefRegs=C500000 {x20 x22 x26 x27}, byrefRegs=10000001 {x0 x28}, byref
; gcrRegs -[x24]
ldr x24, [x0]
; gcrRegs +[x24]
@@ -608,8 +607,8 @@ G_M9628_IG34: ; bbWeight=0.17, gcrefRegs=18500000 {x20 x22 x27 x28}, byre
; GC ptr vars +{V20}
b G_M9628_IG42
;; size=12 bbWeight=0.17 PerfScore 0.83
-G_M9628_IG35: ; bbWeight=0.03, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=10100000 {x20 x28}, byrefRegs=4000002 {x1 x26}, gcvars, byref
- ; gcrRegs -[x22 x24 x27]
+G_M9628_IG35: ; bbWeight=0.03, gcVars=00000000000000000000000000000150 {V03 V06 V08}, gcrefRegs=8100000 {x20 x27}, byrefRegs=10000002 {x1 x28}, gcvars, byref
+ ; gcrRegs -[x22 x24 x26]
; byrRegs -[x0] +[x1]
; GC ptr vars -{V20 V74} +{V03}
str x1, [fp, #0x10] // [V74 tmp50]
@@ -617,8 +616,8 @@ G_M9628_IG35: ; bbWeight=0.03, gcVars=00000000000000000000000000000150 {V
b G_M9628_IG48
;; size=8 bbWeight=0.03 PerfScore 0.07
G_M9628_IG36: ; bbWeight=0.00, gcVars=00000000000000000000000000020172 {V00 V01 V03 V06 V08 V74}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x28]
- ; byrRegs -[x1 x26]
+ ; gcrRegs -[x27]
+ ; byrRegs -[x1 x28]
; GC ptr vars +{V00 V01 V05}
ldr x0, [fp, #0xA8] // [V10 loc3]
; gcrRegs +[x0]
@@ -631,17 +630,21 @@ G_M9628_IG36: ; bbWeight=0.00, gcVars=00000000000000000000000000020172 {V
ldr w24, [x0, w23, UXTW #2]
b G_M9628_IG18
;; size=28 bbWeight=0.00 PerfScore 0.04
-G_M9628_IG37: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=4000000 {x26}, byref, isz
- ; byrRegs -[x0] +[x26]
+G_M9628_IG37: ; bbWeight=0.41, gcrefRegs=100000 {x20}, byrefRegs=0004 {x2}, byref, isz
+ ; byrRegs -[x0] +[x2]
ldr x22, [fp, #0x38] // [V03 arg3]
; gcrRegs +[x22]
+ ldr x28, [fp, #0x48] // [V01 arg1]
+ ; byrRegs +[x28]
add x2, x2, #4
...
+4 (+1.18%) : 669717.dasm - Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
@@ -17,29 +17,29 @@
; V05 arg5 [V05,T09] ( 3, 3 ) ref -> x5 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
; V06 arg6 [V06,T03] ( 5, 4.72) ref -> x6 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder>
; V07 arg7 [V07,T04] ( 5, 4.72) ref -> x7 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V08 arg8 [V08,T27] ( 1, 1 ) ubyte -> [fp+0x10] single-def
+; V08 arg8 [V08,T27] ( 1, 1 ) ubyte -> [fp+0x20] single-def
; V09 arg9 [V09,T11] ( 3, 2.72) ref -> x8 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression>
;* V10 arg10 [V10 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
-; V11 arg11 [V11,T21] ( 2, 1 ) ref -> [fp+0x28] class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V12 arg12 [V12,T28] ( 1, 1 ) ubyte -> [fp+0x30] single-def
+; V11 arg11 [V11,T21] ( 2, 1 ) ref -> [fp+0x38] class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V12 arg12 [V12,T28] ( 1, 1 ) ubyte -> [fp+0x40] single-def
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14,T25] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp2 [V15,T29] ( 0, 0 ) int -> zero-ref single-def
-; V16 tmp3 [V16,T18] ( 2, 2 ) ref -> x15 single-def
+; V16 tmp3 [V16,T17] ( 2, 2 ) ref -> x15 single-def
;* V17 tmp4 [V17 ] ( 0, 0 ) struct ( 8) zero-ref <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
-; V18 tmp5 [V18,T19] ( 2, 2 ) ref -> x13 single-def
+; V18 tmp5 [V18,T18] ( 2, 2 ) ref -> x13 single-def
;* V19 tmp6 [V19,T22] ( 0, 0 ) ref -> zero-ref
;* V20 tmp7 [V20,T24] ( 0, 0 ) int -> zero-ref
-; V21 tmp8 [V21,T14] ( 3, 2 ) ref -> x15
+; V21 tmp8 [V21,T13] ( 3, 2 ) ref -> x15
;* V22 tmp9 [V22 ] ( 0, 0 ) struct ( 8) zero-ref <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
-; V23 tmp10 [V23,T15] ( 3, 2 ) ref -> x13
-; V24 tmp11 [V24,T17] ( 3, 2 ) int -> x1
+; V23 tmp10 [V23,T14] ( 3, 2 ) ref -> x13
+; V24 tmp11 [V24,T16] ( 3, 2 ) int -> x19
;* V25 tmp12 [V25,T31] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V26 tmp13 [V26,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V27 tmp14 [V27,T33] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V28 tmp15 [V28,T34] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V29 tmp16 [V29,T35] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V30 tmp17 [V30,T20] ( 3, 1.97) ubyte -> x1 "Inline return value spill temp"
+; V30 tmp17 [V30,T19] ( 3, 1.97) ubyte -> x19 "Inline return value spill temp"
;* V31 tmp18 [V31 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
;* V32 tmp19 [V32,T30] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V33 tmp20 [V33,T12] ( 3, 2.56) int -> x14 single-def "Inline stloc first use temp"
@@ -51,35 +51,36 @@
;* V39 tmp26 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V40 tmp27 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V41 tmp28 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V42 tmp29 [V42,T23] ( 2, 1 ) ref -> [fp+0x20] single-def "field V10.array (fldOffset=0x0)" P-INDEP
+; V42 tmp29 [V42,T23] ( 2, 1 ) ref -> [fp+0x30] single-def "field V10.array (fldOffset=0x0)" P-INDEP
; V43 tmp30 [V43,T05] ( 6, 5.21) ref -> x10 single-def "field V17.array (fldOffset=0x0)" P-INDEP
-; V44 tmp31 [V44,T16] ( 3, 2 ) ref -> x10 "field V22.array (fldOffset=0x0)" P-INDEP
+; V44 tmp31 [V44,T15] ( 3, 2 ) ref -> x10 "field V22.array (fldOffset=0x0)" P-INDEP
;* V45 tmp32 [V45,T26] ( 0, 0 ) ref -> zero-ref single-def "field V31.array (fldOffset=0x0)" P-INDEP
-; V46 cse0 [V46,T13] ( 2, 2.33) byref -> x12 hoist "CSE #02: moderate"
-; V47 rat0 [V47,T06] ( 4, 5.76) long -> xip0 "Strength reduced derived IV"
+; V46 cse0 [V46,T20] ( 2, 1.24) byref -> x12 hoist "CSE #02: moderate"
+; V47 rat0 [V47,T06] ( 4, 5.76) byref -> x12 "Strength reduced derived IV"
; V48 rat1 [V48,T07] ( 4, 5.76) int -> x14 "Trip count IV"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M51676_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x10]!
+ stp fp, lr, [sp, #-0x20]!
+ str x19, [sp, #0x18]
mov fp, sp
- ldr x8, [fp, #0x18] // [V09 arg9]
+ ldr x8, [fp, #0x28] // [V09 arg9]
; gcrRegs +[x8]
- ;; size=12 bbWeight=1 PerfScore 3.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M51676_IG02: ; bbWeight=1, gcrefRegs=01FB {x0 x1 x3 x4 x5 x6 x7 x8}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0-x1 x3-x7]
mov x15, x1
; gcrRegs +[x15]
- ldr x9, [fp, #0x20] // [V42 tmp29]
+ ldr x9, [fp, #0x30] // [V42 tmp29]
; gcrRegs +[x9]
mov x10, x9
; gcrRegs +[x10]
- ldr x11, [fp, #0x28] // [V11 arg11]
+ ldr x11, [fp, #0x38] // [V11 arg11]
; gcrRegs +[x11]
mov x13, x11
; gcrRegs +[x13]
- ldrb w14, [fp, #0x30] // [V12 arg12]
+ ldrb w14, [fp, #0x40] // [V12 arg12]
tst w14, #255
bne G_M51676_IG22
cbz x3, G_M51676_IG04
@@ -129,21 +130,20 @@ G_M51676_IG14: ; bbWeight=0.62, gcrefRegs=A5F9 {x0 x3 x4 x5 x6 x7 x8 x10
ldr wzr, [x10, #0x08]
add x12, x10, #16
; byrRegs +[x12]
- mov xip0, xzr
- ;; size=12 bbWeight=0.62 PerfScore 2.49
+ ;; size=8 bbWeight=0.62 PerfScore 2.18
G_M51676_IG15: ; bbWeight=1.71, gcrefRegs=A5F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13 x15}, byrefRegs=1000 {x12}, byref, isz
- ldr x1, [x12, xip0]
- ; gcrRegs +[x1]
- ldrsh w9, [x1, #0x10]
- tbnz w9, #0, G_M51676_IG21
- add xip0, xip0, #8
+ ldr xip0, [x12]
+ ; gcrRegs +[xip0]
+ ldrsh wip0, [xip0, #0x10]
+ ; gcrRegs -[xip0]
+ tbnz wip0, #0, G_M51676_IG21
+ add x12, x12, #8
sub w14, w14, #1
cbnz w14, G_M51676_IG15
;; size=24 bbWeight=1.71 PerfScore 15.42
G_M51676_IG16: ; bbWeight=0.97, gcrefRegs=A5F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13 x15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1]
; byrRegs -[x12]
- mov w1, wzr
+ mov w19, wzr
;; size=4 bbWeight=0.97 PerfScore 0.48
G_M51676_IG17: ; bbWeight=1, gcrefRegs=A5F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13 x15}, byrefRegs=0000 {}, byref, isz
mov w14, #167
@@ -153,7 +153,7 @@ G_M51676_IG17: ; bbWeight=1, gcrefRegs=A5F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14]
- tst w1, #255
+ tst w19, #255
bne G_M51676_IG20
;; size=24 bbWeight=1 PerfScore 4.50
G_M51676_IG18: ; bbWeight=1, gcrefRegs=25F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13}, byrefRegs=0000 {}, byref
@@ -207,8 +207,8 @@ G_M51676_IG18: ; bbWeight=1, gcrefRegs=25F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x7 x15]
; byrRegs -[x14]
- ldrb w9, [fp, #0x10] // [V08 arg8]
- strb w9, [x0, #0x5C]
+ ldrb w10, [fp, #0x20] // [V08 arg8]
+ strb w10, [x0, #0x5C]
add x14, x0, #80
; byrRegs +[x14]
mov x15, x8
@@ -218,9 +218,10 @@ G_M51676_IG18: ; bbWeight=1, gcrefRegs=25F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13
; byrRegs -[x14]
;; size=108 bbWeight=1 PerfScore 20.00
G_M51676_IG19: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
+ ldr x19, [sp, #0x18]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M51676_IG20: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=25F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x0 x3-x8 x10 x13]
mov w14, #1
@@ -229,7 +230,7 @@ G_M51676_IG20: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=25F
;; size=12 bbWeight=0.00 PerfScore 0.01
G_M51676_IG21: ; bbWeight=0, gcrefRegs=A5F9 {x0 x3 x4 x5 x6 x7 x8 x10 x13 x15}, byrefRegs=0000 {}, byref
; gcrRegs +[x15]
- mov w1, #1
+ mov w19, #1
b G_M51676_IG17
;; size=8 bbWeight=0 PerfScore 0.00
G_M51676_IG22: ; bbWeight=0, gcrefRegs=0BFB {x0 x1 x3 x4 x5 x6 x7 x8 x9 x11}, byrefRegs=0000 {}, byref
@@ -240,23 +241,22 @@ G_M51676_IG22: ; bbWeight=0, gcrefRegs=0BFB {x0 x1 x3 x4 x5 x6 x7 x8 x9 x
; gcrRegs +[x10]
mov x13, x11
; gcrRegs +[x13]
- mov w1, #1
- ; gcrRegs -[x1]
+ mov w19, #1
b G_M51676_IG17
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 12, PerfScore 82.13, instruction count 85, allocated bytes for code 340 (MethodHash=fcab3623) for method Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
+; Total bytes of code 344, prolog size 16, PerfScore 84.82, instruction count 86, allocated bytes for code 344 (MethodHash=fcab3623) for method Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 1
+ Code Words : 2
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 340 (0x000154)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -264,7 +264,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch
-16 (-15.38%) : 153692.dasm - System.SpanTests.IndexOfAnyExceptTests`1[System.__Canon]:Set(System.__Canon[],System.__Canon,int[]):System.__Canon[]:this (FullOpts)
@@ -11,28 +11,27 @@
; V01 arg1 [V01,T02] ( 4, 7 ) ref -> x19 class-hnd single-def <System.__Canon[]>
; V02 arg2 [V02,T03] ( 3, 6 ) ref -> x20 class-hnd single-def <System.__Canon>
; V03 arg3 [V03,T04] ( 3, 3 ) ref -> x3 class-hnd single-def <int[]>
-; V04 loc0 [V04,T06] ( 3, 2.25) ref -> x3 class-hnd single-def <int[]>
-;* V05 loc1 [V05,T08] ( 0, 0 ) int -> zero-ref
+; V04 loc0 [V04,T05] ( 3, 2.25) ref -> x3 class-hnd single-def <int[]>
+;* V05 loc1 [V05,T07] ( 0, 0 ) int -> zero-ref
;* V06 loc2 [V06 ] ( 0, 0 ) int -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 cse0 [V08,T05] ( 2, 4.25) byref -> x22 hoist "CSE #01: aggressive"
-; V09 cse1 [V09,T07] ( 3, 2.25) int -> x21 "CSE #02: aggressive"
-; V10 rat0 [V10,T00] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V08 cse0 [V08,T08] ( 2, 0.50) byref -> x22 hoist "CSE #01: aggressive"
+; V09 cse1 [V09,T06] ( 3, 2.25) int -> x21 "CSE #02: aggressive"
+; V10 rat0 [V10,T00] ( 4, 12.25) byref -> x22 "Strength reduced derived IV"
; V11 rat1 [V11,T01] ( 4, 12.25) int -> x21 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M25520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x1
; gcrRegs +[x19]
mov x20, x2
; gcrRegs +[x20]
- ;; size=28 bbWeight=1 PerfScore 5.50
+ ;; size=24 bbWeight=1 PerfScore 4.50
G_M25520_IG02: ; bbWeight=1, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x3]
ldr w21, [x3, #0x08]
@@ -42,12 +41,10 @@ G_M25520_IG02: ; bbWeight=1, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
G_M25520_IG03: ; bbWeight=0.25, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref
add x22, x3, #16
; byrRegs +[x22]
- mov x23, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M25520_IG04: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
; gcrRegs -[x3]
- ldr w1, [x22, x23]
- sxtw x1, w1
+ ldrsw x1, [x22]
mov x0, x19
; gcrRegs +[x0]
mov x2, x20
@@ -55,10 +52,10 @@ G_M25520_IG04: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=400000
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
- add x23, x23, #4
+ add x22, x22, #4
sub w21, w21, #1
cbnz w21, G_M25520_IG04
- ;; size=32 bbWeight=4 PerfScore 30.00
+ ;; size=28 bbWeight=4 PerfScore 28.00
G_M25520_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
; byrRegs -[x22]
@@ -66,14 +63,13 @@ G_M25520_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x0]
;; size=4 bbWeight=1 PerfScore 0.50
G_M25520_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 104, prolog size 28, PerfScore 46.75, instruction count 26, allocated bytes for code 104 (MethodHash=598e9c4f) for method System.SpanTests.IndexOfAnyExceptTests`1[System.__Canon]:Set(System.__Canon[],System.__Canon,int[]):System.__Canon[]:this (FullOpts)
+; Total bytes of code 88, prolog size 24, PerfScore 41.62, instruction count 22, allocated bytes for code 88 (MethodHash=598e9c4f) for method System.SpanTests.IndexOfAnyExceptTests`1[System.__Canon]:Set(System.__Canon[],System.__Canon,int[]):System.__Canon[]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -84,7 +80,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 22 (0x00016) Actual length = 88 (0x000058)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -92,9 +88,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
-16 (-13.79%) : 197226.dasm - System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
@@ -8,23 +8,22 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Reflection.TypeLoading.RoConstructedGenericType>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.TypeLoading.RoType[]>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.TypeLoading.RoType[]>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M14923_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M14923_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x0, [x0, #0x68]
@@ -35,11 +34,10 @@ G_M14923_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M14923_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M14923_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
ldr x1, [x0]
ldr x1, [x1, #0xB8]
@@ -47,7 +45,7 @@ G_M14923_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
blr x1
; gcrRegs -[x0]
cbnz w0, G_M14923_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M14923_IG04
;; size=36 bbWeight=4 PerfScore 64.00
@@ -56,22 +54,20 @@ G_M14923_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M14923_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M14923_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M14923_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 80.75, instruction count 29, allocated bytes for code 116 (MethodHash=0272c5b4) for method System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 77.62, instruction count 25, allocated bytes for code 100 (MethodHash=0272c5b4) for method System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.79%) : 323200.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
@@ -8,23 +8,22 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase[]>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase[]>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V05 cse0 [V05,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V06 cse1 [V06,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V07 rat0 [V07,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V05 cse0 [V05,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V06 cse1 [V06,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V07 rat0 [V07,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V08 rat1 [V08,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M3689_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M3689_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x0, [x0, #0x10]
@@ -35,11 +34,10 @@ G_M3689_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
G_M3689_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M3689_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
ldr x1, [x0]
ldr x1, [x1, #0x48]
@@ -47,7 +45,7 @@ G_M3689_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, by
blr x1
; gcrRegs -[x0]
cbz w0, G_M3689_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M3689_IG04
;; size=36 bbWeight=4 PerfScore 64.00
@@ -56,22 +54,20 @@ G_M3689_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M3689_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M3689_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M3689_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 116, prolog size 16, PerfScore 80.75, instruction count 29, allocated bytes for code 116 (MethodHash=11d7f196) for method System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
+; Total bytes of code 100, prolog size 12, PerfScore 77.62, instruction count 25, allocated bytes for code 100 (MethodHash=11d7f196) for method System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
+4 (+0.51%) : 328881.dasm - System.Threading.Tests.MutexTests:NamedMutex_DisposeWhenLockedRaceTest():this (FullOpts)
@@ -9,9 +9,9 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Threading.Tests.MutexTests>
-; V01 loc0 [V01,T12] ( 7, 9.75) ref -> [fp+0x20] class-hnd exact spill-single-def <System.Threading.Tests.MutexTests+<>c__DisplayClass24_0>
-; V02 loc1 [V02,T17] ( 2, 0.50) ref -> x0 class-hnd exact single-def <<unknown class>>
-; V03 loc2 [V03 ] ( 2, 0.50) struct (16) [fp+0x80] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Guid>
+; V01 loc0 [V01,T12] ( 7, 9.75) ref -> [fp+0x30] class-hnd exact spill-single-def <System.Threading.Tests.MutexTests+<>c__DisplayClass24_0>
+; V02 loc1 [V02,T16] ( 2, 0.50) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V03 loc2 [V03 ] ( 2, 0.50) struct (16) [fp+0x90] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Guid>
;* V04 loc3 [V04,T19] ( 0, 0 ) int -> zero-ref
;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Action>
;* V06 loc5 [V06,T18] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
@@ -24,67 +24,67 @@
; V13 tmp5 [V13,T06] ( 4, 14 ) ref -> x2
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Threading.Thread>
; V15 tmp7 [V15,T03] ( 5, 20 ) ref -> x2 class-hnd exact "NewObj constructor temp" <System.Action>
-; V16 tmp8 [V16 ] ( 2, 1.25) struct (16) [fp+0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Guid>
-; V17 tmp9 [V17,T16] ( 3, 2 ) int -> x0 single-def "Inline stloc first use temp"
-; V18 tmp10 [V18,T00] ( 6, 24 ) ref -> [fp+0x18] class-hnd exact spill-single-def "Inline return value spill temp" <System.Threading.Thread>
-; V19 tmp11 [V19 ] ( 3, 12 ) ref -> [fp+0x68] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Action>
+; V16 tmp8 [V16 ] ( 2, 1.25) struct (16) [fp+0x80] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Guid>
+; V17 tmp9 [V17,T15] ( 3, 2 ) int -> x0 single-def "Inline stloc first use temp"
+; V18 tmp10 [V18,T00] ( 6, 24 ) ref -> [fp+0x28] class-hnd exact spill-single-def "Inline return value spill temp" <System.Threading.Thread>
+; V19 tmp11 [V19 ] ( 3, 12 ) ref -> [fp+0x78] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Action>
;* V20 tmp12 [V20 ] ( 0, 0 ) struct ( 8) zero-ref <System.Threading.ThreadHandle>
;* V21 tmp13 [V21 ] ( 0, 0 ) struct ( 8) zero-ref <System.Threading.ThreadHandle>
;* V22 tmp14 [V22 ] ( 0, 0 ) int -> zero-ref
; V23 tmp15 [V23,T11] ( 4, 12 ) ref -> x20 class-hnd exact "Inline stloc first use temp" <System.Threading.Thread+StartHelper>
;* V24 tmp16 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp17 [V25 ] ( 0, 0 ) ref -> zero-ref
-; V26 tmp18 [V26,T15] ( 2, 4 ) ref -> x15
+; V26 tmp18 [V26,T14] ( 2, 4 ) ref -> x15
; V27 FramesRoot [V27,T02] ( 10, 22 ) long -> x19 "Pinvoke FrameListRoot"
-; V28 PInvokeFrame [V28 ] ( 12, 24 ) struct (64) [fp+0x28] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-; V29 tmp21 [V29,T14] ( 2, 8 ) long -> x0 "field V20._ptr (fldOffset=0x0)" P-INDEP
+; V28 PInvokeFrame [V28 ] ( 12, 24 ) struct (64) [fp+0x38] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+; V29 tmp21 [V29,T13] ( 2, 8 ) long -> x0 "field V20._ptr (fldOffset=0x0)" P-INDEP
;* V30 tmp22 [V30 ] ( 0, 0 ) long -> zero-ref "field V21._ptr (fldOffset=0x0)" P-INDEP
-; V31 cse0 [V31,T13] ( 3, 8.25) byref -> [fp+0x10] spill-single-def hoist "CSE #01: aggressive"
-; V32 rat0 [V32,T07] ( 4, 12.25) long -> x22 "Strength reduced derived IV"
-; V33 rat1 [V33,T08] ( 4, 12.25) int -> x23 "Trip count IV"
-; V34 rat2 [V34,T09] ( 4, 12.25) long -> x19 "Strength reduced derived IV"
-; V35 rat3 [V35,T10] ( 4, 12.25) int -> x20 "Trip count IV"
+; V31 cse0 [V31,T17] ( 3, 0.75) byref -> [fp+0x20] spill-single-def hoist "CSE #01: aggressive"
+; V32 rat0 [V32,T07] ( 4, 12.25) byref -> [fp+0x18] "Strength reduced derived IV"
+; V33 rat1 [V33,T09] ( 4, 12.25) int -> x23 "Trip count IV"
+; V34 rat2 [V34,T08] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
+; V35 rat3 [V35,T10] ( 4, 12.25) int -> x19 "Trip count IV"
; V36 rat4 [V36,T01] ( 3, 24 ) ref -> x1 "delegate invoke call"
;
-; Lcl frame size = 128
+; Lcl frame size = 144
G_M3982_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0xE0]!
- stp x19, x20, [sp, #0x90]
- stp x21, x22, [sp, #0xA0]
- stp x23, x24, [sp, #0xB0]
- stp x25, x26, [sp, #0xC0]
- stp x27, x28, [sp, #0xD0]
+ stp fp, lr, [sp, #-0xF0]!
+ stp x19, x20, [sp, #0xA0]
+ stp x21, x22, [sp, #0xB0]
+ stp x23, x24, [sp, #0xC0]
+ stp x25, x26, [sp, #0xD0]
+ stp x27, x28, [sp, #0xE0]
mov fp, sp
- add x9, fp, #104
+ add x9, fp, #120
movi v16.16b, #0
stp q16, q16, [x9]
str xzr, [x9, #0x20]
;; size=44 bbWeight=1 PerfScore 9.50
G_M3982_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #48 // [V28 PInvokeFrame+0x08]
+ add x0, fp, #64 // [V28 PInvokeFrame+0x08]
bl CORINFO_HELP_INIT_PINVOKE_FRAME
mov x19, x0
mov x0, sp
- str x0, [fp, #0x48] // [V28 PInvokeFrame+0x20]
+ str x0, [fp, #0x58] // [V28 PInvokeFrame+0x20]
mov x0, fp
- str x0, [fp, #0x58] // [V28 PInvokeFrame+0x30]
+ str x0, [fp, #0x68] // [V28 PInvokeFrame+0x30]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
- str x0, [fp, #0x20] // [V01 loc0]
+ str x0, [fp, #0x30] // [V01 loc0]
; GC ptr vars +{V01}
- add x0, fp, #112 // [V16 tmp8]
+ add x0, fp, #128 // [V16 tmp8]
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- str x1, [fp, #0x40] // [V28 PInvokeFrame+0x18]
+ str x1, [fp, #0x50] // [V28 PInvokeFrame+0x18]
adr x1, [G_M3982_IG05]
- str x1, [fp, #0x50] // [V28 PInvokeFrame+0x28]
- add x1, fp, #48 // [V28 PInvokeFrame+0x08]
+ str x1, [fp, #0x60] // [V28 PInvokeFrame+0x28]
+ add x1, fp, #64 // [V28 PInvokeFrame+0x08]
str x1, [x19, #0x08]
strb wzr, [x19, #0x04]
;; size=88 bbWeight=1 PerfScore 15.50
@@ -109,15 +109,15 @@ G_M3982_IG05: ; bbWeight=1, isz, extend
bl CORINFO_HELP_STOP_FOR_GC
;; size=40 bbWeight=1 PerfScore 9.00
G_M3982_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x38] // [V28 PInvokeFrame+0x10]
+ ldr x0, [fp, #0x48] // [V28 PInvokeFrame+0x10]
str x0, [x19, #0x08]
sxtw w0, w20
cbnz w0, G_M3982_IG21
;; size=16 bbWeight=1 PerfScore 4.50
G_M3982_IG07: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q16, [fp, #0x70] // [V16 tmp8]
- str q16, [fp, #0x80] // [V03 loc2]
- add x0, fp, #128 // [V03 loc2]
+ ldr q16, [fp, #0x80] // [V16 tmp8]
+ str q16, [fp, #0x90] // [V03 loc2]
+ add x0, fp, #144 // [V03 loc2]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -128,7 +128,7 @@ G_M3982_IG07: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ldr x3, [x3]
blr x3
; gcrRegs +[x0]
- ldr x20, [fp, #0x20] // [V01 loc0]
+ ldr x20, [fp, #0x30] // [V01 loc0]
; gcrRegs +[x20]
add x14, x20, #8
; byrRegs +[x14]
@@ -162,22 +162,26 @@ G_M3982_IG07: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs +[x0]
add x21, x0, #16
; byrRegs +[x21]
- str x21, [fp, #0x10] // [V31 cse0]
+ str x21, [fp, #0x20] // [V31 cse0]
; GC ptr vars +{V31}
- mov x22, xzr
+ mov x22, x21
+ ; byrRegs +[x22]
mov w23, #2
;; size=148 bbWeight=0.25 PerfScore 8.12
-G_M3982_IG08: ; bbWeight=4, gcVars=0000000000003000 {V01 V31}, gcrefRegs=100000 {x20}, byrefRegs=200000 {x21}, gcvars, byref, isz
+G_M3982_IG08: ; bbWeight=4, gcVars=0000000000021000 {V01 V31}, gcrefRegs=100000 {x20}, byrefRegs=400000 {x22}, gcvars, byref, isz
; gcrRegs -[x0]
- add x24, x21, x22
+ ; byrRegs -[x21]
+ str x22, [fp, #0x18] // [V32 rat0]
+ ; GC ptr vars +{V32}
+ mov x24, x22
; byrRegs +[x24]
ldr x2, [x20, #0x18]
; gcrRegs +[x2]
cbnz x2, G_M3982_IG20
- ;; size=12 bbWeight=4 PerfScore 18.00
-G_M3982_IG09: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=1000000 {x24}, byref
+ ;; size=16 bbWeight=4 PerfScore 22.00
+G_M3982_IG09: ; bbWeight=2, gcVars=0000000000021080 {V01 V31 V32}, gcrefRegs=100000 {x20}, byrefRegs=1000000 {x24}, gcvars, byref
; gcrRegs -[x2]
- ; byrRegs -[x21]
+ ; byrRegs -[x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -205,8 +209,8 @@ G_M3982_IG09: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=1000000 {x2
; byrRegs -[x14]
;; size=60 bbWeight=2 PerfScore 19.00
G_M3982_IG10: ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=1000000 {x24}, byref, isz
- str xzr, [fp, #0x68] // [V19 tmp11]
- add x0, fp, #104 // [V19 tmp11]
+ str xzr, [fp, #0x78] // [V19 tmp11]
+ add x0, fp, #120 // [V19 tmp11]
mov x1, x24
; byrRegs +[x1]
movz x3, #0xD1FFAB1E // code for System.Threading.Tests.ThreadTestHelpers:CreateGuardedThread(byref,byref,System.Action):System.Threading.Thread
@@ -218,9 +222,9 @@ G_M3982_IG10: ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=1000000 {x24},
; byrRegs -[x1 x24]
mov x24, x0
; gcrRegs +[x24]
- str x24, [fp, #0x18] // [V18 tmp10]
+ str x24, [fp, #0x28] // [V18 tmp10]
; GC ptr vars +{V18}
- str xzr, [fp, #0x68] // [V19 tmp11]
+ str xzr, [fp, #0x78] // [V19 tmp11]
ldrsb wzr, [x24]
mov x0, x24
movz x1, #0xD1FFAB1E // code for System.Threading.Thread:GetNativeHandle():System.Threading.ThreadHandle:this
@@ -233,10 +237,10 @@ G_M3982_IG10: ; bbWeight=4, gcrefRegs=0004 {x2}, byrefRegs=1000000 {x24},
movz x2, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
- str x2, [fp, #0x40] // [V28 PInvokeFrame+0x18]
+ str x2, [fp, #0x50] // [V28 PInvokeFrame+0x18]
adr x2, [G_M3982_IG13]
- str x2, [fp, #0x50] // [V28 PInvokeFrame+0x28]
- add x2, fp, #48 // [V28 PInvokeFrame+0x08]
+ str x2, [fp, #0x60] // [V28 PInvokeFrame+0x28]
+ add x2, fp, #64 // [V28 PInvokeFrame+0x08]
str x2, [x19, #0x08]
strb wzr, [x19, #0x04]
;; size=112 bbWeight=4 PerfScore 104.00
@@ -260,9 +264,9 @@ G_M3982_IG13: ; bbWeight=4, isz, extend
bl CORINFO_HELP_STOP_FOR_GC
;; size=36 bbWeight=4 PerfScore 34.00
G_M3982_IG14: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x38] // [V28 PInvokeFrame+0x10]
+ ldr x0, [fp, #0x48] // [V28 PInvokeFrame+0x10]
str x0, [x19, #0x08]
- ldr x24, [fp, #0x18] // [V18 tmp10]
+ ldr x24, [fp, #0x28] // [V18 tmp10]
; gcrRegs +[x24]
ldr x20, [x24, #0x20]
; gcrRegs +[x20]
@@ -294,22 +298,25 @@ G_M3982_IG16: ; bbWeight=4, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, b
; GC ptr vars -{V18}
blr x1
; gcrRegs -[x0 x24]
+ ldr x22, [fp, #0x18] // [V32 rat0]
+ ; byrRegs +[x22]
add x22, x22, #8
sub w23, w23, #1
- ldr x20, [fp, #0x20] // [V01 loc0]
+ ldr x20, [fp, #0x30] // [V01 loc0]
; gcrRegs +[x20]
- ldr x21, [fp, #0x10] // [V31 cse0]
- ; byrRegs +[x21]
cbnz w23, G_M3982_IG08
;; size=44 bbWeight=4 PerfScore 48.00
-G_M3982_IG17: ; bbWeight=0.25, gcVars=0000000000002000 {V31}, gcrefRegs=0000 {}, byrefRegs=200000 {x21}, gcvars, byref
+G_M3982_IG17: ; bbWeight=0.25, gcVars=0000000000020000 {V31}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x20]
- ; GC ptr vars -{V01}
- mov x19, xzr
- mov w20, #2
- ;; size=8 bbWeight=0.25 PerfScore 0.25
-G_M3982_IG18: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=200000 {x21}, byref, isz
- ldr x1, [x21, x19]
+ ; byrRegs -[x22]
+ ; GC ptr vars -{V01 V32}
+ ldr x21, [fp, #0x20] // [V31 cse0]
+ ; byrRegs +[x21]
+ mov w19, #2
...
+16 (+0.71%) : 83553.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[System.__Canon]:AddFirst_LinkedListNode():this (FullOpts)
@@ -8,20 +8,20 @@
; 0 inlinees with PGO data; 30 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T38] ( 11, 12.50) ref -> x19 this class-hnd single-def <System.Collections.Tests.LinkedList_Generic_Tests`1[System.__Canon]>
+; V00 this [V00,T37] ( 11, 12.50) ref -> x19 this class-hnd single-def <System.Collections.Tests.LinkedList_Generic_Tests`1[System.__Canon]>
; V01 loc0 [V01,T01] ( 33, 60.73) ref -> x22 class-hnd <System.Collections.Generic.LinkedList`1[System.__Canon]>
;* V02 loc1 [V02,T101] ( 0, 0 ) int -> zero-ref single-def
-; V03 loc2 [V03,T21] ( 5, 16.25) int -> x22
-; V04 loc3 [V04,T60] ( 8, 5 ) ref -> x24 class-hnd <System.__Canon[]>
-; V05 loc4 [V05,T80] ( 4, 1 ) ref -> [fp+0x38] class-hnd exact spill-single-def <System.__Canon[]>
-; V06 loc5 [V06,T61] ( 5, 5 ) ref -> x24 class-hnd exact single-def <System.__Canon[]>
-; V07 loc6 [V07,T57] ( 5, 5.75) ref -> x26 class-hnd exact single-def <System.__Canon[]>
-; V08 loc7 [V08,T59] ( 4, 5.50) ref -> x25 class-hnd exact single-def <System.__Canon[]>
+; V03 loc2 [V03,T20] ( 5, 16.25) int -> x22
+; V04 loc3 [V04,T59] ( 8, 5 ) ref -> x24 class-hnd <System.__Canon[]>
+; V05 loc4 [V05,T80] ( 4, 1 ) ref -> [fp+0x58] class-hnd exact spill-single-def <System.__Canon[]>
+; V06 loc5 [V06,T60] ( 5, 5 ) ref -> x24 class-hnd exact single-def <System.__Canon[]>
+; V07 loc6 [V07,T55] ( 5, 5.75) ref -> x26 class-hnd exact single-def <System.__Canon[]>
+; V08 loc7 [V08,T58] ( 4, 5.50) ref -> x25 class-hnd exact single-def <System.__Canon[]>
; V09 loc8 [V09,T62] ( 4, 4.75) ref -> x27 class-hnd exact single-def <System.__Canon[]>
; V10 loc9 [V10,T03] ( 7, 24.25) int -> x28
-; V11 loc10 [V11,T54] ( 3, 12 ) int -> [fp+0x84] spill-single-def
-; V12 loc11 [V12,T52] ( 3, 12 ) ref -> [fp+0x30] class-hnd spill-single-def <System.__Canon>
-; V13 loc12 [V13,T53] ( 3, 12 ) ref -> [fp+0x28] class-hnd spill-single-def <System.__Canon>
+; V11 loc10 [V11,T52] ( 3, 12 ) int -> [fp+0x84] spill-single-def
+; V12 loc11 [V12,T50] ( 3, 12 ) ref -> [fp+0x50] class-hnd spill-single-def <System.__Canon>
+; V13 loc12 [V13,T51] ( 3, 12 ) ref -> [fp+0x48] class-hnd spill-single-def <System.__Canon>
;* V14 loc13 [V14 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd single-def <System.__Canon>
;* V15 loc14 [V15,T102] ( 0, 0 ) int -> zero-ref
;* V16 loc15 [V16,T103] ( 0, 0 ) int -> zero-ref
@@ -66,17 +66,17 @@
;* V55 tmp33 [V55 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V56 tmp34 [V56,T04] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[System.__Canon]>
;* V57 tmp35 [V57 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V58 tmp36 [V58,T00] ( 13, 67.32) ref -> [fp+0x20] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[System.__Canon]>
+; V58 tmp36 [V58,T00] ( 13, 67.32) ref -> [fp+0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[System.__Canon]>
;* V59 tmp37 [V59 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V60 tmp38 [V60 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V61 tmp39 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
-; V62 tmp40 [V62,T33] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
-; V63 tmp41 [V63,T34] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
-; V64 tmp42 [V64,T35] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
-; V65 tmp43 [V65,T36] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
-; V66 tmp44 [V66,T37] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
-; V67 tmp45 [V67,T23] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
-; V68 tmp46 [V68,T24] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V62 tmp40 [V62,T32] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V63 tmp41 [V63,T33] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V64 tmp42 [V64,T34] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V65 tmp43 [V65,T35] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V66 tmp44 [V66,T36] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V67 tmp45 [V67,T22] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
+; V68 tmp46 [V68,T23] ( 2, 15.84) ref -> x15 class-hnd "Inlining Arg" <System.__Canon>
;* V69 tmp47 [V69 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V70 tmp48 [V70,T19] ( 5, 19.80) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[System.__Canon]>
; V71 tmp49 [V71,T87] ( 2, 1 ) long -> x0 "argument with side effect"
@@ -87,28 +87,28 @@
; V76 tmp54 [V76,T86] ( 2, 1 ) ref -> x2 single-def "argument with side effect"
; V77 tmp55 [V77,T92] ( 2, 1 ) long -> x0 "argument with side effect"
; V78 tmp56 [V78,T93] ( 2, 1 ) long -> x0 "argument with side effect"
-; V79 tmp57 [V79,T25] ( 2, 15.84) long -> x0 "argument with side effect"
+; V79 tmp57 [V79,T24] ( 2, 15.84) long -> x0 "argument with side effect"
; V80 tmp58 [V80,T65] ( 2, 4 ) long -> x0 "argument with side effect"
-; V81 cse0 [V81,T56] ( 8, 6.25) long -> x21 "CSE #06: moderate"
+; V81 cse0 [V81,T54] ( 8, 6.25) long -> x21 "CSE #06: moderate"
; V82 cse1 [V82,T66] ( 6, 1.50) long -> x23 "CSE #02: moderate"
; V83 cse2 [V83,T63] ( 3, 4.46) long -> x28 "CSE #07: moderate"
-; V84 cse3 [V84,T55] ( 3, 8.25) long -> [fp+0x78] spill-single-def hoist "CSE #03: moderate"
+; V84 cse3 [V84,T53] ( 3, 8.25) long -> [fp+0x78] spill-single-def hoist "CSE #03: moderate"
; V85 cse4 [V85,T02] ( 25, 31.66) long -> x20 "CSE #01: aggressive"
-; V86 cse5 [V86,T20] ( 7, 16.59) byref -> x23 hoist "CSE #08: moderate"
-; V87 cse6 [V87,T40] ( 4, 12.13) byref -> [fp+0x18] spill-single-def hoist "CSE #09: moderate"
-; V88 rat0 [V88,T41] ( 4, 12.13) long -> [fp+0x70] "Strength reduced derived IV"
-; V89 rat1 [V89,T42] ( 4, 12.13) int -> [fp+0x6C] "Trip count IV"
-; V90 rat2 [V90,T43] ( 4, 12.13) long -> [fp+0x60] "Strength reduced derived IV"
-; V91 rat3 [V91,T44] ( 4, 12.13) int -> [fp+0x5C] "Trip count IV"
-; V92 rat4 [V92,T45] ( 4, 12.13) long -> [fp+0x50] "Strength reduced derived IV"
-; V93 rat5 [V93,T46] ( 4, 12.13) int -> [fp+0x4C] "Trip count IV"
-; V94 rat6 [V94,T47] ( 4, 12.13) long -> x24 "Strength reduced derived IV"
-; V95 rat7 [V95,T48] ( 4, 12.13) int -> [fp+0x48] "Trip count IV"
-; V96 rat8 [V96,T39] ( 4, 12.25) int -> x24 "Trip count IV"
-; V97 rat9 [V97,T49] ( 4, 12.13) long -> x24 "Strength reduced derived IV"
-; V98 rat10 [V98,T50] ( 4, 12.13) int -> [fp+0x44] "Trip count IV"
-; V99 rat11 [V99,T22] ( 5, 16.09) long -> x24 "Strength reduced derived IV"
-; V100 rat12 [V100,T51] ( 4, 12.13) int -> x27 "Trip count IV"
+; V86 cse5 [V86,T57] ( 7, 5.46) byref -> x23 hoist "CSE #08: moderate"
+; V87 cse6 [V87,T61] ( 4, 4.71) byref -> [fp+0x38] spill-single-def hoist "CSE #09: moderate"
+; V88 rat0 [V88,T39] ( 4, 12.13) byref -> [fp+0x30] "Strength reduced derived IV"
+; V89 rat1 [V89,T44] ( 4, 12.13) int -> [fp+0x74] "Trip count IV"
+; V90 rat2 [V90,T40] ( 4, 12.13) byref -> [fp+0x28] "Strength reduced derived IV"
+; V91 rat3 [V91,T45] ( 4, 12.13) int -> [fp+0x70] "Trip count IV"
+; V92 rat4 [V92,T41] ( 4, 12.13) byref -> [fp+0x20] "Strength reduced derived IV"
+; V93 rat5 [V93,T46] ( 4, 12.13) int -> [fp+0x6C] "Trip count IV"
+; V94 rat6 [V94,T42] ( 4, 12.13) byref -> x24 "Strength reduced derived IV"
+; V95 rat7 [V95,T47] ( 4, 12.13) int -> [fp+0x68] "Trip count IV"
+; V96 rat8 [V96,T38] ( 4, 12.25) int -> x24 "Trip count IV"
+; V97 rat9 [V97,T43] ( 4, 12.13) byref -> [fp+0x18] "Strength reduced derived IV"
+; V98 rat10 [V98,T48] ( 4, 12.13) int -> [fp+0x64] "Trip count IV"
+; V99 rat11 [V99,T21] ( 5, 16.09) long -> x27 "Strength reduced derived IV"
+; V100 rat12 [V100,T49] ( 4, 12.13) int -> [fp+0x60] "Trip count IV"
; V101 rat13 [V101,T79] ( 3, 1.10) long -> x0 "Spilling to split statement for tree"
; V102 rat14 [V102,T81] ( 3, 1 ) long -> x21 "runtime lookup"
; V103 rat15 [V103,T68] ( 3, 1.40) long -> x21 "fgMakeTemp is creating a new local variable"
@@ -118,40 +118,40 @@
; V107 rat19 [V107,T70] ( 3, 1.40) long -> x28 "fgMakeTemp is creating a new local variable"
;* V108 rat20 [V108,T94] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V109 rat21 [V109,T71] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V110 rat22 [V110,T26] ( 3, 15.84) long -> x0 "runtime lookup"
+; V110 rat22 [V110,T25] ( 3, 15.84) long -> x0 "runtime lookup"
; V111 rat23 [V111,T12] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
;* V112 rat24 [V112,T95] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V113 rat25 [V113,T72] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V114 rat26 [V114,T27] ( 3, 15.84) long -> x0 "runtime lookup"
+; V114 rat26 [V114,T26] ( 3, 15.84) long -> x0 "runtime lookup"
; V115 rat27 [V115,T13] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
; V116 rat28 [V116,T84] ( 3, 1 ) long -> x0 "runtime lookup"
; V117 rat29 [V117,T73] ( 3, 1.40) long -> x0 "fgMakeTemp is creating a new local variable"
;* V118 rat30 [V118,T96] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V119 rat31 [V119,T74] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V120 rat32 [V120,T28] ( 3, 15.84) long -> x0 "runtime lookup"
+; V120 rat32 [V120,T27] ( 3, 15.84) long -> x0 "runtime lookup"
; V121 rat33 [V121,T14] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
; V122 rat34 [V122,T85] ( 3, 1 ) long -> x0 "runtime lookup"
; V123 rat35 [V123,T75] ( 3, 1.40) long -> x0 "fgMakeTemp is creating a new local variable"
;* V124 rat36 [V124,T97] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V125 rat37 [V125,T76] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V126 rat38 [V126,T29] ( 3, 15.84) long -> x0 "runtime lookup"
+; V126 rat38 [V126,T28] ( 3, 15.84) long -> x0 "runtime lookup"
; V127 rat39 [V127,T15] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
;* V128 rat40 [V128,T98] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V129 rat41 [V129,T77] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V130 rat42 [V130,T30] ( 3, 15.84) long -> x0 "runtime lookup"
+; V130 rat42 [V130,T29] ( 3, 15.84) long -> x0 "runtime lookup"
; V131 rat43 [V131,T16] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
;* V132 rat44 [V132,T99] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V133 rat45 [V133,T78] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V134 rat46 [V134,T31] ( 3, 15.84) long -> x0 "runtime lookup"
+; V134 rat46 [V134,T30] ( 3, 15.84) long -> x0 "runtime lookup"
; V135 rat47 [V135,T17] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
-; V136 rat48 [V136,T32] ( 3, 15.84) long -> x0 "runtime lookup"
+; V136 rat48 [V136,T31] ( 3, 15.84) long -> x0 "runtime lookup"
; V137 rat49 [V137,T18] ( 3, 22.18) long -> x0 "fgMakeTemp is creating a new local variable"
;* V138 rat50 [V138,T110] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V139 rat51 [V139,T108] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V140 rat52 [V140,T111] ( 0, 0 ) long -> zero-ref "runtime lookup"
;* V141 rat53 [V141,T109] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
; V142 rat54 [V142,T64] ( 3, 4 ) long -> x0 "runtime lookup"
-; V143 rat55 [V143,T58] ( 3, 5.60) long -> x0 "fgMakeTemp is creating a new local variable"
+; V143 rat55 [V143,T56] ( 3, 5.60) long -> x0 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 128
@@ -225,7 +225,7 @@ G_M33783_IG05: ; bbWeight=4, gcrefRegs=F080000 {x19 x24 x25 x26 x27}, byr
; gcrRegs +[x0]
ldr x4, [x2, #0x20]
blr x4
- str x0, [fp, #0x30] // [V12 loc11]
+ str x0, [fp, #0x50] // [V12 loc11]
; GC ptr vars +{V12}
sxtw w1, w22
add w22, w1, #1
@@ -233,18 +233,18 @@ G_M33783_IG05: ; bbWeight=4, gcrefRegs=F080000 {x19 x24 x25 x26 x27}, byr
ldr x3, [fp, #0x78] // [V84 cse3]
ldr x4, [x3, #0x20]
blr x4
- str x0, [fp, #0x28] // [V13 loc12]
+ str x0, [fp, #0x48] // [V13 loc12]
; GC ptr vars +{V13}
sxtw x1, w28
mov x0, x24
- ldr x2, [fp, #0x30] // [V12 loc11]
+ ldr x2, [fp, #0x50] // [V12 loc11]
; gcrRegs +[x2]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
ldrsw x1, [fp, #0x84] // [V11 loc10]
mov x0, x26
; gcrRegs +[x0]
- ldr x2, [fp, #0x30] // [V12 loc11]
+ ldr x2, [fp, #0x50] // [V12 loc11]
; gcrRegs +[x2]
; GC ptr vars -{V12}
bl CORINFO_HELP_ARRADDR_ST
@@ -252,14 +252,14 @@ G_M33783_IG05: ; bbWeight=4, gcrefRegs=F080000 {x19 x24 x25 x26 x27}, byr
sxtw x1, w28
mov x0, x25
; gcrRegs +[x0]
- ldr x2, [fp, #0x28] // [V13 loc12]
+ ldr x2, [fp, #0x48] // [V13 loc12]
; gcrRegs +[x2]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
ldrsw x1, [fp, #0x84] // [V11 loc10]
mov x0, x27
; gcrRegs +[x0]
- ldr x2, [fp, #0x28] // [V13 loc12]
+ ldr x2, [fp, #0x48] // [V13 loc12]
; gcrRegs +[x2]
; GC ptr vars -{V13}
bl CORINFO_HELP_ARRADDR_ST
@@ -317,11 +317,12 @@ G_M33783_IG07: ; bbWeight=0.25, gcrefRegs=F480000 {x19 x22 x24 x25 x26 x2
; gcrRegs +[x22]
add x23, x24, #16
; byrRegs +[x23]
- str xzr, [fp, #0x70] // [V88 rat0]
+ str x23, [fp, #0x30] // [V88 rat0]
+ ; GC ptr vars +{V88}
mov w3, #16
- str w3, [fp, #0x6C] // [V89 rat1]
+ str w3, [fp, #0x74] // [V89 rat1]
;; size=112 bbWeight=0.25 PerfScore 5.75
-G_M33783_IG08: ; bbWeight=3.96, gcrefRegs=F480000 {x19 x22 x24 x25 x26 x27}, byrefRegs=800000 {x23}, byref, isz
+G_M33783_IG08: ; bbWeight=3.96, gcVars=00000000000000000000008000000000 {V88}, gcrefRegs=F480000 {x19 x22 x24 x25 x26 x27}, byrefRegs=800000 {x23}, gcvars, byref, isz
; gcrRegs -[x0]
ldr x0, [x20, #0x38]
ldr x0, [x0, #0x18]
@@ -333,14 +334,15 @@ G_M33783_IG09: ; bbWeight=3.96, gcrefRegs=F480000 {x19 x22 x24 x25 x26 x2
; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- ldr x2, [fp, #0x70] // [V88 rat0]
- ldr x15, [x23, x2]
+ ldr x2, [fp, #0x30] // [V88 rat0]
+ ; byrRegs +[x2]
+ ldr x15, [x2]
; gcrRegs +[x15]
add x14, x1, #32
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
- ; byrRegs -[x14]
+ ; byrRegs -[x2 x14]
mov x0, x22
; gcrRegs +[x0]
movz x3, #0xD1FFAB1E // code for System.Collections.Generic.LinkedList`1[System.__Canon]:AddFirst(System.Collections.Generic.LinkedListNode`1[System.__Canon]):this
@@ -349,15 +351,18 @@ G_M33783_IG09: ; bbWeight=3.96, gcrefRegs=F480000 {x19 x22 x24 x25 x26 x2
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1]
- ldr x0, [fp, #0x70] // [V88 rat0]
+ ldr x0, [fp, #0x30] // [V88 rat0]
+ ; byrRegs +[x0]
add x0, x0, #8
- ldr w1, [fp, #0x6C] // [V89 rat1]
+ ldr w1, [fp, #0x74] // [V89 rat1]
sub w1, w1, #1
- str x0, [fp, #0x70] // [V88 rat0]
- str w1, [fp, #0x6C] // [V89 rat1]
+ str x0, [fp, #0x30] // [V88 rat0]
...
+36 (+2.13%) : 83494.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[int]:AddFirst_LinkedListNode():this (FullOpts)
@@ -8,19 +8,19 @@
; 0 inlinees with PGO data; 30 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T25] ( 12, 12.67) ref -> x19 this class-hnd single-def <System.Collections.Tests.LinkedList_Generic_Tests`1[int]>
+; V00 this [V00,T23] ( 12, 12.67) ref -> x19 this class-hnd single-def <System.Collections.Tests.LinkedList_Generic_Tests`1[int]>
; V01 loc0 [V01,T01] ( 33, 60.73) ref -> x26 class-hnd <System.Collections.Generic.LinkedList`1[int]>
;* V02 loc1 [V02,T52] ( 0, 0 ) int -> zero-ref single-def
-; V03 loc2 [V03,T15] ( 5, 16.09) int -> x20
+; V03 loc2 [V03,T13] ( 5, 16.09) int -> x20
; V04 loc3 [V04,T43] ( 8, 5 ) ref -> x22 class-hnd <int[]>
-; V05 loc4 [V05,T49] ( 4, 1 ) ref -> [fp+0x20] class-hnd exact spill-single-def <int[]>
+; V05 loc4 [V05,T49] ( 4, 1 ) ref -> [fp+0x50] class-hnd exact spill-single-def <int[]>
; V06 loc5 [V06,T44] ( 4, 4.71) ref -> x22 class-hnd exact single-def <int[]>
; V07 loc6 [V07,T41] ( 5, 5.71) ref -> x24 class-hnd exact single-def <int[]>
; V08 loc7 [V08,T42] ( 3, 5.21) ref -> x23 class-hnd exact single-def <int[]>
; V09 loc8 [V09,T45] ( 4, 4.71) ref -> x25 class-hnd exact single-def <int[]>
-; V10 loc9 [V10,T04] ( 7, 24.01) int -> x26
-; V11 loc10 [V11,T19] ( 4, 15.84) int -> x28
-; V12 loc11 [V12,T38] ( 3, 11.88) int -> [fp+0x4C] spill-single-def
+; V10 loc9 [V10,T03] ( 7, 24.01) int -> x26
+; V11 loc10 [V11,T17] ( 4, 15.84) int -> x28
+; V12 loc11 [V12,T38] ( 3, 11.88) int -> [fp+0x6C] spill-single-def
; V13 loc12 [V13,T39] ( 3, 11.88) int -> x0
;* V14 loc13 [V14 ] ( 0, 0 ) int -> zero-ref ld-addr-op single-def
;* V15 loc14 [V15,T53] ( 0, 0 ) int -> zero-ref
@@ -32,60 +32,60 @@
;* V21 loc20 [V21,T51] ( 0, 0 ) int -> zero-ref
;# V22 OutArgs [V22 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V23 tmp1 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
-; V24 tmp2 [V24,T11] ( 3, 23.76) int -> x1 "impSpillLclRefs"
-; V25 tmp3 [V25,T12] ( 3, 23.76) int -> x1 "impSpillLclRefs"
+; V24 tmp2 [V24,T10] ( 3, 23.76) int -> x1 "impSpillLclRefs"
+; V25 tmp3 [V25,T11] ( 3, 23.76) int -> x1 "impSpillLclRefs"
;* V26 tmp4 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
; V27 tmp5 [V27,T48] ( 3, 1.50) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
;* V28 tmp6 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
-; V29 tmp7 [V29,T06] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V29 tmp7 [V29,T05] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
;* V30 tmp8 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
-; V31 tmp9 [V31,T07] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
-; V32 tmp10 [V32,T08] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V31 tmp9 [V31,T06] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V32 tmp10 [V32,T07] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
;* V33 tmp11 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
-; V34 tmp12 [V34,T09] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
-; V35 tmp13 [V35,T10] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V34 tmp12 [V34,T08] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V35 tmp13 [V35,T09] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
;* V36 tmp14 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedList`1[int]>
-; V37 tmp15 [V37,T05] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
-; V38 tmp16 [V38,T00] ( 13, 67.32) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V37 tmp15 [V37,T04] ( 3, 23.76) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
+; V38 tmp16 [V38,T00] ( 13, 67.32) ref -> [fp+0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.LinkedListNode`1[int]>
;* V39 tmp17 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V40 tmp18 [V40,T20] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V41 tmp19 [V41,T21] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V42 tmp20 [V42,T22] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V43 tmp21 [V43,T23] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V44 tmp22 [V44,T24] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V45 tmp23 [V45,T17] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V46 tmp24 [V46,T18] ( 2, 15.84) int -> x0 "Inlining Arg"
-; V47 tmp25 [V47,T13] ( 5, 19.80) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[int]>
+; V40 tmp18 [V40,T18] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V41 tmp19 [V41,T19] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V42 tmp20 [V42,T20] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V43 tmp21 [V43,T21] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V44 tmp22 [V44,T22] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V45 tmp23 [V45,T15] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V46 tmp24 [V46,T16] ( 2, 15.84) int -> x0 "Inlining Arg"
+; V47 tmp25 [V47,T12] ( 5, 19.80) ref -> x1 class-hnd exact "Inlining Arg" <System.Collections.Generic.LinkedListNode`1[int]>
; V48 tmp26 [V48,T50] ( 2, 1 ) ref -> x2 single-def "argument with side effect"
; V49 cse0 [V49,T40] ( 3, 8.17) long -> x27 hoist "CSE #03: moderate"
; V50 cse1 [V50,T02] ( 9, 28.22) long -> x27 "CSE #13: aggressive"
-; V51 cse2 [V51,T03] ( 8, 24.26) byref -> [fp+0x18] "CSE #06: aggressive"
-; V52 cse3 [V52,T14] ( 5, 19.80) byref -> [fp+0x10] "CSE #08: moderate"
+; V51 cse2 [V51,T24] ( 8, 13.13) byref -> [fp+0x40] "CSE #06: aggressive"
+; V52 cse3 [V52,T25] ( 5, 12.38) byref -> [fp+0x38] "CSE #08: moderate"
; V53 cse4 [V53,T46] ( 9, 3 ) long -> x21 "CSE #01: moderate"
; V54 cse5 [V54,T47] ( 6, 1.50) long -> x20 "CSE #12: moderate"
-; V55 rat0 [V55,T27] ( 4, 12.13) long -> x28 "Strength reduced derived IV"
-; V56 rat1 [V56,T28] ( 4, 12.13) int -> [fp+0x48] "Trip count IV"
-; V57 rat2 [V57,T29] ( 4, 12.13) long -> x28 "Strength reduced derived IV"
-; V58 rat3 [V58,T30] ( 4, 12.13) int -> [fp+0x44] "Trip count IV"
-; V59 rat4 [V59,T31] ( 4, 12.13) long -> [fp+0x38] "Strength reduced derived IV"
-; V60 rat5 [V60,T32] ( 4, 12.13) int -> [fp+0x34] "Trip count IV"
-; V61 rat6 [V61,T33] ( 4, 12.13) long -> x22 "Strength reduced derived IV"
-; V62 rat7 [V62,T34] ( 4, 12.13) int -> [fp+0x30] "Trip count IV"
+; V55 rat0 [V55,T27] ( 4, 12.13) byref -> [fp+0x30] "Strength reduced derived IV"
+; V56 rat1 [V56,T32] ( 4, 12.13) int -> [fp+0x68] "Trip count IV"
+; V57 rat2 [V57,T28] ( 4, 12.13) byref -> [fp+0x28] "Strength reduced derived IV"
+; V58 rat3 [V58,T33] ( 4, 12.13) int -> [fp+0x64] "Trip count IV"
+; V59 rat4 [V59,T29] ( 4, 12.13) byref -> [fp+0x20] "Strength reduced derived IV"
+; V60 rat5 [V60,T34] ( 4, 12.13) int -> [fp+0x60] "Trip count IV"
+; V61 rat6 [V61,T30] ( 4, 12.13) byref -> x22 "Strength reduced derived IV"
+; V62 rat7 [V62,T35] ( 4, 12.13) int -> [fp+0x5C] "Trip count IV"
; V63 rat8 [V63,T26] ( 4, 12.25) int -> x22 "Trip count IV"
-; V64 rat9 [V64,T35] ( 4, 12.13) long -> x22 "Strength reduced derived IV"
-; V65 rat10 [V65,T36] ( 4, 12.13) int -> [fp+0x2C] "Trip count IV"
-; V66 rat11 [V66,T16] ( 5, 16.09) long -> x20 "Strength reduced derived IV"
-; V67 rat12 [V67,T37] ( 4, 12.13) int -> x22 "Trip count IV"
+; V64 rat9 [V64,T31] ( 4, 12.13) byref -> [fp+0x18] "Strength reduced derived IV"
+; V65 rat10 [V65,T36] ( 4, 12.13) int -> [fp+0x58] "Trip count IV"
+; V66 rat11 [V66,T14] ( 5, 16.09) long -> x20 "Strength reduced derived IV"
+; V67 rat12 [V67,T37] ( 4, 12.13) int -> x25 "Trip count IV"
;
-; Lcl frame size = 64
+; Lcl frame size = 96
G_M46690_IG01: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0xA0]!
- stp x19, x20, [sp, #0x50]
- stp x21, x22, [sp, #0x60]
- stp x23, x24, [sp, #0x70]
- stp x25, x26, [sp, #0x80]
- stp x27, x28, [sp, #0x90]
+ stp fp, lr, [sp, #-0xC0]!
+ stp x19, x20, [sp, #0x70]
+ stp x21, x22, [sp, #0x80]
+ stp x23, x24, [sp, #0x90]
+ stp x25, x26, [sp, #0xA0]
+ stp x27, x28, [sp, #0xB0]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
@@ -138,7 +138,7 @@ G_M46690_IG03: ; bbWeight=3.96, gcrefRegs=3C80000 {x19 x22 x23 x24 x25},
ldr x2, [x27, #0x20]
blr x2
; gcrRegs -[x0]
- str w0, [fp, #0x4C] // [V12 loc11]
+ str w0, [fp, #0x6C] // [V12 loc11]
sxtw w1, w20
add w20, w1, #1
mov x0, x19
@@ -148,7 +148,7 @@ G_M46690_IG03: ; bbWeight=3.96, gcrefRegs=3C80000 {x19 x22 x23 x24 x25},
; gcrRegs -[x0]
add x1, x22, #16
; byrRegs +[x1]
- ldr w2, [fp, #0x4C] // [V12 loc11]
+ ldr w2, [fp, #0x6C] // [V12 loc11]
str w2, [x1, w26, UXTW #2]
cmp w28, #16
bhs G_M46690_IG23
@@ -162,11 +162,11 @@ G_M46690_IG03: ; bbWeight=3.96, gcrefRegs=3C80000 {x19 x22 x23 x24 x25},
str w0, [x3, w28, UXTW #2]
add w26, w26, #1
cmp w26, #16
- stp x2, x1, [fp, #0x10] // [V52 cse3], [V51 cse2]
+ stp x2, x1, [fp, #0x38] // [V52 cse3], [V51 cse2]
; GC ptr vars +{V51 V52}
blt G_M46690_IG03
;; size=112 bbWeight=3.96 PerfScore 100.98
-G_M46690_IG04: ; bbWeight=0.25, gcVars=0000000000004008 {V51 V52}, gcrefRegs=3C80000 {x19 x22 x23 x24 x25}, byrefRegs=0000 {}, gcvars, byref
+G_M46690_IG04: ; bbWeight=0.25, gcVars=0000000003000000 {V51 V52}, gcrefRegs=3C80000 {x19 x22 x23 x24 x25}, byrefRegs=0000 {}, gcvars, byref
; byrRegs -[x1-x3]
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
@@ -213,20 +213,24 @@ G_M46690_IG04: ; bbWeight=0.25, gcVars=0000000000004008 {V51 V52}, gcrefR
; gcrRegs +[x0]
mov x26, x0
; gcrRegs +[x26]
- mov x28, xzr
- mov w1, #16
- str w1, [fp, #0x48] // [V56 rat1]
- ;; size=144 bbWeight=0.25 PerfScore 6.75
-G_M46690_IG05: ; bbWeight=3.96, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x26}, byrefRegs=0000 {}, byref, isz
+ ldr x28, [fp, #0x40] // [V51 cse2]
+ ; byrRegs +[x28]
+ str x28, [fp, #0x30] // [V55 rat0]
+ ; GC ptr vars +{V55}
+ mov w2, #16
+ str w2, [fp, #0x68] // [V56 rat1]
+ ;; size=148 bbWeight=0.25 PerfScore 7.38
+G_M46690_IG05: ; bbWeight=3.96, gcVars=000000000A000000 {V52 V55}, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x26}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; gcrRegs -[x0]
+ ; GC ptr vars -{V51}
mov x0, x27
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- ldr x2, [fp, #0x18] // [V51 cse2]
+ ldr x2, [fp, #0x30] // [V55 rat0]
; byrRegs +[x2]
- ldr w0, [x2, x28]
+ ldr w0, [x2]
; gcrRegs -[x0]
str w0, [x1, #0x20]
mov x0, x26
@@ -238,13 +242,18 @@ G_M46690_IG05: ; bbWeight=3.96, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x2
blr x3
; gcrRegs -[x0-x1]
; byrRegs -[x2]
- add x28, x28, #4
- ldr w0, [fp, #0x48] // [V56 rat1]
- sub w0, w0, #1
- str w0, [fp, #0x48] // [V56 rat1]
- cbnz w0, G_M46690_IG05
- ;; size=68 bbWeight=3.96 PerfScore 75.24
-G_M46690_IG06: ; bbWeight=0.25, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x26}, byrefRegs=0000 {}, byref
+ ldr x0, [fp, #0x30] // [V55 rat0]
+ ; byrRegs +[x0]
+ add x0, x0, #4
+ ldr w1, [fp, #0x68] // [V56 rat1]
+ sub w1, w1, #1
+ str x0, [fp, #0x30] // [V55 rat0]
+ str w1, [fp, #0x68] // [V56 rat1]
+ cbnz w1, G_M46690_IG05
+ ;; size=76 bbWeight=3.96 PerfScore 87.12
+G_M46690_IG06: ; bbWeight=0.25, gcVars=0000000002000000 {V52}, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x26}, byrefRegs=10000000 {x28}, gcvars, byref
+ ; byrRegs -[x0]
+ ; GC ptr vars -{V55}
mov x0, x19
; gcrRegs +[x0]
mov x1, x26
@@ -262,20 +271,21 @@ G_M46690_IG06: ; bbWeight=0.25, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x2
; gcrRegs +[x0]
mov x26, x0
; gcrRegs +[x26]
- mov x28, xzr
- mov w1, #16
- str w1, [fp, #0x44] // [V58 rat3]
- ;; size=56 bbWeight=0.25 PerfScore 2.75
-G_M46690_IG07: ; bbWeight=3.96, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x26}, byrefRegs=0000 {}, byref, isz
+ str x28, [fp, #0x28] // [V57 rat2]
+ ; GC ptr vars +{V57}
+ mov w2, #16
+ str w2, [fp, #0x64] // [V58 rat3]
+ ;; size=56 bbWeight=0.25 PerfScore 2.88
+G_M46690_IG07: ; bbWeight=3.96, gcVars=0000000012000000 {V52 V57}, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x26}, byrefRegs=10000000 {x28}, gcvars, byref, isz
; gcrRegs -[x0]
mov x0, x27
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- ldr x2, [fp, #0x18] // [V51 cse2]
+ ldr x2, [fp, #0x28] // [V57 rat2]
; byrRegs +[x2]
- ldr w0, [x2, x28]
+ ldr w0, [x2]
; gcrRegs -[x0]
str w0, [x1, #0x20]
mov x0, x26
@@ -287,13 +297,18 @@ G_M46690_IG07: ; bbWeight=3.96, gcrefRegs=7C80000 {x19 x22 x23 x24 x25 x2
blr x3
; gcrRegs -[x0-x1]
; byrRegs -[x2]
- add x28, x28, #4
- ldr w1, [fp, #0x44] // [V58 rat3]
...
realworld.run.windows.arm64.checked.mch
-16 (-11.76%) : 10631.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
@@ -18,22 +18,21 @@
;* V07 tmp2 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V08 tmp3 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V09 tmp4 [V09,T04] ( 3, 2.25) ref -> x1 single-def "field V01.array (fldOffset=0x0)" P-INDEP
-; V10 cse0 [V10,T06] ( 4, 2.75) int -> x20 "CSE #01: aggressive"
-; V11 cse1 [V11,T05] ( 2, 4.25) byref -> x22 hoist "CSE #02: aggressive"
-; V12 rat0 [V12,T00] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V10 cse0 [V10,T05] ( 4, 2.75) int -> x20 "CSE #01: aggressive"
+; V11 cse1 [V11,T06] ( 2, 0.50) byref -> x22 hoist "CSE #02: aggressive"
+; V12 rat0 [V12,T00] ( 4, 12.25) byref -> x22 "Strength reduced derived IV"
; V13 rat1 [V13,T01] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M49231_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x2
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M49231_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1]
ldr w20, [x1, #0x08]
@@ -47,11 +46,10 @@ G_M49231_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
G_M49231_IG04: ; bbWeight=0.25, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
add x22, x1, #16
; byrRegs +[x22]
- mov x23, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M49231_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
; gcrRegs -[x1]
- ldr x1, [x22, x23]
+ ldr x1, [x22]
; gcrRegs +[x1]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
@@ -64,7 +62,7 @@ G_M49231_IG06: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22
add w21, w21, #1
;; size=4 bbWeight=2 PerfScore 1.00
G_M49231_IG07: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
- add x23, x23, #8
+ add x22, x22, #8
sub w20, w20, #1
cbnz w20, G_M49231_IG05
;; size=12 bbWeight=4 PerfScore 8.00
@@ -74,24 +72,22 @@ G_M49231_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, w21
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49231_IG09: ; bbWeight=0.50, epilog, nogc, extend
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M49231_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49231_IG11: ; bbWeight=0.50, epilog, nogc, extend
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 136, prolog size 20, PerfScore 69.75, instruction count 34, allocated bytes for code 136 (MethodHash=16863fb0) for method Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
+; Total bytes of code 120, prolog size 16, PerfScore 66.62, instruction count 30, allocated bytes for code 120 (MethodHash=16863fb0) for method Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
; ============================================================
Unwind Info:
@@ -102,7 +98,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -113,9 +109,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
-16 (-11.76%) : 25649.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
@@ -8,22 +8,21 @@
; Final local variable assignments
;
; V00 arg0 [V00,T02] ( 3, 3 ) ref -> x0 class-hnd single-def <System.Reflection.MethodInfo>
-; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.ParameterInfo[]>
-;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T03] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.ParameterInfo[]>
+;* V02 loc1 [V02,T05] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V05 cse1 [V05,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V06 rat0 [V06,T00] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V04 cse0 [V04,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V05 cse1 [V05,T04] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V06 rat0 [V06,T00] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V07 rat1 [V07,T01] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M42632_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M42632_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Dynamic.Utils.TypeExtensions:GetParametersCached(System.Reflection.MethodBase):System.Reflection.ParameterInfo[]
@@ -38,11 +37,10 @@ G_M42632_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M42632_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M42632_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Dynamic.Utils.TypeExtensions:IsByRefParameter(System.Reflection.ParameterInfo):ubyte
movk x1, #0xD1FFAB1E LSL #16
@@ -51,7 +49,7 @@ G_M42632_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
blr x1
; gcrRegs -[x0]
cbnz w0, G_M42632_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M42632_IG04
;; size=40 bbWeight=4 PerfScore 46.00
@@ -60,22 +58,20 @@ G_M42632_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M42632_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M42632_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M42632_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 136, prolog size 16, PerfScore 65.25, instruction count 34, allocated bytes for code 136 (MethodHash=51775977) for method System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 62.12, instruction count 30, allocated bytes for code 120 (MethodHash=51775977) for method System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -86,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,9 +93,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-12 (-11.11%) : 14386.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
@@ -17,23 +17,22 @@
;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp4 [V08,T03] ( 4, 2.75) ref -> x2 single-def "field V02.array (fldOffset=0x0)" P-INDEP
-; V09 cse0 [V09,T05] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
-; V10 cse1 [V10,T04] ( 2, 4.25) byref -> x21 hoist "CSE #02: aggressive"
-; V11 cse2 [V11,T06] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
-; V12 rat0 [V12,T00] ( 4, 12.25) long -> x23 "Strength reduced derived IV"
+; V09 cse0 [V09,T04] ( 2, 4.25) long -> x22 hoist "CSE #03: aggressive"
+; V10 cse1 [V10,T06] ( 2, 0.50) byref -> x21 hoist "CSE #02: aggressive"
+; V11 cse2 [V11,T05] ( 3, 1.25) int -> x20 "CSE #04: aggressive"
+; V12 rat0 [V12,T00] ( 4, 12.25) byref -> x21 "Strength reduced derived IV"
; V13 rat1 [V13,T01] ( 4, 12.25) int -> x20 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38436_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M38436_IG02: ; bbWeight=1, gcrefRegs=80004 {x2 x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x2]
cbz x2, G_M38436_IG06
@@ -49,32 +48,30 @@ G_M38436_IG04: ; bbWeight=0.25, gcrefRegs=80004 {x2 x19}, byrefRegs=0000
ldr xzr, [x19]
ldr x1, [x19]
ldr x22, [x1, #0x48]
- mov x23, xzr
- ;; size=20 bbWeight=0.25 PerfScore 2.50
+ ;; size=16 bbWeight=0.25 PerfScore 2.38
G_M38436_IG05: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x2]
- ldr x1, [x21, x23]
+ ldr x1, [x21]
; gcrRegs +[x1]
mov x0, x19
; gcrRegs +[x0]
ldr x2, [x22, #0x20]
blr x2
; gcrRegs -[x0-x1]
- add x23, x23, #8
+ add x21, x21, #8
sub w20, w20, #1
cbnz w20, G_M38436_IG05
;; size=28 bbWeight=4 PerfScore 38.00
G_M38436_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
; byrRegs -[x21]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
-; Total bytes of code 108, prolog size 20, PerfScore 54.75, instruction count 27, allocated bytes for code 108 (MethodHash=b16469db) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
+; Total bytes of code 96, prolog size 16, PerfScore 51.62, instruction count 24, allocated bytes for code 96 (MethodHash=b16469db) for method Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -85,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +90,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ E4 end
+ E4 end
E4 end
-12 (-0.09%) : 25385.dasm - System.Management.Automation.Verbs:.cctor() (FullOpts)
@@ -10,13 +10,13 @@
;
; V00 loc0 [V00,T378] ( 2, 0.50) ref -> x0 class-hnd exact single-def <<unknown class>>
;* V01 loc1 [V01,T379] ( 0, 0 ) int -> zero-ref
-; V02 loc2 [V02,T20] ( 3, 9 ) ref -> x0 class-hnd <System.Reflection.FieldInfo[]>
-;* V03 loc3 [V03,T374] ( 0, 0 ) int -> zero-ref
-; V04 loc4 [V04,T03] ( 4, 56 ) ref -> x25 class-hnd <System.Reflection.FieldInfo>
+; V02 loc2 [V02,T19] ( 3, 9 ) ref -> x0 class-hnd <System.Reflection.FieldInfo[]>
+;* V03 loc3 [V03,T373] ( 0, 0 ) int -> zero-ref
+; V04 loc4 [V04,T03] ( 4, 56 ) ref -> x24 class-hnd <System.Reflection.FieldInfo>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T375] ( 3, 1.50) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.String,ubyte]>
; V07 tmp2 [V07,T376] ( 3, 1.50) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V08 tmp3 [V08,T255] ( 9, 4.50) ref -> x0 class-hnd exact single-def "dup spill" <<unknown class>>
+; V08 tmp3 [V08,T254] ( 9, 4.50) ref -> x0 class-hnd exact single-def "dup spill" <<unknown class>>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
@@ -24,243 +24,243 @@
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-; V16 tmp11 [V16,T07] ( 3, 48 ) ref -> x27 class-hnd "non-inline candidate call" <System.Collections.Generic.Dictionary`2[System.String,ubyte]>
-; V17 tmp12 [V17,T47] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V18 tmp13 [V18,T48] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V19 tmp14 [V19,T22] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V20 tmp15 [V20,T49] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V21 tmp16 [V21,T50] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V22 tmp17 [V22,T51] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V23 tmp18 [V23,T18] ( 5, 10 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V24 tmp19 [V24,T52] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V25 tmp20 [V25,T53] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V26 tmp21 [V26,T54] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V27 tmp22 [V27,T23] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V28 tmp23 [V28,T55] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V29 tmp24 [V29,T56] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V30 tmp25 [V30,T57] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V31 tmp26 [V31,T58] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V32 tmp27 [V32,T59] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V33 tmp28 [V33,T24] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V34 tmp29 [V34,T60] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V35 tmp30 [V35,T25] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V36 tmp31 [V36,T61] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V37 tmp32 [V37,T62] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V38 tmp33 [V38,T63] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V39 tmp34 [V39,T64] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V40 tmp35 [V40,T65] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V41 tmp36 [V41,T66] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V42 tmp37 [V42,T67] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V43 tmp38 [V43,T68] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V44 tmp39 [V44,T69] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V45 tmp40 [V45,T70] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V46 tmp41 [V46,T71] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V47 tmp42 [V47,T72] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V48 tmp43 [V48,T73] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V49 tmp44 [V49,T74] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V50 tmp45 [V50,T75] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V51 tmp46 [V51,T76] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V52 tmp47 [V52,T77] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V53 tmp48 [V53,T19] ( 5, 10 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V54 tmp49 [V54,T78] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V55 tmp50 [V55,T79] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V56 tmp51 [V56,T80] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V57 tmp52 [V57,T81] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V58 tmp53 [V58,T82] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V59 tmp54 [V59,T26] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V60 tmp55 [V60,T83] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V61 tmp56 [V61,T84] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V62 tmp57 [V62,T85] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V63 tmp58 [V63,T86] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V64 tmp59 [V64,T87] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V65 tmp60 [V65,T88] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V66 tmp61 [V66,T89] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V67 tmp62 [V67,T90] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V68 tmp63 [V68,T91] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V69 tmp64 [V69,T92] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V70 tmp65 [V70,T93] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V71 tmp66 [V71,T94] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V72 tmp67 [V72,T95] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V73 tmp68 [V73,T96] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V74 tmp69 [V74,T97] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V75 tmp70 [V75,T27] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V76 tmp71 [V76,T98] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V77 tmp72 [V77,T28] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V78 tmp73 [V78,T99] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V79 tmp74 [V79,T29] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V80 tmp75 [V80,T100] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V81 tmp76 [V81,T30] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V82 tmp77 [V82,T101] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V83 tmp78 [V83,T31] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V84 tmp79 [V84,T102] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V85 tmp80 [V85,T103] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V86 tmp81 [V86,T104] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V87 tmp82 [V87,T105] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V88 tmp83 [V88,T106] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V89 tmp84 [V89,T107] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V90 tmp85 [V90,T108] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V91 tmp86 [V91,T32] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V92 tmp87 [V92,T109] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V93 tmp88 [V93,T110] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V94 tmp89 [V94,T111] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V95 tmp90 [V95,T112] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V96 tmp91 [V96,T113] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V97 tmp92 [V97,T114] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V98 tmp93 [V98,T115] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V99 tmp94 [V99,T116] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V100 tmp95 [V100,T117] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V101 tmp96 [V101,T118] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V102 tmp97 [V102,T119] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V103 tmp98 [V103,T120] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V104 tmp99 [V104,T121] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V105 tmp100 [V105,T33] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V106 tmp101 [V106,T122] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V107 tmp102 [V107,T123] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V108 tmp103 [V108,T124] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V109 tmp104 [V109,T125] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V110 tmp105 [V110,T126] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V111 tmp106 [V111,T127] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V112 tmp107 [V112,T128] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V113 tmp108 [V113,T129] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V114 tmp109 [V114,T130] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V115 tmp110 [V115,T34] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V116 tmp111 [V116,T131] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V117 tmp112 [V117,T132] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V118 tmp113 [V118,T133] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V119 tmp114 [V119,T134] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V120 tmp115 [V120,T135] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V121 tmp116 [V121,T136] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V122 tmp117 [V122,T137] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V123 tmp118 [V123,T138] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V124 tmp119 [V124,T139] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V125 tmp120 [V125,T140] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V126 tmp121 [V126,T141] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V127 tmp122 [V127,T142] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V128 tmp123 [V128,T143] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V129 tmp124 [V129,T144] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V130 tmp125 [V130,T145] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V131 tmp126 [V131,T35] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V132 tmp127 [V132,T146] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V133 tmp128 [V133,T36] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V134 tmp129 [V134,T147] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V135 tmp130 [V135,T148] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V136 tmp131 [V136,T149] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V137 tmp132 [V137,T150] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V138 tmp133 [V138,T151] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V139 tmp134 [V139,T152] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V140 tmp135 [V140,T153] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V141 tmp136 [V141,T154] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V142 tmp137 [V142,T155] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V143 tmp138 [V143,T37] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V144 tmp139 [V144,T156] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V145 tmp140 [V145,T157] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V146 tmp141 [V146,T158] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V147 tmp142 [V147,T159] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V148 tmp143 [V148,T160] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V149 tmp144 [V149,T161] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V150 tmp145 [V150,T162] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V151 tmp146 [V151,T163] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V152 tmp147 [V152,T164] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V153 tmp148 [V153,T165] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V154 tmp149 [V154,T166] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V155 tmp150 [V155,T167] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V156 tmp151 [V156,T168] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V157 tmp152 [V157,T169] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V158 tmp153 [V158,T170] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V159 tmp154 [V159,T171] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V160 tmp155 [V160,T172] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V161 tmp156 [V161,T173] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V162 tmp157 [V162,T174] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V163 tmp158 [V163,T175] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V164 tmp159 [V164,T176] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V165 tmp160 [V165,T38] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V166 tmp161 [V166,T177] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V167 tmp162 [V167,T178] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V168 tmp163 [V168,T179] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V169 tmp164 [V169,T180] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V170 tmp165 [V170,T181] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V171 tmp166 [V171,T39] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V172 tmp167 [V172,T182] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V173 tmp168 [V173,T183] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V174 tmp169 [V174,T184] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V175 tmp170 [V175,T185] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V176 tmp171 [V176,T186] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V177 tmp172 [V177,T187] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V178 tmp173 [V178,T188] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V179 tmp174 [V179,T189] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V180 tmp175 [V180,T190] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V181 tmp176 [V181,T40] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V182 tmp177 [V182,T191] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V183 tmp178 [V183,T192] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V184 tmp179 [V184,T193] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V185 tmp180 [V185,T194] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V186 tmp181 [V186,T195] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V187 tmp182 [V187,T196] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V188 tmp183 [V188,T197] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V189 tmp184 [V189,T198] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V190 tmp185 [V190,T199] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V191 tmp186 [V191,T200] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V192 tmp187 [V192,T201] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V193 tmp188 [V193,T202] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V194 tmp189 [V194,T203] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V195 tmp190 [V195,T204] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V196 tmp191 [V196,T205] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V197 tmp192 [V197,T17] ( 6, 12 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V198 tmp193 [V198,T206] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V199 tmp194 [V199,T207] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V200 tmp195 [V200,T208] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V201 tmp196 [V201,T41] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V202 tmp197 [V202,T209] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V203 tmp198 [V203,T210] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V204 tmp199 [V204,T211] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V205 tmp200 [V205,T212] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V206 tmp201 [V206,T213] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V207 tmp202 [V207,T214] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V208 tmp203 [V208,T215] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V209 tmp204 [V209,T42] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V210 tmp205 [V210,T216] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V211 tmp206 [V211,T217] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V212 tmp207 [V212,T218] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V213 tmp208 [V213,T219] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V214 tmp209 [V214,T220] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V215 tmp210 [V215,T43] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V216 tmp211 [V216,T221] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V217 tmp212 [V217,T222] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V218 tmp213 [V218,T223] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V219 tmp214 [V219,T224] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V220 tmp215 [V220,T225] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V221 tmp216 [V221,T226] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V222 tmp217 [V222,T227] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V223 tmp218 [V223,T44] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V224 tmp219 [V224,T228] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V225 tmp220 [V225,T45] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V226 tmp221 [V226,T229] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V227 tmp222 [V227,T230] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V228 tmp223 [V228,T231] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V229 tmp224 [V229,T232] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V230 tmp225 [V230,T233] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V231 tmp226 [V231,T234] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V232 tmp227 [V232,T235] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V233 tmp228 [V233,T236] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V234 tmp229 [V234,T237] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V235 tmp230 [V235,T238] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V236 tmp231 [V236,T239] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V237 tmp232 [V237,T240] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V238 tmp233 [V238,T241] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V239 tmp234 [V239,T46] ( 4, 8 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V240 tmp235 [V240,T242] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V241 tmp236 [V241,T243] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
-; V242 tmp237 [V242,T244] ( 3, 6 ) ref -> x19 class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.String[]]>
-; V243 tmp238 [V243,T245] ( 3, 6 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String[]>
...
-4 (-0.06%) : 13486.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeTypeParameters(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]:this (FullOpts)
@@ -8,83 +8,83 @@
; 0 inlinees with PGO data; 133 single block inlinees; 47 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T41] ( 13, 228.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol>
+; V00 this [V00,T40] ( 13, 228.50) ref -> x19 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol>
; V01 arg1 [V01,T170] ( 3, 3 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V02 loc0 [V02,T40] ( 11, 238.50) ref -> x21 class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol+<>c__DisplayClass10_0>
-; V03 loc1 [V03,T69] ( 5, 128.50) ubyte -> x20
+; V02 loc0 [V02,T39] ( 11, 238.50) ref -> x21 class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol+<>c__DisplayClass10_0>
+; V03 loc1 [V03,T68] ( 5, 128.50) ubyte -> x20
; V04 loc2 [V04,T101] ( 5, 83.06) ref -> x22 class-hnd exact single-def <<unknown class>>
; V05 loc3 [V05,T88] ( 4, 96.50) ref -> x23 class-hnd exact single-def <<unknown class>>
; V06 loc4 [V06,T125] ( 8, 21 ) ref -> x24 class-hnd exact single-def <<unknown class>>
;* V07 loc5 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.SyntaxReference]>
;* V08 loc6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxReference]>
-; V09 loc7 [V09,T149] ( 6, 11 ) ref -> [fp+0x270] class-hnd spill-single-def <<unknown class>>
+; V09 loc7 [V09,T149] ( 6, 11 ) ref -> [fp+0x280] class-hnd spill-single-def <<unknown class>>
; V10 loc8 [V10,T102] ( 3, 68 ) ref -> x28 class-hnd <Microsoft.CodeAnalysis.SyntaxTree>
-; V11 loc9 [V11,T140] ( 4, 12 ) ref -> [fp+0x268] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
+; V11 loc9 [V11,T140] ( 4, 12 ) ref -> [fp+0x278] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
; V12 loc10 [V12,T130] ( 6, 18 ) ushort -> [fp+0x3EC] spill-single-def
; V13 loc11 [V13,T148] ( 2, 12 ) ubyte -> [fp+0x3E8] spill-single-def
-; V14 loc12 [V14,T44] ( 9, 200 ) ref -> [fp+0x260] class-hnd exact spill-single-def <<unknown class>>
-; V15 loc13 [V15,T19] ( 13, 326.56) int -> [fp+0x3E4]
+; V14 loc12 [V14,T43] ( 9, 200 ) ref -> [fp+0x270] class-hnd exact spill-single-def <<unknown class>>
+; V15 loc13 [V15,T18] ( 13, 326.56) int -> [fp+0x3E4]
;* V16 loc14 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.CancellationToken>
; V17 loc15 [V17 ] ( 7, 904 ) struct (32) [fp+0x3C0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SeparatedSyntaxList`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax]>
; V18 loc16 [V18,T164] ( 2, 8 ) struct (24) [fp+0x3A8] do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax]>
-; V19 loc17 [V19,T06] ( 11, 552 ) ref -> [fp+0x258] class-hnd exact spill-single-def <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax>
-; V20 loc18 [V20,T01] ( 19,1120 ) ref -> [fp+0x250] class-hnd <System.String>
-; V21 loc19 [V21,T65] ( 5, 160 ) ref -> [fp+0x248] class-hnd exact spill-single-def <Microsoft.CodeAnalysis.SourceLocation>
-; V22 loc20 [V22,T42] ( 7, 224 ) ref -> [fp+0x240] class-hnd spill-single-def <System.String>
+; V19 loc17 [V19,T06] ( 11, 552 ) ref -> [fp+0x268] class-hnd exact spill-single-def <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax>
+; V20 loc18 [V20,T01] ( 19,1120 ) ref -> [fp+0x260] class-hnd <System.String>
+; V21 loc19 [V21,T64] ( 5, 160 ) ref -> [fp+0x258] class-hnd exact spill-single-def <Microsoft.CodeAnalysis.SourceLocation>
+; V22 loc20 [V22,T41] ( 7, 224 ) ref -> [fp+0x250] class-hnd spill-single-def <System.String>
; V23 loc21 [V23,T09] ( 18, 480 ) struct (24) [fp+0x390] do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
;* V24 loc22 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
; V25 loc23 [V25,T111] ( 6, 44.80) int -> [fp+0x38C]
-; V26 loc24 [V26,T70] ( 4, 128 ) ref -> [fp+0x238] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
+; V26 loc24 [V26,T69] ( 4, 128 ) ref -> [fp+0x248] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
;* V27 loc25 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SourceLocation]>
;# V28 OutArgs [V28 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V29 tmp1 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol+<>c__DisplayClass10_0>
; V30 tmp2 [V30,T177] ( 3, 3 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V31 tmp3 [V31,T114] ( 4, 32 ) ref -> x28 class-hnd "dup spill" <Microsoft.CodeAnalysis.SyntaxReference>
-; V32 tmp4 [V32,T133] ( 3, 16 ) ref -> [fp+0x230] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V32 tmp4 [V32,T133] ( 3, 16 ) ref -> [fp+0x240] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V33 tmp5 [V33,T113] ( 5, 40 ) struct (24) [fp+0x370] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxToken>
; V34 tmp6 [V34,T158] ( 3, 8 ) int -> x0
-; V35 tmp7 [V35,T119] ( 3, 24 ) ref -> [fp+0x228] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+; V35 tmp7 [V35,T119] ( 3, 24 ) ref -> [fp+0x238] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
; V36 tmp8 [V36 ] ( 2, 512 ) struct (24) [fp+0x358] do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxToken>
-; V37 tmp9 [V37,T20] ( 5, 320 ) ref -> [fp+0x220] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SourceLocation>
+; V37 tmp9 [V37,T19] ( 5, 320 ) ref -> [fp+0x230] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.SourceLocation>
;* V38 tmp10 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
-; V39 tmp11 [V39,T12] ( 6, 384 ) ref -> [fp+0x218] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterBuilder>
-; V40 tmp12 [V40,T46] ( 3, 192 ) ref -> [fp+0x210] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V41 tmp13 [V41,T47] ( 3, 192 ) ref -> [fp+0x208] class-hnd exact spill-single-def "dup spill" <System.Object[]>
+; V39 tmp11 [V39,T12] ( 6, 384 ) ref -> [fp+0x228] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterBuilder>
+; V40 tmp12 [V40,T45] ( 3, 192 ) ref -> [fp+0x220] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V41 tmp13 [V41,T46] ( 3, 192 ) ref -> [fp+0x218] class-hnd exact spill-single-def "dup spill" <System.Object[]>
;* V42 tmp14 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.SourceLocation>
-; V43 tmp15 [V43,T48] ( 3, 192 ) ref -> [fp+0x200] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V44 tmp16 [V44,T49] ( 3, 192 ) ref -> [fp+0x1F8] class-hnd exact spill-single-def "dup spill" <System.Object[]>
+; V43 tmp15 [V43,T47] ( 3, 192 ) ref -> [fp+0x210] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V44 tmp16 [V44,T48] ( 3, 192 ) ref -> [fp+0x208] class-hnd exact spill-single-def "dup spill" <System.Object[]>
;* V45 tmp17 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.SourceLocation>
;* V46 tmp18 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V47 tmp19 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
-; V48 tmp20 [V48,T50] ( 3, 192 ) ref -> [fp+0x1F0] class-hnd exact spill-single-def "dup spill" <System.Object[]>
-; V49 tmp21 [V49,T51] ( 3, 192 ) ref -> [fp+0x1E8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V50 tmp22 [V50,T27] ( 4, 256 ) ref -> [fp+0x1E0] class-hnd exact spill-single-def "dup spill" <System.Object[]>
-; V51 tmp23 [V51,T52] ( 3, 192 ) ref -> [fp+0x1D8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V52 tmp24 [V52,T75] ( 2, 128 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-; V53 tmp25 [V53,T36] ( 3, 256 ) ref -> [fp+0x1D0] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V48 tmp20 [V48,T49] ( 3, 192 ) ref -> [fp+0x200] class-hnd exact spill-single-def "dup spill" <System.Object[]>
+; V49 tmp21 [V49,T50] ( 3, 192 ) ref -> [fp+0x1F8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V50 tmp22 [V50,T26] ( 4, 256 ) ref -> [fp+0x1F0] class-hnd exact spill-single-def "dup spill" <System.Object[]>
+; V51 tmp23 [V51,T51] ( 3, 192 ) ref -> [fp+0x1E8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V52 tmp24 [V52,T74] ( 2, 128 ) ref -> x15 class-hnd "Strict ordering of exceptions for Array store" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+; V53 tmp25 [V53,T35] ( 3, 256 ) ref -> [fp+0x1E0] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V54 tmp26 [V54,T04] ( 5, 640 ) struct (24) [fp+0x340] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxToken>
-; V55 tmp27 [V55,T106] ( 3, 48 ) ref -> [fp+0x1C8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
+; V55 tmp27 [V55,T106] ( 3, 48 ) ref -> [fp+0x1D8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V56 tmp28 [V56,T186] ( 3, 0 ) ref -> x19 class-hnd exact "Single-def Box Helper" <<unknown class>>
; V57 tmp29 [V57,T172] ( 4, 4 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V58 tmp30 [V58,T173] ( 4, 4 ) ref -> x19 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V59 tmp31 [V59 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.SyntaxReference]>
;* V60 tmp32 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.SyntaxReference]>
;* V61 tmp33 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon[]>
-; V62 tmp34 [V62,T127] ( 5, 20 ) ref -> [fp+0x1C0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax>
+; V62 tmp34 [V62,T127] ( 5, 20 ) ref -> [fp+0x1D0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax>
;* V63 tmp35 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
-; V64 tmp36 [V64,T132] ( 4, 16 ) byref -> [fp+0x1B8] spill-single-def "Inlining Arg"
-; V65 tmp37 [V65,T154] ( 4, 8 ) ref -> [fp+0x1B0] class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
-; V66 tmp38 [V66,T155] ( 4, 8 ) ref -> [fp+0x1A8] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+; V64 tmp36 [V64,T132] ( 4, 16 ) byref -> [fp+0x1C8] spill-single-def "Inlining Arg"
+; V65 tmp37 [V65,T154] ( 4, 8 ) ref -> [fp+0x1C0] class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
+; V66 tmp38 [V66,T155] ( 4, 8 ) ref -> [fp+0x1B8] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
;* V67 tmp39 [V67 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
; V68 tmp40 [V68,T160] ( 2, 8 ) ref -> x1 class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
;* V69 tmp41 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax>
;* V70 tmp42 [V70 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
; V71 tmp43 [V71,T135] ( 2, 16 ) ref -> x2 class-hnd "dup spill" <System.Func`2[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location],Microsoft.CodeAnalysis.Location]>
-; V72 tmp44 [V72,T134] ( 3, 16 ) ref -> [fp+0x1A0] class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.ParseOptions>
+; V72 tmp44 [V72,T134] ( 3, 16 ) ref -> [fp+0x1B0] class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.ParseOptions>
;* V73 tmp45 [V73 ] ( 0, 0 ) int -> zero-ref
;* V74 tmp46 [V74 ] ( 0, 0 ) ref -> zero-ref
;* V75 tmp47 [V75 ] ( 0, 0 ) ref -> zero-ref
-; V76 tmp48 [V76,T138] ( 5, 14 ) ref -> [fp+0x198]
+; V76 tmp48 [V76,T138] ( 5, 14 ) ref -> [fp+0x1A8]
;* V77 tmp49 [V77 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location]>
; V78 tmp50 [V78,T128] ( 5, 20 ) ref -> x2 class-hnd exact "NewObj constructor temp" <System.Func`2[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location],Microsoft.CodeAnalysis.Location]>
; V79 tmp51 [V79,T141] ( 4, 12 ) ref -> x0 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
@@ -95,21 +95,21 @@
;* V84 tmp56 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V85 tmp57 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
; V86 tmp58 [V86 ] ( 6, 44 ) struct (32) [fp+0x320] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location]>
-; V87 tmp59 [V87,T150] ( 4, 10 ) ref -> [fp+0x190] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V88 tmp60 [V88,T129] ( 3, 20 ) ref -> [fp+0x188] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpParseOptions>
-; V89 tmp61 [V89,T143] ( 3, 12 ) ref -> [fp+0x180] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V87 tmp59 [V87,T150] ( 4, 10 ) ref -> [fp+0x1A0] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
+; V88 tmp60 [V88,T129] ( 3, 20 ) ref -> [fp+0x198] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpParseOptions>
+; V89 tmp61 [V89,T143] ( 3, 12 ) ref -> [fp+0x190] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
;* V90 tmp62 [V90 ] ( 0, 0 ) ref -> zero-ref
-; V91 tmp63 [V91,T162] ( 2, 8 ) ref -> [fp+0x178] class-hnd spill-single-def "Inlining Arg" <System.__Canon>
-; V92 tmp64 [V92,T118] ( 6, 24 ) ref -> [fp+0x170] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
+; V91 tmp63 [V91,T162] ( 2, 8 ) ref -> [fp+0x188] class-hnd spill-single-def "Inlining Arg" <System.__Canon>
+; V92 tmp64 [V92,T118] ( 6, 24 ) ref -> [fp+0x180] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
;* V93 tmp65 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
-; V94 tmp66 [V94,T144] ( 3, 12 ) ref -> [fp+0x168] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
+; V94 tmp66 [V94,T144] ( 3, 12 ) ref -> [fp+0x178] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
; V95 tmp67 [V95,T151] ( 3, 10 ) ref -> x2 class-hnd "Inline stloc first use temp" <<unknown class>>
; V96 tmp68 [V96,T142] ( 4, 12 ) int -> x0 "Inline stloc first use temp"
; V97 tmp69 [V97,T137] ( 2, 16 ) struct (32) [fp+0x300] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SeparatedSyntaxList`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax]>
-; V98 tmp70 [V98,T120] ( 3, 24 ) ref -> [fp+0x160] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
+; V98 tmp70 [V98,T120] ( 3, 24 ) ref -> [fp+0x170] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
;* V99 tmp71 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxTree>
;* V100 tmp72 [V100 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-; V101 tmp73 [V101,T112] ( 5, 40 ) ref -> [fp+0x158] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
+; V101 tmp73 [V101,T112] ( 5, 40 ) ref -> [fp+0x168] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
; V102 tmp74 [V102,T103] ( 4, 64 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
;* V103 tmp75 [V103 ] ( 0, 0 ) ref -> zero-ref
;* V104 tmp76 [V104 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan>
@@ -118,108 +118,108 @@
; V107 tmp79 [V107 ] ( 4, 64 ) struct ( 8) [fp+0x2F0] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Text.TextSpan>
;* V108 tmp80 [V108 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.Text.TextSpan>
;* V109 tmp81 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V110 tmp82 [V110,T107] ( 3, 48 ) ref -> [fp+0x150] class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
+; V110 tmp82 [V110,T107] ( 3, 48 ) ref -> [fp+0x160] class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
;* V111 tmp83 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V112 tmp84 [V112,T108] ( 3, 48 ) ref -> [fp+0x148] class-hnd "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V112 tmp84 [V112,T108] ( 3, 48 ) ref -> [fp+0x158] class-hnd "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
;* V113 tmp85 [V113 ] ( 0, 0 ) ref -> zero-ref
-; V114 tmp86 [V114,T89] ( 6, 96 ) ref -> [fp+0x140] class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
+; V114 tmp86 [V114,T89] ( 6, 96 ) ref -> [fp+0x150] class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
;* V115 tmp87 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
-; V116 tmp88 [V116,T109] ( 3, 48 ) ref -> [fp+0x138] class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
+; V116 tmp88 [V116,T109] ( 3, 48 ) ref -> [fp+0x148] class-hnd "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
;* V117 tmp89 [V117 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
-; V118 tmp90 [V118,T39] ( 2, 256 ) ref -> x2 class-hnd "dup spill" <System.Func`2[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location],Microsoft.CodeAnalysis.Location]>
-; V119 tmp91 [V119,T37] ( 3, 256 ) ref -> [fp+0x130] class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.ParseOptions>
+; V118 tmp90 [V118,T38] ( 2, 256 ) ref -> x2 class-hnd "dup spill" <System.Func`2[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location],Microsoft.CodeAnalysis.Location]>
+; V119 tmp91 [V119,T36] ( 3, 256 ) ref -> [fp+0x140] class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.ParseOptions>
;* V120 tmp92 [V120 ] ( 0, 0 ) int -> zero-ref
;* V121 tmp93 [V121 ] ( 0, 0 ) ref -> zero-ref
;* V122 tmp94 [V122 ] ( 0, 0 ) ref -> zero-ref
-; V123 tmp95 [V123,T43] ( 5, 224 ) ref -> [fp+0x128]
+; V123 tmp95 [V123,T42] ( 5, 224 ) ref -> [fp+0x138]
;* V124 tmp96 [V124 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location]>
-; V125 tmp97 [V125,T21] ( 5, 320 ) ref -> x2 class-hnd exact "NewObj constructor temp" <System.Func`2[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location],Microsoft.CodeAnalysis.Location]>
-; V126 tmp98 [V126,T45] ( 4, 192 ) ref -> x0 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
+; V125 tmp97 [V125,T20] ( 5, 320 ) ref -> x2 class-hnd exact "NewObj constructor temp" <System.Func`2[System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location],Microsoft.CodeAnalysis.Location]>
+; V126 tmp98 [V126,T44] ( 4, 192 ) ref -> x0 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
;* V127 tmp99 [V127 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
;* V128 tmp100 [V128 ] ( 0, 0 ) ref -> zero-ref
-; V129 tmp101 [V129,T76] ( 2, 128 ) ref -> x15 class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.MessageIDExtensions+<>c>
+; V129 tmp101 [V129,T75] ( 2, 128 ) ref -> x15 class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.MessageIDExtensions+<>c>
;* V130 tmp102 [V130 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
;* V131 tmp103 [V131 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V132 tmp104 [V132 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
; V133 tmp105 [V133 ] ( 6, 704 ) struct (32) [fp+0x2D0] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <System.ValueTuple`2[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.Location]>
-; V134 tmp106 [V134,T68] ( 4, 160 ) ref -> [fp+0x120] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V135 tmp107 [V135,T22] ( 3, 320 ) ref -> [fp+0x118] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpParseOptions>
-; V136 tmp108 [V136,T53] ( 3, 192 ) ref -> [fp+0x110] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V134 tmp106 [V134,T67] ( 4, 160 ) ref -> [fp+0x130] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
+; V135 tmp107 [V135,T21] ( 3, 320 ) ref -> [fp+0x128] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpParseOptions>
+; V136 tmp108 [V136,T52] ( 3, 192 ) ref -> [fp+0x120] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
;* V137 tmp109 [V137 ] ( 0, 0 ) ref -> zero-ref
-; V138 tmp110 [V138,T77] ( 2, 128 ) ref -> [fp+0x108] class-hnd spill-single-def "Inlining Arg" <System.__Canon>
-; V139 tmp111 [V139,T10] ( 6, 448 ) ref -> [fp+0x100] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
+; V138 tmp110 [V138,T76] ( 2, 128 ) ref -> [fp+0x118] class-hnd spill-single-def "Inlining Arg" <System.__Canon>
+; V139 tmp111 [V139,T10] ( 6, 448 ) ref -> [fp+0x110] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
;* V140 tmp112 [V140 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
-; V141 tmp113 [V141,T38] ( 3, 256 ) ref -> [fp+0xF8] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
-; V142 tmp114 [V142,T54] ( 3, 192 ) ref -> [fp+0xF0] class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxTree>
+; V141 tmp113 [V141,T37] ( 3, 256 ) ref -> [fp+0x108] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
+; V142 tmp114 [V142,T53] ( 3, 192 ) ref -> [fp+0x100] class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxTree>
;* V143 tmp115 [V143 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-; V144 tmp116 [V144,T28] ( 4, 256 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
+; V144 tmp116 [V144,T27] ( 4, 256 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
;* V145 tmp117 [V145 ] ( 0, 0 ) ref -> zero-ref
;* V146 tmp118 [V146 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan>
;* V147 tmp119 [V147 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V148 tmp120 [V148,T84] ( 2, 128 ) int -> [fp+0x2CC] spill-single-def "impAppendStmt"
+; V148 tmp120 [V148,T83] ( 2, 128 ) int -> [fp+0x2CC] spill-single-def "impAppendStmt"
; V149 tmp121 [V149 ] ( 4, 256 ) struct ( 8) [fp+0x2C0] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Text.TextSpan>
;* V150 tmp122 [V150 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.Text.TextSpan>
-; V151 tmp123 [V151,T90] ( 3, 96 ) ref -> [fp+0xE8] class-hnd "Inline return value spill temp" <System.String>
-; V152 tmp124 [V152,T29] ( 4, 256 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
+; V151 tmp123 [V151,T90] ( 3, 96 ) ref -> [fp+0xF8] class-hnd "Inline return value spill temp" <System.String>
+; V152 tmp124 [V152,T28] ( 4, 256 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
;* V153 tmp125 [V153 ] ( 0, 0 ) ref -> zero-ref
; V154 tmp126 [V154,T91] ( 3, 96 ) ref -> x0
-; V155 tmp127 [V155,T66] ( 5, 160 ) ref -> x3
-; V156 tmp128 [V156,T30] ( 4, 256 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
+; V155 tmp127 [V155,T65] ( 5, 160 ) ref -> x3
+; V156 tmp128 [V156,T29] ( 4, 256 ) ref -> x0 class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
;* V157 tmp129 [V157 ] ( 0, 0 ) ref -> zero-ref
; V158 tmp130 [V158,T92] ( 3, 96 ) ref -> x15
-; V159 tmp131 [V159,T71] ( 4, 128 ) ref -> x15
-; V160 tmp132 [V160,T00] ( 12,2048 ) ref -> [fp+0xE0] class-hnd exact "Inlining Arg" <System.String>
-; V161 tmp133 [V161,T35] ( 4, 256 ) ubyte -> x0 "Inline return value spill temp"
+; V159 tmp131 [V159,T70] ( 4, 128 ) ref -> x15
+; V160 tmp132 [V160,T00] ( 12,2048 ) ref -> [fp+0xF0] class-hnd exact "Inlining Arg" <System.String>
+; V161 tmp133 [V161,T34] ( 4, 256 ) ubyte -> x0 "Inline return value spill temp"
; V162 tmp134 [V162,T08] ( 4, 512 ) byref -> x0 "impAppendStmt"
;* V163 tmp135 [V163 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V164 tmp136 [V164,T55] ( 3, 192 ) ref -> [fp+0xD8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
+; V164 tmp136 [V164,T54] ( 3, 192 ) ref -> [fp+0xE8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
;* V165 tmp137 [V165 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V166 tmp138 [V166,T56] ( 3, 192 ) ref -> [fp+0xD0] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V166 tmp138 [V166,T55] ( 3, 192 ) ref -> [fp+0xE0] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
;* V167 tmp139 [V167 ] ( 0, 0 ) ref -> zero-ref
-; V168 tmp140 [V168,T13] ( 6, 384 ) ref -> [fp+0xC8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
+; V168 tmp140 [V168,T13] ( 6, 384 ) ref -> [fp+0xD8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
;* V169 tmp141 [V169 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
-; V170 tmp142 [V170,T57] ( 3, 192 ) ref -> [fp+0xC0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
+; V170 tmp142 [V170,T56] ( 3, 192 ) ref -> [fp+0xD0] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
;* V171 tmp143 [V171 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V172 tmp144 [V172,T58] ( 3, 192 ) ref -> [fp+0xB8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
+; V172 tmp144 [V172,T57] ( 3, 192 ) ref -> [fp+0xC8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
;* V173 tmp145 [V173 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
-; V174 tmp146 [V174,T59] ( 3, 192 ) ref -> [fp+0xB0] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V174 tmp146 [V174,T58] ( 3, 192 ) ref -> [fp+0xC0] class-hnd spill-single-def "dup spill" <Microsoft.CodeAnalysis.DiagnosticBag>
;* V175 tmp147 [V175 ] ( 0, 0 ) ref -> zero-ref
-; V176 tmp148 [V176,T14] ( 6, 384 ) ref -> [fp+0xA8] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
...
+4 (+0.37%) : 6350.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingEstimator:GetOutputSchema(Microsoft.ML.SchemaShape):Microsoft.ML.SchemaShape:this (FullOpts)
@@ -11,33 +11,33 @@
; V00 this [V00,T11] ( 6, 4 ) ref -> x20 this class-hnd single-def <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator>
; V01 arg1 [V01,T09] ( 5, 8 ) ref -> x19 class-hnd single-def <Microsoft.ML.SchemaShape>
; V02 loc0 [V02,T08] ( 6, 11 ) ref -> x21 class-hnd single-def <<unknown class>>
-; V03 loc1 [V03,T21] ( 3, 2.25) ref -> x1 class-hnd exact single-def <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions[]>
-;* V04 loc2 [V04,T25] ( 0, 0 ) int -> zero-ref
-; V05 loc3 [V05,T06] ( 5, 12 ) ref -> x25 class-hnd exact <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions>
-; V06 loc4 [V06 ] ( 4, 12 ) struct (32) [fp+0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.ML.SchemaShape+Column>
+; V03 loc1 [V03,T20] ( 3, 2.25) ref -> x1 class-hnd exact single-def <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions[]>
+;* V04 loc2 [V04,T24] ( 0, 0 ) int -> zero-ref
+; V05 loc3 [V05,T06] ( 5, 12 ) ref -> x24 class-hnd exact <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions>
+; V06 loc4 [V06 ] ( 4, 12 ) struct (32) [fp+0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.ML.SchemaShape+Column>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T16] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[Microsoft.ML.SchemaShape+Column,System.String]>
+; V08 tmp1 [V08,T15] ( 2, 4 ) ref -> x2 class-hnd single-def "dup spill" <System.Func`2[Microsoft.ML.SchemaShape+Column,System.String]>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
-; V10 tmp3 [V10,T18] ( 4, 3.50) ref -> x2
+; V10 tmp3 [V10,T17] ( 4, 3.50) ref -> x2
; V11 tmp4 [V11,T00] ( 3, 20 ) ref -> x0 "ISINST eval op1"
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "spilling qmarkNull"
; V13 tmp6 [V13,T27] ( 2, 0 ) ref -> x20 class-hnd "non-inline candidate call" <Microsoft.ML.Runtime.IHost>
-; V14 tmp7 [V14,T28] ( 2, 0 ) ref -> x25 class-hnd exact "non-inline candidate call" <System.String>
+; V14 tmp7 [V14,T28] ( 2, 0 ) ref -> x24 class-hnd exact "non-inline candidate call" <System.String>
; V15 tmp8 [V15,T26] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
-; V17 tmp10 [V17,T01] ( 2, 16 ) ref -> x26 class-hnd exact "impAppendStmt" <System.String>
-; V18 tmp11 [V18,T02] ( 2, 16 ) ref -> x25 class-hnd exact "impAppendStmt" <System.String>
-; V19 tmp12 [V19 ] ( 3, 24 ) struct (32) [fp+0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.ML.SchemaShape+Column>
+; V17 tmp10 [V17,T01] ( 2, 16 ) ref -> x25 class-hnd exact "impAppendStmt" <System.String>
+; V18 tmp11 [V18,T02] ( 2, 16 ) ref -> x24 class-hnd exact "impAppendStmt" <System.String>
+; V19 tmp12 [V19 ] ( 3, 24 ) struct (32) [fp+0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.ML.SchemaShape+Column>
; V20 tmp13 [V20,T12] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <Microsoft.ML.SchemaShape>
; V21 tmp14 [V21,T13] ( 5, 5 ) ref -> x2 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[Microsoft.ML.SchemaShape+Column,System.String]>
-; V22 tmp15 [V22,T23] ( 2, 2 ) ref -> x21 class-hnd single-def "Inlining Arg" <Microsoft.ML.Runtime.IHost>
-; V23 tmp16 [V23,T20] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+<>c>
-; V24 tmp17 [V24 ] ( 2, 16 ) struct (32) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <Microsoft.ML.SchemaShape+Column>
+; V22 tmp15 [V22,T22] ( 2, 2 ) ref -> x21 class-hnd single-def "Inlining Arg" <Microsoft.ML.Runtime.IHost>
+; V23 tmp16 [V23,T19] ( 3, 3 ) ref -> x15 class-hnd exact single-def "Inlining Arg" <Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+<>c>
+; V24 tmp17 [V24 ] ( 2, 16 ) struct (32) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "Inlining Arg" <Microsoft.ML.SchemaShape+Column>
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <<unknown class>>
-; V27 tmp20 [V27,T17] ( 2, 4 ) ref -> x19 class-hnd exact single-def "dup spill" <System.Collections.Generic.Dictionary`2+ValueCollection[System.__Canon,Microsoft.ML.SchemaShape+Column]>
-; V28 tmp21 [V28,T19] ( 4, 3.50) ref -> x19
-; V29 tmp22 [V29,T15] ( 4, 4 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V27 tmp20 [V27,T16] ( 2, 4 ) ref -> x19 class-hnd exact single-def "dup spill" <System.Collections.Generic.Dictionary`2+ValueCollection[System.__Canon,Microsoft.ML.SchemaShape+Column]>
+; V28 tmp21 [V28,T18] ( 4, 3.50) ref -> x19
+; V29 tmp22 [V29,T14] ( 4, 4 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
; V31 tmp24 [V31,T03] ( 2, 16 ) ref -> x3 "argument with side effect"
; V32 tmp25 [V32,T29] ( 2, 0 ) ref -> x1 "argument with side effect"
@@ -49,24 +49,24 @@
; V38 tmp31 [V38,T35] ( 2, 0 ) ref -> x2 "argument with side effect"
; V39 tmp32 [V39,T36] ( 2, 0 ) ref -> x19 "argument with side effect"
; V40 tmp33 [V40,T37] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-;* V41 cse0 [V41,T24] ( 0, 0 ) byref -> zero-ref "CSE #02: moderate"
-; V42 cse1 [V42,T07] ( 3, 12 ) ref -> x25 "CSE #06: aggressive"
-; V43 cse2 [V43,T14] ( 2, 4.25) byref -> x23 hoist "CSE #04: moderate"
-; V44 cse3 [V44,T22] ( 3, 2.25) int -> x22 "CSE #07: aggressive"
+;* V41 cse0 [V41,T23] ( 0, 0 ) byref -> zero-ref "CSE #02: moderate"
+; V42 cse1 [V42,T07] ( 3, 12 ) ref -> x24 "CSE #06: aggressive"
+; V43 cse2 [V43,T25] ( 2, 0.50) byref -> x23 hoist "CSE #04: moderate"
+; V44 cse3 [V44,T21] ( 3, 2.25) int -> x22 "CSE #07: aggressive"
; V45 cse4 [V45,T10] ( 3, 10 ) int -> x0 "CSE #05: aggressive"
-; V46 rat0 [V46,T04] ( 4, 12.25) long -> x24 "Strength reduced derived IV"
+; V46 rat0 [V46,T04] ( 4, 12.25) byref -> x23 "Strength reduced derived IV"
; V47 rat1 [V47,T05] ( 4, 12.25) int -> x22 "Trip count IV"
;
-; Lcl frame size = 96
+; Lcl frame size = 104
G_M47271_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0xB0]!
- stp x19, x20, [sp, #0x70]
- stp x21, x22, [sp, #0x80]
- stp x23, x24, [sp, #0x90]
- stp x25, x26, [sp, #0xA0]
+ stp x19, x20, [sp, #0x78]
+ stp x21, x22, [sp, #0x88]
+ stp x23, x24, [sp, #0x98]
+ str x25, [sp, #0xA8]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
@@ -152,15 +152,14 @@ G_M47271_IG06: ; bbWeight=0.25, gcrefRegs=380002 {x1 x19 x20 x21}, byrefR
; gcrRegs -[x0]
add x23, x1, #16
; byrRegs +[x23]
- mov x24, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M47271_IG07: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=800000 {x23}, byref, isz
; gcrRegs -[x1]
- ldr x25, [x23, x24]
- ; gcrRegs +[x25]
- ldr x1, [x25, #0x10]
+ ldr x24, [x23]
+ ; gcrRegs +[x24]
+ ldr x1, [x24, #0x10]
; gcrRegs +[x1]
- add x2, fp, #80 // [V06 loc4]
+ add x2, fp, #88 // [V06 loc4]
mov x0, x19
; gcrRegs +[x0]
movz x3, #0xD1FFAB1E // code for Microsoft.ML.SchemaShape:TryFindColumn(System.String,byref):ubyte:this
@@ -170,11 +169,11 @@ G_M47271_IG07: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=80
blr x3
; gcrRegs -[x0-x1]
cbz w0, G_M47271_IG22
- ldr x0, [fp, #0x58] // [V06 loc4+0x08]
+ ldr x0, [fp, #0x60] // [V06 loc4+0x08]
; gcrRegs +[x0]
cbz x0, G_M47271_IG21
;; size=48 bbWeight=4 PerfScore 66.00
-G_M47271_IG08: ; bbWeight=2, gcrefRegs=2380001 {x0 x19 x20 x21 x25}, byrefRegs=800000 {x23}, byref, isz
+G_M47271_IG08: ; bbWeight=2, gcrefRegs=1380001 {x0 x19 x20 x21 x24}, byrefRegs=800000 {x23}, byref, isz
ldr x0, [x0]
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E
@@ -183,21 +182,21 @@ G_M47271_IG08: ; bbWeight=2, gcrefRegs=2380001 {x0 x19 x20 x21 x25}, byre
cmp x0, x1
bne G_M47271_IG21
;; size=24 bbWeight=2 PerfScore 12.00
-G_M47271_IG09: ; bbWeight=4, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=800000 {x23}, byref, isz
- ldr w0, [fp, #0x68] // [V06 loc4+0x18]
+G_M47271_IG09: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=800000 {x23}, byref, isz
+ ldr w0, [fp, #0x70] // [V06 loc4+0x18]
cmp w0, #2
beq G_M47271_IG11
;; size=12 bbWeight=4 PerfScore 14.00
-G_M47271_IG10: ; bbWeight=2, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=800000 {x23}, byref, isz
+G_M47271_IG10: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=800000 {x23}, byref, isz
cmp w0, #1
bne G_M47271_IG21
;; size=8 bbWeight=2 PerfScore 3.00
-G_M47271_IG11: ; bbWeight=4, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRegs=800000 {x23}, byref
- ldr x25, [x25, #0x08]
- mov x26, x25
- ; gcrRegs +[x26]
- stp xzr, xzr, [fp, #0x30]
- stp xzr, xzr, [fp, #0x40]
+G_M47271_IG11: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=800000 {x23}, byref
+ ldr x24, [x24, #0x08]
+ mov x25, x24
+ ; gcrRegs +[x25]
+ stp xzr, xzr, [fp, #0x38]
+ stp xzr, xzr, [fp, #0x48]
movz x0, #0xD1FFAB1E // code for Microsoft.ML.Data.NumberDataViewType:get_Single():Microsoft.ML.Data.NumberDataViewType
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -206,9 +205,9 @@ G_M47271_IG11: ; bbWeight=4, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
; gcrRegs +[x0]
mov x3, x0
; gcrRegs +[x3]
- add x0, fp, #48 // [V19 tmp12]
+ add x0, fp, #56 // [V19 tmp12]
; gcrRegs -[x0]
- mov x1, x25
+ mov x1, x24
; gcrRegs +[x1]
mov w2, #1
mov w4, wzr
@@ -218,18 +217,20 @@ G_M47271_IG11: ; bbWeight=4, gcrefRegs=2380000 {x19 x20 x21 x25}, byrefRe
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
blr x6
- ; gcrRegs -[x1 x3 x25]
+ ; gcrRegs -[x1 x3 x24]
;; size=80 bbWeight=4 PerfScore 78.00
G_M47271_IG12: ; bbWeight=4, nogc, extend
- ldp q16, q17, [fp, #0x30]
- stp q16, q17, [fp, #0x10]
- ;; size=8 bbWeight=4 PerfScore 12.00
+ ldp x0, x1, [fp, #0x38]
+ stp x0, x1, [fp, #0x18]
+ ldp x0, x1, [fp, #0x48]
+ stp x0, x1, [fp, #0x28]
+ ;; size=16 bbWeight=4 PerfScore 32.00
G_M47271_IG13: ; bbWeight=4, isz, extend
ldrsb wzr, [x21]
- add x2, fp, #16 // [V24 tmp17]
+ add x2, fp, #24 // [V24 tmp17]
mov x0, x21
; gcrRegs +[x0]
- mov x1, x26
+ mov x1, x25
; gcrRegs +[x1]
mov w3, #1
movz x4, #0xD1FFAB1E // code for <unknown method>
@@ -237,7 +238,7 @@ G_M47271_IG13: ; bbWeight=4, isz, extend
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- ; gcrRegs -[x0-x1 x26]
+ ; gcrRegs -[x0-x1 x25]
cbnz w0, G_M47271_IG15
;; size=44 bbWeight=4 PerfScore 46.00
G_M47271_IG14: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=800000 {x23}, byref
@@ -254,7 +255,7 @@ G_M47271_IG14: ; bbWeight=2, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=80
blr x2
;; size=44 bbWeight=2 PerfScore 17.00
G_M47271_IG15: ; bbWeight=4, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=800000 {x23}, byref, isz
- add x24, x24, #8
+ add x23, x23, #8
sub w22, w22, #1
cbnz w22, G_M47271_IG07
;; size=12 bbWeight=4 PerfScore 8.00
@@ -309,13 +310,13 @@ G_M47271_IG18: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x0]
;; size=48 bbWeight=1 PerfScore 9.50
G_M47271_IG19: ; bbWeight=1, epilog, nogc, extend
- ldp x25, x26, [sp, #0xA0]
- ldp x23, x24, [sp, #0x90]
- ldp x21, x22, [sp, #0x80]
- ldp x19, x20, [sp, #0x70]
+ ldr x25, [sp, #0xA8]
+ ldp x23, x24, [sp, #0x98]
+ ldp x21, x22, [sp, #0x88]
+ ldp x19, x20, [sp, #0x78]
ldp fp, lr, [sp], #0xB0
ret lr
- ;; size=24 bbWeight=1 PerfScore 6.00
+ ;; size=24 bbWeight=1 PerfScore 7.00
G_M47271_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x19]
movz x0, #0xD1FFAB1E
@@ -324,10 +325,10 @@ G_M47271_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
bl CORINFO_HELP_GET_GCSTATIC_BASE
b G_M47271_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-G_M47271_IG21: ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19] +[x25]
+G_M47271_IG21: ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19] +[x24]
ldr x20, [x20, #0x08]
- ldr x25, [x25, #0x10]
+ ldr x24, [x24, #0x10]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -378,7 +379,7 @@ G_M47271_IG21: ; bbWeight=0, gcrefRegs=2100000 {x20 x25}, byrefRegs=0000
; gcrRegs -[x19]
mov x19, x0
; gcrRegs +[x19]
- add x0, fp, #80 // [V06 loc4]
+ add x0, fp, #88 // [V06 loc4]
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
...
smoke_tests.nativeaot.windows.arm64.checked.mch
-16 (-14.29%) : 1729.dasm - System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
@@ -8,24 +8,23 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd exact single-def <System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo>
-; V01 loc0 [V01,T05] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo[]>
-;* V02 loc1 [V02,T07] ( 0, 0 ) int -> zero-ref
+; V01 loc0 [V01,T04] ( 3, 2.25) ref -> x0 class-hnd single-def <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo[]>
+;* V02 loc1 [V02,T06] ( 0, 0 ) int -> zero-ref
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V05 tmp2 [V05,T00] ( 3, 24 ) ref -> x0 "argument with side effect"
-; V06 cse0 [V06,T04] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V07 cse1 [V07,T06] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
-; V08 rat0 [V08,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V06 cse0 [V06,T07] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V07 cse1 [V07,T05] ( 3, 2.25) int -> x19 "CSE #02: aggressive"
+; V08 rat0 [V08,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V09 rat1 [V09,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M49581_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M49581_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldr x0, [x0, #0x30]
@@ -36,18 +35,17 @@ G_M49581_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
G_M49581_IG03: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #16
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M49581_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldr x0, [x20, x21]
+ ldr x0, [x20]
; gcrRegs +[x0]
ldr x1, [x0]
ldr x1, [x1, #0x68]
blr x1
; gcrRegs -[x0]
cbnz w0, G_M49581_IG07
- add x21, x21, #8
+ add x20, x20, #8
sub w19, w19, #1
cbnz w19, G_M49581_IG04
;; size=32 bbWeight=4 PerfScore 52.00
@@ -56,22 +54,20 @@ G_M49581_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49581_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M49581_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M49581_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 112, prolog size 16, PerfScore 68.75, instruction count 28, allocated bytes for code 112 (MethodHash=42d93e52) for method System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
+; Total bytes of code 96, prolog size 12, PerfScore 65.62, instruction count 24, allocated bytes for code 96 (MethodHash=42d93e52) for method System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,7 +78,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 24 (0x00018) Actual length = 96 (0x000060)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -93,9 +89,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.33%) : 3408.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
@@ -19,19 +19,18 @@
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V09 tmp7 [V09 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
;* V10 tmp8 [V10 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
-; V11 cse0 [V11,T05] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V12 cse1 [V12,T06] ( 3, 1.25) int -> x19 "CSE #02: aggressive"
-; V13 rat0 [V13,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V11 cse0 [V11,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V12 cse1 [V12,T05] ( 3, 1.25) int -> x19 "CSE #02: aggressive"
+; V13 rat0 [V13,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V14 rat1 [V14,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44603_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
cbz x0, G_M44603_IG09
@@ -44,11 +43,10 @@ G_M44603_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
G_M44603_IG04: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M44603_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
blo G_M44603_IG07
;; size=12 bbWeight=4 PerfScore 18.00
@@ -61,7 +59,7 @@ G_M44603_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
;; size=4 bbWeight=2 PerfScore 2.00
G_M44603_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w0, G_M44603_IG11
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M44603_IG05
;; size=16 bbWeight=4 PerfScore 12.00
@@ -70,22 +68,20 @@ G_M44603_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44603_IG10: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44603_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44603_IG12: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 120, prolog size 16, PerfScore 48.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 45.38, instruction count 26, allocated bytes for code 104 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -96,7 +92,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -107,9 +103,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
-16 (-13.33%) : 9652.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
@@ -18,19 +18,18 @@
;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V09 tmp7 [V09 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
;* V10 tmp8 [V10 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
-; V11 cse0 [V11,T05] ( 2, 4.25) byref -> x20 hoist "CSE #01: aggressive"
-; V12 cse1 [V12,T06] ( 3, 1.25) int -> x19 "CSE #02: aggressive"
-; V13 rat0 [V13,T01] ( 4, 12.25) long -> x21 "Strength reduced derived IV"
+; V11 cse0 [V11,T06] ( 2, 0.50) byref -> x20 hoist "CSE #01: aggressive"
+; V12 cse1 [V12,T05] ( 3, 1.25) int -> x19 "CSE #02: aggressive"
+; V13 rat0 [V13,T01] ( 4, 12.25) byref -> x20 "Strength reduced derived IV"
; V14 rat1 [V14,T02] ( 4, 12.25) int -> x19 "Trip count IV"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M44603_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp fp, lr, [sp, #-0x20]!
+ stp x19, x20, [sp, #0x10]
mov fp, sp
- ;; size=16 bbWeight=1 PerfScore 3.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M44603_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
cbz x0, G_M44603_IG09
@@ -43,11 +42,10 @@ G_M44603_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
G_M44603_IG04: ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
add x20, x0, #12
; byrRegs +[x20]
- mov x21, xzr
- ;; size=8 bbWeight=0.25 PerfScore 0.25
+ ;; size=4 bbWeight=0.25 PerfScore 0.12
G_M44603_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
- ldrh w0, [x20, x21]
+ ldrh w0, [x20]
cmp w0, #0xD1FFAB1E
blo G_M44603_IG07
;; size=12 bbWeight=4 PerfScore 18.00
@@ -60,7 +58,7 @@ G_M44603_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
;; size=4 bbWeight=2 PerfScore 2.00
G_M44603_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w0, G_M44603_IG11
- add x21, x21, #2
+ add x20, x20, #2
sub w19, w19, #1
cbnz w19, G_M44603_IG05
;; size=16 bbWeight=4 PerfScore 12.00
@@ -69,22 +67,20 @@ G_M44603_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44603_IG10: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44603_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44603_IG12: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x20
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 120, prolog size 16, PerfScore 48.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 45.38, instruction count 26, allocated bytes for code 104 (MethodHash=3ff251c4) for method System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -95,7 +91,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -106,9 +102,10 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
- C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
+ E4 end
E4 end
E4 end
+0 (0.00%) : 21760.dasm - System.Threading.LowLevelMonitor:VerifyIsLocked():this (FullOpts)
No diffs found?
+0 (0.00%) : 21792.dasm - System.Threading.WindowsThreadPool:InitializeForThreadPoolThread() (FullOpts)
No diffs found?
+0 (0.00%) : 23360.dasm - System.Threading.WaitHandle:WaitMultiple(System.ReadOnlySpan`1[System.Threading.WaitHandle],ubyte,int):int (FullOpts)
No diffs found?
Details
Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) |
---|---|---|---|---|---|---|
benchmarks.run.windows.arm64.checked.mch | 538 | 533 | 0 | 5 | -4,580 | +0 |
benchmarks.run_pgo.windows.arm64.checked.mch | 2,508 | 2,490 | 13 | 5 | -11,184 | +52 |
benchmarks.run_tiered.windows.arm64.checked.mch | 56 | 54 | 0 | 2 | -376 | +0 |
coreclr_tests.run.windows.arm64.checked.mch | 5,419 | 5,386 | 7 | 26 | -27,684 | +28 |
libraries.crossgen2.windows.arm64.checked.mch | 1,171 | 1,158 | 1 | 12 | -10,360 | +4 |
libraries.pmi.windows.arm64.checked.mch | 1,274 | 1,266 | 0 | 8 | -10,108 | +0 |
libraries_tests.run.windows.arm64.Release.mch | 2,821 | 2,779 | 34 | 8 | -21,552 | +136 |
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch | 1,999 | 1,948 | 8 | 43 | -16,356 | +140 |
realworld.run.windows.arm64.checked.mch | 167 | 166 | 1 | 0 | -1,440 | +4 |
smoke_tests.nativeaot.windows.arm64.checked.mch | 610 | 140 | 0 | 470 | -1,244 | +0 |
16,563 | 15,920 | 64 | 579 | -104,884 | +364 |
Collection | Contexts with diffs | Improvements | Regressions | Same PerfScore | Improvements (PerfScore) | Regressions (PerfScore) | PerfScore Overall in FullOpts |
---|---|---|---|---|---|---|---|
benchmarks.run.windows.arm64.checked.mch | 538 | 384 | 148 | 6 | -1.93% | +0.85% | -0.0254% |
benchmarks.run_pgo.windows.arm64.checked.mch | 2,508 | 1,796 | 707 | 5 | -0.39% | +0.61% | -0.0056% |
benchmarks.run_tiered.windows.arm64.checked.mch | 56 | 42 | 12 | 2 | -0.98% | +0.90% | -0.0028% |
coreclr_tests.run.windows.arm64.checked.mch | 5,419 | 5,204 | 192 | 23 | -0.20% | +0.83% | -0.0036% |
libraries.crossgen2.windows.arm64.checked.mch | 1,171 | 746 | 413 | 12 | -2.30% | +0.75% | -0.0051% |
libraries.pmi.windows.arm64.checked.mch | 1,274 | 876 | 391 | 7 | -1.40% | +0.74% | -0.0032% |
libraries_tests.run.windows.arm64.Release.mch | 2,821 | 2,283 | 526 | 12 | -1.34% | +0.80% | -0.0127% |
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch | 1,999 | 1,413 | 539 | 47 | -1.50% | +0.67% | -0.0057% |
realworld.run.windows.arm64.checked.mch | 167 | 119 | 48 | 0 | -1.02% | +0.92% | -0.0030% |
smoke_tests.nativeaot.windows.arm64.checked.mch | 610 | 98 | 42 | 470 | -2.03% | +0.96% | -0.0069% |
Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
---|---|---|---|---|---|
benchmarks.run.windows.arm64.checked.mch | 24,525 | 4 | 24,521 | 4 (0.02%) | 4 (0.02%) |
benchmarks.run_pgo.windows.arm64.checked.mch | 98,571 | 49,888 | 48,683 | 5 (0.01%) | 17 (0.02%) |
benchmarks.run_tiered.windows.arm64.checked.mch | 48,817 | 37,918 | 10,899 | 4 (0.01%) | 4 (0.01%) |
coreclr_tests.run.windows.arm64.checked.mch | 644,538 | 398,690 | 245,848 | 1,141 (0.18%) | 1,147 (0.18%) |
libraries.crossgen2.windows.arm64.checked.mch | 278,799 | 16 | 278,783 | 48 (0.02%) | 48 (0.02%) |
libraries.pmi.windows.arm64.checked.mch | 295,555 | 6 | 295,549 | 271 (0.09%) | 271 (0.09%) |
libraries_tests.run.windows.arm64.Release.mch | 711,730 | 501,528 | 210,202 | 121 (0.02%) | 157 (0.02%) |
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch | 333,035 | 21,667 | 311,368 | 93 (0.03%) | 95 (0.03%) |
realworld.run.windows.arm64.checked.mch | 25,736 | 2 | 25,734 | 2 (0.01%) | 2 (0.01%) |
smoke_tests.nativeaot.windows.arm64.checked.mch | 23,416 | 7 | 23,409 | 2 (0.01%) | 2 (0.01%) |
2,484,722 | 1,009,726 | 1,474,996 | 1,691 (0.07%) | 1,747 (0.07%) |
benchmarks.run.windows.arm64.checked.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: 11067588 (overridden on cmd)
Total bytes of diff: 11063008 (overridden on cmd)
Total bytes of delta: -4580 (-0.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-80 : 8445.dasm (-2.84% of base)
-44 : 8777.dasm (-0.71% of base)
-40 : 1559.dasm (-2.94% of base)
-32 : 7783.dasm (-2.95% of base)
-28 : 2417.dasm (-3.98% of base)
-24 : 3747.dasm (-0.42% of base)
-20 : 22202.dasm (-2.78% of base)
-20 : 1883.dasm (-4.31% of base)
-20 : 3655.dasm (-0.63% of base)
-20 : 12800.dasm (-6.67% of base)
-20 : 7239.dasm (-2.72% of base)
-20 : 9250.dasm (-2.62% of base)
-20 : 3780.dasm (-3.62% of base)
-20 : 9311.dasm (-1.95% of base)
-20 : 1872.dasm (-0.84% of base)
-20 : 22140.dasm (-4.90% of base)
-20 : 5733.dasm (-6.49% of base)
-20 : 13875.dasm (-2.78% of base)
-20 : 3012.dasm (-7.94% of base)
-20 : 516.dasm (-1.60% of base)
84 total files with Code Size differences (84 improved, 0 regressed), 5 unchanged.
Top method improvements (bytes):
-80 (-2.84% of base) : 8445.dasm - MessagePack.Internal.DynamicObjectTypeBuilder+MessagePackBinaryTypeInfo:.cctor() (FullOpts)
-44 (-0.71% of base) : 8777.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:.cctor() (FullOpts)
-40 (-2.94% of base) : 1559.dasm - System.Buffers.SharedArrayPool`1[System.ValueTuple`2[System.__Canon,System.__Canon]]:Trim():ubyte:this (FullOpts)
-32 (-2.95% of base) : 7783.dasm - System.Numerics.Tests.Constructor:.ctor():this (FullOpts)
-28 (-3.98% of base) : 2417.dasm - System.Globalization.DateTimeFormatInfoScanner:GetDateWordsOfDTFI(System.Globalization.DateTimeFormatInfo):System.String[]:this (FullOpts)
-24 (-0.42% of base) : 3747.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteAttributes(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String,System.Reflection.Emit.LocalBuilder):this (FullOpts)
-20 (-6.67% of base) : 12800.dasm - Microsoft.Extensions.Configuration.ConfigurationBinder:FindOpenGenericInterface(System.Type,System.Type):System.Type (FullOpts)
-20 (-2.72% of base) : 7239.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:ImplementsGenericDefinition(System.Type,System.Type,byref):ubyte (FullOpts)
-20 (-4.31% of base) : 1883.dasm - ProtoBuf.Meta.AttributeMap+ReflectionAttributeMap:TryGet(System.String,ubyte,byref):ubyte:this (FullOpts)
-20 (-1.60% of base) : 516.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)
-20 (-2.62% of base) : 9250.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract:IsNonAttributedTypeValidForSerialization(System.Type):ubyte (FullOpts)
-20 (-1.95% of base) : 9311.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:EnsureMethodsImported():this (FullOpts)
-20 (-2.78% of base) : 22202.dasm - System.Runtime.Serialization.Json.JsonFormatReaderGenerator+CriticalHelper:WrapNullableObject(System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,int):this (FullOpts)
-20 (-2.78% of base) : 13875.dasm - System.Runtime.Serialization.XmlFormatReaderGenerator+CriticalHelper:WrapNullableObject(System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder,int):this (FullOpts)
-20 (-0.84% of base) : 1872.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (FullOpts)
-20 (-6.49% of base) : 5733.dasm - System.Text.Json.Reflection.ReflectionExtensions:GetCompatibleGenericInterface(System.Type,System.Type):System.Type (FullOpts)
-20 (-4.90% of base) : 22140.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (FullOpts)
-20 (-7.94% of base) : 3012.dasm - System.Type:get_ContainsGenericParameters():ubyte:this (FullOpts)
-20 (-0.63% of base) : 3655.dasm - System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
-20 (-3.62% of base) : 3780.dasm - System.Xml.Serialization.CodeIdentifier:EscapeKeywords(System.String):System.String (FullOpts)
Top method improvements (percentages):
-16 (-13.33% of base) : 3021.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
-12 (-13.04% of base) : 19543.dasm - System.IO.Tests.Perf_Directory:CreateDirectory():this (FullOpts)
-12 (-11.11% of base) : 16926.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-16 (-10.81% of base) : 1801.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
-16 (-10.53% of base) : 9513.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:CheckIfJsonNameRequiresMapping(System.String):ubyte (FullOpts)
-12 (-10.34% of base) : 7101.dasm - GuardedDevirtualization.ThreeClassInterface:Call(GuardedDevirtualization.ThreeClassInterface+TestInput):long:this (FullOpts)
-12 (-10.34% of base) : 12270.dasm - GuardedDevirtualization.TwoClassInterface:Call(GuardedDevirtualization.TwoClassInterface+TestInput):long:this (FullOpts)
-12 (-10.34% of base) : 1125.dasm - Microsoft.Extensions.Logging.EventLogFiltersConfigureOptions:Configure(Microsoft.Extensions.Logging.LoggerFilterOptions):this (FullOpts)
-12 (-10.34% of base) : 14140.dasm - System.Collections.AddGivenSize`1[int]:AddToICollection(System.Collections.Generic.ICollection`1[int]):System.Collections.Generic.ICollection`1[int]:this (FullOpts)
-12 (-10.34% of base) : 19544.dasm - System.IO.Tests.Perf_Directory:CleanupDirectoryIteration():this (FullOpts)
-12 (-10.00% of base) : 18469.dasm - System.Collections.AddGivenSize`1[int]:AddToIDictionary(System.Collections.Generic.IDictionary`2[int,int]):System.Collections.Generic.IDictionary`2[int,int]:this (FullOpts)
-12 (-9.68% of base) : 22571.dasm - System.Collections.ContainsKeyFalse`2[int,int]:ImmutableDictionary():ubyte:this (FullOpts)
-12 (-9.68% of base) : 20289.dasm - System.Collections.ContainsKeyTrue`2[int,int]:ImmutableDictionary():ubyte:this (FullOpts)
-12 (-9.68% of base) : 10372.dasm - System.Text.RegularExpressions.Tests.Perf_Regex_Industry_SliceSlice:Count():int:this (FullOpts)
-12 (-9.38% of base) : 10529.dasm - System.Collections.ContainsKeyFalse`2[int,int]:ImmutableSortedDictionary():ubyte:this (FullOpts)
-12 (-9.38% of base) : 13697.dasm - System.Collections.ContainsKeyFalse`2[System.__Canon,System.__Canon]:SortedDictionary():ubyte:this (FullOpts)
-12 (-9.38% of base) : 20522.dasm - System.Collections.ContainsKeyTrue`2[int,int]:ImmutableSortedDictionary():ubyte:this (FullOpts)
-12 (-9.38% of base) : 19848.dasm - System.Collections.ContainsKeyTrue`2[int,int]:SortedDictionary():ubyte:this (FullOpts)
-12 (-9.38% of base) : 10054.dasm - System.Collections.ContainsKeyTrue`2[System.__Canon,System.__Canon]:SortedDictionary():ubyte:this (FullOpts)
-12 (-9.38% of base) : 12262.dasm - System.Collections.ContainsTrue`1[int]:Queue():ubyte:this (FullOpts)
benchmarks.run_pgo.windows.arm64.checked.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: 49077212 (overridden on cmd)
Total bytes of diff: 49066080 (overridden on cmd)
Total bytes of delta: -11132 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 64384.dasm (0.27% of base)
4 : 65116.dasm (0.27% of base)
4 : 91475.dasm (0.27% of base)
4 : 10679.dasm (0.27% of base)
4 : 40609.dasm (0.15% of base)
4 : 78806.dasm (0.27% of base)
4 : 74639.dasm (0.27% of base)
4 : 49068.dasm (0.27% of base)
4 : 44278.dasm (0.27% of base)
4 : 69422.dasm (0.17% of base)
4 : 37953.dasm (0.27% of base)
4 : 90148.dasm (0.27% of base)
4 : 48551.dasm (0.15% of base)
Top file improvements (bytes):
-36 : 98421.dasm (-2.81% of base)
-36 : 38460.dasm (-2.81% of base)
-36 : 63182.dasm (-2.81% of base)
-36 : 72647.dasm (-2.81% of base)
-36 : 42898.dasm (-2.81% of base)
-36 : 89846.dasm (-2.81% of base)
-36 : 66583.dasm (-2.81% of base)
-36 : 94068.dasm (-2.81% of base)
-36 : 91034.dasm (-2.81% of base)
-36 : 35660.dasm (-2.81% of base)
-36 : 77305.dasm (-2.81% of base)
-36 : 91857.dasm (-2.81% of base)
-36 : 97465.dasm (-2.81% of base)
-36 : 60471.dasm (-2.81% of base)
-36 : 88796.dasm (-2.81% of base)
-16 : 36247.dasm (-10.26% of base)
-16 : 30602.dasm (-10.26% of base)
-16 : 38143.dasm (-10.26% of base)
-16 : 18996.dasm (-10.26% of base)
-16 : 78233.dasm (-10.26% of base)
72 total files with Code Size differences (59 improved, 13 regressed), 5 unchanged.
Top method regressions (bytes):
4 ( 0.15% of base) : 40609.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.17% of base) : 69422.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.15% of base) : 48551.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.27% of base) : 64384.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 65116.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 91475.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 10679.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 78806.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 74639.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 49068.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 44278.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 37953.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 90148.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
Top method improvements (bytes):
-36 (-2.81% of base) : 98421.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 38460.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 63182.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 72647.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 42898.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 89846.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 66583.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 94068.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 91034.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 35660.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 77305.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 91857.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 97465.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 60471.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 88796.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-16 (-3.08% of base) : 48185.dasm - Benchmarks.SIMD.RayTracer.RayTracer:TestRay(Benchmarks.SIMD.RayTracer.Ray,Benchmarks.SIMD.RayTracer.Scene):double:this (Tier1)
-16 (-10.26% of base) : 36247.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 30602.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 38143.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 18996.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
Top method regressions (percentages):
4 ( 0.27% of base) : 10679.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 74639.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 65116.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 91475.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 44278.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 64384.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 78806.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 49068.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 37953.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.27% of base) : 90148.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this (Tier1)
4 ( 0.17% of base) : 69422.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.15% of base) : 40609.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.15% of base) : 48551.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
Top method improvements (percentages):
-16 (-10.26% of base) : 36247.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 30602.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 38143.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 18996.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-16 (-10.26% of base) : 78233.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-4 (-7.14% of base) : 94410.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 43869.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 81777.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 31527.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 27137.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 74318.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 91595.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 98458.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 45839.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 9628.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 64152.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-7.14% of base) : 73105.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-4 (-5.88% of base) : 60550.dasm - Roslyn.Utilities.Hash:CombineFNVHash(int,System.String):int (Tier1)
-4 (-5.26% of base) : 61132.dasm - Roslyn.Utilities.StringOrdinalComparer:System.Collections.Generic.IEqualityComparer<System.String>.GetHashCode(System.String):int:this (Tier1)
-4 (-5.00% of base) : 40392.dasm - System.Reflection.MetadataToken:IsTokenOfType(int,int[]):ubyte (Tier1)
benchmarks.run_tiered.windows.arm64.checked.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: 15223420 (overridden on cmd)
Total bytes of diff: 15223044 (overridden on cmd)
Total bytes of delta: -376 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-40 : 23367.dasm (-2.95% of base)
-20 : 4585.dasm (-1.60% of base)
-20 : 20765.dasm (-0.86% of base)
-16 : 5901.dasm (-1.19% of base)
-16 : 2235.dasm (-6.56% of base)
-16 : 8062.dasm (-10.81% of base)
-12 : 11254.dasm (-3.30% of base)
-12 : 7137.dasm (-8.82% of base)
-12 : 37911.dasm (-11.11% of base)
-12 : 30337.dasm (-7.69% of base)
-12 : 30357.dasm (-1.58% of base)
-12 : 43727.dasm (-1.04% of base)
-8 : 28563.dasm (-1.05% of base)
-8 : 38212.dasm (-2.38% of base)
-4 : 2250.dasm (-5.00% of base)
-4 : 24899.dasm (-4.55% of base)
-4 : 5903.dasm (-0.13% of base)
-4 : 2252.dasm (-0.20% of base)
-4 : 45060.dasm (-0.47% of base)
-4 : 20786.dasm (-3.12% of base)
52 total files with Code Size differences (52 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-40 (-2.95% of base) : 23367.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Tier1)
-20 (-1.60% of base) : 4585.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-20 (-0.86% of base) : 20765.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (Tier1)
-16 (-1.19% of base) : 5901.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelper(System.Type,System.Type[],System.Type[]):this (Tier1)
-16 (-6.56% of base) : 2235.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
-16 (-10.81% of base) : 8062.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-12 (-1.58% of base) : 30357.dasm - Benchmarks.SIMD.RayTracer.RayTracer:GetNaturalColor(Benchmarks.SIMD.RayTracer.SceneObject,Benchmarks.SIMD.RayTracer.Vector,Benchmarks.SIMD.RayTracer.Vector,Benchmarks.SIMD.RayTracer.Vector,Benchmarks.SIMD.RayTracer.Scene):Benchmarks.SIMD.RayTracer.Color:this (Tier1)
-12 (-7.69% of base) : 30337.dasm - Benchmarks.SIMD.RayTracer.RayTracer:MinIntersection(Benchmarks.SIMD.RayTracer.Ray,Benchmarks.SIMD.RayTracer.Scene):Benchmarks.SIMD.RayTracer.ISect:this (Tier1)
-12 (-1.04% of base) : 43727.dasm - BenchmarksGame.KNucleotide_1:Bench(System.IO.Stream,BenchmarksGame.NucleotideHelpers,ubyte):ubyte (Tier1-OSR)
-12 (-11.11% of base) : 37911.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier1)
-12 (-3.30% of base) : 11254.dasm - System.RuntimeType:SanityCheckGenericArguments(System.RuntimeType[],System.RuntimeType[]) (Tier1)
-12 (-8.82% of base) : 7137.dasm - System.Text.Encodings.Web.TextEncoderSettings:AllowRanges(System.Text.Unicode.UnicodeRange[]):this (Tier1)
-8 (-2.38% of base) : 38212.dasm - BenchmarksGame.NBodySystem:Advance(double):this (Tier1)
-8 (-1.05% of base) : 28563.dasm - IDEAEncryption:Run():double:this (Tier1)
-4 (-1.64% of base) : 27464.dasm - AssignJagged:Assignment(int[][]) (Tier1)
-4 (-4.76% of base) : 37816.dasm - Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)
-4 (-0.79% of base) : 37560.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MetadataOrSourceAssemblySymbol:GetDeclaredSpecialTypeMember(int):Microsoft.CodeAnalysis.CSharp.Symbol:this (Tier1)
-4 (-5.88% of base) : 37256.dasm - Roslyn.Utilities.Hash:CombineFNVHash(int,System.String):int (Tier1)
-4 (-2.27% of base) : 23959.dasm - System.Buffers.SharedArrayPoolPartitions:.ctor():this (Tier1)
-4 (-3.12% of base) : 38417.dasm - System.Buffers.SharedArrayPoolPartitions:Trim(int,int,int):this (Tier1)
Top method improvements (percentages):
-12 (-11.11% of base) : 37911.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (Tier1)
-16 (-10.81% of base) : 8062.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-12 (-8.82% of base) : 7137.dasm - System.Text.Encodings.Web.TextEncoderSettings:AllowRanges(System.Text.Unicode.UnicodeRange[]):this (Tier1)
-12 (-7.69% of base) : 30337.dasm - Benchmarks.SIMD.RayTracer.RayTracer:MinIntersection(Benchmarks.SIMD.RayTracer.Ray,Benchmarks.SIMD.RayTracer.Scene):Benchmarks.SIMD.RayTracer.ISect:this (Tier1)
-4 (-7.14% of base) : 5550.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
-16 (-6.56% of base) : 2235.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
-4 (-5.88% of base) : 37256.dasm - Roslyn.Utilities.Hash:CombineFNVHash(int,System.String):int (Tier1)
-4 (-5.88% of base) : 42804.dasm - System.Resources.FastResourceComparer:HashFunction(System.String):int (Tier1)
-4 (-5.00% of base) : 2250.dasm - System.Reflection.MetadataToken:IsTokenOfType(int,int[]):ubyte (Tier1)
-4 (-4.76% of base) : 37816.dasm - Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)
-4 (-4.76% of base) : 17173.dasm - System.Reflection.Emit.DynamicResolver:CalculateNumberOfExceptions(System.Reflection.Emit.__ExceptionInfo[]):int (Tier1)
-4 (-4.55% of base) : 24899.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:<SortFixedDistanceSetsByQuality>g__SumFrequencies|4_2(ushort[]):float (Tier1)
-4 (-4.00% of base) : 23480.dasm - System.Text.RegularExpressions.Match:Reset(System.String,int):this (Tier1)
-4 (-3.45% of base) : 1279.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-12 (-3.30% of base) : 11254.dasm - System.RuntimeType:SanityCheckGenericArguments(System.RuntimeType[],System.RuntimeType[]) (Tier1)
-4 (-3.12% of base) : 38417.dasm - System.Buffers.SharedArrayPoolPartitions:Trim(int,int,int):this (Tier1)
-4 (-3.12% of base) : 20786.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseCtorArgs(byref,System.Reflection.CustomAttributeCtorParameter[],System.Reflection.RuntimeModule) (Tier1)
-4 (-3.12% of base) : 1278.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-40 (-2.95% of base) : 23367.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Tier1)
-4 (-2.94% of base) : 1277.dasm - System.Type:GetConstructor(System.Type[]):System.Reflection.ConstructorInfo:this (Tier1)
coreclr_tests.run.windows.arm64.checked.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: 495153996 (overridden on cmd)
Total bytes of diff: 495126340 (overridden on cmd)
Total bytes of delta: -27656 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 520620.dasm (0.49% of base)
4 : 520629.dasm (0.52% of base)
4 : 520626.dasm (0.53% of base)
4 : 520617.dasm (0.49% of base)
4 : 520632.dasm (0.52% of base)
4 : 299824.dasm (0.16% of base)
4 : 520623.dasm (0.50% of base)
Top file improvements (bytes):
-44 : 520375.dasm (-1.28% of base)
-44 : 520231.dasm (-1.29% of base)
-44 : 520215.dasm (-1.29% of base)
-44 : 520359.dasm (-1.28% of base)
-44 : 520383.dasm (-1.28% of base)
-44 : 520223.dasm (-1.29% of base)
-44 : 520367.dasm (-1.28% of base)
-36 : 334183.dasm (-2.74% of base)
-36 : 428324.dasm (-2.76% of base)
-36 : 267939.dasm (-2.81% of base)
-36 : 412477.dasm (-2.74% of base)
-36 : 192996.dasm (-2.74% of base)
-36 : 327718.dasm (-2.81% of base)
-36 : 313645.dasm (-2.82% of base)
-36 : 313646.dasm (-2.82% of base)
-28 : 504807.dasm (-0.83% of base)
-28 : 457057.dasm (-5.79% of base)
-28 : 504933.dasm (-0.82% of base)
-28 : 508968.dasm (-0.87% of base)
-28 : 508872.dasm (-0.87% of base)
67 total files with Code Size differences (60 improved, 7 regressed), 22 unchanged.
Top method regressions (bytes):
4 ( 0.53% of base) : 520626.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringDouble() (FullOpts)
4 ( 0.49% of base) : 520617.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt32() (FullOpts)
4 ( 0.52% of base) : 520629.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt64() (FullOpts)
4 ( 0.50% of base) : 520623.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringSingle() (FullOpts)
4 ( 0.49% of base) : 520620.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt32() (FullOpts)
4 ( 0.52% of base) : 520632.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt64() (FullOpts)
4 ( 0.16% of base) : 299824.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
Top method improvements (bytes):
-44 (-1.29% of base) : 520215.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble0:RunReflectionScenario(int,ubyte):this (FullOpts)
-44 (-1.29% of base) : 520223.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble1:RunReflectionScenario(int,ubyte):this (FullOpts)
-44 (-1.29% of base) : 520231.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble3:RunReflectionScenario(int,ubyte):this (FullOpts)
-44 (-1.28% of base) : 520359.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementSingle0:RunReflectionScenario(int,ubyte):this (FullOpts)
-44 (-1.28% of base) : 520367.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementSingle1:RunReflectionScenario(int,ubyte):this (FullOpts)
-44 (-1.28% of base) : 520375.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementSingle3:RunReflectionScenario(int,ubyte):this (FullOpts)
-44 (-1.28% of base) : 520383.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementSingle7:RunReflectionScenario(int,ubyte):this (FullOpts)
-36 (-2.82% of base) : 313645.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 428324.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Tier1)
-36 (-2.74% of base) : 334183.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 267939.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.74% of base) : 412477.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.74% of base) : 192996.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 327718.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.82% of base) : 313646.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-28 (-5.79% of base) : 457057.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.LoadAndInsertScalar_Vector128x4_Single_1Test+TestStruct:Create():JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.LoadAndInsertScalar_Vector128x4_Single_1Test+TestStruct (FullOpts)
-28 (-0.87% of base) : 508872.dasm - JIT.HardwareIntrinsics.General._Vector128_1.VectorGetAndWithElement__GetAndWithElementDouble1:RunReflectionScenario(int,ubyte):this (FullOpts)
-28 (-0.87% of base) : 508968.dasm - JIT.HardwareIntrinsics.General._Vector128_1.VectorGetAndWithElement__GetAndWithElementSingle0:RunReflectionScenario(int,ubyte):this (FullOpts)
-28 (-0.83% of base) : 504807.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementDouble3:RunReflectionScenario(int,ubyte):this (FullOpts)
-28 (-0.82% of base) : 504933.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithElement__GetAndWithElementSingle3:RunReflectionScenario(int,ubyte):this (FullOpts)
Top method regressions (percentages):
4 ( 0.53% of base) : 520626.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringDouble() (FullOpts)
4 ( 0.52% of base) : 520629.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt64() (FullOpts)
4 ( 0.52% of base) : 520632.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt64() (FullOpts)
4 ( 0.50% of base) : 520623.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringSingle() (FullOpts)
4 ( 0.49% of base) : 520617.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringInt32() (FullOpts)
4 ( 0.49% of base) : 520620.dasm - JIT.HardwareIntrinsics.General._Vector512_1.Program:ToStringUInt32() (FullOpts)
4 ( 0.16% of base) : 299824.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
Top method improvements (percentages):
-12 (-15.79% of base) : 571640.dasm - Pointers+Test`1[int]:FunctionPointerArray(ulong[]):this (FullOpts)
-16 (-13.33% of base) : 392043.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
-16 (-11.76% of base) : 538067.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
-12 (-11.11% of base) : 551564.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-16 (-10.53% of base) : 555181.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:CheckIfJsonNameRequiresMapping(System.String):ubyte (FullOpts)
-16 (-10.26% of base) : 643886.dasm - Internal.TypeSystem.Interop.Marshaller:IsMarshallingRequired(Internal.TypeSystem.MethodSignature,Internal.TypeSystem.ParameterMetadata[],Internal.TypeSystem.ModuleDesc):ubyte (FullOpts)
-16 (-10.26% of base) : 417013.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (Tier1)
-12 (-10.00% of base) : 537479.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:AddParameterConversions(System.Reflection.MethodBase) (FullOpts)
-12 (-9.09% of base) : 432206.dasm - DynamicMethodJumpStubTests+<>c__DisplayClass1_0:<DynamicMethodJumpStubTest>b__0():this (FullOpts)
-12 (-9.09% of base) : 3793.dasm - System.Resources.FastResourceComparer:HashFunction(System.String):int (Instrumented Tier1)
-12 (-8.82% of base) : 536948.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:AddArgHashes(int,System.Type[],Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo[]):int (FullOpts)
-12 (-8.82% of base) : 537437.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray+TypeArrayKey:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.CType[]):this (FullOpts)
-12 (-8.82% of base) : 585707.dasm - System.Text.Encodings.Web.TextEncoderSettings:AllowRanges(System.Text.Unicode.UnicodeRange[]):this (FullOpts)
-16 (-8.51% of base) : 391945.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Instrumented Tier1)
-16 (-8.33% of base) : 553712.dasm - System.Runtime.Serialization.DataContracts.DataContract:IsTypeVisible(System.Type):ubyte (FullOpts)
-12 (-8.33% of base) : 588313.dasm - System.Xml.Xsl.Xslt.MatcherBuilder:CollectPatterns(System.Xml.Xsl.Xslt.StylesheetLevel,System.Xml.Xsl.Qil.QilName):this (FullOpts)
-16 (-7.69% of base) : 643953.dasm - Internal.TypeSystem.Interop.Marshaller:IsMarshallingRequired(Internal.TypeSystem.MethodSignature,Internal.TypeSystem.ModuleDesc,int):ubyte (FullOpts)
-12 (-7.69% of base) : 554841.dasm - RayTracer:MinIntersection(Ray,Scene):ISect:this (FullOpts)
-16 (-7.27% of base) : 537995.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.SymbolLoader:IsBaseInterface(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType,Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType):ubyte (FullOpts)
-20 (-7.25% of base) : 642155.dasm - ILCompiler.TypeExtensions:MergeClassWithInterface(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc):Internal.TypeSystem.TypeDesc (FullOpts)
libraries.crossgen2.windows.arm64.checked.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: 67820424 (overridden on cmd)
Total bytes of diff: 67810068 (overridden on cmd)
Total bytes of delta: -10356 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 12930.dasm (2.38% of base)
Top file improvements (bytes):
-44 : 241100.dasm (-3.09% of base)
-44 : 202760.dasm (-2.02% of base)
-44 : 262406.dasm (-1.77% of base)
-40 : 156319.dasm (-2.23% of base)
-40 : 23863.dasm (-3.01% of base)
-32 : 262407.dasm (-4.57% of base)
-32 : 252393.dasm (-4.85% of base)
-32 : 277474.dasm (-4.57% of base)
-28 : 243900.dasm (-3.00% of base)
-28 : 198023.dasm (-2.41% of base)
-28 : 238498.dasm (-2.70% of base)
-28 : 270091.dasm (-2.63% of base)
-28 : 110794.dasm (-2.70% of base)
-28 : 212106.dasm (-7.14% of base)
-28 : 24394.dasm (-1.70% of base)
-28 : 241469.dasm (-2.54% of base)
-28 : 185204.dasm (-3.18% of base)
-28 : 117518.dasm (-7.14% of base)
-28 : 223015.dasm (-3.18% of base)
-28 : 249647.dasm (-4.05% of base)
72 total files with Code Size differences (71 improved, 1 regressed), 12 unchanged.
Top method regressions (bytes):
4 ( 2.38% of base) : 12930.dasm - System.Diagnostics.Tracing.InvokeTypeInfo:WriteData(System.Diagnostics.Tracing.PropertyValue):this (FullOpts)
Top method improvements (bytes):
-44 (-1.77% of base) : 262406.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildTypeAttributes(System.Type):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (FullOpts)
-44 (-2.02% of base) : 202760.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:LoadDomainInfo():this (FullOpts)
-44 (-3.09% of base) : 241100.dasm - System.Speech.Recognition.Grammar:CombineCfg(System.String,System.IO.Stream,System.Speech.Recognition.SrgsGrammar.SrgsRule[]):System.IO.MemoryStream (FullOpts)
-40 (-3.01% of base) : 23863.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
-40 (-2.23% of base) : 156319.dasm - System.Xml.Xsl.Runtime.XmlQueryStaticData:GetObjectData(byref,byref):this (FullOpts)
-32 (-4.85% of base) : 252393.dasm - System.ComponentModel.Composition.Hosting.AggregateExportProvider:GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition):System.Collections.Generic.IEnumerable`1[System.ComponentModel.Composition.Primitives.Export]:this (FullOpts)
-32 (-4.57% of base) : 262407.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildConstructorAttributes(System.Type,byref):ubyte:this (FullOpts)
-32 (-4.57% of base) : 277474.dasm - System.Composition.Convention.PartConventionBuilder:BuildConstructorAttributes(System.Type,byref):ubyte:this (FullOpts)
-28 (-2.70% of base) : 238498.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
-28 (-2.70% of base) : 110794.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
-28 (-4.05% of base) : 249647.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.PredefinedMembers:LoadTypeFromSignature(int[],byref,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray):Microsoft.CSharp.RuntimeBinder.Semantics.CType (FullOpts)
-28 (-7.14% of base) : 117518.dasm - Microsoft.Diagnostics.Utilities.DirectoryUtilities:Clean(System.String):int (FullOpts)
-28 (-3.00% of base) : 243900.dasm - System.ComponentModel.EnumConverter:ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object):System.Object:this (FullOpts)
-28 (-3.18% of base) : 185204.dasm - System.Configuration.ConfigurationLockCollection:ClearInternal(ubyte):this (FullOpts)
-28 (-3.18% of base) : 223015.dasm - System.Configuration.ConfigurationLockCollection:ClearInternal(ubyte):this (FullOpts)
-28 (-2.41% of base) : 198023.dasm - System.Linq.Expressions.Interpreter.CallInstruction:Create(System.Reflection.MethodInfo,System.Reflection.ParameterInfo[]):System.Linq.Expressions.Interpreter.CallInstruction (FullOpts)
-28 (-7.14% of base) : 212106.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.__Canon,System.__Canon]:ThrowIfInTearDown():this (FullOpts)
-28 (-2.63% of base) : 270091.dasm - System.Net.NetworkInformation.SystemIPGlobalProperties+<GetUnicastAddressesAsync>d__26:MoveNext():this (FullOpts)
-28 (-1.70% of base) : 24394.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (FullOpts)
-28 (-2.54% of base) : 241469.dasm - System.Speech.Recognition.RecognitionResult:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (FullOpts)
Top method regressions (percentages):
4 ( 2.38% of base) : 12930.dasm - System.Diagnostics.Tracing.InvokeTypeInfo:WriteData(System.Diagnostics.Tracing.PropertyValue):this (FullOpts)
Top method improvements (percentages):
-16 (-13.79% of base) : 24539.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
-16 (-13.79% of base) : 273863.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
-24 (-13.33% of base) : 113425.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]]:System.Collections.Generic.ICollection<T>.Contains(Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]):ubyte:this (FullOpts)
-24 (-13.33% of base) : 240769.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]]:System.Collections.Generic.ICollection<T>.Contains(Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[Microsoft.CodeAnalysis.Emit.AnonymousTypeKey,Microsoft.CodeAnalysis.Emit.AnonymousTypeValue]):ubyte:this (FullOpts)
-16 (-11.76% of base) : 239628.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-16 (-11.76% of base) : 112001.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-12 (-11.54% of base) : 227604.dasm - Roslyn.Utilities.ObjectWriter:WriteStringArrayElements(System.String[]):this (FullOpts)
-16 (-11.43% of base) : 112906.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:System.Collections.Generic.ICollection<T>.Contains(int):ubyte:this (FullOpts)
-16 (-11.43% of base) : 240475.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:System.Collections.Generic.ICollection<T>.Contains(int):ubyte:this (FullOpts)
-16 (-11.43% of base) : 221261.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:System.Collections.Generic.ICollection<T>.Contains(int):ubyte:this (FullOpts)
-16 (-11.43% of base) : 221260.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:System.Collections.IList.Contains(System.Object):ubyte:this (FullOpts)
-16 (-11.43% of base) : 240474.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:System.Collections.IList.Contains(System.Object):ubyte:this (FullOpts)
-16 (-11.43% of base) : 112905.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:System.Collections.IList.Contains(System.Object):ubyte:this (FullOpts)
-16 (-11.43% of base) : 109903.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]:System.Collections.IList.Contains(System.Object):ubyte:this (FullOpts)
-16 (-11.43% of base) : 237642.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]:System.Collections.IList.Contains(System.Object):ubyte:this (FullOpts)
-16 (-11.43% of base) : 220578.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[System.__Canon]:System.Collections.IList.Contains(System.Object):ubyte:this (FullOpts)
-16 (-11.43% of base) : 244053.dasm - System.ComponentModel.AttributeCollection:Matches(System.Attribute[]):ubyte:this (FullOpts)
-16 (-11.43% of base) : 265826.dasm - System.PasteArguments:ContainsNoWhitespaceOrQuotes(System.String):ubyte (FullOpts)
-16 (-11.11% of base) : 839.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
-16 (-10.81% of base) : 228359.dasm - Microsoft.CodeAnalysis.AnalyzerConfig:IsComment(System.String):ubyte (FullOpts)
libraries.pmi.windows.arm64.checked.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: 78737668 (overridden on cmd)
Total bytes of diff: 78727560 (overridden on cmd)
Total bytes of delta: -10108 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-60 : 251830.dasm (-2.67% of base)
-60 : 166097.dasm (-1.03% of base)
-44 : 250352.dasm (-4.04% of base)
-40 : 166132.dasm (-0.96% of base)
-40 : 212695.dasm (-2.52% of base)
-36 : 245551.dasm (-4.95% of base)
-32 : 292478.dasm (-6.45% of base)
-32 : 163495.dasm (-0.63% of base)
-28 : 163005.dasm (-0.59% of base)
-28 : 163496.dasm (-2.15% of base)
-28 : 236597.dasm (-4.67% of base)
-28 : 174182.dasm (-2.75% of base)
-28 : 63598.dasm (-3.74% of base)
-28 : 205539.dasm (-4.67% of base)
-28 : 164288.dasm (-0.77% of base)
-28 : 209707.dasm (-5.26% of base)
-28 : 165814.dasm (-0.41% of base)
-28 : 131663.dasm (-2.75% of base)
-24 : 146275.dasm (-5.36% of base)
-24 : 63585.dasm (-3.55% of base)
82 total files with Code Size differences (82 improved, 0 regressed), 8 unchanged.
Top method improvements (bytes):
-60 (-2.67% of base) : 251830.dasm - ILCompiler.Dataflow.DynamicallyAccessedMembersBinder:GetAllOnType(Internal.TypeSystem.TypeDesc,ubyte,System.Collections.Generic.List`1[Internal.TypeSystem.TypeSystemEntity],System.Collections.Generic.HashSet`1[Internal.TypeSystem.TypeDesc]) (FullOpts)
-60 (-1.03% of base) : 166097.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumAndArrayTypes():this (FullOpts)
-44 (-4.04% of base) : 250352.dasm - ILCompiler.TypeExtensions:GetTypeThatMeetsConstraints(Internal.TypeSystem.GenericParameterDesc,ubyte):Internal.TypeSystem.TypeDesc (FullOpts)
-40 (-2.52% of base) : 212695.dasm - System.Data.ProviderBase.DbConnectionFactory:PruneConnectionPoolGroups(System.Object):this (FullOpts)
-40 (-0.96% of base) : 166132.dasm - System.Xml.Serialization.ReflectionAwareILGen:ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type) (FullOpts)
-36 (-4.95% of base) : 245551.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:GetSsmlEngine(System.Speech.Synthesis.VoiceInfo):System.Speech.Internal.Synthesis.ITtsEngineProxy:this (FullOpts)
-32 (-6.45% of base) : 292478.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:RetrievePostponedItemsNonGreedy():ubyte:this (FullOpts)
-32 (-0.63% of base) : 163495.dasm - System.Xml.Xsl.IlGen.XmlILStorageMethods:.ctor(System.Type):this (FullOpts)
-28 (-2.75% of base) : 174182.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
-28 (-2.75% of base) : 131663.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
-28 (-3.74% of base) : 63598.dasm - Microsoft.FSharp.Core.CompilerServices.ArrayCollector`1[System.__Canon]:AddMany(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (FullOpts)
-28 (-5.26% of base) : 209707.dasm - System.ComponentModel.Design.Serialization.InstanceDescriptor:Invoke():System.Object:this (FullOpts)
-28 (-4.67% of base) : 205539.dasm - System.DefaultBinder:ExactBinding(System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase (FullOpts)
-28 (-4.67% of base) : 236597.dasm - System.DefaultBinder:ExactBinding(System.Reflection.MethodBase[],System.Type[]):System.Reflection.MethodBase (FullOpts)
-28 (-0.77% of base) : 164288.dasm - System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
-28 (-0.41% of base) : 165814.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteAttributes(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String,System.Reflection.Emit.LocalBuilder):this (FullOpts)
-28 (-2.15% of base) : 163496.dasm - System.Xml.Xsl.IlGen.XmlILConstructors:.cctor() (FullOpts)
-28 (-0.59% of base) : 163005.dasm - System.Xml.Xsl.Runtime.XsltMethods:.cctor() (FullOpts)
-24 (-3.55% of base) : 63585.dasm - Microsoft.FSharp.Core.CompilerServices.ListCollector`1[System.__Canon]:AddMany(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (FullOpts)
-24 (-5.36% of base) : 146275.dasm - System.Data.DataRow:get_RowState():int:this (FullOpts)
Top method improvements (percentages):
-16 (-13.79% of base) : 237322.dasm - System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-13.79% of base) : 206207.dasm - System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-13.79% of base) : 292476.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
-16 (-13.79% of base) : 165991.dasm - System.Xml.Serialization.DynamicAssemblies:IsTypeDynamic(System.Type[]):ubyte (FullOpts)
-16 (-13.33% of base) : 285122.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
-12 (-12.50% of base) : 202106.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[ubyte]:System.Collections.IList.Clear():this (FullOpts)
-12 (-12.50% of base) : 139615.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[ubyte]:System.Collections.IList.Clear():this (FullOpts)
-12 (-12.50% of base) : 181781.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[ubyte]:System.Collections.IList.Clear():this (FullOpts)
-12 (-12.50% of base) : 196.dasm - Microsoft.Extensions.Diagnostics.Metrics.MetricsSubscriptionManager:Initialize():this (FullOpts)
-12 (-12.00% of base) : 292475.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:CompleteEachTarget():this (FullOpts)
-16 (-11.76% of base) : 172550.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-16 (-11.76% of base) : 129938.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-16 (-11.76% of base) : 220571.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
-16 (-11.11% of base) : 181829.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[long]:System.Collections.Generic.ICollection<T>.Contains(long):ubyte:this (FullOpts)
-16 (-11.11% of base) : 202154.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[long]:System.Collections.Generic.ICollection<T>.Contains(long):ubyte:this (FullOpts)
-16 (-11.11% of base) : 139662.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[long]:System.Collections.Generic.ICollection<T>.Contains(long):ubyte:this (FullOpts)
-16 (-11.11% of base) : 181802.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[short]:System.Collections.Generic.ICollection<T>.Contains(short):ubyte:this (FullOpts)
-16 (-11.11% of base) : 139618.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[ubyte]:System.Collections.Generic.ICollection<T>.Contains(ubyte):ubyte:this (FullOpts)
-12 (-11.11% of base) : 171565.dasm - Roslyn.Utilities.ObjectReader:ReadInt16ArrayElements(short[]):short[]:this (FullOpts)
-16 (-11.11% of base) : 237382.dasm - System.Reflection.TypeLoading.RoFunctionPointerType:get_ContainsGenericParameters():ubyte:this (FullOpts)
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: 366264132 (overridden on cmd)
Total bytes of diff: 366242716 (overridden on cmd)
Total bytes of delta: -21416 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 310611.dasm (0.13% of base)
4 : 329689.dasm (0.16% of base)
4 : 311450.dasm (0.17% of base)
4 : 286441.dasm (0.18% of base)
4 : 280415.dasm (0.17% of base)
4 : 378804.dasm (0.17% of base)
4 : 247806.dasm (0.16% of base)
4 : 641841.dasm (0.16% of base)
4 : 255732.dasm (0.16% of base)
4 : 518546.dasm (0.18% of base)
4 : 694585.dasm (0.17% of base)
4 : 481016.dasm (0.16% of base)
4 : 374189.dasm (0.17% of base)
4 : 350700.dasm (0.18% of base)
4 : 699964.dasm (0.18% of base)
4 : 215170.dasm (0.19% of base)
4 : 417144.dasm (0.13% of base)
4 : 72856.dasm (0.17% of base)
4 : 174134.dasm (0.16% of base)
4 : 696652.dasm (0.17% of base)
Top file improvements (bytes):
-40 : 613032.dasm (-2.79% of base)
-36 : 375814.dasm (-2.82% of base)
-36 : 57234.dasm (-2.82% of base)
-36 : 300626.dasm (-2.79% of base)
-36 : 450293.dasm (-2.81% of base)
-36 : 163436.dasm (-2.82% of base)
-36 : 701305.dasm (-2.76% of base)
-36 : 204632.dasm (-2.76% of base)
-36 : 406597.dasm (-2.76% of base)
-36 : 50167.dasm (-2.82% of base)
-36 : 75878.dasm (-2.82% of base)
-36 : 398839.dasm (-2.76% of base)
-36 : 536262.dasm (-2.76% of base)
-36 : 388295.dasm (-2.76% of base)
-36 : 469857.dasm (-2.76% of base)
-36 : 597353.dasm (-2.76% of base)
-36 : 620611.dasm (-2.81% of base)
-36 : 50169.dasm (-2.74% of base)
-36 : 286969.dasm (-2.47% of base)
-36 : 288953.dasm (-2.47% of base)
88 total files with Code Size differences (60 improved, 28 regressed), 8 unchanged.
Top method regressions (bytes):
4 ( 1.18% of base) : 669717.dasm - Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
4 ( 0.16% of base) : 329689.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.17% of base) : 378804.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 247806.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 641841.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 255732.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 481016.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 187025.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 199897.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 339253.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 365362.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.13% of base) : 310611.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 311450.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 286441.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 280415.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 518546.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 694585.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 374189.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 350700.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 699964.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
Top method improvements (bytes):
-40 (-2.79% of base) : 613032.dasm - System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Trim():ubyte:this (Tier1)
-36 (-2.82% of base) : 375814.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.82% of base) : 163436.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 701305.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 204632.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 406597.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.82% of base) : 50167.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.82% of base) : 75878.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 398839.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 388295.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 469857.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 597353.dasm - System.Buffers.SharedArrayPool`1[int]:Trim():ubyte:this (Tier1)
-36 (-2.79% of base) : 300626.dasm - System.Buffers.SharedArrayPool`1[System.DateTime]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 620611.dasm - System.Buffers.SharedArrayPool`1[System.Text.Json.JsonProperty]:Trim():ubyte:this (Tier1)
-36 (-2.82% of base) : 57234.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Tier1)
-36 (-2.81% of base) : 450293.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Tier1)
-36 (-2.76% of base) : 536262.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Trim():ubyte:this (Tier1)
-36 (-2.74% of base) : 50169.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (Tier1)
-36 (-2.47% of base) : 286969.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier1)
-36 (-2.47% of base) : 288953.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier1)
Top method regressions (percentages):
4 ( 1.18% of base) : 669717.dasm - Microsoft.CodeAnalysis.CSharp.BoundCollectionExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.CSharp.BoundObjectOrCollectionValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundUnconvertedCollectionExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundNode],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
4 ( 0.19% of base) : 215170.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 155622.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 699964.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 286441.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 350700.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 707056.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.18% of base) : 518546.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 696652.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 311450.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 374189.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 694585.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 280415.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 72856.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.17% of base) : 378804.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 481016.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 554407.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
4 ( 0.16% of base) : 329689.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 247806.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
4 ( 0.16% of base) : 255732.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (Tier1)
Top method improvements (percentages):
-16 (-13.33% of base) : 439476.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
-16 (-13.33% of base) : 517469.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Tier1)
-12 (-9.68% of base) : 323675.dasm - System.Linq.Parallel.MergeExecutor`1[double]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[double][] (Tier1)
-12 (-9.68% of base) : 320383.dasm - System.Linq.Parallel.MergeExecutor`1[int]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[int][] (Tier1)
-12 (-9.68% of base) : 321836.dasm - System.Linq.Parallel.MergeExecutor`1[long]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[long][] (Tier1)
-12 (-9.68% of base) : 323744.dasm - System.Linq.Parallel.MergeExecutor`1[System.Decimal]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[System.Decimal][] (Tier1)
-12 (-9.68% of base) : 324442.dasm - System.Linq.Parallel.MergeExecutor`1[ubyte]:MakeSynchronousChannels(int):System.Linq.Parallel.SynchronousChannel`1[ubyte][] (Tier1)
-12 (-9.09% of base) : 4334.dasm - System.Resources.FastResourceComparer:HashFunction(System.String):int (Instrumented Tier1)
-16 (-8.70% of base) : 450740.dasm - XmlCoreTest.Common.BufferBoundary:FinishStream():this (Tier1)
-16 (-8.51% of base) : 121382.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (Instrumented Tier1)
-12 (-7.89% of base) : 345656.dasm - System.Linq.Enumerable+ArraySelectIterator`2[System.__Canon,System.ReadOnlyMemory`1[ushort]]:GetCount(ubyte):int:this (Tier1)
-12 (-7.69% of base) : 247899.dasm - System.Diagnostics.CounterCreationDataCollection:AddRange(System.Diagnostics.CounterCreationData[]):this (Tier1)
-20 (-7.69% of base) : 254679.dasm - System.Diagnostics.Tracing.InvokeTypeInfo:WriteData(System.Diagnostics.Tracing.PropertyValue):this (Instrumented Tier1)
-12 (-7.50% of base) : 160044.dasm - Microsoft.CodeAnalysis.CaseInsensitiveComparison+OneToOneUnicodeComparer:GetHashCode(System.String):int:this (Tier1)
-12 (-7.50% of base) : 56930.dasm - Microsoft.CodeAnalysis.CaseInsensitiveComparison+OneToOneUnicodeComparer:GetHashCode(System.String):int:this (Tier1)
-12 (-7.50% of base) : 77367.dasm - Microsoft.CodeAnalysis.CaseInsensitiveComparison+OneToOneUnicodeComparer:GetHashCode(System.String):int:this (Tier1)
-12 (-7.50% of base) : 647579.dasm - Microsoft.CodeAnalysis.CaseInsensitiveComparison+OneToOneUnicodeComparer:GetHashCode(System.String):int:this (Tier1)
-12 (-7.32% of base) : 222356.dasm - System.ComponentModel.MemberDescriptor:FillAttributes(System.Collections.IList):this (Tier1)
-16 (-7.27% of base) : 332464.dasm - System.Linq.Enumerable+ArrayWhereIterator`1[int]:TryGetElementAt(int,byref):int:this (Tier1)
-16 (-6.78% of base) : 657693.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitTryFindNextPossibleStartingPosition>g__IsValidInFieldName|24_8(System.String):ubyte (Tier1)
libraries_tests_no_tiered_compilation.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: 182592880 (overridden on cmd)
Total bytes of diff: 182576664 (overridden on cmd)
Total bytes of delta: -16216 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
64 : 83589.dasm (4.19% of base)
36 : 83494.dasm (2.13% of base)
16 : 83553.dasm (0.71% of base)
8 : 328013.dasm (0.19% of base)
4 : 328592.dasm (0.38% of base)
4 : 328881.dasm (0.51% of base)
4 : 329776.dasm (0.32% of base)
4 : 328574.dasm (0.38% of base)
Top file improvements (bytes):
-68 : 166083.dasm (-4.61% of base)
-68 : 166156.dasm (-4.61% of base)
-56 : 17961.dasm (-4.12% of base)
-52 : 102187.dasm (-2.22% of base)
-48 : 76003.dasm (-5.15% of base)
-48 : 76022.dasm (-2.83% of base)
-48 : 76001.dasm (-4.78% of base)
-44 : 203070.dasm (-1.75% of base)
-40 : 129262.dasm (-4.27% of base)
-40 : 9723.dasm (-2.94% of base)
-36 : 188860.dasm (-3.50% of base)
-36 : 253165.dasm (-4.95% of base)
-36 : 179546.dasm (-1.55% of base)
-36 : 197028.dasm (-0.86% of base)
-36 : 233336.dasm (-1.18% of base)
-36 : 188795.dasm (-1.65% of base)
-36 : 233140.dasm (-1.18% of base)
-32 : 136067.dasm (-2.81% of base)
-32 : 114503.dasm (-2.21% of base)
-32 : 187207.dasm (-0.63% of base)
66 total files with Code Size differences (58 improved, 8 regressed), 27 unchanged.
Top method regressions (bytes):
64 ( 4.19% of base) : 83589.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[int]:AddFirst_T_Tests():this (FullOpts)
36 ( 2.13% of base) : 83494.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[int]:AddFirst_LinkedListNode():this (FullOpts)
16 ( 0.71% of base) : 83553.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[System.__Canon]:AddFirst_LinkedListNode():this (FullOpts)
8 ( 0.19% of base) : 328013.dasm - System.Threading.Tasks.Tests.TaskRtTests:FromResult_KnownResults_Cached() (FullOpts)
4 ( 0.38% of base) : 328574.dasm - System.Threading.Tests.InterlockedTests:InterlockedCompareExchange_Multithreaded_Double():this (FullOpts)
4 ( 0.38% of base) : 328592.dasm - System.Threading.Tests.InterlockedTests:InterlockedIncrement_Multithreaded_Int32():this (FullOpts)
4 ( 0.51% of base) : 328881.dasm - System.Threading.Tests.MutexTests:NamedMutex_DisposeWhenLockedRaceTest():this (FullOpts)
4 ( 0.32% of base) : 329776.dasm - System.Threading.Tests.TimerMetricsTests+<>c:<CountTest>b__0_0():this (FullOpts)
Top method improvements (bytes):
-68 (-4.61% of base) : 166156.dasm - System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest:BasicTest_GetIPInterfaceStatistics_Success():this (FullOpts)
-68 (-4.61% of base) : 166083.dasm - System.Net.NetworkInformation.Tests.NetworkInterfaceIPv4Statistics:BasicTest_GetIPv4InterfaceStatistics_Success():this (FullOpts)
-56 (-4.12% of base) : 17961.dasm - IntrinsicsInSystemPrivateCoreLib.IntrinsicsInSystemPrivateCoreLibAnalyzer:<AnalyzeOperation>g__HandleConditionalCase|32_0(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,byref):ubyte (FullOpts)
-52 (-2.22% of base) : 102187.dasm - System.Data.Tests.DataProvider:GetDSSchema(System.Data.DataSet):System.String (FullOpts)
-48 (-2.83% of base) : 76022.dasm - System.Collections.Frozen.Tests.FrozenDictionary_NonGeneric_Tests:Sparse_LookupItems_AlltemsFoundAsExpected():this (FullOpts)
-48 (-5.15% of base) : 76003.dasm - System.Collections.Frozen.Tests.FrozenSet_NonGeneric_Tests:ClosedRange_Lookup_AllItemsFoundAsExpected():this (FullOpts)
-48 (-4.78% of base) : 76001.dasm - System.Collections.Frozen.Tests.FrozenSet_NonGeneric_Tests:Sparse_LookupItems_AlltemsFoundAsExpected():this (FullOpts)
-44 (-1.75% of base) : 203070.dasm - System.Reflection.Tests.ConstructorInfoInvokeArrayTests:Invoke_SZArrayConstructor():this (FullOpts)
-40 (-2.94% of base) : 9723.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Trim():ubyte:this (FullOpts)
-40 (-4.27% of base) : 129262.dasm - System.Globalization.Tests.TextElementEnumeratorTests:Enumerate(System.String[]):this (FullOpts)
-36 (-1.55% of base) : 179546.dasm - System.Collections.ObjectModel.Tests.ReadOnlyObservableCollection_EventsTests:InsertTest_Negative() (FullOpts)
-36 (-0.86% of base) : 197028.dasm - System.Reflection.Emit.Tests.AssemblySaveTypeBuilderAPIsTests:GetMethodsGetMethodImpl_Tests():this (FullOpts)
-36 (-4.95% of base) : 253165.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:GetSsmlEngine(System.Speech.Synthesis.VoiceInfo):System.Speech.Internal.Synthesis.ITtsEngineProxy:this (FullOpts)
-36 (-1.18% of base) : 233140.dasm - System.Tests.IntPtrTests:TestExplicitCast() (FullOpts)
-36 (-1.18% of base) : 233336.dasm - System.Tests.UIntPtrTests:TestExplicitCast() (FullOpts)
-36 (-1.65% of base) : 188795.dasm - System.Xml.XmlSchemaValidatorApiTests.TCEndValidation:TestForRootLevelIdentityConstraints_Valid_IDREFMissingInvalid_IgnoreIdentityConstraintsIsSetInvalid(System.String):this (FullOpts)
-36 (-3.50% of base) : 188860.dasm - System.Xml.XmlSchemaValidatorApiTests.TCGetUnspecifiedDefaultAttributes:CheckDefaultAttributes(System.Collections.ArrayList,System.String[]):this (FullOpts)
-32 (-2.21% of base) : 114503.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate010a.operate010a.Test:Test3():ubyte (FullOpts)
-32 (-2.81% of base) : 136067.dasm - System.IO.Tests.FileStream_ctor_str_fm_fa_fs:<FileShareOpen_Inheritable>b__17_0():this (FullOpts)
-32 (-0.63% of base) : 187207.dasm - System.Xml.Xsl.IlGen.XmlILStorageMethods:.ctor(System.Type):this (FullOpts)
Top method regressions (percentages):
64 ( 4.19% of base) : 83589.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[int]:AddFirst_T_Tests():this (FullOpts)
36 ( 2.13% of base) : 83494.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[int]:AddFirst_LinkedListNode():this (FullOpts)
16 ( 0.71% of base) : 83553.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[System.__Canon]:AddFirst_LinkedListNode():this (FullOpts)
4 ( 0.51% of base) : 328881.dasm - System.Threading.Tests.MutexTests:NamedMutex_DisposeWhenLockedRaceTest():this (FullOpts)
4 ( 0.38% of base) : 328592.dasm - System.Threading.Tests.InterlockedTests:InterlockedIncrement_Multithreaded_Int32():this (FullOpts)
4 ( 0.38% of base) : 328574.dasm - System.Threading.Tests.InterlockedTests:InterlockedCompareExchange_Multithreaded_Double():this (FullOpts)
4 ( 0.32% of base) : 329776.dasm - System.Threading.Tests.TimerMetricsTests+<>c:<CountTest>b__0_0():this (FullOpts)
8 ( 0.19% of base) : 328013.dasm - System.Threading.Tasks.Tests.TaskRtTests:FromResult_KnownResults_Cached() (FullOpts)
Top method improvements (percentages):
-16 (-15.38% of base) : 153692.dasm - System.SpanTests.IndexOfAnyExceptTests`1[System.__Canon]:Set(System.__Canon[],System.__Canon,int[]):System.__Canon[]:this (FullOpts)
-16 (-13.79% of base) : 197226.dasm - System.Reflection.TypeLoading.RoConstructedGenericType:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-13.79% of base) : 323200.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:get_AllTargetsHaveAtLeastOneMessage():ubyte:this (FullOpts)
-16 (-13.33% of base) : 196168.dasm - System.Reflection.Emit.TypeNameBuilder:ContainsReservedChar(System.String):ubyte (FullOpts)
-12 (-12.50% of base) : 37732.dasm - Microsoft.Extensions.Diagnostics.Metrics.MetricsSubscriptionManager:Initialize():this (FullOpts)
-16 (-12.50% of base) : 195528.dasm - System.Reflection.Emit.Tests.DynamicILInfoTests+Finder:Find[int](int[],System.Reflection.Emit.Tests.DynamicILInfoTests+Satisfy`1[int]):int (FullOpts)
-12 (-12.00% of base) : 323350.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources:CompleteEachTarget():this (FullOpts)
-16 (-11.76% of base) : 54851.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-16 (-11.76% of base) : 24640.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
-12 (-11.11% of base) : 56118.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-12 (-11.11% of base) : 43967.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-12 (-11.11% of base) : 12566.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-12 (-11.11% of base) : 50102.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-16 (-11.11% of base) : 200632.dasm - System.Reflection.TypeLoading.RoFunctionPointerType:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-10.81% of base) : 44977.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
-16 (-10.81% of base) : 56952.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
-16 (-10.81% of base) : 14689.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
-16 (-10.81% of base) : 51325.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
-12 (-10.71% of base) : 191786.dasm - System.Xml.XmlDocumentTests.RemoveChildTests:Text_Comment_CDATA() (FullOpts)
-12 (-10.71% of base) : 191785.dasm - System.Xml.XmlDocumentTests.RemoveChildTests:Whitespace_Element_Whitespace() (FullOpts)
realworld.run.windows.arm64.checked.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: 13086704 (overridden on cmd)
Total bytes of diff: 13085268 (overridden on cmd)
Total bytes of delta: -1436 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 6350.dasm (0.37% of base)
Top file improvements (bytes):
-64 : 21897.dasm (-0.41% of base)
-40 : 3908.dasm (-2.95% of base)
-40 : 4978.dasm (-2.53% of base)
-40 : 24795.dasm (-1.58% of base)
-32 : 21938.dasm (-2.99% of base)
-28 : 21582.dasm (-4.58% of base)
-28 : 14124.dasm (-2.89% of base)
-28 : 22263.dasm (-1.56% of base)
-24 : 24621.dasm (-5.00% of base)
-24 : 2766.dasm (-3.55% of base)
-24 : 25196.dasm (-1.13% of base)
-20 : 5103.dasm (-4.85% of base)
-20 : 6478.dasm (-0.85% of base)
-20 : 23445.dasm (-2.70% of base)
-20 : 515.dasm (-1.60% of base)
-20 : 24197.dasm (-3.47% of base)
-20 : 23836.dasm (-0.86% of base)
-16 : 13887.dasm (-10.53% of base)
-16 : 5101.dasm (-8.33% of base)
-16 : 4287.dasm (-8.89% of base)
82 total files with Code Size differences (81 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
4 ( 0.37% of base) : 6350.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingEstimator:GetOutputSchema(Microsoft.ML.SchemaShape):Microsoft.ML.SchemaShape:this (FullOpts)
Top method improvements (bytes):
-64 (-0.41% of base) : 21897.dasm - System.Management.Automation.Language.CachedReflectionInfo:.cctor() (FullOpts)
-40 (-2.53% of base) : 4978.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+<>c__DisplayClass5_1:<ConsolidateCore>b__2():this (FullOpts)
-40 (-2.95% of base) : 3908.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
-40 (-1.58% of base) : 24795.dasm - System.Management.Automation.Internal.ModuleUtils+<GetDefaultAvailableModuleFiles>d__9:MoveNext():ubyte:this (FullOpts)
-32 (-2.99% of base) : 21938.dasm - System.Management.Automation.MutableTuple:GetSize(System.Type):int (FullOpts)
-28 (-2.89% of base) : 14124.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbol(Microsoft.CodeAnalysis.MetadataHelpers+AssemblyQualifiedTypeName,byref):System.__Canon:this (FullOpts)
-28 (-1.56% of base) : 22263.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetRegkeyForPath(System.String,ubyte):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
-28 (-4.58% of base) : 21582.dasm - System.Management.Automation.Utils:GetPolicySettingFromGPO[System.__Canon](int[]):System.__Canon (FullOpts)
-24 (-3.55% of base) : 2766.dasm - Microsoft.FSharp.Core.CompilerServices.ListCollector`1[System.__Canon]:AddMany(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (FullOpts)
-24 (-1.13% of base) : 25196.dasm - Microsoft.PowerShell.Commands.ImportModuleCommand:ProcessRecord():this (FullOpts)
-24 (-5.00% of base) : 24621.dasm - System.Management.Automation.Host.PSHostUserInterface:ShouldIgnoreCommand(System.String,System.Management.Automation.InvocationInfo):ubyte:this (FullOpts)
-20 (-4.85% of base) : 5103.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+<>c__DisplayClass5_0:<ConsolidateCore>b__1():this (FullOpts)
-20 (-1.60% of base) : 515.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)
-20 (-2.70% of base) : 23445.dasm - System.Management.Automation.CompiledScriptBlockData:InitializeMetadata():this (FullOpts)
-20 (-3.47% of base) : 24197.dasm - System.Management.Automation.PSLocalEventManager:Dispose(ubyte):this (FullOpts)
-20 (-0.85% of base) : 6478.dasm - System.Net.Http.HttpWindowsProxy:UpdateConfiguration(System.Net.Http.WinInetProxyHelper):this (FullOpts)
-20 (-0.86% of base) : 23836.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateInterfaces(System.RuntimeType+RuntimeTypeCache+Filter):System.RuntimeType[]:this (FullOpts)
-16 (-10.53% of base) : 13887.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
-16 (-11.76% of base) : 10631.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-16 (-8.33% of base) : 5101.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+Cursor:Dispose(ubyte):this (FullOpts)
Top method regressions (percentages):
4 ( 0.37% of base) : 6350.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingEstimator:GetOutputSchema(Microsoft.ML.SchemaShape):Microsoft.ML.SchemaShape:this (FullOpts)
Top method improvements (percentages):
-16 (-11.76% of base) : 10631.dasm - Microsoft.CodeAnalysis.ImmutableArrayExtensions:Count[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):int (FullOpts)
-16 (-11.76% of base) : 25649.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:MethodHasByRefParameter(System.Reflection.MethodInfo):ubyte (FullOpts)
-12 (-11.11% of base) : 14386.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeWalker:VisitList[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):this (FullOpts)
-16 (-10.53% of base) : 13887.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:ContainsDroppedIdentifierCharacters(System.String):ubyte (FullOpts)
-12 (-9.68% of base) : 22151.dasm - System.Management.Automation.Runspaces.TypeTable:StandardMembersUpdated() (FullOpts)
-12 (-9.38% of base) : 3997.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.SpectralConverter`1[SixLabors.ImageSharp.PixelFormats.Rgb24]:ConvertStrideBaseline():this (FullOpts)
-16 (-8.89% of base) : 4287.dasm - SixLabors.ImageSharp.Memory.MemoryGroup`1+Owned[SixLabors.ImageSharp.PixelFormats.Rgba32]:IncreaseRefCounts():this (FullOpts)
-16 (-8.33% of base) : 5101.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+Cursor:Dispose(ubyte):this (FullOpts)
-16 (-7.84% of base) : 23899.dasm - System.Management.Automation.Adapter:IsInvocationConstraintSatisfied(System.Management.Automation.Adapter+OverloadCandidate,System.Management.Automation.PSMethodInvocationConstraints):ubyte (FullOpts)
-16 (-6.67% of base) : 4315.dasm - SixLabors.ImageSharp.Memory.MemoryGroup`1+Owned[SixLabors.ImageSharp.PixelFormats.Rgba32]:DecreaseRefCounts():this (FullOpts)
-16 (-6.56% of base) : 102.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (FullOpts)
-12 (-6.12% of base) : 10393.dasm - Microsoft.CodeAnalysis.CaseInsensitiveComparison+OneToOneUnicodeComparer:GetHashCode(System.String):int:this (FullOpts)
-16 (-6.06% of base) : 3788.dasm - SixLabors.ImageSharp.Memory.MemoryGroup`1+Owned[SixLabors.ImageSharp.PixelFormats.Rgba32]:Dispose():this (FullOpts)
-4 (-5.88% of base) : 10612.dasm - Roslyn.Utilities.Hash:CombineFNVHash(int,System.String):int (FullOpts)
-4 (-5.88% of base) : 1887.dasm - System.Resources.FastResourceComparer:HashFunction(System.String):int (FullOpts)
-24 (-5.00% of base) : 24621.dasm - System.Management.Automation.Host.PSHostUserInterface:ShouldIgnoreCommand(System.String,System.Management.Automation.InvocationInfo):ubyte:this (FullOpts)
-4 (-5.00% of base) : 467.dasm - System.Reflection.MetadataToken:IsTokenOfType(int,int[]):ubyte (FullOpts)
-20 (-4.85% of base) : 5103.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+<>c__DisplayClass5_0:<ConsolidateCore>b__1():this (FullOpts)
-4 (-4.76% of base) : 24419.dasm - Microsoft.ApplicationInsights.Metrics.Util:CombineHashCodes(int[]):int (FullOpts)
-4 (-4.76% of base) : 833.dasm - System.Reflection.Emit.DynamicResolver:CalculateNumberOfExceptions(System.Reflection.Emit.__ExceptionInfo[]):int (FullOpts)
smoke_tests.nativeaot.windows.arm64.checked.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: 3976468 (overridden on cmd)
Total bytes of diff: 3975224 (overridden on cmd)
Total bytes of delta: -1244 (-0.03 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-36 : 6266.dasm (-3.78% of base)
-36 : 12149.dasm (-3.95% of base)
-32 : 1233.dasm (-4.82% of base)
-32 : 3764.dasm (-3.85% of base)
-32 : 11724.dasm (-4.73% of base)
-32 : 13374.dasm (-4.52% of base)
-28 : 12261.dasm (-6.54% of base)
-28 : 7658.dasm (-5.51% of base)
-20 : 10838.dasm (-4.46% of base)
-20 : 10695.dasm (-1.86% of base)
-20 : 12020.dasm (-7.69% of base)
-20 : 6593.dasm (-6.10% of base)
-20 : 9539.dasm (-9.62% of base)
-20 : 11975.dasm (-4.50% of base)
-20 : 22956.dasm (-4.59% of base)
-20 : 7344.dasm (-5.56% of base)
-16 : 1729.dasm (-14.29% of base)
-16 : 3408.dasm (-13.33% of base)
-16 : 11369.dasm (-2.09% of base)
-16 : 11689.dasm (-8.89% of base)
34 total files with Code Size differences (34 improved, 0 regressed), 40 unchanged.
Top method improvements (bytes):
-36 (-3.78% of base) : 6266.dasm - Internal.Runtime.TypeLoader.NativeLayoutInterfacesAlgorithm:ComputeRuntimeInterfaces(Internal.TypeSystem.TypeDesc):Internal.TypeSystem.DefType[]:this (FullOpts)
-36 (-3.95% of base) : 12149.dasm - Internal.Runtime.TypeLoader.NativeLayoutInterfacesAlgorithm:ComputeRuntimeInterfaces(Internal.TypeSystem.TypeDesc):Internal.TypeSystem.DefType[]:this (FullOpts)
-32 (-4.52% of base) : 13374.dasm - Program:<Main>$(System.String[]):int (FullOpts)
-32 (-4.73% of base) : 11724.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
-32 (-4.82% of base) : 1233.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)
-32 (-3.85% of base) : 3764.dasm - System.Buffers.SharedArrayPool`1[ushort]:Trim():ubyte:this (FullOpts)
-28 (-6.54% of base) : 12261.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
-28 (-5.51% of base) : 7658.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
-20 (-4.59% of base) : 22956.dasm - StackTraces+TestStackTraceHidden:Run() (FullOpts)
-20 (-1.86% of base) : 10695.dasm - System.ActivatorImplementation:CreateInstance(System.Type,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]):System.Object (FullOpts)
-20 (-4.46% of base) : 10838.dasm - System.Linq.Expressions.Expression:FindMethod(System.Type,System.String,System.Type[],System.Linq.Expressions.Expression[],int):System.Reflection.MethodInfo (FullOpts)
-20 (-4.50% of base) : 11975.dasm - System.Reflection.Runtime.General.Assignability:CanCastArrayToInterface(System.Type,System.Type):ubyte (FullOpts)
-20 (-7.69% of base) : 12020.dasm - System.Reflection.Runtime.General.Assignability:ProvablyAGcReferenceTypeHelper(System.Type):ubyte (FullOpts)
-20 (-5.56% of base) : 7344.dasm - System.Reflection.Runtime.General.Assignability:ProvablyAGcReferenceTypeHelper(System.Type):ubyte (FullOpts)
-20 (-6.10% of base) : 6593.dasm - System.Type:get_ContainsGenericParameters():ubyte:this (FullOpts)
-20 (-9.62% of base) : 9539.dasm - System.Type:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-6.78% of base) : 12483.dasm - Internal.Reflection.Execution.ConstraintValidator:HasExplicitOrImplicitPublicDefaultConstructor(System.Type):ubyte (FullOpts)
-16 (-5.13% of base) : 22497.dasm - ReflectionTest+TestIsValueTypeWithoutTypeHandle:Run() (FullOpts)
-16 (-8.89% of base) : 11689.dasm - System.Reflection.Runtime.MethodInfos.RuntimeMethodInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-14.29% of base) : 1729.dasm - System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
Top method improvements (percentages):
-16 (-14.29% of base) : 1729.dasm - System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-13.33% of base) : 3408.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
-16 (-13.33% of base) : 9652.dasm - System.String:IsNullOrWhiteSpace(System.String):ubyte (FullOpts)
-16 (-12.12% of base) : 5595.dasm - System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-11.76% of base) : 1722.dasm - System.Reflection.Runtime.TypeInfos.RuntimeFunctionPointerTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
-20 (-9.62% of base) : 9539.dasm - System.Type:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-9.09% of base) : 5583.dasm - System.Reflection.Runtime.TypeInfos.RuntimeFunctionPointerTypeInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
-16 (-8.89% of base) : 11689.dasm - System.Reflection.Runtime.MethodInfos.RuntimeMethodInfo:get_ContainsGenericParameters():ubyte:this (FullOpts)
-20 (-7.69% of base) : 12020.dasm - System.Reflection.Runtime.General.Assignability:ProvablyAGcReferenceTypeHelper(System.Type):ubyte (FullOpts)
-12 (-7.32% of base) : 9052.dasm - System.Type:GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo):System.Reflection.MemberInfo:this (FullOpts)
-12 (-6.98% of base) : 10600.dasm - System.Reflection.Runtime.General.TypeUnifier:WithVerifiedTypeHandle(System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo,System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo[]):System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo (FullOpts)
-16 (-6.78% of base) : 12483.dasm - Internal.Reflection.Execution.ConstraintValidator:HasExplicitOrImplicitPublicDefaultConstructor(System.Type):ubyte (FullOpts)
-12 (-6.67% of base) : 487.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (FullOpts)
-12 (-6.67% of base) : 3122.dasm - System.Diagnostics.StackTrace:ToString(int,System.Text.StringBuilder):this (FullOpts)
-12 (-6.67% of base) : 6365.dasm - System.Globalization.CalendarData:GetCalendarMonthInfo(System.String,ushort,uint,byref):ubyte (FullOpts)
-12 (-6.67% of base) : 2284.dasm - System.Globalization.CalendarData:GetCalendarMonthInfo(System.String,ushort,uint,byref):ubyte (FullOpts)
-28 (-6.54% of base) : 12261.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
-12 (-6.25% of base) : 5444.dasm - System.Reflection.Runtime.General.TypeUnifier:WithVerifiedTypeHandle(System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo,System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo[]):System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo (FullOpts)
-20 (-6.10% of base) : 6593.dasm - System.Type:get_ContainsGenericParameters():ubyte:this (FullOpts)
-12 (-5.88% of base) : 1869.dasm - System.Reflection.Runtime.General.Helpers:EscapeTypeNameIdentifier(System.String):System.String (FullOpts)