Assembly Diffs
linux arm64
Diffs are based on 134,774 contexts (18,569 MinOpts, 116,205 FullOpts).
MISSED contexts: base: 1 (0.00%), diff: 111,892 (44.67%)
Overall (-65,128 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.arm64.checked.mch |
254,108 |
-6,996 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
1,175,000 |
-4,220 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
1,217,436 |
-10,432 |
| coreclr_tests.run.linux.arm64.checked.mch |
85,076 |
-872 |
| libraries.crossgen2.linux.arm64.checked.mch |
9,628,520 |
-24 |
| libraries.pmi.linux.arm64.checked.mch |
479,152 |
-11,220 |
| libraries_tests.run.linux.arm64.Release.mch |
705,512 |
-3,148 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
96,188 |
-4,340 |
| realworld.run.linux.arm64.checked.mch |
418,800 |
-12,572 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
810,696 |
-11,304 |
MinOpts (-15,224 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.linux.arm64.checked.mch |
842,584 |
-4,120 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
1,078,572 |
-8,036 |
| libraries_tests.run.linux.arm64.Release.mch |
520,532 |
-3,068 |
FullOpts (-49,904 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.arm64.checked.mch |
244,632 |
-6,996 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
332,416 |
-100 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
138,864 |
-2,396 |
| coreclr_tests.run.linux.arm64.checked.mch |
85,076 |
-872 |
| libraries.crossgen2.linux.arm64.checked.mch |
9,627,248 |
-24 |
| libraries.pmi.linux.arm64.checked.mch |
479,152 |
-11,220 |
| libraries_tests.run.linux.arm64.Release.mch |
184,980 |
-80 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
96,188 |
-4,340 |
| realworld.run.linux.arm64.checked.mch |
411,572 |
-12,572 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
810,508 |
-11,304 |
Example diffs
benchmarks.run.linux.arm64.checked.mch
-44 (-73.33%) : 1508.dasm - Interop+Ssl:.cctor() (FullOpts)
@@ -16,27 +16,12 @@ G_M51578_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M51578_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M51578_IG04
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M51578_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M51578_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M51578_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #16
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M51578_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 8, PerfScore 9.00, instruction count 15, allocated bytes for code 60 (MethodHash=38453685) for method Interop+Ssl:.cctor() (FullOpts)
+; Total bytes of code 16, prolog size 8, PerfScore 3.50, instruction count 4, allocated bytes for code 16 (MethodHash=38453685) for method Interop+Ssl:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -47,7 +32,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 4 (0x00004) Actual length = 16 (0x000010)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 1010.dasm - BenchmarkDotNet.Environments.InfrastructureResolver+<>c:<.ctor>b_10():Perfolizer.Horology.IClock:this (FullOpts)
@@ -16,35 +16,19 @@ G_M52807_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M52807_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M52807_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M52807_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52807_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M52807_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M52807_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M52807_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #70
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M52807_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=c23b31b8) for method BenchmarkDotNet.Environments.InfrastructureResolver+<>c:<.ctor>b__1_0():Perfolizer.Horology.IClock:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=c23b31b8) for method BenchmarkDotNet.Environments.InfrastructureResolver+<>c:<.ctor>b__1_0():Perfolizer.Horology.IClock:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 4019.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:get_Empty():System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts)
@@ -16,35 +16,19 @@ G_M4114_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M4114_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M4114_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M4114_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M4114_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M4114_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M4114_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M4114_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #102
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M4114_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=a12cefed) for method System.Text.RegularExpressions.Symbolic.CharSetSolver:get_Empty():System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=a12cefed) for method System.Text.RegularExpressions.Symbolic.CharSetSolver:get_Empty():System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-36 (-3.20%) : 3793.dasm - System.DateTimeParse:DTFITrace(System.Globalization.DateTimeFormatInfo) (FullOpts)
@@ -15,8 +15,8 @@
;* V04 tmp3 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V05 tmp4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp5 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V07 tmp6 [V07,T21] ( 2, 2 ) int -> x0 "Inlining Arg"
-; V08 tmp7 [V08,T06] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
+; V07 tmp6 [V07,T20] ( 2, 2 ) int -> x0 "Inlining Arg"
+; V08 tmp7 [V08,T05] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
;* V09 tmp8 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V10 tmp9 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V11 tmp10 [V11,T02] ( 4, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
@@ -24,8 +24,8 @@
;* V13 tmp12 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp13 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V15 tmp14 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V16 tmp15 [V16,T22] ( 2, 2 ) int -> x0 "Inlining Arg"
-; V17 tmp16 [V17,T07] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
+; V16 tmp15 [V16,T21] ( 2, 2 ) int -> x0 "Inlining Arg"
+; V17 tmp16 [V17,T06] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
;* V18 tmp17 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp18 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V20 tmp19 [V20,T03] ( 4, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
@@ -33,8 +33,8 @@
;* V22 tmp21 [V22 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V23 tmp22 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V24 tmp23 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V25 tmp24 [V25,T23] ( 2, 2 ) int -> x0 "Inlining Arg"
-; V26 tmp25 [V26,T08] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
+; V25 tmp24 [V25,T22] ( 2, 2 ) int -> x0 "Inlining Arg"
+; V26 tmp25 [V26,T07] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
;* V27 tmp26 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp27 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V29 tmp28 [V29,T04] ( 4, 4 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
@@ -42,87 +42,77 @@
;* V31 tmp30 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp31 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V33 tmp32 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V34 tmp33 [V34,T24] ( 2, 2 ) int -> x0 "Inlining Arg"
-; V35 tmp34 [V35,T09] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
+; V34 tmp33 [V34,T23] ( 2, 2 ) int -> x0 "Inlining Arg"
+; V35 tmp34 [V35,T08] ( 2, 2 ) byref -> x1 single-def "Inlining Arg"
;* V36 tmp35 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V37 tmp36 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp38 [V39 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
-; V40 tmp39 [V40,T26] ( 3, 1.50) byref -> registers "field V04._reference (fldOffset=0x0)" P-INDEP
-; V41 tmp40 [V41,T30] ( 3, 1.50) int -> registers "field V04._length (fldOffset=0x8)" P-INDEP
-; V42 tmp41 [V42,T34] ( 2, 1 ) byref -> x1 single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-; V43 tmp42 [V43,T38] ( 2, 1 ) int -> x0 "field V05._length (fldOffset=0x8)" P-INDEP
+; V40 tmp39 [V40,T24] ( 3, 1.50) byref -> registers "field V04._reference (fldOffset=0x0)" P-INDEP
+; V41 tmp40 [V41,T28] ( 3, 1.50) int -> registers "field V04._length (fldOffset=0x8)" P-INDEP
+; V42 tmp41 [V42,T32] ( 2, 1 ) byref -> x1 single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+; V43 tmp42 [V43,T36] ( 2, 1 ) int -> x0 "field V05._length (fldOffset=0x8)" P-INDEP
;* V44 tmp43 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
;* V46 tmp45 [V46 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V47 tmp46 [V47 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-; V48 tmp47 [V48,T27] ( 3, 1.50) byref -> registers "field V13._reference (fldOffset=0x0)" P-INDEP
-; V49 tmp48 [V49,T31] ( 3, 1.50) int -> registers "field V13._length (fldOffset=0x8)" P-INDEP
-; V50 tmp49 [V50,T35] ( 2, 1 ) byref -> x1 single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-; V51 tmp50 [V51,T39] ( 2, 1 ) int -> x0 "field V14._length (fldOffset=0x8)" P-INDEP
+; V48 tmp47 [V48,T25] ( 3, 1.50) byref -> registers "field V13._reference (fldOffset=0x0)" P-INDEP
+; V49 tmp48 [V49,T29] ( 3, 1.50) int -> registers "field V13._length (fldOffset=0x8)" P-INDEP
+; V50 tmp49 [V50,T33] ( 2, 1 ) byref -> x1 single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V51 tmp50 [V51,T37] ( 2, 1 ) int -> x0 "field V14._length (fldOffset=0x8)" P-INDEP
;* V52 tmp51 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP
;* V53 tmp52 [V53 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;* V54 tmp53 [V54 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
-; V56 tmp55 [V56,T28] ( 3, 1.50) byref -> registers "field V22._reference (fldOffset=0x0)" P-INDEP
-; V57 tmp56 [V57,T32] ( 3, 1.50) int -> registers "field V22._length (fldOffset=0x8)" P-INDEP
-; V58 tmp57 [V58,T36] ( 2, 1 ) byref -> x1 single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-; V59 tmp58 [V59,T40] ( 2, 1 ) int -> x0 "field V23._length (fldOffset=0x8)" P-INDEP
+; V56 tmp55 [V56,T26] ( 3, 1.50) byref -> registers "field V22._reference (fldOffset=0x0)" P-INDEP
+; V57 tmp56 [V57,T30] ( 3, 1.50) int -> registers "field V22._length (fldOffset=0x8)" P-INDEP
+; V58 tmp57 [V58,T34] ( 2, 1 ) byref -> x1 single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+; V59 tmp58 [V59,T38] ( 2, 1 ) int -> x0 "field V23._length (fldOffset=0x8)" P-INDEP
;* V60 tmp59 [V60 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
;* V61 tmp60 [V61 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V62 tmp61 [V62 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V63 tmp62 [V63 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
-; V64 tmp63 [V64,T29] ( 3, 1.50) byref -> registers "field V31._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp64 [V65,T33] ( 3, 1.50) int -> registers "field V31._length (fldOffset=0x8)" P-INDEP
-; V66 tmp65 [V66,T37] ( 2, 1 ) byref -> x1 single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-; V67 tmp66 [V67,T41] ( 2, 1 ) int -> x0 "field V32._length (fldOffset=0x8)" P-INDEP
+; V64 tmp63 [V64,T27] ( 3, 1.50) byref -> registers "field V31._reference (fldOffset=0x0)" P-INDEP
+; V65 tmp64 [V65,T31] ( 3, 1.50) int -> registers "field V31._length (fldOffset=0x8)" P-INDEP
+; V66 tmp65 [V66,T35] ( 2, 1 ) byref -> x1 single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+; V67 tmp66 [V67,T39] ( 2, 1 ) int -> x0 "field V32._length (fldOffset=0x8)" P-INDEP
;* V68 tmp67 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
;* V69 tmp68 [V69 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
-; V70 tmp69 [V70,T10] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V71 tmp70 [V71,T11] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V72 tmp71 [V72,T12] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V73 tmp72 [V73,T13] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V74 tmp73 [V74,T14] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V75 tmp74 [V75,T15] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V76 tmp75 [V76,T16] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V77 tmp76 [V77,T17] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V78 tmp77 [V78,T18] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V79 tmp78 [V79,T19] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V80 tmp79 [V80,T20] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V81 cse0 [V81,T05] ( 3, 3 ) long -> x20 "CSE - aggressive"
-; V82 rat0 [V82,T25] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V70 tmp69 [V70,T09] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V71 tmp70 [V71,T10] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V72 tmp71 [V72,T11] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V73 tmp72 [V73,T12] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V74 tmp73 [V74,T13] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V75 tmp74 [V75,T14] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V76 tmp75 [V76,T15] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V77 tmp76 [V77,T16] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V78 tmp77 [V78,T17] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V79 tmp78 [V79,T18] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V80 tmp79 [V80,T19] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M24620_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
;; size=16 bbWeight=1 PerfScore 3.00
G_M24620_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- mov x0, x20
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M24620_IG15
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M24620_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [x20, #0xD1FFAB1E]
- cbnz w0, G_M24620_IG05
- ;; size=8 bbWeight=1 PerfScore 4.00
-G_M24620_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldrb w0, [x0]
+ cbnz w0, G_M24620_IG04
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M24620_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M24620_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M24620_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -132,14 +122,14 @@ G_M24620_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
ldr x1, [x1]
ldr wzr, [x0]
blr x1
- cbnz x0, G_M24620_IG06
+ cbnz x0, G_M24620_IG05
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG07
+ b G_M24620_IG06
;; size=44 bbWeight=0.50 PerfScore 6.00
-G_M24620_IG06: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG05: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x1, x0, #12
@@ -152,7 +142,7 @@ G_M24620_IG06: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
mov w1, w2
; byrRegs -[x1]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M24620_IG07: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M24620_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -178,14 +168,14 @@ G_M24620_IG07: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz x0, G_M24620_IG08
+ cbnz x0, G_M24620_IG07
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG09
+ b G_M24620_IG08
;; size=96 bbWeight=0.50 PerfScore 11.00
-G_M24620_IG08: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG07: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x1, x0, #12
@@ -198,7 +188,7 @@ G_M24620_IG08: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
mov w1, w2
; byrRegs -[x1]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M24620_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M24620_IG08: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -224,14 +214,14 @@ G_M24620_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz x0, G_M24620_IG10
+ cbnz x0, G_M24620_IG09
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG11
+ b G_M24620_IG10
;; size=96 bbWeight=0.50 PerfScore 11.00
-G_M24620_IG10: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG09: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x1, x0, #12
@@ -244,7 +234,7 @@ G_M24620_IG10: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
mov w1, w2
; byrRegs -[x1]
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M24620_IG11: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M24620_IG10: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -270,14 +260,14 @@ G_M24620_IG11: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- cbnz x0, G_M24620_IG12
+ cbnz x0, G_M24620_IG11
mov x0, xzr
...
-44 (-2.60%) : 2499.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -113,7 +113,7 @@ G_M48248_IG02: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=000
add x20, x0, #24
; byrRegs +[x20]
ldapr w1, [x20]
- tbnz w1, #30, G_M48248_IG41
+ tbnz w1, #30, G_M48248_IG40
ldr x1, [fp, #0x50] // [V63 tmp50]
; gcrRegs +[x1]
cbz x1, G_M48248_IG03
@@ -123,15 +123,15 @@ G_M48248_IG02: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=000
; byrRegs +[x1]
ldapr w1, [x1]
; byrRegs -[x1]
- cbnz w1, G_M48248_IG44
+ cbnz w1, G_M48248_IG43
;; size=36 bbWeight=1 PerfScore 14.00
G_M48248_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
cmn w19, #1
- blt G_M48248_IG42
+ blt G_M48248_IG41
ldapr w1, [x20]
tst w1, #0xD1FFAB1E
- bne G_M48248_IG14
+ bne G_M48248_IG13
cbnz w19, G_M48248_IG05
mov w0, wzr
;; size=28 bbWeight=1 PerfScore 7.50
@@ -174,7 +174,7 @@ G_M48248_IG07: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; gcr arg pop 0
ldapr w0, [x20]
tst w0, #0xD1FFAB1E
- bne G_M48248_IG14
+ bne G_M48248_IG13
ldr w0, [fp, #0x48] // [V64 tmp51]
cmp w0, #100
blt G_M48248_IG09
@@ -200,7 +200,7 @@ G_M48248_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; byrRegs +[x0]
ldapr w0, [x0]
; byrRegs -[x0]
- cbnz w0, G_M48248_IG44
+ cbnz w0, G_M48248_IG43
;; size=68 bbWeight=4 PerfScore 86.00
G_M48248_IG09: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
ldr w0, [fp, #0x48] // [V64 tmp51]
@@ -219,7 +219,7 @@ G_M48248_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
mov x1, x0
@@ -227,7 +227,7 @@ G_M48248_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
mov x0, x24
; gcrRegs -[x0]
; byrRegs +[x0]
- cbz x0, G_M48248_IG43
+ cbz x0, G_M48248_IG42
mov x2, xzr
bl <unknown method>
; gcrRegs -[x1] +[x0]
@@ -236,40 +236,33 @@ G_M48248_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
;; size=52 bbWeight=1 PerfScore 12.50
G_M48248_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x24}, byref, isz
; gcrRegs -[x0]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M48248_IG45
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M48248_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x24}, byref, isz
movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
; gcrRegs +[x1]
- cbz x1, G_M48248_IG46
+ cbz x1, G_M48248_IG44
ldr x2, [fp, #0x50] // [V63 tmp50]
; gcrRegs +[x2]
- cbnz x2, G_M48248_IG16
+ cbnz x2, G_M48248_IG15
mov x25, xzr
; gcrRegs +[x25]
mov x26, xzr
;; size=36 bbWeight=1 PerfScore 9.50
-G_M48248_IG13: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref
+G_M48248_IG12: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref
; gcrRegs -[x1-x2]
str x25, [fp, #0x18] // [V65 tmp52]
; GC ptr vars +{V65}
str x26, [fp, #0x30] // [V66 tmp53]
- b G_M48248_IG17
+ b G_M48248_IG16
;; size=12 bbWeight=1 PerfScore 3.00
-G_M48248_IG14: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48248_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x25]
; byrRegs -[x20 x24]
; GC ptr vars -{V00 V65}
mov w0, #1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M48248_IG15: ; bbWeight=1, epilog, nogc, extend
+G_M48248_IG14: ; bbWeight=1, epilog, nogc, extend
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
@@ -277,7 +270,7 @@ G_M48248_IG15: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0xA0
ret lr
;; size=24 bbWeight=1 PerfScore 6.00
-G_M48248_IG16: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=0006 {x1 x2}, byrefRegs=1100000 {x20 x24}, gcvars, byref
+G_M48248_IG15: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=0006 {x1 x2}, byrefRegs=1100000 {x20 x24}, gcvars, byref
; gcrRegs +[x1-x2]
; byrRegs +[x20 x24]
; GC ptr vars +{V00}
@@ -296,9 +289,9 @@ G_M48248_IG16: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=000
mov x25, x0
; gcrRegs +[x25]
mov x26, x1
- b G_M48248_IG13
+ b G_M48248_IG12
;; size=48 bbWeight=1 PerfScore 11.00
-G_M48248_IG17: ; bbWeight=1, gcVars=0000000000000104 {V00 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref
+G_M48248_IG16: ; bbWeight=1, gcVars=0000000000000104 {V00 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref
; gcrRegs -[x0]
; GC ptr vars +{V65}
ldapr x1, [x24]
@@ -307,10 +300,10 @@ G_M48248_IG17: ; bbWeight=1, gcVars=0000000000000104 {V00 V65}, gcrefRegs
; GC ptr vars +{V09}
str wzr, [fp, #0x40] // [V10 loc7]
;; size=12 bbWeight=1 PerfScore 5.00
-G_M48248_IG18: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
+G_M48248_IG17: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
; gcrRegs -[x1]
ldrb w2, [fp, #0x40] // [V10 loc7]
- cbnz w2, G_M48248_IG22
+ cbnz w2, G_M48248_IG21
add x1, fp, #64 // [V10 loc7]
ldr x0, [fp, #0x20] // [V09 loc6]
; gcrRegs +[x0]
@@ -318,7 +311,7 @@ G_M48248_IG18: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcref
; gcrRegs -[x0]
; gcr arg pop 0
ldrb w0, [fp, #0x40] // [V10 loc7]
- cbnz w0, G_M48248_IG19
+ cbnz w0, G_M48248_IG18
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -332,17 +325,17 @@ G_M48248_IG18: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcref
; gcrRegs -[x0]
; gcr arg pop 0
;; size=64 bbWeight=1 PerfScore 17.00
-G_M48248_IG19: ; bbWeight=8, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
+G_M48248_IG18: ; bbWeight=8, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
ldapr w0, [x20]
tst w0, #0xD1FFAB1E
- beq G_M48248_IG23
+ beq G_M48248_IG22
;; size=12 bbWeight=8 PerfScore 36.00
-G_M48248_IG20: ; bbWeight=1, gcVars=0000000001000100 {V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, gcvars, byref
+G_M48248_IG19: ; bbWeight=1, gcVars=0000000001000100 {V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, gcvars, byref
; byrRegs -[x20 x24]
; GC ptr vars -{V00}
- b G_M48248_IG33
+ b G_M48248_IG32
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48248_IG21: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
+G_M48248_IG20: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
add x0, fp, #80 // [V02 arg2]
movz x1, #0xD1FFAB1E // code for System.Threading.CancellationToken:ThrowOperationCanceledException():this
movk x1, #0xD1FFAB1E LSL #16
@@ -352,7 +345,7 @@ G_M48248_IG21: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {},
; gcr arg pop 0
brk_unix #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M48248_IG22: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
+G_M48248_IG21: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -361,22 +354,22 @@ G_M48248_IG22: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {},
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M48248_IG23: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
+G_M48248_IG22: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
; byrRegs +[x20 x24]
; GC ptr vars +{V00}
ldr x0, [fp, #0x50] // [V63 tmp50]
; gcrRegs +[x0]
- cbz x0, G_M48248_IG24
+ cbz x0, G_M48248_IG23
ldr x0, [fp, #0x50] // [V63 tmp50]
add x0, x0, #32
; gcrRegs -[x0]
; byrRegs +[x0]
ldapr w0, [x0]
; byrRegs -[x0]
- cbnz w0, G_M48248_IG21
+ cbnz w0, G_M48248_IG20
;; size=24 bbWeight=4 PerfScore 38.00
-G_M48248_IG24: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
- cbz w22, G_M48248_IG25
+G_M48248_IG23: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
+ cbz w22, G_M48248_IG24
mov w0, w21
mov w1, w19
movz x2, #0xD1FFAB1E // code for System.Threading.TimeoutHelper:UpdateTimeOut(uint,int):int
@@ -387,9 +380,9 @@ G_M48248_IG24: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {
; gcr arg pop 0
sxtw w23, w0
cmp w23, #0
- ble G_M48248_IG30
+ ble G_M48248_IG29
;; size=44 bbWeight=4 PerfScore 38.00
-G_M48248_IG25: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
+G_M48248_IG24: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
ldapr w1, [x20]
and w1, w1, #0xD1FFAB1E
add w1, w1, #1
@@ -404,9 +397,9 @@ G_M48248_IG25: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {
; gcr arg pop 0
ldapr w1, [x20]
tst w1, #0xD1FFAB1E
- beq G_M48248_IG27
+ beq G_M48248_IG26
;; size=48 bbWeight=4 PerfScore 64.00
-G_M48248_IG26: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=100000 {x20}, byref
+G_M48248_IG25: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=100000 {x20}, byref
; byrRegs -[x24]
ldapr w1, [x20]
and w1, w1, #0xD1FFAB1E
@@ -424,9 +417,9 @@ G_M48248_IG26: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=100000 {x
; gcr arg pop 0
mov w0, #1
str w0, [fp, #0x3C] // [V11 loc8]
- b G_M48248_IG34
+ b G_M48248_IG33
;; size=48 bbWeight=1 PerfScore 14.00
-G_M48248_IG27: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
+G_M48248_IG26: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
; byrRegs +[x20 x24]
; GC ptr vars +{V00}
ldapr x0, [x24]
...
-40 (-1.93%) : 1965.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:PublicKeyMatches(System.String,ubyte[],ubyte[],byref):ubyte (FullOpts)
@@ -25,7 +25,7 @@
;* V14 tmp7 [V14 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp8 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V16 tmp9 [V16,T43] ( 3, 1.50) int -> x1
-; V17 tmp10 [V17,T17] ( 6, 3.50) byref -> x24 "Inline stloc first use temp"
+; V17 tmp10 [V17,T16] ( 6, 3.50) byref -> x24 "Inline stloc first use temp"
; V18 tmp11 [V18,T08] ( 7, 5 ) int -> x25 "Inline stloc first use temp"
; V19 tmp12 [V19,T05] ( 4, 6 ) byref -> x23 single-def "Inlining Arg"
; V20 tmp13 [V20,T06] ( 9, 5.50) ref -> x26 class-hnd single-def "Inline stloc first use temp" <System.Object>
@@ -86,9 +86,9 @@
;* V75 tmp68 [V75 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V76 tmp69 [V76,T26] ( 2, 2 ) int -> x1 "spilling unroll qmark"
;* V77 tmp70 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V78 tmp71 [V78,T13] ( 4, 4 ) byref -> x1 single-def "Inlining Arg"
-; V79 tmp72 [V79,T18] ( 6, 3 ) byref -> x21 "Inline stloc first use temp"
-; V80 tmp73 [V80,T15] ( 7, 3.50) int -> x24 "Inline stloc first use temp"
+; V78 tmp71 [V78,T12] ( 4, 4 ) byref -> x1 single-def "Inlining Arg"
+; V79 tmp72 [V79,T17] ( 6, 3 ) byref -> x21 "Inline stloc first use temp"
+; V80 tmp73 [V80,T14] ( 7, 3.50) int -> x24 "Inline stloc first use temp"
;* V81 tmp74 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V82 tmp75 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V83 tmp76 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -114,9 +114,9 @@
;* V103 tmp96 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V104 tmp97 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V105 tmp98 [V105 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V106 tmp99 [V106,T14] ( 4, 4 ) byref -> x1 single-def "Inlining Arg"
-; V107 tmp100 [V107,T19] ( 6, 3 ) byref -> x21 "Inline stloc first use temp"
-; V108 tmp101 [V108,T16] ( 7, 3.50) int -> x24 "Inline stloc first use temp"
+; V106 tmp99 [V106,T13] ( 4, 4 ) byref -> x1 single-def "Inlining Arg"
+; V107 tmp100 [V107,T18] ( 6, 3 ) byref -> x21 "Inline stloc first use temp"
+; V108 tmp101 [V108,T15] ( 7, 3.50) int -> x24 "Inline stloc first use temp"
;* V109 tmp102 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V110 tmp103 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V111 tmp104 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -229,7 +229,7 @@
;* V218 tmp211 [V218 ] ( 0, 0 ) byref -> zero-ref "field V131._reference (fldOffset=0x0)" P-INDEP
;* V219 tmp212 [V219 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
; V220 tmp213 [V220 ] ( 2, 2 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
-; V221 cse0 [V221,T12] ( 9, 4.50) ref -> x1 multi-def "CSE - aggressive"
+; V221 cse0 [V221,T19] ( 6, 3 ) ref -> x1 multi-def "CSE - aggressive"
; V222 cse1 [V222,T21] ( 6, 3 ) int -> x19 multi-def "CSE - moderate"
; V223 cse2 [V223,T07] ( 11, 5 ) int -> x23 multi-def "CSE - aggressive"
; V224 cse3 [V224,T22] ( 5, 2.50) ref -> x22 "CSE - moderate"
@@ -267,7 +267,7 @@ G_M40399_IG02: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=20
mov w25, wzr
ldr x26, [x23]
; gcrRegs +[x26]
- cbz x26, G_M40399_IG08
+ cbz x26, G_M40399_IG07
;; size=20 bbWeight=1 PerfScore 5.50
G_M40399_IG03: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byrefRegs=A00000 {x21 x23}, byref, isz
; byrRegs -[x24]
@@ -280,7 +280,7 @@ G_M40399_IG03: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byre
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
cbnz x0, G_M40399_IG04
movz x1, #0xD1FFAB1E
@@ -298,32 +298,18 @@ G_M40399_IG04: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byre
add x24, x26, #16
; byrRegs +[x24]
ldr w25, [x26, #0x08]
- b G_M40399_IG07
+ b G_M40399_IG06
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M40399_IG05: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byrefRegs=A00000 {x21 x23}, byref, isz
+G_M40399_IG05: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byrefRegs=A00000 {x21 x23}, byref
; byrRegs -[x24]
mov x1, x26
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M40399_IG06
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0]
- ;; size=60 bbWeight=0.50 PerfScore 5.75
-G_M40399_IG06: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byrefRegs=A00000 {x21 x23}, byref
mov x0, x26
- ; gcrRegs +[x0]
ldr x1, [x26]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x28]
@@ -333,8 +319,8 @@ G_M40399_IG06: ; bbWeight=0.50, gcrefRegs=4580000 {x19 x20 x22 x26}, byre
mov x24, x0
; byrRegs +[x24]
mov w25, w1
- ;; size=28 bbWeight=0.50 PerfScore 5.75
-G_M40399_IG07: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1A00000 {x21 x23 x24}, byref, isz
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
+G_M40399_IG06: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1A00000 {x21 x23 x24}, byref, isz
; byrRegs -[x0]
ldp w0, w1, [x23, #0x08]
and w0, w0, #0xD1FFAB1E
@@ -342,15 +328,15 @@ G_M40399_IG07: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
add x2, x0, w1, UXTW
mov w3, w25
cmp x2, x3
- bhi G_M40399_IG53
+ bhi G_M40399_IG52
add x24, x24, x0
sxtw w25, w1
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M40399_IG08: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref, isz
+G_M40399_IG07: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref, isz
; byrRegs -[x23]
- tbz w25, #31, G_M40399_IG10
+ tbz w25, #31, G_M40399_IG09
;; size=4 bbWeight=1 PerfScore 1.00
-G_M40399_IG09: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref
+G_M40399_IG08: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -363,29 +349,29 @@ G_M40399_IG09: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
blr x2
; gcrRegs -[x0]
;; size=36 bbWeight=0.50 PerfScore 3.75
-G_M40399_IG10: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref, isz
- cbnz x22, G_M40399_IG12
+G_M40399_IG09: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref, isz
+ cbnz x22, G_M40399_IG11
;; size=4 bbWeight=1 PerfScore 1.00
-G_M40399_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=1200000 {x21 x24}, byref
+G_M40399_IG10: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=1200000 {x21 x24}, byref
; gcrRegs -[x22]
mov x1, xzr
; byrRegs +[x1]
mov w2, wzr
- b G_M40399_IG13
+ b G_M40399_IG12
;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M40399_IG12: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref
+G_M40399_IG11: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=1200000 {x21 x24}, byref
; gcrRegs +[x22]
; byrRegs -[x1]
add x1, x22, #16
; byrRegs +[x1]
ldr w2, [x22, #0x08]
;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M40399_IG13: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=1200002 {x1 x21 x24}, byref, isz
+G_M40399_IG12: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=1200002 {x1 x21 x24}, byref, isz
; gcrRegs -[x22]
cmp w25, w2
- bne G_M40399_IG39
+ bne G_M40399_IG38
;; size=8 bbWeight=1 PerfScore 1.50
-G_M40399_IG14: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=1200002 {x1 x21 x24}, byref, isz
+G_M40399_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=1200002 {x1 x21 x24}, byref, isz
mov w2, w2
mov x0, x24
; byrRegs +[x0]
@@ -395,16 +381,16 @@ G_M40399_IG14: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=120
ldr x3, [x3]
blr x3
; byrRegs -[x0-x1 x24]
- cbz w0, G_M40399_IG39
+ cbz w0, G_M40399_IG38
movz x22, #0xD1FFAB1E
movk x22, #0xD1FFAB1E LSL #16
movk x22, #0xD1FFAB1E LSL #32
cmp x19, x22
- beq G_M40399_IG20
- cbz x19, G_M40399_IG15
+ beq G_M40399_IG19
+ cbz x19, G_M40399_IG14
ldr w23, [x19, #0x08]
cmp w23, #20
- bne G_M40399_IG15
+ bne G_M40399_IG14
add x0, x19, #12
; byrRegs +[x0]
lsl w2, w23, #1
@@ -418,18 +404,18 @@ G_M40399_IG14: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=120
blr x3
; gcrRegs +[x22]
; byrRegs -[x0-x1]
- cbnz w0, G_M40399_IG20
+ cbnz w0, G_M40399_IG19
;; size=108 bbWeight=0.50 PerfScore 12.50
-G_M40399_IG15: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=200000 {x21}, byref, isz
+G_M40399_IG14: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=200000 {x21}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x19, x0
- beq G_M40399_IG20
- cbz x19, G_M40399_IG16
+ beq G_M40399_IG19
+ cbz x19, G_M40399_IG15
ldr w23, [x19, #0x08]
cmp w23, #21
- bne G_M40399_IG16
+ bne G_M40399_IG15
add x0, x19, #12
; byrRegs +[x0]
lsl w2, w23, #1
@@ -443,19 +429,19 @@ G_M40399_IG15: ; bbWeight=0.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
ldr x3, [x3]
blr x3
; byrRegs -[x0]
- cbnz w0, G_M40399_IG20
+ cbnz w0, G_M40399_IG19
;; size=84 bbWeight=0.50 PerfScore 9.25
-G_M40399_IG16: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=200000 {x21}, byref, isz
+G_M40399_IG15: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=200000 {x21}, byref, isz
; gcrRegs -[x22]
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
cmp x19, x24
- beq G_M40399_IG26
- cbz x19, G_M40399_IG17
+ beq G_M40399_IG25
+ cbz x19, G_M40399_IG16
ldr w23, [x19, #0x08]
cmp w23, #17
- bne G_M40399_IG17
+ bne G_M40399_IG16
mov w0, #1
movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
movk x1, #0xD1FFAB1E LSL #16
@@ -481,17 +467,17 @@ G_M40399_IG16: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=200
ldr x3, [x3]
blr x3
; byrRegs -[x0-x1]
- cbnz w0, G_M40399_IG26
+ cbnz w0, G_M40399_IG25
;; size=124 bbWeight=0.50 PerfScore 14.75
-G_M40399_IG17: ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=200000 {x21}, byref, isz
- cbz x19, G_M40399_IG38
+G_M40399_IG16: ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=200000 {x21}, byref, isz
+ cbz x19, G_M40399_IG37
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M40399_IG18: ; bbWeight=0.25, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=200000 {x21}, byref, isz
...
benchmarks.run_pgo.linux.arm64.checked.mch
-20 (-38.46%) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
@@ -14,23 +14,18 @@ G_M26209_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26209_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M26209_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 69.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M9075_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M9075_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M9075_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 649.dasm - System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
@@ -14,23 +14,18 @@ G_M31785_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M31785_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M31785_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=b73d83d6) for method System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=b73d83d6) for method System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.70%) : 11717.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (Tier0)
@@ -19,8 +19,7 @@ G_M22193_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #43
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
ldr x0, [fp, #0x18] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -54,13 +53,13 @@ G_M22193_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x0]
- ;; size=128 bbWeight=1 PerfScore 36.00
+ ;; size=124 bbWeight=1 PerfScore 35.50
G_M22193_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 148, prolog size 8, PerfScore 40.50, instruction count 37, allocated bytes for code 148 (MethodHash=7b84a94e) for method Newtonsoft.Json.JsonWriter:.ctor():this (Tier0)
+; Total bytes of code 144, prolog size 8, PerfScore 40.00, instruction count 36, allocated bytes for code 144 (MethodHash=7b84a94e) for method Newtonsoft.Json.JsonWriter:.ctor():this (Tier0)
; ============================================================
Unwind Info:
@@ -71,7 +70,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 148 (0x000094)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-2.27%) : 11595.dasm - System.IO.Compression.DeflateStream:ReadCore(System.Span`1[ubyte]):int:this (Tier1)
@@ -273,11 +273,6 @@ G_M15958_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=24 bbWeight=0 PerfScore 0.00
G_M15958_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #37
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -301,7 +296,7 @@ G_M15958_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x0
; gcrRegs -[x19]
brk_unix #0
- ;; size=92 bbWeight=0 PerfScore 0.00
+ ;; size=72 bbWeight=0 PerfScore 0.00
G_M15958_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.IO.Compression.DeflateStream:ThrowGenericInvalidData()
movk x0, #0xD1FFAB1E LSL #16
@@ -408,7 +403,7 @@ G_M15958_IG28: ; bbWeight=0, gcrefRegs=1880000 {x19 x23 x24}, byrefRegs=2
b G_M15958_IG14
;; size=36 bbWeight=0 PerfScore 0.00
-; Total bytes of code 880, prolog size 36, PerfScore 55.62, instruction count 220, allocated bytes for code 880 (MethodHash=2e44c1a9) for method System.IO.Compression.DeflateStream:ReadCore(System.Span`1[ubyte]):int:this (Tier1)
+; Total bytes of code 860, prolog size 36, PerfScore 55.62, instruction count 215, allocated bytes for code 860 (MethodHash=2e44c1a9) for method System.IO.Compression.DeflateStream:ReadCore(System.Span`1[ubyte]):int:this (Tier1)
; ============================================================
Unwind Info:
@@ -419,7 +414,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 220 (0x000dc) Actual length = 880 (0x000370)
+ Function Length : 215 (0x000d7) Actual length = 860 (0x00035c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-0.46%) : 14015.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
@@ -546,15 +546,14 @@ G_M12113_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
b G_M12113_IG13
- ;; size=232 bbWeight=1 PerfScore 74.50
+ ;; size=228 bbWeight=1 PerfScore 74.00
G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xD0] // [V06 tmp1]
; gcrRegs +[x0]
@@ -563,14 +562,13 @@ G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
- ;; size=48 bbWeight=1 PerfScore 11.50
+ ;; size=44 bbWeight=1 PerfScore 11.00
G_M12113_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xC8] // [V07 tmp2]
; gcrRegs +[x0]
@@ -590,7 +588,7 @@ G_M12113_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 1756, prolog size 36, PerfScore 629.00, instruction count 439, allocated bytes for code 1756 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
+; Total bytes of code 1748, prolog size 36, PerfScore 628.00, instruction count 437, allocated bytes for code 1748 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
; ============================================================
Unwind Info:
@@ -601,7 +599,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 439 (0x001b7) Actual length = 1756 (0x0006dc)
+ Function Length : 437 (0x001b5) Actual length = 1748 (0x0006d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.linux.arm64.checked.mch
-44 (-57.89%) : 438.dasm - System.Globalization.GlobalizationMode:get_Invariant():ubyte (Tier1)
@@ -9,53 +9,37 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V02 rat0 [V02,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 cse0 [V01,T00] ( 2, 2 ) long -> x0 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M9787_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M9787_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M9787_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M9787_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0xD1FFAB1E]
- ;; size=4 bbWeight=1 PerfScore 3.00
-G_M9787_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M9787_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldrb w0, [x0, #0xD1FFAB1E]
+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M9787_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M9787_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M9787_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 17.00, instruction count 19, allocated bytes for code 76 (MethodHash=70bdd9c4) for method System.Globalization.GlobalizationMode:get_Invariant():ubyte (Tier1)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=70bdd9c4) for method System.Globalization.GlobalizationMode:get_Invariant():ubyte (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -63,10 +47,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-44 (-57.89%) : 439.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier1)
@@ -8,53 +8,37 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V02 rat0 [V02,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 cse0 [V01,T00] ( 2, 2 ) long -> x0 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M4853_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M4853_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M4853_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M4853_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0xD1FFAB1E]
- ;; size=4 bbWeight=1 PerfScore 3.00
-G_M4853_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M4853_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldrb w0, [x0, #0xD1FFAB1E]
+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M4853_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M4853_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M4853_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 17.00, instruction count 19, allocated bytes for code 76 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier1)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -62,10 +46,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-20 (-38.46%) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
@@ -14,23 +14,18 @@ G_M26209_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26209_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M26209_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.60%) : 11906.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
@@ -32,8 +32,7 @@ G_M1602_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #70
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -107,7 +106,7 @@ G_M1602_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x3]
cbz w0, G_M1602_IG06
mov w0, #1
- ;; size=280 bbWeight=1 PerfScore 73.50
+ ;; size=276 bbWeight=1 PerfScore 73.00
G_M1602_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x50
ret lr
@@ -224,7 +223,7 @@ G_M1602_IG09: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 668, prolog size 16, PerfScore 181.50, instruction count 167, allocated bytes for code 668 (MethodHash=7785f9bd) for method Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
+; Total bytes of code 664, prolog size 16, PerfScore 181.00, instruction count 166, allocated bytes for code 664 (MethodHash=7785f9bd) for method Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -235,7 +234,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 167 (0x000a7) Actual length = 668 (0x00029c)
+ Function Length : 166 (0x000a6) Actual length = 664 (0x000298)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-0.46%) : 14191.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
@@ -546,15 +546,14 @@ G_M12113_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
b G_M12113_IG13
- ;; size=232 bbWeight=1 PerfScore 74.50
+ ;; size=228 bbWeight=1 PerfScore 74.00
G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xD0] // [V06 tmp1]
; gcrRegs +[x0]
@@ -563,14 +562,13 @@ G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
- ;; size=48 bbWeight=1 PerfScore 11.50
+ ;; size=44 bbWeight=1 PerfScore 11.00
G_M12113_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xC8] // [V07 tmp2]
; gcrRegs +[x0]
@@ -590,7 +588,7 @@ G_M12113_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 1756, prolog size 36, PerfScore 629.00, instruction count 439, allocated bytes for code 1756 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
+; Total bytes of code 1748, prolog size 36, PerfScore 628.00, instruction count 437, allocated bytes for code 1748 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
; ============================================================
Unwind Info:
@@ -601,7 +599,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 439 (0x001b7) Actual length = 1756 (0x0006dc)
+ Function Length : 437 (0x001b5) Actual length = 1748 (0x0006d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 12249.dasm - System.Threading.ThreadPoolWorkQueue:DispatchWorkItem(System.Object,System.Threading.Thread) (Tier1)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <System.Object>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <System.Object>
; V01 arg1 [V01,T01] ( 3, 2.50) ref -> x20 class-hnd single-def <System.Threading.Thread>
-; V02 loc0 [V02,T02] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T02] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -33,10 +33,10 @@ G_M60059_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M60059_IG05
+ cbz x19, G_M60059_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M60059_IG03: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -52,15 +52,14 @@ G_M60059_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0-x1 x20] +[x19]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0-x1 x20]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFINTERFACE
- ; gcrRegs -[x1] +[x0]
+ bl CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs +[x0]
; gcr arg pop 0
cbnz x0, G_M60059_IG06
movz x1, #0xD1FFAB1E
@@ -75,9 +74,8 @@ G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
; gcrRegs -[x0]
; gcr arg pop 0
;; size=60 bbWeight=0.50 PerfScore 5.75
-G_M60059_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov x0, x19
- ; gcrRegs +[x0]
+G_M60059_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov x0, xzr
movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
coreclr_tests.run.linux.arm64.checked.mch
-44 (-68.75%) : 341.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
@@ -18,30 +18,15 @@ G_M17591_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M17591_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M17591_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M17591_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M17591_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M17591_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #15
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M17591_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 8, PerfScore 9.50, instruction count 16, allocated bytes for code 64 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -52,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-52.38%) : 722.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
@@ -8,56 +8,39 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V02 cse1 [V02,T00] ( 4, 4 ) long -> x19 "CSE - aggressive"
-; V03 rat0 [V03,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 cse0 [V01,T00] ( 3, 3 ) long -> x0 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M63990_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M63990_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M63990_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M63990_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0x44]
- add w0, w0, #1
- str w0, [x19, #0x44]
- ;; size=12 bbWeight=1 PerfScore 4.50
-G_M63990_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M63990_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr w1, [x0, #0x44]
+ add w1, w1, #1
+ str w1, [x0, #0x44]
+ ;; size=24 bbWeight=1 PerfScore 6.00
+G_M63990_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M63990_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #14
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M63990_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 84, prolog size 12, PerfScore 18.50, instruction count 21, allocated bytes for code 84 (MethodHash=4db60609) for method DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 9.50, instruction count 10, allocated bytes for code 40 (MethodHash=4db60609) for method DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +48,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-44 (-42.31%) : 8.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
@@ -13,54 +13,37 @@
;
; Lcl frame size = 0
-G_M16369_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M16369_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16369_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M16369_IG07
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M16369_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr x0, [x0]
; gcrRegs +[x0]
- cbnz x0, G_M16369_IG06
+ cbnz x0, G_M16369_IG05
;; size=20 bbWeight=1 PerfScore 5.50
-G_M16369_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M16369_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
;; size=16 bbWeight=0.50 PerfScore 2.25
-G_M16369_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M16369_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
br x0
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M16369_IG06: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M16369_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs +[x0]
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M16369_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #13
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- b G_M16369_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 8, PerfScore 16.75, instruction count 26, allocated bytes for code 104 (MethodHash=9e38c00e) for method System.Console:get_Out():System.IO.TextWriter (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 11.25, instruction count 15, allocated bytes for code 60 (MethodHash=9e38c00e) for method System.Console:get_Out():System.IO.TextWriter (FullOpts)
; ============================================================
Unwind Info:
@@ -71,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-40 (-11.49%) : 25.dasm - System.ConsolePal:WriteFromConsoleStream(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlySpan`1[ubyte]) (FullOpts)
@@ -10,26 +10,24 @@
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> x19 class-hnd single-def <Microsoft.Win32.SafeHandles.SafeFileHandle>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-; V02 loc0 [V02,T06] ( 4, 1.50) ref -> [fp+0x18] class-hnd EH-live spill-single-def <System.IO.TextWriter>
-; V03 loc1 [V03 ] ( 6, 5 ) ubyte -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op
+; V02 loc0 [V02,T04] ( 4, 1.50) ref -> [fp+0x10] class-hnd EH-live spill-single-def <System.IO.TextWriter>
+; V03 loc1 [V03 ] ( 6, 5 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T02] ( 2, 4 ) ubyte -> x0 "Inlining Arg"
; V06 tmp2 [V06,T01] ( 2, 2 ) byref -> x20 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V07 tmp3 [V07,T03] ( 2, 2 ) int -> x21 single-def "field V01._length (fldOffset=0x8)" P-INDEP
-; V08 PSPSym [V08,T08] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
-; V09 cse0 [V09,T04] ( 3, 3 ) long -> x22 "CSE - aggressive"
-; V10 cse1 [V10,T07] ( 3, 1.50) ref -> x1 "CSE - moderate"
-; V11 rat0 [V11,T05] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V08 PSPSym [V08,T06] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
+; V09 cse0 [V09,T05] ( 3, 1.50) ref -> x1 "CSE - moderate"
;
-; Lcl frame size = 32
+; Lcl frame size = 24
G_M3451_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x30]
- stp x21, x22, [sp, #0x40]
+ stp fp, lr, [sp, #-0x40]!
+ stp x19, x20, [sp, #0x28]
+ str x21, [sp, #0x38]
mov fp, sp
- add x3, sp, #80
- str x3, [fp, #0x28] // [V08 PSPSym]
+ add x3, sp, #64
+ str x3, [fp, #0x20] // [V08 PSPSym]
mov x19, x0
; gcrRegs +[x19]
mov x20, x1
@@ -37,22 +35,13 @@ G_M3451_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov w21, w2
;; size=36 bbWeight=1 PerfScore 6.50
G_M3451_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- mov x0, x22
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M3451_IG14
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M3451_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
- add x0, x22, #134
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
ldaprb w0, [x0]
- cbnz w0, G_M3451_IG05
- ;; size=12 bbWeight=1 PerfScore 4.50
-G_M3451_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+ cbnz w0, G_M3451_IG04
+ ;; size=20 bbWeight=1 PerfScore 5.50
+G_M3451_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -60,7 +49,7 @@ G_M3451_IG04: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {x
blr x0
; gcr arg pop 0
;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M3451_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M3451_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
movz x0, #0xD1FFAB1E // code for System.Console:get_Out():System.IO.TextWriter
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -68,15 +57,15 @@ G_M3451_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}
blr x0
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V02 loc0]
+ str x0, [fp, #0x10] // [V02 loc0]
; GC ptr vars +{V02}
- str wzr, [fp, #0x20] // [V03 loc1]
+ str wzr, [fp, #0x18] // [V03 loc1]
;; size=28 bbWeight=1 PerfScore 7.50
-G_M3451_IG06: ; bbWeight=1, gcVars=0000000000000040 {V02}, gcrefRegs=80001 {x0 x19}, byrefRegs=100000 {x20}, gcvars, byref, isz
- ldrb w1, [fp, #0x20] // [V03 loc1]
- cbz w1, G_M3451_IG08
+G_M3451_IG05: ; bbWeight=1, gcVars=0000000000000010 {V02}, gcrefRegs=80001 {x0 x19}, byrefRegs=100000 {x20}, gcvars, byref, isz
+ ldrb w1, [fp, #0x18] // [V03 loc1]
+ cbz w1, G_M3451_IG07
;; size=8 bbWeight=1 PerfScore 3.00
-G_M3451_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3451_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
; byrRegs -[x20]
movz x1, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
@@ -87,17 +76,17 @@ G_M3451_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M3451_IG08: ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=100000 {x20}, byref, isz
+G_M3451_IG07: ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs +[x0 x19]
; byrRegs +[x20]
- add x1, fp, #32 // [V03 loc1]
+ add x1, fp, #24 // [V03 loc1]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldrb w0, [fp, #0x20] // [V03 loc1]
- cbnz w0, G_M3451_IG10
+ ldrb w0, [fp, #0x18] // [V03 loc1]
+ cbnz w0, G_M3451_IG09
;; size=16 bbWeight=1 PerfScore 4.50
-G_M3451_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M3451_IG08: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -111,7 +100,7 @@ G_M3451_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {x
; gcrRegs -[x0]
; gcr arg pop 0
;; size=36 bbWeight=0.50 PerfScore 3.75
-G_M3451_IG10: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M3451_IG09: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
mov x1, x20
; byrRegs +[x1]
mov w2, w21
@@ -127,60 +116,50 @@ G_M3451_IG10: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}
; byrRegs -[x1 x20]
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 7.50
-G_M3451_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [fp, #0x20] // [V03 loc1]
- cbz w0, G_M3451_IG13
+G_M3451_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ldrb w0, [fp, #0x18] // [V03 loc1]
+ cbz w0, G_M3451_IG12
;; size=8 bbWeight=1 PerfScore 3.00
-G_M3451_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x18] // [V02 loc0]
+G_M3451_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ldr x0, [fp, #0x10] // [V02 loc0]
; gcrRegs +[x0]
; GC ptr vars -{V02}
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M3451_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
+G_M3451_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldr x21, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
-G_M3451_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, gcvars, byref
- ; gcrRegs +[x19]
- ; byrRegs +[x20]
- mov w1, #22
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- b G_M3451_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M3451_IG15: ; bbWeight=0, gcVars=0000000000000040 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
- ; gcrRegs -[x19]
- ; byrRegs -[x20]
- ; GC ptr vars +{V02 V06}
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
- add x3, fp, #80
- str x3, [sp, #0x18]
+ ;; size=16 bbWeight=1 PerfScore 5.00
+G_M3451_IG13: ; bbWeight=0, gcVars=0000000000000010 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+ ; GC ptr vars +{V02}
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
+ add x3, fp, #64
+ str x3, [sp, #0x10]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M3451_IG16: ; bbWeight=0, gcVars=0000000000000040 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldrb w0, [fp, #0x20] // [V03 loc1]
- cbz w0, G_M3451_IG17
- ldr x0, [fp, #0x18] // [V02 loc0]
+G_M3451_IG14: ; bbWeight=0, gcVars=0000000000000010 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldrb w0, [fp, #0x18] // [V03 loc1]
+ cbz w0, G_M3451_IG15
+ ldr x0, [fp, #0x10] // [V02 loc0]
; gcrRegs +[x0]
- ; GC ptr vars -{V02 V06}
+ ; GC ptr vars -{V02}
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
;; size=16 bbWeight=0 PerfScore 0.00
-G_M3451_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x40
+G_M3451_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 348, prolog size 36, PerfScore 56.00, instruction count 87, allocated bytes for code 348 (MethodHash=3cc3f284) for method System.ConsolePal:WriteFromConsoleStream(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlySpan`1[ubyte]) (FullOpts)
+; Total bytes of code 308, prolog size 36, PerfScore 50.50, instruction count 77, allocated bytes for code 308 (MethodHash=3cc3f284) for method System.ConsolePal:WriteFromConsoleStream(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlySpan`1[ubyte]) (FullOpts)
; ============================================================
Unwind Info:
@@ -191,7 +170,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 74 (0x0004a) Actual length = 296 (0x000128)
+ Function Length : 64 (0x00040) Actual length = 256 (0x000100)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -199,10 +178,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- E6 save_next
- C8 06 save_regp X#0 Z#6 (0x06); stp x19, x20, [sp, #48]
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
- E4 end
+ D0 87 save_reg X#2 Z#7 (0x07); str x21, [sp, #56]
+ C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40]
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
@@ -218,14 +196,13 @@ Unwind Info:
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- E6 save_next
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
- E4 end
+ 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]
...
-36 (-7.76%) : 737.dasm - Program:TestEntryPoint():int (FullOpts)
@@ -12,43 +12,41 @@
;* V01 loc1 [V01 ] ( 0, 0 ) int -> zero-ref single-def
;* V02 loc2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Program>
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodInfo>
-;* V04 loc4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
-; V05 loc5 [V05 ] ( 4, 4 ) struct (16) [fp+0x48] do-not-enreg[SBR] multireg-ret must-init <System.Decimal>
-; V06 loc6 [V06 ] ( 4, 4 ) struct (16) [fp+0x38] do-not-enreg[SBR] multireg-ret must-init <System.Decimal>
+; V04 loc4 [V04,T02] ( 5, 5 ) ref -> x19 class-hnd single-def <<unknown class>>
+; V05 loc5 [V05 ] ( 4, 4 ) struct (16) [fp+0x48] do-not-enreg[SBR] multireg-ret <System.Decimal>
+; V06 loc6 [V06 ] ( 4, 4 ) struct (16) [fp+0x38] do-not-enreg[SBR] multireg-ret <System.Decimal>
;* V07 loc7 [V07 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T01] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <Program>
-; V10 tmp2 [V10,T03] ( 3, 4.25) ref -> x1 single-def "CASTCLASS eval op1"
-; V11 tmp3 [V11,T12] ( 3, 1.25) long -> x2 "fgMakeTemp is creating a new local variable"
-; V12 tmp4 [V12,T00] ( 8, 12.75) ref -> x19 class-hnd "spilling QMark2" <<unknown class>>
-;* V13 tmp5 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
-;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
-; V15 tmp7 [V15 ] ( 10, 10.00) struct (16) [fp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-; V16 tmp8 [V16 ] ( 8, 12.00) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-; V17 tmp9 [V17,T13] ( 5, 1.00) int -> x0 "Inline return value spill temp"
-; V18 tmp10 [V18,T04] ( 2, 4 ) long -> x0 "impAppendStmt"
-; V19 tmp11 [V19,T05] ( 2, 2.00) long -> x0 "impAppendStmt"
-; V20 tmp12 [V20,T14] ( 3, 1.00) int -> x19 single-def "Inline stloc first use temp"
-; V21 tmp13 [V21,T15] ( 2, 0.00) long -> x0 "impAppendStmt"
-; V22 tmp14 [V22,T06] ( 2, 2 ) int -> [fp+0x48] do-not-enreg[] "field V05._flags (fldOffset=0x0)" P-DEP
-; V23 tmp15 [V23,T07] ( 2, 2 ) int -> [fp+0x4C] do-not-enreg[] "field V05._hi32 (fldOffset=0x4)" P-DEP
-; V24 tmp16 [V24,T08] ( 2, 2 ) long -> [fp+0x50] do-not-enreg[] "field V05._lo64 (fldOffset=0x8)" P-DEP
-; V25 tmp17 [V25,T09] ( 2, 2 ) int -> [fp+0x38] do-not-enreg[] "field V06._flags (fldOffset=0x0)" P-DEP
-; V26 tmp18 [V26,T10] ( 2, 2 ) int -> [fp+0x3C] do-not-enreg[] "field V06._hi32 (fldOffset=0x4)" P-DEP
-; V27 tmp19 [V27,T11] ( 2, 2 ) long -> [fp+0x40] do-not-enreg[] "field V06._lo64 (fldOffset=0x8)" P-DEP
-;* V28 tmp20 [V28 ] ( 0, 0 ) int -> zero-ref "field V13._flags (fldOffset=0x0)" P-DEP
-;* V29 tmp21 [V29 ] ( 0, 0 ) int -> zero-ref "field V13._hi32 (fldOffset=0x4)" P-DEP
-;* V30 tmp22 [V30 ] ( 0, 0 ) long -> zero-ref "field V13._lo64 (fldOffset=0x8)" P-DEP
-;* V31 tmp23 [V31 ] ( 0, 0 ) int -> zero-ref "field V14._flags (fldOffset=0x0)" P-DEP
-;* V32 tmp24 [V32 ] ( 0, 0 ) int -> zero-ref "field V14._hi32 (fldOffset=0x4)" P-DEP
-;* V33 tmp25 [V33 ] ( 0, 0 ) long -> zero-ref "field V14._lo64 (fldOffset=0x8)" P-DEP
-; V34 tmp26 [V34 ] ( 4, 2.50) int -> [fp+0x28] do-not-enreg[X] addr-exposed "field V15._flags (fldOffset=0x0)" P-DEP
-; V35 tmp27 [V35 ] ( 4, 2.50) int -> [fp+0x2C] do-not-enreg[X] addr-exposed "field V15._hi32 (fldOffset=0x4)" P-DEP
-; V36 tmp28 [V36 ] ( 4, 2.50) long -> [fp+0x30] do-not-enreg[X] addr-exposed "field V15._lo64 (fldOffset=0x8)" P-DEP
-; V37 tmp29 [V37 ] ( 4, 2.50) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V16._flags (fldOffset=0x0)" P-DEP
-; V38 tmp30 [V38 ] ( 3, 3.00) int -> [fp+0x1C] do-not-enreg[X] addr-exposed "field V16._hi32 (fldOffset=0x4)" P-DEP
-; V39 tmp31 [V39 ] ( 3, 3.00) long -> [fp+0x20] do-not-enreg[X] addr-exposed "field V16._lo64 (fldOffset=0x8)" P-DEP
-; V40 tmp32 [V40,T02] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
+; V09 tmp1 [V09,T00] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <Program>
+;* V10 tmp2 [V10 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
+;* V11 tmp3 [V11 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
+; V12 tmp4 [V12 ] ( 10, 10.00) struct (16) [fp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
+; V13 tmp5 [V13 ] ( 8, 12.00) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
+; V14 tmp6 [V14,T12] ( 5, 1.00) int -> x0 "Inline return value spill temp"
+; V15 tmp7 [V15,T04] ( 2, 4 ) long -> x0 "impAppendStmt"
+; V16 tmp8 [V16,T05] ( 2, 2.00) long -> x0 "impAppendStmt"
+; V17 tmp9 [V17,T13] ( 3, 1.00) int -> x19 single-def "Inline stloc first use temp"
+; V18 tmp10 [V18,T14] ( 2, 0.00) long -> x0 "impAppendStmt"
+; V19 tmp11 [V19,T06] ( 2, 2 ) int -> [fp+0x48] do-not-enreg[] "field V05._flags (fldOffset=0x0)" P-DEP
+; V20 tmp12 [V20,T07] ( 2, 2 ) int -> [fp+0x4C] do-not-enreg[] "field V05._hi32 (fldOffset=0x4)" P-DEP
+; V21 tmp13 [V21,T08] ( 2, 2 ) long -> [fp+0x50] do-not-enreg[] "field V05._lo64 (fldOffset=0x8)" P-DEP
+; V22 tmp14 [V22,T09] ( 2, 2 ) int -> [fp+0x38] do-not-enreg[] "field V06._flags (fldOffset=0x0)" P-DEP
+; V23 tmp15 [V23,T10] ( 2, 2 ) int -> [fp+0x3C] do-not-enreg[] "field V06._hi32 (fldOffset=0x4)" P-DEP
+; V24 tmp16 [V24,T11] ( 2, 2 ) long -> [fp+0x40] do-not-enreg[] "field V06._lo64 (fldOffset=0x8)" P-DEP
+;* V25 tmp17 [V25 ] ( 0, 0 ) int -> zero-ref "field V10._flags (fldOffset=0x0)" P-DEP
+;* V26 tmp18 [V26 ] ( 0, 0 ) int -> zero-ref "field V10._hi32 (fldOffset=0x4)" P-DEP
+;* V27 tmp19 [V27 ] ( 0, 0 ) long -> zero-ref "field V10._lo64 (fldOffset=0x8)" P-DEP
+;* V28 tmp20 [V28 ] ( 0, 0 ) int -> zero-ref "field V11._flags (fldOffset=0x0)" P-DEP
+;* V29 tmp21 [V29 ] ( 0, 0 ) int -> zero-ref "field V11._hi32 (fldOffset=0x4)" P-DEP
+;* V30 tmp22 [V30 ] ( 0, 0 ) long -> zero-ref "field V11._lo64 (fldOffset=0x8)" P-DEP
+; V31 tmp23 [V31 ] ( 4, 2.50) int -> [fp+0x28] do-not-enreg[X] addr-exposed "field V12._flags (fldOffset=0x0)" P-DEP
+; V32 tmp24 [V32 ] ( 4, 2.50) int -> [fp+0x2C] do-not-enreg[X] addr-exposed "field V12._hi32 (fldOffset=0x4)" P-DEP
+; V33 tmp25 [V33 ] ( 4, 2.50) long -> [fp+0x30] do-not-enreg[X] addr-exposed "field V12._lo64 (fldOffset=0x8)" P-DEP
+; V34 tmp26 [V34 ] ( 4, 2.50) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V13._flags (fldOffset=0x0)" P-DEP
+; V35 tmp27 [V35 ] ( 3, 3.00) int -> [fp+0x1C] do-not-enreg[X] addr-exposed "field V13._hi32 (fldOffset=0x4)" P-DEP
+; V36 tmp28 [V36 ] ( 3, 3.00) long -> [fp+0x20] do-not-enreg[X] addr-exposed "field V13._lo64 (fldOffset=0x8)" P-DEP
+; V37 tmp29 [V37,T01] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
+; V38 tmp30 [V38,T03] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 72
@@ -56,14 +54,12 @@ G_M13170_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x60]!
str x19, [sp, #0x58]
mov fp, sp
- stp xzr, xzr, [fp, #0x48] // [V05 loc5], [V05 loc5+0x08]
- stp xzr, xzr, [fp, #0x38] // [V06 loc6], [V06 loc6+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M13170_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
mov x19, x0
; gcrRegs +[x19]
@@ -100,15 +96,16 @@ G_M13170_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x2 x19]
mov x1, x0
; gcrRegs +[x1]
- mov x19, x1
+ movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION
+ ; gcrRegs -[x1] +[x0]
+ mov x19, x0
; gcrRegs +[x19]
- cbnz x19, G_M13170_IG10
- ;; size=140 bbWeight=1 PerfScore 30.00
-G_M13170_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0-x1]
mov w1, #3
ldr x0, [x19, #0x08]
- ; gcrRegs +[x0]
ldr x2, [x19, #0x18]
blr x2
; gcrRegs -[x0]
@@ -120,104 +117,85 @@ G_M13170_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x0 x19]
stp x0, x1, [fp, #0x38] // [V06 loc6], [V06 loc6+0x08]
- ldr w0, [fp, #0x48] // [V22 tmp14]
- str w0, [fp, #0x28] // [V34 tmp26]
- ldr w0, [fp, #0x4C] // [V23 tmp15]
- str w0, [fp, #0x2C] // [V35 tmp27]
- ldr x0, [fp, #0x50] // [V24 tmp16]
- str x0, [fp, #0x30] // [V36 tmp28]
- ldr w0, [fp, #0x38] // [V25 tmp17]
- str w0, [fp, #0x18] // [V37 tmp29]
- ldr w0, [fp, #0x3C] // [V26 tmp18]
- str w0, [fp, #0x1C] // [V38 tmp30]
- ldr x0, [fp, #0x40] // [V27 tmp19]
- str x0, [fp, #0x20] // [V39 tmp31]
- ldr x0, [fp, #0x20] // [V39 tmp31]
- ldr w1, [fp, #0x1C] // [V38 tmp30]
+ ldr w0, [fp, #0x48] // [V19 tmp11]
+ str w0, [fp, #0x28] // [V31 tmp23]
+ ldr w0, [fp, #0x4C] // [V20 tmp12]
+ str w0, [fp, #0x2C] // [V32 tmp24]
+ ldr x0, [fp, #0x50] // [V21 tmp13]
+ str x0, [fp, #0x30] // [V33 tmp25]
+ ldr w0, [fp, #0x38] // [V22 tmp14]
+ str w0, [fp, #0x18] // [V34 tmp26]
+ ldr w0, [fp, #0x3C] // [V23 tmp15]
+ str w0, [fp, #0x1C] // [V35 tmp27]
+ ldr x0, [fp, #0x40] // [V24 tmp16]
+ str x0, [fp, #0x20] // [V36 tmp28]
+ ldr x0, [fp, #0x20] // [V36 tmp28]
+ ldr w1, [fp, #0x1C] // [V35 tmp27]
orr x0, x0, x1
- cbz x0, G_M13170_IG08
- ;; size=104 bbWeight=1 PerfScore 40.50
-G_M13170_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V36 tmp28]
- ldr w1, [fp, #0x2C] // [V35 tmp27]
+ cbz x0, G_M13170_IG07
+ ;; size=256 bbWeight=1 PerfScore 72.00
+G_M13170_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ldr x0, [fp, #0x30] // [V33 tmp25]
+ ldr w1, [fp, #0x2C] // [V32 tmp24]
orr x0, x0, x1
- cbz x0, G_M13170_IG14
- ldr w0, [fp, #0x28] // [V34 tmp26]
+ cbz x0, G_M13170_IG11
+ ldr w0, [fp, #0x28] // [V31 tmp23]
asr w0, w0, #31
- ldr w1, [fp, #0x18] // [V37 tmp29]
+ ldr w1, [fp, #0x18] // [V34 tmp26]
sub w19, w0, w1, ASR #31
- cbnz w19, G_M13170_IG15
- add x0, fp, #40 // [V15 tmp7]
- add x1, fp, #24 // [V16 tmp8]
+ cbnz w19, G_M13170_IG12
+ add x0, fp, #40 // [V12 tmp4]
+ add x1, fp, #24 // [V13 tmp5]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=0.50 PerfScore 9.50
-G_M13170_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cbnz w0, G_M13170_IG12
+G_M13170_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cbnz w0, G_M13170_IG09
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M13170_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13170_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #100
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M13170_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M13170_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M13170_IG08: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x0, [fp, #0x30] // [V36 tmp28]
- ldr w1, [fp, #0x2C] // [V35 tmp27]
+G_M13170_IG07: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr x0, [fp, #0x30] // [V33 tmp25]
+ ldr w1, [fp, #0x2C] // [V32 tmp24]
orr x0, x0, x1
- cbz x0, G_M13170_IG06
+ cbz x0, G_M13170_IG05
;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M13170_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [fp, #0x28] // [V34 tmp26]
+G_M13170_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ldr w0, [fp, #0x28] // [V31 tmp23]
asr w0, w0, #31
orr w0, w0, #1
- b G_M13170_IG05
+ b G_M13170_IG04
;; size=16 bbWeight=0 PerfScore 0.00
-G_M13170_IG10: ; bbWeight=0.25, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x1 x19]
- ldr x0, [x19]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x0, x2
- beq G_M13170_IG03
- ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M13170_IG11: ; bbWeight=0.12, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x0, x2
- bl CORINFO_HELP_CHKCASTANY
- ; gcrRegs -[x1] +[x0]
- mov x19, x0
- ; gcrRegs +[x19]
- b G_M13170_IG03
- ;; size=16 bbWeight=0.12 PerfScore 0.38
-G_M13170_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
+G_M13170_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movn w0, #0
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M13170_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M13170_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M13170_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ldr w0, [fp, #0x18] // [V37 tmp29]
+G_M13170_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ldr w0, [fp, #0x18] // [V34 tmp26]
asr w0, w0, #31
orr w0, w0, #1
...
-40 (-6.85%) : 390.dasm - Microsoft.Win32.SafeHandles.SafePipeHandle:CreatePipeSocket(ubyte):System.Net.Sockets.Socket:this (FullOpts)
@@ -8,30 +8,30 @@
; 2 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 11, 6 ) ref -> [fp+0x18] this class-hnd EH-live single-def <Microsoft.Win32.SafeHandles.SafePipeHandle>
+; V00 this [V00,T01] ( 11, 6 ) ref -> [fp+0x10] this class-hnd EH-live single-def <Microsoft.Win32.SafeHandles.SafePipeHandle>
; V01 arg1 [V01,T02] ( 4, 3 ) ubyte -> x19 single-def
; V02 loc0 [V02,T03] ( 6, 4.50) ref -> x20 class-hnd <System.Net.Sockets.Socket>
-; V03 loc1 [V03 ] ( 4, 1.50) ubyte -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op
+; V03 loc1 [V03 ] ( 4, 1.50) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T00] ( 12, 12 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.SafeSocketHandle>
-; V06 tmp2 [V06,T06] ( 2, 2 ) long -> x21 "finalizable newobj spill"
+; V05 tmp1 [V05,T00] ( 12, 12 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.SafeSocketHandle>
+; V06 tmp2 [V06,T06] ( 2, 2 ) long -> x20 "finalizable newobj spill"
; V07 tmp3 [V07,T04] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.Socket>
;* V08 tmp4 [V08 ] ( 0, 0 ) long -> zero-ref ld-addr-op "NewObj constructor temp"
;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V11 tmp7 [V11,T05] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
-; V12 PSPSym [V12,T07] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
+; V12 PSPSym [V12,T07] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
;
-; Lcl frame size = 32
+; Lcl frame size = 24
G_M45382_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x30]
- stp x21, x22, [sp, #0x40]
+ stp fp, lr, [sp, #-0x40]!
+ stp x19, x20, [sp, #0x28]
+ str x21, [sp, #0x38]
mov fp, sp
- add x2, sp, #80
- str x2, [fp, #0x28] // [V12 PSPSym]
- str x0, [fp, #0x18] // [V00 this]
+ add x2, sp, #64
+ str x2, [fp, #0x20] // [V12 PSPSym]
+ str x0, [fp, #0x10] // [V00 this]
; GC ptr vars +{V00}
mov w19, w1
;; size=32 bbWeight=1 PerfScore 6.50
@@ -43,14 +43,14 @@ G_M45382_IG02: ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
; byrRegs +[x1]
ldapr w1, [x1]
; byrRegs -[x1]
- cbnz w1, G_M45382_IG08
+ cbnz w1, G_M45382_IG06
;; size=16 bbWeight=1 PerfScore 5.00
G_M45382_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
- str wzr, [fp, #0x20] // [V03 loc1]
+ str wzr, [fp, #0x18] // [V03 loc1]
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M45382_IG04: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
- add x1, fp, #32 // [V03 loc1]
+ add x1, fp, #24 // [V03 loc1]
movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:DangerousAddRef(byref):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -58,61 +58,46 @@ G_M45382_IG04: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [fp, #0x18] // [V00 this]
+ ldr x0, [fp, #0x10] // [V00 this]
; gcrRegs +[x0]
- ldr x21, [x0, #0x10]
+ ldr x20, [x0, #0x10]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWFAST
+ bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x21, x0
+ ; gcrRegs +[x21]
movn w0, #0
; gcrRegs -[x0]
- stp w0, w0, [x22, #0x2C]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbnz w0, #0, G_M45382_IG06
- ;; size=80 bbWeight=0.50 PerfScore 10.50
-G_M45382_IG05: ; bbWeight=0, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #107
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M45382_IG06: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+ stp w0, w0, [x21, #0x2C]
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- strb w0, [x22, #0x3B]
+ strb w0, [x21, #0x3B]
mov w0, #1
- strb w0, [x22, #0x3C]
+ strb w0, [x21, #0x3C]
movn x0, #0
- str x0, [x22, #0x10]
- add x0, x22, #24
+ str x0, [x21, #0x10]
+ add x0, x21, #24
; byrRegs +[x0]
mov w1, #4
stlr w1, [x0]
mov w0, #1
; byrRegs -[x0]
- strb w0, [x22, #0x1C]
- add x0, x22, #29
+ strb w0, [x21, #0x1C]
+ add x0, x21, #29
; byrRegs +[x0]
mov w1, #1
stlrb w1, [x0]
- strb w19, [x22, #0x34]
- mov x0, x22
+ strb w19, [x21, #0x34]
+ mov x0, x21
; gcrRegs +[x0]
; byrRegs -[x0]
- mov x1, x21
+ mov x1, x20
movz x2, #0xD1FFAB1E // code for System.Net.Sockets.SafeSocketHandle:SetHandleAndValid(long):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -123,18 +108,18 @@ G_M45382_IG06: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWFAST
+ bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
mov x20, x0
; gcrRegs +[x20]
- mov x0, x22
+ mov x0, x21
movz x1, #0xD1FFAB1E // code for System.Net.Sockets.Socket:ValidateHandle(System.Net.Sockets.SafeSocketHandle):System.Net.Sockets.SafeSocketHandle
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ; gcrRegs -[x22]
+ ; gcrRegs -[x21]
; gcr arg pop 0
mov x1, x0
; gcrRegs +[x1]
@@ -148,7 +133,7 @@ G_M45382_IG06: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}
; gcrRegs -[x0-x1]
; gcr arg pop 0
uxtb w2, w19
- ldr x0, [fp, #0x18] // [V00 this]
+ ldr x0, [fp, #0x10] // [V00 this]
; gcrRegs +[x0]
mov x1, x20
; gcrRegs +[x1]
@@ -161,13 +146,13 @@ G_M45382_IG06: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}
; gcr arg pop 0
mov x20, x0
; gcrRegs +[x20]
- ldr x0, [fp, #0x18] // [V00 this]
+ ldr x0, [fp, #0x10] // [V00 this]
add x1, x0, #48
; byrRegs +[x1]
ldapr w1, [x1]
; byrRegs -[x1]
cmp w1, #1
- bne G_M45382_IG07
+ bne G_M45382_IG05
add x1, x0, #32
; byrRegs +[x1]
stlr xzr, [x1]
@@ -183,12 +168,12 @@ G_M45382_IG06: ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=0000 {}
; gcr arg pop 0
mov x20, xzr
; gcrRegs +[x20]
- ldr x0, [fp, #0x18] // [V00 this]
+ ldr x0, [fp, #0x10] // [V00 this]
; gcrRegs +[x0]
- ;; size=276 bbWeight=0.50 PerfScore 33.25
-G_M45382_IG07: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref, isz
- ldrb w1, [fp, #0x20] // [V03 loc1]
- cbz w1, G_M45382_IG08
+ ;; size=336 bbWeight=0.50 PerfScore 41.00
+G_M45382_IG05: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref, isz
+ ldrb w1, [fp, #0x18] // [V03 loc1]
+ cbz w1, G_M45382_IG06
mov w1, wzr
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -197,20 +182,20 @@ G_M45382_IG07: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [fp, #0x18] // [V00 this]
+ ldr x0, [fp, #0x10] // [V00 this]
; gcrRegs +[x0]
;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M45382_IG08: ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref, isz
- cbz x20, G_M45382_IG10
+G_M45382_IG06: ; bbWeight=1, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref, isz
+ cbz x20, G_M45382_IG08
mov x0, x20
;; size=8 bbWeight=1 PerfScore 1.50
-G_M45382_IG09: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
+G_M45382_IG07: ; bbWeight=1, epilog, nogc, extend
+ ldr x21, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
-G_M45382_IG10: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=16 bbWeight=1 PerfScore 5.00
+G_M45382_IG08: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x20]
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
movk x1, #0xD1FFAB1E LSL #16
@@ -222,18 +207,18 @@ G_M45382_IG10: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M45382_IG11: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M45382_IG09: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V00 V01}
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
- add x3, fp, #80
- str x3, [sp, #0x18]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
+ add x3, fp, #64
+ str x3, [sp, #0x10]
...
libraries.crossgen2.linux.arm64.checked.mch
-12 (-5.88%) : 140.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
@@ -15,8 +15,8 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V04 tmp2 [V04,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp3 [V05,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V06 cse0 [V06,T03] ( 4, 3 ) byref -> x0 "CSE - aggressive"
-; V07 cse1 [V07,T02] ( 5, 3.50) int -> x1 "CSE - aggressive"
+; V06 cse0 [V06,T03] ( 4, 3 ) int -> x11 "CSE - aggressive"
+; V07 cse1 [V07,T02] ( 5, 3.50) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -34,25 +34,24 @@ G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x0
; byrRegs +[x0]
ldrh w11, [x0]
- uxth w1, w20
- cmp w11, w1
+ uxth w0, w20
+ ; byrRegs -[x0]
+ cmp w11, w0
beq G_M44169_IG04
;; size=32 bbWeight=1 PerfScore 10.00
-G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- cmp w1, #47
+G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp w0, #47
bne G_M44169_IG07
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w11, [x0]
- uxth w2, w19
- cmp w11, w2
+G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ uxth w1, w19
+ cmp w11, w1
beq G_M44169_IG05
- uxth w11, w19
- cmp w11, #47
+ uxth w1, w19
+ cmp w1, #47
bne G_M44169_IG07
- ;; size=28 bbWeight=0.50 PerfScore 3.50
+ ;; size=24 bbWeight=0.50 PerfScore 2.00
G_M44169_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
@@ -60,13 +59,9 @@ G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
- ; byrRegs +[x0]
- ldrh w0, [x0]
- ; byrRegs -[x0]
- cmp w0, #47
+G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ cmp w11, #47
beq G_M44169_IG09
- mov w0, w1
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -79,15 +74,15 @@ G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
blr x1
cmp w20, w0
cset x0, eq
- ;; size=64 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 6.75
G_M44169_IG08: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44169_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- uxth w0, w19
- cmp w1, w0
+ uxth w1, w19
+ cmp w0, w1
cset x0, eq
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
@@ -96,7 +91,7 @@ G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 204, prolog size 12, PerfScore 31.75, instruction count 51, allocated bytes for code 204 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
+; Total bytes of code 192, prolog size 12, PerfScore 28.50, instruction count 48, allocated bytes for code 192 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -107,7 +102,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-4.00%) : 144.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
@@ -12,7 +12,7 @@
; V00 arg0 [V00,T00] ( 4, 3 ) ref -> x19 class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T02] ( 2, 2 ) int -> x1 "argument with side effect"
-; V03 cse0 [V03,T01] ( 3, 2.50) byref -> x0 "CSE - aggressive"
+; V03 cse0 [V03,T01] ( 3, 2.50) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -34,17 +34,16 @@ G_M64282_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
cmp w1, #47
beq G_M64282_IG05
;; size=28 bbWeight=1 PerfScore 9.50
-G_M64282_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
- ldrh w1, [x0]
+G_M64282_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x0]
mov x0, x19
; gcrRegs +[x0]
- ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
mov w2, #47
ldr wzr, [x0]
ldr x3, [x11]
- ;; size=28 bbWeight=0.50 PerfScore 5.50
+ ;; size=24 bbWeight=0.50 PerfScore 4.00
G_M64282_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -62,7 +61,7 @@ G_M64282_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 100, prolog size 16, PerfScore 22.25, instruction count 25, allocated bytes for code 100 (MethodHash=904104e5) for method Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
+; Total bytes of code 96, prolog size 16, PerfScore 20.75, instruction count 24, allocated bytes for code 96 (MethodHash=904104e5) for method Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -73,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ 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)
-4 (-2.50%) : 3099.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -15,7 +15,7 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 2, 2 ) int -> x2 "argument with side effect"
; V05 tmp2 [V05,T03] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V06 cse0 [V06,T05] ( 3, 1.50) byref -> x0 "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 1.50) int -> x2 "CSE - moderate"
;
; Lcl frame size = 8
@@ -53,7 +53,6 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldrh w2, [x0]
cmp w2, #47
bne G_M45118_IG04
- ldrh w2, [x0]
mov x0, x19
; gcrRegs +[x0]
; byrRegs -[x0]
@@ -73,7 +72,7 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x1 x20]
mov x21, x0
; gcrRegs +[x21]
- ;; size=84 bbWeight=0.50 PerfScore 13.75
+ ;; size=80 bbWeight=0.50 PerfScore 12.25
G_M45118_IG04: ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x21
@@ -86,7 +85,7 @@ G_M45118_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 160, prolog size 16, PerfScore 31.25, instruction count 40, allocated bytes for code 160 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 156, prolog size 16, PerfScore 29.75, instruction count 39, allocated bytes for code 156 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -97,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ 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)
-4 (-1.61%) : 164390.dasm - Microsoft.Build.Framework.FileClassifier:IsNonModifiable(System.String):ubyte:this (FullOpts)
@@ -14,20 +14,20 @@
; V03 loc1 [V03,T00] ( 5, 17 ) int -> x21
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T02] ( 2, 16 ) int -> x2 "argument with side effect"
-; V06 tmp2 [V06,T01] ( 2, 16 ) ref -> x26 "argument with side effect"
-; V07 cse0 [V07,T07] ( 2, 4.50) long -> x23 hoist "CSE - aggressive"
-; V08 cse1 [V08,T08] ( 2, 4.50) long -> x24 hoist "CSE - aggressive"
+; V06 tmp2 [V06,T01] ( 2, 16 ) ref -> x1 "argument with side effect"
+; V07 cse0 [V07,T07] ( 2, 4.50) byref -> x24 hoist "CSE - aggressive"
+; V08 cse1 [V08,T08] ( 2, 4.50) long -> x23 hoist "CSE - aggressive"
; V09 cse2 [V09,T09] ( 2, 4.50) long -> x25 hoist "CSE - aggressive"
; V10 cse3 [V10,T05] ( 3, 6 ) long -> x22 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M38544_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
- stp x25, x26, [sp, #0x40]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ stp x23, x24, [sp, #0x38]
+ str x25, [sp, #0x48]
mov fp, sp
mov x19, x1
; gcrRegs +[x19]
@@ -55,36 +55,33 @@ G_M38544_IG02: ; bbWeight=1, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {},
G_M38544_IG03: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
adrp x23, [HIGH RELOC #0xD1FFAB1E]
add x23, x23, [LOW RELOC #0xD1FFAB1E]
- adrp x24, [HIGH RELOC #0xD1FFAB1E]
- add x24, x24, [LOW RELOC #0xD1FFAB1E]
+ adrp x11, [HIGH RELOC #0xD1FFAB1E]
+ add x11, x11, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x11]
+ blr x0
+ ; byrRegs +[x0]
+ mov x24, x0
+ ; byrRegs +[x24]
adrp x25, [HIGH RELOC #0xD1FFAB1E]
add x25, x25, [LOW RELOC #0xD1FFAB1E]
- ;; size=24 bbWeight=0.50 PerfScore 1.50
-G_M38544_IG04: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=0.50 PerfScore 3.75
+G_M38544_IG04: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=1000000 {x24}, byref, isz
+ ; byrRegs -[x0]
mov x0, x20
; gcrRegs +[x0]
mov w1, w21
mov x11, x23
ldr x2, [x11]
blr x2
- mov x26, x0
- ; gcrRegs +[x26]
- mov x11, x24
- ldr x0, [x11]
- ; gcrRegs -[x0]
- blr x0
- ; byrRegs +[x0]
- ldr w2, [x0, #0xD1FFAB1E]
- mov x1, x26
+ mov x1, x0
; gcrRegs +[x1]
+ ldr w2, [x24, #0xD1FFAB1E]
mov x0, x19
- ; gcrRegs +[x0]
- ; byrRegs -[x0]
mov x11, x25
ldr wzr, [x0]
ldr x3, [x11]
blr x3
- ; gcrRegs -[x0-x1 x26]
+ ; gcrRegs -[x0-x1]
cbnz w0, G_M38544_IG07
add w21, w21, #1
mov x0, x20
@@ -95,43 +92,44 @@ G_M38544_IG04: ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x0]
cmp w0, w21
bgt G_M38544_IG04
- ;; size=96 bbWeight=4 PerfScore 120.00
+ ;; size=80 bbWeight=4 PerfScore 100.00
G_M38544_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
+ ; byrRegs -[x24]
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M38544_IG06: ; bbWeight=0.50, epilog, nogc, extend
- ldp x25, x26, [sp, #0x40]
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x25, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0.50 PerfScore 3.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
G_M38544_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M38544_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldp x25, x26, [sp, #0x40]
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x25, [sp, #0x48]
+ ldp x23, x24, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=0.50 PerfScore 3.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.50
-; Total bytes of code 248, prolog size 24, PerfScore 145.50, instruction count 62, allocated bytes for code 248 (MethodHash=e1b2696f) for method Microsoft.Build.Framework.FileClassifier:IsNonModifiable(System.String):ubyte:this (FullOpts)
+; Total bytes of code 244, prolog size 24, PerfScore 128.75, instruction count 61, allocated bytes for code 244 (MethodHash=e1b2696f) for method Microsoft.Build.Framework.FileClassifier:IsNonModifiable(System.String):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 3
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 62 (0x0003e) Actual length = 248 (0x0000f8)
+ Function Length : 61 (0x0003d) Actual length = 244 (0x0000f4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -142,10 +140,13 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 89 save_reg X#6 Z#9 (0x09); str x25, [sp, #72]
E6 save_next
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
+ E4 end
+ E4 end
+ E4 end
+0 (0.00%) : 41295.dasm - .$Array:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> x19 "value for stsfld with typeinit"
;
; Lcl frame size = 8
@@ -23,13 +22,15 @@ G_M35347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
blr x0
- sxtw w19, w0
+ ; byrRegs +[x0]
+ mov x19, x0
+ ; byrRegs +[x19]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
+ ; byrRegs -[x0]
blr x0
- ; byrRegs +[x0]
- str w19, [x0, #0xD1FFAB1E]
+ str w0, [x19, #0xD1FFAB1E]
;; size=40 bbWeight=1 PerfScore 11.50
G_M35347_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
libraries.pmi.linux.arm64.checked.mch
-48 (-60.00%) : 5705.dasm - System.Runtime.MemoryFailPoint:get_LastKnownFreeAddressSpace():long (FullOpts)
@@ -8,54 +8,36 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V02 rat0 [V02,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M36305_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M36305_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M36305_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M36305_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- add x0, x19, #0xD1FFAB1E
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M36305_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
ldapr x0, [x0]
- ;; size=8 bbWeight=1 PerfScore 3.50
-G_M36305_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M36305_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M36305_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M36305_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=caf5722e) for method System.Runtime.MemoryFailPoint:get_LastKnownFreeAddressSpace():long (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=caf5722e) for method System.Runtime.MemoryFailPoint:get_LastKnownFreeAddressSpace():long (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -63,10 +45,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-48 (-60.00%) : 5707.dasm - System.Runtime.MemoryFailPoint:get_LastTimeCheckingAddressSpace():long (FullOpts)
@@ -8,54 +8,36 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V02 rat0 [V02,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M12133_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M12133_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M12133_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M12133_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- add x0, x19, #0xD1FFAB1E
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M12133_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
ldapr x0, [x0]
- ;; size=8 bbWeight=1 PerfScore 3.50
-G_M12133_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M12133_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M12133_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M12133_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 80, prolog size 12, PerfScore 17.50, instruction count 20, allocated bytes for code 80 (MethodHash=993ad09a) for method System.Runtime.MemoryFailPoint:get_LastTimeCheckingAddressSpace():long (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=993ad09a) for method System.Runtime.MemoryFailPoint:get_LastTimeCheckingAddressSpace():long (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -63,10 +45,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-44 (-57.89%) : 4580.dasm - System.Threading.Lock:get_ContentionCount():long (FullOpts)
@@ -8,53 +8,36 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V02 rat0 [V02,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M24154_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M24154_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M24154_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M24154_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [x19, #0xD1FFAB1E]
- ;; size=4 bbWeight=1 PerfScore 3.00
-G_M24154_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M24154_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M24154_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M24154_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M24154_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 17.00, instruction count 19, allocated bytes for code 76 (MethodHash=3796a1a5) for method System.Threading.Lock:get_ContentionCount():long (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=3796a1a5) for method System.Threading.Lock:get_ContentionCount():long (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -62,10 +45,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-32 (-4.44%) : 4987.dasm - System.Threading.Tasks.TaskFactory1[ubyte]:FromAsyncCoreLogic(System.IAsyncResult,System.Func2[System.IAsyncResult,ubyte],System.Action1[System.IAsyncResult],System.Threading.Tasks.Task1[ubyte],ubyte) (FullOpts)
@@ -19,18 +19,16 @@
;* V08 loc3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.OperationCanceledException>
;* V09 loc4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T02] ( 7, 14 ) ref -> x20 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
+; V11 tmp1 [V11,T02] ( 7, 14 ) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
;* V12 tmp2 [V12 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken>
-; V13 tmp3 [V13,T15] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V14 tmp4 [V14,T16] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" <System.OperationCanceledException>
+; V13 tmp3 [V13,T13] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V14 tmp4 [V14,T14] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" <System.OperationCanceledException>
;* V15 tmp5 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
-; V16 tmp6 [V16,T08] ( 2, 4 ) int -> x21 "Inlining Arg"
-;* V17 tmp7 [V17,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V16 tmp6 [V16,T08] ( 2, 4 ) int -> x20 "Inlining Arg"
+;* V17 tmp7 [V17,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref "field V12._source (fldOffset=0x0)" P-INDEP
-; V19 PSPSym [V19,T14] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
-; V20 cse0 [V20,T10] ( 3, 3 ) ref -> x20 "CSE - aggressive"
-; V21 cse1 [V21,T11] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V22 rat0 [V22,T12] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V19 PSPSym [V19,T12] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V20 cse0 [V20,T10] ( 3, 3 ) ref -> x19 "CSE - aggressive"
;
; Lcl frame size = 40
@@ -182,7 +180,7 @@ G_M28562_IG17: ; bbWeight=1, gcVars=0000000000000241 {V03 V05 V06}, gcref
blr x3
; gcrRegs -[x0-x2]
; gcr arg pop 0
- b G_M28562_IG25
+ b G_M28562_IG23
;; size=52 bbWeight=1 PerfScore 21.50
G_M28562_IG18: ; bbWeight=1, gcVars=0000000000000201 {V03 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V03 V05}
@@ -200,33 +198,17 @@ G_M28562_IG18: ; bbWeight=1, gcVars=0000000000000201 {V03 V05}, gcrefRegs
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- b G_M28562_IG25
+ b G_M28562_IG23
;; size=40 bbWeight=1 PerfScore 15.50
G_M28562_IG19: ; bbWeight=1, gcVars=0000000000000001 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V00 V03}
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbnz w1, #0, G_M28562_IG21
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M28562_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M28562_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr x20, [x0]
- ; gcrRegs +[x20]
- ldrb w0, [x20, #0x9D]
- cbz w0, G_M28562_IG22
+ ldr x19, [x0]
+ ; gcrRegs +[x19]
+ ldrb w0, [x19, #0x9D]
+ cbz w0, G_M28562_IG20
ldr x0, [fp, #0x20] // [V03 arg3]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:get_Id():int:this
@@ -237,13 +219,13 @@ G_M28562_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w21, w0
- ldrb w1, [x20, #0x9D]
- cbz w1, G_M28562_IG22
- ldrb w1, [x20, #0x9D]
- ldr x3, [x20, #0x80]
- ldr w2, [x20, #0x98]
- mov x0, x20
+ sxtw w20, w0
+ ldrb w1, [x19, #0x9D]
+ cbz w1, G_M28562_IG20
+ ldrb w1, [x19, #0x9D]
+ ldr x3, [x19, #0x80]
+ ldr w2, [x19, #0x98]
+ mov x0, x19
; gcrRegs +[x0]
mov w4, #4
mov x5, #8
@@ -255,10 +237,10 @@ G_M28562_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x7
; gcrRegs -[x0]
; gcr arg pop 0
- cbz w0, G_M28562_IG22
- mov x0, x20
+ cbz w0, G_M28562_IG20
+ mov x0, x19
; gcrRegs +[x0]
- mov w2, w21
+ mov w2, w20
mov w1, #15
mov w3, #1
movz x4, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
@@ -266,12 +248,15 @@ G_M28562_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x4, #0xD1FFAB1E LSL #32
ldr x4, [x4]
blr x4
- ; gcrRegs -[x0 x20]
+ ; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=152 bbWeight=1 PerfScore 48.50
-G_M28562_IG22: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [x19, #0xD1FFAB1E]
- cbz w0, G_M28562_IG23
+G_M28562_IG20: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldrb w0, [x0]
+ cbz w0, G_M28562_IG21
ldr x0, [fp, #0x20] // [V03 arg3]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -281,11 +266,11 @@ G_M28562_IG22: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=32 bbWeight=1 PerfScore 11.50
-G_M28562_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=44 bbWeight=1 PerfScore 13.00
+G_M28562_IG21: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrb w4, [fp, #0x2C] // [V04 arg4]
tst w4, #255
- beq G_M28562_IG24
+ beq G_M28562_IG22
ldr x0, [fp, #0x20] // [V03 arg3]
; gcrRegs +[x0]
ldr w1, [fp, #0x28] // [V07 loc2]
@@ -298,9 +283,9 @@ G_M28562_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- b G_M28562_IG25
+ b G_M28562_IG23
;; size=48 bbWeight=1 PerfScore 17.00
-G_M28562_IG24: ; bbWeight=1, gcVars=0000000000000001 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M28562_IG22: ; bbWeight=1, gcVars=0000000000000001 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V00 V03}
ldr x0, [fp, #0x20] // [V03 arg3]
; gcrRegs +[x0]
@@ -315,14 +300,14 @@ G_M28562_IG24: ; bbWeight=1, gcVars=0000000000000001 {V03}, gcrefRegs=000
; gcrRegs -[x0]
; gcr arg pop 0
;; size=32 bbWeight=1 PerfScore 12.50
-G_M28562_IG25: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M28562_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=1 PerfScore 9.00
-; Total bytes of code 720, prolog size 44, PerfScore 195.50, instruction count 180, allocated bytes for code 720 (MethodHash=b90a906d) for method System.Threading.Tasks.TaskFactory`1[ubyte]:FromAsyncCoreLogic(System.IAsyncResult,System.Func`2[System.IAsyncResult,ubyte],System.Action`1[System.IAsyncResult],System.Threading.Tasks.Task`1[ubyte],ubyte) (FullOpts)
+; Total bytes of code 688, prolog size 44, PerfScore 189.50, instruction count 172, allocated bytes for code 688 (MethodHash=b90a906d) for method System.Threading.Tasks.TaskFactory`1[ubyte]:FromAsyncCoreLogic(System.IAsyncResult,System.Func`2[System.IAsyncResult,ubyte],System.Action`1[System.IAsyncResult],System.Threading.Tasks.Task`1[ubyte],ubyte) (FullOpts)
; ============================================================
Unwind Info:
@@ -393,7 +378,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 109 (0x0006d) Actual length = 436 (0x0001b4)
+ Function Length : 101 (0x00065) Actual length = 404 (0x000194)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-12 (-2.80%) : 5400.dasm - System.Threading.Tasks.ValueTask`1+ValueTaskSourceAsTask+<>c[ubyte]:<.cctor>b_40(System.Object):this (FullOpts)
@@ -8,22 +8,21 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Threading.Tasks.ValueTask`1+ValueTaskSourceAsTask+<>c[ubyte]>
-; V01 arg1 [V01,T00] ( 6, 5.50) ref -> x1 class-hnd single-def <System.Object>
-; V02 loc0 [V02,T01] ( 9, 6 ) ref -> [fp+0x10] do-not-enreg[M] class-hnd exact EH-live <<unknown class>>
-; V03 loc1 [V03,T02] ( 4, 4 ) ref -> x19 class-hnd single-def <<unknown class>>
+; V01 arg1 [V01,T00] ( 6, 6 ) ref -> x19 class-hnd single-def <System.Object>
+; V02 loc0 [V02,T01] ( 8, 4 ) ref -> [fp+0x10] class-hnd exact EH-live spill-single-def <<unknown class>>
+; V03 loc1 [V03,T02] ( 4, 4 ) ref -> x20 class-hnd single-def <<unknown class>>
; V04 loc2 [V04,T05] ( 2, 1 ) int -> [fp+0x24] do-not-enreg[Z] EH-live
;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V06 loc4 [V06,T07] ( 4, 0 ) ref -> x19 class-hnd single-def <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
-; V09 tmp2 [V09,T08] ( 3, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V10 tmp3 [V10 ] ( 2, 0 ) struct ( 8) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Threading.CancellationToken>
-;* V11 tmp4 [V11 ] ( 0, 0 ) struct ( 8) zero-ref single-def "spilled call-like call argument" <System.Threading.CancellationToken>
-; V12 tmp5 [V12 ] ( 2, 0 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V10._source (fldOffset=0x0)" P-DEP
-; V13 tmp6 [V13,T09] ( 2, 0 ) ref -> x1 "field V11._source (fldOffset=0x0)" P-INDEP
-; V14 tmp7 [V14,T03] ( 2, 4 ) int -> x1 "argument with side effect"
-; V15 PSPSym [V15,T06] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
-; V16 cse0 [V16,T04] ( 3, 3 ) long -> x20 "CSE - aggressive"
+; V08 tmp1 [V08,T08] ( 3, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 2, 0 ) struct ( 8) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Threading.CancellationToken>
+;* V10 tmp3 [V10 ] ( 0, 0 ) struct ( 8) zero-ref single-def "spilled call-like call argument" <System.Threading.CancellationToken>
+; V11 tmp4 [V11 ] ( 2, 0 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V09._source (fldOffset=0x0)" P-DEP
+; V12 tmp5 [V12,T09] ( 2, 0 ) ref -> x1 "field V10._source (fldOffset=0x0)" P-INDEP
+; V13 tmp6 [V13,T03] ( 2, 4 ) int -> x1 "argument with side effect"
+; V14 PSPSym [V14,T06] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
+; V15 cse0 [V15,T04] ( 3, 3 ) long -> x19 "CSE - aggressive"
;
; Lcl frame size = 32
@@ -31,82 +30,71 @@ G_M26575_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x40]!
stp x19, x20, [sp, #0x30]
mov fp, sp
- str xzr, [fp, #0x18] // [V10 tmp3]
+ str xzr, [fp, #0x18] // [V09 tmp2]
add x2, sp, #64
- str x2, [fp, #0x28] // [V15 PSPSym]
- ;; size=24 bbWeight=1 PerfScore 5.00
-G_M26575_IG02: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x1]
- str x1, [fp, #0x10] // [V02 loc0]
- ; GC ptr vars +{V02}
- cbz x1, G_M26575_IG05
- ;; size=8 bbWeight=1 PerfScore 2.00
-G_M26575_IG03: ; bbWeight=0.50, gcVars=0000000000000002 {V02}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x0, [x1]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x0, x2
- bne G_M26575_IG05
- ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M26575_IG04: ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x10] // [V02 loc0]
- ; gcrRegs +[x0]
- ldr x19, [x0, #0x40]
+ str x2, [fp, #0x28] // [V14 PSPSym]
+ mov x19, x1
; gcrRegs +[x19]
- cbnz x19, G_M26575_IG07
- ;; size=12 bbWeight=1 PerfScore 6.00
-G_M26575_IG05: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
+ ;; size=28 bbWeight=1 PerfScore 5.50
+G_M26575_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ mov x1, x19
+ ; gcrRegs +[x1]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[x1] +[x0]
+ ; gcr arg pop 0
+ str x0, [fp, #0x10] // [V02 loc0]
+ ; GC ptr vars +{V02}
+ cbz x19, G_M26575_IG03
+ ldr x20, [x19, #0x40]
+ ; gcrRegs +[x20]
+ cbnz x20, G_M26575_IG05
+ ;; size=36 bbWeight=1 PerfScore 9.00
+G_M26575_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x20]
; GC ptr vars -{V02}
- mov x0, x1
+ mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
- ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ; gcrRegs -[x0]
+ ; gcrRegs -[x0 x19]
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 6.00
-G_M26575_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M26575_IG04: ; bbWeight=1, epilog, nogc, extend
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M26575_IG07: ; bbWeight=1, gcVars=0000000000000002 {V02}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19]
+G_M26575_IG05: ; bbWeight=1, gcVars=0000000000000002 {V02}, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x0 x20]
; GC ptr vars +{V01 V02}
- ldr x1, [fp, #0x10] // [V02 loc0]
- ; gcrRegs +[x1]
- str xzr, [x1, #0x40]
- ldr x1, [fp, #0x10] // [V02 loc0]
- ldrsh w1, [x1, #0x48]
- ; gcrRegs -[x1]
- mov x0, x19
- ; gcrRegs +[x0]
- movz x20, #0xD1FFAB1E // code for <unknown method>
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- mov x11, x20
+ str xzr, [x0, #0x40]
+ ldrsh w1, [x0, #0x48]
+ mov x0, x20
+ movz x19, #0xD1FFAB1E // code for <unknown method>
+ movk x19, #0xD1FFAB1E LSL #16
+ movk x19, #0xD1FFAB1E LSL #32
+ mov x11, x19
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
str w0, [fp, #0x24] // [V04 loc2]
- ;; size=48 bbWeight=1 PerfScore 15.50
-G_M26575_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x10] // [V02 loc0]
- ; gcrRegs +[x1]
- ldrsh w1, [x1, #0x48]
- ; gcrRegs -[x1]
- mov x0, x19
+ ;; size=40 bbWeight=1 PerfScore 11.50
+G_M26575_IG06: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ldr x0, [fp, #0x10] // [V02 loc0]
; gcrRegs +[x0]
- add x11, x20, #8
+ ldrsh w1, [x0, #0x48]
+ mov x0, x20
+ add x11, x19, #8
ldr x2, [x11]
blr x2
- ; gcrRegs -[x0 x19]
+ ; gcrRegs -[x0 x20]
; gcr arg pop 0
sxtw w1, w0
ldr x0, [fp, #0x10] // [V02 loc0]
@@ -119,36 +107,36 @@ G_M26575_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs -[x0]
; gcr arg pop 0
;; size=52 bbWeight=1 PerfScore 18.00
-G_M26575_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+G_M26575_IG07: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
; GC ptr vars -{V01 V02}
ldp x19, x20, [sp, #0x30]
ldp fp, lr, [sp], #0x40
ret lr
;; size=12 bbWeight=1 PerfScore 3.00
-G_M26575_IG10: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M26575_IG08: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x30]!
stp x19, x20, [sp, #0x20]
add x3, fp, #64
str x3, [sp, #0x18]
;; size=16 bbWeight=0 PerfScore 0.00
-G_M26575_IG11: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26575_IG09: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V01 V02}
mov x1, x0
; gcrRegs +[x1]
ldr w0, [fp, #0x24] // [V04 loc2]
; gcrRegs -[x0]
cmp w0, #3
- bne G_M26575_IG13
+ bne G_M26575_IG11
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M26575_IG12
+ cbz x19, G_M26575_IG10
mov x0, x19
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -169,11 +157,11 @@ G_M26575_IG11: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=000
blr x3
; gcrRegs -[x0-x2 x19]
; gcr arg pop 0
- b G_M26575_IG14
+ b G_M26575_IG12
;; size=100 bbWeight=0 PerfScore 0.00
-G_M26575_IG12: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M26575_IG10: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V01 V02}
- add x0, fp, #24 // [V10 tmp3]
+ add x0, fp, #24 // [V09 tmp2]
mov w1, #1
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -181,7 +169,7 @@ G_M26575_IG12: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=000
ldr x2, [x2]
blr x2
; gcr arg pop 0
- ldp x0, x1, [fp, #0x10] // [V02 loc0], [V12 tmp5]
+ ldp x0, x1, [fp, #0x10] // [V02 loc0], [V11 tmp4]
; gcrRegs +[x0-x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -191,9 +179,9 @@ G_M26575_IG12: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=000
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- b G_M26575_IG14
+ b G_M26575_IG12
;; size=56 bbWeight=0 PerfScore 0.00
-G_M26575_IG13: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
+G_M26575_IG11: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
; GC ptr vars +{V01 V02}
ldr x0, [fp, #0x10] // [V02 loc0]
@@ -207,16 +195,16 @@ G_M26575_IG13: ; bbWeight=0, gcVars=0000000000000002 {V02}, gcrefRegs=000
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M26575_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adr x0, [G_M26575_IG09]
+G_M26575_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ adr x0, [G_M26575_IG07]
;; size=4 bbWeight=0 PerfScore 0.00
-G_M26575_IG15: ; bbWeight=0, funclet epilog, nogc, extend
+G_M26575_IG13: ; bbWeight=0, funclet epilog, nogc, extend
ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x30
...
+0 (0.00%) : 10096.dasm - System.Reflection.CustomAttributeTypedArgument:CanonicalizeValue(System.Object):System.Object (FullOpts)
@@ -7,8 +7,8 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 3.50) ref -> x19 class-hnd single-def <System.Object>
-; V01 loc0 [V01,T01] ( 3, 2.50) ref -> x0 class-hnd single-def <<unknown class>>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <System.Object>
+; V01 loc0 [V01,T01] ( 2, 1.50) ref -> x0 class-hnd single-def <<unknown class>>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 8
@@ -26,15 +26,14 @@ G_M50446_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M50446_IG05
+ cbnz x19, G_M50446_IG05
;; size=24 bbWeight=1 PerfScore 4.00
-G_M50446_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M50446_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M50446_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
@@ -42,7 +41,7 @@ G_M50446_IG04: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M50446_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x19]
+ ; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
libraries_tests.run.linux.arm64.Release.mch
-40 (-43.48%) : 4301.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
@@ -5,16 +5,15 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 17
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 17
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 5 ) ref -> x0 class-hnd single-def <System.Reflection.Assembly>
-; V01 loc0 [V01,T01] ( 2, 2 ) ref -> x0 class-hnd exact <System.Reflection.RuntimeAssembly>
-; V02 loc1 [V02,T02] ( 3, 0 ) ref -> x0 class-hnd exact single-def <System.Reflection.Emit.RuntimeAssemblyBuilder>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x0 class-hnd single-def <System.Reflection.Assembly>
+; V01 loc0 [V01,T01] ( 2, 2 ) ref -> x0 class-hnd exact single-def <System.Reflection.RuntimeAssembly>
+;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.Emit.RuntimeAssemblyBuilder>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.RuntimeAssembly>
-;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V04 tmp1 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -24,58 +23,41 @@ G_M8626_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=8 bbWeight=1 PerfScore 1.50
G_M8626_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
- cbz x0, G_M8626_IG05
- ldr x1, [x0]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x1, x2
- bne G_M8626_IG04
- ;; size=28 bbWeight=1 PerfScore 7.00
-G_M8626_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
- ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
-G_M8626_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+ cbz x0, G_M8626_IG04
mov x1, x0
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M8626_IG07
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8626_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=1 PerfScore 4.00
+G_M8626_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
+ ret lr
+ ;; size=8 bbWeight=1 PerfScore 2.00
+G_M8626_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0 PerfScore 0.00
-G_M8626_IG06: ; bbWeight=0, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
- ret lr
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M8626_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x0]
- ldr x0, [x0, #0x08]
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8626_IG08: ; bbWeight=0, epilog, nogc, extend
+G_M8626_IG05: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 8, PerfScore 10.50, instruction count 23, allocated bytes for code 92 (MethodHash=8387de4d) for method System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 7.50, instruction count 13, allocated bytes for code 52 (MethodHash=8387de4d) for method System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 3
+ Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,9 +65,6 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 2
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
-20 (-38.46%) : 3221.dasm - SharedTypes.ComInterfaces.MarshallingFails.IStringArrayMarshallingFailsImpl:get_StartingStrings():System.String
@@ -14,23 +14,18 @@ G_M3850_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M3850_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #229
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M3850_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=aaaef0f5) for method SharedTypes.ComInterfaces.MarshallingFails.IStringArrayMarshallingFailsImpl:get_StartingStrings():System.String[] (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=aaaef0f5) for method SharedTypes.ComInterfaces.MarshallingFails.IStringArrayMarshallingFailsImpl:get_StartingStrings():System.String[] (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 4661.dasm - System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M41143_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M41143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #1
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M41143_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=c8a55f48) for method System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=c8a55f48) for method System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-2.20%) : 93.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
@@ -74,19 +74,14 @@ G_M3749_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
str x0, [fp, #0x38] // [V16 tmp2]
ldr x0, [fp, #0x40] // [V15 tmp1]
cbnz x0, G_M3749_IG05
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #6
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
str x0, [fp, #0x38] // [V16 tmp2]
- ;; size=100 bbWeight=1 PerfScore 27.50
+ ;; size=80 bbWeight=1 PerfScore 24.50
G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
ldr x0, [fp, #0x38] // [V16 tmp2]
@@ -252,7 +247,7 @@ G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
str x0, [fp, #0x18] // [V20 tmp6]
ldr x0, [fp, #0x58] // [V11 loc9]
@@ -303,7 +298,7 @@ G_M3749_IG06: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-; Total bytes of code 908, prolog size 44, PerfScore 269.00, instruction count 227, allocated bytes for code 908 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
+; Total bytes of code 888, prolog size 44, PerfScore 266.00, instruction count 222, allocated bytes for code 888 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
; ============================================================
Unwind Info:
@@ -314,7 +309,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 227 (0x000e3) Actual length = 908 (0x00038c)
+ Function Length : 222 (0x000de) Actual length = 888 (0x000378)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.04%) : 8504.dasm - Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderTests:ObjWith_TypeConverter():this (Tier0)
@@ -62,7 +62,7 @@ G_M30063_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_BOX
+ bl CORINFO_HELP_UNBOX
; gcrRegs +[x0]
str x0, [fp, #0x10] // [V07 tmp4]
ldr x1, [fp, #0x10] // [V07 tmp4]
@@ -101,8 +101,7 @@ G_M30063_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #71
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -128,13 +127,13 @@ G_M30063_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- ;; size=352 bbWeight=1 PerfScore 97.50
+ ;; size=348 bbWeight=1 PerfScore 97.00
G_M30063_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x60
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 384, prolog size 20, PerfScore 105.00, instruction count 96, allocated bytes for code 384 (MethodHash=68028a90) for method Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderTests:ObjWith_TypeConverter():this (Tier0)
+; Total bytes of code 380, prolog size 20, PerfScore 104.50, instruction count 95, allocated bytes for code 380 (MethodHash=68028a90) for method Microsoft.Extensions.Configuration.Binder.Tests.ConfigurationBinderTests:ObjWith_TypeConverter():this (Tier0)
; ============================================================
Unwind Info:
@@ -145,7 +144,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 96 (0x00060) Actual length = 384 (0x000180)
+ Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+10.00%) : 1132.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable1[ubyte]](System.String,System.Nullable1[ubyte]):this (Tier0)
@@ -7,7 +7,7 @@
;
; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] this class-hnd <Xunit.TestFrameworkOptions>
; V01 arg1 [V01 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] class-hnd <System.String>
-; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XSF] addr-exposed <System.Nullable`1[ubyte]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XS] addr-exposed <System.Nullable`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
@@ -24,10 +24,14 @@ G_M26730_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
str x2, [fp, #0x28] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [fp, #0x28] // [V02 arg2]
- cbnz w0, G_M26730_IG04
- ldr x0, [fp, #0x38] // [V00 this]
+ add x1, fp, #40 // [V02 arg2]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_UNBOX_NULLABLE
; gcrRegs +[x0]
+ cbnz x0, G_M26730_IG04
+ ldr x0, [fp, #0x38] // [V00 this]
ldr x0, [x0, #0x08]
ldr x1, [fp, #0x30] // [V01 arg1]
; gcrRegs +[x1]
@@ -38,7 +42,7 @@ G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x2
; gcrRegs -[x0-x1]
- ;; size=44 bbWeight=1 PerfScore 18.50
+ ;; size=60 bbWeight=1 PerfScore 19.50
G_M26730_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
@@ -53,7 +57,7 @@ G_M26730_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_BOX_NULLABLE
+ bl CORINFO_HELP_UNBOX_NULLABLE
; gcrRegs +[x0]
str x0, [fp, #0x20] // [V04 tmp1]
ldr x2, [fp, #0x20] // [V04 tmp1]
@@ -74,7 +78,7 @@ G_M26730_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 16, PerfScore 53.50, instruction count 40, allocated bytes for code 160 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
+; Total bytes of code 176, prolog size 16, PerfScore 54.50, instruction count 44, allocated bytes for code 176 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
; ============================================================
Unwind Info:
@@ -85,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
-44 (-68.75%) : 733.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
@@ -13,11 +13,10 @@
;* V02 tmp2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform>
;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V05 tmp5 [V05,T02] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V05 tmp5 [V05,T01] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V06 tmp6 [V06 ] ( 0, 0 ) ref -> zero-ref "field V01.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V07 tmp7 [V07,T03] ( 0, 0 ) ref -> zero-ref single-def "field V02.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-; V08 cse0 [V08,T00] ( 2, 2 ) long -> x0 "CSE - aggressive"
-; V09 rat0 [V09,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V07 tmp7 [V07,T02] ( 0, 0 ) ref -> zero-ref single-def "field V02.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V08 cse0 [V08,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -25,30 +24,15 @@ G_M59074_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M59074_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M59074_IG05
- ;; size=32 bbWeight=1 PerfScore 7.00
-G_M59074_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59074_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=1 PerfScore 0.50
-G_M59074_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59074_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M59074_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #6
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M59074_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 8, PerfScore 11.00, instruction count 16, allocated bytes for code 64 (MethodHash=a765193d) for method ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=a765193d) for method ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +43,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 534.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -16,35 +16,19 @@ G_M52532_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M52532_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M52532_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M52532_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52532_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M52532_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M52532_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M52532_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #56
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M52532_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=5fc132cb) for method Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=5fc132cb) for method Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 770.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -16,35 +16,19 @@ G_M31334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M31334_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M31334_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M31334_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31334_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M31334_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M31334_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M31334_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #55
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M31334_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=58be8599) for method Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=58be8599) for method Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.27%) : 1002.dasm - System.Linq.Enumerable:ToDictionarySystem.Canon,System.Canon,System.__Canon:System.Collections.Generic.Dictionary`2System.Canon,System.Canon
@@ -16,7 +16,7 @@
; V05 loc0 [V05 ] ( 3, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc1 [V06,T13] ( 3, 5 ) ref -> x24 class-hnd exact single-def <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
; V07 loc2 [V07,T52] ( 3, 1.50) ref -> x24 class-hnd single-def <System.__Canon[]>
-; V08 loc3 [V08,T53] ( 3, 1.50) ref -> x24 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
+; V08 loc3 [V08,T56] ( 2, 1 ) ref -> x22 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
;* V09 loc4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.ReadOnlySpan`1[System.__Canon]>
; V10 loc5 [V10,T07] ( 7, 9 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>>
; V11 loc6 [V11,T06] ( 3, 12 ) ref -> x21 class-hnd <System.__Canon>
@@ -31,7 +31,7 @@
; V20 tmp8 [V20,T01] ( 2, 16 ) ref -> x25 class-hnd "non-inline candidate call" <System.__Canon>
;* V21 tmp9 [V21 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V22 tmp10 [V22 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V23 tmp11 [V23,T40] ( 3, 2 ) long -> x22 "spilling helperCall"
+; V23 tmp11 [V23,T40] ( 3, 2 ) long -> x24 "spilling helperCall"
; V24 tmp12 [V24,T41] ( 3, 2 ) long -> x25 "spilling helperCall"
;* V25 tmp13 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.Span`1[System.__Canon]>
;* V26 tmp14 [V26 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
@@ -72,7 +72,7 @@
; V61 rat13 [V61,T24] ( 3, 2.80) long -> x0 "spilling expr"
; V62 rat14 [V62,T34] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
; V63 rat15 [V63,T25] ( 3, 2.80) long -> x0 "spilling expr"
-; V64 rat16 [V64,T35] ( 3, 2.24) long -> x22 "fgMakeTemp is creating a new local variable"
+; V64 rat16 [V64,T35] ( 3, 2.24) long -> x24 "fgMakeTemp is creating a new local variable"
; V65 rat17 [V65,T26] ( 3, 2.80) long -> x0 "spilling expr"
; V66 rat18 [V66,T36] ( 3, 2.24) long -> x25 "fgMakeTemp is creating a new local variable"
; V67 rat19 [V67,T47] ( 3, 2 ) long -> x0 "runtime lookup"
@@ -83,9 +83,9 @@
; V72 rat24 [V72,T38] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
; V73 rat25 [V73,T29] ( 3, 2.80) long -> x0 "spilling expr"
; V74 rat26 [V74,T39] ( 3, 2.24) long -> x11 "fgMakeTemp is creating a new local variable"
-; V75 rat27 [V75,T56] ( 3, 1 ) long -> x23 "runtime lookup"
-; V76 rat28 [V76,T54] ( 3, 1.40) long -> x0 "spilling expr"
-; V77 rat29 [V77,T55] ( 3, 1.12) long -> x23 "fgMakeTemp is creating a new local variable"
+; V75 rat27 [V75,T55] ( 3, 1 ) long -> x23 "runtime lookup"
+; V76 rat28 [V76,T53] ( 3, 1.40) long -> x0 "spilling expr"
+; V77 rat29 [V77,T54] ( 3, 1.12) long -> x23 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -124,7 +124,7 @@ G_M36297_IG04: ; bbWeight=0.20, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.20 PerfScore 0.60
G_M36297_IG05: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
@@ -161,11 +161,11 @@ G_M36297_IG09: ; bbWeight=0.18, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG10: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
mov x21, x0
@@ -210,13 +210,13 @@ G_M36297_IG15: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG16: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x22
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
mov x24, x0
@@ -241,7 +241,7 @@ G_M36297_IG19: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x22, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -263,7 +263,7 @@ G_M36297_IG23: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x25, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -326,73 +326,71 @@ G_M36297_IG29: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG30: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x22
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[x1] +[x0]
+ bl CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[x1 x22] +[x0]
; gcr arg pop 0
- mov x24, x0
- ; gcrRegs +[x24]
- cbz x24, G_M36297_IG44
+ mov x22, x0
+ ; gcrRegs +[x22]
ldr x0, [x21, #0x38]
; gcrRegs -[x0]
ldr x1, [x0, #0x18]
cmp x1, #80
ble G_M36297_IG33
- ;; size=32 bbWeight=0.50 PerfScore 5.25
-G_M36297_IG31: ; bbWeight=0.40, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
- ldr x22, [x0, #0x50]
- cbz x22, G_M36297_IG33
+ ;; size=28 bbWeight=0.50 PerfScore 4.75
+G_M36297_IG31: ; bbWeight=0.40, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ ldr x24, [x0, #0x50]
+ cbz x24, G_M36297_IG33
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M36297_IG32: ; bbWeight=0.32, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG32: ; bbWeight=0.32, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
b G_M36297_IG34
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M36297_IG33: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG33: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
- mov x22, x0
+ mov x24, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG34: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG34: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21, #0x38]
ldr x1, [x0, #0x18]
cmp x1, #88
ble G_M36297_IG37
;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M36297_IG35: ; bbWeight=0.40, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG35: ; bbWeight=0.40, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x25, [x0, #0x58]
cbz x25, G_M36297_IG37
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M36297_IG36: ; bbWeight=0.32, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG36: ; bbWeight=0.32, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
b G_M36297_IG38
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M36297_IG37: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG37: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x25, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG38: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
- mov x0, x22
- mov x1, x24
+G_M36297_IG38: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ mov x0, x24
+ mov x1, x22
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.CollectionsMarshal:AsSpan[System.__Canon](System.Collections.Generic.List`1[System.__Canon]):System.Span`1[System.__Canon]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x24]
+ ; gcrRegs -[x1 x22]
; byrRegs +[x0]
; gcr arg pop 0
mov w2, w1
@@ -428,7 +426,7 @@ G_M36297_IG41: ; bbWeight=0.18, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG42: ; bbWeight=0.50, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=400000 {x22}, byref
@@ -477,11 +475,11 @@ G_M36297_IG47: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG48: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
mov x24, x0
@@ -513,7 +511,7 @@ G_M36297_IG51: ; bbWeight=0.18, gcrefRegs=1580000 {x19 x20 x22 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x11, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -556,7 +554,7 @@ G_M36297_IG57: ; bbWeight=0.09, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x23, x0
;; size=24 bbWeight=0.09 PerfScore 0.32
@@ -709,7 +707,7 @@ G_M36297_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1460, prolog size 52, PerfScore 319.10, instruction count 365, allocated bytes for code 1460 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 1456, prolog size 52, PerfScore 318.60, instruction count 364, allocated bytes for code 1456 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================
Unwind Info:
@@ -720,7 +718,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 344 (0x00158) Actual length = 1376 (0x000560)
+ Function Length : 343 (0x00157) Actual length = 1372 (0x00055c)
---- Epilog scopes ----
...
+0 (0.00%) : 514.dasm - Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -39,14 +39,13 @@ G_M47281_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M47281_IG05
+ cbnz x19, G_M47281_IG05
;; size=52 bbWeight=1 PerfScore 13.00
-G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -61,7 +60,7 @@ G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M47281_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1 x19] +[x0]
+ ; gcrRegs +[x0]
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
+0 (0.00%) : 604.dasm - Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -39,14 +39,13 @@ G_M51894_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M51894_IG05
+ cbnz x19, G_M51894_IG05
;; size=52 bbWeight=1 PerfScore 13.00
-G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -61,7 +60,7 @@ G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M51894_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1 x19] +[x0]
+ ; gcrRegs +[x0]
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
realworld.run.linux.arm64.checked.mch
-44 (-57.89%) : 2917.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M59575_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M59575_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M59575_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M59575_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59575_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M59575_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59575_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M59575_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M59575_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=75061748) for method FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=75061748) for method FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 3017.dasm - FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
@@ -15,35 +15,19 @@ G_M34240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M34240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M34240_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M34240_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M34240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M34240_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M34240_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M34240_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M34240_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=e8cf7a3f) for method FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=e8cf7a3f) for method FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 3073.dasm - FSComp.SR:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M13645_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M13645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M13645_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M13645_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M13645_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M13645_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M13645_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M13645_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=5d28cab2) for method FSComp.SR:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=5d28cab2) for method FSComp.SR:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.33%) : 5060.dasm - Microsoft.FSharp.Core.FSharpFunc2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[System.Canon,System.Canon],System.__Canon,int):int (FullOpts)
@@ -8,15 +8,15 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 5, 4.20) long -> x0 single-def
-; V01 arg0 [V01,T01] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]>
; V02 arg1 [V02,T03] ( 4, 3 ) ref -> x20 class-hnd single-def <System.__Canon>
; V03 arg2 [V03,T04] ( 4, 3 ) int -> x21 single-def
-; V04 loc0 [V04,T07] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V04 loc0 [V04,T08] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp2 [V08,T06] ( 2, 4 ) long -> x0 "argument with side effect"
-; V09 tmp3 [V09,T08] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V09 tmp3 [V09,T07] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V10 rat0 [V10,T05] ( 3, 4 ) long -> x0 "runtime lookup"
; V11 rat1 [V11,T02] ( 3, 5.60) long -> x2 "fgMakeTemp is creating a new local variable"
;
@@ -47,16 +47,16 @@ G_M27437_IG04: ; bbWeight=0.20, gcrefRegs=180000 {x19 x20}, byrefRegs=000
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=16 bbWeight=0.20 PerfScore 0.50
G_M27437_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M27437_IG08
+ cbz x19, G_M27437_IG08
;; size=12 bbWeight=1 PerfScore 2.50
G_M27437_IG06: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -74,23 +74,23 @@ G_M27437_IG07: ; bbWeight=0.50, epilog, nogc, extend
br x3
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27437_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1] +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M27437_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1]
+ mov x0, xzr
mov x1, x20
; gcrRegs +[x1]
- ldr x2, [x19]
+ mov x2, xzr
+ ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
- ; gcrRegs -[x1 x19-x20]
+ ; gcrRegs -[x1 x20] +[x0]
; gcr arg pop 0
mov w1, w21
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
- ;; size=40 bbWeight=0.50 PerfScore 10.25
+ ;; size=44 bbWeight=0.50 PerfScore 10.50
G_M27437_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -99,7 +99,7 @@ G_M27437_IG09: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 172, prolog size 32, PerfScore 37.45, instruction count 43, allocated bytes for code 172 (MethodHash=abbe94d2) for method Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
+; Total bytes of code 176, prolog size 32, PerfScore 37.70, instruction count 44, allocated bytes for code 176 (MethodHash=abbe94d2) for method Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -110,7 +110,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 43 (0x0002b) Actual length = 172 (0x0000ac)
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.78%) : 3555.dasm - Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
@@ -7,14 +7,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <FSharp.Compiler.AbstractIL.BinaryConstants+TableName>
; V02 arg2 [V02,T01] ( 4, 3 ) int -> x20 single-def
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T02] ( 3, 2 ) int -> x21 single-def "field V01.idx (fldOffset=0x0)" P-INDEP
-; V07 tmp2 [V07,T04] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V07 tmp2 [V07,T03] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -34,10 +34,10 @@ G_M49388_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M49388_IG05
+ cbz x19, G_M49388_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M49388_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -54,22 +54,22 @@ G_M49388_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x3
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0] +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0]
+ mov x0, xzr
mov w1, w21
- ldr x2, [x19]
+ mov x2, xzr
+ ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
- ; gcrRegs -[x19]
+ ; gcrRegs +[x0]
; gcr arg pop 0
mov w1, w20
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
- ;; size=40 bbWeight=0.50 PerfScore 10.25
+ ;; size=44 bbWeight=0.50 PerfScore 10.50
G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -78,7 +78,7 @@ G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 144, prolog size 28, PerfScore 29.25, instruction count 36, allocated bytes for code 144 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
+; Total bytes of code 148, prolog size 28, PerfScore 29.50, instruction count 37, allocated bytes for code 148 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -89,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+6.90%) : 2553.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> x19 this class-hnd single-def <System.Xml.XmlNode>
-; V01 loc0 [V01,T01] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V00 this [V00,T00] ( 6, 5 ) ref -> x19 this class-hnd single-def <System.Xml.XmlNode>
+; V01 loc0 [V01,T02] ( 2, 1.50) ref -> x1 class-hnd single-def <<unknown class>>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V04 tmp1 [V04,T01] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -28,15 +28,18 @@ G_M19732_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M19732_IG05
- ;; size=24 bbWeight=1 PerfScore 4.00
-G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
- mov x1, x19
+ mov x1, x0
; gcrRegs +[x1]
- ldr x2, [x0]
+ cbz x19, G_M19732_IG05
+ ;; size=28 bbWeight=1 PerfScore 4.50
+G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ldr x2, [x19]
ldr x2, [x2, #0x98]
ldr x2, [x2, #0x10]
;; size=16 bbWeight=0.50 PerfScore 4.75
@@ -46,21 +49,21 @@ G_M19732_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1]
- mov x0, x19
- ; gcrRegs +[x0]
- ldr x1, [x19]
+G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1 x19]
+ mov x0, xzr
+ mov x1, xzr
+ ldr x1, [x1]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x30]
blr x1
+ ; gcrRegs +[x0]
; gcr arg pop 0
- mov x1, x19
- ; gcrRegs +[x1]
+ mov x1, xzr
ldr x2, [x0]
ldr x2, [x2, #0x98]
ldr x2, [x2, #0x10]
- ;; size=36 bbWeight=0.50 PerfScore 10.00
+ ;; size=40 bbWeight=0.50 PerfScore 10.25
G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -68,7 +71,7 @@ G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 116, prolog size 16, PerfScore 25.75, instruction count 29, allocated bytes for code 116 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
+; Total bytes of code 124, prolog size 16, PerfScore 26.50, instruction count 31, allocated bytes for code 124 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
; ============================================================
Unwind Info:
@@ -79,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ 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)
smoke_tests.nativeaot.linux.arm64.checked.mch
-32 (-57.14%) : 3961.dasm - Internal.Reflection.Execution.AssemblyBinderImplementation:get_Instance():Internal.Reflection.Execution.AssemblyBinderImplementation (FullOpts)
@@ -15,31 +15,19 @@ G_M53179_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M53179_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0, #-0x08]
- cbnz x0, G_M53179_IG05
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M53179_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0]
+G_M53179_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
ldr x0, [x0, #0x08]
; gcrRegs +[x0]
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M53179_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[x0]
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M53179_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M53179_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- bl CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[x0]
- b G_M53179_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 15.50, instruction count 14, allocated bytes for code 56 (MethodHash=d9873044) for method Internal.Reflection.Execution.AssemblyBinderImplementation:get_Instance():Internal.Reflection.Execution.AssemblyBinderImplementation (FullOpts)
+; Total bytes of code 24, prolog size 8, PerfScore 7.50, instruction count 6, allocated bytes for code 24 (MethodHash=d9873044) for method Internal.Reflection.Execution.AssemblyBinderImplementation:get_Instance():Internal.Reflection.Execution.AssemblyBinderImplementation (FullOpts)
; ============================================================
Cfi Info:
-32 (-57.14%) : 6193.dasm - System.Text.Encoding:get_ASCII():System.Text.Encoding (FullOpts)
@@ -15,31 +15,19 @@ G_M1571_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M1571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0, #-0x08]
- cbnz x0, G_M1571_IG05
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M1571_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0]
+G_M1571_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
ldr x0, [x0, #0x08]
; gcrRegs +[x0]
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M1571_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[x0]
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M1571_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M1571_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- bl CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[x0]
- b G_M1571_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 15.50, instruction count 14, allocated bytes for code 56 (MethodHash=108df9dc) for method System.Text.Encoding:get_ASCII():System.Text.Encoding (FullOpts)
+; Total bytes of code 24, prolog size 8, PerfScore 7.50, instruction count 6, allocated bytes for code 24 (MethodHash=108df9dc) for method System.Text.Encoding:get_ASCII():System.Text.Encoding (FullOpts)
; ============================================================
Cfi Info:
-32 (-57.14%) : 9089.dasm - System.Threading.Tasks.Task:get_CompletedTask():System.Threading.Tasks.Task (FullOpts)
@@ -15,31 +15,19 @@ G_M58834_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M58834_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0, #-0x08]
- cbnz x0, G_M58834_IG05
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M58834_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0]
+G_M58834_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
ldr x0, [x0, #0x20]
; gcrRegs +[x0]
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M58834_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[x0]
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M58834_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M58834_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- bl CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[x0]
- b G_M58834_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 15.50, instruction count 14, allocated bytes for code 56 (MethodHash=daf41a2d) for method System.Threading.Tasks.Task:get_CompletedTask():System.Threading.Tasks.Task (FullOpts)
+; Total bytes of code 24, prolog size 8, PerfScore 7.50, instruction count 6, allocated bytes for code 24 (MethodHash=daf41a2d) for method System.Threading.Tasks.Task:get_CompletedTask():System.Threading.Tasks.Task (FullOpts)
; ============================================================
Cfi Info:
-20 (-2.81%) : 14442.dasm - System.Threading.LowLevelLifoSemaphore:Wait(int,ubyte):ubyte:this (FullOpts)
@@ -21,9 +21,9 @@
;* V11 loc8 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.LowLevelLifoSemaphoreBase+Counts>
;* V12 loc9 [V12 ] ( 0, 0 ) struct ( 8) zero-ref <System.Threading.LowLevelLifoSemaphoreBase+Counts>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V14 tmp1 [V14,T22] ( 3, 2 ) int -> x21
+; V14 tmp1 [V14,T21] ( 3, 2 ) int -> x21
;* V15 tmp2 [V15 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V16 tmp3 [V16,T24] ( 2, 1 ) int -> x25
+; V16 tmp3 [V16,T23] ( 2, 1 ) int -> x25
;* V17 tmp4 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp5 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp6 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -56,7 +56,7 @@
; V46 tmp33 [V46,T15] ( 2, 16 ) long -> x1 "Inlining Arg"
;* V47 tmp34 [V47 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.LowLevelLifoSemaphoreBase+Counts>
;* V48 tmp35 [V48 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.LowLevelLifoSemaphoreBase+Counts>
-; V49 tmp36 [V49,T23] ( 2, 2 ) int -> x0 "Single return block return value"
+; V49 tmp36 [V49,T22] ( 2, 2 ) int -> x0 "Single return block return value"
; V50 tmp37 [V50,T00] ( 30,185.50) long -> x22 "field V04._data (fldOffset=0x0)" P-INDEP
; V51 tmp38 [V51,T09] ( 6, 22.50) long -> x2 "field V07._data (fldOffset=0x0)" P-INDEP
;* V52 tmp39 [V52 ] ( 0, 0 ) long -> zero-ref "field V08._data (fldOffset=0x0)" P-INDEP
@@ -81,11 +81,10 @@
;* V71 tmp58 [V71 ] ( 0, 0 ) long -> zero-ref "field V48._data (fldOffset=0x0)" P-INDEP
; V72 cse0 [V72,T08] ( 4, 29 ) byref -> x23 hoist "CSE - aggressive"
; V73 cse1 [V73,T02] ( 24, 79.50) ref -> x1 multi-def "CSE - aggressive"
-; V74 rat0 [V74,T21] ( 3, 3 ) long -> x24 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 0
-G_M25772_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M25772_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x50]!
stp x19, x20, [sp, #0x10]
stp x21, x22, [sp, #0x20]
@@ -156,11 +155,11 @@ G_M25772_IG12: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
b G_M25772_IG16
;; size=8 bbWeight=2 PerfScore 3.00
G_M25772_IG13: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
- lsr x2, x22, #48
- uxtb w2, w2
- mov w0, #255
+ lsr x0, x22, #48
+ uxtb w0, w0
+ mov w1, #255
cmp w21, #0
- ccmp w2, w0, z, gt
+ ccmp w0, w1, z, gt
bge G_M25772_IG14
mov x0, #0xD1FFAB1E
add x2, x22, x0
@@ -199,7 +198,7 @@ G_M25772_IG17: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
b G_M25772_IG08
;; size=8 bbWeight=4 PerfScore 6.00
G_M25772_IG18: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
- cbnz w22, G_M25772_IG42
+ cbnz w22, G_M25772_IG41
;; size=4 bbWeight=1 PerfScore 1.00
G_M25772_IG19: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
lsr x0, x2, #32
@@ -217,7 +216,7 @@ G_M25772_IG20: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
bl <unknown method>
; gcrRegs -[x0 x19]
; gcr arg pop 0
- b G_M25772_IG44
+ b G_M25772_IG43
;; size=16 bbWeight=0.50 PerfScore 1.50
G_M25772_IG21: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
; gcrRegs +[x19]
@@ -234,22 +233,20 @@ G_M25772_IG22: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.00
G_M25772_IG23: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, gcvars, byref, isz
- adrp x24, [HIGH RELOC #0xD1FFAB1E]
- add x24, x24, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x24, #-0x08]
- cbnz x0, G_M25772_IG46
- ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M25772_IG24: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
- ldr w0, [x24, #0x04]
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
+ ; byrRegs +[x0]
+ ; gcr arg pop 0
+ ldr w0, [x0, #0x04]
+ ; byrRegs -[x0]
cmp w0, #1
cset x24, eq
mov w0, #10
cmp w24, #0
csel w25, w0, wzr, ne
cmp w25, w21
- bge G_M25772_IG32
- ;; size=32 bbWeight=0.50 PerfScore 3.50
-G_M25772_IG25: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+ bge G_M25772_IG31
+ ;; size=36 bbWeight=0.50 PerfScore 4.00
+G_M25772_IG24: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
mov w0, w25
mov w2, w24
mov w1, #10
@@ -257,12 +254,12 @@ G_M25772_IG25: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
; gcr arg pop 0
add w25, w25, #1
ldr x22, [x19, #0x98]
- cbz w22, G_M25772_IG31
+ cbz w22, G_M25772_IG30
;; size=28 bbWeight=4 PerfScore 28.00
-G_M25772_IG26: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
- cbnz w22, G_M25772_IG28
+G_M25772_IG25: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+ cbnz w22, G_M25772_IG27
;; size=4 bbWeight=16 PerfScore 16.00
-G_M25772_IG27: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
+G_M25772_IG26: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -272,13 +269,13 @@ G_M25772_IG27: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=16 bbWeight=8 PerfScore 20.00
-G_M25772_IG28: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG27: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
sub x26, x22, #1
lsr x0, x26, #48
uxtb w0, w0
- cbnz w0, G_M25772_IG30
+ cbnz w0, G_M25772_IG29
;; size=16 bbWeight=16 PerfScore 48.00
-G_M25772_IG29: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
+G_M25772_IG28: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -288,7 +285,7 @@ G_M25772_IG29: ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=16 bbWeight=8 PerfScore 20.00
-G_M25772_IG30: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG29: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
mov x0, #0xD1FFAB1E
add x26, x26, x0
mov x0, x23
@@ -296,24 +293,24 @@ G_M25772_IG30: ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=800000 {x2
mov x1, x22
casal x1, x26, [x0]
cmp x1, x22
- beq G_M25772_IG42
+ beq G_M25772_IG41
mov x22, x1
- cbnz w22, G_M25772_IG26
+ cbnz w22, G_M25772_IG25
;; size=36 bbWeight=16 PerfScore 128.00
-G_M25772_IG31: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG30: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
; byrRegs -[x0]
cmp w25, w21
- blt G_M25772_IG25
+ blt G_M25772_IG24
;; size=8 bbWeight=4 PerfScore 6.00
-G_M25772_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
+G_M25772_IG31: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
ldr x22, [x19, #0x98]
;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M25772_IG33: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG32: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
lsr x0, x22, #48
uxtb w0, w0
- cbnz w0, G_M25772_IG35
+ cbnz w0, G_M25772_IG34
;; size=12 bbWeight=4 PerfScore 10.00
-G_M25772_IG34: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
+G_M25772_IG33: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -323,13 +320,13 @@ G_M25772_IG34: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=16 bbWeight=2 PerfScore 5.00
-G_M25772_IG35: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG34: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
mov x0, #0xD1FFAB1E
add x21, x22, x0
- cbz w22, G_M25772_IG38
+ cbz w22, G_M25772_IG37
;; size=12 bbWeight=4 PerfScore 8.00
-G_M25772_IG36: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
- cbnz w21, G_M25772_IG37
+G_M25772_IG35: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+ cbnz w21, G_M25772_IG36
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -339,16 +336,16 @@ G_M25772_IG36: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=20 bbWeight=2 PerfScore 7.00
-G_M25772_IG37: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
+G_M25772_IG36: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
sub x21, x21, #1
- b G_M25772_IG40
+ b G_M25772_IG39
;; size=8 bbWeight=2 PerfScore 3.00
-G_M25772_IG38: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG37: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
lsr x0, x21, #32
uxth w0, w0
mov w1, #0xD1FFAB1E
cmp w0, w1
- blt G_M25772_IG39
+ blt G_M25772_IG38
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -358,29 +355,29 @@ G_M25772_IG38: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=36 bbWeight=2 PerfScore 12.00
-G_M25772_IG39: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
+G_M25772_IG38: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref
mov x0, #0xD1FFAB1E
add x21, x21, x0
;; size=8 bbWeight=2 PerfScore 2.00
-G_M25772_IG40: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
+G_M25772_IG39: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=800000 {x23}, byref, isz
mov x0, x23
; byrRegs +[x0]
mov x1, x22
casal x1, x21, [x0]
cmp x1, x22
- beq G_M25772_IG41
+ beq G_M25772_IG40
mov x22, x1
- b G_M25772_IG33
+ b G_M25772_IG32
;; size=28 bbWeight=4 PerfScore 28.00
-G_M25772_IG41: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25772_IG40: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0 x23]
cbz w22, G_M25772_IG20
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M25772_IG42: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25772_IG41: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M25772_IG43: ; bbWeight=0.50, epilog, nogc, extend
+G_M25772_IG42: ; bbWeight=0.50, epilog, nogc, extend
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
...
-28 (-1.43%) : 49.dasm - System.Globalization.TimeSpanParse:ProcessTerminalHMS_D(byref,ubyte,byref):ubyte (FullOpts)
@@ -10,7 +10,7 @@
; V00 arg0 [V00,T00] ( 58, 30.50) byref -> x19 single-def
; V01 arg1 [V01,T05] ( 3, 2.50) ubyte -> x1 single-def
; V02 arg2 [V02,T04] ( 5, 3.50) byref -> x20 single-def
-; V03 loc0 [V03,T22] ( 2, 1 ) ubyte -> x1
+; V03 loc0 [V03,T22] ( 2, 1 ) ubyte -> x0
; V04 loc1 [V04,T23] ( 2, 1 ) ubyte -> x21
; V05 loc2 [V05,T03] ( 14, 7 ) ubyte -> x22
; V06 loc3 [V06,T01] ( 37, 18.50) ubyte -> x23
@@ -82,11 +82,11 @@ G_M35317_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35317_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
ldr w0, [x19, #0x14]
cmp w0, #4
- bne G_M35317_IG127
+ bne G_M35317_IG126
;; size=12 bbWeight=1 PerfScore 4.50
G_M35317_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
uxtb w21, w1
- tbnz w21, #2, G_M35317_IG127
+ tbnz w21, #2, G_M35317_IG126
ldr w0, [x19, #0x18]
cmp w0, #3
beq G_M35317_IG04
@@ -100,67 +100,63 @@ G_M35317_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19
; gcrRegs -[x0-x1]
;; size=40 bbWeight=0.50 PerfScore 4.50
G_M35317_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
- and w1, w21, #1
+ and w0, w21, #1
tst w21, #2
cset x21, ne
mov w22, wzr
mov w23, wzr
mov w24, wzr
- mov w0, #2
- strb w0, [fp, #0xD1FFAB1E] // [V08 loc5]
+ mov w1, #2
+ strb w1, [fp, #0xD1FFAB1E] // [V08 loc5]
str wzr, [fp, #0xD1FFAB1E] // [V08 loc5+0x04]
str wzr, [fp, #0xD1FFAB1E] // [V08 loc5+0x08]
stp xzr, xzr, [fp, #0xD1FFAB1E]
str xzr, [fp, #0xD1FFAB1E] // [V09 loc6]
- cbz w1, G_M35317_IG69
- adrp x1, [HIGH RELOC #0xD1FFAB1E]
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1, #-0x08]
- cbnz x1, G_M35317_IG130
- ;; size=68 bbWeight=0.50 PerfScore 7.25
-G_M35317_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E]
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x25, [x1]
+ cbz w0, G_M35317_IG68
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
+ mov x25, x0
+ ; byrRegs +[x25]
add x26, x25, #8
; byrRegs +[x26]
- ;; size=16 bbWeight=0.50 PerfScore 2.25
-G_M35317_IG06: ; bbWeight=0.50, nogc, extend
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
+G_M35317_IG05: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x26]
stp q16, q17, [fp, #0xB0]
ldr x0, [x26, #0x20]
+ ; byrRegs -[x0]
str x0, [fp, #0xD0]
;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M35317_IG07: ; bbWeight=0.50, isz, extend
+G_M35317_IG06: ; bbWeight=0.50, isz, extend
add x1, fp, #176 // [V40 tmp30]
mov x0, x19
; byrRegs +[x0]
bl <unknown method>
- ; byrRegs -[x0] +[x25]
- cbz w0, G_M35317_IG14
+ ; byrRegs -[x0]
+ cbz w0, G_M35317_IG13
mov w22, #1
;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M35317_IG08: ; bbWeight=0.50, nogc, extend
+G_M35317_IG07: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [fp, #0xD1FFAB1E]
stp q16, q17, [fp, #0x90]
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M35317_IG09: ; bbWeight=0.50, nogc, extend
+G_M35317_IG08: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x70]
stp q16, q17, [fp, #0x70]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG10: ; bbWeight=0.50, nogc, extend
+G_M35317_IG09: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x90]
stp q16, q17, [fp, #0x50]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG11: ; bbWeight=0.50, nogc, extend
+G_M35317_IG10: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xB0]
stp q16, q17, [fp, #0x30]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG12: ; bbWeight=0.50, nogc, extend
+G_M35317_IG11: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [fp, #0xD1FFAB1E]
stp q16, q17, [fp, #0x10]
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M35317_IG13: ; bbWeight=0.50, extend
+G_M35317_IG12: ; bbWeight=0.50, extend
add x1, fp, #144 // [V41 tmp31]
add x2, fp, #112 // [V42 tmp32]
add x3, fp, #80 // [V43 tmp33]
@@ -174,45 +170,45 @@ G_M35317_IG13: ; bbWeight=0.50, extend
cset x1, eq
uxtb w24, w1
;; size=48 bbWeight=0.50 PerfScore 3.25
-G_M35317_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
- cbnz w23, G_M35317_IG25
+G_M35317_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
+ cbnz w23, G_M35317_IG24
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35317_IG15: ; bbWeight=0.50, nogc, extend
+G_M35317_IG14: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x26]
stp q16, q17, [fp, #0xB0]
ldr x0, [x26, #0x20]
str x0, [fp, #0xD0]
;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M35317_IG16: ; bbWeight=0.50, isz, extend
+G_M35317_IG15: ; bbWeight=0.50, isz, extend
add x1, fp, #176 // [V40 tmp30]
mov x0, x19
; byrRegs +[x0]
bl <unknown method>
; byrRegs -[x0]
- cbz w0, G_M35317_IG25
+ cbz w0, G_M35317_IG24
mov w22, #1
;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M35317_IG17: ; bbWeight=0.50, nogc, extend
+G_M35317_IG16: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x70]
stp q16, q17, [fp, #0x90]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG18: ; bbWeight=0.50, nogc, extend
+G_M35317_IG17: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x90]
stp q16, q17, [fp, #0x70]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG19: ; bbWeight=0.50, nogc, extend
+G_M35317_IG18: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xB0]
stp q16, q17, [fp, #0x50]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG20: ; bbWeight=0.50, nogc, extend
+G_M35317_IG19: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [fp, #0xD1FFAB1E]
stp q16, q17, [fp, #0x30]
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M35317_IG21: ; bbWeight=0.50, nogc, extend
+G_M35317_IG20: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [fp, #0xD1FFAB1E]
stp q16, q17, [fp, #0x10]
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M35317_IG22: ; bbWeight=0.50, isz, extend
+G_M35317_IG21: ; bbWeight=0.50, isz, extend
add x1, fp, #144 // [V41 tmp31]
add x2, fp, #112 // [V42 tmp32]
add x3, fp, #80 // [V43 tmp33]
@@ -222,56 +218,56 @@ G_M35317_IG22: ; bbWeight=0.50, isz, extend
mov w0, #1
bl <unknown method>
sxtw w23, w0
- cbnz w24, G_M35317_IG23
+ cbnz w24, G_M35317_IG22
cmp w23, #0
cset x1, eq
- b G_M35317_IG24
+ b G_M35317_IG23
;; size=52 bbWeight=0.50 PerfScore 4.00
-G_M35317_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
+G_M35317_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
mov w1, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35317_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
+G_M35317_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
uxtb w24, w1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35317_IG25: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
- cbnz w23, G_M35317_IG36
+G_M35317_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
+ cbnz w23, G_M35317_IG35
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35317_IG26: ; bbWeight=0.50, nogc, extend
+G_M35317_IG25: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x26]
stp q16, q17, [fp, #0xB0]
ldr x0, [x26, #0x20]
str x0, [fp, #0xD0]
;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M35317_IG27: ; bbWeight=0.50, isz, extend
+G_M35317_IG26: ; bbWeight=0.50, isz, extend
add x1, fp, #176 // [V40 tmp30]
mov x0, x19
; byrRegs +[x0]
bl <unknown method>
; byrRegs -[x0 x26]
- cbz w0, G_M35317_IG36
+ cbz w0, G_M35317_IG35
mov w22, #1
;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M35317_IG28: ; bbWeight=0.50, nogc, extend
+G_M35317_IG27: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [fp, #0xD1FFAB1E]
stp q16, q17, [fp, #0x90]
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M35317_IG29: ; bbWeight=0.50, nogc, extend
+G_M35317_IG28: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x70]
stp q16, q17, [fp, #0x70]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG30: ; bbWeight=0.50, nogc, extend
+G_M35317_IG29: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x90]
stp q16, q17, [fp, #0x50]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG31: ; bbWeight=0.50, nogc, extend
+G_M35317_IG30: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [fp, #0xD1FFAB1E]
stp q16, q17, [fp, #0x30]
;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M35317_IG32: ; bbWeight=0.50, nogc, extend
+G_M35317_IG31: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xB0]
stp q16, q17, [fp, #0x10]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35317_IG33: ; bbWeight=0.50, isz, extend
+G_M35317_IG32: ; bbWeight=0.50, isz, extend
add x1, fp, #144 // [V41 tmp31]
add x2, fp, #112 // [V42 tmp32]
add x3, fp, #80 // [V43 tmp33]
@@ -281,56 +277,56 @@ G_M35317_IG33: ; bbWeight=0.50, isz, extend
mov w0, #1
bl <unknown method>
sxtw w23, w0
- cbnz w24, G_M35317_IG34
+ cbnz w24, G_M35317_IG33
cmp w23, #0
cset x1, eq
- b G_M35317_IG35
+ b G_M35317_IG34
...
-28 (-1.39%) : 42.dasm - System.Globalization.TimeSpanParse:ProcessTerminalHMSF_D(byref,ubyte,byref):ubyte (FullOpts)
@@ -10,7 +10,7 @@
; V00 arg0 [V00,T00] ( 70, 36.50) byref -> x19 single-def
; V01 arg1 [V01,T05] ( 3, 2.50) ubyte -> x1 single-def
; V02 arg2 [V02,T04] ( 5, 3.50) byref -> x20 single-def
-; V03 loc0 [V03,T22] ( 2, 1 ) ubyte -> x1
+; V03 loc0 [V03,T22] ( 2, 1 ) ubyte -> x0
; V04 loc1 [V04,T23] ( 2, 1 ) ubyte -> x21
; V05 loc2 [V05 ] ( 17, 8.50) long -> [fp+0x1E8] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc3 [V06,T03] ( 14, 7 ) ubyte -> x22
@@ -83,11 +83,11 @@ G_M1843_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M1843_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
ldr w0, [x19, #0x14]
cmp w0, #5
- bne G_M1843_IG127
+ bne G_M1843_IG126
;; size=12 bbWeight=1 PerfScore 4.50
G_M1843_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
uxtb w21, w1
- tbnz w21, #2, G_M1843_IG127
+ tbnz w21, #2, G_M1843_IG126
ldr w0, [x19, #0x18]
cmp w0, #4
beq G_M1843_IG04
@@ -101,68 +101,64 @@ G_M1843_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x
; gcrRegs -[x0-x1]
;; size=40 bbWeight=0.50 PerfScore 4.50
G_M1843_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref, isz
- and w1, w21, #1
+ and w0, w21, #1
tst w21, #2
cset x21, ne
str xzr, [fp, #0xD1FFAB1E] // [V05 loc2]
mov w22, wzr
mov w23, wzr
mov w24, wzr
- mov w0, #2
- strb w0, [fp, #0xD1FFAB1E] // [V09 loc6]
+ mov w1, #2
+ strb w1, [fp, #0xD1FFAB1E] // [V09 loc6]
str wzr, [fp, #0xD1FFAB1E] // [V09 loc6+0x04]
str wzr, [fp, #0xD1FFAB1E] // [V09 loc6+0x08]
stp xzr, xzr, [fp, #0xD1FFAB1E]
- cbz w1, G_M1843_IG69
- adrp x1, [HIGH RELOC #0xD1FFAB1E]
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1, #-0x08]
- cbnz x1, G_M1843_IG130
- ;; size=68 bbWeight=0.50 PerfScore 7.25
-G_M1843_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=180000 {x19 x20}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E]
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x25, [x1]
+ cbz w0, G_M1843_IG68
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
+ mov x25, x0
+ ; byrRegs +[x25]
add x26, x25, #8
; byrRegs +[x26]
- ;; size=16 bbWeight=0.50 PerfScore 2.25
-G_M1843_IG06: ; bbWeight=0.50, nogc, extend
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
+G_M1843_IG05: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x26]
stp q16, q17, [fp, #0xB0]
ldr x0, [x26, #0x20]
+ ; byrRegs -[x0]
str x0, [fp, #0xD0]
;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M1843_IG07: ; bbWeight=0.50, isz, extend
+G_M1843_IG06: ; bbWeight=0.50, isz, extend
add x1, fp, #176 // [V40 tmp30]
mov x0, x19
; byrRegs +[x0]
bl <unknown method>
- ; byrRegs -[x0] +[x25]
- cbz w0, G_M1843_IG14
+ ; byrRegs -[x0]
+ cbz w0, G_M1843_IG13
mov w22, #1
;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M1843_IG08: ; bbWeight=0.50, nogc, extend
+G_M1843_IG07: ; bbWeight=0.50, nogc, extend
add x1, fp, #0xD1FFAB1E
ldp q16, q17, [x1, #0x90]
stp q16, q17, [fp, #0x90]
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M1843_IG09: ; bbWeight=0.50, nogc, extend
+G_M1843_IG08: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x70]
stp q16, q17, [fp, #0x70]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG10: ; bbWeight=0.50, nogc, extend
+G_M1843_IG09: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x90]
stp q16, q17, [fp, #0x50]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG11: ; bbWeight=0.50, nogc, extend
+G_M1843_IG10: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xB0]
stp q16, q17, [fp, #0x30]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG12: ; bbWeight=0.50, nogc, extend
+G_M1843_IG11: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xD0]
stp q16, q17, [fp, #0x10]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG13: ; bbWeight=0.50, extend
+G_M1843_IG12: ; bbWeight=0.50, extend
add x1, fp, #144 // [V41 tmp31]
add x2, fp, #112 // [V42 tmp32]
add x3, fp, #80 // [V43 tmp33]
@@ -176,46 +172,46 @@ G_M1843_IG13: ; bbWeight=0.50, extend
cset x1, eq
uxtb w24, w1
;; size=48 bbWeight=0.50 PerfScore 3.25
-G_M1843_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
- cbnz w23, G_M1843_IG25
+G_M1843_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
+ cbnz w23, G_M1843_IG24
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M1843_IG15: ; bbWeight=0.50, nogc, extend
+G_M1843_IG14: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x26]
stp q16, q17, [fp, #0xB0]
ldr x0, [x26, #0x20]
str x0, [fp, #0xD0]
;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M1843_IG16: ; bbWeight=0.50, isz, extend
+G_M1843_IG15: ; bbWeight=0.50, isz, extend
add x1, fp, #176 // [V40 tmp30]
mov x0, x19
; byrRegs +[x0]
bl <unknown method>
; byrRegs -[x0]
- cbz w0, G_M1843_IG25
+ cbz w0, G_M1843_IG24
mov w22, #1
;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M1843_IG17: ; bbWeight=0.50, nogc, extend
+G_M1843_IG16: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x70]
stp q16, q17, [fp, #0x90]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG18: ; bbWeight=0.50, nogc, extend
+G_M1843_IG17: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x90]
stp q16, q17, [fp, #0x70]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG19: ; bbWeight=0.50, nogc, extend
+G_M1843_IG18: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xB0]
stp q16, q17, [fp, #0x50]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG20: ; bbWeight=0.50, nogc, extend
+G_M1843_IG19: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xD0]
stp q16, q17, [fp, #0x30]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG21: ; bbWeight=0.50, nogc, extend
+G_M1843_IG20: ; bbWeight=0.50, nogc, extend
add x1, fp, #0xD1FFAB1E
ldp q16, q17, [x1, #0x10]
stp q16, q17, [fp, #0x10]
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M1843_IG22: ; bbWeight=0.50, isz, extend
+G_M1843_IG21: ; bbWeight=0.50, isz, extend
add x1, fp, #144 // [V41 tmp31]
add x2, fp, #112 // [V42 tmp32]
add x3, fp, #80 // [V43 tmp33]
@@ -225,57 +221,57 @@ G_M1843_IG22: ; bbWeight=0.50, isz, extend
mov w0, #1
bl <unknown method>
sxtw w23, w0
- cbnz w24, G_M1843_IG23
+ cbnz w24, G_M1843_IG22
cmp w23, #0
cset x1, eq
- b G_M1843_IG24
+ b G_M1843_IG23
;; size=52 bbWeight=0.50 PerfScore 4.00
-G_M1843_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
+G_M1843_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
mov w1, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M1843_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
+G_M1843_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref
uxtb w24, w1
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M1843_IG25: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
- cbnz w23, G_M1843_IG36
+G_M1843_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=6180000 {x19 x20 x25 x26}, byref, isz
+ cbnz w23, G_M1843_IG35
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M1843_IG26: ; bbWeight=0.50, nogc, extend
+G_M1843_IG25: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x26]
stp q16, q17, [fp, #0xB0]
ldr x0, [x26, #0x20]
str x0, [fp, #0xD0]
;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M1843_IG27: ; bbWeight=0.50, isz, extend
+G_M1843_IG26: ; bbWeight=0.50, isz, extend
add x1, fp, #176 // [V40 tmp30]
mov x0, x19
; byrRegs +[x0]
bl <unknown method>
; byrRegs -[x0 x26]
- cbz w0, G_M1843_IG36
+ cbz w0, G_M1843_IG35
mov w22, #1
;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M1843_IG28: ; bbWeight=0.50, nogc, extend
+G_M1843_IG27: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x70]
stp q16, q17, [fp, #0x90]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG29: ; bbWeight=0.50, nogc, extend
+G_M1843_IG28: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0x90]
stp q16, q17, [fp, #0x70]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG30: ; bbWeight=0.50, nogc, extend
+G_M1843_IG29: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xB0]
stp q16, q17, [fp, #0x50]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG31: ; bbWeight=0.50, nogc, extend
+G_M1843_IG30: ; bbWeight=0.50, nogc, extend
add x1, fp, #0xD1FFAB1E
ldp q16, q17, [x1, #0x30]
stp q16, q17, [fp, #0x30]
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M1843_IG32: ; bbWeight=0.50, nogc, extend
+G_M1843_IG31: ; bbWeight=0.50, nogc, extend
ldp q16, q17, [x19, #0xD0]
stp q16, q17, [fp, #0x10]
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M1843_IG33: ; bbWeight=0.50, isz, extend
+G_M1843_IG32: ; bbWeight=0.50, isz, extend
add x1, fp, #144 // [V41 tmp31]
add x2, fp, #112 // [V42 tmp32]
add x3, fp, #80 // [V43 tmp33]
@@ -285,57 +281,57 @@ G_M1843_IG33: ; bbWeight=0.50, isz, extend
mov w0, #1
bl <unknown method>
sxtw w23, w0
- cbnz w24, G_M1843_IG34
+ cbnz w24, G_M1843_IG33
cmp w23, #0
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.linux.arm64.checked.mch |
86 |
86 |
0 |
0 |
-6,996 |
+0 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
127 |
127 |
0 |
0 |
-4,220 |
+0 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
208 |
207 |
0 |
1 |
-10,432 |
+0 |
| coreclr_tests.run.linux.arm64.checked.mch |
16 |
16 |
0 |
0 |
-872 |
+0 |
| libraries.crossgen2.linux.arm64.checked.mch |
5 |
4 |
0 |
1 |
-24 |
+0 |
| libraries.pmi.linux.arm64.checked.mch |
199 |
198 |
0 |
1 |
-11,220 |
+0 |
| libraries_tests.run.linux.arm64.Release.mch |
107 |
106 |
1 |
0 |
-3,164 |
+16 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
75 |
73 |
0 |
2 |
-4,340 |
+0 |
| realworld.run.linux.arm64.checked.mch |
92 |
86 |
5 |
1 |
-12,596 |
+24 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
319 |
319 |
0 |
0 |
-11,304 |
+0 |
|
1,234 |
1,222 |
6 |
6 |
-65,168 |
+40 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.linux.arm64.checked.mch |
1,422 |
83 |
1,339 |
0 (0.00%) |
2,217 (54.94%) |
| benchmarks.run_pgo.linux.arm64.checked.mch |
8,414 |
6,782 |
1,632 |
0 (0.00%) |
5,857 (39.93%) |
| benchmarks.run_tiered.linux.arm64.checked.mch |
9,383 |
7,971 |
1,412 |
0 (0.00%) |
5,719 (36.90%) |
| coreclr_tests.run.linux.arm64.checked.mch |
341 |
3 |
338 |
0 (0.00%) |
783 (51.51%) |
| libraries.crossgen2.linux.arm64.checked.mch |
90,430 |
13 |
90,417 |
0 (0.00%) |
78,078 (46.23%) |
| libraries.pmi.linux.arm64.checked.mch |
7,149 |
0 |
7,149 |
0 (0.00%) |
2,574 (25.44%) |
| libraries_tests.run.linux.arm64.Release.mch |
4,253 |
3,651 |
602 |
0 (0.00%) |
4,138 (47.09%) |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
833 |
0 |
833 |
0 (0.00%) |
1,356 (52.46%) |
| realworld.run.linux.arm64.checked.mch |
1,767 |
61 |
1,706 |
1 (0.02%) |
3,162 (59.38%) |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
10,782 |
5 |
10,777 |
0 (0.00%) |
8,008 (42.03%) |
|
134,774 |
18,569 |
116,205 |
1 (0.00%) |
111,892 (44.67%) |
jit-analyze output
benchmarks.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 254108 (overridden on cmd)
Total bytes of diff: 247112 (overridden on cmd)
Total bytes of delta: -6996 (-2.75 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-700 : 3264.dasm (-87.94 % of base)
-544 : 743.dasm (-77.27 % of base)
-512 : 1597.dasm (-63.05 % of base)
-440 : 967.dasm (-24.02 % of base)
-272 : 9.dasm (-72.34 % of base)
-244 : 1590.dasm (-39.87 % of base)
-160 : 2987.dasm (-22.99 % of base)
-140 : 761.dasm (-17.41 % of base)
-120 : 2549.dasm (-60.00 % of base)
-112 : 810.dasm (-25.45 % of base)
-108 : 432.dasm (-33.75 % of base)
-104 : 1915.dasm (-18.44 % of base)
-96 : 1013.dasm (-26.97 % of base)
-96 : 2817.dasm (-20.17 % of base)
-88 : 2755.dasm (-17.19 % of base)
-80 : 2474.dasm (-12.90 % of base)
-76 : 2454.dasm (-21.84 % of base)
-72 : 252.dasm (-10.53 % of base)
-72 : 1344.dasm (-52.94 % of base)
-68 : 978.dasm (-48.57 % of base)
67 total files with Code Size differences (67 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-700 (-87.94 % of base) : 3264.dasm - Newtonsoft.Json.Linq.JValue:GetValueType(System.Nullable`1[int],System.Object):int (FullOpts)
-544 (-77.27 % of base) : 743.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-512 (-63.05 % of base) : 1597.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (FullOpts)
-440 (-24.02 % of base) : 967.dasm - BenchmarkDotNet.Environments.CoreRuntime:FromVersion(System.Version):BenchmarkDotNet.Environments.CoreRuntime (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-244 (-39.87 % of base) : 1590.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-160 (-22.99 % of base) : 2987.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-140 (-17.41 % of base) : 761.dasm - BenchmarkDotNet.Jobs.Job:.ctor(System.String):this (FullOpts)
-120 (-60.00 % of base) : 2549.dasm - System.Security.Cryptography.X509Certificates.X509CertificateCollection:OnValidate(System.Object):this (FullOpts)
-112 (-25.45 % of base) : 810.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-108 (-33.75 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-104 (-18.44 % of base) : 1915.dasm - System.Lazy`1[ubyte]:CreateValue():ubyte:this (FullOpts)
-96 (-26.97 % of base) : 1013.dasm - Perfolizer.Horology.WindowsClock:Initialize(byref):ubyte (FullOpts)
-96 (-20.17 % of base) : 2817.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-88 (-17.19 % of base) : 2755.dasm - System.Net.Sockets.SocketAsyncEventArgs:AcceptCompletionCallback(long,System.Memory`1[ubyte],int):this (FullOpts)
-80 (-12.90 % of base) : 2474.dasm - System.Net.Security.SslStreamCertificateContext:GetOcspResponseNoWaiting():ubyte[]:this (FullOpts)
-76 (-21.84 % of base) : 2454.dasm - System.Net.Security.TlsFrameHelper:DecodeString(System.ReadOnlySpan`1[ubyte]):System.String (FullOpts)
-72 (-52.94 % of base) : 1344.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-72 (-10.53 % of base) : 252.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-68 (-48.57 % of base) : 978.dasm - BenchmarkDotNet.Engines.EngineParameters:get_NeedsJitting():ubyte:this (FullOpts)
Top method improvements (percentages):
-700 (-87.94 % of base) : 3264.dasm - Newtonsoft.Json.Linq.JValue:GetValueType(System.Nullable`1[int],System.Object):int (FullOpts)
-544 (-77.27 % of base) : 743.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-44 (-73.33 % of base) : 1508.dasm - Interop+Ssl:.cctor() (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-512 (-63.05 % of base) : 1597.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (FullOpts)
-56 (-60.87 % of base) : 3161.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
-120 (-60.00 % of base) : 2549.dasm - System.Security.Cryptography.X509Certificates.X509CertificateCollection:OnValidate(System.Object):this (FullOpts)
-44 (-57.89 % of base) : 1010.dasm - BenchmarkDotNet.Environments.InfrastructureResolver+<>c:<.ctor>b__1_0():Perfolizer.Horology.IClock:this (FullOpts)
-44 (-57.89 % of base) : 4019.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:get_Empty():System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts)
-44 (-55.00 % of base) : 1036.dasm - Perfolizer.Horology.StopwatchClock:get_Frequency():Perfolizer.Horology.Frequency:this (FullOpts)
-56 (-53.85 % of base) : 875.dasm - BenchmarkDotNet.Toolchains.InProcess.Emit.InProcessEmitExecutor:.ctor(System.TimeSpan,ubyte):this (FullOpts)
-72 (-52.94 % of base) : 1344.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-68 (-48.57 % of base) : 978.dasm - BenchmarkDotNet.Engines.EngineParameters:get_NeedsJitting():ubyte:this (FullOpts)
-60 (-48.39 % of base) : 2192.dasm - System.IO.Directory:EnumerateFiles(System.String):System.Collections.Generic.IEnumerable`1[System.String] (FullOpts)
-60 (-46.88 % of base) : 924.dasm - Perfolizer.Horology.TimeInterval:ToString():System.String:this (FullOpts)
-44 (-44.00 % of base) : 3581.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualAnyBenchmark():ubyte:this (FullOpts)
-44 (-44.00 % of base) : 2015.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSsl:get_LegalKeySizes():System.Security.Cryptography.KeySizes[]:this (FullOpts)
-44 (-44.00 % of base) : 1214.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-60 (-42.86 % of base) : 2674.dasm - System.Net.Sockets.SocketErrorPal:GetSocketErrorForNativeError(int):int (FullOpts)
-44 (-42.31 % of base) : 3624.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
benchmarks.run_pgo.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 1175000 (overridden on cmd)
Total bytes of diff: 1170780 (overridden on cmd)
Total bytes of delta: -4220 (-0.36 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-300 : 14827.dasm (-11.70 % of base)
-216 : 7161.dasm (-21.95 % of base)
-180 : 9145.dasm (-16.07 % of base)
-116 : 9091.dasm (-8.10 % of base)
-104 : 14922.dasm (-19.26 % of base)
-88 : 3372.dasm (-40.74 % of base)
-88 : 3371.dasm (-40.74 % of base)
-80 : 15634.dasm (-35.71 % of base)
-80 : 5232.dasm (-31.25 % of base)
-80 : 8001.dasm (-54.05 % of base)
-64 : 6499.dasm (-12.60 % of base)
-60 : 21.dasm (-22.73 % of base)
-56 : 11697.dasm (-43.75 % of base)
-56 : 5062.dasm (-32.56 % of base)
-48 : 10998.dasm (-36.36 % of base)
-48 : 11053.dasm (-34.29 % of base)
-48 : 14495.dasm (-36.36 % of base)
-44 : 6524.dasm (-22.92 % of base)
-40 : 10353.dasm (-4.83 % of base)
-40 : 8842.dasm (-13.16 % of base)
78 total files with Code Size differences (78 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-300 (-11.70 % of base) : 14827.dasm - ProtoBuf.Meta.ValueMember:TryGetCoreSerializer(ProtoBuf.Meta.RuntimeTypeModel,int,int,System.Type,byref,ubyte,ubyte,ubyte,ubyte):ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode (Tier0)
-216 (-21.95 % of base) : 7161.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier0)
-180 (-16.07 % of base) : 9145.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-116 (-8.10 % of base) : 9091.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-104 (-19.26 % of base) : 14922.dasm - ProtoBuf.Internal.TypeCompatibilityHelper:GetModuleCompatibilityLevel(System.Reflection.Module):int (Tier0)
-88 (-40.74 % of base) : 3372.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 3371.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-80 (-31.25 % of base) : 5232.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-80 (-35.71 % of base) : 15634.dasm - System.Net.SocketAddress:.cctor() (Tier0)
-80 (-54.05 % of base) : 8001.dasm - System.Type:op_Equality(System.Type,System.Type):ubyte (Tier1)
-64 (-12.60 % of base) : 6499.dasm - System.Threading.TimerQueueTimer:Change(uint,uint):ubyte:this (Tier0)
-60 (-22.73 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-56 (-43.75 % of base) : 11697.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-56 (-32.56 % of base) : 5062.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-48 (-34.29 % of base) : 11053.dasm - System.Numerics.Tests.Perf_Vector4:DotBenchmark():float:this (Tier0)
-48 (-36.36 % of base) : 10998.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:EqualsAnyBenchmark():ubyte:this (Tier0)
-48 (-36.36 % of base) : 14495.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-44 (-22.92 % of base) : 6524.dasm - System.Threading.Thread+StartHelper:Run():this (Tier0)
-40 (-13.16 % of base) : 8842.dasm - System.IO.Compression.Inflater:DeallocateInputBufferHandle():this (Tier0)
-40 (-4.83 % of base) : 10353.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (Tier0)
Top method improvements (percentages):
-80 (-54.05 % of base) : 8001.dasm - System.Type:op_Equality(System.Type,System.Type):ubyte (Tier1)
-56 (-43.75 % of base) : 11697.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-88 (-40.74 % of base) : 3372.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 3371.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-38.46 % of base) : 5101.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:get_Default():MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext (Tier0)
-20 (-38.46 % of base) : 7428.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-20 (-38.46 % of base) : 7789.dasm - Microsoft.Extensions.Logging.NullScope:get_Instance():Microsoft.Extensions.Logging.NullScope (Tier0)
-20 (-38.46 % of base) : 1511.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
-20 (-38.46 % of base) : 69.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 10702.dasm - System.IO.Pipelines.PipeScheduler:get_ThreadPool():System.IO.Pipelines.PipeScheduler (Tier0)
-20 (-38.46 % of base) : 2778.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-38.46 % of base) : 10453.dasm - System.Reflection.Metadata.MetadataUpdater:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 2284.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 12533.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (Tier0)
-20 (-38.46 % of base) : 10297.dasm - System.Runtime.Serialization.SerializationInfo:get_AsyncDeserializationInProgress():System.Threading.AsyncLocal`1[ubyte] (Tier0)
-20 (-38.46 % of base) : 3725.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-38.46 % of base) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
-20 (-38.46 % of base) : 30.dasm - System.StringComparer:get_OrdinalIgnoreCase():System.StringComparer (Tier0)
-20 (-38.46 % of base) : 649.dasm - System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
-20 (-38.46 % of base) : 2913.dasm - System.Text.Encoding:get_BigEndianUnicode():System.Text.Encoding (Tier0)
benchmarks.run_tiered.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 1217436 (overridden on cmd)
Total bytes of diff: 1207004 (overridden on cmd)
Total bytes of delta: -10432 (-0.86 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1900 : 4811.dasm (-29.86 % of base)
-544 : 5303.dasm (-77.27 % of base)
-468 : 12256.dasm (-60.94 % of base)
-300 : 15340.dasm (-11.70 % of base)
-296 : 13174.dasm (-69.81 % of base)
-216 : 10696.dasm (-21.95 % of base)
-196 : 10894.dasm (-24.02 % of base)
-180 : 9021.dasm (-16.07 % of base)
-160 : 12280.dasm (-22.99 % of base)
-144 : 6886.dasm (-16.74 % of base)
-136 : 12262.dasm (-43.04 % of base)
-136 : 12263.dasm (-43.59 % of base)
-136 : 12274.dasm (-54.84 % of base)
-128 : 12273.dasm (-55.17 % of base)
-120 : 11921.dasm (-8.80 % of base)
-116 : 8981.dasm (-8.10 % of base)
-116 : 6143.dasm (-24.58 % of base)
-112 : 5395.dasm (-25.45 % of base)
-88 : 3077.dasm (-40.74 % of base)
-88 : 3078.dasm (-40.74 % of base)
74 total files with Code Size differences (74 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-1900 (-29.86 % of base) : 4811.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-544 (-77.27 % of base) : 5303.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-468 (-60.94 % of base) : 12256.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (Tier1)
-300 (-11.70 % of base) : 15340.dasm - ProtoBuf.Meta.ValueMember:TryGetCoreSerializer(ProtoBuf.Meta.RuntimeTypeModel,int,int,System.Type,byref,ubyte,ubyte,ubyte,ubyte):ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode (Tier0)
-296 (-69.81 % of base) : 13174.dasm - System.Linq.Enumerable:Where[double](System.Collections.Generic.IEnumerable`1[double],System.Func`2[double,ubyte]):System.Collections.Generic.IEnumerable`1[double] (Tier1)
-216 (-21.95 % of base) : 10696.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier0)
-196 (-24.02 % of base) : 10894.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreatePropertyGetter(System.Reflection.PropertyInfo,System.Type):System.Reflection.Emit.DynamicMethod (Tier0)
-180 (-16.07 % of base) : 9021.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-160 (-22.99 % of base) : 12280.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-144 (-16.74 % of base) : 6886.dasm - System.Net.Security.SslConnectionInfo:UpdateSslConnectionInfo(Microsoft.Win32.SafeHandles.SafeSslHandle):this (Tier0)
-136 (-43.04 % of base) : 12262.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:GetResult():int:this (Tier1)
-136 (-54.84 % of base) : 12274.dasm - System.Threading.Tasks.ValueTask`1[int]:get_IsCompleted():ubyte:this (Tier1)
-136 (-43.59 % of base) : 12263.dasm - System.Threading.Tasks.ValueTask`1[int]:get_Result():int:this (Tier1)
-128 (-55.17 % of base) : 12273.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:get_IsCompleted():ubyte:this (Tier1)
-120 (-8.80 % of base) : 11921.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTimeIso(Newtonsoft.Json.Utilities.StringReference,int,byref):ubyte (Tier0)
-116 (-24.58 % of base) : 6143.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:GetCollections():System.Tuple`2[Microsoft.Win32.SafeHandles.SafeX509StackHandle,Microsoft.Win32.SafeHandles.SafeX509StackHandle] (Tier0)
-116 (-8.10 % of base) : 8981.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-112 (-25.45 % of base) : 5395.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-88 (-40.74 % of base) : 3078.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 3077.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
Top method improvements (percentages):
-544 (-77.27 % of base) : 5303.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-296 (-69.81 % of base) : 13174.dasm - System.Linq.Enumerable:Where[double](System.Collections.Generic.IEnumerable`1[double],System.Func`2[double,ubyte]):System.Collections.Generic.IEnumerable`1[double] (Tier1)
-468 (-60.94 % of base) : 12256.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (Tier1)
-44 (-57.89 % of base) : 438.dasm - System.Globalization.GlobalizationMode:get_Invariant():ubyte (Tier1)
-44 (-57.89 % of base) : 439.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier1)
-128 (-55.17 % of base) : 12273.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:get_IsCompleted():ubyte:this (Tier1)
-136 (-54.84 % of base) : 12274.dasm - System.Threading.Tasks.ValueTask`1[int]:get_IsCompleted():ubyte:this (Tier1)
-80 (-47.62 % of base) : 12223.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
-56 (-43.75 % of base) : 14724.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-136 (-43.59 % of base) : 12263.dasm - System.Threading.Tasks.ValueTask`1[int]:get_Result():int:this (Tier1)
-136 (-43.04 % of base) : 12262.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:GetResult():int:this (Tier1)
-88 (-40.74 % of base) : 3078.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 3077.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-38.46 % of base) : 3722.dasm - Internal.Cryptography.Helpers:get_HasSymmetricEncryption():ubyte (Tier0)
-20 (-38.46 % of base) : 1318.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
-20 (-38.46 % of base) : 12780.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:get_Instance():Newtonsoft.Json.Utilities.ReflectionDelegateFactory (Tier0)
-20 (-38.46 % of base) : 12848.dasm - System.Collections.Generic.ReferenceEqualityComparer:get_Instance():System.Collections.Generic.ReferenceEqualityComparer (Tier0)
-20 (-38.46 % of base) : 4621.dasm - System.Diagnostics.DistributedContextPropagator:get_Current():System.Diagnostics.DistributedContextPropagator (Tier0)
-20 (-38.46 % of base) : 4973.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 67.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
coreclr_tests.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 85076 (overridden on cmd)
Total bytes of diff: 84204 (overridden on cmd)
Total bytes of delta: -872 (-1.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-200 : 61.dasm (-79.37 % of base)
-100 : 14.dasm (-26.60 % of base)
-52 : 76.dasm (-46.43 % of base)
-44 : 341.dasm (-68.75 % of base)
-44 : 393.dasm (-18.64 % of base)
-44 : 493.dasm (-39.29 % of base)
-44 : 722.dasm (-52.38 % of base)
-44 : 16.dasm (-35.48 % of base)
-44 : 461.dasm (-25.00 % of base)
-44 : 484.dasm (-15.49 % of base)
-44 : 8.dasm (-42.31 % of base)
-40 : 25.dasm (-11.49 % of base)
-40 : 390.dasm (-6.85 % of base)
-36 : 737.dasm (-7.76 % of base)
-36 : 703.dasm (-25.00 % of base)
-16 : 510.dasm (-22.22 % of base)
16 total files with Code Size differences (16 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-200 (-79.37 % of base) : 61.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-100 (-26.60 % of base) : 14.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-52 (-46.43 % of base) : 76.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
-44 (-15.49 % of base) : 484.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
-44 (-52.38 % of base) : 722.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
-44 (-42.31 % of base) : 8.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-44 (-35.48 % of base) : 16.dasm - System.ConsolePal:GetConsoleEncoding():System.Text.Encoding (FullOpts)
-44 (-18.64 % of base) : 393.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (FullOpts)
-44 (-25.00 % of base) : 461.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAsyncSuccess(int,int):this (FullOpts)
-44 (-39.29 % of base) : 493.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-44 (-68.75 % of base) : 341.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
-40 (-6.85 % of base) : 390.dasm - Microsoft.Win32.SafeHandles.SafePipeHandle:CreatePipeSocket(ubyte):System.Net.Sockets.Socket:this (FullOpts)
-40 (-11.49 % of base) : 25.dasm - System.ConsolePal:WriteFromConsoleStream(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlySpan`1[ubyte]) (FullOpts)
-36 (-7.76 % of base) : 737.dasm - Program:TestEntryPoint():int (FullOpts)
-36 (-25.00 % of base) : 703.dasm - Test_negativegenerics:TestEntryPoint():int (FullOpts)
-16 (-22.22 % of base) : 510.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
Top method improvements (percentages):
-200 (-79.37 % of base) : 61.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-44 (-68.75 % of base) : 341.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
-44 (-52.38 % of base) : 722.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
-52 (-46.43 % of base) : 76.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
-44 (-42.31 % of base) : 8.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-44 (-39.29 % of base) : 493.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-44 (-35.48 % of base) : 16.dasm - System.ConsolePal:GetConsoleEncoding():System.Text.Encoding (FullOpts)
-100 (-26.60 % of base) : 14.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-44 (-25.00 % of base) : 461.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAsyncSuccess(int,int):this (FullOpts)
-36 (-25.00 % of base) : 703.dasm - Test_negativegenerics:TestEntryPoint():int (FullOpts)
-16 (-22.22 % of base) : 510.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
-44 (-18.64 % of base) : 393.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (FullOpts)
-44 (-15.49 % of base) : 484.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
-40 (-11.49 % of base) : 25.dasm - System.ConsolePal:WriteFromConsoleStream(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlySpan`1[ubyte]) (FullOpts)
-36 (-7.76 % of base) : 737.dasm - Program:TestEntryPoint():int (FullOpts)
-40 (-6.85 % of base) : 390.dasm - Microsoft.Win32.SafeHandles.SafePipeHandle:CreatePipeSocket(ubyte):System.Net.Sockets.Socket:this (FullOpts)
16 total methods with Code Size differences (16 improved, 0 regressed).
libraries.crossgen2.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 9628520 (overridden on cmd)
Total bytes of diff: 9628496 (overridden on cmd)
Total bytes of delta: -24 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-12 : 140.dasm (-5.88 % of base)
-4 : 3099.dasm (-2.50 % of base)
-4 : 144.dasm (-4.00 % of base)
-4 : 164390.dasm (-1.61 % of base)
4 total files with Code Size differences (4 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-12 (-5.88 % of base) : 140.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-4 (-1.61 % of base) : 164390.dasm - Microsoft.Build.Framework.FileClassifier:IsNonModifiable(System.String):ubyte:this (FullOpts)
-4 (-2.50 % of base) : 3099.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-4 (-4.00 % of base) : 144.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
Top method improvements (percentages):
-12 (-5.88 % of base) : 140.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-4 (-4.00 % of base) : 144.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
-4 (-2.50 % of base) : 3099.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-4 (-1.61 % of base) : 164390.dasm - Microsoft.Build.Framework.FileClassifier:IsNonModifiable(System.String):ubyte:this (FullOpts)
4 total methods with Code Size differences (4 improved, 0 regressed).
libraries.pmi.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 479152 (overridden on cmd)
Total bytes of diff: 467932 (overridden on cmd)
Total bytes of delta: -11220 (-2.34 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-544 : 5419.dasm (-61.82 % of base)
-276 : 9992.dasm (-33.99 % of base)
-268 : 9844.dasm (-29.52 % of base)
-268 : 9996.dasm (-34.90 % of base)
-264 : 9845.dasm (-29.20 % of base)
-232 : 5197.dasm (-30.53 % of base)
-204 : 9839.dasm (-34.93 % of base)
-204 : 9846.dasm (-34.93 % of base)
-132 : 5184.dasm (-25.58 % of base)
-104 : 1458.dasm (-18.44 % of base)
-104 : 1475.dasm (-18.44 % of base)
-100 : 20.dasm (-26.60 % of base)
-96 : 1485.dasm (-17.02 % of base)
-96 : 1491.dasm (-16.00 % of base)
-92 : 5377.dasm (-38.98 % of base)
-92 : 5378.dasm (-41.07 % of base)
-92 : 5379.dasm (-40.35 % of base)
-92 : 5394.dasm (-27.06 % of base)
-92 : 9849.dasm (-30.67 % of base)
-92 : 9850.dasm (-27.71 % of base)
79 total files with Code Size differences (79 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-544 (-61.82 % of base) : 5419.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[ubyte]:SignalCompletion():this (FullOpts)
-276 (-33.99 % of base) : 9992.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-268 (-29.52 % of base) : 9844.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[ubyte]:OnCompleted(System.Action):this (FullOpts)
-268 (-34.90 % of base) : 9996.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[ubyte]:UnsafeOnCompleted(System.Action):this (FullOpts)
-264 (-29.20 % of base) : 9845.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[ubyte]:UnsafeOnCompleted(System.Action):this (FullOpts)
-232 (-30.53 % of base) : 5197.dasm - System.Threading.Tasks.TaskAsyncEnumerableExtensions+<ToBlockingEnumerable>d__3`1[ubyte]:<>m__Finally1():this (FullOpts)
-204 (-34.93 % of base) : 9846.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[ubyte]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-204 (-34.93 % of base) : 9839.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-132 (-25.58 % of base) : 5184.dasm - System.Threading.Tasks.UnwrapPromise`1[ubyte]:ProcessCompletedOuterTask(System.Threading.Tasks.Task):this (FullOpts)
-104 (-18.44 % of base) : 1475.dasm - System.Lazy`1[short]:CreateValue():short:this (FullOpts)
-104 (-18.44 % of base) : 1458.dasm - System.Lazy`1[ubyte]:CreateValue():ubyte:this (FullOpts)
-100 (-26.60 % of base) : 20.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-96 (-17.02 % of base) : 1485.dasm - System.Lazy`1[double]:CreateValue():double:this (FullOpts)
-96 (-16.00 % of base) : 1491.dasm - System.Lazy`1[System.Numerics.Vector`1[float]]:CreateValue():System.Numerics.Vector`1[float]:this (FullOpts)
-92 (-30.67 % of base) : 9849.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[double]:GetResult():double:this (FullOpts)
-92 (-27.71 % of base) : 9850.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[System.Numerics.Vector`1[float]]:GetResult():System.Numerics.Vector`1[float]:this (FullOpts)
-92 (-27.06 % of base) : 5394.dasm - System.Threading.Tasks.ValueTask`1[System.Numerics.Vector`1[float]]:get_Result():System.Numerics.Vector`1[float]:this (FullOpts)
-92 (-40.35 % of base) : 5379.dasm - System.Threading.Tasks.ValueTask`1[ubyte]:get_IsCanceled():ubyte:this (FullOpts)
-92 (-38.98 % of base) : 5377.dasm - System.Threading.Tasks.ValueTask`1[ubyte]:get_IsCompletedSuccessfully():ubyte:this (FullOpts)
-92 (-41.07 % of base) : 5378.dasm - System.Threading.Tasks.ValueTask`1[ubyte]:get_IsFaulted():ubyte:this (FullOpts)
Top method improvements (percentages):
-60 (-75.00 % of base) : 9704.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:set_VarType(int):this (FullOpts)
-56 (-70.00 % of base) : 9705.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:GetRawDataRef[ubyte]():byref:this (FullOpts)
-52 (-61.90 % of base) : 5706.dasm - System.Runtime.MemoryFailPoint:AddToLastKnownFreeAddressSpace(long) (FullOpts)
-544 (-61.82 % of base) : 5419.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[ubyte]:SignalCompletion():this (FullOpts)
-48 (-60.00 % of base) : 5705.dasm - System.Runtime.MemoryFailPoint:get_LastKnownFreeAddressSpace():long (FullOpts)
-48 (-60.00 % of base) : 5707.dasm - System.Runtime.MemoryFailPoint:get_LastTimeCheckingAddressSpace():long (FullOpts)
-64 (-59.26 % of base) : 9687.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:Create[double](double):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-52 (-59.09 % of base) : 5708.dasm - System.Runtime.MemoryFailPoint:AddMemoryFailPointReservation(long):long (FullOpts)
-68 (-58.62 % of base) : 5579.dasm - System.Text.Unicode.TextSegmentationUtility:GetLengthOfFirstUtf16ExtendedGraphemeCluster(System.ReadOnlySpan`1[ushort]):int (FullOpts)
-44 (-57.89 % of base) : 10312.dasm - System.IO.EnumerationOptions:get_Default():System.IO.EnumerationOptions (FullOpts)
-44 (-57.89 % of base) : 4580.dasm - System.Threading.Lock:get_ContentionCount():long (FullOpts)
-44 (-57.89 % of base) : 5248.dasm - System.Threading.Tasks.AwaitTaskContinuation:GetInvokeActionCallback():System.Threading.ContextCallback (FullOpts)
-60 (-57.69 % of base) : 9686.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:Create[int](int):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-60 (-57.69 % of base) : 9689.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:Create[long](long):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-60 (-57.69 % of base) : 9685.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:Create[short](short):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-60 (-57.69 % of base) : 9684.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:Create[ubyte](ubyte):System.Runtime.InteropServices.Marshalling.ComVariant (FullOpts)
-60 (-51.72 % of base) : 3769.dasm - System.Numerics.BitOperations+Crc32Fallback:Crc32C(uint,ubyte):uint (FullOpts)
-52 (-46.43 % of base) : 4493.dasm - System.Threading.ThreadPool:ReportThreadStatus(ubyte) (FullOpts)
-44 (-45.83 % of base) : 4492.dasm - System.Threading.ThreadPool:NotifyWorkItemProgress() (FullOpts)
-64 (-43.24 % of base) : 3770.dasm - System.Numerics.BitOperations+Crc32Fallback:Crc32C(uint,ushort):uint (FullOpts)
libraries_tests.run.linux.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 705512 (overridden on cmd)
Total bytes of diff: 702364 (overridden on cmd)
Total bytes of delta: -3148 (-0.45 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 1132.dasm (10.00 % of base)
Top file improvements (bytes):
-212 : 4409.dasm (-19.49 % of base)
-92 : 5769.dasm (-21.70 % of base)
-72 : 7784.dasm (-22.78 % of base)
-68 : 2564.dasm (-23.29 % of base)
-68 : 1226.dasm (-10.69 % of base)
-64 : 2799.dasm (-16.49 % of base)
-64 : 2816.dasm (-16.49 % of base)
-64 : 2909.dasm (-12.21 % of base)
-64 : 2983.dasm (-17.98 % of base)
-64 : 2994.dasm (-16.49 % of base)
-60 : 2864.dasm (-39.47 % of base)
-60 : 2902.dasm (-39.47 % of base)
-60 : 3060.dasm (-39.47 % of base)
-52 : 3682.dasm (-15.66 % of base)
-52 : 946.dasm (-18.06 % of base)
-44 : 2592.dasm (-26.19 % of base)
-44 : 2597.dasm (-26.19 % of base)
-40 : 1126.dasm (-10.00 % of base)
-40 : 298.dasm (-6.99 % of base)
-40 : 4301.dasm (-43.48 % of base)
63 total files with Code Size differences (62 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
16 (10.00 % of base) : 1132.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
Top method improvements (bytes):
-212 (-19.49 % of base) : 4409.dasm - System.Diagnostics.ProcessWaitState:AddRef(int,ubyte,ubyte):System.Diagnostics.ProcessWaitState (Tier0)
-92 (-21.70 % of base) : 5769.dasm - NativeExports.Handles:AllocateHandleCore():long (Tier0)
-72 (-22.78 % of base) : 7784.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-68 (-23.29 % of base) : 2564.dasm - NativeExports.ComInterfaces+MyComWrapper:get_MyObjectComInterfaceEntries():ulong (Tier0)
-68 (-10.69 % of base) : 1226.dasm - Xunit.Sdk.SerializationHelper:GetType(System.String,System.String):System.Type (Tier0)
-64 (-17.98 % of base) : 2983.dasm - NativeExports.ComInterfaceGenerator.ArrayMarshalling+MyComWrapper:get_GetIntArrayVTable():ulong (Tier0)
-64 (-16.49 % of base) : 2994.dasm - NativeExports.ComInterfaceGenerator.GetAndSetInt+MyComWrapper:get_s_comInterface1VTable():ulong (Tier0)
-64 (-16.49 % of base) : 2816.dasm - NativeExports.ComInterfaceGenerator.GetPoint+ImplementingObject+ABI:get_VTable():ulong (Tier0)
-64 (-16.49 % of base) : 2799.dasm - NativeExports.ComInterfaceGenerator.StringMarshalling+MyComWrapper:get_S_Utf8VTable():ulong (Tier0)
-64 (-12.21 % of base) : 2909.dasm - NativeExports.ComInterfaceGenerator.StringMarshallingOverride+MyComWrapper:get_S_DerivedVTable():ulong (Tier0)
-60 (-39.47 % of base) : 3060.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2864.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2902.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-52 (-15.66 % of base) : 3682.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-52 (-18.06 % of base) : 946.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-44 (-26.19 % of base) : 2597.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_ManagedVirtualMethodTable():ulong (Tier0)
-44 (-26.19 % of base) : 2592.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_ManagedVirtualMethodTable():ulong (Tier0)
-40 (-43.48 % of base) : 4301.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
-40 (-10.00 % of base) : 1126.dasm - Xunit.ConsoleClient.ConsoleRunner:ValidateFileExists(System.Object,System.String):ubyte:this (Tier0)
-40 (-6.99 % of base) : 298.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier0)
Top method regressions (percentages):
16 (10.00 % of base) : 1132.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
Top method improvements (percentages):
-40 (-43.48 % of base) : 4301.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
-60 (-39.47 % of base) : 3060.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2864.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2902.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-20 (-38.46 % of base) : 262.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-20 (-38.46 % of base) : 27.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
-20 (-38.46 % of base) : 30.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:get_Current():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-20 (-38.46 % of base) : 50.dasm - Internal.Microsoft.Extensions.DependencyModel.FileSystemWrapper:get_Default():Internal.Microsoft.Extensions.DependencyModel.IFileSystem (Tier0)
-20 (-38.46 % of base) : 7744.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Comparison():System.Comparison`1[System.String] (Tier0)
-20 (-38.46 % of base) : 7746.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Instance():Microsoft.Extensions.Configuration.ConfigurationKeyComparer (Tier0)
-20 (-38.46 % of base) : 7332.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver:get_Instance():Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver (Tier0)
-20 (-38.46 % of base) : 6900.dasm - Microsoft.Extensions.Logging.Abstractions.NullLogger:get_Instance():Microsoft.Extensions.Logging.Abstractions.NullLogger (Tier0)
-20 (-38.46 % of base) : 3221.dasm - SharedTypes.ComInterfaces.MarshallingFails.IStringArrayMarshallingFailsImpl:get_StartingStrings():System.String[] (Tier0)
-20 (-38.46 % of base) : 4661.dasm - System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
-20 (-38.46 % of base) : 2574.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:get_DefaultIUnknownInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy (Tier0)
-20 (-38.46 % of base) : 6355.dasm - System.Security.Cryptography.HMACSHA3_256:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 6350.dasm - System.Security.Cryptography.HMACSHA3_384:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 6344.dasm - System.Security.Cryptography.HMACSHA3_512:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 6352.dasm - System.Security.Cryptography.SHA3_256:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 6347.dasm - System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 96188 (overridden on cmd)
Total bytes of diff: 91848 (overridden on cmd)
Total bytes of delta: -4340 (-4.51 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-544 : 67.dasm (-77.27 % of base)
-280 : 2263.dasm (-67.31 % of base)
-200 : 1203.dasm (-79.37 % of base)
-116 : 1837.dasm (-11.98 % of base)
-112 : 501.dasm (-25.45 % of base)
-104 : 121.dasm (-18.44 % of base)
-100 : 344.dasm (-26.60 % of base)
-88 : 721.dasm (-44.90 % of base)
-88 : 139.dasm (-14.57 % of base)
-88 : 1159.dasm (-36.67 % of base)
-76 : 974.dasm (-32.76 % of base)
-72 : 10.dasm (-10.53 % of base)
-72 : 1166.dasm (-38.30 % of base)
-56 : 133.dasm (-45.16 % of base)
-52 : 1952.dasm (-14.29 % of base)
-52 : 784.dasm (-15.29 % of base)
-44 : 1170.dasm (-57.89 % of base)
-44 : 1449.dasm (-52.38 % of base)
-44 : 1614.dasm (-52.38 % of base)
-44 : 1682.dasm (-52.38 % of base)
60 total files with Code Size differences (60 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-544 (-77.27 % of base) : 67.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-280 (-67.31 % of base) : 2263.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-200 (-79.37 % of base) : 1203.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-116 (-11.98 % of base) : 1837.dasm - Xunit.Sdk.CollectionTracker:CheckIfDictionariesAreEqual(Xunit.Sdk.CollectionTracker,Xunit.Sdk.CollectionTracker,System.Collections.IEqualityComparer):System.Nullable`1[ubyte] (FullOpts)
-112 (-25.45 % of base) : 501.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-104 (-18.44 % of base) : 121.dasm - System.Lazy`1[int]:CreateValue():int:this (FullOpts)
-100 (-26.60 % of base) : 344.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-88 (-36.67 % of base) : 1159.dasm - NativeExports.ComInterfaces+MyComWrapper:get_MyObjectComInterfaceEntries():ulong (FullOpts)
-88 (-44.90 % of base) : 721.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-88 (-14.57 % of base) : 139.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (FullOpts)
-76 (-32.76 % of base) : 974.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (FullOpts)
-72 (-10.53 % of base) : 10.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-72 (-38.30 % of base) : 1166.dasm - System.Runtime.InteropServices.Marshalling.UniqueComInterfaceMarshaller`1[System.__Canon]:ConvertToManaged(ulong):System.__Canon (FullOpts)
-56 (-45.16 % of base) : 133.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:GetRIDOS():System.String (FullOpts)
-52 (-14.29 % of base) : 1952.dasm - System.Xml.Linq.ElementWriter:WriteElement(System.Xml.Linq.XElement):this (FullOpts)
-52 (-15.29 % of base) : 784.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler:AddExecutionOptions(System.String,Xunit.Abstractions.ITestFrameworkExecutionOptions):this (FullOpts)
-44 (-52.38 % of base) : 1682.dasm - <SharedTypes_ComInterfaces_IArrayOfStatelessElements>F997BA340F1C602826A33304D11289B2F916116FCF25AA5066692B8DC9808E77C__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1397.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1478.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1412.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
Top method improvements (percentages):
-200 (-79.37 % of base) : 1203.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-544 (-77.27 % of base) : 67.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-44 (-68.75 % of base) : 733.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
-280 (-67.31 % of base) : 2263.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-44 (-57.89 % of base) : 2048.dasm - Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
-44 (-57.89 % of base) : 1170.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-44 (-57.89 % of base) : 770.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 534.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 1872.dasm - Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 778.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 1912.dasm - Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-52.38 % of base) : 1682.dasm - <SharedTypes_ComInterfaces_IArrayOfStatelessElements>F997BA340F1C602826A33304D11289B2F916116FCF25AA5066692B8DC9808E77C__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1397.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1478.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1412.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1185.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1261.dasm - <SharedTypes_ComInterfaces_IGetIntArray>FA214D816C95247C6B11496DF3E741F51CFFDF42655C9ADCC408020ADDEBD389B__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1739.dasm - <SharedTypes_ComInterfaces_IInt>F5760B97C133242F5A106190440B4906CD2EB48D5707A49A7150FCE3CC122F69A__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1614.dasm - <SharedTypes_ComInterfaces_IIntArray>FC8C36D862B5D89EFA40DC2F69A3F2BB75A6AFAFDD2DD51BB784960FEC6297044__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1745.dasm - <SharedTypes_ComInterfaces_IInterface>F0F8D3EC26B752C48BE9B9C143F24949B29CF1C6BE9A1BE3C3F507CEEFFF883D7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
realworld.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 418800 (overridden on cmd)
Total bytes of diff: 406228 (overridden on cmd)
Total bytes of delta: -12572 (-3.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 2553.dasm (6.90 % of base)
4 : 2716.dasm (2.33 % of base)
4 : 3594.dasm (2.33 % of base)
4 : 3555.dasm (2.78 % of base)
4 : 5060.dasm (2.33 % of base)
Top file improvements (bytes):
-6416 : 5189.dasm (-73.54 % of base)
-544 : 744.dasm (-77.27 % of base)
-440 : 967.dasm (-24.02 % of base)
-292 : 5122.dasm (-62.39 % of base)
-272 : 9.dasm (-72.34 % of base)
-212 : 3938.dasm (-43.44 % of base)
-132 : 762.dasm (-16.84 % of base)
-128 : 3302.dasm (-50.79 % of base)
-128 : 5035.dasm (-35.56 % of base)
-112 : 2969.dasm (-60.87 % of base)
-112 : 810.dasm (-25.45 % of base)
-108 : 432.dasm (-33.75 % of base)
-104 : 3067.dasm (-12.44 % of base)
-100 : 3064.dasm (-8.36 % of base)
-96 : 1013.dasm (-26.97 % of base)
-92 : 3804.dasm (-54.76 % of base)
-92 : 5049.dasm (-74.19 % of base)
-92 : 5050.dasm (-74.19 % of base)
-88 : 3766.dasm (-53.66 % of base)
-84 : 3072.dasm (-39.62 % of base)
66 total files with Code Size differences (61 improved, 5 regressed), 1 unchanged.
Top method regressions (bytes):
8 (6.90 % of base) : 2553.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.78 % of base) : 3555.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.33 % of base) : 3594.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.33 % of base) : 5060.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.33 % of base) : 2716.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (bytes):
-6416 (-73.54 % of base) : 5189.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-544 (-77.27 % of base) : 744.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-440 (-24.02 % of base) : 967.dasm - BenchmarkDotNet.Environments.CoreRuntime:FromVersion(System.Version):BenchmarkDotNet.Environments.CoreRuntime (FullOpts)
-292 (-62.39 % of base) : 5122.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-212 (-43.44 % of base) : 3938.dasm - FSharp.Compiler.Parser:tables():Internal.Utilities.Text.Parsing.Tables`1[FSharp.Compiler.Parser+token] (FullOpts)
-132 (-16.84 % of base) : 762.dasm - BenchmarkDotNet.Jobs.Job:.ctor(System.String):this (FullOpts)
-128 (-50.79 % of base) : 3302.dasm - FSharp.Compiler.AbstractIL.IL+PublicKey:GetHashCode(System.Collections.IEqualityComparer):int:this (FullOpts)
-128 (-35.56 % of base) : 5035.dasm - FSharp.Compiler.LexFilter+LexFilter:GetToken():FSharp.Compiler.Parser+token:this (FullOpts)
-112 (-60.87 % of base) : 2969.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-112 (-25.45 % of base) : 810.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-108 (-33.75 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-104 (-12.44 % of base) : 3067.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-100 (-8.36 % of base) : 3064.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
-96 (-26.97 % of base) : 1013.dasm - Perfolizer.Horology.WindowsClock:Initialize(byref):ubyte (FullOpts)
-92 (-74.19 % of base) : 5050.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-92 (-74.19 % of base) : 5049.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-92 (-54.76 % of base) : 3804.dasm - Microsoft.Build.Shared.FileSystem.FileSystems:GetFileSystem():Microsoft.Build.Shared.FileSystem.IFileSystem (FullOpts)
-88 (-53.66 % of base) : 3766.dasm - FSharp.Compiler.CompilerImports:logMessage@377(FSharp.Compiler.CompilerConfig+TcConfig,ubyte):Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit] (FullOpts)
-84 (-39.62 % of base) : 3072.dasm - FSComp.SR:optsHelpBannerOutputFiles():System.String (FullOpts)
Top method regressions (percentages):
8 (6.90 % of base) : 2553.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.78 % of base) : 3555.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.33 % of base) : 3594.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.33 % of base) : 5060.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.33 % of base) : 2716.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (percentages):
-544 (-77.27 % of base) : 744.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-92 (-74.19 % of base) : 5050.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-92 (-74.19 % of base) : 5049.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-6416 (-73.54 % of base) : 5189.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-292 (-62.39 % of base) : 5122.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-112 (-60.87 % of base) : 2969.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-68 (-58.62 % of base) : 5127.dasm - FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions:ErrorLogger.ErrorR(FSharp.Compiler.ErrorLogger+ErrorLogger,System.Exception) (FullOpts)
-44 (-57.89 % of base) : 1010.dasm - BenchmarkDotNet.Environments.InfrastructureResolver+<>c:<.ctor>b__1_0():Perfolizer.Horology.IClock:this (FullOpts)
-44 (-57.89 % of base) : 3073.dasm - FSComp.SR:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2227.dasm - FSharp.Benchmarks.Program:.cctor() (FullOpts)
-44 (-57.89 % of base) : 3264.dasm - FSharp.Compiler.AbstractIL.IL:.cctor() (FullOpts)
-44 (-57.89 % of base) : 3425.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2655.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2663.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2917.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
-44 (-57.89 % of base) : 3017.dasm - FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
-44 (-57.89 % of base) : 3006.dasm - FSharp.Compiler.Features+LanguageVersion:.cctor() (FullOpts)
-44 (-57.89 % of base) : 3358.dasm - FSharp.Compiler.FxResolver:.cctor() (FullOpts)
-44 (-57.89 % of base) : 5044.dasm - FSharp.Compiler.Lexer:.cctor() (FullOpts)
smoke_tests.nativeaot.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 810696 (overridden on cmd)
Total bytes of diff: 799392 (overridden on cmd)
Total bytes of delta: -11304 (-1.39 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-260 : 13170.dasm (-51.59 % of base)
-128 : 8598.dasm (-13.33 % of base)
-108 : 7857.dasm (-5.31 % of base)
-108 : 8357.dasm (-16.17 % of base)
-96 : 10474.dasm (-45.28 % of base)
-96 : 14561.dasm (-45.28 % of base)
-96 : 8316.dasm (-13.04 % of base)
-92 : 16574.dasm (-44.23 % of base)
-88 : 6285.dasm (-11.89 % of base)
-84 : 13173.dasm (-36.21 % of base)
-84 : 15070.dasm (-42.86 % of base)
-76 : 14875.dasm (-30.16 % of base)
-72 : 257.dasm (-10.91 % of base)
-68 : 15000.dasm (-40.48 % of base)
-68 : 3953.dasm (-18.89 % of base)
-64 : 8913.dasm (-26.23 % of base)
-64 : 10985.dasm (-15.38 % of base)
-64 : 7975.dasm (-33.33 % of base)
-64 : 8318.dasm (-13.01 % of base)
-64 : 8329.dasm (-19.51 % of base)
94 total files with Code Size differences (94 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-260 (-51.59 % of base) : 13170.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-128 (-13.33 % of base) : 8598.dasm - System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-108 (-5.31 % of base) : 7857.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
-108 (-16.17 % of base) : 8357.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-45.28 % of base) : 10474.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-96 (-13.04 % of base) : 8316.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-45.28 % of base) : 14561.dasm - System.Threading.Tasks.AwaitTaskContinuation:Run(System.Threading.Tasks.Task,ubyte):this (FullOpts)
-92 (-44.23 % of base) : 16574.dasm - System.Runtime.CompilerServices.TaskAwaiter:OnCompletedInternal(System.Threading.Tasks.Task,System.Action,ubyte,ubyte) (FullOpts)
-88 (-11.89 % of base) : 6285.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:CompareMethodSignatures(Internal.Runtime.CompilerServices.RuntimeSignature,Internal.Runtime.CompilerServices.RuntimeSignature):ubyte:this (FullOpts)
-84 (-42.86 % of base) : 15070.dasm - System.Runtime.CompilerServices.TaskAwaiter:UnsafeOnCompletedInternal(System.Threading.Tasks.Task,System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte) (FullOpts)
-84 (-36.21 % of base) : 13173.dasm - System.Threading.Tasks.Task:CancellationCleanupLogic():this (FullOpts)
-76 (-30.16 % of base) : 14875.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (FullOpts)
-72 (-10.91 % of base) : 257.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-68 (-18.89 % of base) : 3953.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetVirtualResolveData(Internal.Runtime.TypeLoader.NativeFormatModuleInfo,System.RuntimeTypeHandle,System.Reflection.Runtime.General.QMethodDefinition,System.RuntimeTypeHandle[],byref):long (FullOpts)
-68 (-40.48 % of base) : 15000.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult) (FullOpts)
-64 (-33.33 % of base) : 7975.dasm - Internal.Runtime.TypeLoader.RuntimeSignatureHelper:GetModuleInfo(Internal.Runtime.CompilerServices.RuntimeSignature):Internal.Runtime.TypeLoader.ModuleInfo (FullOpts)
-64 (-13.01 % of base) : 8318.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,System.Span`1[ushort],byref):ubyte (FullOpts)
-64 (-15.38 % of base) : 10985.dasm - System.Number:UInt32ToDecStr_NoSmallNumberCheck(uint):System.String (FullOpts)
-64 (-19.51 % of base) : 8329.dasm - System.Number:UInt64ToDecChars[ushort](ulong,ulong):ulong (FullOpts)
-64 (-26.23 % of base) : 8913.dasm - System.Reflection.Runtime.TypeInfos.RuntimeArrayTypeInfo:GetArrayTypeInfo(System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo,ubyte,int,System.RuntimeTypeHandle):System.Reflection.Runtime.TypeInfos.RuntimeArrayTypeInfo (FullOpts)
Top method improvements (percentages):
-32 (-57.14 % of base) : 3961.dasm - Internal.Reflection.Execution.AssemblyBinderImplementation:get_Instance():Internal.Reflection.Execution.AssemblyBinderImplementation (FullOpts)
-32 (-57.14 % of base) : 1355.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
-32 (-57.14 % of base) : 6971.dasm - Internal.TypeSystem.TypeSystemContext:get_ByRefTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
-32 (-57.14 % of base) : 6970.dasm - Internal.TypeSystem.TypeSystemContext:get_PointerTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
-32 (-57.14 % of base) : 11542.dasm - System.Buffers.ArrayPool`1[int]:get_Shared():System.Buffers.ArrayPool`1[int] (FullOpts)
-32 (-57.14 % of base) : 16910.dasm - System.Dynamic.Utils.DelegateHelpers+DynamicDelegateLightup:get_CreateObjectArrayDelegate():System.Func`3[System.Type,System.Func`2[System.Object[],System.Object],System.Delegate] (FullOpts)
-32 (-57.14 % of base) : 16173.dasm - System.Globalization.CultureData:GetCalendar(ushort):System.Globalization.CalendarData:this (FullOpts)
-32 (-57.14 % of base) : 6010.dasm - System.Globalization.DateTimeFormatInfo:get_InvariantInfo():System.Globalization.DateTimeFormatInfo (FullOpts)
-32 (-57.14 % of base) : 13442.dasm - System.Linq.Expressions.BlockExpression:GetOrMakeVariables():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]:this (FullOpts)
-32 (-57.14 % of base) : 12470.dasm - System.Linq.Expressions.ConditionalExpression:GetFalse():System.Linq.Expressions.Expression:this (FullOpts)
-32 (-57.14 % of base) : 7879.dasm - System.Random:get_Shared():System.Random (FullOpts)
-32 (-57.14 % of base) : 431.dasm - System.Runtime.Serialization.SerializationInfo:get_AsyncDeserializationInProgress():System.Threading.AsyncLocal`1[ubyte] (FullOpts)
-32 (-57.14 % of base) : 8311.dasm - System.Text.EncoderFallback:get_ReplacementFallback():System.Text.EncoderFallback (FullOpts)
-32 (-57.14 % of base) : 6193.dasm - System.Text.Encoding:get_ASCII():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 6191.dasm - System.Text.Encoding:get_BigEndianUnicode():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 6194.dasm - System.Text.Encoding:get_BigEndianUTF32():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 8072.dasm - System.Text.Encoding:get_Default():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 6196.dasm - System.Text.Encoding:get_Latin1():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 6192.dasm - System.Text.Encoding:get_Unicode():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 6195.dasm - System.Text.Encoding:get_UTF32():System.Text.Encoding (FullOpts)
linux x64
Diffs are based on 136,302 contexts (18,734 MinOpts, 117,568 FullOpts).
MISSED contexts: base: 2 (0.00%), diff: 116,512 (45.38%)
Overall (-60,804 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.x64.checked.mch |
140,354 |
-3,053 |
| benchmarks.run_pgo.linux.x64.checked.mch |
948,560 |
-4,385 |
| benchmarks.run_tiered.linux.x64.checked.mch |
796,003 |
-9,435 |
| coreclr_tests.run.linux.x64.checked.mch |
165,738 |
-740 |
| libraries.crossgen2.linux.x64.checked.mch |
7,809,464 |
-17 |
| libraries.pmi.linux.x64.checked.mch |
117,804 |
-20,220 |
| libraries_tests.run.linux.x64.Release.mch |
619,081 |
-2,891 |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
67,726 |
-3,412 |
| realworld.run.linux.x64.checked.mch |
361,633 |
-10,882 |
| smoke_tests.nativeaot.linux.x64.checked.mch |
411,097 |
-5,769 |
MinOpts (-15,022 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.linux.x64.checked.mch |
648,791 |
-4,385 |
| benchmarks.run_tiered.linux.x64.checked.mch |
697,606 |
-7,426 |
| coreclr_tests.run.linux.x64.checked.mch |
133,568 |
-532 |
| libraries_tests.run.linux.x64.Release.mch |
374,137 |
-2,679 |
FullOpts (-45,782 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.linux.x64.checked.mch |
140,354 |
-3,053 |
| benchmarks.run_tiered.linux.x64.checked.mch |
98,397 |
-2,009 |
| coreclr_tests.run.linux.x64.checked.mch |
32,170 |
-208 |
| libraries.crossgen2.linux.x64.checked.mch |
7,808,513 |
-17 |
| libraries.pmi.linux.x64.checked.mch |
117,804 |
-20,220 |
| libraries_tests.run.linux.x64.Release.mch |
244,944 |
-212 |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
67,726 |
-3,412 |
| realworld.run.linux.x64.checked.mch |
361,633 |
-10,882 |
| smoke_tests.nativeaot.linux.x64.checked.mch |
411,015 |
-5,769 |
Example diffs
benchmarks.run.linux.x64.checked.mch
-31 (-50.82%) : 989.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
@@ -16,32 +16,20 @@
G_M55451_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M55451_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M55451_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M55451_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55451_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
mov rdi, gword ptr [rdi+0x08]
cmp dword ptr [rdi], edi
;; size=19 bbWeight=1 PerfScore 7.25
-G_M55451_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M55451_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
tail.jmp [<unknown method>]
; gcr arg pop 0
;; size=10 bbWeight=1 PerfScore 2.25
-G_M55451_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rdi]
- mov rdi, 0xD1FFAB1E
- mov esi, 906
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M55451_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 61, prolog size 1, PerfScore 14.50, instruction count 13, allocated bytes for code 61 (MethodHash=41c82764) for method System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
+; Total bytes of code 30, prolog size 1, PerfScore 10.50, instruction count 7, allocated bytes for code 30 (MethodHash=41c82764) for method System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
; ============================================================
Unwind Info:
-23 (-50.00%) : 2581.dasm - System.Text.Json.JsonSerializer:UnboxOnWriteSystem.__Canon:System.__Canon (FullOpts)
@@ -2,54 +2,37 @@
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No matching PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T01] ( 4, 3.25) long -> rdi single-def
-; V01 arg0 [V01,T02] ( 4, 3.12) ref -> rsi class-hnd single-def <System.Object>
+; V00 TypeCtx [V00,T00] ( 4, 4 ) long -> rdi single-def
+; V01 arg0 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Object>
;* V02 loc0 [V02 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd <System.__Canon>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 3, 1.25) long -> rdi "fgMakeTemp is creating a new local variable"
-; V05 tmp2 [V05,T00] ( 5, 6.75) ref -> rax class-hnd "spilling QMark2" <System.__Canon>
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M8451_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
- mov qword ptr [rbp-0x08], rdi
- ;; size=14 bbWeight=1 PerfScore 2.75
-G_M8451_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+ push rax
+ mov qword ptr [rsp], rdi
+ ;; size=5 bbWeight=1 PerfScore 2.00
+G_M8451_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
- mov rax, rsi
- ; gcrRegs +[rax]
- test rax, rax
- je SHORT G_M8451_IG05
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M8451_IG03: ; bbWeight=0.25, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref, isz
mov rdi, qword ptr [rdi+0x38]
mov rdi, qword ptr [rdi]
- cmp qword ptr [rax], rdi
- je SHORT G_M8451_IG05
- ;; size=12 bbWeight=0.25 PerfScore 2.00
-G_M8451_IG04: ; bbWeight=0.12, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- call CORINFO_HELP_CHKCASTANY
+ call CORINFO_HELP_ISINSTANCEOF_EXCEPTION
; gcrRegs -[rsi] +[rax]
- ;; size=5 bbWeight=0.12 PerfScore 0.12
-G_M8451_IG05: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+ ; gcr arg pop 0
nop
- ;; size=1 bbWeight=1 PerfScore 0.25
-G_M8451_IG06: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
- pop rbp
+ ;; size=13 bbWeight=1 PerfScore 5.25
+G_M8451_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 46, prolog size 14, PerfScore 8.38, instruction count 16, allocated bytes for code 46 (MethodHash=553cdefc) for method System.Text.Json.JsonSerializer:UnboxOnWrite[System.__Canon](System.Object):System.__Canon (FullOpts)
+; Total bytes of code 23, prolog size 5, PerfScore 8.50, instruction count 8, allocated bytes for code 23 (MethodHash=553cdefc) for method System.Text.Json.JsonSerializer:UnboxOnWrite[System.__Canon](System.Object):System.__Canon (FullOpts)
; ============================================================
Unwind Info:
@@ -57,10 +40,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
-43 (-46.74%) : 1611.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
@@ -8,69 +8,51 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 5, 4 ) ref -> rbx this class-hnd single-def <System.Threading.Tasks.TaskScheduler>
+; V00 this [V00,T01] ( 5, 4 ) ref -> rdi this class-hnd single-def <System.Threading.Tasks.TaskScheduler>
; V01 loc0 [V01,T03] ( 4, 3.50) int -> rax
-; V02 loc1 [V02,T00] ( 3, 8.50) int -> rdi
+; V02 loc1 [V02,T00] ( 3, 8.50) int -> rcx
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V05 cse0 [V05,T04] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V06 cse1 [V06,T02] ( 2, 4.50) long -> rax hoist "CSE - aggressive"
+; V05 cse0 [V05,T02] ( 2, 4.50) long -> rax hoist "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M51313_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- mov rbx, rdi
- ; gcrRegs +[rbx]
- ;; size=11 bbWeight=1 PerfScore 3.75
-G_M51313_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov eax, dword ptr [rbx+0x08]
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
+G_M51313_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rdi]
+ mov eax, dword ptr [rdi+0x08]
test eax, eax
- jne SHORT G_M51313_IG07
+ jne SHORT G_M51313_IG06
;; size=7 bbWeight=1 PerfScore 3.25
-G_M51313_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M51313_IG08
- ;; size=9 bbWeight=0.50 PerfScore 2.00
-G_M51313_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M51313_IG03: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; static handle
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M51313_IG05: ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edi, 1
+G_M51313_IG04: ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+ mov ecx, 1
lock
- xadd dword ptr [rax], edi
- inc edi
- je SHORT G_M51313_IG05
+ xadd dword ptr [rax], ecx
+ inc ecx
+ je SHORT G_M51313_IG04
;; size=13 bbWeight=4 PerfScore 74.00
-G_M51313_IG06: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- lea rsi, bword ptr [rbx+0x08]
- ; byrRegs +[rsi]
+G_M51313_IG05: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+ lea rdx, bword ptr [rdi+0x08]
+ ; byrRegs +[rdx]
xor eax, eax
lock
- cmpxchg dword ptr [rsi], edi
- mov eax, dword ptr [rbx+0x08]
+ cmpxchg dword ptr [rdx], ecx
+ mov eax, dword ptr [rdi+0x08]
;; size=13 bbWeight=0.50 PerfScore 10.38
-G_M51313_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx]
- ; byrRegs -[rsi]
- add rsp, 8
- pop rbx
+G_M51313_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[rdi]
+ ; byrRegs -[rdx]
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
-G_M51313_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx]
- mov rdi, 0xD1FFAB1E
- mov esi, 0x3F1
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M51313_IG04
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 92, prolog size 11, PerfScore 95.75, instruction count 29, allocated bytes for code 92 (MethodHash=40f8378e) for method System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
+; Total bytes of code 49, prolog size 4, PerfScore 90.50, instruction count 18, allocated bytes for code 49 (MethodHash=40f8378e) for method System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -78,11 +60,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+0 (0.00%) : 1861.dasm - System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
@@ -8,9 +8,9 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 2.50) ref -> r15 this class-hnd single-def <System.Text.Json.JsonSerializerOptions>
-; V01 arg1 [V01,T00] ( 5, 4.50) ref -> rbx class-hnd <System.Text.Json.Serialization.JsonConverter>
+; V01 arg1 [V01,T00] ( 6, 5.50) ref -> rbx class-hnd <System.Text.Json.Serialization.JsonConverter>
; V02 arg2 [V02,T02] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Type>
-; V03 loc0 [V03,T03] ( 3, 2.50) ref -> rax class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory>
+; V03 loc0 [V03,T03] ( 2, 1.50) ref -> rdi class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
@@ -30,26 +30,26 @@ G_M17128_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; System.Text.Json.Serialization.JsonConverterFactory
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
- je SHORT G_M17128_IG04
- ;; size=23 bbWeight=1 PerfScore 2.75
-G_M17128_IG03: ; bbWeight=0.50, gcrefRegs=C001 {rax r14 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
mov rdi, rax
; gcrRegs +[rdi]
+ test rbx, rbx
+ je SHORT G_M17128_IG04
+ ;; size=26 bbWeight=1 PerfScore 3.00
+G_M17128_IG03: ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbx]
mov rsi, r14
; gcrRegs +[rsi]
mov rdx, r15
; gcrRegs +[rdx]
call [System.Text.Json.Serialization.JsonConverterFactory:GetConverterInternal(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.JsonConverter:this]
- ; gcrRegs -[rdx rsi rdi r14-r15]
+ ; gcrRegs -[rdx rsi rdi r14-r15] +[rax]
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
- ;; size=18 bbWeight=0.50 PerfScore 2.00
+ ;; size=15 bbWeight=0.50 PerfScore 1.88
G_M17128_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, rbx
@@ -62,7 +62,7 @@ G_M17128_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 64, prolog size 5, PerfScore 11.25, instruction count 21, allocated bytes for code 64 (MethodHash=9152bd17) for method System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
+; Total bytes of code 64, prolog size 5, PerfScore 11.38, instruction count 21, allocated bytes for code 64 (MethodHash=9152bd17) for method System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 2060.dasm - System.Reflection.SignatureTypeExtensions:MatchesParameterTypeExactly(System.Type,System.Reflection.ParameterInfo):ubyte (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) ref -> r15 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T01] ( 4, 4 ) ref -> r15 class-hnd single-def <System.Type>
; V01 arg1 [V01,T00] ( 6, 4 ) ref -> rbx class-hnd single-def <System.Reflection.ParameterInfo>
-; V02 loc0 [V02,T02] ( 3, 2.50) ref -> r14 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T03] ( 2, 1.50) ref -> r14 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
+; V04 tmp1 [V04,T02] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -31,11 +31,11 @@ G_M22240_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
mov rsi, r15
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
mov r14, rax
; gcrRegs +[r14]
- test r14, r14
+ test r15, r15
je SHORT G_M22240_IG05
;; size=26 bbWeight=1 PerfScore 3.00
G_M22240_IG03: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
@@ -59,15 +59,15 @@ G_M22240_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [<unknown method>]
;; size=16 bbWeight=0.50 PerfScore 2.12
-G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rsi rdi r14] +[rbx r15]
+G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax rsi rdi r14] +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x48]
call [rax+0x38]<unknown method>
; gcrRegs -[rbx rdi] +[rax]
- cmp rax, r15
+ test rax, rax
sete al
; gcrRegs -[rax]
movzx rax, al
+6 (+3.08%) : 1890.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverterSystem.__Canon:System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4.50) ref -> r15 this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
+; V00 this [V00,T01] ( 5, 4.50) ref -> r15 this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
; V01 TypeCtx [V01,T00] ( 8, 5.38) long -> rbx single-def
-; V02 loc0 [V02,T08] ( 3, 2.50) ref -> rax class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.__Canon]>
+;* V02 loc0 [V02,T12] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.__Canon]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V05 tmp2 [V05,T05] ( 3, 3 ) ref -> rax class-hnd single-def "dup spill" <System.Text.Json.Serialization.JsonConverter>
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp4 [V07,T12] ( 3, 1.50) ref -> rax
-; V08 tmp5 [V08,T10] ( 4, 2 ) ref -> rax
+; V07 tmp4 [V07,T11] ( 3, 1.50) ref -> rax
+; V08 tmp5 [V08,T09] ( 4, 2 ) ref -> rax
; V09 tmp6 [V09,T06] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Converters.CastingConverter`1[System.__Canon]>
;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V11 tmp8 [V11,T04] ( 2, 4 ) long -> rdi "argument with side effect"
; V12 rat0 [V12,T03] ( 3, 4 ) long -> rdi "runtime lookup"
; V13 rat1 [V13,T02] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable"
-; V14 rat2 [V14,T11] ( 3, 2 ) long -> rdi "runtime lookup"
+; V14 rat2 [V14,T10] ( 3, 2 ) long -> rdi "runtime lookup"
; V15 rat3 [V15,T07] ( 3, 2.80) long -> rdi "spilling expr"
-; V16 rat4 [V16,T09] ( 3, 2.24) long -> rdi "fgMakeTemp is creating a new local variable"
+; V16 rat4 [V16,T08] ( 3, 2.24) long -> rdi "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -51,82 +51,86 @@ G_M17047_IG03: ; bbWeight=0.80, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
G_M17047_IG04: ; bbWeight=0.20, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov rdi, rax
;; size=21 bbWeight=0.20 PerfScore 0.35
G_M17047_IG05: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15
; gcrRegs +[rsi]
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
- test rax, rax
- je SHORT G_M17047_IG07
+ test r15, r15
+ je SHORT G_M17047_IG08
;; size=13 bbWeight=1 PerfScore 2.50
-G_M17047_IG06: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[r15]
+G_M17047_IG06: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax]
+ mov rax, r15
+ ; gcrRegs +[rax]
+ ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M17047_IG07: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.38
-G_M17047_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[r15]
- mov rdi, r15
+G_M17047_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rax r15]
+ xor rdi, rdi
; gcrRegs +[rdi]
- mov rax, qword ptr [r15]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]<unknown method>
; gcrRegs -[rdi] +[rax]
test rax, rax
- jne SHORT G_M17047_IG08
+ jne SHORT G_M17047_IG09
xor rax, rax
- jmp SHORT G_M17047_IG09
- ;; size=22 bbWeight=0.50 PerfScore 5.38
-G_M17047_IG08: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M17047_IG10
+ ;; size=26 bbWeight=0.50 PerfScore 5.38
+G_M17047_IG09: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
mov rdi, rax
; gcrRegs +[rdi]
mov rsi, rbx
call [System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this]
; gcrRegs -[rdi]
;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M17047_IG09: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref, isz
+G_M17047_IG10: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
test rax, rax
- jne SHORT G_M17047_IG14
+ jne SHORT G_M17047_IG15
mov rdi, qword ptr [rbx+0x38]
cmp qword ptr [rdi+0x08], 24
- jle SHORT G_M17047_IG12
+ jle SHORT G_M17047_IG13
;; size=16 bbWeight=0.50 PerfScore 3.62
-G_M17047_IG10: ; bbWeight=0.40, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M17047_IG11: ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rdi, qword ptr [rdi+0x18]
test rdi, rdi
- je SHORT G_M17047_IG12
+ je SHORT G_M17047_IG13
;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M17047_IG11: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M17047_IG13
+G_M17047_IG12: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M17047_IG14
;; size=2 bbWeight=0.32 PerfScore 0.64
-G_M17047_IG12: ; bbWeight=0.18, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M17047_IG13: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov rdi, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
-G_M17047_IG13: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
- call CORINFO_HELP_NEWSFAST
+G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov rbx, rax
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
- mov rsi, r15
+ xor rsi, rsi
; gcrRegs +[rsi]
call [System.Text.Json.Serialization.Converters.CastingConverter`1[System.__Canon]:.ctor(System.Text.Json.Serialization.JsonConverter):this]
- ; gcrRegs -[rax rsi rdi r15]
+ ; gcrRegs -[rax rsi rdi]
mov rax, rbx
; gcrRegs +[rax]
- ;; size=23 bbWeight=0.50 PerfScore 2.50
-G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=22 bbWeight=0.50 PerfScore 2.50
+G_M17047_IG15: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx]
add rsp, 16
pop rbx
@@ -135,7 +139,7 @@ G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
ret
;; size=9 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 195, prolog size 17, PerfScore 33.21, instruction count 61, allocated bytes for code 195 (MethodHash=3467bd68) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
+; Total bytes of code 201, prolog size 17, PerfScore 33.33, instruction count 62, allocated bytes for code 201 (MethodHash=3467bd68) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.linux.x64.checked.mch
-20 (-60.61%) : 1489.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
@@ -14,17 +14,14 @@ G_M34410_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M34410_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 42
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M34410_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=dce37995) for method Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=dce37995) for method Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
; ============================================================
Unwind Info:
-20 (-60.61%) : 11393.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
@@ -14,17 +14,14 @@ G_M7622_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M7622_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 381
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M7622_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
; ============================================================
Unwind Info:
-20 (-60.61%) : 2770.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
@@ -14,17 +14,14 @@ G_M58517_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M58517_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 308
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rax, qword ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M58517_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=6f6f1b6a) for method System.Marvin:get_DefaultSeed():ulong (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=6f6f1b6a) for method System.Marvin:get_DefaultSeed():ulong (Tier0)
; ============================================================
Unwind Info:
+0 (0.00%) : 2534.dasm - System.Span`1[System.Canon]:.ctor(System.Canon[]):this (Tier0)
@@ -59,7 +59,7 @@ G_M63343_IG05: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG06: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x18]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -94,7 +94,7 @@ G_M63343_IG09: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG10: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x18]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x30], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 4747.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:CreatePropertyInfoForTypeInfo():System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (Tier0)
@@ -56,12 +56,12 @@ G_M41961_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M41961_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x38]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M41961_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x28]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x10]
+0 (0.00%) : 7191.dasm - System.Collections.Generic.ArraySortHelper2[System.__Canon,System.__Canon]:CreateArraySortHelper():System.Collections.Generic.IArraySortHelper2System.Canon,System.Canon
@@ -51,7 +51,7 @@ G_M9235_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
G_M9235_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x10]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x20], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M9235_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -96,14 +96,14 @@ G_M9235_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
G_M9235_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x10]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x30], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi] +[rax]
mov gword ptr [rbp-0x58], rax
mov rax, qword ptr [rbp-0x10]
@@ -117,7 +117,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rsi, gword ptr [rbp-0x48]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi]
mov gword ptr [rbp-0x60], rax
mov rax, qword ptr [rbp-0x10]
@@ -131,7 +131,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rsi, gword ptr [rbp-0x50]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi]
mov gword ptr [rbp-0x68], rax
mov rdi, gword ptr [rbp-0x58]
@@ -146,7 +146,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rsi, gword ptr [rbp-0x70]
; gcrRegs +[rsi]
mov rdi, qword ptr [rbp-0x30]
- call [CORINFO_HELP_CHKCASTINTERFACE]
+ call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rsi]
mov gword ptr [rbp-0x18], rax
jmp SHORT G_M9235_IG10
@@ -154,7 +154,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M9235_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdi, qword ptr [rbp-0x10]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x28], rax
mov rdi, gword ptr [rbp-0x28]
benchmarks.run_tiered.linux.x64.checked.mch
-20 (-62.50%) : 12484.dasm - System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
@@ -14,17 +14,14 @@ G_M54325_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M54325_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 37
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov eax, dword ptr [(reloc)] ; static handle
- ;; size=26 bbWeight=1 PerfScore 3.50
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M54325_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 32 (MethodHash=836e2bca) for method System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
+; Total bytes of code 12, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 12 (MethodHash=836e2bca) for method System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
; ============================================================
Unwind Info:
-20 (-60.61%) : 65.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
@@ -14,17 +14,14 @@ G_M9075_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M9075_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 0x8B0
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M9075_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
-20 (-60.61%) : 1293.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
@@ -14,17 +14,14 @@ G_M34410_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M34410_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 42
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M34410_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=dce37995) for method Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=dce37995) for method Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
; ============================================================
Unwind Info:
+0 (0.00%) : 5918.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:CreatePropertyInfoForTypeInfo():System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (Tier0)
@@ -56,12 +56,12 @@ G_M41961_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M41961_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x38]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M41961_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x28]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x10]
+0 (0.00%) : 2299.dasm - System.Span`1[System.Canon]:.ctor(System.Canon[]):this (Tier0)
@@ -59,7 +59,7 @@ G_M63343_IG05: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG06: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x18]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -94,7 +94,7 @@ G_M63343_IG09: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG10: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x18]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x30], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 11716.dasm - System.Collections.Generic.ArraySortHelper2[int,System.__Canon]:CreateArraySortHelper():System.Collections.Generic.IArraySortHelper2int,System.__Canon
@@ -47,20 +47,20 @@ G_M46451_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M46451_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x10]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x20], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M46451_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E ; <unknown class>
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi] +[rax]
mov gword ptr [rbp-0x30], rax
mov rdi, 0xD1FFAB1E ; <unknown class>
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi]
mov gword ptr [rbp-0x38], rax
mov rax, qword ptr [rbp-0x10]
@@ -74,7 +74,7 @@ G_M46451_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbp-0x28]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi]
mov gword ptr [rbp-0x40], rax
mov rdi, gword ptr [rbp-0x30]
@@ -89,7 +89,7 @@ G_M46451_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbp-0x48]
; gcrRegs +[rsi]
mov rdi, qword ptr [rbp-0x20]
- call [CORINFO_HELP_CHKCASTINTERFACE]
+ call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rsi]
mov gword ptr [rbp-0x18], rax
mov rax, gword ptr [rbp-0x18]
coreclr_tests.run.linux.x64.checked.mch
-20 (-51.28%) : 799.dasm - System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
@@ -14,19 +14,16 @@ G_M24551_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M24551_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 33
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=33 bbWeight=1 PerfScore 3.75
+ ;; size=13 bbWeight=1 PerfScore 2.25
G_M24551_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 39, prolog size 4, PerfScore 6.50, instruction count 9, allocated bytes for code 39 (MethodHash=51afa018) for method System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
+; Total bytes of code 19, prolog size 4, PerfScore 5.00, instruction count 6, allocated bytes for code 19 (MethodHash=51afa018) for method System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
; ============================================================
Unwind Info:
-20 (-45.45%) : 71.dasm - System.ConsolePal:EnsureConsoleInitialized() (Tier0)
@@ -14,14 +14,11 @@ G_M36161_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M36161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 22
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
test eax, eax
jne SHORT G_M36161_IG03
call [<unknown method>]
- ;; size=37 bbWeight=1 PerfScore 7.75
+ ;; size=17 bbWeight=1 PerfScore 6.25
G_M36161_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
@@ -30,7 +27,7 @@ G_M36161_IG04: ; bbWeight=1, epilog, nogc, extend
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 44, prolog size 4, PerfScore 10.75, instruction count 12, allocated bytes for code 44 (MethodHash=460772be) for method System.ConsolePal:EnsureConsoleInitialized() (Tier0)
+; Total bytes of code 24, prolog size 4, PerfScore 9.25, instruction count 9, allocated bytes for code 24 (MethodHash=460772be) for method System.ConsolePal:EnsureConsoleInitialized() (Tier0)
; ============================================================
Unwind Info:
-20 (-28.17%) : 644.dasm - System.Text.RegularExpressions.Regex:.cctor() (Tier0)
@@ -14,9 +14,6 @@ G_M6374_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M6374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 872
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rdx, qword ptr [rax]
@@ -24,13 +21,13 @@ G_M6374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov qword ptr [rcx], rax
- ;; size=65 bbWeight=1 PerfScore 9.25
+ ;; size=45 bbWeight=1 PerfScore 7.75
G_M6374_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 71, prolog size 4, PerfScore 12.00, instruction count 14, allocated bytes for code 71 (MethodHash=7617e719) for method System.Text.RegularExpressions.Regex:.cctor() (Tier0)
+; Total bytes of code 51, prolog size 4, PerfScore 10.50, instruction count 11, allocated bytes for code 51 (MethodHash=7617e719) for method System.Text.RegularExpressions.Regex:.cctor() (Tier0)
; ============================================================
Unwind Info:
-20 (-9.35%) : 286.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
@@ -44,15 +44,12 @@ G_M29212_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M29212_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 107
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
test eax, eax
je SHORT G_M29212_IG06
call [<unknown method>]
nop
- ;; size=38 bbWeight=1 PerfScore 8.00
+ ;; size=18 bbWeight=1 PerfScore 6.50
G_M29212_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
@@ -94,7 +91,7 @@ G_M29212_IG09: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 214, prolog size 19, PerfScore 88.42, instruction count 56, allocated bytes for code 214 (MethodHash=c01d8de3) for method System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
+; Total bytes of code 194, prolog size 19, PerfScore 86.92, instruction count 53, allocated bytes for code 194 (MethodHash=c01d8de3) for method System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
; ============================================================
Unwind Info:
-5 (-7.94%) : 1953.dasm - Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
@@ -22,22 +22,21 @@ G_M28697_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=20 bbWeight=1 PerfScore 4.00
G_M28697_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, 0xD1FFAB1E
- mov esi, 66
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
mov byte ptr [rbp-0x10], 0
mov rax, bword ptr [rbp-0x08]
; byrRegs +[rax]
mov cl, byte ptr [rbp-0x10]
mov byte ptr [rax], cl
mov rax, bword ptr [rbp-0x08]
- ;; size=37 bbWeight=1 PerfScore 6.50
+ ;; size=32 bbWeight=1 PerfScore 6.25
G_M28697_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 63, prolog size 16, PerfScore 12.25, instruction count 17, allocated bytes for code 63 (MethodHash=c5b88fe6) for method Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
+; Total bytes of code 58, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 58 (MethodHash=c5b88fe6) for method Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
; ============================================================
Unwind Info:
-5 (-5.32%) : 176.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
@@ -15,8 +15,7 @@ G_M17591_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=4 bbWeight=1 PerfScore 1.25
G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E
- mov esi, 15
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
call [<unknown method>]
test eax, eax
jne SHORT G_M17591_IG04
@@ -36,7 +35,7 @@ G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
test eax, eax
sete al
movzx rax, al
- ;; size=84 bbWeight=1 PerfScore 23.25
+ ;; size=79 bbWeight=1 PerfScore 23.00
G_M17591_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
@@ -49,7 +48,7 @@ G_M17591_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 94, prolog size 4, PerfScore 27.75, instruction count 27, allocated bytes for code 94 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
+; Total bytes of code 89, prolog size 4, PerfScore 27.50, instruction count 26, allocated bytes for code 89 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
libraries.crossgen2.linux.x64.checked.mch
-4 (-3.33%) : 154290.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
@@ -15,7 +15,7 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V04 tmp2 [V04,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp3 [V05,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V06 cse0 [V06,T03] ( 4, 3 ) byref -> rax "CSE - aggressive"
+; V06 cse0 [V06,T03] ( 4, 3 ) int -> rdi "CSE - aggressive"
; V07 cse1 [V07,T02] ( 5, 3.50) int -> rcx "CSE - aggressive"
;
; Lcl frame size = 0
@@ -29,28 +29,27 @@ G_M44169_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov ebx, esi
;; size=14 bbWeight=1 PerfScore 4.00
G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
movzx rdi, word ptr [rax]
movzx rcx, r15w
cmp edi, ecx
je SHORT G_M44169_IG04
;; size=17 bbWeight=1 PerfScore 6.50
-G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
+G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[rax]
cmp ecx, 47
jne SHORT G_M44169_IG07
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- movzx rdi, word ptr [rax]
- movzx rdx, bx
- cmp edi, edx
+G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movzx rax, bx
+ cmp edi, eax
je SHORT G_M44169_IG05
- movzx rdi, bx
- cmp edi, 47
+ movzx rax, bx
+ cmp eax, 47
jne SHORT G_M44169_IG07
- ;; size=18 bbWeight=0.50 PerfScore 2.50
+ ;; size=15 bbWeight=0.50 PerfScore 1.50
G_M44169_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[rax]
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
@@ -59,20 +58,18 @@ G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, gcvars, byref, isz
- ; byrRegs +[rax]
- cmp word ptr [rax], 47
+G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ cmp edi, 47
je SHORT G_M44169_IG09
mov edi, ecx
call [<unknown method>]
- ; byrRegs -[rax]
mov r15d, eax
movzx rdi, bx
call [<unknown method>]
cmp r15d, eax
sete al
movzx rax, al
- ;; size=35 bbWeight=0.50 PerfScore 6.12
+ ;; size=34 bbWeight=0.50 PerfScore 4.75
G_M44169_IG08: ; bbWeight=0.50, epilog, nogc, extend
pop rbx
pop r15
@@ -92,7 +89,7 @@ G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 120, prolog size 9, PerfScore 24.50, instruction count 47, allocated bytes for code 120 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
+; Total bytes of code 116, prolog size 9, PerfScore 22.12, instruction count 46, allocated bytes for code 116 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
-13 (-2.91%) : 6513.dasm - System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
@@ -9,26 +9,26 @@
; 0 inlinees with PGO data; 1 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
-; V00 loc0 [V00,T13] ( 3, 2.50) int -> rbx
-; V01 loc1 [V01,T11] ( 3, 3 ) int -> r14
+; V00 loc0 [V00,T07] ( 3, 2.50) int -> rbx
+; V01 loc1 [V01,T05] ( 3, 3 ) int -> r14
; V02 loc2 [V02,T04] ( 5, 4 ) int -> rcx
-; V03 loc3 [V03,T14] ( 3, 2.50) short -> rsi
+; V03 loc3 [V03,T08] ( 3, 2.50) short -> rsi
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T06] ( 2, 4 ) int -> rbx "value for stsfld with typeinit"
-; V06 tmp2 [V06,T07] ( 2, 4 ) int -> rdi "value for stsfld with typeinit"
-; V07 tmp3 [V07,T08] ( 2, 4 ) int -> rax "value for stsfld with typeinit"
-; V08 tmp4 [V08,T09] ( 2, 4 ) int -> rax "value for stsfld with typeinit"
-; V09 tmp5 [V09,T05] ( 3, 4 ) int -> rcx "value for stsfld with typeinit"
-; V10 tmp6 [V10,T10] ( 2, 4 ) int -> rcx "value for stsfld with typeinit"
-; V11 tmp7 [V11 ] ( 2, 2 ) ubyte -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V12 tmp8 [V12 ] ( 2, 2 ) ubyte -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V13 tmp9 [V13,T15] ( 3, 2.50) int -> rdi "Inline return value spill temp"
-; V14 tmp10 [V14,T16] ( 4, 2 ) int -> rcx "Inline return value spill temp"
-; V15 tmp11 [V15,T03] ( 3, 5 ) int -> rax "Inlining Arg"
-; V16 tmp12 [V16,T12] ( 3, 3 ) int -> rax "Inline return value spill temp"
-; V17 tmp13 [V17,T01] ( 3, 6 ) int -> rax "Inlining Arg"
-; V18 tmp14 [V18,T02] ( 3, 6 ) int -> rcx "Inlining Arg"
-; V19 cse0 [V19,T00] ( 19, 17 ) byref -> r15 "CSE - aggressive"
+; V05 tmp1 [V05,T14] ( 2, 2 ) ubyte -> rbx "Inline return value spill temp"
+; V06 tmp2 [V06 ] ( 2, 2 ) ubyte -> [rbp-0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V07 tmp3 [V07,T15] ( 2, 2 ) ubyte -> rdi "Inline return value spill temp"
+; V08 tmp4 [V08 ] ( 2, 2 ) ubyte -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V09 tmp5 [V09,T09] ( 3, 2.50) int -> rdi "Inline return value spill temp"
+; V10 tmp6 [V10,T12] ( 4, 2 ) int -> rcx "Inline return value spill temp"
+; V11 tmp7 [V11,T03] ( 3, 5 ) int -> rax "Inlining Arg"
+; V12 tmp8 [V12,T13] ( 3, 2 ) int -> rcx "Inline return value spill temp"
+; V13 tmp9 [V13,T06] ( 3, 3 ) int -> rax "Inline return value spill temp"
+; V14 tmp10 [V14,T01] ( 3, 6 ) int -> rax "Inlining Arg"
+; V15 tmp11 [V15,T02] ( 3, 6 ) int -> rcx "Inlining Arg"
+; V16 tmp12 [V16,T16] ( 2, 2 ) int -> rcx "Inline return value spill temp"
+; V17 cse0 [V17,T10] ( 3, 2.50) int -> rax "CSE - moderate"
+; V18 cse1 [V18,T11] ( 3, 2.50) int -> rax "CSE - moderate"
+; V19 cse2 [V19,T00] ( 17, 16 ) byref -> r15 "CSE - aggressive"
;
; Lcl frame size = 24
@@ -40,7 +40,7 @@ G_M39812_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 24
lea rbp, [rsp+0x30]
;; size=15 bbWeight=1 PerfScore 4.75
-G_M39812_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M39812_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [(reloc)] ; const ptr
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
@@ -51,7 +51,7 @@ G_M39812_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov ecx, 1
test eax, eax
cmove ebx, ecx
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
mov r15, rax
; byrRegs +[r15]
@@ -100,27 +100,29 @@ G_M39812_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rdi]
mov dword ptr [r15+0x0B3C], eax
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
mov ecx, dword ptr [rax+0x0A3C]
mov eax, ecx
; byrRegs -[rax]
imul eax, ebx
mov word ptr [r15+0x0B40], ax
- cmp word ptr [r15+0x0B40], 0x7FFF
- jg SHORT G_M39812_IG04
- ;; size=237 bbWeight=1 PerfScore 68.50
-G_M39812_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
movsx rax, word ptr [r15+0x0B40]
+ cmp eax, 0x7FFF
+ ;; size=238 bbWeight=1 PerfScore 68.75
+G_M39812_IG03: ; bbWeight=1, isz, extend
+ jg SHORT G_M39812_IG05
+ ;; size=2 bbWeight=1 PerfScore 1.00
+G_M39812_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
cdq
idiv edx:eax, ecx
cmp eax, ebx
- je SHORT G_M39812_IG05
- ;; size=15 bbWeight=0.50 PerfScore 15.38
-G_M39812_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
+ je SHORT G_M39812_IG06
+ ;; size=7 bbWeight=0.50 PerfScore 13.38
+G_M39812_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov word ptr [r15+0x0B40], 0x7FFF
;; size=10 bbWeight=0.50 PerfScore 0.50
-G_M39812_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+G_M39812_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
mov edi, 1
cmp r14d, 1
cmovg edi, r14d
@@ -133,39 +135,38 @@ G_M39812_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byr
mov word ptr [r15+0x0B42], ax
movsx rax, word ptr [r15+0x0B42]
cmp eax, esi
- jg SHORT G_M39812_IG07
+ jg SHORT G_M39812_IG08
;; size=57 bbWeight=1 PerfScore 14.00
-G_M39812_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
- movsx rax, word ptr [r15+0x0B42]
+G_M39812_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
cdq
idiv edx:eax, ecx
cmp eax, edi
- je SHORT G_M39812_IG08
- ;; size=15 bbWeight=0.50 PerfScore 15.38
-G_M39812_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
+ je SHORT G_M39812_IG09
+ ;; size=7 bbWeight=0.50 PerfScore 13.38
+G_M39812_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov word ptr [r15+0x0B42], si
;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M39812_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+G_M39812_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
mov eax, dword ptr [r15+0x0B3C]
cmp eax, 500
- jbe SHORT G_M39812_IG10
+ jbe SHORT G_M39812_IG11
;; size=14 bbWeight=1 PerfScore 3.25
-G_M39812_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
- mov ecx, 500
- jmp SHORT G_M39812_IG11
- ;; size=7 bbWeight=0.50 PerfScore 1.12
G_M39812_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+ mov ecx, 500
+ jmp SHORT G_M39812_IG12
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M39812_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
mov ecx, eax
cmp ecx, 1
- jbe SHORT G_M39812_IG12
+ jbe SHORT G_M39812_IG13
;; size=7 bbWeight=0.50 PerfScore 0.75
-G_M39812_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
- jmp SHORT G_M39812_IG13
+G_M39812_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+ jmp SHORT G_M39812_IG14
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M39812_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
+G_M39812_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov ecx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M39812_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
+G_M39812_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov dword ptr [r15+0x0B3C], ecx
mov eax, dword ptr [r15+0x0B38]
mov ecx, dword ptr [r15+0x0B3C]
@@ -176,7 +177,7 @@ G_M39812_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byr
cmova ecx, eax
mov dword ptr [r15+0x0B38], ecx
;; size=44 bbWeight=1 PerfScore 7.25
-G_M39812_IG14: ; bbWeight=1, epilog, nogc, extend
+G_M39812_IG15: ; bbWeight=1, epilog, nogc, extend
add rsp, 24
pop rbx
pop r14
@@ -185,7 +186,7 @@ G_M39812_IG14: ; bbWeight=1, epilog, nogc, extend
ret
;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 447, prolog size 15, PerfScore 135.75, instruction count 107, allocated bytes for code 447 (MethodHash=8fd9647b) for method System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
+; Total bytes of code 434, prolog size 15, PerfScore 133.00, instruction count 106, allocated bytes for code 434 (MethodHash=8fd9647b) for method System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
; ============================================================
Unwind Info:
-1 (-1.61%) : 154294.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
@@ -12,7 +12,7 @@
; V00 arg0 [V00,T00] ( 4, 3 ) ref -> rbx class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T02] ( 2, 2 ) int -> rsi "argument with side effect"
-; V03 cse0 [V03,T01] ( 3, 2.50) byref -> rax "CSE - aggressive"
+; V03 cse0 [V03,T01] ( 3, 2.50) int -> rsi "CSE - aggressive"
;
; Lcl frame size = 8
@@ -25,20 +25,21 @@ G_M64282_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 3.75
G_M64282_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
- cmp word ptr [rax], 47
- je SHORT G_M64282_IG05
- ;; size=12 bbWeight=1 PerfScore 7.00
-G_M64282_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref
movzx rsi, word ptr [rax]
+ cmp esi, 47
+ je SHORT G_M64282_IG05
+ ;; size=14 bbWeight=1 PerfScore 6.25
+G_M64282_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ; byrRegs -[rax]
mov rdi, rbx
; gcrRegs +[rdi]
lea r11, [(reloc)] ; function address
mov edx, 47
cmp dword ptr [rdi], edi
- ;; size=20 bbWeight=0.50 PerfScore 3.00
+ ;; size=17 bbWeight=0.50 PerfScore 2.00
G_M64282_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -47,7 +48,6 @@ G_M64282_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M64282_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdi]
- ; byrRegs -[rax]
mov rax, rbx
; gcrRegs +[rax]
;; size=3 bbWeight=0.50 PerfScore 0.12
@@ -58,7 +58,7 @@ G_M64282_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 62, prolog size 11, PerfScore 16.62, instruction count 22, allocated bytes for code 62 (MethodHash=904104e5) for method Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
+; Total bytes of code 61, prolog size 11, PerfScore 14.88, instruction count 22, allocated bytes for code 61 (MethodHash=904104e5) for method Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
-1 (-0.98%) : 157120.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -15,7 +15,7 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 2, 2 ) int -> rdx "argument with side effect"
; V05 tmp2 [V05,T03] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V06 cse0 [V06,T05] ( 3, 1.50) byref -> rax "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 1.50) int -> rdx "CSE - moderate"
;
; Lcl frame size = 8
@@ -45,11 +45,11 @@ G_M45118_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
;; size=20 bbWeight=1 PerfScore 5.00
G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
- cmp word ptr [rax], 47
- jne SHORT G_M45118_IG04
movzx rdx, word ptr [rax]
+ cmp edx, 47
+ jne SHORT G_M45118_IG04
mov rdi, rbx
; gcrRegs +[rdi]
lea r11, [(reloc)] ; function address
@@ -66,7 +66,7 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs -[rsi rdi r15]
mov r14, rax
; gcrRegs +[r14]
- ;; size=50 bbWeight=0.50 PerfScore 9.88
+ ;; size=49 bbWeight=0.50 PerfScore 8.50
G_M45118_IG04: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, r14
@@ -81,7 +81,7 @@ G_M45118_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 102, prolog size 12, PerfScore 24.38, instruction count 34, allocated bytes for code 102 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 101, prolog size 12, PerfScore 23.00, instruction count 34, allocated bytes for code 101 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
+1 (+4.35%) : 34390.dasm - .$Array:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> rbx "value for stsfld with typeinit"
;
; Lcl frame size = 0
@@ -17,20 +16,22 @@ G_M35347_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
;; size=1 bbWeight=1 PerfScore 1.00
G_M35347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- call [<unknown method>]
- ; gcr arg pop 0
- mov ebx, eax
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
- mov dword ptr [rax+0x0E10], ebx
- ;; size=20 bbWeight=1 PerfScore 7.25
+ mov rbx, rax
+ ; byrRegs +[rbx]
+ call [<unknown method>]
+ ; byrRegs -[rax]
+ ; gcr arg pop 0
+ mov dword ptr [rbx+0x0E10], eax
+ ;; size=21 bbWeight=1 PerfScore 7.25
G_M35347_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbx
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 23, prolog size 1, PerfScore 9.75, instruction count 7, allocated bytes for code 23 (MethodHash=db6175ec) for method <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
+; Total bytes of code 24, prolog size 1, PerfScore 9.75, instruction count 7, allocated bytes for code 24 (MethodHash=db6175ec) for method <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
; ============================================================
Unwind Info:
+1 (+4.35%) : 171954.dasm - Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> rbx "value for stsfld with typeinit"
;
; Lcl frame size = 0
@@ -17,20 +16,22 @@ G_M7219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
;; size=1 bbWeight=1 PerfScore 1.00
G_M7219_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- call [<unknown method>]
- ; gcr arg pop 0
- mov ebx, eax
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
- mov dword ptr [rax+0x220], ebx
- ;; size=20 bbWeight=1 PerfScore 7.25
+ mov rbx, rax
+ ; byrRegs +[rbx]
+ call [<unknown method>]
+ ; byrRegs -[rax]
+ ; gcr arg pop 0
+ mov dword ptr [rbx+0x220], eax
+ ;; size=21 bbWeight=1 PerfScore 7.25
G_M7219_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbx
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 23, prolog size 1, PerfScore 9.75, instruction count 7, allocated bytes for code 23 (MethodHash=ab7fe3cc) for method Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
+; Total bytes of code 24, prolog size 1, PerfScore 9.75, instruction count 7, allocated bytes for code 24 (MethodHash=ab7fe3cc) for method Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.linux.x64.checked.mch
-31 (-77.50%) : 1793.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
@@ -8,37 +8,25 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> rbx this class-hnd single-def <Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag>
+; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T01] ( 2, 2 ) int -> rax "Inline return value spill temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M40059_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
- mov rbx, rdi
- ; gcrRegs +[rbx]
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M40059_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M40059_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M40059_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbx+0x08]
+ push rax
+ ;; size=1 bbWeight=1 PerfScore 1.00
+G_M40059_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rdi]
+ mov eax, dword ptr [rdi+0x08]
;; size=3 bbWeight=1 PerfScore 2.00
-G_M40059_IG04: ; bbWeight=1, epilog, nogc, extend
- pop rbx
+G_M40059_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M40059_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 0x87F
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M40059_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 40, prolog size 1, PerfScore 8.75, instruction count 11, allocated bytes for code 40 (MethodHash=21e16384) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
+; Total bytes of code 9, prolog size 1, PerfScore 4.25, instruction count 4, allocated bytes for code 9 (MethodHash=21e16384) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -51,4 +39,4 @@ Unwind Info:
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08
-31 (-68.89%) : 2306.dasm - Microsoft.FSharp.Control.Trampoline:.cctor() (FullOpts)
@@ -8,34 +8,22 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 8
G_M39838_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M39838_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M39838_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M39838_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov dword ptr [(reloc)], edi
+G_M39838_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [(reloc)], eax
;; size=8 bbWeight=1 PerfScore 1.25
-G_M39838_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M39838_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M39838_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 908
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M39838_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 1, PerfScore 7.50, instruction count 11, allocated bytes for code 45 (MethodHash=1e3f6461) for method Microsoft.FSharp.Control.Trampoline:.cctor() (FullOpts)
+; Total bytes of code 14, prolog size 1, PerfScore 3.50, instruction count 5, allocated bytes for code 14 (MethodHash=1e3f6461) for method Microsoft.FSharp.Control.Trampoline:.cctor() (FullOpts)
; ============================================================
Unwind Info:
-31 (-68.89%) : 1892.dasm - Microsoft.FSharp.Quotations.FSharpVar:.cctor() (FullOpts)
@@ -8,34 +8,22 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 8
G_M59304_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M59304_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M59304_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M59304_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov dword ptr [(reloc)], edi
+G_M59304_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [(reloc)], eax
;; size=8 bbWeight=1 PerfScore 1.25
-G_M59304_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59304_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M59304_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 0x4D4
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M59304_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 1, PerfScore 7.50, instruction count 11, allocated bytes for code 45 (MethodHash=35091857) for method Microsoft.FSharp.Quotations.FSharpVar:.cctor() (FullOpts)
+; Total bytes of code 14, prolog size 1, PerfScore 3.50, instruction count 5, allocated bytes for code 14 (MethodHash=35091857) for method Microsoft.FSharp.Quotations.FSharpVar:.cctor() (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.42%) : 823.dasm - Microsoft.FSharp.Core.FSharpFunc2[long,System.Nullable1[int]]:InvokeFastlong:long (FullOpts)
@@ -7,13 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]]>
; V01 arg1 [V01,T01] ( 4, 3 ) long -> r15 single-def
; V02 arg2 [V02,T02] ( 4, 3 ) struct ( 8) [rbp-0x18] do-not-enreg[S] single-def <System.Nullable`1[int]>
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V06 tmp1 [V06,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 16
@@ -32,10 +32,10 @@ G_M58196_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M58196_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M58196_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -55,15 +55,15 @@ G_M58196_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x28]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.88
-G_M58196_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi] +[rbx]
- mov rdi, rbx
+G_M58196_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdi]
+ xor rdi, rdi
; gcrRegs +[rdi]
mov rsi, r15
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rbx rdi] +[rax]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
@@ -71,7 +71,7 @@ G_M58196_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=30 bbWeight=0.50 PerfScore 6.38
+ ;; size=34 bbWeight=0.50 PerfScore 6.38
G_M58196_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -80,7 +80,7 @@ G_M58196_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 117, prolog size 23, PerfScore 20.88, instruction count 37, allocated bytes for code 117 (MethodHash=4bb61cab) for method Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],long,System.Nullable`1[int]):long (FullOpts)
+; Total bytes of code 121, prolog size 23, PerfScore 20.88, instruction count 37, allocated bytes for code 121 (MethodHash=4bb61cab) for method Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],long,System.Nullable`1[int]):long (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.42%) : 776.dasm - Microsoft.FSharp.Core.FSharpFunc2[int,System.Nullable1[int]]:InvokeFastubyte:ubyte (FullOpts)
@@ -7,13 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]]>
; V01 arg1 [V01,T01] ( 4, 3 ) int -> r15 single-def
; V02 arg2 [V02,T02] ( 4, 3 ) struct ( 8) [rbp-0x18] do-not-enreg[S] single-def <System.Nullable`1[int]>
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V06 tmp1 [V06,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 16
@@ -32,10 +32,10 @@ G_M49112_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M49112_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M49112_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -55,15 +55,15 @@ G_M49112_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x28]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.88
-G_M49112_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi] +[rbx]
- mov rdi, rbx
+G_M49112_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdi]
+ xor rdi, rdi
; gcrRegs +[rdi]
mov esi, r15d
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rbx rdi] +[rax]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
@@ -71,7 +71,7 @@ G_M49112_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=30 bbWeight=0.50 PerfScore 6.38
+ ;; size=34 bbWeight=0.50 PerfScore 6.38
G_M49112_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -80,7 +80,7 @@ G_M49112_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 117, prolog size 23, PerfScore 20.88, instruction count 37, allocated bytes for code 117 (MethodHash=653e4027) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
+; Total bytes of code 121, prolog size 23, PerfScore 20.88, instruction count 37, allocated bytes for code 121 (MethodHash=653e4027) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.42%) : 820.dasm - Microsoft.FSharp.Core.FSharpFunc2[long,System.Nullable1[int]]:InvokeFastint:int (FullOpts)
@@ -7,13 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]]>
; V01 arg1 [V01,T01] ( 4, 3 ) long -> r15 single-def
; V02 arg2 [V02,T02] ( 4, 3 ) struct ( 8) [rbp-0x18] do-not-enreg[S] single-def <System.Nullable`1[int]>
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V06 tmp1 [V06,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 16
@@ -32,10 +32,10 @@ G_M23245_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M23245_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M23245_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -55,15 +55,15 @@ G_M23245_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x28]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.88
-G_M23245_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi] +[rbx]
- mov rdi, rbx
+G_M23245_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdi]
+ xor rdi, rdi
; gcrRegs +[rdi]
mov rsi, r15
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rbx rdi] +[rax]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
@@ -71,7 +71,7 @@ G_M23245_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=30 bbWeight=0.50 PerfScore 6.38
+ ;; size=34 bbWeight=0.50 PerfScore 6.38
G_M23245_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 16
pop rbx
@@ -80,7 +80,7 @@ G_M23245_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=12 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 117, prolog size 23, PerfScore 20.88, instruction count 37, allocated bytes for code 117 (MethodHash=ae23a532) for method Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],long,System.Nullable`1[int]):int (FullOpts)
+; Total bytes of code 121, prolog size 23, PerfScore 20.88, instruction count 37, allocated bytes for code 121 (MethodHash=ae23a532) for method Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],long,System.Nullable`1[int]):int (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.linux.x64.Release.mch
-20 (-62.50%) : 3563.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
@@ -14,17 +14,14 @@ G_M27576_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M27576_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 35
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov eax, dword ptr [(reloc)] ; static handle
- ;; size=26 bbWeight=1 PerfScore 3.50
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M27576_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 32 (MethodHash=44ff9447) for method Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
+; Total bytes of code 12, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 12 (MethodHash=44ff9447) for method Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
; ============================================================
Unwind Info:
-20 (-60.61%) : 8489.dasm - System.Security.Cryptography.SHA3512:getIsSupported():ubyte (Tier0)
@@ -14,17 +14,14 @@ G_M49554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M49554_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 272
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M49554_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=bcf63e6d) for method System.Security.Cryptography.SHA3_512:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=bcf63e6d) for method System.Security.Cryptography.SHA3_512:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
-20 (-60.61%) : 8497.dasm - System.Security.Cryptography.SHA3384:getIsSupported():ubyte (Tier0)
@@ -14,17 +14,14 @@ G_M50683_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M50683_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, 0xD1FFAB1E
- mov esi, 270
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M50683_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 33, prolog size 4, PerfScore 6.25, instruction count 8, allocated bytes for code 33 (MethodHash=f62c3a04) for method System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=f62c3a04) for method System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
+0 (0.00%) : 663.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:CreatePropertyInfoForTypeInfo():System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (Tier0)
@@ -56,12 +56,12 @@ G_M41961_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M41961_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x38]
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M41961_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x28]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x10]
+14 (+3.62%) : 2502.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
@@ -10,29 +10,34 @@
; V02 loc1 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] must-init ld-addr-op <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) struct ( 8) [rbp-0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper"
+; V05 tmp2 [V05 ] ( 1, 1 ) float -> [rbp-0x24] do-not-enreg[X] addr-exposed "location for address-of(RValue)"
; V06 tmp3 [V06 ] ( 1, 1 ) struct ( 8) [rbp-0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
; V07 tmp4 [V07 ] ( 1, 1 ) struct ( 8) [rbp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V08 tmp5 [V08 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <<unknown class>>
+; V08 tmp5 [V08 ] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "location for address-of(RValue)"
; V09 tmp6 [V09 ] ( 1, 1 ) struct ( 8) [rbp-0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V10 tmp7 [V10 ] ( 1, 1 ) struct ( 8) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V10 tmp7 [V10 ] ( 1, 1 ) double -> [rbp-0x50] do-not-enreg[X] addr-exposed "location for address-of(RValue)"
; V11 tmp8 [V11 ] ( 1, 1 ) struct ( 8) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V12 tmp9 [V12 ] ( 1, 1 ) ref -> [rbp-0x60] do-not-enreg[] must-init "argument with side effect"
+; V12 tmp9 [V12 ] ( 1, 1 ) struct ( 8) [rbp-0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V13 tmp10 [V13 ] ( 1, 1 ) ref -> [rbp-0x68] do-not-enreg[] must-init "argument with side effect"
+; V14 tmp11 [V14 ] ( 1, 1 ) ref -> [rbp-0x70] do-not-enreg[] must-init "argument with side effect"
+; V15 tmp12 [V15 ] ( 1, 1 ) ref -> [rbp-0x78] do-not-enreg[] must-init "argument with side effect"
+; V16 tmp13 [V16 ] ( 1, 1 ) ref -> [rbp-0x80] do-not-enreg[] must-init "argument with side effect"
;
-; Lcl frame size = 96
+; Lcl frame size = 128
G_M5822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 96
- lea rbp, [rsp+0x60]
+ sub rsp, 128
+ lea rbp, [rsp+0x80]
vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x80], ymm8
vmovdqu ymmword ptr [rbp-0x60], ymm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
vmovdqa xmmword ptr [rbp-0x20], xmm8
xor eax, eax
mov qword ptr [rbp-0x10], rax
mov dword ptr [rbp-0x04], edi
- ;; size=39 bbWeight=1 PerfScore 10.33
+ ;; size=50 bbWeight=1 PerfScore 12.33
G_M5822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbp-0x04], 7
ja SHORT G_M5822_IG03
@@ -51,43 +56,43 @@ G_M5822_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rax]
; gcrRegs +[rsi]
- lea rdi, [rbp-0x58]
+ lea rdi, [rbp-0x60]
call [<unknown method>]
; gcrRegs -[rsi]
- mov rax, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x60]
; gcrRegs +[rax]
mov gword ptr [rbp-0x10], rax
jmp G_M5822_IG11
;; size=36 bbWeight=1 PerfScore 9.75
G_M5822_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ xor eax, eax
+ mov qword ptr [rbp-0x50], rax
+ lea rsi, [rbp-0x50]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_UNBOX
; gcrRegs +[rax]
- mov gword ptr [rbp-0x40], rax
- mov rax, gword ptr [rbp-0x40]
- xor ecx, ecx
- mov qword ptr [rax+0x08], rcx
- mov rsi, gword ptr [rbp-0x40]
+ mov gword ptr [rbp-0x68], rax
+ mov rsi, gword ptr [rbp-0x68]
; gcrRegs +[rsi]
- lea rdi, [rbp-0x50]
+ lea rdi, [rbp-0x58]
call [<unknown method>]
; gcrRegs -[rax rsi]
- mov rax, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x58]
; gcrRegs +[rax]
mov gword ptr [rbp-0x10], rax
jmp G_M5822_IG11
- ;; size=56 bbWeight=1 PerfScore 13.00
+ ;; size=56 bbWeight=1 PerfScore 12.50
G_M5822_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ xor eax, eax
+ mov qword ptr [rbp-0x40], rax
+ lea rsi, [rbp-0x40]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_UNBOX
; gcrRegs +[rax]
- mov gword ptr [rbp-0x40], rax
- mov rax, gword ptr [rbp-0x40]
- xor ecx, ecx
- mov qword ptr [rax+0x08], rcx
- mov rsi, gword ptr [rbp-0x40]
+ mov gword ptr [rbp-0x70], rax
+ mov rsi, gword ptr [rbp-0x70]
; gcrRegs +[rsi]
lea rdi, [rbp-0x48]
call [<unknown method>]
@@ -96,15 +101,15 @@ G_M5822_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[rax]
mov gword ptr [rbp-0x10], rax
jmp G_M5822_IG11
- ;; size=56 bbWeight=1 PerfScore 13.00
+ ;; size=56 bbWeight=1 PerfScore 12.50
G_M5822_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rdi, 0xD1FFAB1E ; System.Decimal
mov rsi, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- call CORINFO_HELP_BOX
+ call CORINFO_HELP_UNBOX
; gcrRegs +[rax]
- mov gword ptr [rbp-0x60], rax
- mov rsi, gword ptr [rbp-0x60]
+ mov gword ptr [rbp-0x78], rax
+ mov rsi, gword ptr [rbp-0x78]
; gcrRegs +[rsi]
lea rdi, [rbp-0x38]
call [<unknown method>]
@@ -116,14 +121,14 @@ G_M5822_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=53 bbWeight=1 PerfScore 11.00
G_M5822_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
+ xor eax, eax
+ mov dword ptr [rbp-0x24], eax
+ lea rsi, [rbp-0x24]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_UNBOX
; gcrRegs +[rax]
- mov gword ptr [rbp-0x28], rax
- mov rax, gword ptr [rbp-0x28]
- xor ecx, ecx
- mov dword ptr [rax+0x08], ecx
- mov rsi, gword ptr [rbp-0x28]
+ mov gword ptr [rbp-0x80], rax
+ mov rsi, gword ptr [rbp-0x80]
; gcrRegs +[rsi]
lea rdi, [rbp-0x30]
call [<unknown method>]
@@ -132,7 +137,7 @@ G_M5822_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rax]
mov gword ptr [rbp-0x10], rax
jmp SHORT G_M5822_IG11
- ;; size=52 bbWeight=1 PerfScore 13.00
+ ;; size=52 bbWeight=1 PerfScore 12.50
G_M5822_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; const ptr
@@ -160,10 +165,10 @@ G_M5822_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[rax]
;; size=4 bbWeight=1 PerfScore 1.00
G_M5822_IG12: ; bbWeight=1, epilog, nogc, extend
- add rsp, 96
+ add rsp, 128
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=9 bbWeight=1 PerfScore 1.75
RWD00 dd G_M5822_IG04 - G_M5822_IG02
dd G_M5822_IG05 - G_M5822_IG02
dd G_M5822_IG06 - G_M5822_IG02
@@ -174,7 +179,7 @@ RWD00 dd G_M5822_IG04 - G_M5822_IG02
dd G_M5822_IG09 - G_M5822_IG02
-; Total bytes of code 387, prolog size 36, PerfScore 97.83, instruction count 88, allocated bytes for code 387 (MethodHash=751de941) for method Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
+; Total bytes of code 401, prolog size 47, PerfScore 98.33, instruction count 89, allocated bytes for code 401 (MethodHash=751de941) for method Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
; ============================================================
Unwind Info:
@@ -182,10 +187,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
+ SizeOfProlog : 0x08
CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 11 * 8 + 8 = 96 = 0x60
+ CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 15 * 8 + 8 = 128 = 0x80
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+16 (+12.50%) : 4416.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable1[ubyte]](System.String,System.Nullable1[ubyte]):this (Tier0)
@@ -7,7 +7,7 @@
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Xunit.TestFrameworkOptions>
; V01 arg1 [V01 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] class-hnd <System.String>
-; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[XSF] addr-exposed <System.Nullable`1[ubyte]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[XS] addr-exposed <System.Nullable`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "argument with side effect"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "argument with side effect"
@@ -26,11 +26,13 @@ G_M26730_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov dword ptr [rbp-0x18], edx
;; size=31 bbWeight=1 PerfScore 7.00
G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movzx rax, byte ptr [rbp-0x18]
- test eax, eax
+ lea rsi, [rbp-0x18]
+ mov rdi, 0xD1FFAB1E ; System.Nullable`1[ubyte]
+ call CORINFO_HELP_UNBOX_NULLABLE
+ ; gcrRegs +[rax]
+ test rax, rax
jne SHORT G_M26730_IG04
mov rax, gword ptr [rbp-0x08]
- ; gcrRegs +[rax]
mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
mov rsi, gword ptr [rbp-0x10]
@@ -39,7 +41,7 @@ G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rax rsi rdi]
nop
- ;; size=29 bbWeight=1 PerfScore 12.50
+ ;; size=45 bbWeight=1 PerfScore 13.25
G_M26730_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
@@ -52,7 +54,7 @@ G_M26730_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x28], rax
lea rsi, [rbp-0x18]
mov rdi, 0xD1FFAB1E ; System.Nullable`1[ubyte]
- call CORINFO_HELP_BOX_NULLABLE
+ call CORINFO_HELP_UNBOX_NULLABLE
mov gword ptr [rbp-0x20], rax
mov rdx, gword ptr [rbp-0x20]
; gcrRegs +[rdx]
@@ -71,7 +73,7 @@ G_M26730_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 128, prolog size 20, PerfScore 39.00, instruction count 37, allocated bytes for code 128 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
+; Total bytes of code 144, prolog size 20, PerfScore 39.75, instruction count 39, allocated bytes for code 144 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
; ============================================================
Unwind Info:
librariestestsnotieredcompilation.run.linux.x64.Release.mch
-31 (-79.49%) : 711.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
@@ -23,25 +23,15 @@ G_M59074_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
-G_M59074_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M59074_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M59074_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59074_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=1 PerfScore 0.25
-G_M59074_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59074_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-G_M59074_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 6
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- jmp SHORT G_M59074_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 39, prolog size 4, PerfScore 7.00, instruction count 11, allocated bytes for code 39 (MethodHash=a765193d) for method ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
+; Total bytes of code 8, prolog size 4, PerfScore 3.00, instruction count 5, allocated bytes for code 8 (MethodHash=a765193d) for method ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
; ============================================================
Unwind Info:
-31 (-62.00%) : 509.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -15,29 +15,17 @@
G_M52532_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M52532_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M52532_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M52532_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52532_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M52532_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M52532_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M52532_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rdi, 0xD1FFAB1E
- mov esi, 56
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M52532_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 50, prolog size 1, PerfScore 8.50, instruction count 11, allocated bytes for code 50 (MethodHash=5fc132cb) for method Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 4.50, instruction count 5, allocated bytes for code 19 (MethodHash=5fc132cb) for method Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
-31 (-62.00%) : 1141.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
@@ -16,29 +16,17 @@
G_M61451_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M61451_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M61451_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M61451_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M61451_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M61451_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M61451_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M61451_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rdi, 0xD1FFAB1E
- mov esi, 58
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M61451_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 50, prolog size 1, PerfScore 8.50, instruction count 11, allocated bytes for code 50 (MethodHash=49de0ff4) for method System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 4.50, instruction count 5, allocated bytes for code 19 (MethodHash=49de0ff4) for method System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
; ============================================================
Unwind Info:
-1 (-1.32%) : 489.dasm - Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -33,17 +33,17 @@ G_M47281_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi]
- test rax, rax
+ test rbx, rbx
jne SHORT G_M47281_IG05
;; size=36 bbWeight=1 PerfScore 8.00
-G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rsi, rbx
+G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbx]
+ xor rsi, rsi
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown method>
- ;; size=13 bbWeight=0.50 PerfScore 0.25
+ ;; size=12 bbWeight=0.50 PerfScore 0.25
G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -51,14 +51,14 @@ G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.List`1[System.__Canon]]
;; size=12 bbWeight=0.50 PerfScore 1.62
G_M47281_IG05: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi] +[rax]
+ ; gcrRegs -[rsi] +[rax]
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 76, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 76 (MethodHash=13da474e) for method Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
+; Total bytes of code 75, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 75 (MethodHash=13da474e) for method Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
; ============================================================
Unwind Info:
-1 (-1.32%) : 580.dasm - Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> rdi this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -33,17 +33,17 @@ G_M51894_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi]
- test rax, rax
+ test rbx, rbx
jne SHORT G_M51894_IG05
;; size=36 bbWeight=1 PerfScore 8.00
-G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rsi, rbx
+G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbx]
+ xor rsi, rsi
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown method>
- ;; size=13 bbWeight=0.50 PerfScore 0.25
+ ;; size=12 bbWeight=0.50 PerfScore 0.25
G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -51,14 +51,14 @@ G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [System.Linq.Enumerable:ToList[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.List`1[System.__Canon]]
;; size=12 bbWeight=0.50 PerfScore 1.62
G_M51894_IG05: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi] +[rax]
+ ; gcrRegs -[rsi] +[rax]
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 76, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 76 (MethodHash=ff0d3549) for method Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
+; Total bytes of code 75, prolog size 8, PerfScore 14.50, instruction count 22, allocated bytes for code 75 (MethodHash=ff0d3549) for method Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
; ============================================================
Unwind Info:
-7 (-0.61%) : 980.dasm - System.Linq.Enumerable:ToDictionarySystem.Canon,System.Canon,System.__Canon:System.Collections.Generic.Dictionary`2System.Canon,System.Canon
@@ -15,8 +15,8 @@
; V04 arg3 [V04,T09] ( 6, 4 ) ref -> r12 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
; V05 loc0 [V05 ] ( 3, 2 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc1 [V06,T12] ( 3, 5 ) ref -> r12 class-hnd exact single-def <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
-; V07 loc2 [V07,T51] ( 3, 1.50) ref -> [rbp-0x50] class-hnd spill-single-def <System.__Canon[]>
-; V08 loc3 [V08,T52] ( 3, 1.50) ref -> [rbp-0x58] class-hnd spill-single-def <System.Collections.Generic.List`1[System.__Canon]>
+; V07 loc2 [V07,T51] ( 3, 1.50) ref -> [rbp-0x58] class-hnd spill-single-def <System.__Canon[]>
+; V08 loc3 [V08,T55] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
;* V09 loc4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.ReadOnlySpan`1[System.__Canon]>
; V10 loc5 [V10,T07] ( 7, 9 ) ref -> [rbp-0x60] class-hnd EH-live spill-single-def <<unknown class>>
; V11 loc6 [V11,T06] ( 3, 12 ) ref -> r14 class-hnd <System.__Canon>
@@ -31,8 +31,8 @@
; V20 tmp8 [V20,T01] ( 2, 16 ) ref -> [rbp-0x70] class-hnd spill-single-def "non-inline candidate call" <System.__Canon>
;* V21 tmp9 [V21 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V22 tmp10 [V22 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V23 tmp11 [V23,T39] ( 3, 2 ) long -> r13 "spilling helperCall"
-; V24 tmp12 [V24,T40] ( 3, 2 ) long -> [rbp-0x40] "spilling helperCall"
+; V23 tmp11 [V23,T39] ( 3, 2 ) long -> [rbp-0x40] "spilling helperCall"
+; V24 tmp12 [V24,T40] ( 3, 2 ) long -> [rbp-0x48] "spilling helperCall"
;* V25 tmp13 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.Span`1[System.__Canon]>
;* V26 tmp14 [V26 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V27 tmp15 [V27,T41] ( 3, 2 ) long -> r13 "spilling helperCall"
@@ -43,7 +43,7 @@
; V32 tmp20 [V32,T02] ( 2, 16 ) ref -> rdx class-hnd "Inlining Arg" <System.__Canon>
;* V33 tmp21 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V34 tmp22 [V34,T56] ( 2, 1 ) byref -> r13 "field V09._reference (fldOffset=0x0)" P-INDEP
-; V35 tmp23 [V35,T59] ( 2, 1 ) int -> [rbp-0x44] spill-single-def "field V09._length (fldOffset=0x8)" P-INDEP
+; V35 tmp23 [V35,T59] ( 2, 1 ) int -> [rbp-0x4C] spill-single-def "field V09._length (fldOffset=0x8)" P-INDEP
; V36 tmp24 [V36,T57] ( 2, 1 ) byref -> rsi "field V25._reference (fldOffset=0x0)" P-INDEP
; V37 tmp25 [V37,T60] ( 2, 1 ) int -> rdx "field V25._length (fldOffset=0x8)" P-INDEP
; V38 tmp26 [V38,T58] ( 2, 1 ) byref -> rsi "field V29._reference (fldOffset=0x0)" P-INDEP
@@ -71,7 +71,7 @@
; V60 rat13 [V60,T23] ( 3, 2.80) long -> rdi "spilling expr"
; V61 rat14 [V61,T33] ( 3, 2.24) long -> rdi "fgMakeTemp is creating a new local variable"
; V62 rat15 [V62,T24] ( 3, 2.80) long -> rdi "spilling expr"
-; V63 rat16 [V63,T34] ( 3, 2.24) long -> r13 "fgMakeTemp is creating a new local variable"
+; V63 rat16 [V63,T34] ( 3, 2.24) long -> rax "fgMakeTemp is creating a new local variable"
; V64 rat17 [V64,T25] ( 3, 2.80) long -> rdi "spilling expr"
; V65 rat18 [V65,T35] ( 3, 2.24) long -> rcx "fgMakeTemp is creating a new local variable"
; V66 rat19 [V66,T46] ( 3, 2 ) long -> rdi "runtime lookup"
@@ -82,9 +82,9 @@
; V71 rat24 [V71,T37] ( 3, 2.24) long -> rdi "fgMakeTemp is creating a new local variable"
; V72 rat25 [V72,T28] ( 3, 2.80) long -> rdi "spilling expr"
; V73 rat26 [V73,T38] ( 3, 2.24) long -> r11 "fgMakeTemp is creating a new local variable"
-; V74 rat27 [V74,T55] ( 3, 1 ) long -> r13 "runtime lookup"
-; V75 rat28 [V75,T53] ( 3, 1.40) long -> rdi "spilling expr"
-; V76 rat29 [V76,T54] ( 3, 1.12) long -> r13 "fgMakeTemp is creating a new local variable"
+; V74 rat27 [V74,T54] ( 3, 1 ) long -> r13 "runtime lookup"
+; V75 rat28 [V75,T52] ( 3, 1.40) long -> rdi "spilling expr"
+; V76 rat29 [V76,T53] ( 3, 1.12) long -> r13 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 88
@@ -127,7 +127,7 @@ G_M36297_IG03: ; bbWeight=0.80, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRe
G_M36297_IG04: ; bbWeight=0.20, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdi, rax
;; size=21 bbWeight=0.20 PerfScore 0.35
@@ -160,12 +160,12 @@ G_M36297_IG08: ; bbWeight=0.32, gcrefRegs=1000 {r12}, byrefRegs=0000 {},
G_M36297_IG09: ; bbWeight=0.18, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdi, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG10: ; bbWeight=0.50, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
; gcr arg pop 0
mov r14, rax
@@ -208,21 +208,21 @@ G_M36297_IG14: ; bbWeight=0.32, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRe
G_M36297_IG15: ; bbWeight=0.18, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdi, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG16: ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r13
; gcrRegs +[rsi]
- call CORINFO_HELP_ISINSTANCEOFARRAY
+ call CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- mov gword ptr [rbp-0x50], rax
+ mov gword ptr [rbp-0x58], rax
; GC ptr vars +{V07}
test rax, rax
je G_M36297_IG28
- mov rax, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x58]
mov rdi, qword ptr [r14+0x38]
cmp qword ptr [rdi+0x18], 104
jle SHORT G_M36297_IG20
@@ -242,10 +242,10 @@ G_M36297_IG20: ; bbWeight=0.18, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
; gcrRegs -[rax]
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r13, rax
- mov rax, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x58]
; gcrRegs +[rax]
;; size=25 bbWeight=0.18 PerfScore 0.49
G_M36297_IG21: ; bbWeight=0.50, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
@@ -268,10 +268,10 @@ G_M36297_IG25: ; bbWeight=0.18, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
; gcrRegs -[rax]
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r14, rax
- mov rax, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x58]
; gcrRegs +[rax]
;; size=25 bbWeight=0.18 PerfScore 0.49
G_M36297_IG26: ; bbWeight=0.50, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref
@@ -325,97 +325,91 @@ G_M36297_IG30: ; bbWeight=0.32, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRe
G_M36297_IG31: ; bbWeight=0.18, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdi, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG32: ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r13
; gcrRegs +[rsi]
- call CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[rsi] +[rax]
- ; gcr arg pop 0
- mov gword ptr [rbp-0x58], rax
- ; GC ptr vars +{V08}
- test rax, rax
- je G_M36297_IG48
- mov rax, gword ptr [rbp-0x58]
- mov rdi, qword ptr [r14+0x38]
- cmp qword ptr [rdi+0x18], 80
- jle SHORT G_M36297_IG36
- ;; size=36 bbWeight=0.50 PerfScore 5.25
-G_M36297_IG33: ; bbWeight=0.40, gcVars=0010000000000000 {V08}, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r13]
- mov r13, qword ptr [rdi+0x50]
- test r13, r13
- je SHORT G_M36297_IG35
- ;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M36297_IG34: ; bbWeight=0.32, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M36297_IG37
- ;; size=2 bbWeight=0.32 PerfScore 0.64
-G_M36297_IG35: ; bbWeight=0.20, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
- ;; size=0 bbWeight=0.20 PerfScore 0.00
-G_M36297_IG36: ; bbWeight=0.18, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rdi, r14
- mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[rsi r13] +[rax]
; gcr arg pop 0
mov r13, rax
- mov rax, gword ptr [rbp-0x58]
- ; gcrRegs +[rax]
- ;; size=25 bbWeight=0.18 PerfScore 0.49
-G_M36297_IG37: ; bbWeight=0.50, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r13]
mov rdi, qword ptr [r14+0x38]
- cmp qword ptr [rdi+0x18], 88
- jle SHORT G_M36297_IG41
- ;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M36297_IG38: ; bbWeight=0.40, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [rdi+0x58]
- test rcx, rcx
- je SHORT G_M36297_IG40
- ;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M36297_IG39: ; bbWeight=0.32, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
- mov qword ptr [rbp-0x40], rcx
- jmp SHORT G_M36297_IG42
- ;; size=6 bbWeight=0.32 PerfScore 0.96
-G_M36297_IG40: ; bbWeight=0.20, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
- ;; size=0 bbWeight=0.20 PerfScore 0.00
-G_M36297_IG41: ; bbWeight=0.18, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
+ cmp qword ptr [rdi+0x18], 80
+ jle SHORT G_M36297_IG35
+ ;; size=22 bbWeight=0.50 PerfScore 3.75
+G_M36297_IG33: ; bbWeight=0.40, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
+ mov rax, qword ptr [rdi+0x50]
+ test rax, rax
+ je SHORT G_M36297_IG35
+ ;; size=9 bbWeight=0.40 PerfScore 1.30
+G_M36297_IG34: ; bbWeight=0.32, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M36297_IG36
+ ;; size=2 bbWeight=0.32 PerfScore 0.64
+G_M36297_IG35: ; bbWeight=0.18, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
mov rdi, r14
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov qword ptr [rbp-0x40], rax
- mov rax, gword ptr [rbp-0x58]
- ; gcrRegs +[rax]
+ ;; size=22 bbWeight=0.18 PerfScore 0.45
+G_M36297_IG36: ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ mov rdi, qword ptr [r14+0x38]
+ cmp qword ptr [rdi+0x18], 88
+ jle SHORT G_M36297_IG40
+ ;; size=11 bbWeight=0.50 PerfScore 3.00
+G_M36297_IG37: ; bbWeight=0.40, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ mov rcx, qword ptr [rdi+0x58]
+ test rcx, rcx
+ je SHORT G_M36297_IG39
+ ;; size=9 bbWeight=0.40 PerfScore 1.30
+G_M36297_IG38: ; bbWeight=0.32, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ mov qword ptr [rbp-0x48], rcx
+ jmp SHORT G_M36297_IG42
+ ;; size=6 bbWeight=0.32 PerfScore 0.96
+G_M36297_IG39: ; bbWeight=0.20, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ mov qword ptr [rbp-0x40], rax
+ jmp SHORT G_M36297_IG41
+ ;; size=6 bbWeight=0.20 PerfScore 0.60
+G_M36297_IG40: ; bbWeight=0.25, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+ mov qword ptr [rbp-0x40], rax
+ ;; size=4 bbWeight=0.25 PerfScore 0.25
+G_M36297_IG41: ; bbWeight=0.18, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+ mov rdi, r14
+ mov rsi, 0xD1FFAB1E ; global ptr
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ ; gcr arg pop 0
+ mov qword ptr [rbp-0x48], rax
+ mov rax, qword ptr [rbp-0x40]
;; size=26 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG42: ; bbWeight=0.50, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref, isz
- mov rdi, r13
- mov rsi, rax
+G_M36297_IG42: ; bbWeight=0.50, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ mov rdi, rax
...
realworld.run.linux.x64.checked.mch
-31 (-68.89%) : 2649.dasm - FSharp.Compiler.Syntax.PrettyNaming:.cctor() (FullOpts)
@@ -8,34 +8,22 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 8
G_M20736_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M20736_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M20736_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M20736_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov dword ptr [(reloc)], edi
+G_M20736_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [(reloc)], eax
;; size=8 bbWeight=1 PerfScore 1.25
-G_M20736_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M20736_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M20736_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 0x3473
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M20736_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 1, PerfScore 7.50, instruction count 11, allocated bytes for code 45 (MethodHash=8db3aeff) for method FSharp.Compiler.Syntax.PrettyNaming:.cctor() (FullOpts)
+; Total bytes of code 14, prolog size 1, PerfScore 3.50, instruction count 5, allocated bytes for code 14 (MethodHash=8db3aeff) for method FSharp.Compiler.Syntax.PrettyNaming:.cctor() (FullOpts)
; ============================================================
Unwind Info:
-31 (-68.89%) : 3433.dasm - FSharp.Compiler.Parser:.cctor() (FullOpts)
@@ -8,34 +8,22 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 8
G_M31228_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M31228_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M31228_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M31228_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov dword ptr [(reloc)], edi
+G_M31228_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [(reloc)], eax
;; size=8 bbWeight=1 PerfScore 1.25
-G_M31228_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M31228_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M31228_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 0x3382
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M31228_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 1, PerfScore 7.50, instruction count 11, allocated bytes for code 45 (MethodHash=c6be8603) for method FSharp.Compiler.Parser:.cctor() (FullOpts)
+; Total bytes of code 14, prolog size 1, PerfScore 3.50, instruction count 5, allocated bytes for code 14 (MethodHash=c6be8603) for method FSharp.Compiler.Parser:.cctor() (FullOpts)
; ============================================================
Unwind Info:
-31 (-68.89%) : 2410.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
@@ -8,34 +8,22 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 8
G_M59575_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M59575_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M59575_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M59575_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov dword ptr [(reloc)], edi
+G_M59575_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [(reloc)], eax
;; size=8 bbWeight=1 PerfScore 1.25
-G_M59575_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59575_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M59575_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rdi, 0xD1FFAB1E
- mov esi, 0x3B44
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M59575_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 1, PerfScore 7.50, instruction count 11, allocated bytes for code 45 (MethodHash=75061748) for method FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
+; Total bytes of code 14, prolog size 1, PerfScore 3.50, instruction count 5, allocated bytes for code 14 (MethodHash=75061748) for method FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.72%) : 3116.dasm - Microsoft.FSharp.Core.FSharpFunc2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc2[int,System.Canon],int,System.Canon):System.__Canon (FullOpts)
@@ -8,15 +8,15 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 5, 4.20) long -> rdi single-def
-; V01 arg0 [V01,T01] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]>
; V02 arg1 [V02,T04] ( 4, 3 ) int -> r14 single-def
; V03 arg2 [V03,T03] ( 4, 3 ) ref -> r15 class-hnd single-def <System.__Canon>
-; V04 loc0 [V04,T07] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V04 loc0 [V04,T08] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp2 [V08,T06] ( 2, 4 ) long -> rdi "argument with side effect"
-; V09 tmp3 [V09,T08] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V09 tmp3 [V09,T07] ( 3, 3 ) ref -> rax single-def "argument with side effect"
; V10 rat0 [V10,T05] ( 3, 4 ) long -> rdi "runtime lookup"
; V11 rat1 [V11,T02] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;
@@ -48,17 +48,17 @@ G_M46648_IG03: ; bbWeight=0.80, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
;; size=5 bbWeight=0.80 PerfScore 1.80
G_M46648_IG04: ; bbWeight=0.20, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rsi, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdi, rax
;; size=18 bbWeight=0.20 PerfScore 0.30
G_M46648_IG05: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, rbx
; gcrRegs +[rsi]
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M46648_IG08
;; size=13 bbWeight=1 PerfScore 2.50
G_M46648_IG06: ; bbWeight=0.50, gcrefRegs=8001 {rax r15}, byrefRegs=0000 {}, byref
@@ -80,15 +80,15 @@ G_M46648_IG07: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x28]<unknown method>
;; size=14 bbWeight=0.50 PerfScore 2.12
-G_M46648_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdx rdi] +[rbx]
- mov rdi, rbx
+G_M46648_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdx rdi]
+ xor rdi, rdi
; gcrRegs +[rdi]
mov esi, r14d
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rbx rdi] +[rax]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
@@ -97,7 +97,7 @@ G_M46648_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=29 bbWeight=0.50 PerfScore 6.00
+ ;; size=33 bbWeight=0.50 PerfScore 6.00
G_M46648_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -107,7 +107,7 @@ G_M46648_IG09: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=14 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 147, prolog size 25, PerfScore 29.73, instruction count 49, allocated bytes for code 147 (MethodHash=085649c7) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
+; Total bytes of code 151, prolog size 25, PerfScore 29.73, instruction count 49, allocated bytes for code 151 (MethodHash=085649c7) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
; ============================================================
Unwind Info:
+3 (+3.03%) : 2046.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.Xml.XmlNode>
-; V01 loc0 [V01,T01] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V00 this [V00,T00] ( 6, 5 ) ref -> rbx this class-hnd single-def <System.Xml.XmlNode>
+; V01 loc0 [V01,T02] ( 2, 1.50) ref -> rsi class-hnd single-def <<unknown class>>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V04 tmp1 [V04,T01] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -27,44 +27,44 @@ G_M19732_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
- je SHORT G_M19732_IG05
- ;; size=23 bbWeight=1 PerfScore 2.75
-G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rsi, rbx
+ mov rsi, rax
; gcrRegs +[rsi]
- mov rax, qword ptr [rax]
+ test rbx, rbx
+ je SHORT G_M19732_IG05
+ ;; size=26 bbWeight=1 PerfScore 3.00
+G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x98]
- ;; size=16 bbWeight=0.50 PerfScore 2.25
+ ;; size=13 bbWeight=0.50 PerfScore 2.12
G_M19732_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop rbp
tail.jmp [rax+0x10]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rsi rdi]
- mov rdi, rbx
+G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rbx rsi rdi]
+ xor rdi, rdi
; gcrRegs +[rdi]
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x50]
call [rax+0x30]<unknown method>
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
- mov rsi, rbx
+ xor rsi, rsi
; gcrRegs +[rsi]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x98]
- ;; size=29 bbWeight=0.50 PerfScore 5.88
+ ;; size=32 bbWeight=0.50 PerfScore 5.88
G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -72,7 +72,7 @@ G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x10]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 99, prolog size 11, PerfScore 17.88, instruction count 30, allocated bytes for code 99 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
+; Total bytes of code 102, prolog size 11, PerfScore 18.00, instruction count 30, allocated bytes for code 102 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.42%) : 3048.dasm - Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
@@ -7,14 +7,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <FSharp.Compiler.AbstractIL.BinaryConstants+TableName>
; V02 arg2 [V02,T01] ( 4, 3 ) int -> r15 single-def
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T02] ( 3, 2 ) int -> r14 single-def "field V01.idx (fldOffset=0x0)" P-INDEP
-; V07 tmp2 [V07,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V07 tmp2 [V07,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -34,10 +34,10 @@ G_M49388_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M49388_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M49388_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -58,15 +58,15 @@ G_M49388_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
tail.jmp [rax+0x28]<unknown method>
;; size=14 bbWeight=0.50 PerfScore 2.12
-G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rdi] +[rbx]
- mov rdi, rbx
+G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rdi]
+ xor rdi, rdi
; gcrRegs +[rdi]
mov esi, r14d
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rbx rdi] +[rax]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
@@ -74,7 +74,7 @@ G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=29 bbWeight=0.50 PerfScore 6.00
+ ;; size=33 bbWeight=0.50 PerfScore 6.00
G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
@@ -84,7 +84,7 @@ G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=14 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 117, prolog size 21, PerfScore 21.62, instruction count 40, allocated bytes for code 117 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
+; Total bytes of code 121, prolog size 21, PerfScore 21.62, instruction count 40, allocated bytes for code 121 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
; ============================================================
Unwind Info:
smoke_tests.nativeaot.linux.x64.checked.mch
-23 (-60.53%) : 3342.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
@@ -15,29 +15,20 @@
G_M47143_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M47143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea rax, [(reloc)]
- cmp qword ptr [rax-0x08], 0
- jne SHORT G_M47143_IG05
- ;; size=14 bbWeight=1 PerfScore 4.50
-G_M47143_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, qword ptr [(reloc)]
+G_M47143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
mov rax, gword ptr [rax+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M47143_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[rax]
+ ;; size=9 bbWeight=1 PerfScore 3.00
+G_M47143_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M47143_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp SHORT G_M47143_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 38, prolog size 1, PerfScore 10.75, instruction count 10, allocated bytes for code 38 (MethodHash=9ea447d8) for method Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 15, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 15 (MethodHash=9ea447d8) for method Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================
Cfi Info:
-23 (-60.53%) : 1699.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
@@ -15,29 +15,20 @@
G_M28146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M28146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea rax, [(reloc)]
- cmp qword ptr [rax-0x08], 0
- jne SHORT G_M28146_IG05
- ;; size=14 bbWeight=1 PerfScore 4.50
-G_M28146_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, qword ptr [(reloc)]
+G_M28146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
mov rax, gword ptr [rax+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M28146_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[rax]
+ ;; size=9 bbWeight=1 PerfScore 3.00
+G_M28146_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M28146_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp SHORT G_M28146_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 38, prolog size 1, PerfScore 10.75, instruction count 10, allocated bytes for code 38 (MethodHash=6de6920d) for method Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
+; Total bytes of code 15, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 15 (MethodHash=6de6920d) for method Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
; ============================================================
Cfi Info:
-23 (-60.53%) : 7223.dasm - System.Linq.Expressions.BlockExpression:GetOrMakeVariables():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]:this (FullOpts)
@@ -15,29 +15,20 @@
G_M57960_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M57960_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea rax, [(reloc)]
- cmp qword ptr [rax-0x08], 0
- jne SHORT G_M57960_IG05
- ;; size=14 bbWeight=1 PerfScore 4.50
-G_M57960_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, qword ptr [(reloc)]
+G_M57960_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
mov rax, gword ptr [rax+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M57960_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[rax]
+ ;; size=9 bbWeight=1 PerfScore 3.00
+G_M57960_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M57960_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp SHORT G_M57960_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 38, prolog size 1, PerfScore 10.75, instruction count 10, allocated bytes for code 38 (MethodHash=656a1d97) for method System.Linq.Expressions.BlockExpression:GetOrMakeVariables():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]:this (FullOpts)
+; Total bytes of code 15, prolog size 1, PerfScore 5.25, instruction count 5, allocated bytes for code 15 (MethodHash=656a1d97) for method System.Linq.Expressions.BlockExpression:GetOrMakeVariables():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]:this (FullOpts)
; ============================================================
Cfi Info:
-30 (-3.38%) : 5310.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM(byref,ubyte,byref):ubyte (FullOpts)
@@ -33,12 +33,12 @@
; V23 tmp14 [V23,T11] ( 2, 2 ) struct (40) [rbp-0xC8] do-not-enreg[S] must-init single-def "argument with side effect" <System.Globalization.TimeSpanFormat+FormatLiterals>
; V24 tmp15 [V24,T12] ( 2, 2 ) struct (40) [rbp-0xF0] do-not-enreg[S] must-init single-def "argument with side effect" <System.Globalization.TimeSpanFormat+FormatLiterals>
; V25 cse0 [V25,T13] ( 3, 1.50) byref -> [rbp-0xF8] spill-single-def "CSE - moderate"
-; V26 cse1 [V26,T14] ( 2, 1 ) int -> rcx "CSE - moderate"
+; V26 cse1 [V26,T14] ( 2, 1 ) int -> rax "CSE - moderate"
; V27 cse2 [V27,T07] ( 4, 2 ) int -> r14 "CSE - aggressive"
;
; Lcl frame size = 376
-G_M20866_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M20866_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
@@ -75,7 +75,7 @@ G_M20866_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15},
; byrRegs +[rdi]
call System.Globalization.TimeSpanParse+TimeSpanResult:SetBadTimeSpanFailure():ubyte:this
; byrRegs -[rdi r15]
- jmp G_M20866_IG20
+ jmp G_M20866_IG19
;; size=13 bbWeight=0.50 PerfScore 1.62
G_M20866_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
; byrRegs +[rbx r15]
@@ -89,25 +89,21 @@ G_M20866_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
; gcrRegs -[rsi rdi]
;; size=25 bbWeight=0.50 PerfScore 3.00
G_M20866_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov ecx, r14d
- and ecx, 1
+ mov eax, r14d
+ and eax, 1
test r14b, 2
setne r14b
movzx r14, r14b
xor r13d, r13d
xor r12d, r12d
- test ecx, ecx
- je G_M20866_IG12
- lea rcx, [(reloc)]
- cmp qword ptr [rcx-0x08], 0
- jne G_M20866_IG22
- ;; size=50 bbWeight=0.50 PerfScore 4.12
-G_M20866_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov rax, qword ptr [(reloc)]
+ test eax, eax
+ je G_M20866_IG11
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
mov bword ptr [rbp-0xF8], rax
; GC ptr vars +{V25}
- ;; size=14 bbWeight=0.50 PerfScore 1.50
-G_M20866_IG08: ; bbWeight=0.50, nogc, extend
+ ;; size=44 bbWeight=0.50 PerfScore 2.88
+G_M20866_IG07: ; bbWeight=0.50, nogc, extend
movups xmm0, xmmword ptr [rax+0x08]
movups xmmword ptr [rbp-0xC8], xmm0
movups xmm0, xmmword ptr [rax+0x18]
@@ -115,7 +111,7 @@ G_M20866_IG08: ; bbWeight=0.50, nogc, extend
mov rcx, qword ptr [rax+0x28]
mov qword ptr [rbp-0xA8], rcx
;; size=33 bbWeight=0.50 PerfScore 6.50
-G_M20866_IG09: ; bbWeight=0.50, isz, extend
+G_M20866_IG08: ; bbWeight=0.50, isz, extend
lea rdi, [rsp]
lea rsi, [rbp-0xC8]
mov rcx, gword ptr [rsi]
@@ -134,14 +130,14 @@ G_M20866_IG09: ; bbWeight=0.50, isz, extend
; byrRegs +[rdi]
call System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this
; gcrRegs -[rcx]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
test eax, eax
- je SHORT G_M20866_IG10
+ je SHORT G_M20866_IG09
mov r12d, 1
mov r13d, 1
- jmp SHORT G_M20866_IG12
+ jmp SHORT G_M20866_IG11
;; size=74 bbWeight=0.50 PerfScore 8.00
-G_M20866_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, nogc
+G_M20866_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, nogc
mov rdi, bword ptr [rbp-0xF8]
; byrRegs +[rdi]
movups xmm0, xmmword ptr [rdi+0x30]
@@ -151,7 +147,7 @@ G_M20866_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
mov rcx, qword ptr [rdi+0x50]
mov qword ptr [rbp-0xD0], rcx
;; size=40 bbWeight=0.50 PerfScore 7.00
-G_M20866_IG11: ; bbWeight=0.50, isz, extend
+G_M20866_IG10: ; bbWeight=0.50, isz, extend
lea rdi, [rsp]
; byrRegs -[rdi]
lea rsi, [rbp-0xF0]
@@ -174,15 +170,15 @@ G_M20866_IG11: ; bbWeight=0.50, isz, extend
; gcrRegs -[rcx]
; byrRegs -[rdi]
test eax, eax
- je SHORT G_M20866_IG12
+ je SHORT G_M20866_IG11
mov r12d, 1
xor r13d, r13d
;; size=69 bbWeight=0.50 PerfScore 7.00
-G_M20866_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M20866_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
test r14d, r14d
- je G_M20866_IG14
+ je G_M20866_IG13
test r12d, r12d
- jne G_M20866_IG14
+ jne G_M20866_IG13
lea rsi, [rbp-0xA0]
mov rdi, rbx
; byrRegs +[rdi]
@@ -208,12 +204,12 @@ G_M20866_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
; gcrRegs -[rcx]
; byrRegs -[rdi]
test eax, eax
- je SHORT G_M20866_IG13
+ je SHORT G_M20866_IG12
mov r12d, 1
mov r13d, 1
- jmp SHORT G_M20866_IG14
+ jmp SHORT G_M20866_IG13
;; size=107 bbWeight=0.50 PerfScore 10.12
-G_M20866_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M20866_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
lea rsi, [rbp-0x78]
mov rdi, rbx
; byrRegs +[rdi]
@@ -239,15 +235,15 @@ G_M20866_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
; gcrRegs -[rcx]
; byrRegs -[rdi]
test eax, eax
- je SHORT G_M20866_IG14
+ je SHORT G_M20866_IG13
xor r13d, r13d
- jmp SHORT G_M20866_IG15
+ jmp SHORT G_M20866_IG14
;; size=74 bbWeight=0.50 PerfScore 8.75
-G_M20866_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M20866_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
je G_M20866_IG04
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M20866_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
+G_M20866_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
mov byte ptr [rbp-0x48], 2
xorps xmm0, xmm0
movups xmmword ptr [rbp-0x38], xmm0
@@ -307,31 +303,31 @@ G_M20866_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
call <unknown method>
; byrRegs -[rax rcx rbx]
test eax, eax
- jne SHORT G_M20866_IG17
+ jne SHORT G_M20866_IG16
;; size=196 bbWeight=0.50 PerfScore 21.54
-G_M20866_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+G_M20866_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
mov rdi, r15
; byrRegs +[rdi]
call System.Globalization.TimeSpanParse+TimeSpanResult:SetOverflowFailure():ubyte:this
; byrRegs -[rdi r15]
- jmp SHORT G_M20866_IG20
+ jmp SHORT G_M20866_IG19
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M20866_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+G_M20866_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
; byrRegs +[r15]
test r13d, r13d
- jne SHORT G_M20866_IG18
+ jne SHORT G_M20866_IG17
mov rax, qword ptr [rbp-0x50]
neg rax
mov qword ptr [rbp-0x50], rax
cmp qword ptr [rbp-0x50], 0
- jg SHORT G_M20866_IG16
+ jg SHORT G_M20866_IG15
;; size=23 bbWeight=0.50 PerfScore 3.25
-G_M20866_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
+G_M20866_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov rax, qword ptr [rbp-0x50]
mov qword ptr [r15], rax
mov eax, 1
;; size=12 bbWeight=0.50 PerfScore 1.12
-G_M20866_IG19: ; bbWeight=0.50, epilog, nogc, extend
+G_M20866_IG18: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 376
pop rbx
pop r12
@@ -341,11 +337,11 @@ G_M20866_IG19: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M20866_IG20: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M20866_IG19: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; byrRegs -[r15]
movzx rax, al
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M20866_IG21: ; bbWeight=0.50, epilog, nogc, extend
+G_M20866_IG20: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 376
pop rbx
pop r12
@@ -355,14 +351,8 @@ G_M20866_IG21: ; bbWeight=0.50, epilog, nogc, extend
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M20866_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, gcvars, byref
- ; byrRegs +[rbx r15]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- jmp G_M20866_IG07
- ;; size=10 bbWeight=0 PerfScore 0.00
-; Total bytes of code 887, prolog size 67, PerfScore 111.00, instruction count 235, allocated bytes for code 887 (MethodHash=7c17ae7d) for method System.Globalization.TimeSpanParse:ProcessTerminal_HM(byref,ubyte,byref):ubyte (FullOpts)
+; Total bytes of code 857, prolog size 67, PerfScore 108.25, instruction count 230, allocated bytes for code 857 (MethodHash=7c17ae7d) for method System.Globalization.TimeSpanParse:ProcessTerminal_HM(byref,ubyte,byref):ubyte (FullOpts)
; ============================================================
Cfi Info:
-32 (-0.76%) : 5309.dasm - System.Globalization.TimeSpanParse:ProcessTerminalHMS_D(byref,ubyte,byref):ubyte (FullOpts)
@@ -10,7 +10,7 @@
; V00 arg0 [V00,T00] ( 58, 30.50) byref -> rbx single-def
; V01 arg1 [V01,T06] ( 3, 2.50) ubyte -> rsi single-def
; V02 arg2 [V02,T05] ( 5, 3.50) byref -> r15 single-def
-; V03 loc0 [V03,T35] ( 2, 1 ) ubyte -> rcx
+; V03 loc0 [V03,T35] ( 2, 1 ) ubyte -> rax
; V04 loc1 [V04,T36] ( 2, 1 ) ubyte -> r14
; V05 loc2 [V05,T04] ( 14, 7 ) ubyte -> r13
; V06 loc3 [V06,T01] ( 37, 18.50) ubyte -> r12
@@ -86,12 +86,12 @@ G_M35317_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=94 bbWeight=1 PerfScore 20.33
G_M35317_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
cmp dword ptr [rbx+0x14], 4
- jne G_M35317_IG68
+ jne G_M35317_IG67
;; size=10 bbWeight=1 PerfScore 4.00
G_M35317_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
movzx r14, sil
test r14b, 4
- jne G_M35317_IG68
+ jne G_M35317_IG67
cmp dword ptr [rbx+0x18], 3
je SHORT G_M35317_IG04
lea rdi, gword ptr [(reloc)]
@@ -102,44 +102,40 @@ G_M35317_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r1
; gcrRegs -[rsi rdi]
;; size=39 bbWeight=0.50 PerfScore 3.75
G_M35317_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov ecx, r14d
- and ecx, 1
+ mov eax, r14d
+ and eax, 1
test r14b, 2
setne r14b
movzx r14, r14b
xor r13d, r13d
xor r12d, r12d
- xor eax, eax
- mov dword ptr [rbp-0x2C], eax
+ xor ecx, ecx
+ mov dword ptr [rbp-0x2C], ecx
mov byte ptr [rbp-0x50], 2
xorps xmm0, xmm0
movups xmmword ptr [rbp-0x40], xmm0
- xor edi, edi
- mov qword ptr [rbp-0x58], rdi
- test ecx, ecx
- je G_M35317_IG39
- lea rcx, [(reloc)]
- cmp qword ptr [rcx-0x08], 0
- jne G_M35317_IG71
- ;; size=72 bbWeight=0.50 PerfScore 6.54
-G_M35317_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov rdx, qword ptr [(reloc)]
- mov bword ptr [rbp-0x248], rdx
+ xor edx, edx
+ mov qword ptr [rbp-0x58], rdx
+ test eax, eax
+ je G_M35317_IG38
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ mov bword ptr [rbp-0x248], rax
; GC ptr vars +{V47}
- lea r8, bword ptr [rdx+0x08]
- ; byrRegs +[r8]
- mov bword ptr [rbp-0x240], r8
+ lea rdx, bword ptr [rax+0x08]
+ ; byrRegs +[rdx]
+ mov bword ptr [rbp-0x240], rdx
; GC ptr vars +{V46}
- ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M35317_IG06: ; bbWeight=0.50, nogc, extend
- movups xmm0, xmmword ptr [r8]
+ ;; size=77 bbWeight=0.50 PerfScore 6.04
+G_M35317_IG05: ; bbWeight=0.50, nogc, extend
+ movups xmm0, xmmword ptr [rdx]
movups xmmword ptr [rbp-0x170], xmm0
- movups xmm0, xmmword ptr [r8+0x10]
+ movups xmm0, xmmword ptr [rdx+0x10]
movups xmmword ptr [rbp-0x160], xmm0
- mov rcx, qword ptr [r8+0x20]
+ mov rcx, qword ptr [rdx+0x20]
mov qword ptr [rbp-0x150], rcx
- ;; size=34 bbWeight=0.50 PerfScore 6.50
-G_M35317_IG07: ; bbWeight=0.50, extend
+ ;; size=32 bbWeight=0.50 PerfScore 6.50
+G_M35317_IG06: ; bbWeight=0.50, extend
lea rdi, [rsp]
lea rsi, [rbp-0x170]
mov rcx, gword ptr [rsi]
@@ -158,9 +154,9 @@ G_M35317_IG07: ; bbWeight=0.50, extend
; byrRegs +[rdi]
call <unknown method>
; gcrRegs -[rcx]
- ; byrRegs -[rdi r8]
+ ; byrRegs -[rax rdx rdi]
test eax, eax
- je G_M35317_IG09
+ je G_M35317_IG08
mov r13d, 1
lea rdi, [rsp]
lea rsi, [rbp-0x50]
@@ -211,7 +207,7 @@ G_M35317_IG07: ; bbWeight=0.50, extend
movsq
mov rcx, bword ptr [rsi]
;; size=227 bbWeight=0.50 PerfScore 24.75
-G_M35317_IG08: ; bbWeight=0.50, extend
+G_M35317_IG07: ; bbWeight=0.50, extend
mov bword ptr [rsp+0x90], rcx
add rsi, 8
add rdi, 8
@@ -224,14 +220,14 @@ G_M35317_IG08: ; bbWeight=0.50, extend
xor ecx, ecx
test r12d, r12d
sete cl
- movzx rax, cl
- mov dword ptr [rbp-0x2C], eax
+ movzx rcx, cl
+ mov dword ptr [rbp-0x2C], ecx
;; size=49 bbWeight=0.50 PerfScore 3.62
-G_M35317_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
- jne G_M35317_IG15
+ jne G_M35317_IG14
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M35317_IG10: ; bbWeight=0.50, nogc, extend
+G_M35317_IG09: ; bbWeight=0.50, nogc, extend
mov rdx, bword ptr [rbp-0x240]
; byrRegs +[rdx]
movups xmm0, xmmword ptr [rdx]
@@ -241,7 +237,7 @@ G_M35317_IG10: ; bbWeight=0.50, nogc, extend
mov rcx, qword ptr [rdx+0x20]
mov qword ptr [rbp-0x178], rcx
;; size=39 bbWeight=0.50 PerfScore 7.00
-G_M35317_IG11: ; bbWeight=0.50, extend
+G_M35317_IG10: ; bbWeight=0.50, extend
lea rdi, [rsp]
lea rsi, [rbp-0x198]
mov rcx, gword ptr [rsi]
@@ -262,7 +258,7 @@ G_M35317_IG11: ; bbWeight=0.50, extend
; gcrRegs -[rcx]
; byrRegs -[rdx rdi]
test eax, eax
- je G_M35317_IG15
+ je G_M35317_IG14
mov r13d, 1
lea rax, bword ptr [rbx+0x70]
; byrRegs +[rax]
@@ -313,7 +309,7 @@ G_M35317_IG11: ; bbWeight=0.50, extend
movsq
mov rcx, bword ptr [rsi]
;; size=227 bbWeight=0.50 PerfScore 24.75
-G_M35317_IG12: ; bbWeight=0.50, isz, extend
+G_M35317_IG11: ; bbWeight=0.50, isz, extend
mov bword ptr [rsp+0x90], rcx
add rsi, 8
add rdi, 8
@@ -324,24 +320,24 @@ G_M35317_IG12: ; bbWeight=0.50, isz, extend
; byrRegs -[rax rcx]
mov r12d, eax
cmp dword ptr [rbp-0x2C], 0
- jne SHORT G_M35317_IG13
+ jne SHORT G_M35317_IG12
xor ecx, ecx
test r12d, r12d
sete cl
- jmp SHORT G_M35317_IG14
+ jmp SHORT G_M35317_IG13
;; size=51 bbWeight=0.50 PerfScore 5.50
-G_M35317_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
mov ecx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M35317_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
movzx rax, cl
mov dword ptr [rbp-0x2C], eax
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M35317_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
- jne G_M35317_IG21
+ jne G_M35317_IG20
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M35317_IG16: ; bbWeight=0.50, nogc, extend
+G_M35317_IG15: ; bbWeight=0.50, nogc, extend
mov rdi, bword ptr [rbp-0x240]
; byrRegs +[rdi]
movups xmm0, xmmword ptr [rdi]
@@ -351,7 +347,7 @@ G_M35317_IG16: ; bbWeight=0.50, nogc, extend
mov rcx, qword ptr [rdi+0x20]
mov qword ptr [rbp-0x1A0], rcx
;; size=39 bbWeight=0.50 PerfScore 7.00
-G_M35317_IG17: ; bbWeight=0.50, extend
+G_M35317_IG16: ; bbWeight=0.50, extend
lea rdi, [rsp]
; byrRegs -[rdi]
lea rsi, [rbp-0x1C0]
@@ -374,7 +370,7 @@ G_M35317_IG17: ; bbWeight=0.50, extend
; gcrRegs -[rcx]
; byrRegs -[rdi]
test eax, eax
- je G_M35317_IG21
+ je G_M35317_IG20
mov r13d, 1
lea rdi, [rsp]
lea rsi, [rbp-0x50]
@@ -426,7 +422,7 @@ G_M35317_IG17: ; bbWeight=0.50, extend
movsq
mov rcx, bword ptr [rsi]
;; size=227 bbWeight=0.50 PerfScore 24.75
-G_M35317_IG18: ; bbWeight=0.50, isz, extend
+G_M35317_IG17: ; bbWeight=0.50, isz, extend
mov bword ptr [rsp+0x90], rcx
add rsi, 8
add rdi, 8
@@ -438,24 +434,24 @@ G_M35317_IG18: ; bbWeight=0.50, isz, extend
; byrRegs -[rax rcx]
mov r12d, eax
cmp dword ptr [rbp-0x2C], 0
- jne SHORT G_M35317_IG19
+ jne SHORT G_M35317_IG18
xor ecx, ecx
test r12d, r12d
sete cl
- jmp SHORT G_M35317_IG20
+ jmp SHORT G_M35317_IG19
;; size=51 bbWeight=0.50 PerfScore 5.50
-G_M35317_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
mov ecx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M35317_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
movzx rax, cl
mov dword ptr [rbp-0x2C], eax
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M35317_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M35317_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
- jne G_M35317_IG27
+ jne G_M35317_IG26
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M35317_IG22: ; bbWeight=0.50, nogc, extend
+G_M35317_IG21: ; bbWeight=0.50, nogc, extend
mov rdx, bword ptr [rbp-0x248]
; byrRegs +[rdx]
movups xmm0, xmmword ptr [rdx+0x30]
@@ -465,7 +461,7 @@ G_M35317_IG22: ; bbWeight=0.50, nogc, extend
...
-32 (-0.75%) : 5308.dasm - System.Globalization.TimeSpanParse:ProcessTerminalHMSF_D(byref,ubyte,byref):ubyte (FullOpts)
@@ -10,7 +10,7 @@
; V00 arg0 [V00,T00] ( 70, 36.50) byref -> rbx single-def
; V01 arg1 [V01,T06] ( 3, 2.50) ubyte -> rsi single-def
; V02 arg2 [V02,T05] ( 5, 3.50) byref -> r15 single-def
-; V03 loc0 [V03,T35] ( 2, 1 ) ubyte -> rcx
+; V03 loc0 [V03,T35] ( 2, 1 ) ubyte -> rax
; V04 loc1 [V04,T36] ( 2, 1 ) ubyte -> r14
; V05 loc2 [V05 ] ( 17, 8.50) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc3 [V06,T03] ( 14, 7 ) ubyte -> r13
@@ -86,12 +86,12 @@ G_M1843_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=90 bbWeight=1 PerfScore 19.33
G_M1843_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
cmp dword ptr [rbx+0x14], 5
- jne G_M1843_IG71
+ jne G_M1843_IG70
;; size=10 bbWeight=1 PerfScore 4.00
G_M1843_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref, isz
movzx r14, sil
test r14b, 4
- jne G_M1843_IG71
+ jne G_M1843_IG70
cmp dword ptr [rbx+0x18], 4
je SHORT G_M1843_IG04
lea rdi, gword ptr [(reloc)]
@@ -102,13 +102,13 @@ G_M1843_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15
; gcrRegs -[rsi rdi]
;; size=39 bbWeight=0.50 PerfScore 3.75
G_M1843_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov ecx, r14d
- and ecx, 1
+ mov eax, r14d
+ and eax, 1
test r14b, 2
setne r14b
movzx r14, r14b
- xor edi, edi
- mov qword ptr [rbp-0x30], rdi
+ xor ecx, ecx
+ mov qword ptr [rbp-0x30], rcx
;; size=24 bbWeight=0.50 PerfScore 1.62
G_M1843_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
xor r13d, r13d
@@ -117,34 +117,30 @@ G_M1843_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15
xor r12d, r12d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M1843_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov dword ptr [rbp-0x34], edi
+ mov dword ptr [rbp-0x34], ecx
mov byte ptr [rbp-0x58], 2
xorps xmm0, xmm0
movups xmmword ptr [rbp-0x48], xmm0
- test ecx, ecx
- je G_M1843_IG42
- lea rcx, [(reloc)]
- cmp qword ptr [rcx-0x08], 0
- jne G_M1843_IG74
- ;; size=40 bbWeight=0.50 PerfScore 4.54
-G_M1843_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
- mov rdx, qword ptr [(reloc)]
- mov bword ptr [rbp-0x248], rdx
+ test eax, eax
+ je G_M1843_IG41
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ mov bword ptr [rbp-0x248], rax
; GC ptr vars +{V47}
- lea r8, bword ptr [rdx+0x08]
- ; byrRegs +[r8]
- mov bword ptr [rbp-0x240], r8
+ lea rdx, bword ptr [rax+0x08]
+ ; byrRegs +[rdx]
+ mov bword ptr [rbp-0x240], rdx
; GC ptr vars +{V46}
- ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M1843_IG09: ; bbWeight=0.50, nogc, extend
- movups xmm0, xmmword ptr [r8]
+ ;; size=45 bbWeight=0.50 PerfScore 4.04
+G_M1843_IG08: ; bbWeight=0.50, nogc, extend
+ movups xmm0, xmmword ptr [rdx]
movups xmmword ptr [rbp-0x170], xmm0
- movups xmm0, xmmword ptr [r8+0x10]
+ movups xmm0, xmmword ptr [rdx+0x10]
movups xmmword ptr [rbp-0x160], xmm0
- mov rcx, qword ptr [r8+0x20]
+ mov rcx, qword ptr [rdx+0x20]
mov qword ptr [rbp-0x150], rcx
- ;; size=34 bbWeight=0.50 PerfScore 6.50
-G_M1843_IG10: ; bbWeight=0.50, extend
+ ;; size=32 bbWeight=0.50 PerfScore 6.50
+G_M1843_IG09: ; bbWeight=0.50, extend
lea rdi, [rsp]
lea rsi, [rbp-0x170]
mov rcx, gword ptr [rsi]
@@ -163,9 +159,9 @@ G_M1843_IG10: ; bbWeight=0.50, extend
; byrRegs +[rdi]
call <unknown method>
; gcrRegs -[rcx]
- ; byrRegs -[rdi r8]
+ ; byrRegs -[rax rdx rdi]
test eax, eax
- je G_M1843_IG12
+ je G_M1843_IG11
mov r13d, 1
lea rdi, [rsp]
lea rsi, [rbp-0x58]
@@ -215,7 +211,7 @@ G_M1843_IG10: ; bbWeight=0.50, extend
movsq
movsq
;; size=230 bbWeight=0.50 PerfScore 23.88
-G_M1843_IG11: ; bbWeight=0.50, extend
+G_M1843_IG10: ; bbWeight=0.50, extend
mov rcx, bword ptr [rsi]
mov bword ptr [rsp+0x90], rcx
add rsi, 8
@@ -230,14 +226,14 @@ G_M1843_IG11: ; bbWeight=0.50, extend
xor ecx, ecx
test r12d, r12d
sete cl
- movzx rax, cl
- mov dword ptr [rbp-0x34], eax
+ movzx rcx, cl
+ mov dword ptr [rbp-0x34], ecx
;; size=52 bbWeight=0.50 PerfScore 4.62
-G_M1843_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
- jne G_M1843_IG18
+ jne G_M1843_IG17
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M1843_IG13: ; bbWeight=0.50, nogc, extend
+G_M1843_IG12: ; bbWeight=0.50, nogc, extend
mov rdx, bword ptr [rbp-0x240]
; byrRegs +[rdx]
movups xmm0, xmmword ptr [rdx]
@@ -247,7 +243,7 @@ G_M1843_IG13: ; bbWeight=0.50, nogc, extend
mov rcx, qword ptr [rdx+0x20]
mov qword ptr [rbp-0x178], rcx
;; size=39 bbWeight=0.50 PerfScore 7.00
-G_M1843_IG14: ; bbWeight=0.50, extend
+G_M1843_IG13: ; bbWeight=0.50, extend
lea rdi, [rsp]
lea rsi, [rbp-0x198]
mov rcx, gword ptr [rsi]
@@ -268,7 +264,7 @@ G_M1843_IG14: ; bbWeight=0.50, extend
; gcrRegs -[rcx]
; byrRegs -[rdx rdi]
test eax, eax
- je G_M1843_IG18
+ je G_M1843_IG17
mov r13d, 1
lea rax, bword ptr [rbx+0x70]
; byrRegs +[rax]
@@ -319,7 +315,7 @@ G_M1843_IG14: ; bbWeight=0.50, extend
movsq
movsq
;; size=230 bbWeight=0.50 PerfScore 23.88
-G_M1843_IG15: ; bbWeight=0.50, isz, extend
+G_M1843_IG14: ; bbWeight=0.50, isz, extend
mov rcx, bword ptr [rsi]
mov bword ptr [rsp+0x90], rcx
add rsi, 8
@@ -331,24 +327,24 @@ G_M1843_IG15: ; bbWeight=0.50, isz, extend
; byrRegs -[rax rcx]
mov r12d, eax
cmp dword ptr [rbp-0x34], 0
- jne SHORT G_M1843_IG16
+ jne SHORT G_M1843_IG15
xor ecx, ecx
test r12d, r12d
sete cl
- jmp SHORT G_M1843_IG17
+ jmp SHORT G_M1843_IG16
;; size=54 bbWeight=0.50 PerfScore 6.50
-G_M1843_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
mov ecx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M1843_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
movzx rax, cl
mov dword ptr [rbp-0x34], eax
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M1843_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
- jne G_M1843_IG24
+ jne G_M1843_IG23
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M1843_IG19: ; bbWeight=0.50, nogc, extend
+G_M1843_IG18: ; bbWeight=0.50, nogc, extend
mov rdi, bword ptr [rbp-0x240]
; byrRegs +[rdi]
movups xmm0, xmmword ptr [rdi]
@@ -358,7 +354,7 @@ G_M1843_IG19: ; bbWeight=0.50, nogc, extend
mov rcx, qword ptr [rdi+0x20]
mov qword ptr [rbp-0x1A0], rcx
;; size=39 bbWeight=0.50 PerfScore 7.00
-G_M1843_IG20: ; bbWeight=0.50, extend
+G_M1843_IG19: ; bbWeight=0.50, extend
lea rdi, [rsp]
; byrRegs -[rdi]
lea rsi, [rbp-0x1C0]
@@ -381,7 +377,7 @@ G_M1843_IG20: ; bbWeight=0.50, extend
; gcrRegs -[rcx]
; byrRegs -[rdi]
test eax, eax
- je G_M1843_IG24
+ je G_M1843_IG23
mov r13d, 1
lea rax, bword ptr [rbx+0x70]
; byrRegs +[rax]
@@ -433,7 +429,7 @@ G_M1843_IG20: ; bbWeight=0.50, extend
movsq
movsq
;; size=230 bbWeight=0.50 PerfScore 23.88
-G_M1843_IG21: ; bbWeight=0.50, isz, extend
+G_M1843_IG20: ; bbWeight=0.50, isz, extend
mov rcx, bword ptr [rsi]
mov bword ptr [rsp+0x90], rcx
add rsi, 8
@@ -446,24 +442,24 @@ G_M1843_IG21: ; bbWeight=0.50, isz, extend
; byrRegs -[rax rcx]
mov r12d, eax
cmp dword ptr [rbp-0x34], 0
- jne SHORT G_M1843_IG22
+ jne SHORT G_M1843_IG21
xor ecx, ecx
test r12d, r12d
sete cl
- jmp SHORT G_M1843_IG23
+ jmp SHORT G_M1843_IG22
;; size=54 bbWeight=0.50 PerfScore 6.50
-G_M1843_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
mov ecx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M1843_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
movzx rax, cl
mov dword ptr [rbp-0x34], eax
;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M1843_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
+G_M1843_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
test r12d, r12d
- jne G_M1843_IG30
+ jne G_M1843_IG29
;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M1843_IG25: ; bbWeight=0.50, nogc, extend
+G_M1843_IG24: ; bbWeight=0.50, nogc, extend
mov rdx, bword ptr [rbp-0x248]
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.linux.x64.checked.mch |
45 |
42 |
1 |
2 |
-3,059 |
+6 |
| benchmarks.run_pgo.linux.x64.checked.mch |
136 |
132 |
0 |
4 |
-4,385 |
+0 |
| benchmarks.run_tiered.linux.x64.checked.mch |
181 |
178 |
0 |
3 |
-9,435 |
+0 |
| coreclr_tests.run.linux.x64.checked.mch |
16 |
16 |
0 |
0 |
-740 |
+0 |
| libraries.crossgen2.linux.x64.checked.mch |
6 |
4 |
2 |
0 |
-19 |
+2 |
| libraries.pmi.linux.x64.checked.mch |
627 |
577 |
49 |
1 |
-20,416 |
+196 |
| libraries_tests.run.linux.x64.Release.mch |
98 |
95 |
2 |
1 |
-2,921 |
+30 |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
75 |
75 |
0 |
0 |
-3,412 |
+0 |
| realworld.run.linux.x64.checked.mch |
90 |
82 |
7 |
1 |
-10,909 |
+27 |
| smoke_tests.nativeaot.linux.x64.checked.mch |
175 |
175 |
0 |
0 |
-5,769 |
+0 |
|
1,449 |
1,376 |
61 |
12 |
-61,065 |
+261 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.linux.x64.checked.mch |
972 |
0 |
972 |
0 (0.00%) |
1,311 (48.94%) |
| benchmarks.run_pgo.linux.x64.checked.mch |
8,780 |
7,128 |
1,652 |
1 (0.01%) |
6,151 (40.13%) |
| benchmarks.run_tiered.linux.x64.checked.mch |
8,667 |
7,174 |
1,493 |
0 (0.00%) |
5,057 (35.81%) |
| coreclr_tests.run.linux.x64.checked.mch |
998 |
757 |
241 |
0 (0.00%) |
1,165 (45.53%) |
| libraries.crossgen2.linux.x64.checked.mch |
101,670 |
13 |
101,657 |
0 (0.00%) |
87,432 (46.14%) |
| libraries.pmi.linux.x64.checked.mch |
2,531 |
0 |
2,531 |
0 (0.00%) |
1,501 (33.90%) |
| libraries_tests.run.linux.x64.Release.mch |
4,528 |
3,659 |
869 |
0 (0.00%) |
4,484 (47.66%) |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
838 |
0 |
838 |
0 (0.00%) |
1,371 (52.63%) |
| realworld.run.linux.x64.checked.mch |
1,761 |
0 |
1,761 |
1 (0.02%) |
3,315 (60.58%) |
| smoke_tests.nativeaot.linux.x64.checked.mch |
5,557 |
3 |
5,554 |
0 (0.00%) |
4,725 (44.25%) |
|
136,302 |
18,734 |
117,568 |
2 (0.00%) |
116,512 (45.38%) |
jit-analyze output
benchmarks.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 140354 (overridden on cmd)
Total bytes of diff: 137301 (overridden on cmd)
Total bytes of delta: -3053 (-2.18 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
6 : 1890.dasm (3.08 % of base)
Top file improvements (bytes):
-502 : 701.dasm (-79.94 % of base)
-422 : 1641.dasm (-65.83 % of base)
-232 : 1263.dasm (-68.04 % of base)
-217 : 9.dasm (-68.89 % of base)
-115 : 410.dasm (-42.28 % of base)
-110 : 1775.dasm (-34.81 % of base)
-108 : 1603.dasm (-22.98 % of base)
-106 : 1710.dasm (-29.28 % of base)
-104 : 733.dasm (-29.21 % of base)
-91 : 2325.dasm (-23.45 % of base)
-73 : 240.dasm (-12.87 % of base)
-59 : 3145.dasm (-15.25 % of base)
-48 : 1074.dasm (-46.60 % of base)
-43 : 1611.dasm (-46.74 % of base)
-43 : 1657.dasm (-22.40 % of base)
-42 : 2389.dasm (-13.00 % of base)
-40 : 1637.dasm (-3.31 % of base)
-38 : 2190.dasm (-15.70 % of base)
-38 : 2153.dasm (-19.39 % of base)
-38 : 337.dasm (-15.90 % of base)
43 total files with Code Size differences (42 improved, 1 regressed), 2 unchanged.
Top method regressions (bytes):
6 (3.08 % of base) : 1890.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
Top method improvements (bytes):
-502 (-79.94 % of base) : 701.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-422 (-65.83 % of base) : 1641.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (FullOpts)
-232 (-68.04 % of base) : 1263.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]] (FullOpts)
-217 (-68.89 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-115 (-42.28 % of base) : 410.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-110 (-34.81 % of base) : 1775.dasm - System.HashCode:Add(int):this (FullOpts)
-108 (-22.98 % of base) : 1603.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-106 (-29.28 % of base) : 1710.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-104 (-29.21 % of base) : 733.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-91 (-23.45 % of base) : 2325.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[int]():System.Text.Json.Serialization.JsonConverter`1[int]:this (FullOpts)
-73 (-12.87 % of base) : 240.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-59 (-15.25 % of base) : 3145.dasm - System.Security.Cryptography.X509Certificates.ChainPal:BuildChain(ubyte,System.Security.Cryptography.X509Certificates.ICertificatePal,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.OidCollection,System.Security.Cryptography.OidCollection,int,int,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,int,System.DateTime,System.TimeSpan,ubyte):System.Security.Cryptography.X509Certificates.IChainPal (FullOpts)
-48 (-46.60 % of base) : 1074.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-43 (-22.40 % of base) : 1657.dasm - System.Threading.PortableThreadPool:ShouldAdjustMaxWorkersActive(int):ubyte:this (FullOpts)
-43 (-46.74 % of base) : 1611.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-42 (-13.00 % of base) : 2389.dasm - System.Security.Cryptography.OidLookup:ToOid(System.String,int,ubyte):System.String (FullOpts)
-40 (-3.31 % of base) : 1637.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
-38 (-19.39 % of base) : 2153.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-38 (-15.70 % of base) : 2190.dasm - System.ConsolePal:WriteFromConsoleStream(Microsoft.Win32.SafeHandles.SafeFileHandle,System.ReadOnlySpan`1[ubyte]) (FullOpts)
-38 (-15.90 % of base) : 337.dasm - System.Reflection.PseudoCustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType):ubyte (FullOpts)
Top method regressions (percentages):
6 (3.08 % of base) : 1890.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
Top method improvements (percentages):
-502 (-79.94 % of base) : 701.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-217 (-68.89 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-232 (-68.04 % of base) : 1263.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]] (FullOpts)
-422 (-65.83 % of base) : 1641.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (FullOpts)
-31 (-50.82 % of base) : 989.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-23 (-50.00 % of base) : 2581.dasm - System.Text.Json.JsonSerializer:UnboxOnWrite[System.__Canon](System.Object):System.__Canon (FullOpts)
-43 (-46.74 % of base) : 1611.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-48 (-46.60 % of base) : 1074.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-34 (-46.58 % of base) : 3185.dasm - System.IO.Directory:EnumerateFiles(System.String):System.Collections.Generic.IEnumerable`1[System.String] (FullOpts)
-28 (-45.16 % of base) : 2147.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-31 (-43.66 % of base) : 2156.dasm - System.ConsolePal:GetConsoleEncoding():System.Text.Encoding (FullOpts)
-115 (-42.28 % of base) : 410.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-31 (-41.33 % of base) : 1326.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseAndOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)
-31 (-38.75 % of base) : 1009.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (FullOpts)
-31 (-38.75 % of base) : 1008.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
-31 (-37.80 % of base) : 1360.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-110 (-34.81 % of base) : 1775.dasm - System.HashCode:Add(int):this (FullOpts)
-31 (-31.96 % of base) : 23.dasm - System.StartupHookProvider:ManagedStartup(ulong) (FullOpts)
-34 (-31.48 % of base) : 1836.dasm - System.Text.Json.Serialization.Converters.NullableConverterFactory:CanConvert(System.Type):ubyte:this (FullOpts)
-106 (-29.28 % of base) : 1710.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
43 total methods with Code Size differences (42 improved, 1 regressed).
benchmarks.run_pgo.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 948560 (overridden on cmd)
Total bytes of diff: 944175 (overridden on cmd)
Total bytes of delta: -4385 (-0.46 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-300 : 14337.dasm (-14.66 % of base)
-252 : 4796.dasm (-30.22 % of base)
-206 : 6017.dasm (-22.86 % of base)
-135 : 13012.dasm (-15.32 % of base)
-106 : 3381.dasm (-63.10 % of base)
-106 : 3382.dasm (-63.10 % of base)
-104 : 14449.dasm (-23.96 % of base)
-80 : 4554.dasm (-44.44 % of base)
-80 : 8287.dasm (-59.70 % of base)
-66 : 11410.dasm (-53.66 % of base)
-60 : 21.dasm (-32.43 % of base)
-59 : 5636.dasm (-8.86 % of base)
-56 : 10482.dasm (-40.58 % of base)
-54 : 8479.dasm (-21.34 % of base)
-50 : 6843.dasm (-35.97 % of base)
-50 : 10759.dasm (-41.32 % of base)
-50 : 6577.dasm (-39.68 % of base)
-46 : 5511.dasm (-31.51 % of base)
-45 : 12643.dasm (-45.00 % of base)
-44 : 5541.dasm (-53.66 % of base)
62 total files with Code Size differences (62 improved, 0 regressed), 4 unchanged.
Top method improvements (bytes):
-300 (-14.66 % of base) : 14337.dasm - ProtoBuf.Meta.ValueMember:TryGetCoreSerializer(ProtoBuf.Meta.RuntimeTypeModel,int,int,System.Type,byref,ubyte,ubyte,ubyte,ubyte):ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode (Tier0)
-252 (-30.22 % of base) : 4796.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier0)
-206 (-22.86 % of base) : 6017.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-135 (-15.32 % of base) : 13012.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-106 (-63.10 % of base) : 3382.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 3381.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-104 (-23.96 % of base) : 14449.dasm - ProtoBuf.Internal.TypeCompatibilityHelper:GetModuleCompatibilityLevel(System.Reflection.Module):int (Tier0)
-80 (-44.44 % of base) : 4554.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-80 (-59.70 % of base) : 8287.dasm - System.Net.SocketAddress:.cctor() (Tier0)
-66 (-53.66 % of base) : 11410.dasm - System.Xml.XmlUTF8NodeWriter:.ctor():this (Tier0)
-60 (-32.43 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-59 (-8.86 % of base) : 5636.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (Tier0)
-56 (-40.58 % of base) : 10482.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-54 (-21.34 % of base) : 8479.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Security.SslSessionsCache+SslCredKey,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-50 (-39.68 % of base) : 6577.dasm - System.Numerics.Tests.Perf_Vector2:DistanceSquaredBenchmark():float:this (Tier0)
-50 (-35.97 % of base) : 6843.dasm - System.Numerics.Tests.Perf_Vector3:AddOperatorBenchmark():System.Numerics.Vector3:this (Tier0)
-50 (-41.32 % of base) : 10759.dasm - System.Numerics.Tests.Perf_Vector4:DivideBenchmark():System.Numerics.Vector4:this (Tier0)
-46 (-31.51 % of base) : 5511.dasm - System.Threading.Thread+StartHelper:Run():this (Tier0)
-45 (-45.00 % of base) : 12643.dasm - System.Threading.Tasks.TaskReplicator+Replica+<>c:<.ctor>b__4_0(System.Object):this (Instrumented Tier0)
-44 (-53.66 % of base) : 5541.dasm - System.Runtime.CompilerServices.AsyncMethodBuilderCore:get_TrackAsyncMethodCompletion():ubyte (Tier0)
Top method improvements (percentages):
-106 (-63.10 % of base) : 3382.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 3381.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-60.61 % of base) : 8959.dasm - Internal.Cryptography.Helpers:get_HasSymmetricEncryption():ubyte (Tier0)
-20 (-60.61 % of base) : 1489.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
-20 (-60.61 % of base) : 68.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 2770.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-60.61 % of base) : 8298.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv4():ubyte (Tier0)
-20 (-60.61 % of base) : 2259.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 11393.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-60.61 % of base) : 4524.dasm - System.Text.Json.JsonSerializer:get_IsReflectionEnabledByDefault():ubyte (Tier0)
-20 (-60.61 % of base) : 3351.dasm - System.Threading.Lock:get_ContentionCount():long (Tier0)
-20 (-60.61 % of base) : 3359.dasm - System.Threading.ThreadPool:EnsureConfigInitialized():ubyte (Tier0)
-80 (-59.70 % of base) : 8287.dasm - System.Net.SocketAddress:.cctor() (Tier0)
-44 (-53.66 % of base) : 5541.dasm - System.Runtime.CompilerServices.AsyncMethodBuilderCore:get_TrackAsyncMethodCompletion():ubyte (Tier0)
-66 (-53.66 % of base) : 11410.dasm - System.Xml.XmlUTF8NodeWriter:.ctor():this (Tier0)
-20 (-51.28 % of base) : 12072.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:get_Default():MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext (Tier0)
-20 (-51.28 % of base) : 7110.dasm - System.Globalization.DateTimeFormatInfo:get_InvariantInfo():System.Globalization.DateTimeFormatInfo (Tier0)
-20 (-51.28 % of base) : 12420.dasm - System.Random:get_Shared():System.Random (Tier0)
-20 (-51.28 % of base) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
-20 (-51.28 % of base) : 30.dasm - System.StringComparer:get_OrdinalIgnoreCase():System.StringComparer (Tier0)
benchmarks.run_tiered.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 796003 (overridden on cmd)
Total bytes of diff: 786568 (overridden on cmd)
Total bytes of delta: -9435 (-1.19 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1933 : 12596.dasm (-35.48 % of base)
-502 : 3196.dasm (-79.94 % of base)
-384 : 4424.dasm (-63.68 % of base)
-300 : 11459.dasm (-14.66 % of base)
-275 : 9239.dasm (-76.18 % of base)
-252 : 5965.dasm (-30.22 % of base)
-206 : 5994.dasm (-22.86 % of base)
-161 : 8373.dasm (-23.85 % of base)
-120 : 7699.dasm (-32.35 % of base)
-110 : 4432.dasm (-48.89 % of base)
-110 : 4433.dasm (-49.33 % of base)
-108 : 4292.dasm (-22.98 % of base)
-106 : 3779.dasm (-63.10 % of base)
-106 : 3780.dasm (-63.10 % of base)
-104 : 11558.dasm (-23.96 % of base)
-104 : 3281.dasm (-29.21 % of base)
-97 : 4286.dasm (-52.15 % of base)
-96 : 4285.dasm (-53.33 % of base)
-96 : 7723.dasm (-53.33 % of base)
-81 : 13761.dasm (-24.18 % of base)
60 total files with Code Size differences (60 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-1933 (-35.48 % of base) : 12596.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-502 (-79.94 % of base) : 3196.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-384 (-63.68 % of base) : 4424.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (Tier1)
-300 (-14.66 % of base) : 11459.dasm - ProtoBuf.Meta.ValueMember:TryGetCoreSerializer(ProtoBuf.Meta.RuntimeTypeModel,int,int,System.Type,byref,ubyte,ubyte,ubyte,ubyte):ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode (Tier0)
-275 (-76.18 % of base) : 9239.dasm - System.Linq.Enumerable:Where[double](System.Collections.Generic.IEnumerable`1[double],System.Func`2[double,ubyte]):System.Collections.Generic.IEnumerable`1[double] (Tier1)
-252 (-30.22 % of base) : 5965.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier0)
-206 (-22.86 % of base) : 5994.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-161 (-23.85 % of base) : 8373.dasm - System.Net.Security.SslConnectionInfo:UpdateSslConnectionInfo(Microsoft.Win32.SafeHandles.SafeSslHandle):this (Tier0)
-120 (-32.35 % of base) : 7699.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:GetCollections():System.Tuple`2[Microsoft.Win32.SafeHandles.SafeX509StackHandle,Microsoft.Win32.SafeHandles.SafeX509StackHandle] (Tier0)
-110 (-48.89 % of base) : 4432.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:GetResult():int:this (Tier1)
-110 (-49.33 % of base) : 4433.dasm - System.Threading.Tasks.ValueTask`1[int]:get_Result():int:this (Tier1)
-108 (-22.98 % of base) : 4292.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-106 (-63.10 % of base) : 3780.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 3779.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-104 (-23.96 % of base) : 11558.dasm - ProtoBuf.Internal.TypeCompatibilityHelper:GetModuleCompatibilityLevel(System.Reflection.Module):int (Tier0)
-104 (-29.21 % of base) : 3281.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-97 (-52.15 % of base) : 4286.dasm - System.Threading.Tasks.ValueTask`1[int]:get_IsCompleted():ubyte:this (Tier1)
-96 (-53.33 % of base) : 7723.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Tier1)
-96 (-53.33 % of base) : 4285.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:get_IsCompleted():ubyte:this (Tier1)
-81 (-24.18 % of base) : 13761.dasm - Sigil.Impl.TypeOnStack+TypeCache:Get(System.Type):Sigil.Impl.TypeOnStack (Tier0)
Top method improvements (percentages):
-502 (-79.94 % of base) : 3196.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-275 (-76.18 % of base) : 9239.dasm - System.Linq.Enumerable:Where[double](System.Collections.Generic.IEnumerable`1[double],System.Func`2[double,ubyte]):System.Collections.Generic.IEnumerable`1[double] (Tier1)
-384 (-63.68 % of base) : 4424.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:SignalCompletion():this (Tier1)
-106 (-63.10 % of base) : 3780.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 3779.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-62.50 % of base) : 12484.dasm - System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
-20 (-60.61 % of base) : 6970.dasm - Internal.Cryptography.Helpers:get_HasSymmetricEncryption():ubyte (Tier0)
-20 (-60.61 % of base) : 10648.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-20 (-60.61 % of base) : 1293.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
-20 (-60.61 % of base) : 12668.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 65.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 2487.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-60.61 % of base) : 12588.dasm - System.Net.Http.GlobalHttpSettings+DiagnosticsHandler:get_EnableActivityPropagation():ubyte (Tier0)
-20 (-60.61 % of base) : 6317.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv4():ubyte (Tier0)
-20 (-60.61 % of base) : 12337.dasm - System.Reflection.Metadata.MetadataUpdater:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 2022.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 8041.dasm - System.Security.Cryptography.SafeEvpPKeyHandle:get_OpenSslVersion():long (Tier0)
-20 (-60.61 % of base) : 8459.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-60.61 % of base) : 5604.dasm - System.Text.Json.JsonSerializer:get_IsReflectionEnabledByDefault():ubyte (Tier0)
-20 (-60.61 % of base) : 4241.dasm - System.Threading.Lock:get_ContentionCount():long (Tier0)
coreclr_tests.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 165738 (overridden on cmd)
Total bytes of diff: 164998 (overridden on cmd)
Total bytes of delta: -740 (-0.45 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-259 : 243.dasm (-29.63 % of base)
-111 : 1163.dasm (-48.68 % of base)
-97 : 996.dasm (-53.59 % of base)
-54 : 51.dasm (-23.89 % of base)
-32 : 472.dasm (-22.22 % of base)
-32 : 512.dasm (-19.39 % of base)
-20 : 644.dasm (-28.17 % of base)
-20 : 286.dasm (-9.35 % of base)
-20 : 44.dasm (-13.61 % of base)
-20 : 799.dasm (-51.28 % of base)
-20 : 283.dasm (-15.27 % of base)
-20 : 41.dasm (-21.74 % of base)
-20 : 71.dasm (-45.45 % of base)
-5 : 1953.dasm (-7.94 % of base)
-5 : 1799.dasm (-11.36 % of base)
-5 : 176.dasm (-5.32 % of base)
16 total files with Code Size differences (16 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-259 (-29.63 % of base) : 243.dasm - System.Diagnostics.ProcessWaitState:AddRef(int,ubyte,ubyte):System.Diagnostics.ProcessWaitState (Tier0)
-111 (-48.68 % of base) : 1163.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:GetResult():int:this (Instrumented Tier1)
-97 (-53.59 % of base) : 996.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Instrumented Tier1)
-54 (-23.89 % of base) : 51.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-32 (-19.39 % of base) : 512.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (Tier0)
-32 (-22.22 % of base) : 472.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAsyncSuccess(int,int):this (Tier0)
-20 (-21.74 % of base) : 41.dasm - System.Console:get_Out():System.IO.TextWriter (Tier0)
-20 (-45.45 % of base) : 71.dasm - System.ConsolePal:EnsureConsoleInitialized() (Tier0)
-20 (-13.61 % of base) : 44.dasm - System.ConsolePal:OpenStandardOutput():System.IO.Stream (Tier0)
-20 (-15.27 % of base) : 283.dasm - System.Net.Sockets.SafeSocketHandle:.ctor(long,ubyte):this (Tier0)
-20 (-9.35 % of base) : 286.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
-20 (-51.28 % of base) : 799.dasm - System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
-20 (-28.17 % of base) : 644.dasm - System.Text.RegularExpressions.Regex:.cctor() (Tier0)
-5 (-7.94 % of base) : 1953.dasm - Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
-5 (-11.36 % of base) : 1799.dasm - Helper:Create(int):int (Tier0)
-5 (-5.32 % of base) : 176.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
Top method improvements (percentages):
-97 (-53.59 % of base) : 996.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Instrumented Tier1)
-20 (-51.28 % of base) : 799.dasm - System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
-111 (-48.68 % of base) : 1163.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:GetResult():int:this (Instrumented Tier1)
-20 (-45.45 % of base) : 71.dasm - System.ConsolePal:EnsureConsoleInitialized() (Tier0)
-259 (-29.63 % of base) : 243.dasm - System.Diagnostics.ProcessWaitState:AddRef(int,ubyte,ubyte):System.Diagnostics.ProcessWaitState (Tier0)
-20 (-28.17 % of base) : 644.dasm - System.Text.RegularExpressions.Regex:.cctor() (Tier0)
-54 (-23.89 % of base) : 51.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-32 (-22.22 % of base) : 472.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAsyncSuccess(int,int):this (Tier0)
-20 (-21.74 % of base) : 41.dasm - System.Console:get_Out():System.IO.TextWriter (Tier0)
-32 (-19.39 % of base) : 512.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (Tier0)
-20 (-15.27 % of base) : 283.dasm - System.Net.Sockets.SafeSocketHandle:.ctor(long,ubyte):this (Tier0)
-20 (-13.61 % of base) : 44.dasm - System.ConsolePal:OpenStandardOutput():System.IO.Stream (Tier0)
-5 (-11.36 % of base) : 1799.dasm - Helper:Create(int):int (Tier0)
-20 (-9.35 % of base) : 286.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
-5 (-7.94 % of base) : 1953.dasm - Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
-5 (-5.32 % of base) : 176.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
16 total methods with Code Size differences (16 improved, 0 regressed).
libraries.crossgen2.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 7809464 (overridden on cmd)
Total bytes of diff: 7809447 (overridden on cmd)
Total bytes of delta: -17 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1 : 171954.dasm (4.35 % of base)
1 : 34390.dasm (4.35 % of base)
Top file improvements (bytes):
-13 : 6513.dasm (-2.91 % of base)
-4 : 154290.dasm (-3.33 % of base)
-1 : 154294.dasm (-1.61 % of base)
-1 : 157120.dasm (-0.98 % of base)
6 total files with Code Size differences (4 improved, 2 regressed), 0 unchanged.
Top method regressions (bytes):
1 (4.35 % of base) : 34390.dasm - <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
1 (4.35 % of base) : 171954.dasm - Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
Top method improvements (bytes):
-13 (-2.91 % of base) : 6513.dasm - System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
-4 (-3.33 % of base) : 154290.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-1 (-0.98 % of base) : 157120.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-1 (-1.61 % of base) : 154294.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
Top method regressions (percentages):
1 (4.35 % of base) : 34390.dasm - <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
1 (4.35 % of base) : 171954.dasm - Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
Top method improvements (percentages):
-4 (-3.33 % of base) : 154290.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-13 (-2.91 % of base) : 6513.dasm - System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
-1 (-1.61 % of base) : 154294.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
-1 (-0.98 % of base) : 157120.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
6 total methods with Code Size differences (4 improved, 2 regressed).
libraries.pmi.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 117804 (overridden on cmd)
Total bytes of diff: 97584 (overridden on cmd)
Total bytes of delta: -20220 (-17.16 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 751.dasm (3.36 % of base)
4 : 752.dasm (3.05 % of base)
4 : 762.dasm (3.36 % of base)
4 : 763.dasm (3.36 % of base)
4 : 775.dasm (2.72 % of base)
4 : 780.dasm (3.10 % of base)
4 : 781.dasm (3.42 % of base)
4 : 792.dasm (3.33 % of base)
4 : 795.dasm (3.33 % of base)
4 : 823.dasm (3.42 % of base)
4 : 728.dasm (2.72 % of base)
4 : 748.dasm (3.36 % of base)
4 : 753.dasm (3.36 % of base)
4 : 764.dasm (3.36 % of base)
4 : 765.dasm (3.36 % of base)
4 : 776.dasm (3.42 % of base)
4 : 777.dasm (3.42 % of base)
4 : 818.dasm (3.42 % of base)
4 : 819.dasm (3.42 % of base)
4 : 820.dasm (3.42 % of base)
Top file improvements (bytes):
-156 : 3361.dasm (-36.71 % of base)
-100 : 815.dasm (-38.76 % of base)
-96 : 811.dasm (-38.25 % of base)
-96 : 812.dasm (-38.25 % of base)
-95 : 801.dasm (-38.31 % of base)
-95 : 813.dasm (-38.31 % of base)
-95 : 814.dasm (-38.31 % of base)
-95 : 816.dasm (-38.31 % of base)
-93 : 759.dasm (-37.05 % of base)
-93 : 773.dasm (-37.05 % of base)
-92 : 829.dasm (-37.10 % of base)
-92 : 787.dasm (-37.10 % of base)
-87 : 797.dasm (-36.71 % of base)
-87 : 798.dasm (-36.71 % of base)
-86 : 802.dasm (-36.75 % of base)
-86 : 799.dasm (-36.75 % of base)
-86 : 800.dasm (-36.75 % of base)
-84 : 774.dasm (-36.36 % of base)
-84 : 757.dasm (-36.36 % of base)
-84 : 758.dasm (-35.44 % of base)
87 total files with Code Size differences (56 improved, 31 regressed), 1 unchanged.
Top method regressions (bytes):
4 (3.33 % of base) : 792.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],double,System.Nullable`1[int]):int (FullOpts)
4 (3.33 % of base) : 795.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],double,System.Nullable`1[int]):long (FullOpts)
4 (3.33 % of base) : 791.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],double,System.Nullable`1[int]):short (FullOpts)
4 (3.42 % of base) : 779.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],int,System.Nullable`1[int]):double (FullOpts)
4 (3.42 % of base) : 778.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],int,System.Nullable`1[int]):int (FullOpts)
4 (3.42 % of base) : 781.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],int,System.Nullable`1[int]):long (FullOpts)
4 (3.42 % of base) : 777.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],int,System.Nullable`1[int]):short (FullOpts)
4 (2.72 % of base) : 775.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.Nullable`1[int]):System.__Canon (FullOpts)
4 (3.10 % of base) : 780.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float]](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],System.Numerics.Vector`1[float]]],int,System.Nullable`1[int]):System.Numerics.Vector`1[float] (FullOpts)
4 (3.42 % of base) : 776.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.42 % of base) : 821.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],long,System.Nullable`1[int]):double (FullOpts)
4 (3.42 % of base) : 820.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],long,System.Nullable`1[int]):int (FullOpts)
4 (3.42 % of base) : 823.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],long,System.Nullable`1[int]):long (FullOpts)
4 (3.42 % of base) : 819.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],long,System.Nullable`1[int]):short (FullOpts)
4 (3.42 % of base) : 818.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],long,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.36 % of base) : 765.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],short,System.Nullable`1[int]):double (FullOpts)
4 (3.36 % of base) : 764.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],short,System.Nullable`1[int]):int (FullOpts)
4 (3.36 % of base) : 767.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],short,System.Nullable`1[int]):long (FullOpts)
4 (3.36 % of base) : 763.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],short,System.Nullable`1[int]):short (FullOpts)
4 (3.36 % of base) : 762.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],short,System.Nullable`1[int]):ubyte (FullOpts)
Top method improvements (bytes):
-156 (-36.71 % of base) : 3361.dasm - Microsoft.FSharp.Linq.QueryModule:|ZeroOnElseBranch|_|(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-100 (-38.76 % of base) : 815.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-96 (-38.25 % of base) : 812.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[short,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],short):System.Nullable`1[int] (FullOpts)
-96 (-38.25 % of base) : 811.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[ubyte,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],ubyte):System.Nullable`1[int] (FullOpts)
-95 (-38.31 % of base) : 801.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],double,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-95 (-38.31 % of base) : 814.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-95 (-38.31 % of base) : 813.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[int,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],int):System.Nullable`1[int] (FullOpts)
-95 (-38.31 % of base) : 816.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-93 (-37.05 % of base) : 773.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],short,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-93 (-37.05 % of base) : 759.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],ubyte,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-92 (-37.10 % of base) : 787.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],int,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-92 (-37.10 % of base) : 829.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],long,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-87 (-36.71 % of base) : 798.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[short,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]]],double,System.Nullable`1[int],short):System.Nullable`1[int] (FullOpts)
-87 (-36.71 % of base) : 797.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[ubyte,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]]],double,System.Nullable`1[int],ubyte):System.Nullable`1[int] (FullOpts)
-86 (-36.75 % of base) : 800.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],double,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-86 (-36.75 % of base) : 799.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[int,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]]],double,System.Nullable`1[int],int):System.Nullable`1[int] (FullOpts)
-86 (-36.75 % of base) : 802.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],double,System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-84 (-36.36 % of base) : 774.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],short,System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-84 (-35.44 % of base) : 758.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],ubyte,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-84 (-36.36 % of base) : 757.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[int,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]]],ubyte,System.Nullable`1[int],int):System.Nullable`1[int] (FullOpts)
Top method regressions (percentages):
4 (3.42 % of base) : 779.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],int,System.Nullable`1[int]):double (FullOpts)
4 (3.42 % of base) : 778.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],int,System.Nullable`1[int]):int (FullOpts)
4 (3.42 % of base) : 781.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],int,System.Nullable`1[int]):long (FullOpts)
4 (3.42 % of base) : 777.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],int,System.Nullable`1[int]):short (FullOpts)
4 (3.42 % of base) : 776.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.42 % of base) : 821.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],long,System.Nullable`1[int]):double (FullOpts)
4 (3.42 % of base) : 820.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],long,System.Nullable`1[int]):int (FullOpts)
4 (3.42 % of base) : 823.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],long,System.Nullable`1[int]):long (FullOpts)
4 (3.42 % of base) : 819.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],long,System.Nullable`1[int]):short (FullOpts)
4 (3.42 % of base) : 818.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],long,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.36 % of base) : 765.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],short,System.Nullable`1[int]):double (FullOpts)
4 (3.36 % of base) : 764.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],short,System.Nullable`1[int]):int (FullOpts)
4 (3.36 % of base) : 767.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],short,System.Nullable`1[int]):long (FullOpts)
4 (3.36 % of base) : 763.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],short,System.Nullable`1[int]):short (FullOpts)
4 (3.36 % of base) : 762.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],short,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.36 % of base) : 751.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],ubyte,System.Nullable`1[int]):double (FullOpts)
4 (3.36 % of base) : 750.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],ubyte,System.Nullable`1[int]):int (FullOpts)
4 (3.36 % of base) : 753.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],ubyte,System.Nullable`1[int]):long (FullOpts)
4 (3.36 % of base) : 749.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],ubyte,System.Nullable`1[int]):short (FullOpts)
4 (3.36 % of base) : 748.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],ubyte,System.Nullable`1[int]):ubyte (FullOpts)
Top method improvements (percentages):
-31 (-77.50 % of base) : 1793.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
-31 (-68.89 % of base) : 2306.dasm - Microsoft.FSharp.Control.Trampoline:.cctor() (FullOpts)
-31 (-68.89 % of base) : 1892.dasm - Microsoft.FSharp.Quotations.FSharpVar:.cctor() (FullOpts)
-49 (-67.12 % of base) : 3910.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.Adapters+CleanupLeaf@294:Invoke(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Quotations.FSharpExpr:this (FullOpts)
-49 (-63.64 % of base) : 957.dasm - Microsoft.FSharp.Core.FSharpResult`2[System.__Canon,System.Nullable`1[int]]:GetHashCode():int:this (FullOpts)
-49 (-63.64 % of base) : 996.dasm - Microsoft.FSharp.Core.FSharpValueOption`1[System.__Canon]:GetHashCode():int:this (FullOpts)
-31 (-62.00 % of base) : 2296.dasm - Microsoft.FSharp.Control.AsyncReturn:get_AsyncReturn():Microsoft.FSharp.Control.AsyncReturn (FullOpts)
-31 (-62.00 % of base) : 1986.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_AddressOfOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1990.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_AddressSetOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1930.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_AppOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1932.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_IfThenElseOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1938.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_LetOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1936.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_LetRecCombOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1934.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_LetRecOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1984.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_SequentialOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1996.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_TryFinallyOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1994.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_TryWithOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1988.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_VarSetOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 2000.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_WhileLoopOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-31 (-62.00 % of base) : 1725.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_ActivePatternResult():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
libraries_tests.run.linux.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 619081 (overridden on cmd)
Total bytes of diff: 616190 (overridden on cmd)
Total bytes of delta: -2891 (-0.47 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 4416.dasm (12.50 % of base)
14 : 2502.dasm (3.62 % of base)
Top file improvements (bytes):
-259 : 169.dasm (-29.63 % of base)
-104 : 1809.dasm (-8.16 % of base)
-97 : 7978.dasm (-53.59 % of base)
-80 : 4498.dasm (-17.39 % of base)
-77 : 1046.dasm (-31.17 % of base)
-65 : 5617.dasm (-21.89 % of base)
-65 : 5812.dasm (-21.89 % of base)
-65 : 5877.dasm (-23.99 % of base)
-60 : 6092.dasm (-60.61 % of base)
-60 : 5758.dasm (-60.61 % of base)
-60 : 6122.dasm (-60.61 % of base)
-54 : 38.dasm (-23.89 % of base)
-54 : 6900.dasm (-21.34 % of base)
-45 : 5937.dasm (-36.29 % of base)
-40 : 1122.dasm (-39.60 % of base)
-40 : 3601.dasm (-8.77 % of base)
-40 : 4411.dasm (-12.70 % of base)
-40 : 3373.dasm (-22.86 % of base)
-40 : 5055.dasm (-50.00 % of base)
-34 : 394.dasm (-21.66 % of base)
63 total files with Code Size differences (61 improved, 2 regressed), 1 unchanged.
Top method regressions (bytes):
16 (12.50 % of base) : 4416.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
14 (3.62 % of base) : 2502.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
Top method improvements (bytes):
-259 (-29.63 % of base) : 169.dasm - System.Diagnostics.ProcessWaitState:AddRef(int,ubyte,ubyte):System.Diagnostics.ProcessWaitState (Tier0)
-104 (-8.16 % of base) : 1809.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExprConstant:get_Object():System.Object:this (Tier0)
-97 (-53.59 % of base) : 7978.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Instrumented Tier1)
-80 (-17.39 % of base) : 4498.dasm - Xunit.Sdk.SerializationHelper:GetType(System.String,System.String):System.Type (Tier0)
-77 (-31.17 % of base) : 1046.dasm - Microsoft.CSharp.RuntimeBinder.BinderEquivalence:TryGetExisting[System.__Canon](System.__Canon):System.__Canon (Tier0)
-65 (-23.99 % of base) : 5877.dasm - NativeExports.ComInterfaceGenerator.ArrayMarshalling+MyComWrapper:get_GetIntArrayVTable():ulong (Tier0)
-65 (-21.89 % of base) : 5617.dasm - NativeExports.ComInterfaceGenerator.GetAndSetInt+MyComWrapper:get_s_comInterface1VTable():ulong (Tier0)
-65 (-21.89 % of base) : 5812.dasm - NativeExports.ComInterfaceGenerator.GetPoint+ImplementingObject+ABI:get_VTable():ulong (Tier0)
-60 (-60.61 % of base) : 5758.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-60.61 % of base) : 6092.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-60.61 % of base) : 6122.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-54 (-21.34 % of base) : 6900.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-54 (-23.89 % of base) : 38.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-45 (-36.29 % of base) : 5937.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_ManagedVirtualMethodTable():ulong (Tier0)
-40 (-22.86 % of base) : 3373.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:GetCurrent():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-40 (-39.60 % of base) : 1122.dasm - System.Linq.Expressions.Utils:Constant(ubyte):System.Linq.Expressions.ConstantExpression (Tier0)
-40 (-12.70 % of base) : 4411.dasm - Xunit.ConsoleClient.ConsoleRunner:ValidateFileExists(System.Object,System.String):ubyte:this (Tier0)
-40 (-8.77 % of base) : 3601.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier0)
-40 (-50.00 % of base) : 5055.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler+ReaderWriterLockWrapper:WriteLock():System.IDisposable (Tier0)
-34 (-21.66 % of base) : 394.dasm - System.Text.Json.JsonSerializer:GetTypeInfo(System.Text.Json.JsonSerializerOptions,System.Type):System.Text.Json.Serialization.Metadata.JsonTypeInfo (Tier0)
Top method regressions (percentages):
16 (12.50 % of base) : 4416.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
14 (3.62 % of base) : 2502.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
Top method improvements (percentages):
-20 (-62.50 % of base) : 3563.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-60 (-60.61 % of base) : 5758.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-60.61 % of base) : 6092.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-60.61 % of base) : 6122.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-20 (-60.61 % of base) : 7146.dasm - System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
-20 (-60.61 % of base) : 8505.dasm - System.Security.Cryptography.HMACSHA3_256:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 8500.dasm - System.Security.Cryptography.HMACSHA3_384:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 8494.dasm - System.Security.Cryptography.HMACSHA3_512:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 8502.dasm - System.Security.Cryptography.SHA3_256:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 8497.dasm - System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 8489.dasm - System.Security.Cryptography.SHA3_512:get_IsSupported():ubyte (Tier0)
-20 (-60.61 % of base) : 2934.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-60.61 % of base) : 8436.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-60.61 % of base) : 403.dasm - System.Text.Json.JsonSerializer:get_IsReflectionEnabledByDefault():ubyte (Tier0)
-97 (-53.59 % of base) : 7978.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Instrumented Tier1)
-20 (-51.28 % of base) : 3368.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
-20 (-51.28 % of base) : 3371.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:get_Current():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-20 (-51.28 % of base) : 3059.dasm - System.Reflection.Metadata.MetadataStringDecoder:get_DefaultUTF8():System.Reflection.Metadata.MetadataStringDecoder (Tier0)
-20 (-51.28 % of base) : 1897.dasm - System.Runtime.CompilerServices.CallSiteBinder:get_UpdateLabel():System.Linq.Expressions.LabelTarget (Tier0)
-20 (-51.28 % of base) : 5621.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:get_DefaultMarshallingInstance():System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers (Tier0)
librariestestsnotieredcompilation.run.linux.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 67726 (overridden on cmd)
Total bytes of diff: 64314 (overridden on cmd)
Total bytes of delta: -3412 (-5.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-502 : 66.dasm (-79.94 % of base)
-232 : 2298.dasm (-68.04 % of base)
-199 : 1154.dasm (-85.41 % of base)
-124 : 1815.dasm (-14.71 % of base)
-104 : 476.dasm (-29.21 % of base)
-90 : 120.dasm (-21.74 % of base)
-80 : 138.dasm (-17.51 % of base)
-75 : 699.dasm (-47.47 % of base)
-73 : 9.dasm (-12.87 % of base)
-69 : 315.dasm (-30.40 % of base)
-43 : 1493.dasm (-58.11 % of base)
-43 : 952.dasm (-28.86 % of base)
-43 : 1352.dasm (-58.11 % of base)
-43 : 1458.dasm (-58.11 % of base)
-38 : 1903.dasm (-8.10 % of base)
-38 : 762.dasm (-14.62 % of base)
-38 : 123.dasm (-11.59 % of base)
-34 : 837.dasm (-19.88 % of base)
-32 : 1909.dasm (-16.08 % of base)
-32 : 1930.dasm (-13.50 % of base)
65 total files with Code Size differences (65 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-502 (-79.94 % of base) : 66.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-232 (-68.04 % of base) : 2298.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-199 (-85.41 % of base) : 1154.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-124 (-14.71 % of base) : 1815.dasm - Xunit.Sdk.CollectionTracker:CheckIfDictionariesAreEqual(Xunit.Sdk.CollectionTracker,Xunit.Sdk.CollectionTracker,System.Collections.IEqualityComparer):System.Nullable`1[ubyte] (FullOpts)
-104 (-29.21 % of base) : 476.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-90 (-21.74 % of base) : 120.dasm - System.Lazy`1[int]:CreateValue():int:this (FullOpts)
-80 (-17.51 % of base) : 138.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (FullOpts)
-75 (-47.47 % of base) : 699.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-73 (-12.87 % of base) : 9.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-69 (-30.40 % of base) : 315.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-43 (-58.11 % of base) : 1352.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (FullOpts)
-43 (-58.11 % of base) : 1458.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (FullOpts)
-43 (-58.11 % of base) : 1493.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (FullOpts)
-43 (-28.86 % of base) : 952.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (FullOpts)
-38 (-11.59 % of base) : 123.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.Native.PlatformApis:DetermineOSPlatform():int (FullOpts)
-38 (-8.10 % of base) : 1903.dasm - System.Linq.Enumerable:Sum[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Decimal,System.Decimal](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Decimal]):System.Decimal (FullOpts)
-38 (-14.62 % of base) : 762.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler:AddExecutionOptions(System.String,Xunit.Abstractions.ITestFrameworkExecutionOptions):this (FullOpts)
-34 (-19.88 % of base) : 837.dasm - System.Dynamic.Utils.TypeExtensions:GetParametersCached(System.Reflection.MethodBase):System.Reflection.ParameterInfo[] (FullOpts)
-32 (-13.50 % of base) : 1930.dasm - System.Xml.Linq.ElementWriter:WriteElement(System.Xml.Linq.XElement):this (FullOpts)
-32 (-16.08 % of base) : 1909.dasm - System.Xml.Linq.XElement:Save(System.IO.Stream,int):this (FullOpts)
Top method improvements (percentages):
-199 (-85.41 % of base) : 1154.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-502 (-79.94 % of base) : 66.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-31 (-79.49 % of base) : 711.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
-232 (-68.04 % of base) : 2298.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-31 (-62.00 % of base) : 2025.dasm - Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
-31 (-62.00 % of base) : 1141.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-31 (-62.00 % of base) : 748.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-31 (-62.00 % of base) : 509.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-31 (-62.00 % of base) : 1850.dasm - Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-31 (-62.00 % of base) : 756.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-31 (-62.00 % of base) : 1890.dasm - Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-43 (-58.11 % of base) : 1352.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (FullOpts)
-43 (-58.11 % of base) : 1458.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (FullOpts)
-43 (-58.11 % of base) : 1493.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (FullOpts)
-31 (-55.36 % of base) : 806.dasm - Xunit.Sdk.XunitTestAssemblyRunner:AfterTestAssemblyStartingAsync():System.Threading.Tasks.Task:this (FullOpts)
-75 (-47.47 % of base) : 699.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-28 (-45.16 % of base) : 309.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-31 (-44.29 % of base) : 132.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:GetRIDOS():System.String (FullOpts)
-28 (-43.75 % of base) : 1372.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_ManagedVirtualMethodTable():ulong (FullOpts)
-31 (-43.66 % of base) : 317.dasm - System.ConsolePal:GetConsoleEncoding():System.Text.Encoding (FullOpts)
realworld.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 361633 (overridden on cmd)
Total bytes of diff: 350751 (overridden on cmd)
Total bytes of delta: -10882 (-3.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 2209.dasm (2.72 % of base)
4 : 3048.dasm (3.42 % of base)
4 : 3116.dasm (2.72 % of base)
4 : 4557.dasm (2.72 % of base)
4 : 5156.dasm (2.42 % of base)
4 : 5428.dasm (2.42 % of base)
3 : 2046.dasm (3.03 % of base)
Top file improvements (bytes):
-6440 : 4685.dasm (-75.61 % of base)
-502 : 700.dasm (-79.94 % of base)
-283 : 4618.dasm (-70.57 % of base)
-217 : 9.dasm (-68.89 % of base)
-202 : 3432.dasm (-35.63 % of base)
-202 : 4935.dasm (-35.63 % of base)
-115 : 409.dasm (-42.28 % of base)
-106 : 4529.dasm (-37.06 % of base)
-104 : 732.dasm (-29.21 % of base)
-92 : 2557.dasm (-9.17 % of base)
-90 : 2472.dasm (-27.69 % of base)
-86 : 2462.dasm (-63.70 % of base)
-76 : 2560.dasm (-11.01 % of base)
-73 : 240.dasm (-12.87 % of base)
-65 : 3298.dasm (-61.32 % of base)
-62 : 2565.dasm (-42.47 % of base)
-62 : 3260.dasm (-54.39 % of base)
-62 : 4543.dasm (-76.54 % of base)
-62 : 4544.dasm (-76.54 % of base)
-61 : 2795.dasm (-43.88 % of base)
61 total files with Code Size differences (54 improved, 7 regressed), 1 unchanged.
Top method regressions (bytes):
4 (3.42 % of base) : 3048.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.42 % of base) : 5428.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.__Canon],FSharp.Compiler.Text.Range,System.__Canon):System.__Canon (FullOpts)
4 (2.72 % of base) : 3116.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.42 % of base) : 5156.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,FSharp.Compiler.Text.Range]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,FSharp.Compiler.Text.Range):System.__Canon (FullOpts)
4 (2.72 % of base) : 4557.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.72 % of base) : 2209.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
3 (3.03 % of base) : 2046.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
Top method improvements (bytes):
-6440 (-75.61 % of base) : 4685.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-502 (-79.94 % of base) : 700.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-283 (-70.57 % of base) : 4618.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-217 (-68.89 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-202 (-35.63 % of base) : 3432.dasm - FSharp.Compiler.Parser:tables():Internal.Utilities.Text.Parsing.Tables`1[FSharp.Compiler.Parser+token] (FullOpts)
-202 (-35.63 % of base) : 4935.dasm - FSharp.Compiler.PPParser:tables():Internal.Utilities.Text.Parsing.Tables`1[FSharp.Compiler.PPParser+token] (FullOpts)
-115 (-42.28 % of base) : 409.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-106 (-37.06 % of base) : 4529.dasm - FSharp.Compiler.LexFilter+LexFilter:GetToken():FSharp.Compiler.Parser+token:this (FullOpts)
-104 (-29.21 % of base) : 732.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-92 (-9.17 % of base) : 2557.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
-90 (-27.69 % of base) : 2472.dasm - FSharp.Compiler.Text.RangeModule:rangeN(System.String,int):FSharp.Compiler.Text.Range (FullOpts)
-86 (-63.70 % of base) : 2462.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-76 (-11.01 % of base) : 2560.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-73 (-12.87 % of base) : 240.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-65 (-61.32 % of base) : 3298.dasm - Microsoft.Build.Shared.FileSystem.FileSystems:GetFileSystem():Microsoft.Build.Shared.FileSystem.IFileSystem (FullOpts)
-62 (-42.47 % of base) : 2565.dasm - FSComp.SR:optsHelpBannerOutputFiles():System.String (FullOpts)
-62 (-54.39 % of base) : 3260.dasm - FSharp.Compiler.CompilerImports:logMessage@377(FSharp.Compiler.CompilerConfig+TcConfig,ubyte):Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit] (FullOpts)
-62 (-76.54 % of base) : 4544.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-62 (-76.54 % of base) : 4543.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-61 (-43.88 % of base) : 2795.dasm - FSharp.Compiler.AbstractIL.IL+PublicKey:GetHashCode(System.Collections.IEqualityComparer):int:this (FullOpts)
Top method regressions (percentages):
4 (3.42 % of base) : 3048.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
3 (3.03 % of base) : 2046.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.72 % of base) : 3116.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.72 % of base) : 4557.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.72 % of base) : 2209.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
4 (2.42 % of base) : 5428.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Text.Range,System.__Canon],FSharp.Compiler.Text.Range,System.__Canon):System.__Canon (FullOpts)
4 (2.42 % of base) : 5156.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,FSharp.Compiler.Text.Range]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,FSharp.Compiler.Text.Range):System.__Canon (FullOpts)
Top method improvements (percentages):
-502 (-79.94 % of base) : 700.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-62 (-76.54 % of base) : 4544.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-62 (-76.54 % of base) : 4543.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-6440 (-75.61 % of base) : 4685.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-283 (-70.57 % of base) : 4618.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-31 (-68.89 % of base) : 2566.dasm - FSComp.SR:.cctor() (FullOpts)
-31 (-68.89 % of base) : 1719.dasm - FSharp.Benchmarks.Program:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2756.dasm - FSharp.Compiler.AbstractIL.IL:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2918.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
-31 (-68.89 % of base) : 5524.dasm - FSharp.Compiler.BuildGraph+NodeCodeBuilder:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2148.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2156.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2410.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2499.dasm - FSharp.Compiler.Features+LanguageVersion:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2851.dasm - FSharp.Compiler.FxResolver:.cctor() (FullOpts)
-31 (-68.89 % of base) : 4538.dasm - FSharp.Compiler.Lexer:.cctor() (FullOpts)
-31 (-68.89 % of base) : 3433.dasm - FSharp.Compiler.Parser:.cctor() (FullOpts)
-31 (-68.89 % of base) : 4963.dasm - FSharp.Compiler.PPLexer:.cctor() (FullOpts)
-31 (-68.89 % of base) : 4936.dasm - FSharp.Compiler.PPParser:.cctor() (FullOpts)
-31 (-68.89 % of base) : 2649.dasm - FSharp.Compiler.Syntax.PrettyNaming:.cctor() (FullOpts)
smoke_tests.nativeaot.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 411097 (overridden on cmd)
Total bytes of diff: 405328 (overridden on cmd)
Total bytes of delta: -5769 (-1.40 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-267 : 7154.dasm (-55.86 % of base)
-119 : 2389.dasm (-12.11 % of base)
-101 : 6846.dasm (-10.64 % of base)
-100 : 4709.dasm (-4.33 % of base)
-96 : 3596.dasm (-7.47 % of base)
-96 : 1589.dasm (-14.88 % of base)
-90 : 1067.dasm (-12.41 % of base)
-86 : 6780.dasm (-72.88 % of base)
-81 : 1869.dasm (-10.33 % of base)
-75 : 1832.dasm (-15.53 % of base)
-69 : 2620.dasm (-47.26 % of base)
-66 : 6545.dasm (-35.29 % of base)
-64 : 7124.dasm (-40.00 % of base)
-64 : 6426.dasm (-15.24 % of base)
-63 : 1004.dasm (-13.24 % of base)
-61 : 2920.dasm (-17.09 % of base)
-60 : 976.dasm (-14.67 % of base)
-57 : 3583.dasm (-8.48 % of base)
-57 : 7132.dasm (-39.58 % of base)
-54 : 6433.dasm (-6.78 % of base)
78 total files with Code Size differences (78 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-267 (-55.86 % of base) : 7154.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-119 (-12.11 % of base) : 2389.dasm - System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-101 (-10.64 % of base) : 6846.dasm - System.Threading.PortableThreadPool:PerformBlockingAdjustment(ubyte,byref):uint:this (FullOpts)
-100 (-4.33 % of base) : 4709.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-7.47 % of base) : 3596.dasm - System.DateTimeFormat:TryFormatO[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-14.88 % of base) : 1589.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-90 (-12.41 % of base) : 1067.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-86 (-72.88 % of base) : 6780.dasm - System.Threading.SpinWait:.cctor() (FullOpts)
-81 (-10.33 % of base) : 1869.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:CompareMethodSignatures(Internal.Runtime.CompilerServices.RuntimeSignature,Internal.Runtime.CompilerServices.RuntimeSignature):ubyte:this (FullOpts)
-75 (-15.53 % of base) : 1832.dasm - System.Number:UInt64ToDecStr(ulong,int):System.String (FullOpts)
-69 (-47.26 % of base) : 2620.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-66 (-35.29 % of base) : 6545.dasm - System.Threading.Tasks.Task:CancellationCleanupLogic():this (FullOpts)
-64 (-40.00 % of base) : 7124.dasm - System.Runtime.CompilerServices.TaskAwaiter:UnsafeOnCompletedInternal(System.Threading.Tasks.Task,System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte) (FullOpts)
-64 (-15.24 % of base) : 6426.dasm - System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
-63 (-13.24 % of base) : 1004.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,System.Span`1[ushort],byref):ubyte (FullOpts)
-61 (-17.09 % of base) : 2920.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetVirtualResolveData(Internal.Runtime.TypeLoader.NativeFormatModuleInfo,System.RuntimeTypeHandle,System.Reflection.Runtime.General.QMethodDefinition,System.RuntimeTypeHandle[],byref):long (FullOpts)
-60 (-14.67 % of base) : 976.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,System.Span`1[ushort],byref):ubyte (FullOpts)
-57 (-8.48 % of base) : 3583.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-57 (-39.58 % of base) : 7132.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult) (FullOpts)
-54 (-6.78 % of base) : 6433.dasm - System.Threading.LowLevelLifoSemaphore:Wait(int,ubyte):ubyte:this (FullOpts)
Top method improvements (percentages):
-86 (-72.88 % of base) : 6780.dasm - System.Threading.SpinWait:.cctor() (FullOpts)
-23 (-60.53 % of base) : 12852.dasm - Internal.Reflection.Execution.AssemblyBinderImplementation:get_Instance():Internal.Reflection.Execution.AssemblyBinderImplementation (FullOpts)
-23 (-60.53 % of base) : 1699.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
-23 (-60.53 % of base) : 3342.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
-23 (-60.53 % of base) : 12584.dasm - Internal.TypeSystem.TypeSystemContext:get_PointerTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
-23 (-60.53 % of base) : 7223.dasm - System.Linq.Expressions.BlockExpression:GetOrMakeVariables():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]:this (FullOpts)
-23 (-60.53 % of base) : 13023.dasm - System.Text.DecoderFallback:get_ReplacementFallback():System.Text.DecoderFallback (FullOpts)
-23 (-60.53 % of base) : 10556.dasm - System.Text.Encoding:get_ASCII():System.Text.Encoding (FullOpts)
-23 (-60.53 % of base) : 10559.dasm - System.Text.Encoding:get_Latin1():System.Text.Encoding (FullOpts)
-23 (-60.53 % of base) : 10555.dasm - System.Text.Encoding:get_Unicode():System.Text.Encoding (FullOpts)
-23 (-60.53 % of base) : 11203.dasm - System.Threading.TimerQueue:get_Instances():System.Threading.TimerQueue[] (FullOpts)
-23 (-57.50 % of base) : 6182.dasm - System.Threading.PortableThreadPool+WorkerThread+<>c:<.cctor>b__17_0():this (FullOpts)
-23 (-57.50 % of base) : 7829.dasm - System.Threading.Tasks.Task:LogFinishCompletionNotification() (FullOpts)
-35 (-56.45 % of base) : 10512.dasm - System.Threading.ThreadPoolWorkQueue:RefreshLoggingEnabled():this (FullOpts)
-23 (-56.10 % of base) : 6333.dasm - System.Linq.Expressions.ConditionalExpression:GetFalse():System.Linq.Expressions.Expression:this (FullOpts)
-267 (-55.86 % of base) : 7154.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-23 (-54.76 % of base) : 26.dasm - Internal.TypeSystem.Instantiation:.cctor() (FullOpts)
-23 (-52.27 % of base) : 1069.dasm - Internal.Runtime.TypeLoader.ModuleList:EnumerateModules():Internal.Runtime.TypeLoader.NativeFormatModuleInfoEnumerable (FullOpts)
-23 (-52.27 % of base) : 6371.dasm - System.Threading.Tasks.ThreadPoolTaskScheduler:NotifyWorkItemProgress():this (FullOpts)
-23 (-52.27 % of base) : 10504.dasm - System.Threading.ThreadPool:NotifyThreadUnblocked() (FullOpts)
osx arm64
Diffs are based on 143,750 contexts (21,411 MinOpts, 122,339 FullOpts).
MISSED contexts: base: 4 (0.00%), diff: 124,661 (45.84%)
Overall (-40,932 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.osx.arm64.checked.mch |
189,868 |
-3,036 |
| benchmarks.run_pgo.osx.arm64.checked.mch |
1,297,204 |
-7,836 |
| benchmarks.run_tiered.osx.arm64.checked.mch |
1,037,520 |
-6,696 |
| coreclr_tests.run.osx.arm64.checked.mch |
247,160 |
-776 |
| libraries.crossgen2.osx.arm64.checked.mch |
11,447,832 |
-40 |
| libraries.pmi.osx.arm64.checked.mch |
708,248 |
-3,484 |
| libraries_tests.run.osx.arm64.Release.mch |
649,232 |
-2,956 |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
102,104 |
-4,316 |
| realworld.run.osx.arm64.checked.mch |
402,548 |
-11,792 |
MinOpts (-17,532 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
1,201,340 |
-7,816 |
| benchmarks.run_tiered.osx.arm64.checked.mch |
903,596 |
-6,344 |
| coreclr_tests.run.osx.arm64.checked.mch |
222,648 |
-480 |
| libraries_tests.run.osx.arm64.Release.mch |
597,968 |
-2,892 |
FullOpts (-23,400 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.osx.arm64.checked.mch |
189,868 |
-3,036 |
| benchmarks.run_pgo.osx.arm64.checked.mch |
95,864 |
-20 |
| benchmarks.run_tiered.osx.arm64.checked.mch |
133,924 |
-352 |
| coreclr_tests.run.osx.arm64.checked.mch |
24,512 |
-296 |
| libraries.crossgen2.osx.arm64.checked.mch |
11,446,560 |
-40 |
| libraries.pmi.osx.arm64.checked.mch |
708,248 |
-3,484 |
| libraries_tests.run.osx.arm64.Release.mch |
51,264 |
-64 |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
102,104 |
-4,316 |
| realworld.run.osx.arm64.checked.mch |
402,548 |
-11,792 |
Example diffs
benchmarks.run.osx.arm64.checked.mch
-44 (-57.89%) : 1321.dasm - ProtoBuf.Meta.TypeModel+NullModel:get_Singleton():ProtoBuf.Meta.TypeModel (FullOpts)
@@ -15,35 +15,19 @@ G_M30370_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M30370_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M30370_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M30370_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30370_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M30370_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M30370_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M30370_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #163
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M30370_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=16de895d) for method ProtoBuf.Meta.TypeModel+NullModel:get_Singleton():ProtoBuf.Meta.TypeModel (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=16de895d) for method ProtoBuf.Meta.TypeModel+NullModel:get_Singleton():ProtoBuf.Meta.TypeModel (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-44.00%) : 986.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
@@ -17,14 +17,7 @@ G_M55451_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M55451_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M55451_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M55451_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55451_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
@@ -37,23 +30,13 @@ G_M55451_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x1, [x1]
ldr wzr, [x0]
;; size=40 bbWeight=1 PerfScore 15.00
-G_M55451_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M55451_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
br x1
; gcr arg pop 0
;; size=8 bbWeight=1 PerfScore 2.00
-G_M55451_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- b G_M55451_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 8, PerfScore 24.00, instruction count 25, allocated bytes for code 100 (MethodHash=41c82764) for method System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 18.50, instruction count 14, allocated bytes for code 56 (MethodHash=41c82764) for method System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
; ============================================================
Unwind Info:
@@ -64,7 +47,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-40.74%) : 2181.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualAllBenchmark():ubyte:this (FullOpts)
@@ -9,9 +9,8 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Runtime.Intrinsics.Tests.Perf_Vector128Float>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 cse0 [V02,T01] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V03 cse1 [V03,T00] ( 3, 3 ) long -> x0 "CSE - aggressive"
-; V04 rat0 [V04,T02] ( 3, 6 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
+; V02 cse0 [V02,T00] ( 3, 3 ) long -> x0 "CSE - aggressive"
+; V03 rat0 [V03,T01] ( 3, 6 ) simd16 -> d16 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -19,14 +18,7 @@ G_M30466_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M30466_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M30466_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M30466_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M30466_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -40,20 +32,12 @@ G_M30466_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cmn x0, #1
cset x0, eq
;; size=48 bbWeight=1 PerfScore 13.00
-G_M30466_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M30466_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M30466_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M30466_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 108, prolog size 8, PerfScore 22.00, instruction count 27, allocated bytes for code 108 (MethodHash=e12a88fd) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualAllBenchmark():ubyte:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 16.50, instruction count 16, allocated bytes for code 64 (MethodHash=e12a88fd) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualAllBenchmark():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -64,7 +48,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
+ 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)
-4 (-1.54%) : 2314.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverterSystem.__Canon:System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
@@ -8,36 +8,35 @@
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4.50) ref -> x20 this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
+; V00 this [V00,T01] ( 5, 4.50) ref -> x20 this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
; V01 TypeCtx [V01,T00] ( 8, 5.38) long -> x19 single-def
-; V02 loc0 [V02,T08] ( 3, 2.50) ref -> x0 class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.__Canon]>
+;* V02 loc0 [V02,T12] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.__Canon]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V05 tmp2 [V05,T05] ( 3, 3 ) ref -> x0 class-hnd single-def "dup spill" <System.Text.Json.Serialization.JsonConverter>
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp4 [V07,T12] ( 3, 1.50) ref -> x21
-; V08 tmp5 [V08,T10] ( 4, 2 ) ref -> x0
+; V07 tmp4 [V07,T11] ( 3, 1.50) ref -> x20
+; V08 tmp5 [V08,T09] ( 4, 2 ) ref -> x0
; V09 tmp6 [V09,T06] ( 3, 3 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Converters.CastingConverter`1[System.__Canon]>
;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V11 tmp8 [V11,T04] ( 2, 4 ) long -> x0 "argument with side effect"
; V12 rat0 [V12,T03] ( 3, 4 ) long -> x0 "runtime lookup"
; V13 rat1 [V13,T02] ( 3, 5.60) long -> x0 "fgMakeTemp is creating a new local variable"
-; V14 rat2 [V14,T11] ( 3, 2 ) long -> x0 "runtime lookup"
+; V14 rat2 [V14,T10] ( 3, 2 ) long -> x0 "runtime lookup"
; V15 rat3 [V15,T07] ( 3, 2.80) long -> x0 "spilling expr"
-; V16 rat4 [V16,T09] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
+; V16 rat4 [V16,T08] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M17047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x18]
- str x21, [sp, #0x28]
+ stp x19, x20, [sp, #0x20]
mov fp, sp
- str x1, [fp, #0x10]
+ str x1, [fp, #0x18]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
- ;; size=28 bbWeight=1 PerfScore 5.50
+ ;; size=24 bbWeight=1 PerfScore 4.50
G_M17047_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x38]
ldr x0, [x0, #0x10]
@@ -51,97 +50,99 @@ G_M17047_IG04: ; bbWeight=0.20, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
;; size=20 bbWeight=0.20 PerfScore 0.60
G_M17047_IG05: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbz x0, G_M17047_IG07
+ cbz x20, G_M17047_IG08
;; size=12 bbWeight=1 PerfScore 2.50
-G_M17047_IG06: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x20]
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M17047_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0] +[x20]
+G_M17047_IG06: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
mov x0, x20
; gcrRegs +[x0]
- ldr x1, [x20]
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M17047_IG07: ; bbWeight=0.50, epilog, nogc, extend
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x30
+ ret lr
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
+G_M17047_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0 x20]
+ mov x0, xzr
+ mov x1, xzr
+ ldr x1, [x1]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x20]
blr x1
- cbnz x0, G_M17047_IG08
- mov x21, xzr
- ; gcrRegs +[x21]
- b G_M17047_IG09
- ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M17047_IG08: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x21]
+ ; gcrRegs +[x0]
+ cbnz x0, G_M17047_IG09
+ mov x20, xzr
+ ; gcrRegs +[x20]
+ b G_M17047_IG10
+ ;; size=36 bbWeight=0.50 PerfScore 6.75
+G_M17047_IG09: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
mov x1, x19
movz x2, #0xD1FFAB1E // code for System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- mov x21, x0
- ; gcrRegs +[x21]
+ mov x20, x0
+ ; gcrRegs +[x20]
;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M17047_IG09: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M17047_IG10: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- mov x0, x21
+ mov x0, x20
; gcrRegs +[x0]
- cbnz x0, G_M17047_IG14
+ cbnz x0, G_M17047_IG15
ldr x0, [x19, #0x38]
; gcrRegs -[x0]
ldr x1, [x0, #0x08]
cmp x1, #24
- ble G_M17047_IG12
+ ble G_M17047_IG13
;; size=24 bbWeight=0.50 PerfScore 4.50
-G_M17047_IG10: ; bbWeight=0.40, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x21]
+G_M17047_IG11: ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x20]
ldr x0, [x0, #0x18]
- cbz x0, G_M17047_IG12
+ cbz x0, G_M17047_IG13
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M17047_IG11: ; bbWeight=0.32, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- b G_M17047_IG13
+G_M17047_IG12: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ b G_M17047_IG14
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M17047_IG12: ; bbWeight=0.18, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M17047_IG13: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x0, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
;; size=20 bbWeight=0.18 PerfScore 0.54
-G_M17047_IG13: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- bl CORINFO_HELP_NEWSFAST
+G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
mov x19, x0
; gcrRegs +[x19]
- mov x1, x20
- ; gcrRegs +[x1]
+ mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Text.Json.Serialization.Converters.CastingConverter`1[System.__Canon]:.ctor(System.Text.Json.Serialization.JsonConverter):this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0-x1 x20]
+ ; gcrRegs -[x0]
mov x0, x19
; gcrRegs +[x0]
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M17047_IG15: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- ldr x21, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
+ ldp x19, x20, [sp, #0x20]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 260, prolog size 20, PerfScore 42.11, instruction count 65, allocated bytes for code 260 (MethodHash=3467bd68) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
+; Total bytes of code 256, prolog size 16, PerfScore 39.61, instruction count 64, allocated bytes for code 256 (MethodHash=3467bd68) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -152,7 +153,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 65 (0x00041) Actual length = 260 (0x000104)
+ Function Length : 64 (0x00040) Actual length = 256 (0x000100)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -163,9 +164,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]
+ C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
+ E4 end
+ E4 end
+0 (0.00%) : 1650.dasm - System.Reflection.SignatureTypeExtensions:MatchesParameterTypeExactly(System.Type,System.Reflection.ParameterInfo):ubyte (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) ref -> x20 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T01] ( 4, 4 ) ref -> x20 class-hnd single-def <System.Type>
; V01 arg1 [V01,T00] ( 6, 4 ) ref -> x19 class-hnd single-def <System.Reflection.ParameterInfo>
-; V02 loc0 [V02,T02] ( 3, 2.50) ref -> x21 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T03] ( 2, 1.50) ref -> x21 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V04 tmp1 [V04,T02] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -31,11 +31,11 @@ G_M22240_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
mov x21, x0
; gcrRegs +[x21]
- cbz x21, G_M22240_IG05
+ cbz x20, G_M22240_IG05
;; size=28 bbWeight=1 PerfScore 4.50
G_M22240_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
@@ -60,8 +60,8 @@ G_M22240_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
br x2
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1 x21] +[x19-x20]
+G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1 x21] +[x19]
mov x0, x19
; gcrRegs +[x0]
ldr x1, [x19]
@@ -69,7 +69,7 @@ G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
ldr x1, [x1, #0x38]
blr x1
; gcrRegs -[x19]
- cmp x0, x20
+ cmp x0, #0
cset x0, eq
; gcrRegs -[x0]
;; size=28 bbWeight=0.50 PerfScore 5.75
+0 (0.00%) : 2334.dasm - System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
@@ -8,9 +8,9 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 2.50) ref -> x20 this class-hnd single-def <System.Text.Json.JsonSerializerOptions>
-; V01 arg1 [V01,T00] ( 5, 4.50) ref -> x19 class-hnd <System.Text.Json.Serialization.JsonConverter>
+; V01 arg1 [V01,T00] ( 6, 5.50) ref -> x19 class-hnd <System.Text.Json.Serialization.JsonConverter>
; V02 arg2 [V02,T02] ( 3, 2.50) ref -> x21 class-hnd single-def <System.Type>
-; V03 loc0 [V03,T03] ( 3, 2.50) ref -> x0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory>
+; V03 loc0 [V03,T03] ( 2, 1.50) ref -> x0 class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 8
@@ -33,9 +33,9 @@ G_M17128_IG02: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbz x0, G_M17128_IG04
+ cbz x19, G_M17128_IG04
;; size=24 bbWeight=1 PerfScore 4.00
G_M17128_IG03: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
benchmarks.run_pgo.osx.arm64.checked.mch
-20 (-38.46%) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
@@ -14,23 +14,18 @@ G_M26209_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26209_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M26209_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 89.dasm - System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
@@ -14,23 +14,18 @@ G_M38075_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M38075_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M38075_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=69976b44) for method System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=69976b44) for method System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 481.dasm - System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
@@ -14,23 +14,18 @@ G_M31785_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M31785_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M31785_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=b73d83d6) for method System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=b73d83d6) for method System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.60%) : 5654.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
@@ -32,8 +32,7 @@ G_M1602_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #70
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -107,7 +106,7 @@ G_M1602_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x3]
cbz w0, G_M1602_IG06
mov w0, #1
- ;; size=280 bbWeight=1 PerfScore 73.50
+ ;; size=276 bbWeight=1 PerfScore 73.00
G_M1602_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x50
ret lr
@@ -224,7 +223,7 @@ G_M1602_IG09: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 668, prolog size 16, PerfScore 181.50, instruction count 167, allocated bytes for code 668 (MethodHash=7785f9bd) for method Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
+; Total bytes of code 664, prolog size 16, PerfScore 181.00, instruction count 166, allocated bytes for code 664 (MethodHash=7785f9bd) for method Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -235,7 +234,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 167 (0x000a7) Actual length = 668 (0x00029c)
+ Function Length : 166 (0x000a6) Actual length = 664 (0x000298)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-0.46%) : 7080.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
@@ -546,15 +546,14 @@ G_M12113_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
b G_M12113_IG13
- ;; size=232 bbWeight=1 PerfScore 74.50
+ ;; size=228 bbWeight=1 PerfScore 74.00
G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xD0] // [V06 tmp1]
; gcrRegs +[x0]
@@ -563,14 +562,13 @@ G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
- ;; size=48 bbWeight=1 PerfScore 11.50
+ ;; size=44 bbWeight=1 PerfScore 11.00
G_M12113_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xC8] // [V07 tmp2]
; gcrRegs +[x0]
@@ -590,7 +588,7 @@ G_M12113_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 1756, prolog size 36, PerfScore 629.00, instruction count 439, allocated bytes for code 1756 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
+; Total bytes of code 1748, prolog size 36, PerfScore 628.00, instruction count 437, allocated bytes for code 1748 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
; ============================================================
Unwind Info:
@@ -601,7 +599,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 439 (0x001b7) Actual length = 1756 (0x0006dc)
+ Function Length : 437 (0x001b5) Actual length = 1748 (0x0006d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+6.25%) : 17329.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
@@ -5,53 +5,54 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_Plane>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_Plane>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Plane>
-; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x10] do-not-enreg[SFA] multireg-arg "argument with side effect"
+; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Plane>
;
-; Lcl frame size = 48
+; Lcl frame size = 32
G_M17376_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
+ stp fp, lr, [sp, #-0x30]!
mov fp, sp
- str x0, [fp, #0x38] // [V00 this]
+ str x0, [fp, #0x28] // [V00 this]
;; size=12 bbWeight=1 PerfScore 2.50
G_M17376_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- ldr q16, [x0]
- str q16, [fp, #0x10] // [V03 tmp2]
- ldr s0, [fp, #0x10] // [V03 tmp2]
- ldr s1, [fp, #0x14] // [V03 tmp2+0x04]
- ldr s2, [fp, #0x18] // [V03 tmp2+0x08]
- ldr s3, [fp, #0x1C] // [V03 tmp2+0x0c]
+ ldr s0, [x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr s1, [x0, #0x04]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr s2, [x0, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr s3, [x0, #0x0C]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- str s0, [fp, #0x20] // [V02 tmp1]
- str s1, [fp, #0x24] // [V02 tmp1+0x04]
- str s2, [fp, #0x28] // [V02 tmp1+0x08]
- str s3, [fp, #0x2C] // [V02 tmp1+0x0c]
- ldr s0, [fp, #0x20] // [V02 tmp1]
- ldr s1, [fp, #0x24] // [V02 tmp1+0x04]
- ldr s2, [fp, #0x28] // [V02 tmp1+0x08]
- ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c]
- ;; size=108 bbWeight=1 PerfScore 34.00
+ str s0, [fp, #0x10] // [V02 tmp1]
+ str s1, [fp, #0x14] // [V02 tmp1+0x04]
+ str s2, [fp, #0x18] // [V02 tmp1+0x08]
+ str s3, [fp, #0x1C] // [V02 tmp1+0x0c]
+ ldr s0, [fp, #0x10] // [V02 tmp1]
+ ldr s1, [fp, #0x14] // [V02 tmp1+0x04]
+ ldr s2, [fp, #0x18] // [V02 tmp1+0x08]
+ ldr s3, [fp, #0x1C] // [V02 tmp1+0x0c]
+ ;; size=116 bbWeight=1 PerfScore 35.50
G_M17376_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x40
+ ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 128, prolog size 8, PerfScore 38.50, instruction count 32, allocated bytes for code 128 (MethodHash=6ba9bc1f) for method System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
+; Total bytes of code 136, prolog size 8, PerfScore 40.00, instruction count 34, allocated bytes for code 136 (MethodHash=6ba9bc1f) for method System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
; ============================================================
Unwind Info:
@@ -62,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 34 (0x00022) Actual length = 136 (0x000088)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -70,7 +71,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
benchmarks.run_tiered.osx.arm64.checked.mch
-20 (-38.46%) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
@@ -14,23 +14,18 @@ G_M26209_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26209_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M26209_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 89.dasm - System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
@@ -14,23 +14,18 @@ G_M38075_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M38075_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M38075_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=69976b44) for method System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=69976b44) for method System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 481.dasm - System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
@@ -14,23 +14,18 @@ G_M31785_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M31785_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M31785_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=b73d83d6) for method System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=b73d83d6) for method System.Text.DecoderFallback:get_ExceptionFallback():System.Text.DecoderFallback (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-0.46%) : 9594.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
@@ -546,15 +546,14 @@ G_M12113_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
b G_M12113_IG13
- ;; size=232 bbWeight=1 PerfScore 74.50
+ ;; size=228 bbWeight=1 PerfScore 74.00
G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xD0] // [V06 tmp1]
; gcrRegs +[x0]
@@ -563,14 +562,13 @@ G_M12113_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x0]
str x1, [fp, #0xC0]
- ;; size=48 bbWeight=1 PerfScore 11.50
+ ;; size=44 bbWeight=1 PerfScore 11.00
G_M12113_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0xC8] // [V07 tmp2]
; gcrRegs +[x0]
@@ -590,7 +588,7 @@ G_M12113_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 1756, prolog size 36, PerfScore 629.00, instruction count 439, allocated bytes for code 1756 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
+; Total bytes of code 1748, prolog size 36, PerfScore 628.00, instruction count 437, allocated bytes for code 1748 (MethodHash=9eb0d0ae) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (Tier0)
; ============================================================
Unwind Info:
@@ -601,7 +599,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 439 (0x001b7) Actual length = 1756 (0x0006dc)
+ Function Length : 437 (0x001b5) Actual length = 1748 (0x0006d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 6164.dasm - System.Threading.ThreadPoolWorkQueue:DispatchWorkItem(System.Object,System.Threading.Thread) (Tier1)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <System.Object>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <System.Object>
; V01 arg1 [V01,T01] ( 3, 2.50) ref -> x20 class-hnd single-def <System.Threading.Thread>
-; V02 loc0 [V02,T02] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T02] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -33,10 +33,10 @@ G_M60059_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M60059_IG05
+ cbz x19, G_M60059_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M60059_IG03: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -52,15 +52,14 @@ G_M60059_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0-x1 x20] +[x19]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0-x1 x20]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFINTERFACE
- ; gcrRegs -[x1] +[x0]
+ bl CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs +[x0]
; gcr arg pop 0
cbnz x0, G_M60059_IG06
movz x1, #8
@@ -75,9 +74,8 @@ G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
; gcrRegs -[x0]
; gcr arg pop 0
;; size=60 bbWeight=0.50 PerfScore 5.75
-G_M60059_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov x0, x19
- ; gcrRegs +[x0]
+G_M60059_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov x0, xzr
movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #1 LSL #32
+8 (+6.25%) : 12741.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
@@ -5,53 +5,54 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_Plane>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_Plane>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Plane>
-; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x10] do-not-enreg[SFA] multireg-arg "argument with side effect"
+; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Plane>
;
-; Lcl frame size = 48
+; Lcl frame size = 32
G_M17376_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
+ stp fp, lr, [sp, #-0x30]!
mov fp, sp
- str x0, [fp, #0x38] // [V00 this]
+ str x0, [fp, #0x28] // [V00 this]
;; size=12 bbWeight=1 PerfScore 2.50
G_M17376_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- ldr q16, [x0]
- str q16, [fp, #0x10] // [V03 tmp2]
- ldr s0, [fp, #0x10] // [V03 tmp2]
- ldr s1, [fp, #0x14] // [V03 tmp2+0x04]
- ldr s2, [fp, #0x18] // [V03 tmp2+0x08]
- ldr s3, [fp, #0x1C] // [V03 tmp2+0x0c]
+ ldr s0, [x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr s1, [x0, #0x04]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr s2, [x0, #0x08]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr s3, [x0, #0x0C]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- str s0, [fp, #0x20] // [V02 tmp1]
- str s1, [fp, #0x24] // [V02 tmp1+0x04]
- str s2, [fp, #0x28] // [V02 tmp1+0x08]
- str s3, [fp, #0x2C] // [V02 tmp1+0x0c]
- ldr s0, [fp, #0x20] // [V02 tmp1]
- ldr s1, [fp, #0x24] // [V02 tmp1+0x04]
- ldr s2, [fp, #0x28] // [V02 tmp1+0x08]
- ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c]
- ;; size=108 bbWeight=1 PerfScore 34.00
+ str s0, [fp, #0x10] // [V02 tmp1]
+ str s1, [fp, #0x14] // [V02 tmp1+0x04]
+ str s2, [fp, #0x18] // [V02 tmp1+0x08]
+ str s3, [fp, #0x1C] // [V02 tmp1+0x0c]
+ ldr s0, [fp, #0x10] // [V02 tmp1]
+ ldr s1, [fp, #0x14] // [V02 tmp1+0x04]
+ ldr s2, [fp, #0x18] // [V02 tmp1+0x08]
+ ldr s3, [fp, #0x1C] // [V02 tmp1+0x0c]
+ ;; size=116 bbWeight=1 PerfScore 35.50
G_M17376_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x40
+ ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 128, prolog size 8, PerfScore 38.50, instruction count 32, allocated bytes for code 128 (MethodHash=6ba9bc1f) for method System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
+; Total bytes of code 136, prolog size 8, PerfScore 40.00, instruction count 34, allocated bytes for code 136 (MethodHash=6ba9bc1f) for method System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
; ============================================================
Unwind Info:
@@ -62,7 +63,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 32 (0x00020) Actual length = 128 (0x000080)
+ Function Length : 34 (0x00022) Actual length = 136 (0x000088)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -70,7 +71,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
coreclr_tests.run.osx.arm64.checked.mch
-20 (-38.46%) : 563.dasm - System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
@@ -14,23 +14,18 @@ G_M24551_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M24551_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #33
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M24551_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=51afa018) for method System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=51afa018) for method System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-26.32%) : 42.dasm - System.ConsolePal:EnsureConsoleInitialized() (Tier0)
@@ -14,11 +14,6 @@ G_M36161_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M36161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #22
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -29,13 +24,13 @@ G_M36161_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- ;; size=60 bbWeight=1 PerfScore 14.00
+ ;; size=40 bbWeight=1 PerfScore 11.00
G_M36161_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 8, PerfScore 17.50, instruction count 19, allocated bytes for code 76 (MethodHash=460772be) for method System.ConsolePal:EnsureConsoleInitialized() (Tier0)
+; Total bytes of code 56, prolog size 8, PerfScore 14.50, instruction count 14, allocated bytes for code 56 (MethodHash=460772be) for method System.ConsolePal:EnsureConsoleInitialized() (Tier0)
; ============================================================
Unwind Info:
@@ -46,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-19.23%) : 442.dasm - System.Text.RegularExpressions.Regex:.cctor() (Tier0)
@@ -14,11 +14,6 @@ G_M6374_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M6374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,13 +31,13 @@ G_M6374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
str x0, [x1]
- ;; size=88 bbWeight=1 PerfScore 18.00
+ ;; size=68 bbWeight=1 PerfScore 15.00
G_M6374_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 104, prolog size 8, PerfScore 21.50, instruction count 26, allocated bytes for code 104 (MethodHash=7617e719) for method System.Text.RegularExpressions.Regex:.cctor() (Tier0)
+; Total bytes of code 84, prolog size 8, PerfScore 18.50, instruction count 21, allocated bytes for code 84 (MethodHash=7617e719) for method System.Text.RegularExpressions.Regex:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -53,7 +48,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 21 (0x00015) Actual length = 84 (0x000054)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-7.69%) : 1955.dasm - Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
@@ -21,17 +21,16 @@ G_M28697_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #66
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
strb wzr, [fp, #0x10] // [V01 loc0]
ldr w0, [fp, #0x10] // [V01 loc0]
- ;; size=28 bbWeight=1 PerfScore 6.00
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M28697_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 12, PerfScore 11.50, instruction count 13, allocated bytes for code 52 (MethodHash=c5b88fe6) for method Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
+; Total bytes of code 48, prolog size 12, PerfScore 11.00, instruction count 12, allocated bytes for code 48 (MethodHash=c5b88fe6) for method Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
; ============================================================
Unwind Info:
@@ -42,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-5.95%) : 235.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
@@ -47,11 +47,6 @@ G_M29212_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M29212_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #107
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -62,7 +57,7 @@ G_M29212_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- ;; size=60 bbWeight=1 PerfScore 14.00
+ ;; size=40 bbWeight=1 PerfScore 11.00
G_M29212_IG05: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
@@ -120,7 +115,7 @@ G_M29212_IG09: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 336, prolog size 12, PerfScore 108.00, instruction count 84, allocated bytes for code 336 (MethodHash=c01d8de3) for method System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
+; Total bytes of code 316, prolog size 12, PerfScore 105.00, instruction count 79, allocated bytes for code 316 (MethodHash=c01d8de3) for method System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
; ============================================================
Unwind Info:
@@ -131,7 +126,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.17%) : 131.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
@@ -17,8 +17,7 @@ G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- mov w1, #15
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -53,7 +52,7 @@ G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
cmp w0, #0
cset x0, eq
- ;; size=156 bbWeight=1 PerfScore 37.00
+ ;; size=152 bbWeight=1 PerfScore 36.50
G_M17591_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
@@ -66,7 +65,7 @@ G_M17591_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 184, prolog size 8, PerfScore 43.00, instruction count 46, allocated bytes for code 184 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
+; Total bytes of code 180, prolog size 8, PerfScore 42.50, instruction count 45, allocated bytes for code 180 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -77,7 +76,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
+ Function Length : 45 (0x0002d) Actual length = 180 (0x0000b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.crossgen2.osx.arm64.checked.mch
-12 (-5.88%) : 23255.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
@@ -15,8 +15,8 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V04 tmp2 [V04,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp3 [V05,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V06 cse0 [V06,T03] ( 4, 3 ) byref -> x0 "CSE - aggressive"
-; V07 cse1 [V07,T02] ( 5, 3.50) int -> x1 "CSE - aggressive"
+; V06 cse0 [V06,T03] ( 4, 3 ) int -> x11 "CSE - aggressive"
+; V07 cse1 [V07,T02] ( 5, 3.50) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -34,25 +34,24 @@ G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x0
; byrRegs +[x0]
ldrh w11, [x0]
- uxth w1, w20
- cmp w11, w1
+ uxth w0, w20
+ ; byrRegs -[x0]
+ cmp w11, w0
beq G_M44169_IG04
;; size=32 bbWeight=1 PerfScore 10.00
-G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- cmp w1, #47
+G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp w0, #47
bne G_M44169_IG07
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w11, [x0]
- uxth w2, w19
- cmp w11, w2
+G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ uxth w1, w19
+ cmp w11, w1
beq G_M44169_IG05
- uxth w11, w19
- cmp w11, #47
+ uxth w1, w19
+ cmp w1, #47
bne G_M44169_IG07
- ;; size=28 bbWeight=0.50 PerfScore 3.50
+ ;; size=24 bbWeight=0.50 PerfScore 2.00
G_M44169_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
@@ -60,13 +59,9 @@ G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
- ; byrRegs +[x0]
- ldrh w0, [x0]
- ; byrRegs -[x0]
- cmp w0, #47
+G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ cmp w11, #47
beq G_M44169_IG09
- mov w0, w1
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -79,15 +74,15 @@ G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
blr x1
cmp w20, w0
cset x0, eq
- ;; size=64 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 6.75
G_M44169_IG08: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44169_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- uxth w0, w19
- cmp w1, w0
+ uxth w1, w19
+ cmp w0, w1
cset x0, eq
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
@@ -96,7 +91,7 @@ G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 204, prolog size 12, PerfScore 31.75, instruction count 51, allocated bytes for code 204 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
+; Total bytes of code 192, prolog size 12, PerfScore 28.50, instruction count 48, allocated bytes for code 192 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -107,7 +102,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-5.88%) : 183360.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
@@ -15,8 +15,8 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V04 tmp2 [V04,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp3 [V05,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V06 cse0 [V06,T03] ( 4, 3 ) byref -> x0 "CSE - aggressive"
-; V07 cse1 [V07,T02] ( 5, 3.50) int -> x1 "CSE - aggressive"
+; V06 cse0 [V06,T03] ( 4, 3 ) int -> x11 "CSE - aggressive"
+; V07 cse1 [V07,T02] ( 5, 3.50) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -34,25 +34,24 @@ G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x0
; byrRegs +[x0]
ldrh w11, [x0]
- uxth w1, w20
- cmp w11, w1
+ uxth w0, w20
+ ; byrRegs -[x0]
+ cmp w11, w0
beq G_M44169_IG04
;; size=32 bbWeight=1 PerfScore 10.00
-G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- cmp w1, #47
+G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp w0, #47
bne G_M44169_IG07
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w11, [x0]
- uxth w2, w19
- cmp w11, w2
+G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ uxth w1, w19
+ cmp w11, w1
beq G_M44169_IG05
- uxth w11, w19
- cmp w11, #47
+ uxth w1, w19
+ cmp w1, #47
bne G_M44169_IG07
- ;; size=28 bbWeight=0.50 PerfScore 3.50
+ ;; size=24 bbWeight=0.50 PerfScore 2.00
G_M44169_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
@@ -60,13 +59,9 @@ G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
- ; byrRegs +[x0]
- ldrh w0, [x0]
- ; byrRegs -[x0]
- cmp w0, #47
+G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ cmp w11, #47
beq G_M44169_IG09
- mov w0, w1
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -79,15 +74,15 @@ G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
blr x1
cmp w20, w0
cset x0, eq
- ;; size=64 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 6.75
G_M44169_IG08: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44169_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- uxth w0, w19
- cmp w1, w0
+ uxth w1, w19
+ cmp w0, w1
cset x0, eq
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
@@ -96,7 +91,7 @@ G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 204, prolog size 12, PerfScore 31.75, instruction count 51, allocated bytes for code 204 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
+; Total bytes of code 192, prolog size 12, PerfScore 28.50, instruction count 48, allocated bytes for code 192 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -107,7 +102,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-4.00%) : 23259.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
@@ -12,7 +12,7 @@
; V00 arg0 [V00,T00] ( 4, 3 ) ref -> x19 class-hnd single-def <System.String>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T02] ( 2, 2 ) int -> x1 "argument with side effect"
-; V03 cse0 [V03,T01] ( 3, 2.50) byref -> x0 "CSE - aggressive"
+; V03 cse0 [V03,T01] ( 3, 2.50) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -34,17 +34,16 @@ G_M64282_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
cmp w1, #47
beq G_M64282_IG05
;; size=28 bbWeight=1 PerfScore 9.50
-G_M64282_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
- ldrh w1, [x0]
+G_M64282_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x0]
mov x0, x19
; gcrRegs +[x0]
- ; byrRegs -[x0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
mov w2, #47
ldr wzr, [x0]
ldr x3, [x11]
- ;; size=28 bbWeight=0.50 PerfScore 5.50
+ ;; size=24 bbWeight=0.50 PerfScore 4.00
G_M64282_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -62,7 +61,7 @@ G_M64282_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 100, prolog size 16, PerfScore 22.25, instruction count 25, allocated bytes for code 100 (MethodHash=904104e5) for method Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
+; Total bytes of code 96, prolog size 16, PerfScore 20.75, instruction count 24, allocated bytes for code 96 (MethodHash=904104e5) for method Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -73,7 +72,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ 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)
-4 (-2.50%) : 26181.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -15,7 +15,7 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 2, 2 ) int -> x2 "argument with side effect"
; V05 tmp2 [V05,T03] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V06 cse0 [V06,T05] ( 3, 1.50) byref -> x0 "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 1.50) int -> x2 "CSE - moderate"
;
; Lcl frame size = 8
@@ -53,7 +53,6 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldrh w2, [x0]
cmp w2, #47
bne G_M45118_IG04
- ldrh w2, [x0]
mov x0, x19
; gcrRegs +[x0]
; byrRegs -[x0]
@@ -73,7 +72,7 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x1 x20]
mov x21, x0
; gcrRegs +[x21]
- ;; size=84 bbWeight=0.50 PerfScore 13.75
+ ;; size=80 bbWeight=0.50 PerfScore 12.25
G_M45118_IG04: ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x21
@@ -86,7 +85,7 @@ G_M45118_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 160, prolog size 16, PerfScore 31.25, instruction count 40, allocated bytes for code 160 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 156, prolog size 16, PerfScore 29.75, instruction count 39, allocated bytes for code 156 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -97,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ 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)
-4 (-2.50%) : 186156.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -15,7 +15,7 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 2, 2 ) int -> x2 "argument with side effect"
; V05 tmp2 [V05,T03] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V06 cse0 [V06,T05] ( 3, 1.50) byref -> x0 "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 1.50) int -> x2 "CSE - moderate"
;
; Lcl frame size = 8
@@ -53,7 +53,6 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldrh w2, [x0]
cmp w2, #47
bne G_M45118_IG04
- ldrh w2, [x0]
mov x0, x19
; gcrRegs +[x0]
; byrRegs -[x0]
@@ -73,7 +72,7 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x1 x20]
mov x21, x0
; gcrRegs +[x21]
- ;; size=84 bbWeight=0.50 PerfScore 13.75
+ ;; size=80 bbWeight=0.50 PerfScore 12.25
G_M45118_IG04: ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x21
@@ -86,7 +85,7 @@ G_M45118_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 160, prolog size 16, PerfScore 31.25, instruction count 40, allocated bytes for code 160 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 156, prolog size 16, PerfScore 29.75, instruction count 39, allocated bytes for code 156 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -97,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ 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)
+0 (0.00%) : 79643.dasm - .$Array:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> x19 "value for stsfld with typeinit"
;
; Lcl frame size = 8
@@ -23,13 +22,15 @@ G_M35347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
blr x0
- sxtw w19, w0
+ ; byrRegs +[x0]
+ mov x19, x0
+ ; byrRegs +[x19]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
+ ; byrRegs -[x0]
blr x0
- ; byrRegs +[x0]
- str w19, [x0, #0xD1FFAB1E]
+ str w0, [x19, #0xD1FFAB1E]
;; size=40 bbWeight=1 PerfScore 11.50
G_M35347_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
libraries.pmi.osx.arm64.checked.mch
-44 (-57.89%) : 829.dasm - System.SR:UsingResourceKeys():ubyte (FullOpts)
@@ -8,53 +8,36 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - aggressive"
-; V02 rat0 [V02,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M7622_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M7622_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #1 LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M7622_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M7622_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldrb w0, [x19, #0x51]
- ;; size=4 bbWeight=1 PerfScore 3.00
-G_M7622_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M7622_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldrb w0, [x0]
+ ;; size=16 bbWeight=1 PerfScore 4.50
+G_M7622_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M7622_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #2
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M7622_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 12, PerfScore 17.00, instruction count 19, allocated bytes for code 76 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -62,10 +45,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-44 (-57.89%) : 10097.dasm - System.StringComparer:get_InvariantCultureIgnoreCase():System.StringComparer (FullOpts)
@@ -15,35 +15,19 @@ G_M54146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M54146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M54146_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M54146_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M54146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M54146_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M54146_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M54146_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M54146_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=a1592c7d) for method System.StringComparer:get_InvariantCultureIgnoreCase():System.StringComparer (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=a1592c7d) for method System.StringComparer:get_InvariantCultureIgnoreCase():System.StringComparer (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 7996.dasm - System.Random:get_Shared():System.Random (FullOpts)
@@ -15,35 +15,19 @@ G_M23867_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M23867_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M23867_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M23867_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23867_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M23867_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M23867_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M23867_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M23867_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=3adba2c4) for method System.Random:get_Shared():System.Random (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=3adba2c4) for method System.Random:get_Shared():System.Random (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-3.59%) : 5472.dasm - System.DateTimeParse:DTFITrace(System.Globalization.DateTimeFormatInfo) (FullOpts)
@@ -93,27 +93,20 @@ G_M24620_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x19]
;; size=20 bbWeight=1 PerfScore 4.00
G_M24620_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M24620_IG15
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M24620_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldrb w0, [x0]
- cbnz w0, G_M24620_IG05
+ cbnz w0, G_M24620_IG04
;; size=20 bbWeight=1 PerfScore 5.50
-G_M24620_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M24620_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M24620_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M24620_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -123,14 +116,14 @@ G_M24620_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
ldr x1, [x1]
ldr wzr, [x0]
blr x1
- cbnz x0, G_M24620_IG06
+ cbnz x0, G_M24620_IG05
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG07
+ b G_M24620_IG06
;; size=44 bbWeight=0.50 PerfScore 6.00
-G_M24620_IG06: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG05: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x20, x0, #12
@@ -147,7 +140,7 @@ G_M24620_IG06: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
; byrRegs +[x0]
sxtw w1, w21
;; size=40 bbWeight=0.50 PerfScore 5.25
-G_M24620_IG07: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M24620_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
; byrRegs -[x20]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -174,14 +167,14 @@ G_M24620_IG07: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- cbnz x0, G_M24620_IG08
+ cbnz x0, G_M24620_IG07
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG09
+ b G_M24620_IG08
;; size=96 bbWeight=0.50 PerfScore 11.00
-G_M24620_IG08: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG07: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x20, x0, #12
@@ -198,7 +191,7 @@ G_M24620_IG08: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
; byrRegs +[x0]
sxtw w1, w21
;; size=40 bbWeight=0.50 PerfScore 5.25
-G_M24620_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M24620_IG08: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
; byrRegs -[x20]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -225,14 +218,14 @@ G_M24620_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- cbnz x0, G_M24620_IG10
+ cbnz x0, G_M24620_IG09
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG11
+ b G_M24620_IG10
;; size=96 bbWeight=0.50 PerfScore 11.00
-G_M24620_IG10: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG09: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x20, x0, #12
@@ -249,7 +242,7 @@ G_M24620_IG10: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
; byrRegs +[x0]
sxtw w1, w21
;; size=40 bbWeight=0.50 PerfScore 5.25
-G_M24620_IG11: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
+G_M24620_IG10: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz
; byrRegs -[x20]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -276,14 +269,14 @@ G_M24620_IG11: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- cbnz x0, G_M24620_IG12
+ cbnz x0, G_M24620_IG11
mov x0, xzr
; gcrRegs -[x0]
; byrRegs +[x0]
mov w1, wzr
- b G_M24620_IG13
+ b G_M24620_IG12
;; size=96 bbWeight=0.50 PerfScore 11.00
-G_M24620_IG12: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
+G_M24620_IG11: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
; byrRegs -[x0]
add x20, x0, #12
@@ -300,7 +293,7 @@ G_M24620_IG12: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000
; byrRegs +[x0]
sxtw w1, w21
;; size=40 bbWeight=0.50 PerfScore 5.25
-G_M24620_IG13: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
+G_M24620_IG12: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref
; byrRegs -[x20]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -484,23 +477,14 @@ G_M24620_IG13: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0
blr x2
; gcrRegs -[x1] +[x0]
;; size=616 bbWeight=0.50 PerfScore 73.00
-G_M24620_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M24620_IG13: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M24620_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0] +[x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #255
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M24620_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1224, prolog size 16, PerfScore 153.00, instruction count 306, allocated bytes for code 1224 (MethodHash=399f9fd3) for method System.DateTimeParse:DTFITrace(System.Globalization.DateTimeFormatInfo) (FullOpts)
+; Total bytes of code 1180, prolog size 16, PerfScore 147.50, instruction count 295, allocated bytes for code 1180 (MethodHash=399f9fd3) for method System.DateTimeParse:DTFITrace(System.Globalization.DateTimeFormatInfo) (FullOpts)
; ============================================================
Unwind Info:
@@ -511,7 +495,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 306 (0x00132) Actual length = 1224 (0x0004c8)
+ Function Length : 295 (0x00127) Actual length = 1180 (0x00049c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.27%) : 2847.dasm - System.RuntimeType:FilterApplyBase(System.Reflection.MemberInfo,int,ubyte,ubyte,ubyte,System.String,ubyte):ubyte (FullOpts)
@@ -8,26 +8,27 @@
; 0 inlinees with PGO data; 7 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 11, 7 ) ref -> x20 class-hnd single-def <System.Reflection.MemberInfo>
+; V00 arg0 [V00,T01] ( 10, 6.50) ref -> x20 class-hnd single-def <System.Reflection.MemberInfo>
; V01 arg1 [V01,T00] ( 13, 7.50) int -> x19 single-def
; V02 arg2 [V02,T05] ( 3, 3 ) ubyte -> x23 single-def
; V03 arg3 [V03,T06] ( 3, 2.50) ubyte -> x24 single-def
; V04 arg4 [V04,T04] ( 4, 3 ) ubyte -> x22 single-def
; V05 arg5 [V05,T02] ( 9, 6 ) ref -> x21 class-hnd single-def <System.String>
; V06 arg6 [V06,T07] ( 3, 2.50) ubyte -> x25 single-def
-; V07 loc0 [V07,T09] ( 4, 2 ) ubyte -> x26
-; V08 loc1 [V08,T08] ( 5, 2.50) ref -> x19 class-hnd single-def <System.Reflection.MethodInfo>
+; V07 loc0 [V07,T08] ( 4, 2 ) ubyte -> x27
+; V08 loc1 [V08,T15] ( 3, 1.50) ref -> x19 class-hnd single-def <System.Reflection.MethodInfo>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T13] ( 3, 2 ) int -> x0
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>>
;* V12 tmp3 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V13 tmp4 [V13,T10] ( 4, 2 ) ubyte -> x0 "Inline return value spill temp"
+; V13 tmp4 [V13,T09] ( 4, 2 ) ubyte -> x0 "Inline return value spill temp"
; V14 tmp5 [V14,T03] ( 5, 5 ) ref -> x26 class-hnd exact single-def "Inlining Arg" <System.String>
; V15 tmp6 [V15,T14] ( 2, 2 ) byref -> x0 single-def "impAppendStmt"
;* V16 tmp7 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V17 cse0 [V17,T11] ( 4, 2 ) long -> x23 "CSE - aggressive"
-; V18 cse1 [V18,T15] ( 3, 1.50) long -> x20 "CSE - moderate"
-; V19 cse2 [V19,T12] ( 4, 2 ) int -> x27 "CSE - aggressive"
+; V17 cse0 [V17,T10] ( 4, 2 ) long -> x26 "CSE - aggressive"
+; V18 cse1 [V18,T16] ( 3, 1.50) long -> x20 "CSE - moderate"
+; V19 cse2 [V19,T11] ( 4, 2 ) long -> x23 "CSE - aggressive"
+; V20 cse3 [V20,T12] ( 4, 2 ) int -> x27 "CSE - aggressive"
;
; Lcl frame size = 8
@@ -151,35 +152,34 @@ G_M7707_IG10: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000
G_M7707_IG11: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x20
; gcrRegs +[x0]
- ldr x1, [x20]
- ldr x23, [x1, #0x48]
- ldr x1, [x23, #0x38]
+ ldr x23, [x20]
+ ldr x26, [x23, #0x48]
+ ldr x1, [x26, #0x38]
blr x1
- mov x26, x0
- ; gcrRegs +[x26]
+ mov x27, x0
+ ; gcrRegs +[x27]
mov x0, x20
- ldr x1, [x20]
- ldr x1, [x1, #0x50]
+ ldr x1, [x23, #0x50]
ldr x1, [x1]
blr x1
- cmp x26, x0
- cset x26, ne
- ; gcrRegs -[x26]
+ cmp x27, x0
+ cset x27, ne
+ ; gcrRegs -[x27]
tst w19, #2
cset x0, ne
; gcrRegs -[x0]
- tst w0, w26
+ tst w0, w27
bne G_M7707_IG15
mov x0, x20
; gcrRegs +[x0]
- ldr x1, [x23, #0x28]
+ ldr x1, [x26, #0x28]
blr x1
; gcrRegs -[x0]
cmp w0, #32
beq G_M7707_IG13
mov x0, x20
; gcrRegs +[x0]
- ldr x1, [x23, #0x28]
+ ldr x1, [x26, #0x28]
blr x1
; gcrRegs -[x0]
cmp w0, #128
@@ -188,11 +188,11 @@ G_M7707_IG11: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000
beq G_M7707_IG12
tst w19, #64
cset x2, eq
- tst w2, w26
+ tst w2, w27
bne G_M7707_IG15
tbnz w19, #3, G_M7707_IG13
b G_M7707_IG15
- ;; size=140 bbWeight=0.50 PerfScore 21.50
+ ;; size=136 bbWeight=0.50 PerfScore 20.00
G_M7707_IG12: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
tbz w19, #2, G_M7707_IG15
;; size=4 bbWeight=0.50 PerfScore 0.50
@@ -215,7 +215,7 @@ G_M7707_IG13: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000
G_M7707_IG14: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
tst w19, #2
cset x1, eq
- and w1, w1, w26
+ and w1, w1, w27
uxtb w0, w24
tst w1, w0
beq G_M7707_IG17
@@ -228,14 +228,11 @@ G_M7707_IG14: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1 x20] +[x0]
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M7707_IG15
- mov x0, x19
- ldr x1, [x19]
- ldr x20, [x1, #0x58]
+ ldr x20, [x23, #0x58]
ldr x1, [x20, #0x20]
blr x1
; gcrRegs -[x0]
@@ -246,7 +243,7 @@ G_M7707_IG14: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {},
blr x1
; gcrRegs -[x0 x19]
tbnz w0, #10, G_M7707_IG17
- ;; size=108 bbWeight=0.50 PerfScore 14.25
+ ;; size=96 bbWeight=0.50 PerfScore 12.00
G_M7707_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -272,7 +269,7 @@ G_M7707_IG18: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=28 bbWeight=0.50 PerfScore 4.00
-; Total bytes of code 704, prolog size 28, PerfScore 104.50, instruction count 176, allocated bytes for code 704 (MethodHash=2a67e1e4) for method System.RuntimeType:FilterApplyBase(System.Reflection.MemberInfo,int,ubyte,ubyte,ubyte,System.String,ubyte):ubyte (FullOpts)
+; Total bytes of code 688, prolog size 28, PerfScore 100.75, instruction count 172, allocated bytes for code 688 (MethodHash=2a67e1e4) for method System.RuntimeType:FilterApplyBase(System.Reflection.MemberInfo,int,ubyte,ubyte,ubyte,System.String,ubyte):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -283,7 +280,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 176 (0x000b0) Actual length = 704 (0x0002c0)
+ Function Length : 172 (0x000ac) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 5050.dasm - System.DefaultBinder:FindMostSpecificType(System.Type,System.Type,System.Type):int (FullOpts)
@@ -10,16 +10,16 @@
;
; V00 arg0 [V00,T00] ( 22, 12.50) ref -> x19 class-hnd <System.Type>
; V01 arg1 [V01,T01] ( 22, 12.50) ref -> x20 class-hnd <System.Type>
-; V02 arg2 [V02,T02] ( 5, 3.50) ref -> x21 class-hnd single-def <System.Type>
-; V03 loc0 [V03,T04] ( 4, 2 ) ref -> x22 class-hnd single-def <<unknown class>>
-; V04 loc1 [V04,T05] ( 4, 2 ) ubyte -> x21
+; V02 arg2 [V02,T02] ( 4, 3 ) ref -> x21 class-hnd single-def <System.Type>
+; V03 loc0 [V03,T09] ( 3, 1.50) ref -> x22 class-hnd single-def <<unknown class>>
+; V04 loc1 [V04,T04] ( 4, 2 ) ubyte -> x21
; V05 loc2 [V05,T10] ( 3, 1.50) ubyte -> x0
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T08] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V08 tmp2 [V08,T09] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V09 cse0 [V09,T06] ( 4, 2 ) long -> x22 "CSE - aggressive"
+; V07 tmp1 [V07,T07] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V08 tmp2 [V08,T08] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V09 cse0 [V09,T05] ( 4, 2 ) long -> x22 "CSE - aggressive"
; V10 cse1 [V10,T03] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V11 cse2 [V11,T07] ( 4, 2 ) long -> x21 "CSE - moderate"
+; V11 cse2 [V11,T06] ( 4, 2 ) long -> x21 "CSE - moderate"
;
; Lcl frame size = 0
@@ -54,11 +54,11 @@ G_M53685_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
mov x22, x0
; gcrRegs +[x22]
- cbz x22, G_M53685_IG04
+ cbz x21, G_M53685_IG04
mov x0, x22
mov x1, x19
; gcrRegs +[x1]
@@ -82,29 +82,26 @@ G_M53685_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
cbz w0, G_M53685_IG05
b G_M53685_IG16
;; size=96 bbWeight=0.50 PerfScore 10.25
-G_M53685_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x21]
+G_M53685_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x0, x19
; gcrRegs +[x0]
- mov x1, x21
- ; gcrRegs +[x1]
+ mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
cbnz w0, G_M53685_IG18
mov x0, x20
; gcrRegs +[x0]
- mov x1, x21
- ; gcrRegs +[x1]
+ mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0-x1 x21]
+ ; gcrRegs -[x0]
cbnz w0, G_M53685_IG16
;; size=64 bbWeight=0.50 PerfScore 7.50
G_M53685_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
libraries_tests.run.osx.arm64.Release.mch
-20 (-38.46%) : 13.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
@@ -14,23 +14,18 @@ G_M52025_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M52025_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #7
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M52025_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=8f0334c6) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=8f0334c6) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 5458.dasm - System.Security.Cryptography.Utf8DataEncoding:get_ThrowingUtf8Encoding():System.Text.Encoding (Tier0)
@@ -14,23 +14,18 @@ G_M53380_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M53380_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #75
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M53380_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f0782f7b) for method System.Security.Cryptography.Utf8DataEncoding:get_ThrowingUtf8Encoding():System.Text.Encoding (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f0782f7b) for method System.Security.Cryptography.Utf8DataEncoding:get_ThrowingUtf8Encoding():System.Text.Encoding (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 5994.dasm - System.Security.Cryptography.SHA3384:getIsSupported():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M50683_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M50683_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M50683_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f62c3a04) for method System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f62c3a04) for method System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-2.20%) : 69.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
@@ -74,19 +74,14 @@ G_M3749_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
str x0, [fp, #0x38] // [V16 tmp2]
ldr x0, [fp, #0x40] // [V15 tmp1]
cbnz x0, G_M3749_IG05
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #6
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
str x0, [fp, #0x38] // [V16 tmp2]
- ;; size=100 bbWeight=1 PerfScore 27.50
+ ;; size=80 bbWeight=1 PerfScore 24.50
G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
ldr x0, [fp, #0x38] // [V16 tmp2]
@@ -252,7 +247,7 @@ G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
str x0, [fp, #0x18] // [V20 tmp6]
ldr x0, [fp, #0x58] // [V11 loc9]
@@ -303,7 +298,7 @@ G_M3749_IG06: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-; Total bytes of code 908, prolog size 44, PerfScore 269.00, instruction count 227, allocated bytes for code 908 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
+; Total bytes of code 888, prolog size 44, PerfScore 266.00, instruction count 222, allocated bytes for code 888 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
; ============================================================
Unwind Info:
@@ -314,7 +309,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 227 (0x000e3) Actual length = 908 (0x00038c)
+ Function Length : 222 (0x000de) Actual length = 888 (0x000378)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.83%) : 8747.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
@@ -5,38 +5,43 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) int -> [fp+0x6C] do-not-enreg[]
-; V01 loc0 [V01 ] ( 1, 1 ) struct ( 8) [fp+0x60] do-not-enreg[S] must-init <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V02 loc1 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x58] do-not-enreg[S] must-init ld-addr-op <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V00 arg0 [V00 ] ( 1, 1 ) int -> [fp+0x8C] do-not-enreg[]
+; V01 loc0 [V01 ] ( 1, 1 ) struct ( 8) [fp+0x80] do-not-enreg[S] must-init <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V02 loc1 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x78] do-not-enreg[S] must-init ld-addr-op <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04 ] ( 1, 1 ) struct ( 8) [fp+0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init "Reusable Box Helper"
-; V06 tmp3 [V06 ] ( 1, 1 ) struct ( 8) [fp+0x40] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V07 tmp4 [V07 ] ( 1, 1 ) struct ( 8) [fp+0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V08 tmp5 [V08 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <<unknown class>>
-; V09 tmp6 [V09 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V10 tmp7 [V10 ] ( 1, 1 ) struct ( 8) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V11 tmp8 [V11 ] ( 1, 1 ) struct ( 8) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
-; V12 tmp9 [V12 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
+; V04 tmp1 [V04 ] ( 1, 1 ) struct ( 8) [fp+0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V05 tmp2 [V05 ] ( 1, 1 ) float -> [fp+0x6C] do-not-enreg[X] addr-exposed "location for address-of(RValue)"
+; V06 tmp3 [V06 ] ( 1, 1 ) struct ( 8) [fp+0x60] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V07 tmp4 [V07 ] ( 1, 1 ) struct ( 8) [fp+0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V08 tmp5 [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[X] addr-exposed "location for address-of(RValue)"
+; V09 tmp6 [V09 ] ( 1, 1 ) struct ( 8) [fp+0x48] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V10 tmp7 [V10 ] ( 1, 1 ) double -> [fp+0x40] do-not-enreg[X] addr-exposed "location for address-of(RValue)"
+; V11 tmp8 [V11 ] ( 1, 1 ) struct ( 8) [fp+0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V12 tmp9 [V12 ] ( 1, 1 ) struct ( 8) [fp+0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal>
+; V13 tmp10 [V13 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init "argument with side effect"
+; V14 tmp11 [V14 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V15 tmp12 [V15 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V16 tmp13 [V16 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
;
-; Lcl frame size = 96
+; Lcl frame size = 128
G_M5822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x70]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp xzr, xzr, [x9, #0x40]
- str xzr, [x9, #0x50]
- str w0, [fp, #0x6C] // [V00 arg0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x60]
+ str xzr, [x9, #0x70]
+ str w0, [fp, #0x8C] // [V00 arg0]
+ ;; size=40 bbWeight=1 PerfScore 8.50
G_M5822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w0, [fp, #0x6C] // [V00 arg0]
+ ldr w0, [fp, #0x8C] // [V00 arg0]
cmp w0, #7
bhi G_M5822_IG03
- ldr w0, [fp, #0x6C] // [V00 arg0]
+ ldr w0, [fp, #0x8C] // [V00 arg0]
mov w0, w0
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -53,31 +58,31 @@ G_M5822_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x0, #1 LSL #32
ldr x1, [x0]
; gcrRegs +[x1]
- add x0, fp, #24 // [V11 tmp8]
+ add x0, fp, #48 // [V12 tmp9]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
; gcrRegs -[x1]
- ldr x0, [fp, #0x18] // [V11 tmp8]
+ ldr x0, [fp, #0x30] // [V12 tmp9]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
b G_M5822_IG11
;; size=52 bbWeight=1 PerfScore 14.50
G_M5822_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
+ str xzr, [fp, #0x40] // [V10 tmp7]
+ add x1, fp, #64 // [V10 tmp7]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_UNBOX
; gcrRegs +[x0]
- str x0, [fp, #0x30] // [V08 tmp5]
- ldr x0, [fp, #0x30] // [V08 tmp5]
- str xzr, [x0, #0x08]
- ldr x1, [fp, #0x30] // [V08 tmp5]
+ str x0, [fp, #0x28] // [V13 tmp10]
+ ldr x1, [fp, #0x28] // [V13 tmp10]
; gcrRegs +[x1]
- add x0, fp, #32 // [V10 tmp7]
+ add x0, fp, #56 // [V11 tmp8]
; gcrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -85,24 +90,24 @@ G_M5822_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1]
- ldr x0, [fp, #0x20] // [V10 tmp7]
+ ldr x0, [fp, #0x38] // [V11 tmp8]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
b G_M5822_IG11
- ;; size=68 bbWeight=1 PerfScore 18.50
+ ;; size=68 bbWeight=1 PerfScore 17.00
G_M5822_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
+ str xzr, [fp, #0x50] // [V08 tmp5]
+ add x1, fp, #80 // [V08 tmp5]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_UNBOX
; gcrRegs +[x0]
- str x0, [fp, #0x30] // [V08 tmp5]
- ldr x0, [fp, #0x30] // [V08 tmp5]
- str xzr, [x0, #0x08]
- ldr x1, [fp, #0x30] // [V08 tmp5]
+ str x0, [fp, #0x20] // [V14 tmp11]
+ ldr x1, [fp, #0x20] // [V14 tmp11]
; gcrRegs +[x1]
- add x0, fp, #40 // [V09 tmp6]
+ add x0, fp, #72 // [V09 tmp6]
; gcrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -110,11 +115,11 @@ G_M5822_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1]
- ldr x0, [fp, #0x28] // [V09 tmp6]
+ ldr x0, [fp, #0x48] // [V09 tmp6]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
b G_M5822_IG11
- ;; size=68 bbWeight=1 PerfScore 18.50
+ ;; size=68 bbWeight=1 PerfScore 17.00
G_M5822_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
@@ -123,12 +128,12 @@ G_M5822_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_BOX
+ bl CORINFO_HELP_UNBOX
; gcrRegs +[x0]
- str x0, [fp, #0x10] // [V12 tmp9]
- ldr x1, [fp, #0x10] // [V12 tmp9]
+ str x0, [fp, #0x18] // [V15 tmp12]
+ ldr x1, [fp, #0x18] // [V15 tmp12]
; gcrRegs +[x1]
- add x0, fp, #56 // [V07 tmp4]
+ add x0, fp, #88 // [V07 tmp4]
; gcrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -136,24 +141,24 @@ G_M5822_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1]
- ldr x0, [fp, #0x38] // [V07 tmp4]
+ ldr x0, [fp, #0x58] // [V07 tmp4]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
b G_M5822_IG11
;; size=72 bbWeight=1 PerfScore 17.00
G_M5822_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
+ str wzr, [fp, #0x6C] // [V05 tmp2]
+ add x1, fp, #108 // [V05 tmp2]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_UNBOX
; gcrRegs +[x0]
- str x0, [fp, #0x48] // [V05 tmp2]
- ldr x0, [fp, #0x48] // [V05 tmp2]
- str wzr, [x0, #0x08]
- ldr x1, [fp, #0x48] // [V05 tmp2]
+ str x0, [fp, #0x10] // [V16 tmp13]
+ ldr x1, [fp, #0x10] // [V16 tmp13]
; gcrRegs +[x1]
- add x0, fp, #64 // [V06 tmp3]
+ add x0, fp, #96 // [V06 tmp3]
; gcrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -161,11 +166,11 @@ G_M5822_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1]
- ldr x0, [fp, #0x40] // [V06 tmp3]
+ ldr x0, [fp, #0x60] // [V06 tmp3]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
b G_M5822_IG11
- ;; size=68 bbWeight=1 PerfScore 18.50
+ ;; size=68 bbWeight=1 PerfScore 17.00
G_M5822_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
@@ -173,32 +178,32 @@ G_M5822_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x0, #1 LSL #32
ldr x1, [x0]
; gcrRegs +[x1]
- add x0, fp, #80 // [V04 tmp1]
+ add x0, fp, #112 // [V04 tmp1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
; gcrRegs -[x1]
- ldr x0, [fp, #0x50] // [V04 tmp1]
+ ldr x0, [fp, #0x70] // [V04 tmp1]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
b G_M5822_IG11
;; size=52 bbWeight=1 PerfScore 14.50
G_M5822_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- str xzr, [fp, #0x58] // [V02 loc1]
- ldr x0, [fp, #0x58] // [V02 loc1]
+ str xzr, [fp, #0x78] // [V02 loc1]
+ ldr x0, [fp, #0x78] // [V02 loc1]
; gcrRegs +[x0]
- str x0, [fp, #0x60] // [V01 loc0]
+ str x0, [fp, #0x80] // [V01 loc0]
;; size=12 bbWeight=1 PerfScore 4.00
G_M5822_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
...
+16 (+10.00%) : 868.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable1[ubyte]](System.String,System.Nullable1[ubyte]):this (Tier0)
@@ -7,7 +7,7 @@
;
; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] this class-hnd <Xunit.TestFrameworkOptions>
; V01 arg1 [V01 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] class-hnd <System.String>
-; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XSF] addr-exposed <System.Nullable`1[ubyte]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XS] addr-exposed <System.Nullable`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
@@ -24,10 +24,14 @@ G_M26730_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
str x2, [fp, #0x28] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [fp, #0x28] // [V02 arg2]
- cbnz w0, G_M26730_IG04
- ldr x0, [fp, #0x38] // [V00 this]
+ add x1, fp, #40 // [V02 arg2]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ bl CORINFO_HELP_UNBOX_NULLABLE
; gcrRegs +[x0]
+ cbnz x0, G_M26730_IG04
+ ldr x0, [fp, #0x38] // [V00 this]
ldr x0, [x0, #0x08]
ldr x1, [fp, #0x30] // [V01 arg1]
; gcrRegs +[x1]
@@ -38,7 +42,7 @@ G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x2
; gcrRegs -[x0-x1]
- ;; size=44 bbWeight=1 PerfScore 18.50
+ ;; size=60 bbWeight=1 PerfScore 19.50
G_M26730_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
@@ -53,7 +57,7 @@ G_M26730_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_BOX_NULLABLE
+ bl CORINFO_HELP_UNBOX_NULLABLE
; gcrRegs +[x0]
str x0, [fp, #0x20] // [V04 tmp1]
ldr x2, [fp, #0x20] // [V04 tmp1]
@@ -74,7 +78,7 @@ G_M26730_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 16, PerfScore 53.50, instruction count 40, allocated bytes for code 160 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
+; Total bytes of code 176, prolog size 16, PerfScore 54.50, instruction count 44, allocated bytes for code 176 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
; ============================================================
Unwind Info:
@@ -85,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
-44 (-68.75%) : 735.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
@@ -11,16 +11,15 @@
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Runtime.InteropServices.OSPlatform>
;* V02 tmp2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform>
-;* V03 tmp3 [V03,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V03 tmp3 [V03,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V06 tmp6 [V06,T02] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V06 tmp6 [V06,T01] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V07 tmp7 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V08 tmp8 [V08,T03] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V08 tmp8 [V08,T02] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V09 tmp9 [V09 ] ( 0, 0 ) ref -> zero-ref "field V01.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V10 tmp10 [V10,T04] ( 0, 0 ) ref -> zero-ref single-def "field V02.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-; V11 cse0 [V11,T00] ( 2, 2 ) long -> x0 "CSE - aggressive"
-; V12 rat0 [V12,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+;* V10 tmp10 [V10,T03] ( 0, 0 ) ref -> zero-ref single-def "field V02.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V11 cse0 [V11,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -28,30 +27,15 @@ G_M59074_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M59074_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M59074_IG05
- ;; size=32 bbWeight=1 PerfScore 7.00
-G_M59074_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59074_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, wzr
;; size=4 bbWeight=1 PerfScore 0.50
-G_M59074_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59074_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M59074_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #6
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M59074_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 8, PerfScore 11.00, instruction count 16, allocated bytes for code 64 (MethodHash=a765193d) for method ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=a765193d) for method ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -62,7 +46,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 761.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -16,35 +16,19 @@ G_M31334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M31334_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M31334_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M31334_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31334_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M31334_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M31334_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M31334_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #55
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M31334_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=58be8599) for method Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=58be8599) for method Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 769.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -16,35 +16,19 @@ G_M24108_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M24108_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M24108_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M24108_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24108_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M24108_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M24108_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M24108_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #58
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M24108_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=c38ba1d3) for method Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=c38ba1d3) for method Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.27%) : 993.dasm - System.Linq.Enumerable:ToDictionarySystem.Canon,System.Canon,System.__Canon:System.Collections.Generic.Dictionary`2System.Canon,System.Canon
@@ -16,7 +16,7 @@
; V05 loc0 [V05 ] ( 3, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc1 [V06,T13] ( 3, 5 ) ref -> x24 class-hnd exact single-def <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
; V07 loc2 [V07,T52] ( 3, 1.50) ref -> x24 class-hnd single-def <System.__Canon[]>
-; V08 loc3 [V08,T53] ( 3, 1.50) ref -> x24 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
+; V08 loc3 [V08,T56] ( 2, 1 ) ref -> x22 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
;* V09 loc4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.ReadOnlySpan`1[System.__Canon]>
; V10 loc5 [V10,T07] ( 7, 9 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>>
; V11 loc6 [V11,T06] ( 3, 12 ) ref -> x21 class-hnd <System.__Canon>
@@ -31,7 +31,7 @@
; V20 tmp8 [V20,T01] ( 2, 16 ) ref -> x25 class-hnd "non-inline candidate call" <System.__Canon>
;* V21 tmp9 [V21 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V22 tmp10 [V22 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V23 tmp11 [V23,T40] ( 3, 2 ) long -> x22 "spilling helperCall"
+; V23 tmp11 [V23,T40] ( 3, 2 ) long -> x24 "spilling helperCall"
; V24 tmp12 [V24,T41] ( 3, 2 ) long -> x25 "spilling helperCall"
;* V25 tmp13 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.Span`1[System.__Canon]>
;* V26 tmp14 [V26 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
@@ -72,7 +72,7 @@
; V61 rat13 [V61,T24] ( 3, 2.80) long -> x0 "spilling expr"
; V62 rat14 [V62,T34] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
; V63 rat15 [V63,T25] ( 3, 2.80) long -> x0 "spilling expr"
-; V64 rat16 [V64,T35] ( 3, 2.24) long -> x22 "fgMakeTemp is creating a new local variable"
+; V64 rat16 [V64,T35] ( 3, 2.24) long -> x24 "fgMakeTemp is creating a new local variable"
; V65 rat17 [V65,T26] ( 3, 2.80) long -> x0 "spilling expr"
; V66 rat18 [V66,T36] ( 3, 2.24) long -> x25 "fgMakeTemp is creating a new local variable"
; V67 rat19 [V67,T47] ( 3, 2 ) long -> x0 "runtime lookup"
@@ -83,9 +83,9 @@
; V72 rat24 [V72,T38] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
; V73 rat25 [V73,T29] ( 3, 2.80) long -> x0 "spilling expr"
; V74 rat26 [V74,T39] ( 3, 2.24) long -> x11 "fgMakeTemp is creating a new local variable"
-; V75 rat27 [V75,T56] ( 3, 1 ) long -> x23 "runtime lookup"
-; V76 rat28 [V76,T54] ( 3, 1.40) long -> x0 "spilling expr"
-; V77 rat29 [V77,T55] ( 3, 1.12) long -> x23 "fgMakeTemp is creating a new local variable"
+; V75 rat27 [V75,T55] ( 3, 1 ) long -> x23 "runtime lookup"
+; V76 rat28 [V76,T53] ( 3, 1.40) long -> x0 "spilling expr"
+; V77 rat29 [V77,T54] ( 3, 1.12) long -> x23 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -124,7 +124,7 @@ G_M36297_IG04: ; bbWeight=0.20, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.20 PerfScore 0.60
G_M36297_IG05: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
@@ -161,11 +161,11 @@ G_M36297_IG09: ; bbWeight=0.18, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG10: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
mov x21, x0
@@ -210,13 +210,13 @@ G_M36297_IG15: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG16: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x22
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
mov x24, x0
@@ -241,7 +241,7 @@ G_M36297_IG19: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x22, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -263,7 +263,7 @@ G_M36297_IG23: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x25, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -326,73 +326,71 @@ G_M36297_IG29: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG30: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x22
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[x1] +[x0]
+ bl CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[x1 x22] +[x0]
; gcr arg pop 0
- mov x24, x0
- ; gcrRegs +[x24]
- cbz x24, G_M36297_IG44
+ mov x22, x0
+ ; gcrRegs +[x22]
ldr x0, [x21, #0x38]
; gcrRegs -[x0]
ldr x1, [x0, #0x18]
cmp x1, #80
ble G_M36297_IG33
- ;; size=32 bbWeight=0.50 PerfScore 5.25
-G_M36297_IG31: ; bbWeight=0.40, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
- ldr x22, [x0, #0x50]
- cbz x22, G_M36297_IG33
+ ;; size=28 bbWeight=0.50 PerfScore 4.75
+G_M36297_IG31: ; bbWeight=0.40, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ ldr x24, [x0, #0x50]
+ cbz x24, G_M36297_IG33
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M36297_IG32: ; bbWeight=0.32, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG32: ; bbWeight=0.32, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
b G_M36297_IG34
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M36297_IG33: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG33: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
- mov x22, x0
+ mov x24, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG34: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG34: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21, #0x38]
ldr x1, [x0, #0x18]
cmp x1, #88
ble G_M36297_IG37
;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M36297_IG35: ; bbWeight=0.40, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG35: ; bbWeight=0.40, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x25, [x0, #0x58]
cbz x25, G_M36297_IG37
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M36297_IG36: ; bbWeight=0.32, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG36: ; bbWeight=0.32, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
b G_M36297_IG38
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M36297_IG37: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG37: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x25, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG38: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
- mov x0, x22
- mov x1, x24
+G_M36297_IG38: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ mov x0, x24
+ mov x1, x22
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.CollectionsMarshal:AsSpan[System.__Canon](System.Collections.Generic.List`1[System.__Canon]):System.Span`1[System.__Canon]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x24]
+ ; gcrRegs -[x1 x22]
; byrRegs +[x0]
; gcr arg pop 0
mov w2, w1
@@ -428,7 +426,7 @@ G_M36297_IG41: ; bbWeight=0.18, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG42: ; bbWeight=0.50, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=400000 {x22}, byref
@@ -477,11 +475,11 @@ G_M36297_IG47: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG48: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
mov x24, x0
@@ -513,7 +511,7 @@ G_M36297_IG51: ; bbWeight=0.18, gcrefRegs=1580000 {x19 x20 x22 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x11, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -556,7 +554,7 @@ G_M36297_IG57: ; bbWeight=0.09, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x23, x0
;; size=24 bbWeight=0.09 PerfScore 0.32
@@ -709,7 +707,7 @@ G_M36297_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1460, prolog size 52, PerfScore 319.10, instruction count 365, allocated bytes for code 1460 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 1456, prolog size 52, PerfScore 318.60, instruction count 364, allocated bytes for code 1456 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================
Unwind Info:
@@ -720,7 +718,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 344 (0x00158) Actual length = 1376 (0x000560)
+ Function Length : 343 (0x00157) Actual length = 1372 (0x00055c)
---- Epilog scopes ----
...
+0 (0.00%) : 606.dasm - Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -39,14 +39,13 @@ G_M51894_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M51894_IG05
+ cbnz x19, G_M51894_IG05
;; size=52 bbWeight=1 PerfScore 13.00
-G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -61,7 +60,7 @@ G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M51894_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1 x19] +[x0]
+ ; gcrRegs +[x0]
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
+0 (0.00%) : 516.dasm - Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -39,14 +39,13 @@ G_M47281_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M47281_IG05
+ cbnz x19, G_M47281_IG05
;; size=52 bbWeight=1 PerfScore 13.00
-G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -61,7 +60,7 @@ G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M47281_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1 x19] +[x0]
+ ; gcrRegs +[x0]
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
realworld.run.osx.arm64.checked.mch
-44 (-61.11%) : 2254.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
@@ -15,34 +15,18 @@ G_M41081_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M41081_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M41081_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M41081_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M41081_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #7 LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=12 bbWeight=1 PerfScore 4.00
-G_M41081_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M41081_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M41081_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M41081_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 72, prolog size 8, PerfScore 13.00, instruction count 18, allocated bytes for code 72 (MethodHash=80065f86) for method System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
+; Total bytes of code 28, prolog size 8, PerfScore 7.50, instruction count 7, allocated bytes for code 28 (MethodHash=80065f86) for method System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2141.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M47685_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M47685_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M47685_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M47685_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M47685_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M47685_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M47685_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M47685_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M47685_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=8aae45ba) for method FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=8aae45ba) for method FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2149.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M17141_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M17141_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M17141_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M17141_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17141_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M17141_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M17141_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M17141_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M17141_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=290cbd0a) for method FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=290cbd0a) for method FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.33%) : 4563.dasm - Microsoft.FSharp.Core.FSharpFunc2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[System.Canon,System.Canon],System.__Canon,int):int (FullOpts)
@@ -8,15 +8,15 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 5, 4.20) long -> x0 single-def
-; V01 arg0 [V01,T01] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]>
; V02 arg1 [V02,T03] ( 4, 3 ) ref -> x20 class-hnd single-def <System.__Canon>
; V03 arg2 [V03,T04] ( 4, 3 ) int -> x21 single-def
-; V04 loc0 [V04,T07] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V04 loc0 [V04,T08] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp2 [V08,T06] ( 2, 4 ) long -> x0 "argument with side effect"
-; V09 tmp3 [V09,T08] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V09 tmp3 [V09,T07] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V10 rat0 [V10,T05] ( 3, 4 ) long -> x0 "runtime lookup"
; V11 rat1 [V11,T02] ( 3, 5.60) long -> x2 "fgMakeTemp is creating a new local variable"
;
@@ -47,16 +47,16 @@ G_M27437_IG04: ; bbWeight=0.20, gcrefRegs=180000 {x19 x20}, byrefRegs=000
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=16 bbWeight=0.20 PerfScore 0.50
G_M27437_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M27437_IG08
+ cbz x19, G_M27437_IG08
;; size=12 bbWeight=1 PerfScore 2.50
G_M27437_IG06: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -74,23 +74,23 @@ G_M27437_IG07: ; bbWeight=0.50, epilog, nogc, extend
br x3
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M27437_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1] +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M27437_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1]
+ mov x0, xzr
mov x1, x20
; gcrRegs +[x1]
- ldr x2, [x19]
+ mov x2, xzr
+ ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
- ; gcrRegs -[x1 x19-x20]
+ ; gcrRegs -[x1 x20] +[x0]
; gcr arg pop 0
mov w1, w21
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
- ;; size=40 bbWeight=0.50 PerfScore 10.25
+ ;; size=44 bbWeight=0.50 PerfScore 10.50
G_M27437_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -99,7 +99,7 @@ G_M27437_IG09: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 172, prolog size 32, PerfScore 37.45, instruction count 43, allocated bytes for code 172 (MethodHash=abbe94d2) for method Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
+; Total bytes of code 176, prolog size 32, PerfScore 37.70, instruction count 44, allocated bytes for code 176 (MethodHash=abbe94d2) for method Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -110,7 +110,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 43 (0x0002b) Actual length = 172 (0x0000ac)
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.78%) : 3044.dasm - Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
@@ -7,14 +7,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <FSharp.Compiler.AbstractIL.BinaryConstants+TableName>
; V02 arg2 [V02,T01] ( 4, 3 ) int -> x20 single-def
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T02] ( 3, 2 ) int -> x21 single-def "field V01.idx (fldOffset=0x0)" P-INDEP
-; V07 tmp2 [V07,T04] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V07 tmp2 [V07,T03] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -34,10 +34,10 @@ G_M49388_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M49388_IG05
+ cbz x19, G_M49388_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M49388_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -54,22 +54,22 @@ G_M49388_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x3
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0] +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0]
+ mov x0, xzr
mov w1, w21
- ldr x2, [x19]
+ mov x2, xzr
+ ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
- ; gcrRegs -[x19]
+ ; gcrRegs +[x0]
; gcr arg pop 0
mov w1, w20
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
- ;; size=40 bbWeight=0.50 PerfScore 10.25
+ ;; size=44 bbWeight=0.50 PerfScore 10.50
G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -78,7 +78,7 @@ G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 144, prolog size 28, PerfScore 29.25, instruction count 36, allocated bytes for code 144 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
+; Total bytes of code 148, prolog size 28, PerfScore 29.50, instruction count 37, allocated bytes for code 148 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -89,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+6.90%) : 2039.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> x19 this class-hnd single-def <System.Xml.XmlNode>
-; V01 loc0 [V01,T01] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V00 this [V00,T00] ( 6, 5 ) ref -> x19 this class-hnd single-def <System.Xml.XmlNode>
+; V01 loc0 [V01,T02] ( 2, 1.50) ref -> x1 class-hnd single-def <<unknown class>>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V04 tmp1 [V04,T01] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -28,15 +28,18 @@ G_M19732_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M19732_IG05
- ;; size=24 bbWeight=1 PerfScore 4.00
-G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
- mov x1, x19
+ mov x1, x0
; gcrRegs +[x1]
- ldr x2, [x0]
+ cbz x19, G_M19732_IG05
+ ;; size=28 bbWeight=1 PerfScore 4.50
+G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ldr x2, [x19]
ldr x2, [x2, #0x98]
ldr x2, [x2, #0x10]
;; size=16 bbWeight=0.50 PerfScore 4.75
@@ -46,21 +49,21 @@ G_M19732_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1]
- mov x0, x19
- ; gcrRegs +[x0]
- ldr x1, [x19]
+G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1 x19]
+ mov x0, xzr
+ mov x1, xzr
+ ldr x1, [x1]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x30]
blr x1
+ ; gcrRegs +[x0]
; gcr arg pop 0
- mov x1, x19
- ; gcrRegs +[x1]
+ mov x1, xzr
ldr x2, [x0]
ldr x2, [x2, #0x98]
ldr x2, [x2, #0x10]
- ;; size=36 bbWeight=0.50 PerfScore 10.00
+ ;; size=40 bbWeight=0.50 PerfScore 10.25
G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -68,7 +71,7 @@ G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 116, prolog size 16, PerfScore 25.75, instruction count 29, allocated bytes for code 116 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
+; Total bytes of code 124, prolog size 16, PerfScore 26.50, instruction count 31, allocated bytes for code 124 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
; ============================================================
Unwind Info:
@@ -79,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ 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)
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.osx.arm64.checked.mch |
44 |
42 |
0 |
2 |
-3,036 |
+0 |
| benchmarks.run_pgo.osx.arm64.checked.mch |
204 |
203 |
1 |
0 |
-7,844 |
+8 |
| benchmarks.run_tiered.osx.arm64.checked.mch |
164 |
162 |
1 |
1 |
-6,704 |
+8 |
| coreclr_tests.run.osx.arm64.checked.mch |
16 |
16 |
0 |
0 |
-776 |
+0 |
| libraries.crossgen2.osx.arm64.checked.mch |
7 |
6 |
0 |
1 |
-40 |
+0 |
| libraries.pmi.osx.arm64.checked.mch |
55 |
54 |
0 |
1 |
-3,484 |
+0 |
| libraries_tests.run.osx.arm64.Release.mch |
107 |
105 |
2 |
0 |
-2,976 |
+20 |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
77 |
75 |
0 |
2 |
-4,316 |
+0 |
| realworld.run.osx.arm64.checked.mch |
86 |
80 |
5 |
1 |
-11,816 |
+24 |
|
760 |
743 |
9 |
8 |
-40,992 |
+60 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.osx.arm64.checked.mch |
1,067 |
0 |
1,067 |
0 (0.00%) |
1,378 (48.50%) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
10,291 |
9,549 |
742 |
2 (0.01%) |
6,890 (39.20%) |
| benchmarks.run_tiered.osx.arm64.checked.mch |
7,989 |
6,721 |
1,268 |
1 (0.01%) |
4,854 (36.66%) |
| coreclr_tests.run.osx.arm64.checked.mch |
1,045 |
858 |
187 |
0 (0.00%) |
1,316 (47.73%) |
| libraries.crossgen2.osx.arm64.checked.mch |
108,860 |
13 |
108,847 |
0 (0.00%) |
98,385 (47.38%) |
| libraries.pmi.osx.arm64.checked.mch |
7,353 |
0 |
7,353 |
0 (0.00%) |
2,963 (27.66%) |
| libraries_tests.run.osx.arm64.Release.mch |
4,622 |
4,270 |
352 |
0 (0.00%) |
4,442 (46.96%) |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
874 |
0 |
874 |
0 (0.00%) |
1,403 (52.49%) |
| realworld.run.osx.arm64.checked.mch |
1,649 |
0 |
1,649 |
1 (0.02%) |
3,030 (59.70%) |
|
143,750 |
21,411 |
122,339 |
4 (0.00%) |
124,661 (45.84%) |
jit-analyze output
benchmarks.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 189868 (overridden on cmd)
Total bytes of diff: 186832 (overridden on cmd)
Total bytes of delta: -3036 (-1.60 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-544 : 687.dasm (-77.27 % of base)
-272 : 9.dasm (-72.34 % of base)
-116 : 401.dasm (-35.37 % of base)
-112 : 719.dasm (-25.45 % of base)
-112 : 2282.dasm (-27.45 % of base)
-100 : 2384.dasm (-17.48 % of base)
-92 : 2768.dasm (-54.76 % of base)
-88 : 1717.dasm (-26.51 % of base)
-88 : 2694.dasm (-44.90 % of base)
-80 : 3050.dasm (-37.04 % of base)
-72 : 1070.dasm (-52.94 % of base)
-72 : 233.dasm (-10.53 % of base)
-68 : 2052.dasm (-36.96 % of base)
-56 : 2626.dasm (-60.87 % of base)
-52 : 2336.dasm (-11.11 % of base)
-48 : 1267.dasm (-17.65 % of base)
-48 : 1186.dasm (-40.00 % of base)
-48 : 2437.dasm (-3.13 % of base)
-44 : 1125.dasm (-12.94 % of base)
-44 : 1241.dasm (-2.61 % of base)
41 total files with Code Size differences (41 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-544 (-77.27 % of base) : 687.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-116 (-35.37 % of base) : 401.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-112 (-27.45 % of base) : 2282.dasm - System.HashCode:Add(int):this (FullOpts)
-112 (-25.45 % of base) : 719.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-100 (-17.48 % of base) : 2384.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[int]():System.Text.Json.Serialization.JsonConverter`1[int]:this (FullOpts)
-92 (-54.76 % of base) : 2768.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_ReflectionDelegateFactory():Newtonsoft.Json.Utilities.ReflectionDelegateFactory (FullOpts)
-88 (-26.51 % of base) : 1717.dasm - ProtoBuf.Meta.RuntimeTypeModel:EmitProvider(System.Reflection.MemberInfo,System.Reflection.Emit.ILGenerator) (FullOpts)
-88 (-44.90 % of base) : 2694.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-80 (-37.04 % of base) : 3050.dasm - System.Globalization.DateTimeFormatInfo:GetInstance(System.IFormatProvider):System.Globalization.DateTimeFormatInfo (FullOpts)
-72 (-52.94 % of base) : 1070.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-72 (-10.53 % of base) : 233.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-68 (-36.96 % of base) : 2052.dasm - System.Globalization.GregorianCalendar:TryToDateTime(int,int,int,int,int,int,int,int,byref):ubyte:this (FullOpts)
-56 (-60.87 % of base) : 2626.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
-52 (-11.11 % of base) : 2336.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:NumberHandingIsApplicable():ubyte:this (FullOpts)
-48 (-3.13 % of base) : 2437.dasm - System.DateTimeFormat:TryFormatO[ubyte](System.DateTime,System.TimeSpan,System.Span`1[ubyte],byref):ubyte (FullOpts)
-48 (-17.65 % of base) : 1267.dasm - System.Threading.PortableThreadPool:ShouldAdjustMaxWorkersActive(int):ubyte:this (FullOpts)
-48 (-40.00 % of base) : 1186.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-44 (-13.58 % of base) : 412.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (FullOpts)
-44 (-20.75 % of base) : 3016.dasm - Newtonsoft.Json.Serialization.JsonPrimitiveContract:.ctor(System.Type):this (FullOpts)
Top method improvements (percentages):
-544 (-77.27 % of base) : 687.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-56 (-60.87 % of base) : 2626.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
-44 (-57.89 % of base) : 1321.dasm - ProtoBuf.Meta.TypeModel+NullModel:get_Singleton():ProtoBuf.Meta.TypeModel (FullOpts)
-92 (-54.76 % of base) : 2768.dasm - Newtonsoft.Json.Serialization.JsonTypeReflector:get_ReflectionDelegateFactory():Newtonsoft.Json.Utilities.ReflectionDelegateFactory (FullOpts)
-72 (-52.94 % of base) : 1070.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-88 (-44.90 % of base) : 2694.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-44 (-44.00 % of base) : 986.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-44 (-40.74 % of base) : 2181.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualAllBenchmark():ubyte:this (FullOpts)
-48 (-40.00 % of base) : 1186.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-80 (-37.04 % of base) : 3050.dasm - System.Globalization.DateTimeFormatInfo:GetInstance(System.IFormatProvider):System.Globalization.DateTimeFormatInfo (FullOpts)
-68 (-36.96 % of base) : 2052.dasm - System.Globalization.GregorianCalendar:TryToDateTime(int,int,int,int,int,int,int,int,byref):ubyte:this (FullOpts)
-116 (-35.37 % of base) : 401.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-44 (-31.43 % of base) : 1006.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (FullOpts)
-44 (-31.43 % of base) : 1005.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
-44 (-30.56 % of base) : 2676.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:EnsureNotByRefType(System.Type):System.Type (FullOpts)
-112 (-27.45 % of base) : 2282.dasm - System.HashCode:Add(int):this (FullOpts)
-88 (-26.51 % of base) : 1717.dasm - ProtoBuf.Meta.RuntimeTypeModel:EmitProvider(System.Reflection.MemberInfo,System.Reflection.Emit.ILGenerator) (FullOpts)
-44 (-26.19 % of base) : 1204.dasm - System.Threading.PortableThreadPool+GateThread:EnsureRunningSlow(System.Threading.PortableThreadPool) (FullOpts)
-44 (-25.58 % of base) : 24.dasm - System.StartupHookProvider:ManagedStartup(ulong) (FullOpts)
benchmarks.run_pgo.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 1297204 (overridden on cmd)
Total bytes of diff: 1289368 (overridden on cmd)
Total bytes of delta: -7836 (-0.60 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 17329.dasm (6.25 % of base)
Top file improvements (bytes):
-1900 : 13916.dasm (-29.86 % of base)
-300 : 11841.dasm (-11.70 % of base)
-256 : 14685.dasm (-32.00 % of base)
-180 : 4206.dasm (-16.07 % of base)
-120 : 12723.dasm (-8.80 % of base)
-116 : 4152.dasm (-8.10 % of base)
-104 : 11936.dasm (-19.26 % of base)
-88 : 2642.dasm (-40.74 % of base)
-88 : 2643.dasm (-40.74 % of base)
-80 : 13624.dasm (-35.71 % of base)
-80 : 2941.dasm (-31.25 % of base)
-72 : 16585.dasm (-22.78 % of base)
-60 : 18701.dasm (-14.56 % of base)
-60 : 21.dasm (-22.73 % of base)
-56 : 7078.dasm (-7.00 % of base)
-56 : 11412.dasm (-32.56 % of base)
-52 : 14007.dasm (-27.08 % of base)
-52 : 7743.dasm (-15.66 % of base)
-52 : 12870.dasm (-18.84 % of base)
-48 : 3927.dasm (-34.29 % of base)
80 total files with Code Size differences (79 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
8 (6.25 % of base) : 17329.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
Top method improvements (bytes):
-1900 (-29.86 % of base) : 13916.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-300 (-11.70 % of base) : 11841.dasm - ProtoBuf.Meta.ValueMember:TryGetCoreSerializer(ProtoBuf.Meta.RuntimeTypeModel,int,int,System.Type,byref,ubyte,ubyte,ubyte,ubyte):ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode (Tier0)
-256 (-32.00 % of base) : 14685.dasm - System.TimeZoneInfo+AdjustmentRule:AdjustDaylightDeltaToExpectedRange(byref,byref) (Tier0)
-180 (-16.07 % of base) : 4206.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-120 (-8.80 % of base) : 12723.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTimeIso(Newtonsoft.Json.Utilities.StringReference,int,byref):ubyte (Tier0)
-116 (-8.10 % of base) : 4152.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-104 (-19.26 % of base) : 11936.dasm - ProtoBuf.Internal.TypeCompatibilityHelper:GetModuleCompatibilityLevel(System.Reflection.Module):int (Tier0)
-88 (-40.74 % of base) : 2643.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2642.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-80 (-31.25 % of base) : 2941.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-80 (-35.71 % of base) : 13624.dasm - System.Net.SocketAddress:.cctor() (Tier0)
-72 (-22.78 % of base) : 16585.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-60 (-22.73 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-60 (-14.56 % of base) : 18701.dasm - System.Threading.TimerQueueTimer:CallCallback(ubyte):this (Tier0)
-56 (-7.00 % of base) : 7078.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConditionalExpression(System.Linq.Expressions.Expression,int):this (Tier0)
-56 (-32.56 % of base) : 11412.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-52 (-15.66 % of base) : 7743.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-52 (-27.08 % of base) : 14007.dasm - System.Diagnostics.Metrics.MeterListener:GetAllListeners():System.Collections.Generic.List`1[System.Diagnostics.Metrics.MeterListener] (Tier0)
-52 (-18.84 % of base) : 12870.dasm - System.Security.Cryptography.Apple.SafeTemporaryKeychainHandle:TrackKeychain(System.Security.Cryptography.Apple.SafeTemporaryKeychainHandle) (Tier0)
-48 (-34.29 % of base) : 3927.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualAllBenchmark():ubyte:this (Tier0)
Top method regressions (percentages):
8 (6.25 % of base) : 17329.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
Top method improvements (percentages):
-88 (-40.74 % of base) : 2643.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2642.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-38.46 % of base) : 13044.dasm - Internal.Cryptography.Helpers:get_HasSymmetricEncryption():ubyte (Tier0)
-20 (-38.46 % of base) : 2801.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:get_Default():MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext (Tier0)
-20 (-38.46 % of base) : 7173.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-20 (-38.46 % of base) : 1054.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
-20 (-38.46 % of base) : 13989.dasm - System.Diagnostics.Metrics.Instrument:get_SyncObject():System.Object (Tier0)
-20 (-38.46 % of base) : 13986.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 89.dasm - System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
-20 (-38.46 % of base) : 68.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 5933.dasm - System.IO.Pipelines.PipeScheduler:get_ThreadPool():System.IO.Pipelines.PipeScheduler (Tier0)
-20 (-38.46 % of base) : 2072.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-38.46 % of base) : 13957.dasm - System.Net.Http.Headers.AltSvcHeaderParser:get_Parser():System.Net.Http.Headers.AltSvcHeaderParser (Tier0)
-20 (-38.46 % of base) : 13812.dasm - System.Net.Http.HttpMethod:get_Get():System.Net.Http.HttpMethod (Tier0)
-20 (-38.46 % of base) : 13977.dasm - System.Net.Http.Metrics.MetricsHandler+SharedMeter:get_Instance():System.Diagnostics.Metrics.Meter (Tier0)
-20 (-38.46 % of base) : 13635.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv4():ubyte (Tier0)
-20 (-38.46 % of base) : 16737.dasm - System.Reflection.Metadata.MetadataUpdater:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 1703.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 9549.dasm - System.Runtime.Serialization.SerializationInfo:get_AsyncDeserializationInProgress():System.Threading.AsyncLocal`1[ubyte] (Tier0)
-20 (-38.46 % of base) : 6801.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
benchmarks.run_tiered.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 1037520 (overridden on cmd)
Total bytes of diff: 1030824 (overridden on cmd)
Total bytes of delta: -6696 (-0.65 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 12741.dasm (6.25 % of base)
Top file improvements (bytes):
-1900 : 14025.dasm (-29.86 % of base)
-256 : 14589.dasm (-32.00 % of base)
-180 : 3097.dasm (-16.07 % of base)
-120 : 6536.dasm (-8.80 % of base)
-116 : 3044.dasm (-8.10 % of base)
-116 : 5997.dasm (-53.70 % of base)
-88 : 2486.dasm (-40.74 % of base)
-88 : 2487.dasm (-40.74 % of base)
-80 : 6150.dasm (-47.62 % of base)
-80 : 7703.dasm (-35.71 % of base)
-80 : 6892.dasm (-31.25 % of base)
-72 : 10849.dasm (-22.78 % of base)
-60 : 21.dasm (-22.73 % of base)
-56 : 10097.dasm (-32.56 % of base)
-56 : 9592.dasm (-7.00 % of base)
-52 : 12087.dasm (-15.66 % of base)
-48 : 10586.dasm (-34.29 % of base)
-44 : 11842.dasm (-8.94 % of base)
-44 : 4802.dasm (-22.92 % of base)
-40 : 7906.dasm (-4.48 % of base)
75 total files with Code Size differences (74 improved, 1 regressed), 1 unchanged.
Top method regressions (bytes):
8 (6.25 % of base) : 12741.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
Top method improvements (bytes):
-1900 (-29.86 % of base) : 14025.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-256 (-32.00 % of base) : 14589.dasm - System.TimeZoneInfo+AdjustmentRule:AdjustDaylightDeltaToExpectedRange(byref,byref) (Tier0)
-180 (-16.07 % of base) : 3097.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-120 (-8.80 % of base) : 6536.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTimeIso(Newtonsoft.Json.Utilities.StringReference,int,byref):ubyte (Tier0)
-116 (-8.10 % of base) : 3044.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-116 (-53.70 % of base) : 5997.dasm - System.Threading.Tasks.ValueTask:AsTask():System.Threading.Tasks.Task:this (Tier1)
-88 (-40.74 % of base) : 2487.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2486.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-80 (-31.25 % of base) : 6892.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-80 (-35.71 % of base) : 7703.dasm - System.Net.SocketAddress:.cctor() (Tier0)
-80 (-47.62 % of base) : 6150.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
-72 (-22.78 % of base) : 10849.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-60 (-22.73 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-56 (-7.00 % of base) : 9592.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConditionalExpression(System.Linq.Expressions.Expression,int):this (Tier0)
-56 (-32.56 % of base) : 10097.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-52 (-15.66 % of base) : 12087.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-48 (-34.29 % of base) : 10586.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualAllBenchmark():ubyte:this (Tier0)
-44 (-8.94 % of base) : 11842.dasm - System.MemoryExtensions:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int (Tier1)
-44 (-22.92 % of base) : 4802.dasm - System.Threading.Thread+StartHelper:Run():this (Tier0)
-40 (-16.39 % of base) : 7997.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+AwaitableSocketAsyncEventArgs:<.ctor>b__2_0(System.Object,System.Net.Sockets.SocketAsyncEventArgs):this (Tier0)
Top method regressions (percentages):
8 (6.25 % of base) : 12741.dasm - System.Numerics.Tests.Perf_Plane:NormalizeBenchmark():System.Numerics.Plane:this (Tier0)
Top method improvements (percentages):
-116 (-53.70 % of base) : 5997.dasm - System.Threading.Tasks.ValueTask:AsTask():System.Threading.Tasks.Task:this (Tier1)
-80 (-47.62 % of base) : 6150.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
-88 (-40.74 % of base) : 2487.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2486.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-38.46 % of base) : 13365.dasm - Internal.Cryptography.Helpers:get_HasSymmetricEncryption():ubyte (Tier0)
-20 (-38.46 % of base) : 9685.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-20 (-38.46 % of base) : 12993.dasm - Microsoft.Extensions.Logging.NullScope:get_Instance():Microsoft.Extensions.Logging.NullScope (Tier0)
-20 (-38.46 % of base) : 1057.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_DisableFileLocking():ubyte (Tier0)
-20 (-38.46 % of base) : 89.dasm - System.Diagnostics.Tracing.ActivityTracker:get_Instance():System.Diagnostics.Tracing.ActivityTracker (Tier0)
-20 (-38.46 % of base) : 68.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 8377.dasm - System.Globalization.DateTimeFormatInfo:get_InvariantInfo():System.Globalization.DateTimeFormatInfo (Tier0)
-20 (-38.46 % of base) : 2072.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-38.46 % of base) : 7715.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv4():ubyte (Tier0)
-20 (-38.46 % of base) : 1245.dasm - System.Reflection.Metadata.MetadataStringDecoder:get_DefaultUTF8():System.Reflection.Metadata.MetadataStringDecoder (Tier0)
-20 (-38.46 % of base) : 11023.dasm - System.Reflection.Metadata.MetadataUpdater:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 1705.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 2809.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (Tier0)
-20 (-38.46 % of base) : 9177.dasm - System.Runtime.Serialization.SerializationInfo:get_AsyncDeserializationInProgress():System.Threading.AsyncLocal`1[ubyte] (Tier0)
-20 (-38.46 % of base) : 6084.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-38.46 % of base) : 7277.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
coreclr_tests.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 247160 (overridden on cmd)
Total bytes of diff: 246384 (overridden on cmd)
Total bytes of delta: -776 (-0.31 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-212 : 197.dasm (-19.49 % of base)
-152 : 900.dasm (-45.78 % of base)
-144 : 948.dasm (-59.02 % of base)
-52 : 24.dasm (-18.06 % of base)
-32 : 402.dasm (-16.67 % of base)
-32 : 427.dasm (-14.55 % of base)
-20 : 232.dasm (-11.36 % of base)
-20 : 442.dasm (-19.23 % of base)
-20 : 14.dasm (-18.52 % of base)
-20 : 235.dasm (-5.95 % of base)
-20 : 42.dasm (-26.32 % of base)
-20 : 563.dasm (-38.46 % of base)
-20 : 17.dasm (-10.20 % of base)
-4 : 131.dasm (-2.17 % of base)
-4 : 1803.dasm (-9.09 % of base)
-4 : 1955.dasm (-7.69 % of base)
16 total files with Code Size differences (16 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-212 (-19.49 % of base) : 197.dasm - System.Diagnostics.ProcessWaitState:AddRef(int,ubyte,ubyte):System.Diagnostics.ProcessWaitState (Tier0)
-152 (-45.78 % of base) : 900.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:GetResult():int:this (Instrumented Tier1)
-144 (-59.02 % of base) : 948.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Instrumented Tier1)
-52 (-18.06 % of base) : 24.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-32 (-14.55 % of base) : 427.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (Tier0)
-32 (-16.67 % of base) : 402.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAsyncSuccess(int,int):this (Tier0)
-20 (-18.52 % of base) : 14.dasm - System.Console:get_Out():System.IO.TextWriter (Tier0)
-20 (-26.32 % of base) : 42.dasm - System.ConsolePal:EnsureConsoleInitialized() (Tier0)
-20 (-10.20 % of base) : 17.dasm - System.ConsolePal:OpenStandardOutput():System.IO.Stream (Tier0)
-20 (-11.36 % of base) : 232.dasm - System.Net.Sockets.SafeSocketHandle:.ctor(long,ubyte):this (Tier0)
-20 (-5.95 % of base) : 235.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
-20 (-38.46 % of base) : 563.dasm - System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
-20 (-19.23 % of base) : 442.dasm - System.Text.RegularExpressions.Regex:.cctor() (Tier0)
-4 (-7.69 % of base) : 1955.dasm - Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
-4 (-9.09 % of base) : 1803.dasm - Helper:Create(int):int (Tier0)
-4 (-2.17 % of base) : 131.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
Top method improvements (percentages):
-144 (-59.02 % of base) : 948.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Instrumented Tier1)
-152 (-45.78 % of base) : 900.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:GetResult():int:this (Instrumented Tier1)
-20 (-38.46 % of base) : 563.dasm - System.Text.RegularExpressions.Match:get_Empty():System.Text.RegularExpressions.Match (Tier0)
-20 (-26.32 % of base) : 42.dasm - System.ConsolePal:EnsureConsoleInitialized() (Tier0)
-212 (-19.49 % of base) : 197.dasm - System.Diagnostics.ProcessWaitState:AddRef(int,ubyte,ubyte):System.Diagnostics.ProcessWaitState (Tier0)
-20 (-19.23 % of base) : 442.dasm - System.Text.RegularExpressions.Regex:.cctor() (Tier0)
-20 (-18.52 % of base) : 14.dasm - System.Console:get_Out():System.IO.TextWriter (Tier0)
-52 (-18.06 % of base) : 24.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-32 (-16.67 % of base) : 402.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAsyncSuccess(int,int):this (Tier0)
-32 (-14.55 % of base) : 427.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (Tier0)
-20 (-11.36 % of base) : 232.dasm - System.Net.Sockets.SafeSocketHandle:.ctor(long,ubyte):this (Tier0)
-20 (-10.20 % of base) : 17.dasm - System.ConsolePal:OpenStandardOutput():System.IO.Stream (Tier0)
-4 (-9.09 % of base) : 1803.dasm - Helper:Create(int):int (Tier0)
-4 (-7.69 % of base) : 1955.dasm - Helper:Create(ImplementOneInterface):ImplementOneInterface (Tier0)
-20 (-5.95 % of base) : 235.dasm - System.Net.Sockets.SocketAsyncEngine:GetEngineCount():int (Tier0)
-4 (-2.17 % of base) : 131.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (Tier0)
16 total methods with Code Size differences (16 improved, 0 regressed).
libraries.crossgen2.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 11447832 (overridden on cmd)
Total bytes of diff: 11447792 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-12 : 23255.dasm (-5.88 % of base)
-12 : 183360.dasm (-5.88 % of base)
-4 : 186156.dasm (-2.50 % of base)
-4 : 23259.dasm (-4.00 % of base)
-4 : 183364.dasm (-4.00 % of base)
-4 : 26181.dasm (-2.50 % of base)
6 total files with Code Size differences (6 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-12 (-5.88 % of base) : 23255.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-12 (-5.88 % of base) : 183360.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-4 (-2.50 % of base) : 186156.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-4 (-2.50 % of base) : 26181.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-4 (-4.00 % of base) : 23259.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
-4 (-4.00 % of base) : 183364.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
Top method improvements (percentages):
-12 (-5.88 % of base) : 23255.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-12 (-5.88 % of base) : 183360.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-4 (-4.00 % of base) : 23259.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
-4 (-4.00 % of base) : 183364.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
-4 (-2.50 % of base) : 186156.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-4 (-2.50 % of base) : 26181.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
6 total methods with Code Size differences (6 improved, 0 regressed).
libraries.pmi.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 708248 (overridden on cmd)
Total bytes of diff: 704764 (overridden on cmd)
Total bytes of delta: -3484 (-0.49 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-272 : 9.dasm (-72.34 % of base)
-140 : 5369.dasm (-8.93 % of base)
-116 : 319.dasm (-35.37 % of base)
-104 : 6784.dasm (-18.44 % of base)
-104 : 6807.dasm (-18.44 % of base)
-104 : 6825.dasm (-18.71 % of base)
-104 : 6801.dasm (-18.44 % of base)
-100 : 494.dasm (-26.60 % of base)
-96 : 6813.dasm (-17.02 % of base)
-96 : 6819.dasm (-16.00 % of base)
-80 : 7536.dasm (-12.99 % of base)
-80 : 7537.dasm (-13.42 % of base)
-80 : 7538.dasm (-14.08 % of base)
-80 : 7539.dasm (-12.99 % of base)
-80 : 841.dasm (-30.77 % of base)
-80 : 7540.dasm (-14.08 % of base)
-80 : 7541.dasm (-14.08 % of base)
-76 : 1157.dasm (-41.30 % of base)
-72 : 728.dasm (-52.94 % of base)
-64 : 4341.dasm (-35.56 % of base)
48 total files with Code Size differences (48 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-140 (-8.93 % of base) : 5369.dasm - System.DateTimeFormat:TryFormat[ubyte](System.DateTime,System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-116 (-35.37 % of base) : 319.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-104 (-18.44 % of base) : 6807.dasm - System.Lazy`1[int]:CreateValue():int:this (FullOpts)
-104 (-18.71 % of base) : 6825.dasm - System.Lazy`1[long]:CreateValue():long:this (FullOpts)
-104 (-18.44 % of base) : 6801.dasm - System.Lazy`1[short]:CreateValue():short:this (FullOpts)
-104 (-18.44 % of base) : 6784.dasm - System.Lazy`1[ubyte]:CreateValue():ubyte:this (FullOpts)
-100 (-26.60 % of base) : 494.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-96 (-17.02 % of base) : 6813.dasm - System.Lazy`1[double]:CreateValue():double:this (FullOpts)
-96 (-16.00 % of base) : 6819.dasm - System.Lazy`1[System.Numerics.Vector`1[float]]:CreateValue():System.Numerics.Vector`1[float]:this (FullOpts)
-80 (-12.99 % of base) : 7536.dasm - System.MemoryExtensions:Trim(System.Memory`1[ushort]):System.Memory`1[ushort] (FullOpts)
-80 (-12.99 % of base) : 7539.dasm - System.MemoryExtensions:Trim(System.ReadOnlyMemory`1[ushort]):System.ReadOnlyMemory`1[ushort] (FullOpts)
-80 (-14.08 % of base) : 7538.dasm - System.MemoryExtensions:TrimEnd(System.Memory`1[ushort]):System.Memory`1[ushort] (FullOpts)
-80 (-14.08 % of base) : 7541.dasm - System.MemoryExtensions:TrimEnd(System.ReadOnlyMemory`1[ushort]):System.ReadOnlyMemory`1[ushort] (FullOpts)
-80 (-13.42 % of base) : 7537.dasm - System.MemoryExtensions:TrimStart(System.Memory`1[ushort]):System.Memory`1[ushort] (FullOpts)
-80 (-14.08 % of base) : 7540.dasm - System.MemoryExtensions:TrimStart(System.ReadOnlyMemory`1[ushort]):System.ReadOnlyMemory`1[ushort] (FullOpts)
-80 (-30.77 % of base) : 841.dasm - System.SR:Format(System.IFormatProvider,System.String,System.Object[]):System.String (FullOpts)
-76 (-41.30 % of base) : 1157.dasm - System.SR:GetResourceString(System.String):System.String (FullOpts)
-72 (-52.94 % of base) : 728.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-64 (-35.56 % of base) : 4341.dasm - System.Convert:IsDBNull(System.Object):ubyte (FullOpts)
Top method improvements (percentages):
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-44 (-57.89 % of base) : 7996.dasm - System.Random:get_Shared():System.Random (FullOpts)
-44 (-57.89 % of base) : 829.dasm - System.SR:UsingResourceKeys():ubyte (FullOpts)
-44 (-57.89 % of base) : 10096.dasm - System.StringComparer:get_InvariantCulture():System.StringComparer (FullOpts)
-44 (-57.89 % of base) : 10097.dasm - System.StringComparer:get_InvariantCultureIgnoreCase():System.StringComparer (FullOpts)
-72 (-52.94 % of base) : 728.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-44 (-47.83 % of base) : 2028.dasm - System.Decimal:System.Numerics.IAdditiveIdentity<System.Decimal,System.Decimal>.get_AdditiveIdentity():System.Decimal (FullOpts)
-44 (-47.83 % of base) : 2041.dasm - System.Decimal:System.Numerics.IMultiplicativeIdentity<System.Decimal,System.Decimal>.get_MultiplicativeIdentity():System.Decimal (FullOpts)
-44 (-47.83 % of base) : 2105.dasm - System.Decimal:System.Numerics.ISignedNumber<System.Decimal>.get_NegativeOne():System.Decimal (FullOpts)
-44 (-42.31 % of base) : 487.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-76 (-41.30 % of base) : 1157.dasm - System.SR:GetResourceString(System.String):System.String (FullOpts)
-44 (-39.29 % of base) : 577.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-56 (-37.84 % of base) : 520.dasm - System.OrdinalIgnoreCaseComparer:GetHashCode(System.String):int:this (FullOpts)
-64 (-35.56 % of base) : 4341.dasm - System.Convert:IsDBNull(System.Object):ubyte (FullOpts)
-44 (-35.48 % of base) : 497.dasm - System.ConsolePal:GetConsoleEncoding():System.Text.Encoding (FullOpts)
-116 (-35.37 % of base) : 319.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-56 (-31.11 % of base) : 6812.dasm - System.Lazy`1[double]:PublicationOnly(System.LazyHelper,double):this (FullOpts)
-56 (-31.11 % of base) : 6818.dasm - System.Lazy`1[System.Numerics.Vector`1[float]]:PublicationOnly(System.LazyHelper,System.Numerics.Vector`1[float]):this (FullOpts)
-80 (-30.77 % of base) : 841.dasm - System.SR:Format(System.IFormatProvider,System.String,System.Object[]):System.String (FullOpts)
-48 (-27.91 % of base) : 6824.dasm - System.Lazy`1[long]:PublicationOnly(System.LazyHelper,long):this (FullOpts)
libraries_tests.run.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 649232 (overridden on cmd)
Total bytes of diff: 646276 (overridden on cmd)
Total bytes of delta: -2956 (-0.46 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 868.dasm (10.00 % of base)
4 : 8747.dasm (0.83 % of base)
Top file improvements (bytes):
-92 : 4054.dasm (-21.70 % of base)
-92 : 7780.dasm (-5.36 % of base)
-76 : 7109.dasm (-24.05 % of base)
-68 : 2132.dasm (-23.29 % of base)
-68 : 934.dasm (-10.69 % of base)
-64 : 2120.dasm (-16.49 % of base)
-64 : 2131.dasm (-16.49 % of base)
-64 : 2135.dasm (-17.98 % of base)
-64 : 2136.dasm (-16.49 % of base)
-64 : 2460.dasm (-12.21 % of base)
-60 : 2342.dasm (-39.47 % of base)
-60 : 2455.dasm (-39.47 % of base)
-60 : 2573.dasm (-39.47 % of base)
-52 : 3059.dasm (-16.05 % of base)
-52 : 716.dasm (-18.06 % of base)
-44 : 2526.dasm (-26.19 % of base)
-40 : 238.dasm (-6.99 % of base)
-40 : 6853.dasm (-35.71 % of base)
-40 : 7650.dasm (-25.64 % of base)
-40 : 863.dasm (-10.00 % of base)
64 total files with Code Size differences (62 improved, 2 regressed), 0 unchanged.
Top method regressions (bytes):
16 (10.00 % of base) : 868.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
4 (0.83 % of base) : 8747.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
Top method improvements (bytes):
-92 (-5.36 % of base) : 7780.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExprConstant:get_Object():System.Object:this (Tier0)
-92 (-21.70 % of base) : 4054.dasm - NativeExports.Handles:AllocateHandleCore():long (Tier0)
-76 (-24.05 % of base) : 7109.dasm - Microsoft.CSharp.RuntimeBinder.BinderEquivalence:TryGetExisting[System.__Canon](System.__Canon):System.__Canon (Tier0)
-68 (-23.29 % of base) : 2132.dasm - NativeExports.ComInterfaces+MyComWrapper:get_MyObjectComInterfaceEntries():ulong (Tier0)
-68 (-10.69 % of base) : 934.dasm - Xunit.Sdk.SerializationHelper:GetType(System.String,System.String):System.Type (Tier0)
-64 (-17.98 % of base) : 2135.dasm - NativeExports.ComInterfaceGenerator.ArrayMarshalling+MyComWrapper:get_GetIntArrayVTable():ulong (Tier0)
-64 (-16.49 % of base) : 2120.dasm - NativeExports.ComInterfaceGenerator.GetAndSetInt+MyComWrapper:get_s_comInterface1VTable():ulong (Tier0)
-64 (-16.49 % of base) : 2131.dasm - NativeExports.ComInterfaceGenerator.GetPoint+ImplementingObject+ABI:get_VTable():ulong (Tier0)
-64 (-16.49 % of base) : 2136.dasm - NativeExports.ComInterfaceGenerator.StringMarshalling+MyComWrapper:get_S_Utf8VTable():ulong (Tier0)
-64 (-12.21 % of base) : 2460.dasm - NativeExports.ComInterfaceGenerator.StringMarshallingOverride+MyComWrapper:get_S_DerivedVTable():ulong (Tier0)
-60 (-39.47 % of base) : 2342.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2455.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2573.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-52 (-16.05 % of base) : 3059.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-52 (-18.06 % of base) : 716.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-44 (-26.19 % of base) : 2526.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_ManagedVirtualMethodTable():ulong (Tier0)
-40 (-15.38 % of base) : 18.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:GetCurrent():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-40 (-25.64 % of base) : 7650.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:Get(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
-40 (-35.71 % of base) : 6853.dasm - System.Linq.Expressions.Utils:Constant(ubyte):System.Linq.Expressions.ConstantExpression (Tier0)
-40 (-10.00 % of base) : 863.dasm - Xunit.ConsoleClient.ConsoleRunner:ValidateFileExists(System.Object,System.String):ubyte:this (Tier0)
Top method regressions (percentages):
16 (10.00 % of base) : 868.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
4 (0.83 % of base) : 8747.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:GetDefaultValue(int):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (Tier0)
Top method improvements (percentages):
-60 (-39.47 % of base) : 2342.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2455.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-60 (-39.47 % of base) : 2573.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:System.Runtime.InteropServices.Marshalling.IUnmanagedInterfaceType.get_VirtualMethodTableManagedImplementation():ulong (Tier0)
-20 (-38.46 % of base) : 208.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-20 (-38.46 % of base) : 13.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
-20 (-38.46 % of base) : 16.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:get_Current():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-20 (-38.46 % of base) : 32.dasm - Internal.Microsoft.Extensions.DependencyModel.FileSystemWrapper:get_Default():Internal.Microsoft.Extensions.DependencyModel.IFileSystem (Tier0)
-20 (-38.46 % of base) : 2688.dasm - SharedTypes.ComInterfaces.MarshallingFails.IStringArrayMarshallingFailsImpl:get_StartingStrings():System.String[] (Tier0)
-20 (-38.46 % of base) : 3623.dasm - System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
-20 (-38.46 % of base) : 5704.dasm - System.Reflection.Metadata.MetadataStringDecoder:get_DefaultUTF8():System.Reflection.Metadata.MetadataStringDecoder (Tier0)
-20 (-38.46 % of base) : 2067.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:get_DefaultIUnknownInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy (Tier0)
-20 (-38.46 % of base) : 6114.dasm - System.Security.Cryptography.HMACSHA3_256:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 6116.dasm - System.Security.Cryptography.HMACSHA3_384:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 6118.dasm - System.Security.Cryptography.HMACSHA3_512:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 5996.dasm - System.Security.Cryptography.SHA3_256:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 5994.dasm - System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 5591.dasm - System.Security.Cryptography.SHA3_512:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 5458.dasm - System.Security.Cryptography.Utf8DataEncoding:get_ThrowingUtf8Encoding():System.Text.Encoding (Tier0)
-20 (-38.46 % of base) : 5551.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-20 (-38.46 % of base) : 5971.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 102104 (overridden on cmd)
Total bytes of diff: 97788 (overridden on cmd)
Total bytes of delta: -4316 (-4.23 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-544 : 67.dasm (-77.27 % of base)
-280 : 2401.dasm (-67.31 % of base)
-200 : 1216.dasm (-79.37 % of base)
-116 : 1824.dasm (-11.98 % of base)
-112 : 503.dasm (-25.45 % of base)
-104 : 121.dasm (-18.44 % of base)
-100 : 343.dasm (-26.88 % of base)
-88 : 138.dasm (-14.57 % of base)
-88 : 723.dasm (-44.90 % of base)
-76 : 965.dasm (-32.76 % of base)
-72 : 1190.dasm (-30.00 % of base)
-72 : 10.dasm (-10.53 % of base)
-52 : 775.dasm (-15.29 % of base)
-52 : 1942.dasm (-14.29 % of base)
-44 : 1221.dasm (-52.38 % of base)
-44 : 1324.dasm (-52.38 % of base)
-44 : 1438.dasm (-52.38 % of base)
-44 : 1597.dasm (-52.38 % of base)
-44 : 1620.dasm (-52.38 % of base)
-44 : 1684.dasm (-52.38 % of base)
64 total files with Code Size differences (64 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-544 (-77.27 % of base) : 67.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-280 (-67.31 % of base) : 2401.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-200 (-79.37 % of base) : 1216.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-116 (-11.98 % of base) : 1824.dasm - Xunit.Sdk.CollectionTracker:CheckIfDictionariesAreEqual(Xunit.Sdk.CollectionTracker,Xunit.Sdk.CollectionTracker,System.Collections.IEqualityComparer):System.Nullable`1[ubyte] (FullOpts)
-112 (-25.45 % of base) : 503.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-104 (-18.44 % of base) : 121.dasm - System.Lazy`1[int]:CreateValue():int:this (FullOpts)
-100 (-26.88 % of base) : 343.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-88 (-44.90 % of base) : 723.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-88 (-14.57 % of base) : 138.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (FullOpts)
-76 (-32.76 % of base) : 965.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (FullOpts)
-72 (-30.00 % of base) : 1190.dasm - NativeExports.ComInterfaces+MyComWrapper:get_MyObjectComInterfaceEntries():ulong (FullOpts)
-72 (-10.53 % of base) : 10.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-52 (-14.29 % of base) : 1942.dasm - System.Xml.Linq.ElementWriter:WriteElement(System.Xml.Linq.XElement):this (FullOpts)
-52 (-15.29 % of base) : 775.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler:AddExecutionOptions(System.String,Xunit.Abstractions.ITestFrameworkExecutionOptions):this (FullOpts)
-44 (-52.38 % of base) : 1669.dasm - <SharedTypes_ComInterfaces_IArrayOfStatelessElements>F997BA340F1C602826A33304D11289B2F916116FCF25AA5066692B8DC9808E77C__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1324.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1310.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1347.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1220.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1438.dasm - <SharedTypes_ComInterfaces_IGetIntArray>FA214D816C95247C6B11496DF3E741F51CFFDF42655C9ADCC408020ADDEBD389B__InterfaceInformation:get_Iid():System.Guid (FullOpts)
Top method improvements (percentages):
-200 (-79.37 % of base) : 1216.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-544 (-77.27 % of base) : 67.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-44 (-68.75 % of base) : 735.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
-280 (-67.31 % of base) : 2401.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-44 (-57.89 % of base) : 2091.dasm - Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
-44 (-57.89 % of base) : 1147.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-44 (-57.89 % of base) : 761.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 536.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 1863.dasm - Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 769.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 1902.dasm - Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-52.38 % of base) : 1669.dasm - <SharedTypes_ComInterfaces_IArrayOfStatelessElements>F997BA340F1C602826A33304D11289B2F916116FCF25AA5066692B8DC9808E77C__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1324.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1310.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1347.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1220.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1438.dasm - <SharedTypes_ComInterfaces_IGetIntArray>FA214D816C95247C6B11496DF3E741F51CFFDF42655C9ADCC408020ADDEBD389B__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1726.dasm - <SharedTypes_ComInterfaces_IInt>F5760B97C133242F5A106190440B4906CD2EB48D5707A49A7150FCE3CC122F69A__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1620.dasm - <SharedTypes_ComInterfaces_IIntArray>FC8C36D862B5D89EFA40DC2F69A3F2BB75A6AFAFDD2DD51BB784960FEC6297044__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1732.dasm - <SharedTypes_ComInterfaces_IInterface>F0F8D3EC26B752C48BE9B9C143F24949B29CF1C6BE9A1BE3C3F507CEEFFF883D7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
realworld.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 402548 (overridden on cmd)
Total bytes of diff: 390756 (overridden on cmd)
Total bytes of delta: -11792 (-2.93 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 2039.dasm (6.90 % of base)
4 : 2202.dasm (2.33 % of base)
4 : 3044.dasm (2.78 % of base)
4 : 3127.dasm (2.33 % of base)
4 : 4563.dasm (2.33 % of base)
Top file improvements (bytes):
-6416 : 4692.dasm (-73.54 % of base)
-544 : 687.dasm (-77.27 % of base)
-292 : 4625.dasm (-62.39 % of base)
-272 : 9.dasm (-72.34 % of base)
-212 : 3441.dasm (-43.44 % of base)
-128 : 2789.dasm (-50.79 % of base)
-128 : 4538.dasm (-35.56 % of base)
-116 : 401.dasm (-35.37 % of base)
-112 : 719.dasm (-25.45 % of base)
-112 : 2455.dasm (-60.87 % of base)
-104 : 2553.dasm (-12.56 % of base)
-100 : 2550.dasm (-8.39 % of base)
-92 : 3307.dasm (-54.76 % of base)
-92 : 4552.dasm (-74.19 % of base)
-92 : 4553.dasm (-74.19 % of base)
-88 : 3268.dasm (-56.41 % of base)
-84 : 2558.dasm (-39.62 % of base)
-76 : 1882.dasm (-41.30 % of base)
-72 : 1510.dasm (-52.94 % of base)
-72 : 233.dasm (-10.53 % of base)
63 total files with Code Size differences (58 improved, 5 regressed), 1 unchanged.
Top method regressions (bytes):
8 (6.90 % of base) : 2039.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.78 % of base) : 3044.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.33 % of base) : 3127.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.33 % of base) : 4563.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.33 % of base) : 2202.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (bytes):
-6416 (-73.54 % of base) : 4692.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-544 (-77.27 % of base) : 687.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-292 (-62.39 % of base) : 4625.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-212 (-43.44 % of base) : 3441.dasm - FSharp.Compiler.Parser:tables():Internal.Utilities.Text.Parsing.Tables`1[FSharp.Compiler.Parser+token] (FullOpts)
-128 (-50.79 % of base) : 2789.dasm - FSharp.Compiler.AbstractIL.IL+PublicKey:GetHashCode(System.Collections.IEqualityComparer):int:this (FullOpts)
-128 (-35.56 % of base) : 4538.dasm - FSharp.Compiler.LexFilter+LexFilter:GetToken():FSharp.Compiler.Parser+token:this (FullOpts)
-116 (-35.37 % of base) : 401.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
-112 (-60.87 % of base) : 2455.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-112 (-25.45 % of base) : 719.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-104 (-12.56 % of base) : 2553.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-100 (-8.39 % of base) : 2550.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
-92 (-74.19 % of base) : 4553.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-92 (-74.19 % of base) : 4552.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-92 (-54.76 % of base) : 3307.dasm - Microsoft.Build.Shared.FileSystem.FileSystems:GetFileSystem():Microsoft.Build.Shared.FileSystem.IFileSystem (FullOpts)
-88 (-56.41 % of base) : 3268.dasm - FSharp.Compiler.CompilerImports:logMessage@377(FSharp.Compiler.CompilerConfig+TcConfig,ubyte):Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit] (FullOpts)
-84 (-39.62 % of base) : 2558.dasm - FSComp.SR:optsHelpBannerOutputFiles():System.String (FullOpts)
-76 (-41.30 % of base) : 1882.dasm - System.SR:GetResourceString(System.String):System.String (FullOpts)
-72 (-52.94 % of base) : 1510.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-72 (-10.53 % of base) : 233.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
Top method regressions (percentages):
8 (6.90 % of base) : 2039.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.78 % of base) : 3044.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.33 % of base) : 3127.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.33 % of base) : 4563.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.33 % of base) : 2202.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (percentages):
-544 (-77.27 % of base) : 687.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-92 (-74.19 % of base) : 4553.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-92 (-74.19 % of base) : 4552.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-6416 (-73.54 % of base) : 4692.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-292 (-62.39 % of base) : 4625.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-44 (-61.11 % of base) : 2254.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
-112 (-60.87 % of base) : 2455.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-68 (-60.71 % of base) : 4630.dasm - FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions:ErrorLogger.ErrorR(FSharp.Compiler.ErrorLogger+ErrorLogger,System.Exception) (FullOpts)
-44 (-57.89 % of base) : 2559.dasm - FSComp.SR:.cctor() (FullOpts)
-44 (-57.89 % of base) : 1716.dasm - FSharp.Benchmarks.Program:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2751.dasm - FSharp.Compiler.AbstractIL.IL:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2914.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
-44 (-57.89 % of base) : 4748.dasm - FSharp.Compiler.BuildGraph+NodeCodeBuilder:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2141.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2149.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2403.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2503.dasm - FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
-44 (-57.89 % of base) : 2492.dasm - FSharp.Compiler.Features+LanguageVersion:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2845.dasm - FSharp.Compiler.FxResolver:.cctor() (FullOpts)
windows arm64
Diffs are based on 132,266 contexts (15,289 MinOpts, 116,977 FullOpts).
MISSED contexts: base: 3 (0.00%), diff: 115,590 (45.92%)
Overall (-61,336 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.windows.arm64.checked.mch |
182,012 |
-2,820 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
1,173,228 |
-6,688 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
862,284 |
-7,268 |
| coreclr_tests.run.windows.arm64.checked.mch |
77,860 |
-676 |
| libraries.crossgen2.windows.arm64.checked.mch |
10,005,180 |
-76 |
| libraries.pmi.windows.arm64.checked.mch |
381,864 |
-8,852 |
| libraries_tests.run.windows.arm64.Release.mch |
334,372 |
-1,272 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
98,900 |
-4,260 |
| realworld.run.windows.arm64.checked.mch |
400,564 |
-11,784 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
1,012,896 |
-17,640 |
MinOpts (-13,448 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
974,380 |
-6,476 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
736,852 |
-5,780 |
| libraries_tests.run.windows.arm64.Release.mch |
241,184 |
-1,192 |
FullOpts (-47,888 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run.windows.arm64.checked.mch |
182,012 |
-2,820 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
198,848 |
-212 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
125,432 |
-1,488 |
| coreclr_tests.run.windows.arm64.checked.mch |
77,860 |
-676 |
| libraries.crossgen2.windows.arm64.checked.mch |
10,004,164 |
-76 |
| libraries.pmi.windows.arm64.checked.mch |
381,864 |
-8,852 |
| libraries_tests.run.windows.arm64.Release.mch |
93,188 |
-80 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
98,900 |
-4,260 |
| realworld.run.windows.arm64.checked.mch |
400,564 |
-11,784 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
1,012,684 |
-17,640 |
Example diffs
benchmarks.run.windows.arm64.checked.mch
-44 (-45.83%) : 2992.dasm - System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
@@ -16,14 +16,7 @@ G_M46897_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M46897_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M46897_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M46897_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46897_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -35,23 +28,13 @@ G_M46897_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x1, [x1]
ldr wzr, [x0]
;; size=36 bbWeight=1 PerfScore 12.00
-G_M46897_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M46897_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
br x1
; gcr arg pop 0
;; size=8 bbWeight=1 PerfScore 2.00
-G_M46897_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- b G_M46897_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 96, prolog size 8, PerfScore 21.00, instruction count 24, allocated bytes for code 96 (MethodHash=8a4148ce) for method System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 15.50, instruction count 13, allocated bytes for code 52 (MethodHash=8a4148ce) for method System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
; ============================================================
Unwind Info:
@@ -62,7 +45,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-48 (-40.00%) : 2989.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
@@ -9,81 +9,64 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Threading.Tasks.TaskScheduler>
-; V01 loc0 [V01,T03] ( 4, 3.50) int -> x0
-; V02 loc1 [V02,T00] ( 3, 8.50) int -> x1
+; V01 loc0 [V01,T03] ( 4, 3.50) int -> x1
+; V02 loc1 [V02,T00] ( 3, 8.50) int -> x2
;# 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 cse0 [V05,T05] ( 0, 0 ) long -> zero-ref hoist "CSE - aggressive"
-; V06 cse1 [V06,T02] ( 2, 4.50) long -> x0 hoist "CSE - aggressive"
-; V07 cse2 [V07,T04] ( 4, 3 ) byref -> x19 "CSE - aggressive"
+; V05 cse0 [V05,T02] ( 2, 4.50) long -> x1 hoist "CSE - aggressive"
+; V06 cse1 [V06,T04] ( 4, 3 ) byref -> x0 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M51313_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=8 bbWeight=1 PerfScore 1.50
G_M51313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
- add x19, x0, #8
- ; byrRegs +[x19]
- ldapr w0, [x19]
+ add x0, x0, #8
; gcrRegs -[x0]
- cbnz w0, G_M51313_IG07
+ ; byrRegs +[x0]
+ ldapr w1, [x0]
+ cbnz w1, G_M51313_IG06
;; size=12 bbWeight=1 PerfScore 4.50
-G_M51313_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M51313_IG08
- ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M51313_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+G_M51313_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M51313_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- mov w1, #1
- ldaddal w1, w1, [x0]
- add w1, w1, #1
- cbz w1, G_M51313_IG05
+G_M51313_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
+ mov w2, #1
+ ldaddal w2, w2, [x1]
+ add w2, w2, #1
+ cbz w2, G_M51313_IG04
;; size=16 bbWeight=4 PerfScore 20.00
-G_M51313_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- mov w0, wzr
- casal w0, w1, [x19]
- ldapr w0, [x19]
+G_M51313_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
+ mov w1, wzr
+ casal w1, w2, [x0]
+ ldapr w1, [x0]
;; size=12 bbWeight=0.50 PerfScore 3.25
-G_M51313_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; byrRegs -[x19]
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+G_M51313_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x0]
+ mov w0, w1
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M51313_IG07: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M51313_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
- ; byrRegs +[x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- b G_M51313_IG04
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 37.75, instruction count 30, allocated bytes for code 120 (MethodHash=40f8378e) for method System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
+; Total bytes of code 72, prolog size 8, PerfScore 32.50, instruction count 18, allocated bytes for code 72 (MethodHash=40f8378e) for method System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 18 (0x00012) Actual length = 72 (0x000048)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -91,10 +74,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-44 (-39.29%) : 1275.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
@@ -17,14 +17,7 @@ G_M6374_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str x19, [sp, #0x18]
mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
-G_M6374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M6374_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M6374_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M6374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x19, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x19, #0xD1FFAB1E LSL #16
movk x19, #0xD1FFAB1E LSL #32
@@ -37,21 +30,13 @@ G_M6374_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x0
str x0, [x19, #-0xC0]
;; size=44 bbWeight=1 PerfScore 12.00
-G_M6374_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M6374_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=1 PerfScore 4.00
-G_M6374_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M6374_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 112, prolog size 12, PerfScore 24.00, instruction count 28, allocated bytes for code 112 (MethodHash=7617e719) for method System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
+; Total bytes of code 68, prolog size 12, PerfScore 18.50, instruction count 17, allocated bytes for code 68 (MethodHash=7617e719) for method System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -62,7 +47,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 17 (0x00011) Actual length = 68 (0x000044)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-2.60%) : 3058.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
@@ -113,7 +113,7 @@ G_M48248_IG02: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=000
add x20, x0, #24
; byrRegs +[x20]
ldapr w1, [x20]
- tbnz w1, #30, G_M48248_IG41
+ tbnz w1, #30, G_M48248_IG40
ldr x1, [fp, #0x50] // [V63 tmp50]
; gcrRegs +[x1]
cbz x1, G_M48248_IG03
@@ -123,15 +123,15 @@ G_M48248_IG02: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=000
; byrRegs +[x1]
ldapr w1, [x1]
; byrRegs -[x1]
- cbnz w1, G_M48248_IG44
+ cbnz w1, G_M48248_IG43
;; size=36 bbWeight=1 PerfScore 14.00
G_M48248_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0]
cmn w19, #1
- blt G_M48248_IG42
+ blt G_M48248_IG41
ldapr w1, [x20]
tst w1, #0xD1FFAB1E
- bne G_M48248_IG14
+ bne G_M48248_IG13
cbnz w19, G_M48248_IG05
mov w0, wzr
;; size=28 bbWeight=1 PerfScore 7.50
@@ -174,7 +174,7 @@ G_M48248_IG07: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; gcr arg pop 0
ldapr w0, [x20]
tst w0, #0xD1FFAB1E
- bne G_M48248_IG14
+ bne G_M48248_IG13
ldr w0, [fp, #0x48] // [V64 tmp51]
cmp w0, #100
blt G_M48248_IG09
@@ -200,7 +200,7 @@ G_M48248_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; byrRegs +[x0]
ldapr w0, [x0]
; byrRegs -[x0]
- cbnz w0, G_M48248_IG44
+ cbnz w0, G_M48248_IG43
;; size=68 bbWeight=4 PerfScore 86.00
G_M48248_IG09: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
ldr w0, [fp, #0x48] // [V64 tmp51]
@@ -219,7 +219,7 @@ G_M48248_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
mov x1, x0
@@ -227,7 +227,7 @@ G_M48248_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
mov x0, x24
; gcrRegs -[x0]
; byrRegs +[x0]
- cbz x0, G_M48248_IG43
+ cbz x0, G_M48248_IG42
mov x2, xzr
bl <unknown method>
; gcrRegs -[x1] +[x0]
@@ -236,40 +236,33 @@ G_M48248_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
;; size=52 bbWeight=1 PerfScore 12.50
G_M48248_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x24}, byref, isz
; gcrRegs -[x0]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M48248_IG45
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M48248_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x24}, byref, isz
movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
; gcrRegs +[x1]
- cbz x1, G_M48248_IG46
+ cbz x1, G_M48248_IG44
ldr x2, [fp, #0x50] // [V63 tmp50]
; gcrRegs +[x2]
- cbnz x2, G_M48248_IG16
+ cbnz x2, G_M48248_IG15
mov x25, xzr
; gcrRegs +[x25]
mov x26, xzr
;; size=36 bbWeight=1 PerfScore 9.50
-G_M48248_IG13: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref
+G_M48248_IG12: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref
; gcrRegs -[x1-x2]
str x25, [fp, #0x18] // [V65 tmp52]
; GC ptr vars +{V65}
str x26, [fp, #0x30] // [V66 tmp53]
- b G_M48248_IG17
+ b G_M48248_IG16
;; size=12 bbWeight=1 PerfScore 3.00
-G_M48248_IG14: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M48248_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x25]
; byrRegs -[x20 x24]
; GC ptr vars -{V00 V65}
mov w0, #1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M48248_IG15: ; bbWeight=1, epilog, nogc, extend
+G_M48248_IG14: ; bbWeight=1, epilog, nogc, extend
ldp x25, x26, [sp, #0x90]
ldp x23, x24, [sp, #0x80]
ldp x21, x22, [sp, #0x70]
@@ -277,7 +270,7 @@ G_M48248_IG15: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0xA0
ret lr
;; size=24 bbWeight=1 PerfScore 6.00
-G_M48248_IG16: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=0006 {x1 x2}, byrefRegs=1100000 {x20 x24}, gcvars, byref
+G_M48248_IG15: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=0006 {x1 x2}, byrefRegs=1100000 {x20 x24}, gcvars, byref
; gcrRegs +[x1-x2]
; byrRegs +[x20 x24]
; GC ptr vars +{V00}
@@ -296,9 +289,9 @@ G_M48248_IG16: ; bbWeight=1, gcVars=0000000000000004 {V00}, gcrefRegs=000
mov x25, x0
; gcrRegs +[x25]
mov x26, x1
- b G_M48248_IG13
+ b G_M48248_IG12
;; size=48 bbWeight=1 PerfScore 11.00
-G_M48248_IG17: ; bbWeight=1, gcVars=0000000000000104 {V00 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref
+G_M48248_IG16: ; bbWeight=1, gcVars=0000000000000104 {V00 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref
; gcrRegs -[x0]
; GC ptr vars +{V65}
ldapr x1, [x24]
@@ -307,10 +300,10 @@ G_M48248_IG17: ; bbWeight=1, gcVars=0000000000000104 {V00 V65}, gcrefRegs
; GC ptr vars +{V09}
str wzr, [fp, #0x40] // [V10 loc7]
;; size=12 bbWeight=1 PerfScore 5.00
-G_M48248_IG18: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
+G_M48248_IG17: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
; gcrRegs -[x1]
ldrb w2, [fp, #0x40] // [V10 loc7]
- cbnz w2, G_M48248_IG22
+ cbnz w2, G_M48248_IG21
add x1, fp, #64 // [V10 loc7]
ldr x0, [fp, #0x20] // [V09 loc6]
; gcrRegs +[x0]
@@ -318,7 +311,7 @@ G_M48248_IG18: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcref
; gcrRegs -[x0]
; gcr arg pop 0
ldrb w0, [fp, #0x40] // [V10 loc7]
- cbnz w0, G_M48248_IG19
+ cbnz w0, G_M48248_IG18
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -332,17 +325,17 @@ G_M48248_IG18: ; bbWeight=1, gcVars=0000000001000104 {V00 V09 V65}, gcref
; gcrRegs -[x0]
; gcr arg pop 0
;; size=64 bbWeight=1 PerfScore 17.00
-G_M48248_IG19: ; bbWeight=8, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
+G_M48248_IG18: ; bbWeight=8, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
ldapr w0, [x20]
tst w0, #0xD1FFAB1E
- beq G_M48248_IG23
+ beq G_M48248_IG22
;; size=12 bbWeight=8 PerfScore 36.00
-G_M48248_IG20: ; bbWeight=1, gcVars=0000000001000100 {V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, gcvars, byref
+G_M48248_IG19: ; bbWeight=1, gcVars=0000000001000100 {V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, gcvars, byref
; byrRegs -[x20 x24]
; GC ptr vars -{V00}
- b G_M48248_IG33
+ b G_M48248_IG32
;; size=4 bbWeight=1 PerfScore 1.00
-G_M48248_IG21: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
+G_M48248_IG20: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
add x0, fp, #80 // [V02 arg2]
movz x1, #0xD1FFAB1E // code for System.Threading.CancellationToken:ThrowOperationCanceledException():this
movk x1, #0xD1FFAB1E LSL #16
@@ -352,7 +345,7 @@ G_M48248_IG21: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {},
; gcr arg pop 0
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-G_M48248_IG22: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
+G_M48248_IG21: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.Threading.Monitor:ThrowLockTakenException()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -361,22 +354,22 @@ G_M48248_IG22: ; bbWeight=0, gcrefRegs=2000000 {x25}, byrefRegs=0000 {},
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M48248_IG23: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
+G_M48248_IG22: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
; byrRegs +[x20 x24]
; GC ptr vars +{V00}
ldr x0, [fp, #0x50] // [V63 tmp50]
; gcrRegs +[x0]
- cbz x0, G_M48248_IG24
+ cbz x0, G_M48248_IG23
ldr x0, [fp, #0x50] // [V63 tmp50]
add x0, x0, #32
; gcrRegs -[x0]
; byrRegs +[x0]
ldapr w0, [x0]
; byrRegs -[x0]
- cbnz w0, G_M48248_IG21
+ cbnz w0, G_M48248_IG20
;; size=24 bbWeight=4 PerfScore 38.00
-G_M48248_IG24: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
- cbz w22, G_M48248_IG25
+G_M48248_IG23: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
+ cbz w22, G_M48248_IG24
mov w0, w21
mov w1, w19
movz x2, #0xD1FFAB1E // code for System.Threading.TimeoutHelper:UpdateTimeOut(uint,int):int
@@ -387,9 +380,9 @@ G_M48248_IG24: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {
; gcr arg pop 0
sxtw w23, w0
cmp w23, #0
- ble G_M48248_IG30
+ ble G_M48248_IG29
;; size=44 bbWeight=4 PerfScore 38.00
-G_M48248_IG25: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
+G_M48248_IG24: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, byref, isz
ldapr w1, [x20]
and w1, w1, #0xD1FFAB1E
add w1, w1, #1
@@ -404,9 +397,9 @@ G_M48248_IG25: ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {
; gcr arg pop 0
ldapr w1, [x20]
tst w1, #0xD1FFAB1E
- beq G_M48248_IG27
+ beq G_M48248_IG26
;; size=48 bbWeight=4 PerfScore 64.00
-G_M48248_IG26: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=100000 {x20}, byref
+G_M48248_IG25: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=100000 {x20}, byref
; byrRegs -[x24]
ldapr w1, [x20]
and w1, w1, #0xD1FFAB1E
@@ -424,9 +417,9 @@ G_M48248_IG26: ; bbWeight=1, gcrefRegs=2000000 {x25}, byrefRegs=100000 {x
; gcr arg pop 0
mov w0, #1
str w0, [fp, #0x3C] // [V11 loc8]
- b G_M48248_IG34
+ b G_M48248_IG33
;; size=48 bbWeight=1 PerfScore 14.00
-G_M48248_IG27: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
+G_M48248_IG26: ; bbWeight=4, gcVars=0000000001000104 {V00 V09 V65}, gcrefRegs=2000000 {x25}, byrefRegs=1100000 {x20 x24}, gcvars, byref, isz
; byrRegs +[x20 x24]
; GC ptr vars +{V00}
ldapr x0, [x24]
...
+0 (0.00%) : 1341.dasm - System.Reflection.SignatureTypeExtensions:MatchesParameterTypeExactly(System.Type,System.Reflection.ParameterInfo):ubyte (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) ref -> x20 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T01] ( 4, 4 ) ref -> x20 class-hnd single-def <System.Type>
; V01 arg1 [V01,T00] ( 6, 4 ) ref -> x19 class-hnd single-def <System.Reflection.ParameterInfo>
-; V02 loc0 [V02,T02] ( 3, 2.50) ref -> x21 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T03] ( 2, 1.50) ref -> x21 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V04 tmp1 [V04,T02] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -31,11 +31,11 @@ G_M22240_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
mov x21, x0
; gcrRegs +[x21]
- cbz x21, G_M22240_IG05
+ cbz x20, G_M22240_IG05
;; size=28 bbWeight=1 PerfScore 4.50
G_M22240_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
@@ -60,8 +60,8 @@ G_M22240_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
br x2
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1 x21] +[x19-x20]
+G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1 x21] +[x19]
mov x0, x19
; gcrRegs +[x0]
ldr x1, [x19]
@@ -69,7 +69,7 @@ G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
ldr x1, [x1, #0x38]
blr x1
; gcrRegs -[x19]
- cmp x0, x20
+ cmp x0, #0
cset x0, eq
; gcrRegs -[x0]
;; size=28 bbWeight=0.50 PerfScore 5.75
+0 (0.00%) : 1369.dasm - System.DefaultBinder:FindMostSpecificType(System.Type,System.Type,System.Type):int (FullOpts)
@@ -10,16 +10,16 @@
;
; V00 arg0 [V00,T00] ( 22, 12.50) ref -> x19 class-hnd <System.Type>
; V01 arg1 [V01,T01] ( 22, 12.50) ref -> x20 class-hnd <System.Type>
-; V02 arg2 [V02,T02] ( 5, 3.50) ref -> x21 class-hnd single-def <System.Type>
-; V03 loc0 [V03,T04] ( 4, 2 ) ref -> x22 class-hnd single-def <<unknown class>>
-; V04 loc1 [V04,T05] ( 4, 2 ) ubyte -> x21
+; V02 arg2 [V02,T02] ( 4, 3 ) ref -> x21 class-hnd single-def <System.Type>
+; V03 loc0 [V03,T09] ( 3, 1.50) ref -> x22 class-hnd single-def <<unknown class>>
+; V04 loc1 [V04,T04] ( 4, 2 ) ubyte -> x21
; V05 loc2 [V05,T10] ( 3, 1.50) ubyte -> x0
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T08] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V08 tmp2 [V08,T09] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V09 cse0 [V09,T06] ( 4, 2 ) long -> x22 "CSE - aggressive"
+; V07 tmp1 [V07,T07] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V08 tmp2 [V08,T08] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
+; V09 cse0 [V09,T05] ( 4, 2 ) long -> x22 "CSE - aggressive"
; V10 cse1 [V10,T03] ( 5, 2.50) long -> registers multi-def "CSE - aggressive"
-; V11 cse2 [V11,T07] ( 4, 2 ) long -> x21 "CSE - moderate"
+; V11 cse2 [V11,T06] ( 4, 2 ) long -> x21 "CSE - moderate"
;
; Lcl frame size = 0
@@ -54,11 +54,11 @@ G_M53685_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
mov x22, x0
; gcrRegs +[x22]
- cbz x22, G_M53685_IG04
+ cbz x21, G_M53685_IG04
mov x0, x22
mov x1, x19
; gcrRegs +[x1]
@@ -82,29 +82,26 @@ G_M53685_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
cbz w0, G_M53685_IG05
b G_M53685_IG16
;; size=96 bbWeight=0.50 PerfScore 10.25
-G_M53685_IG04: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x21]
+G_M53685_IG04: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x0, x19
; gcrRegs +[x0]
- mov x1, x21
- ; gcrRegs +[x1]
+ mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
cbnz w0, G_M53685_IG18
mov x0, x20
; gcrRegs +[x0]
- mov x1, x21
- ; gcrRegs +[x1]
+ mov x1, xzr
movz x2, #0xD1FFAB1E // code for System.Type:op_Equality(System.Type,System.Type):ubyte
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0-x1 x21]
+ ; gcrRegs -[x0]
cbnz w0, G_M53685_IG16
;; size=64 bbWeight=0.50 PerfScore 7.50
G_M53685_IG05: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
benchmarks.run_pgo.windows.arm64.checked.mch
-48 (-46.15%) : 11777.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
@@ -5,46 +5,33 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Float>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Float>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 32
+; Lcl frame size = 16
G_M40664_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x30]!
+ stp fp, lr, [sp, #-0x20]!
mov fp, sp
- str x0, [fp, #0x28] // [V00 this]
+ str x0, [fp, #0x18] // [V00 this]
;; size=12 bbWeight=1 PerfScore 2.50
G_M40664_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr q16, [x0]
- str q16, [fp, #0x18] // [TEMP_01]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- ldr q16, [x0]
- ldr q17, [fp, #0x18] // [TEMP_01]
- orr v0.4s, v17.4s, v16.4s
- ;; size=84 bbWeight=1 PerfScore 18.50
+ ldr q17, [x0]
+ orr v0.4s, v16.4s, v17.4s
+ ;; size=36 bbWeight=1 PerfScore 9.50
G_M40664_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x30
+ ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=44ca6127) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
+; Total bytes of code 56, prolog size 8, PerfScore 14.00, instruction count 14, allocated bytes for code 56 (MethodHash=44ca6127) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
; ============================================================
Unwind Info:
@@ -55,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -63,7 +50,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
E4 end
E4 end
-20 (-38.46%) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
@@ -14,23 +14,18 @@ G_M26209_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26209_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M26209_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 73.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M9075_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M9075_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M9075_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.70%) : 10838.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (Tier0)
@@ -19,8 +19,7 @@ G_M22193_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #43
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
ldr x0, [fp, #0x18] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -54,13 +53,13 @@ G_M22193_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x0]
- ;; size=128 bbWeight=1 PerfScore 36.00
+ ;; size=124 bbWeight=1 PerfScore 35.50
G_M22193_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 148, prolog size 8, PerfScore 40.50, instruction count 37, allocated bytes for code 148 (MethodHash=7b84a94e) for method Newtonsoft.Json.JsonWriter:.ctor():this (Tier0)
+; Total bytes of code 144, prolog size 8, PerfScore 40.00, instruction count 36, allocated bytes for code 144 (MethodHash=7b84a94e) for method Newtonsoft.Json.JsonWriter:.ctor():this (Tier0)
; ============================================================
Unwind Info:
@@ -71,7 +70,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 37 (0x00025) Actual length = 148 (0x000094)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.90%) : 5207.dasm - System.Xml.Serialization.TypeScope:AddPrimitive(System.Type,System.String,System.String,int) (Tier0)
@@ -37,12 +37,11 @@ G_M36739_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
str x0, [fp, #0x38] // [V07 tmp1]
ldr x0, [fp, #0x38] // [V07 tmp1]
@@ -68,7 +67,7 @@ G_M36739_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
str x0, [fp, #0x30] // [V08 tmp2]
ldr x0, [fp, #0x30] // [V08 tmp2]
@@ -128,7 +127,7 @@ G_M36739_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x3, [x3, #0x20]
blr x3
; gcrRegs -[x0-x2]
- ;; size=280 bbWeight=1 PerfScore 98.00
+ ;; size=276 bbWeight=1 PerfScore 97.50
G_M36739_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
@@ -174,7 +173,7 @@ G_M36739_IG04: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 444, prolog size 28, PerfScore 151.50, instruction count 111, allocated bytes for code 444 (MethodHash=fb1a707c) for method System.Xml.Serialization.TypeScope:AddPrimitive(System.Type,System.String,System.String,int) (Tier0)
+; Total bytes of code 440, prolog size 28, PerfScore 151.00, instruction count 110, allocated bytes for code 440 (MethodHash=fb1a707c) for method System.Xml.Serialization.TypeScope:AddPrimitive(System.Type,System.String,System.String,int) (Tier0)
; ============================================================
Unwind Info:
@@ -185,7 +184,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 111 (0x0006f) Actual length = 444 (0x0001bc)
+ Function Length : 110 (0x0006e) Actual length = 440 (0x0001b8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.60%) : 10965.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
@@ -32,8 +32,7 @@ G_M1602_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #70
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -107,7 +106,7 @@ G_M1602_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x3]
cbz w0, G_M1602_IG06
mov w0, #1
- ;; size=280 bbWeight=1 PerfScore 73.50
+ ;; size=276 bbWeight=1 PerfScore 73.00
G_M1602_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x50
ret lr
@@ -224,7 +223,7 @@ G_M1602_IG09: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 668, prolog size 16, PerfScore 181.50, instruction count 167, allocated bytes for code 668 (MethodHash=7785f9bd) for method Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
+; Total bytes of code 664, prolog size 16, PerfScore 181.00, instruction count 166, allocated bytes for code 664 (MethodHash=7785f9bd) for method Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTime(Newtonsoft.Json.Utilities.StringReference,int,System.String,System.Globalization.CultureInfo,byref):ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -235,7 +234,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 167 (0x000a7) Actual length = 668 (0x00029c)
+ Function Length : 166 (0x000a6) Actual length = 664 (0x000298)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.windows.arm64.checked.mch
-20 (-38.46%) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
@@ -14,23 +14,18 @@ G_M26209_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M26209_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M26209_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=f311999e) for method System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 73.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M9075_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M9075_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M9075_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=4dc8dc8c) for method System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 357.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M4853_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M4853_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M4853_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.74%) : 7365.dasm - ProtoBuf.Serializers.RepeatedSerializers:Add(System.Type,System.Func`4[System.Type,System.Type,System.Type[],System.Reflection.MemberInfo],ubyte) (Tier0)
@@ -41,9 +41,7 @@ G_M17119_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov w1, #11
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
+ bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE_NOCTOR
ldr x0, [fp, #0x70] // [V00 arg0]
; gcrRegs +[x0]
cbnz x0, G_M17119_IG03
@@ -57,7 +55,7 @@ G_M17119_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1]
blr x1
; gcr arg pop 0
- ;; size=60 bbWeight=1 PerfScore 13.00
+ ;; size=56 bbWeight=1 PerfScore 12.50
G_M17119_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
@@ -82,7 +80,7 @@ G_M17119_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
str x0, [fp, #0x30] // [V09 tmp1]
@@ -239,7 +237,7 @@ G_M17119_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 540, prolog size 48, PerfScore 171.50, instruction count 135, allocated bytes for code 540 (MethodHash=02bebd20) for method ProtoBuf.Serializers.RepeatedSerializers:Add(System.Type,System.Func`4[System.Type,System.Type,System.Type[],System.Reflection.MemberInfo],ubyte) (Tier0)
+; Total bytes of code 536, prolog size 48, PerfScore 171.00, instruction count 134, allocated bytes for code 536 (MethodHash=02bebd20) for method ProtoBuf.Serializers.RepeatedSerializers:Add(System.Type,System.Func`4[System.Type,System.Type,System.Type[],System.Reflection.MemberInfo],ubyte) (Tier0)
; ============================================================
Unwind Info:
@@ -250,7 +248,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 115 (0x00073) Actual length = 460 (0x0001cc)
+ Function Length : 114 (0x00072) Actual length = 456 (0x0001c8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 6302.dasm - System.Reflection.SignatureTypeExtensions:MatchesParameterTypeExactly(System.Type,System.Reflection.ParameterInfo):ubyte (Tier1)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 4, 3.50) ref -> x20 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T01] ( 4, 4 ) ref -> x20 class-hnd single-def <System.Type>
; V01 arg1 [V01,T00] ( 6, 4 ) ref -> x19 class-hnd single-def <System.Reflection.ParameterInfo>
-; V02 loc0 [V02,T02] ( 3, 2.50) ref -> x21 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T03] ( 2, 1.50) ref -> x21 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T03] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
+; V04 tmp1 [V04,T02] ( 2, 2 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -31,11 +31,11 @@ G_M22240_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
mov x21, x0
; gcrRegs +[x21]
- cbz x21, G_M22240_IG05
+ cbz x20, G_M22240_IG05
;; size=28 bbWeight=1 PerfScore 4.50
G_M22240_IG03: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
@@ -60,8 +60,8 @@ G_M22240_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
br x2
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1 x21] +[x19-x20]
+G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1 x21] +[x19]
mov x0, x19
; gcrRegs +[x0]
ldr x1, [x19]
@@ -69,7 +69,7 @@ G_M22240_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180
ldr x1, [x1, #0x38]
blr x1
; gcrRegs -[x19]
- cmp x0, x20
+ cmp x0, #0
cset x0, eq
; gcrRegs -[x0]
;; size=28 bbWeight=0.50 PerfScore 5.75
+0 (0.00%) : 10262.dasm - System.Threading.ThreadPoolWorkQueue:DispatchWorkItem(System.Object,System.Threading.Thread) (Tier1)
@@ -8,9 +8,9 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <System.Object>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <System.Object>
; V01 arg1 [V01,T01] ( 3, 2.50) ref -> x20 class-hnd single-def <System.Threading.Thread>
-; V02 loc0 [V02,T02] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T02] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -33,10 +33,10 @@ G_M60059_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M60059_IG05
+ cbz x19, G_M60059_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M60059_IG03: ; bbWeight=0.50, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -52,15 +52,14 @@ G_M60059_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0-x1 x20] +[x19]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0-x1 x20]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFINTERFACE
- ; gcrRegs -[x1] +[x0]
+ bl CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs +[x0]
; gcr arg pop 0
cbnz x0, G_M60059_IG06
movz x1, #8
@@ -75,9 +74,8 @@ G_M60059_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
; gcrRegs -[x0]
; gcr arg pop 0
;; size=60 bbWeight=0.50 PerfScore 5.75
-G_M60059_IG06: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov x0, x19
- ; gcrRegs +[x0]
+G_M60059_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov x0, xzr
movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
coreclr_tests.run.windows.arm64.checked.mch
-44 (-68.75%) : 523.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
@@ -18,30 +18,15 @@ G_M17591_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M17591_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M17591_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #1
;; size=4 bbWeight=1 PerfScore 0.50
-G_M17591_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M17591_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M17591_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #15
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M17591_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 64, prolog size 8, PerfScore 9.50, instruction count 16, allocated bytes for code 64 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
+; Total bytes of code 20, prolog size 8, PerfScore 4.00, instruction count 5, allocated bytes for code 20 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -52,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 16 (0x00010) Actual length = 64 (0x000040)
+ Function Length : 5 (0x00005) Actual length = 20 (0x000014)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-52.38%) : 184.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
@@ -8,56 +8,39 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T02] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V02 cse1 [V02,T00] ( 4, 4 ) long -> x19 "CSE - aggressive"
-; V03 rat0 [V03,T01] ( 2, 2 ) long -> x0 "Spilling to split statement for tree"
+; V01 cse0 [V01,T00] ( 3, 3 ) long -> x0 "CSE - aggressive"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M63990_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
-G_M63990_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x19, #0xD1FFAB1E
- movk x19, #0xD1FFAB1E LSL #16
- movk x19, #0xD1FFAB1E LSL #32
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M63990_IG05
- ;; size=36 bbWeight=1 PerfScore 7.50
-G_M63990_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [x19, #0x44]
- add w0, w0, #1
- str w0, [x19, #0x44]
- ;; size=12 bbWeight=1 PerfScore 4.50
-G_M63990_IG04: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M63990_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr w1, [x0, #0x44]
+ add w1, w1, #1
+ str w1, [x0, #0x44]
+ ;; size=24 bbWeight=1 PerfScore 6.00
+G_M63990_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
-G_M63990_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #14
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M63990_IG03
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 84, prolog size 12, PerfScore 18.50, instruction count 21, allocated bytes for code 84 (MethodHash=4db60609) for method DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 9.50, instruction count 10, allocated bytes for code 40 (MethodHash=4db60609) for method DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +48,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-44 (-42.31%) : 6.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
@@ -13,54 +13,37 @@
;
; Lcl frame size = 0
-G_M16369_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M16369_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M16369_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M16369_IG07
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M16369_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldapr x0, [x0]
; gcrRegs +[x0]
- cbnz x0, G_M16369_IG06
+ cbnz x0, G_M16369_IG05
;; size=20 bbWeight=1 PerfScore 5.50
-G_M16369_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M16369_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
;; size=16 bbWeight=0.50 PerfScore 2.25
-G_M16369_IG05: ; bbWeight=0.50, epilog, nogc, extend
+G_M16369_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
br x0
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M16369_IG06: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M16369_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs +[x0]
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M16369_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #18
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- b G_M16369_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 104, prolog size 8, PerfScore 16.75, instruction count 26, allocated bytes for code 104 (MethodHash=9e38c00e) for method System.Console:get_Out():System.IO.TextWriter (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 11.25, instruction count 15, allocated bytes for code 60 (MethodHash=9e38c00e) for method System.Console:get_Out():System.IO.TextWriter (FullOpts)
; ============================================================
Unwind Info:
@@ -71,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-22.22%) : 597.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-; V01 loc0 [V01,T02] ( 3, 1.50) ref -> x0 class-hnd single-def <<unknown class>>
+; V01 loc0 [V01,T02] ( 2, 1 ) ref -> x0 class-hnd single-def <<unknown class>>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 cse0 [V03,T01] ( 3, 2.50) ref -> x1 "CSE - aggressive"
;
@@ -33,41 +33,33 @@ G_M2237_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M2237_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M2237_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbz x0, G_M2237_IG07
ldr w0, [x0, #0x10]
; gcrRegs -[x0]
- ;; size=24 bbWeight=0.50 PerfScore 3.25
+ ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M2237_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M2237_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w0, #1
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M2237_IG08: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
- ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 72, prolog size 8, PerfScore 12.25, instruction count 18, allocated bytes for code 72 (MethodHash=10e0f742) for method System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 10.50, instruction count 14, allocated bytes for code 56 (MethodHash=10e0f742) for method System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 3
+ Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -75,9 +67,6 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 2
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
-44 (-7.80%) : 574.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
@@ -57,21 +57,14 @@ G_M2789_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x21]
;; size=40 bbWeight=1 PerfScore 7.50
G_M2789_IG02: ; bbWeight=1, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr w1, [x1]
- tbz w1, #0, G_M2789_IG17
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M2789_IG03: ; bbWeight=1, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x0, [x1]
; gcrRegs +[x0]
- cbnz x0, G_M2789_IG05
+ cbnz x0, G_M2789_IG04
;; size=20 bbWeight=1 PerfScore 5.50
-G_M2789_IG04: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M2789_IG03: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov w1, w19
mov x0, xzr
@@ -81,9 +74,9 @@ G_M2789_IG04: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- b G_M2789_IG06
+ b G_M2789_IG05
;; size=36 bbWeight=0.50 PerfScore 4.00
-G_M2789_IG05: ; bbWeight=0.50, gcrefRegs=700001 {x0 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M2789_IG04: ; bbWeight=0.50, gcrefRegs=700001 {x0 x20 x21 x22}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
mov w1, w19
movz x11, #0xD1FFAB1E // code for <unknown method>
@@ -93,25 +86,25 @@ G_M2789_IG05: ; bbWeight=0.50, gcrefRegs=700001 {x0 x20 x21 x22}, byrefRe
blr x2
; gcrRegs -[x0]
;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M2789_IG06: ; bbWeight=1, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- cbz w0, G_M2789_IG16
+G_M2789_IG05: ; bbWeight=1, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+ cbz w0, G_M2789_IG15
;; size=4 bbWeight=1 PerfScore 1.00
-G_M2789_IG07: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- cbz x20, G_M2789_IG15
+G_M2789_IG06: ; bbWeight=0.50, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+ cbz x20, G_M2789_IG14
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M2789_IG08: ; bbWeight=0.47, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG07: ; bbWeight=0.47, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr w23, [x20, #0x08]
- cbz w23, G_M2789_IG15
+ cbz w23, G_M2789_IG14
;; size=8 bbWeight=0.47 PerfScore 1.86
-G_M2789_IG09: ; bbWeight=0.47, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG08: ; bbWeight=0.47, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
sxtw w24, w23
add w0, w24, #7
- tbnz w0, #31, G_M2789_IG18
+ tbnz w0, #31, G_M2789_IG16
bl <unknown method>
; gcrRegs +[x0]
mov x25, x0
; gcrRegs +[x25]
- cbnz x25, G_M2789_IG10
+ cbnz x25, G_M2789_IG09
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -123,10 +116,10 @@ G_M2789_IG09: ; bbWeight=0.47, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=
blr x2
; gcrRegs -[x0]
;; size=60 bbWeight=0.47 PerfScore 5.69
-G_M2789_IG10: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG09: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byrefRegs=0000 {}, byref, isz
ldr w0, [x25, #0x08]
cmp w0, w23
- bge G_M2789_IG11
+ bge G_M2789_IG10
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -139,7 +132,7 @@ G_M2789_IG10: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byref
blr x2
; gcrRegs -[x0]
;; size=48 bbWeight=0.47 PerfScore 5.69
-G_M2789_IG11: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG10: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byrefRegs=0000 {}, byref, isz
add x0, x25, #12
; byrRegs +[x0]
add x1, x20, #12
@@ -156,7 +149,7 @@ G_M2789_IG11: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byref
ldr w0, [x25, #0x08]
sub w0, w0, w24
cmp w0, #7
- bge G_M2789_IG12
+ bge G_M2789_IG11
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -169,7 +162,7 @@ G_M2789_IG11: ; bbWeight=0.47, gcrefRegs=2700000 {x20 x21 x22 x25}, byref
blr x2
; gcrRegs -[x0]
;; size=88 bbWeight=0.47 PerfScore 9.73
-G_M2789_IG12: ; bbWeight=0.47, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref
+G_M2789_IG11: ; bbWeight=0.47, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs=0000 {}, byref
add x0, x25, #12
; byrRegs +[x0]
sbfiz x1, x24, #1, #32
@@ -185,7 +178,7 @@ G_M2789_IG12: ; bbWeight=0.47, gcrefRegs=2600000 {x21 x22 x25}, byrefRegs
; gcrRegs +[x0]
; byrRegs -[x0]
;; size=44 bbWeight=0.47 PerfScore 5.69
-G_M2789_IG13: ; bbWeight=0.50, gcrefRegs=600001 {x0 x21 x22}, byrefRegs=0000 {}, byref
+G_M2789_IG12: ; bbWeight=0.50, gcrefRegs=600001 {x0 x21 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x25]
mov w1, w19
mov x2, x22
@@ -205,7 +198,7 @@ G_M2789_IG13: ; bbWeight=0.50, gcrefRegs=600001 {x0 x21 x22}, byrefRegs=0
ldr x2, [x2, #0x70]
ldr x2, [x2, #0x30]
;; size=56 bbWeight=0.50 PerfScore 8.75
-G_M2789_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M2789_IG13: ; bbWeight=0.50, epilog, nogc, extend
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
@@ -213,14 +206,14 @@ G_M2789_IG14: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x50
br x2
;; size=24 bbWeight=0.50 PerfScore 3.50
-G_M2789_IG15: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, gcvars, byref
+G_M2789_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=600000 {x21 x22}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- b G_M2789_IG13
+ b G_M2789_IG12
;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M2789_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M2789_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x21-x22]
ldr x25, [sp, #0x48]
ldp x23, x24, [sp, #0x38]
@@ -229,17 +222,7 @@ G_M2789_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.50
-G_M2789_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x20-x22]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #7
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M2789_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M2789_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20-x22]
+G_M2789_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -248,7 +231,7 @@ G_M2789_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 24, PerfScore 72.67, instruction count 141, allocated bytes for code 564 (MethodHash=bd4cf51a) for method CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
+; Total bytes of code 520, prolog size 24, PerfScore 67.17, instruction count 130, allocated bytes for code 520 (MethodHash=bd4cf51a) for method CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
; ============================================================
Unwind Info:
@@ -259,7 +242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 141 (0x0008d) Actual length = 564 (0x000234)
+ Function Length : 130 (0x00082) Actual length = 520 (0x000208)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-36 (-7.76%) : 367.dasm - Program:TestEntryPoint():int (FullOpts)
@@ -12,43 +12,41 @@
;* V01 loc1 [V01 ] ( 0, 0 ) int -> zero-ref single-def
;* V02 loc2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Program>
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodInfo>
-;* V04 loc4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
-; V05 loc5 [V05 ] ( 4, 4 ) struct (16) [fp+0x48] do-not-enreg[SBR] multireg-ret must-init <System.Decimal>
-; V06 loc6 [V06 ] ( 4, 4 ) struct (16) [fp+0x38] do-not-enreg[SBR] multireg-ret must-init <System.Decimal>
+; V04 loc4 [V04,T02] ( 5, 5 ) ref -> x19 class-hnd single-def <<unknown class>>
+; V05 loc5 [V05 ] ( 4, 4 ) struct (16) [fp+0x48] do-not-enreg[SBR] multireg-ret <System.Decimal>
+; V06 loc6 [V06 ] ( 4, 4 ) struct (16) [fp+0x38] do-not-enreg[SBR] multireg-ret <System.Decimal>
;* V07 loc7 [V07 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T01] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <Program>
-; V10 tmp2 [V10,T03] ( 3, 4.25) ref -> x1 single-def "CASTCLASS eval op1"
-; V11 tmp3 [V11,T12] ( 3, 1.25) long -> x2 "fgMakeTemp is creating a new local variable"
-; V12 tmp4 [V12,T00] ( 8, 12.75) ref -> x19 class-hnd "spilling QMark2" <<unknown class>>
-;* V13 tmp5 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
-;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
-; V15 tmp7 [V15 ] ( 10, 10.00) struct (16) [fp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-; V16 tmp8 [V16 ] ( 8, 12.00) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-; V17 tmp9 [V17,T13] ( 5, 1.00) int -> x0 "Inline return value spill temp"
-; V18 tmp10 [V18,T04] ( 2, 4 ) long -> x0 "impAppendStmt"
-; V19 tmp11 [V19,T05] ( 2, 2.00) long -> x0 "impAppendStmt"
-; V20 tmp12 [V20,T14] ( 3, 1.00) int -> x19 single-def "Inline stloc first use temp"
-; V21 tmp13 [V21,T15] ( 2, 0.00) long -> x0 "impAppendStmt"
-; V22 tmp14 [V22,T06] ( 2, 2 ) int -> [fp+0x48] do-not-enreg[] "field V05._flags (fldOffset=0x0)" P-DEP
-; V23 tmp15 [V23,T07] ( 2, 2 ) int -> [fp+0x4C] do-not-enreg[] "field V05._hi32 (fldOffset=0x4)" P-DEP
-; V24 tmp16 [V24,T08] ( 2, 2 ) long -> [fp+0x50] do-not-enreg[] "field V05._lo64 (fldOffset=0x8)" P-DEP
-; V25 tmp17 [V25,T09] ( 2, 2 ) int -> [fp+0x38] do-not-enreg[] "field V06._flags (fldOffset=0x0)" P-DEP
-; V26 tmp18 [V26,T10] ( 2, 2 ) int -> [fp+0x3C] do-not-enreg[] "field V06._hi32 (fldOffset=0x4)" P-DEP
-; V27 tmp19 [V27,T11] ( 2, 2 ) long -> [fp+0x40] do-not-enreg[] "field V06._lo64 (fldOffset=0x8)" P-DEP
-;* V28 tmp20 [V28 ] ( 0, 0 ) int -> zero-ref "field V13._flags (fldOffset=0x0)" P-DEP
-;* V29 tmp21 [V29 ] ( 0, 0 ) int -> zero-ref "field V13._hi32 (fldOffset=0x4)" P-DEP
-;* V30 tmp22 [V30 ] ( 0, 0 ) long -> zero-ref "field V13._lo64 (fldOffset=0x8)" P-DEP
-;* V31 tmp23 [V31 ] ( 0, 0 ) int -> zero-ref "field V14._flags (fldOffset=0x0)" P-DEP
-;* V32 tmp24 [V32 ] ( 0, 0 ) int -> zero-ref "field V14._hi32 (fldOffset=0x4)" P-DEP
-;* V33 tmp25 [V33 ] ( 0, 0 ) long -> zero-ref "field V14._lo64 (fldOffset=0x8)" P-DEP
-; V34 tmp26 [V34 ] ( 4, 2.50) int -> [fp+0x28] do-not-enreg[X] addr-exposed "field V15._flags (fldOffset=0x0)" P-DEP
-; V35 tmp27 [V35 ] ( 4, 2.50) int -> [fp+0x2C] do-not-enreg[X] addr-exposed "field V15._hi32 (fldOffset=0x4)" P-DEP
-; V36 tmp28 [V36 ] ( 4, 2.50) long -> [fp+0x30] do-not-enreg[X] addr-exposed "field V15._lo64 (fldOffset=0x8)" P-DEP
-; V37 tmp29 [V37 ] ( 4, 2.50) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V16._flags (fldOffset=0x0)" P-DEP
-; V38 tmp30 [V38 ] ( 3, 3.00) int -> [fp+0x1C] do-not-enreg[X] addr-exposed "field V16._hi32 (fldOffset=0x4)" P-DEP
-; V39 tmp31 [V39 ] ( 3, 3.00) long -> [fp+0x20] do-not-enreg[X] addr-exposed "field V16._lo64 (fldOffset=0x8)" P-DEP
-; V40 tmp32 [V40,T02] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
+; V09 tmp1 [V09,T00] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <Program>
+;* V10 tmp2 [V10 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
+;* V11 tmp3 [V11 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Decimal>
+; V12 tmp4 [V12 ] ( 10, 10.00) struct (16) [fp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
+; V13 tmp5 [V13 ] ( 8, 12.00) struct (16) [fp+0x18] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
+; V14 tmp6 [V14,T12] ( 5, 1.00) int -> x0 "Inline return value spill temp"
+; V15 tmp7 [V15,T04] ( 2, 4 ) long -> x0 "impAppendStmt"
+; V16 tmp8 [V16,T05] ( 2, 2.00) long -> x0 "impAppendStmt"
+; V17 tmp9 [V17,T13] ( 3, 1.00) int -> x19 single-def "Inline stloc first use temp"
+; V18 tmp10 [V18,T14] ( 2, 0.00) long -> x0 "impAppendStmt"
+; V19 tmp11 [V19,T06] ( 2, 2 ) int -> [fp+0x48] do-not-enreg[] "field V05._flags (fldOffset=0x0)" P-DEP
+; V20 tmp12 [V20,T07] ( 2, 2 ) int -> [fp+0x4C] do-not-enreg[] "field V05._hi32 (fldOffset=0x4)" P-DEP
+; V21 tmp13 [V21,T08] ( 2, 2 ) long -> [fp+0x50] do-not-enreg[] "field V05._lo64 (fldOffset=0x8)" P-DEP
+; V22 tmp14 [V22,T09] ( 2, 2 ) int -> [fp+0x38] do-not-enreg[] "field V06._flags (fldOffset=0x0)" P-DEP
+; V23 tmp15 [V23,T10] ( 2, 2 ) int -> [fp+0x3C] do-not-enreg[] "field V06._hi32 (fldOffset=0x4)" P-DEP
+; V24 tmp16 [V24,T11] ( 2, 2 ) long -> [fp+0x40] do-not-enreg[] "field V06._lo64 (fldOffset=0x8)" P-DEP
+;* V25 tmp17 [V25 ] ( 0, 0 ) int -> zero-ref "field V10._flags (fldOffset=0x0)" P-DEP
+;* V26 tmp18 [V26 ] ( 0, 0 ) int -> zero-ref "field V10._hi32 (fldOffset=0x4)" P-DEP
+;* V27 tmp19 [V27 ] ( 0, 0 ) long -> zero-ref "field V10._lo64 (fldOffset=0x8)" P-DEP
+;* V28 tmp20 [V28 ] ( 0, 0 ) int -> zero-ref "field V11._flags (fldOffset=0x0)" P-DEP
+;* V29 tmp21 [V29 ] ( 0, 0 ) int -> zero-ref "field V11._hi32 (fldOffset=0x4)" P-DEP
+;* V30 tmp22 [V30 ] ( 0, 0 ) long -> zero-ref "field V11._lo64 (fldOffset=0x8)" P-DEP
+; V31 tmp23 [V31 ] ( 4, 2.50) int -> [fp+0x28] do-not-enreg[X] addr-exposed "field V12._flags (fldOffset=0x0)" P-DEP
+; V32 tmp24 [V32 ] ( 4, 2.50) int -> [fp+0x2C] do-not-enreg[X] addr-exposed "field V12._hi32 (fldOffset=0x4)" P-DEP
+; V33 tmp25 [V33 ] ( 4, 2.50) long -> [fp+0x30] do-not-enreg[X] addr-exposed "field V12._lo64 (fldOffset=0x8)" P-DEP
+; V34 tmp26 [V34 ] ( 4, 2.50) int -> [fp+0x18] do-not-enreg[X] addr-exposed "field V13._flags (fldOffset=0x0)" P-DEP
+; V35 tmp27 [V35 ] ( 3, 3.00) int -> [fp+0x1C] do-not-enreg[X] addr-exposed "field V13._hi32 (fldOffset=0x4)" P-DEP
+; V36 tmp28 [V36 ] ( 3, 3.00) long -> [fp+0x20] do-not-enreg[X] addr-exposed "field V13._lo64 (fldOffset=0x8)" P-DEP
+; V37 tmp29 [V37,T01] ( 3, 6 ) ref -> x0 single-def "argument with side effect"
+; V38 tmp30 [V38,T03] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
;
; Lcl frame size = 72
@@ -56,14 +54,12 @@ G_M13170_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x60]!
str x19, [sp, #0x58]
mov fp, sp
- stp xzr, xzr, [fp, #0x48] // [V05 loc5], [V05 loc5+0x08]
- stp xzr, xzr, [fp, #0x38] // [V06 loc6], [V06 loc6+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M13170_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
mov x19, x0
; gcrRegs +[x19]
@@ -100,15 +96,16 @@ G_M13170_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x2 x19]
mov x1, x0
; gcrRegs +[x1]
- mov x19, x1
+ movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION
+ ; gcrRegs -[x1] +[x0]
+ mov x19, x0
; gcrRegs +[x19]
- cbnz x19, G_M13170_IG10
- ;; size=140 bbWeight=1 PerfScore 30.00
-G_M13170_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0-x1]
mov w1, #3
ldr x0, [x19, #0x08]
- ; gcrRegs +[x0]
ldr x2, [x19, #0x18]
blr x2
; gcrRegs -[x0]
@@ -120,104 +117,85 @@ G_M13170_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blr x2
; gcrRegs -[x0 x19]
stp x0, x1, [fp, #0x38] // [V06 loc6], [V06 loc6+0x08]
- ldr w0, [fp, #0x48] // [V22 tmp14]
- str w0, [fp, #0x28] // [V34 tmp26]
- ldr w0, [fp, #0x4C] // [V23 tmp15]
- str w0, [fp, #0x2C] // [V35 tmp27]
- ldr x0, [fp, #0x50] // [V24 tmp16]
- str x0, [fp, #0x30] // [V36 tmp28]
- ldr w0, [fp, #0x38] // [V25 tmp17]
- str w0, [fp, #0x18] // [V37 tmp29]
- ldr w0, [fp, #0x3C] // [V26 tmp18]
- str w0, [fp, #0x1C] // [V38 tmp30]
- ldr x0, [fp, #0x40] // [V27 tmp19]
- str x0, [fp, #0x20] // [V39 tmp31]
- ldr x0, [fp, #0x20] // [V39 tmp31]
- ldr w1, [fp, #0x1C] // [V38 tmp30]
+ ldr w0, [fp, #0x48] // [V19 tmp11]
+ str w0, [fp, #0x28] // [V31 tmp23]
+ ldr w0, [fp, #0x4C] // [V20 tmp12]
+ str w0, [fp, #0x2C] // [V32 tmp24]
+ ldr x0, [fp, #0x50] // [V21 tmp13]
+ str x0, [fp, #0x30] // [V33 tmp25]
+ ldr w0, [fp, #0x38] // [V22 tmp14]
+ str w0, [fp, #0x18] // [V34 tmp26]
+ ldr w0, [fp, #0x3C] // [V23 tmp15]
+ str w0, [fp, #0x1C] // [V35 tmp27]
+ ldr x0, [fp, #0x40] // [V24 tmp16]
+ str x0, [fp, #0x20] // [V36 tmp28]
+ ldr x0, [fp, #0x20] // [V36 tmp28]
+ ldr w1, [fp, #0x1C] // [V35 tmp27]
orr x0, x0, x1
- cbz x0, G_M13170_IG08
- ;; size=104 bbWeight=1 PerfScore 40.50
-G_M13170_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V36 tmp28]
- ldr w1, [fp, #0x2C] // [V35 tmp27]
+ cbz x0, G_M13170_IG07
+ ;; size=256 bbWeight=1 PerfScore 72.00
+G_M13170_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ldr x0, [fp, #0x30] // [V33 tmp25]
+ ldr w1, [fp, #0x2C] // [V32 tmp24]
orr x0, x0, x1
- cbz x0, G_M13170_IG14
- ldr w0, [fp, #0x28] // [V34 tmp26]
+ cbz x0, G_M13170_IG11
+ ldr w0, [fp, #0x28] // [V31 tmp23]
asr w0, w0, #31
- ldr w1, [fp, #0x18] // [V37 tmp29]
+ ldr w1, [fp, #0x18] // [V34 tmp26]
sub w19, w0, w1, ASR #31
- cbnz w19, G_M13170_IG15
- add x0, fp, #40 // [V15 tmp7]
- add x1, fp, #24 // [V16 tmp8]
+ cbnz w19, G_M13170_IG12
+ add x0, fp, #40 // [V12 tmp4]
+ add x1, fp, #24 // [V13 tmp5]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
;; size=64 bbWeight=0.50 PerfScore 9.50
-G_M13170_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cbnz w0, G_M13170_IG12
+G_M13170_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cbnz w0, G_M13170_IG09
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M13170_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13170_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #100
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M13170_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M13170_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M13170_IG08: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ldr x0, [fp, #0x30] // [V36 tmp28]
- ldr w1, [fp, #0x2C] // [V35 tmp27]
+G_M13170_IG07: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ldr x0, [fp, #0x30] // [V33 tmp25]
+ ldr w1, [fp, #0x2C] // [V32 tmp24]
orr x0, x0, x1
- cbz x0, G_M13170_IG06
+ cbz x0, G_M13170_IG05
;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M13170_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr w0, [fp, #0x28] // [V34 tmp26]
+G_M13170_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ldr w0, [fp, #0x28] // [V31 tmp23]
asr w0, w0, #31
orr w0, w0, #1
- b G_M13170_IG05
+ b G_M13170_IG04
;; size=16 bbWeight=0 PerfScore 0.00
-G_M13170_IG10: ; bbWeight=0.25, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x1 x19]
- ldr x0, [x19]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x0, x2
- beq G_M13170_IG03
- ;; size=24 bbWeight=0.25 PerfScore 1.50
-G_M13170_IG11: ; bbWeight=0.12, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x0, x2
- bl CORINFO_HELP_CHKCASTANY
- ; gcrRegs -[x1] +[x0]
- mov x19, x0
- ; gcrRegs +[x19]
- b G_M13170_IG03
- ;; size=16 bbWeight=0.12 PerfScore 0.38
-G_M13170_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
+G_M13170_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movn w0, #0
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M13170_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M13170_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M13170_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ldr w0, [fp, #0x18] // [V37 tmp29]
+G_M13170_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ldr w0, [fp, #0x18] // [V34 tmp26]
asr w0, w0, #31
orr w0, w0, #1
...
libraries.crossgen2.windows.arm64.checked.mch
-28 (-36.84%) : 21951.dasm - System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
@@ -9,53 +9,46 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> x19 this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
+; V00 this [V00,T00] ( 4, 4 ) ref -> x0 this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M14591_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- mov x19, x0
- ; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00
-G_M14591_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- blr x0
+ ;; size=8 bbWeight=1 PerfScore 1.50
+G_M14591_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x0]
+ ldrsb wzr, [x0]
+ add x0, x0, #24
+ ; gcrRegs -[x0]
; byrRegs +[x0]
- ; gcr arg pop 0
- ldrsb wzr, [x19]
- add x0, x19, #24
adrp x1, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x1, x1, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x1]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x2, [x11]
- ;; size=48 bbWeight=1 PerfScore 16.50
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M14591_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
br x2
; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 76, prolog size 16, PerfScore 23.50, instruction count 19, allocated bytes for code 76 (MethodHash=2830c700) for method System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 15.00, instruction count 12, allocated bytes for code 48 (MethodHash=2830c700) for method System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -63,10 +56,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-28 (-35.00%) : 21952.dasm - System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
@@ -9,55 +9,46 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) ref -> x19 this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
+; V00 this [V00,T00] ( 5, 5 ) ref -> x2 this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M28675_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
+ stp fp, lr, [sp, #-0x10]!
mov fp, sp
- mov x19, x0
- ; gcrRegs +[x19]
- ;; size=16 bbWeight=1 PerfScore 3.00
-G_M28675_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
- add x11, x11, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x11]
- blr x0
+ mov x2, x0
+ ; gcrRegs +[x2]
+ ;; size=12 bbWeight=1 PerfScore 2.00
+G_M28675_IG02: ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
+ ldrsb wzr, [x2]
+ add x0, x2, #24
; byrRegs +[x0]
- ; gcr arg pop 0
- ldrsb wzr, [x19]
- add x0, x19, #24
adrp x1, [HIGH RELOC #0xD1FFAB1E] // <unknown class>
add x1, x1, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x1]
- mov x2, x19
- ; gcrRegs +[x2]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x3, [x11]
- ;; size=52 bbWeight=1 PerfScore 17.00
+ ;; size=32 bbWeight=1 PerfScore 11.50
G_M28675_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
+ ldp fp, lr, [sp], #0x10
br x3
; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 80, prolog size 16, PerfScore 24.00, instruction count 20, allocated bytes for code 80 (MethodHash=2d3d8ffc) for method System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
+; Total bytes of code 52, prolog size 12, PerfScore 15.50, instruction count 13, allocated bytes for code 52 (MethodHash=2d3d8ffc) for method System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 20 (0x00014) Actual length = 80 (0x000050)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +56,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 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
+ 81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
E4 end
E4 end
-12 (-5.88%) : 166045.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
@@ -15,8 +15,8 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V04 tmp2 [V04,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp3 [V05,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V06 cse0 [V06,T03] ( 4, 3 ) byref -> x0 "CSE - aggressive"
-; V07 cse1 [V07,T02] ( 5, 3.50) int -> x1 "CSE - aggressive"
+; V06 cse0 [V06,T03] ( 4, 3 ) int -> x11 "CSE - aggressive"
+; V07 cse1 [V07,T02] ( 5, 3.50) int -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -34,25 +34,24 @@ G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x0
; byrRegs +[x0]
ldrh w11, [x0]
- uxth w1, w20
- cmp w11, w1
+ uxth w0, w20
+ ; byrRegs -[x0]
+ cmp w11, w0
beq G_M44169_IG04
;; size=32 bbWeight=1 PerfScore 10.00
-G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- cmp w1, #47
+G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp w0, #47
bne G_M44169_IG07
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ldrh w11, [x0]
- uxth w2, w19
- cmp w11, w2
+G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ uxth w1, w19
+ cmp w11, w1
beq G_M44169_IG05
- uxth w11, w19
- cmp w11, #47
+ uxth w1, w19
+ cmp w1, #47
bne G_M44169_IG07
- ;; size=28 bbWeight=0.50 PerfScore 3.50
+ ;; size=24 bbWeight=0.50 PerfScore 2.00
G_M44169_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x0]
mov w0, #1
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
@@ -60,13 +59,9 @@ G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref, isz
- ; byrRegs +[x0]
- ldrh w0, [x0]
- ; byrRegs -[x0]
- cmp w0, #47
+G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ cmp w11, #47
beq G_M44169_IG09
- mov w0, w1
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
@@ -79,15 +74,15 @@ G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
blr x1
cmp w20, w0
cset x0, eq
- ;; size=64 bbWeight=0.50 PerfScore 8.50
+ ;; size=56 bbWeight=0.50 PerfScore 6.75
G_M44169_IG08: ; bbWeight=0.50, epilog, nogc, extend
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
G_M44169_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- uxth w0, w19
- cmp w1, w0
+ uxth w1, w19
+ cmp w0, w1
cset x0, eq
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
@@ -96,7 +91,7 @@ G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=12 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 204, prolog size 12, PerfScore 31.75, instruction count 51, allocated bytes for code 204 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
+; Total bytes of code 192, prolog size 12, PerfScore 28.50, instruction count 48, allocated bytes for code 192 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -107,7 +102,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 48 (0x00030) Actual length = 192 (0x0000c0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.50%) : 168839.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -15,7 +15,7 @@
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 2, 2 ) int -> x2 "argument with side effect"
; V05 tmp2 [V05,T03] ( 2, 2 ) ref -> x0 single-def "argument with side effect"
-; V06 cse0 [V06,T05] ( 3, 1.50) byref -> x0 "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 1.50) int -> x2 "CSE - moderate"
;
; Lcl frame size = 8
@@ -53,7 +53,6 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
ldrh w2, [x0]
cmp w2, #47
bne G_M45118_IG04
- ldrh w2, [x0]
mov x0, x19
; gcrRegs +[x0]
; byrRegs -[x0]
@@ -73,7 +72,7 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; gcrRegs -[x1 x20]
mov x21, x0
; gcrRegs +[x21]
- ;; size=84 bbWeight=0.50 PerfScore 13.75
+ ;; size=80 bbWeight=0.50 PerfScore 12.25
G_M45118_IG04: ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x0, x21
@@ -86,7 +85,7 @@ G_M45118_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=16 bbWeight=1 PerfScore 5.00
-; Total bytes of code 160, prolog size 16, PerfScore 31.25, instruction count 40, allocated bytes for code 160 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 156, prolog size 16, PerfScore 29.75, instruction count 39, allocated bytes for code 156 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -97,7 +96,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ 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)
+0 (0.00%) : 23387.dasm - System.Globalization.CalendarData:SystemSupportsTaiwaneseCalendar():ubyte (FullOpts)
@@ -11,7 +11,6 @@
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V02 cse0 [V02,T00] ( 2, 2 ) byref -> x0 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -28,25 +27,25 @@ G_M37466_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcr arg pop 0
ldrb w0, [x0, #0xD1FFAB1E]
; byrRegs -[x0]
- cbnz w0, G_M37466_IG05
+ cbz w0, G_M37466_IG05
;; size=24 bbWeight=1 PerfScore 9.00
G_M37466_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, #1
- ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M37466_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
- ret lr
- ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M37466_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M37466_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M37466_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
br x0
; gcr arg pop 0
;; size=8 bbWeight=0.50 PerfScore 1.00
+G_M37466_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov w0, #1
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M37466_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
+ ret lr
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
; Total bytes of code 64, prolog size 8, PerfScore 14.75, instruction count 16, allocated bytes for code 64 (MethodHash=f28a6da5) for method System.Globalization.CalendarData:SystemSupportsTaiwaneseCalendar():ubyte (FullOpts)
; ============================================================
+0 (0.00%) : 28071.dasm - .$Array:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> x19 "value for stsfld with typeinit"
;
; Lcl frame size = 8
@@ -23,13 +22,15 @@ G_M35347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
blr x0
- sxtw w19, w0
+ ; byrRegs +[x0]
+ mov x19, x0
+ ; byrRegs +[x19]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x0, [x11]
+ ; byrRegs -[x0]
blr x0
- ; byrRegs +[x0]
- str w19, [x0, #0xD1FFAB1E]
+ str w0, [x19, #0xD1FFAB1E]
;; size=40 bbWeight=1 PerfScore 11.50
G_M35347_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x19, [sp, #0x18]
libraries.pmi.windows.arm64.checked.mch
-44 (-57.89%) : 769.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.ComTypeDesc:get_EmptyEvents():System.Collections.Generic.Dictionary`2System.String,Microsoft.CSharp.RuntimeBinder.ComInterop.ComEventDesc
@@ -15,35 +15,19 @@ G_M9741_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M9741_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M9741_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M9741_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M9741_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M9741_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M9741_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M9741_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #77
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M9741_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=bd7cd9f2) for method Microsoft.CSharp.RuntimeBinder.ComInterop.ComTypeDesc:get_EmptyEvents():System.Collections.Generic.Dictionary`2[System.String,Microsoft.CSharp.RuntimeBinder.ComInterop.ComEventDesc] (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=bd7cd9f2) for method Microsoft.CSharp.RuntimeBinder.ComInterop.ComTypeDesc:get_EmptyEvents():System.Collections.Generic.Dictionary`2[System.String,Microsoft.CSharp.RuntimeBinder.ComInterop.ComEventDesc] (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2213.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScopeSystem.__Canon:System.IDisposable:this (FullOpts)
@@ -19,35 +19,19 @@ G_M13823_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M13823_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M13823_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M13823_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13823_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M13823_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M13823_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M13823_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #4
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M13823_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=2cd5ca00) for method Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[System.__Canon](System.__Canon):System.IDisposable:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=2cd5ca00) for method Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[System.__Canon](System.__Canon):System.IDisposable:this (FullOpts)
; ============================================================
Unwind Info:
@@ -58,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2217.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScopedouble:System.IDisposable:this (FullOpts)
@@ -18,35 +18,19 @@ G_M59263_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M59263_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M59263_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M59263_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M59263_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M59263_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M59263_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M59263_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #4
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M59263_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=88e01880) for method Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[double](double):System.IDisposable:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=88e01880) for method Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[double](double):System.IDisposable:this (FullOpts)
; ============================================================
Unwind Info:
@@ -57,7 +41,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-40 (-6.67%) : 4104.dasm - System.MemoryExtensions:Trimshort:System.ReadOnlyMemory`1short
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 5, 5 ) struct (16) [fp+0x28] do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[short]>
-; V01 arg1 [V01,T04] ( 3, 3 ) short -> x19 single-def
+; V01 arg1 [V01,T03] ( 3, 3 ) short -> x19 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref <System.ReadOnlySpan`1[short]>
; V03 loc1 [V03,T06] ( 4, 4 ) int -> x25
; V04 loc2 [V04,T10] ( 3, 3 ) int -> x19
@@ -17,7 +17,7 @@
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlyMemory`1[short]>
;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[short]>
; V08 tmp3 [V08,T05] ( 6, 4 ) byref -> x23 "Inline stloc first use temp"
-; V09 tmp4 [V09,T03] ( 7, 5 ) int -> x24 "Inline stloc first use temp"
+; V09 tmp4 [V09,T02] ( 7, 5 ) int -> x24 "Inline stloc first use temp"
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[short]>
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
@@ -60,7 +60,7 @@
; V49 tmp44 [V49,T00] ( 13, 8.50) ref -> x20 single-def "V00.[000..008)"
; V50 tmp45 [V50,T16] ( 3, 2.50) int -> x21 "V00.[008..012)"
; V51 tmp46 [V51,T08] ( 4, 3 ) int -> x22 "V00.[012..016)"
-; V52 cse0 [V52,T02] ( 12, 6 ) ref -> x1 multi-def "CSE - aggressive"
+; V52 cse0 [V52,T04] ( 9, 4.50) ref -> x1 multi-def "CSE - aggressive"
; V53 cse1 [V53,T12] ( 3, 3 ) int -> x19 "CSE - aggressive"
;
; Lcl frame size = 40
@@ -83,7 +83,7 @@ G_M25907_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov x23, xzr
; byrRegs +[x23]
mov w24, wzr
- cbz x20, G_M25907_IG08
+ cbz x20, G_M25907_IG07
;; size=20 bbWeight=1 PerfScore 6.00
G_M25907_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x23]
@@ -96,7 +96,7 @@ G_M25907_IG03: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
cbnz x0, G_M25907_IG04
movz x1, #8
@@ -114,32 +114,18 @@ G_M25907_IG04: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
add x23, x20, #16
; byrRegs +[x23]
ldr w24, [x20, #0x08]
- b G_M25907_IG07
+ b G_M25907_IG06
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M25907_IG05: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25907_IG05: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; byrRegs -[x23]
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M25907_IG06
- movz x1, #8
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0]
- ;; size=60 bbWeight=0.50 PerfScore 5.75
-G_M25907_IG06: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
mov x0, x20
- ; gcrRegs +[x0]
ldr x1, [x20]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x28]
@@ -149,23 +135,23 @@ G_M25907_IG06: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
mov x23, x0
; byrRegs +[x23]
mov w24, w1
- ;; size=28 bbWeight=0.50 PerfScore 5.75
-G_M25907_IG07: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
+G_M25907_IG06: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
; byrRegs -[x0]
and w0, w21, #0xD1FFAB1E
mov w0, w0
add x1, x0, w22, UXTW
mov w2, w24
cmp x1, x2
- bhi G_M25907_IG14
+ bhi G_M25907_IG13
lsl x0, x0, #1
add x23, x23, x0
sxtw w24, w22
;; size=36 bbWeight=0.50 PerfScore 3.00
-G_M25907_IG08: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
- tbz w24, #31, G_M25907_IG10
+G_M25907_IG07: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
+ tbz w24, #31, G_M25907_IG09
;; size=4 bbWeight=1 PerfScore 1.00
-G_M25907_IG09: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref
+G_M25907_IG08: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -178,7 +164,7 @@ G_M25907_IG09: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=800000
blr x2
; gcrRegs -[x0]
;; size=36 bbWeight=0.50 PerfScore 3.75
-G_M25907_IG10: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
+G_M25907_IG09: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=800000 {x23}, byref, isz
mov x0, x23
; byrRegs +[x0]
mov w1, w24
@@ -207,32 +193,32 @@ G_M25907_IG10: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=800000 {x2
add x1, x1, w19, UXTW
mov w0, w22
cmp x1, x0
- bhi G_M25907_IG15
+ bhi G_M25907_IG14
add w21, w21, w25
- cbz x20, G_M25907_IG12
+ cbz x20, G_M25907_IG11
;; size=108 bbWeight=1 PerfScore 21.00
-G_M25907_IG11: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M25907_IG10: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M25907_IG12
+ cbnz x0, G_M25907_IG11
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
cmp x0, #0
cset x0, ne
; gcrRegs -[x0]
tst w0, #255
- bne G_M25907_IG12
+ bne G_M25907_IG11
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -245,13 +231,13 @@ G_M25907_IG11: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
blr x2
; gcrRegs -[x0]
;; size=96 bbWeight=0.50 PerfScore 8.50
-G_M25907_IG12: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M25907_IG11: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
str x20, [fp, #0x18] // [V46 tmp41]
stp w21, w19, [fp, #0x20] // [V47 tmp42], [V48 tmp43]
ldp x0, x1, [fp, #0x18] // [V25 tmp20], [V25 tmp20+0x08]
; gcrRegs +[x0]
;; size=12 bbWeight=1 PerfScore 5.00
-G_M25907_IG13: ; bbWeight=1, epilog, nogc, extend
+G_M25907_IG12: ; bbWeight=1, epilog, nogc, extend
ldr x25, [sp, #0x68]
ldp x23, x24, [sp, #0x58]
ldp x21, x22, [sp, #0x48]
@@ -259,7 +245,7 @@ G_M25907_IG13: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x70
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
-G_M25907_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M25907_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x20]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
@@ -268,7 +254,7 @@ G_M25907_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M25907_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25907_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
@@ -278,7 +264,7 @@ G_M25907_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 600, prolog size 28, PerfScore 86.50, instruction count 150, allocated bytes for code 600 (MethodHash=739e9acc) for method System.MemoryExtensions:Trim[short](System.ReadOnlyMemory`1[short],short):System.ReadOnlyMemory`1[short] (FullOpts)
+; Total bytes of code 560, prolog size 28, PerfScore 82.25, instruction count 140, allocated bytes for code 560 (MethodHash=739e9acc) for method System.MemoryExtensions:Trim[short](System.ReadOnlyMemory`1[short],short):System.ReadOnlyMemory`1[short] (FullOpts)
; ============================================================
Unwind Info:
@@ -289,7 +275,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 150 (0x00096) Actual length = 600 (0x000258)
+ Function Length : 140 (0x0008c) Actual length = 560 (0x000230)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-5.82%) : 4169.dasm - System.MemoryExtensions:Trimubyte:System.Memory`1ubyte
@@ -77,7 +77,7 @@
; V66 tmp61 [V66,T22] ( 2, 1.50) int -> [fp+0x28] do-not-enreg[] "field V33._index (fldOffset=0x8)" P-DEP
; V67 tmp62 [V67,T23] ( 2, 1.50) int -> [fp+0x2C] do-not-enreg[] "field V33._length (fldOffset=0xc)" P-DEP
; V68 tmp63 [V68,T09] ( 4, 2 ) struct (16) [fp+0x10] do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.Memory`1[ubyte]>
-; V69 cse0 [V69,T01] ( 14, 7 ) ref -> x24 multi-def "CSE - aggressive"
+; V69 cse0 [V69,T01] ( 11, 5.50) ref -> x24 multi-def "CSE - aggressive"
;
; Lcl frame size = 64
@@ -98,7 +98,7 @@ G_M17637_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=48 bbWeight=1 PerfScore 9.50
G_M17637_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cmp w19, #1
- ble G_M17637_IG13
+ ble G_M17637_IG12
;; size=8 bbWeight=1 PerfScore 1.50
G_M17637_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
mov x21, xzr
@@ -106,7 +106,7 @@ G_M17637_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}
mov w22, wzr
ldr x23, [fp, #0x40] // [V00 arg0]
; gcrRegs +[x23]
- cbz x23, G_M17637_IG08
+ cbz x23, G_M17637_IG07
ldr x1, [x23]
ldr w1, [x1]
tst w1, #0xD1FFAB1E
@@ -116,7 +116,7 @@ G_M17637_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; byrRegs -[x21]
cbnz x0, G_M17637_IG04
@@ -137,34 +137,18 @@ G_M17637_IG04: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=100000
add x21, x23, #16
; byrRegs +[x21]
ldr w22, [x23, #0x08]
- b G_M17637_IG07
+ b G_M17637_IG06
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M17637_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=100000 {x20}, byref, isz
+G_M17637_IG05: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=100000 {x20}, byref
; byrRegs -[x21]
mov x1, x23
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M17637_IG06
- movz x24, #8
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- mov x0, x24
- mov x1, x24
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- ;; size=64 bbWeight=0.50 PerfScore 6.00
-G_M17637_IG06: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=100000 {x20}, byref
mov x0, x23
- ; gcrRegs +[x0]
ldr x1, [x23]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x28]
@@ -174,8 +158,8 @@ G_M17637_IG06: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=100000
mov x21, x0
; byrRegs +[x21]
mov w22, w1
- ;; size=28 bbWeight=0.50 PerfScore 5.75
-G_M17637_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
+G_M17637_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
; byrRegs -[x0]
ldr w0, [fp, #0x48] // [V00 arg0+0x08]
and w0, w0, #0xD1FFAB1E
@@ -184,12 +168,12 @@ G_M17637_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
add x2, x0, w1, UXTW
mov w3, w22
cmp x2, x3
- bhi G_M17637_IG17
+ bhi G_M17637_IG16
add x21, x21, x0
sxtw w22, w1
;; size=40 bbWeight=0.50 PerfScore 4.50
-G_M17637_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
- tbz w22, #31, G_M17637_IG09
+G_M17637_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
+ tbz w22, #31, G_M17637_IG08
movz x24, #8
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
@@ -214,7 +198,7 @@ G_M17637_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
blr x2
; gcrRegs -[x0-x1 x24]
;; size=72 bbWeight=0.50 PerfScore 7.75
-G_M17637_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M17637_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
mov x0, x21
; byrRegs +[x0]
mov w1, w22
@@ -246,35 +230,35 @@ G_M17637_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
add x1, x1, w19, UXTW
ldr w0, [fp, #0x4C] // [V00 arg0+0x0c]
cmp x1, x0
- bhi G_M17637_IG17
+ bhi G_M17637_IG16
;; size=104 bbWeight=0.50 PerfScore 10.75
-G_M17637_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M17637_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr x20, [fp, #0x40] // [V00 arg0]
; gcrRegs +[x20]
ldr w1, [fp, #0x48] // [V00 arg0+0x08]
add w21, w1, w23
- cbz x20, G_M17637_IG11
+ cbz x20, G_M17637_IG10
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M17637_IG11
+ cbnz x0, G_M17637_IG10
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
cmp x0, #0
cset x0, ne
; gcrRegs -[x0]
tst w0, #255
- bne G_M17637_IG11
+ bne G_M17637_IG10
movz x24, #8
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
@@ -289,24 +273,24 @@ G_M17637_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
blr x2
; gcrRegs -[x0-x1]
;; size=116 bbWeight=0.50 PerfScore 11.50
-G_M17637_IG11: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M17637_IG10: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
str x20, [fp, #0x20] // [V65 tmp60]
stp w21, w19, [fp, #0x28] // [V66 tmp61], [V67 tmp62]
ldp x0, x1, [fp, #0x20] // [V33 tmp28], [V33 tmp28+0x08]
; gcrRegs +[x0]
;; size=12 bbWeight=0.50 PerfScore 2.50
-G_M17637_IG12: ; bbWeight=0.50, epilog, nogc, extend
+G_M17637_IG11: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0x80
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M17637_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
+G_M17637_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; gcrRegs -[x0 x20]
; byrRegs +[x20]
cmp w19, #1
- bne G_M17637_IG15
+ bne G_M17637_IG14
ldp x0, x1, [fp, #0x40] // [V00 arg0], [V00 arg0+0x08]
; gcrRegs +[x0]
ldrb w2, [x20]
@@ -327,26 +311,26 @@ G_M17637_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
ldp x0, x1, [fp, #0x30] // [V06 tmp1], [V06 tmp1+0x08]
; gcrRegs +[x0]
;; size=68 bbWeight=0.50 PerfScore 13.00
-G_M17637_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M17637_IG13: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0x80
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M17637_IG15: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17637_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
ldp x0, x1, [fp, #0x40] // [V00 arg0], [V00 arg0+0x08]
; gcrRegs +[x0]
;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M17637_IG16: ; bbWeight=0.50, epilog, nogc, extend
+G_M17637_IG15: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0x80
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M17637_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M17637_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
@@ -356,7 +340,7 @@ G_M17637_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 756, prolog size 36, PerfScore 95.75, instruction count 189, allocated bytes for code 756 (MethodHash=bbaabb1a) for method System.MemoryExtensions:Trim[ubyte](System.Memory`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.Memory`1[ubyte] (FullOpts)
+; Total bytes of code 712, prolog size 36, PerfScore 91.25, instruction count 178, allocated bytes for code 712 (MethodHash=bbaabb1a) for method System.MemoryExtensions:Trim[ubyte](System.Memory`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.Memory`1[ubyte] (FullOpts)
; ============================================================
Unwind Info:
@@ -367,7 +351,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 189 (0x000bd) Actual length = 756 (0x0002f4)
+ Function Length : 178 (0x000b2) Actual length = 712 (0x0002c8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-40 (-5.35%) : 4172.dasm - System.MemoryExtensions:Trimubyte:System.ReadOnlyMemory`1ubyte
@@ -19,7 +19,7 @@
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
; V09 tmp4 [V09,T07] ( 6, 3 ) byref -> x21 "Inline stloc first use temp"
; V10 tmp5 [V10,T06] ( 7, 3.50) int -> x22 "Inline stloc first use temp"
-; V11 tmp6 [V11,T04] ( 9, 4.50) ref -> x24 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V11 tmp6 [V11,T03] ( 9, 4.50) ref -> x24 class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
@@ -35,13 +35,13 @@
;* V24 tmp19 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V26 tmp21 [V26 ] ( 4, 4 ) struct (16) [fp+0x20] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V27 tmp22 [V27,T03] ( 5, 5 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Object>
+; V27 tmp22 [V27,T02] ( 5, 5 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Object>
; V28 tmp23 [V28,T17] ( 2, 1 ) int -> x0
; V29 tmp24 [V29,T12] ( 2, 2 ) int -> x20 "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V31 tmp26 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V32 tmp27 [V32,T05] ( 4, 2.50) byref -> x20 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V33 tmp28 [V33,T02] ( 5, 3.50) int -> x19 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V33 tmp28 [V33,T01] ( 5, 3.50) int -> x19 single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V34 tmp29 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "field V02._reference (fldOffset=0x0)" P-INDEP
;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
; V36 tmp31 [V36,T19] ( 2, 1.50) ref -> [fp+0x30] do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
@@ -64,7 +64,7 @@
; V53 tmp48 [V53,T23] ( 2, 1.50) int -> [fp+0x28] do-not-enreg[] "field V26._index (fldOffset=0x8)" P-DEP
; V54 tmp49 [V54,T24] ( 2, 1.50) int -> [fp+0x2C] do-not-enreg[] "field V26._length (fldOffset=0xc)" P-DEP
; V55 tmp50 [V55,T10] ( 4, 2 ) struct (16) [fp+0x10] do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlyMemory`1[ubyte]>
-; V56 cse0 [V56,T01] ( 12, 6 ) ref -> x1 multi-def "CSE - aggressive"
+; V56 cse0 [V56,T04] ( 9, 4.50) ref -> x1 multi-def "CSE - aggressive"
; V57 cse1 [V57,T08] ( 5, 2.50) ref -> x23 multi-def "CSE - aggressive"
;
; Lcl frame size = 64
@@ -86,7 +86,7 @@ G_M11429_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=48 bbWeight=1 PerfScore 9.50
G_M11429_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cmp w19, #1
- ble G_M11429_IG12
+ ble G_M11429_IG11
;; size=8 bbWeight=1 PerfScore 1.50
G_M11429_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
mov x21, xzr
@@ -96,7 +96,7 @@ G_M11429_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}
; gcrRegs +[x23]
mov x24, x23
; gcrRegs +[x24]
- cbz x24, G_M11429_IG08
+ cbz x24, G_M11429_IG07
ldr x1, [x24]
ldr w1, [x1]
tst w1, #0xD1FFAB1E
@@ -106,7 +106,7 @@ G_M11429_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; byrRegs -[x21]
cbnz x0, G_M11429_IG04
@@ -125,32 +125,18 @@ G_M11429_IG04: ; bbWeight=0.50, gcrefRegs=1800000 {x23 x24}, byrefRegs=10
add x21, x24, #16
; byrRegs +[x21]
ldr w22, [x24, #0x08]
- b G_M11429_IG07
+ b G_M11429_IG06
;; size=12 bbWeight=0.50 PerfScore 2.25
-G_M11429_IG05: ; bbWeight=0.50, gcrefRegs=1800000 {x23 x24}, byrefRegs=100000 {x20}, byref, isz
+G_M11429_IG05: ; bbWeight=0.50, gcrefRegs=1800000 {x23 x24}, byrefRegs=100000 {x20}, byref
; byrRegs -[x21]
mov x1, x24
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M11429_IG06
- movz x1, #8
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0]
- ;; size=60 bbWeight=0.50 PerfScore 5.75
-G_M11429_IG06: ; bbWeight=0.50, gcrefRegs=1800000 {x23 x24}, byrefRegs=100000 {x20}, byref
mov x0, x24
- ; gcrRegs +[x0]
ldr x1, [x24]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x28]
@@ -160,8 +146,8 @@ G_M11429_IG06: ; bbWeight=0.50, gcrefRegs=1800000 {x23 x24}, byrefRegs=10
mov x21, x0
; byrRegs +[x21]
mov w22, w1
- ;; size=28 bbWeight=0.50 PerfScore 5.75
-G_M11429_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000 {x20 x21}, byref, isz
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
+G_M11429_IG06: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000 {x20 x21}, byref, isz
; byrRegs -[x0]
ldr w0, [fp, #0x48] // [V00 arg0+0x08]
and w0, w0, #0xD1FFAB1E
@@ -170,12 +156,12 @@ G_M11429_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000
add x2, x0, w1, UXTW
mov w3, w22
cmp x2, x3
- bhi G_M11429_IG16
+ bhi G_M11429_IG15
add x21, x21, x0
sxtw w22, w1
;; size=40 bbWeight=0.50 PerfScore 4.50
-G_M11429_IG08: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000 {x20 x21}, byref, isz
- tbz w22, #31, G_M11429_IG09
+G_M11429_IG07: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000 {x20 x21}, byref, isz
+ tbz w22, #31, G_M11429_IG08
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -188,7 +174,7 @@ G_M11429_IG08: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000
blr x2
; gcrRegs -[x0]
;; size=40 bbWeight=0.50 PerfScore 4.25
-G_M11429_IG09: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M11429_IG08: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000 {x20 x21}, byref, isz
mov x0, x21
; byrRegs +[x0]
mov w1, w22
@@ -220,31 +206,31 @@ G_M11429_IG09: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000
add x1, x1, w19, UXTW
ldr w0, [fp, #0x4C] // [V00 arg0+0x0c]
cmp x1, x0
- bhi G_M11429_IG17
+ bhi G_M11429_IG16
ldr w1, [fp, #0x48] // [V00 arg0+0x08]
add w20, w1, w24
- cbz x23, G_M11429_IG10
+ cbz x23, G_M11429_IG09
mov x1, x23
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M11429_IG10
+ cbnz x0, G_M11429_IG09
mov x1, x23
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
cmp x0, #0
cset x0, ne
; gcrRegs -[x0]
tst w0, #255
- bne G_M11429_IG10
+ bne G_M11429_IG09
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -257,24 +243,24 @@ G_M11429_IG09: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=300000
blr x2
; gcrRegs -[x0]
;; size=212 bbWeight=0.50 PerfScore 21.00
-G_M11429_IG10: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+G_M11429_IG09: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
str x23, [fp, #0x20] // [V52 tmp47]
stp w20, w19, [fp, #0x28] // [V53 tmp48], [V54 tmp49]
ldp x0, x1, [fp, #0x20] // [V26 tmp21], [V26 tmp21+0x08]
; gcrRegs +[x0]
;; size=12 bbWeight=0.50 PerfScore 2.50
-G_M11429_IG11: ; bbWeight=0.50, epilog, nogc, extend
+G_M11429_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0x80
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M11429_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
+G_M11429_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; gcrRegs -[x0 x23]
; byrRegs +[x20]
cmp w19, #1
- bne G_M11429_IG14
+ bne G_M11429_IG13
ldr x23, [fp, #0x40] // [V00 arg0]
; gcrRegs +[x23]
mov x0, x23
@@ -299,26 +285,26 @@ G_M11429_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
ldp x0, x1, [fp, #0x30] // [V06 tmp1], [V06 tmp1+0x08]
; gcrRegs +[x0]
;; size=76 bbWeight=0.50 PerfScore 13.75
-G_M11429_IG13: ; bbWeight=0.50, epilog, nogc, extend
+G_M11429_IG12: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0x80
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M11429_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M11429_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
ldp x0, x1, [fp, #0x40] // [V00 arg0], [V00 arg0+0x08]
; gcrRegs +[x0]
;; size=4 bbWeight=0.50 PerfScore 1.50
-G_M11429_IG15: ; bbWeight=0.50, epilog, nogc, extend
+G_M11429_IG14: ; bbWeight=0.50, epilog, nogc, extend
ldp x23, x24, [sp, #0x70]
ldp x21, x22, [sp, #0x60]
ldp x19, x20, [sp, #0x50]
ldp fp, lr, [sp], #0x80
ret lr
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M11429_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M11429_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
movk x0, #0xD1FFAB1E LSL #16
@@ -327,7 +313,7 @@ G_M11429_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M11429_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11429_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #33
movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
movk x1, #0xD1FFAB1E LSL #16
@@ -337,7 +323,7 @@ G_M11429_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 748, prolog size 36, PerfScore 91.50, instruction count 187, allocated bytes for code 748 (MethodHash=0426d35a) for method System.MemoryExtensions:Trim[ubyte](System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.ReadOnlyMemory`1[ubyte] (FullOpts)
+; Total bytes of code 708, prolog size 36, PerfScore 87.25, instruction count 177, allocated bytes for code 708 (MethodHash=0426d35a) for method System.MemoryExtensions:Trim[ubyte](System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.ReadOnlyMemory`1[ubyte] (FullOpts)
; ============================================================
Unwind Info:
@@ -348,7 +334,7 @@ Unwind Info:
...
libraries_tests.run.windows.arm64.Release.mch
-40 (-43.48%) : 5264.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
@@ -5,16 +5,15 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 24
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 24
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 5 ) ref -> x0 class-hnd single-def <System.Reflection.Assembly>
-; V01 loc0 [V01,T01] ( 2, 2 ) ref -> x0 class-hnd exact <System.Reflection.RuntimeAssembly>
-; V02 loc1 [V02,T02] ( 3, 0 ) ref -> x0 class-hnd exact single-def <System.Reflection.Emit.RuntimeAssemblyBuilder>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x0 class-hnd single-def <System.Reflection.Assembly>
+; V01 loc0 [V01,T01] ( 2, 2 ) ref -> x0 class-hnd exact single-def <System.Reflection.RuntimeAssembly>
+;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Reflection.Emit.RuntimeAssemblyBuilder>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Reflection.RuntimeAssembly>
-;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V04 tmp1 [V04 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -24,58 +23,41 @@ G_M8626_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
;; size=8 bbWeight=1 PerfScore 1.50
G_M8626_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
- cbz x0, G_M8626_IG05
- ldr x1, [x0]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- cmp x1, x2
- bne G_M8626_IG04
- ;; size=28 bbWeight=1 PerfScore 7.00
-G_M8626_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
- ret lr
- ;; size=8 bbWeight=1 PerfScore 2.00
-G_M8626_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
+ cbz x0, G_M8626_IG04
mov x1, x0
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M8626_IG07
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8626_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=1 PerfScore 4.00
+G_M8626_IG03: ; bbWeight=1, epilog, nogc, extend
+ ldp fp, lr, [sp], #0x10
+ ret lr
+ ;; size=8 bbWeight=1 PerfScore 2.00
+G_M8626_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
mov x0, xzr
;; size=4 bbWeight=0 PerfScore 0.00
-G_M8626_IG06: ; bbWeight=0, epilog, nogc, extend
- ldp fp, lr, [sp], #0x10
- ret lr
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M8626_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x0]
- ldr x0, [x0, #0x08]
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8626_IG08: ; bbWeight=0, epilog, nogc, extend
+G_M8626_IG05: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 92, prolog size 8, PerfScore 10.50, instruction count 23, allocated bytes for code 92 (MethodHash=8387de4d) for method System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 7.50, instruction count 13, allocated bytes for code 52 (MethodHash=8387de4d) for method System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 3
+ Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 23 (0x00017) Actual length = 92 (0x00005c)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -83,9 +65,6 @@ Unwind Info:
---- Scope 1
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
- ---- Scope 2
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Epilog Start Index : 1 (0x01)
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
-20 (-38.46%) : 4085.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Instance():Microsoft.Extensions.Configuration.ConfigurationKeyComparer (Tier0)
@@ -14,23 +14,18 @@ G_M6555_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M6555_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #10
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M6555_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=b203e664) for method Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Instance():Microsoft.Extensions.Configuration.ConfigurationKeyComparer (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=b203e664) for method Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Instance():Microsoft.Extensions.Configuration.ConfigurationKeyComparer (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-38.46%) : 4901.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
@@ -14,22 +14,17 @@ G_M7622_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
G_M7622_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #3
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldrb w0, [x0]
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M7622_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 52, prolog size 8, PerfScore 11.00, instruction count 13, allocated bytes for code 52 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -40,7 +35,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-3.32%) : 473.dasm - Xunit.DependencyContextAssemblyCache:GetFallbackRuntime(System.String):System.String:this (Tier0)
@@ -5,54 +5,46 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0xB8] do-not-enreg[] this class-hnd <Xunit.DependencyContextAssemblyCache>
-; V01 arg1 [V01 ] ( 1, 1 ) ref -> [fp+0xB0] do-not-enreg[] class-hnd <System.String>
-; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0xA8] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0xA0] do-not-enreg[] must-init class-hnd <System.String>
-; V04 loc2 [V04 ] ( 1, 1 ) ref -> [fp+0x98] do-not-enreg[] must-init class-hnd <System.String>
-; V05 loc3 [V05 ] ( 1, 1 ) int -> [fp+0x94] do-not-enreg[] must-init
-; V06 loc4 [V06 ] ( 1, 1 ) struct (40) [fp+0x68] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0xA8] do-not-enreg[] this class-hnd <Xunit.DependencyContextAssemblyCache>
+; V01 arg1 [V01 ] ( 1, 1 ) ref -> [fp+0xA0] do-not-enreg[] class-hnd <System.String>
+; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x98] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x90] do-not-enreg[] must-init class-hnd <System.String>
+; V04 loc2 [V04 ] ( 1, 1 ) ref -> [fp+0x88] do-not-enreg[] must-init class-hnd <System.String>
+; V05 loc3 [V05 ] ( 1, 1 ) int -> [fp+0x84] do-not-enreg[] must-init
+; V06 loc4 [V06 ] ( 1, 1 ) struct (40) [fp+0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x60] do-not-enreg[] must-init "DUP instruction"
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x58] do-not-enreg[] must-init
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] must-init "DUP instruction"
-; V11 tmp4 [V11 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init
-; V12 tmp5 [V12 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init
-; V13 tmp6 [V13 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impAppendStmt" <<unknown class>>
-; V14 tmp7 [V14 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V15 tmp8 [V15 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init "argument with side effect"
-; V16 tmp9 [V16 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
-; V17 tmp10 [V17 ] ( 1, 1 ) int -> [fp+0x1C] "ReplaceWithLclVar is creating a new local variable"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] must-init "DUP instruction"
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init "DUP instruction"
+; V11 tmp4 [V11 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init
+; V12 tmp5 [V12 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init
+; V13 tmp6 [V13 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impAppendStmt" <<unknown class>>
+; V14 tmp7 [V14 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V15 tmp8 [V15 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V16 tmp9 [V16 ] ( 1, 1 ) int -> [fp+0x14] "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 176
+; Lcl frame size = 160
G_M17651_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0xC0]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- add x9, fp, #32
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
stp q16, q16, [x9, #0x40]
stp q16, q16, [x9, #0x60]
- stp xzr, xzr, [x9, #0x80]
- str x0, [fp, #0xB8] // [V00 this]
- str x1, [fp, #0xB0] // [V01 arg1]
+ str xzr, [x9, #0x80]
+ str x0, [fp, #0xA8] // [V00 this]
+ str x1, [fp, #0xA0] // [V01 arg1]
;; size=44 bbWeight=1 PerfScore 9.50
G_M17651_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #39
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V15 tmp8]
- ldr x0, [fp, #0x28] // [V15 tmp8]
- ldr x1, [fp, #0xB0] // [V01 arg1]
+ ldr x1, [fp, #0xA0] // [V01 arg1]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -61,34 +53,34 @@ G_M17651_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x2
; gcrRegs -[x1]
- str x0, [fp, #0xA8] // [V02 loc0]
- ldr x0, [fp, #0xA8] // [V02 loc0]
+ str x0, [fp, #0x98] // [V02 loc0]
+ ldr x0, [fp, #0x98] // [V02 loc0]
cbnz x0, G_M17651_IG03
- str xzr, [fp, #0x40] // [V12 tmp5]
+ str xzr, [fp, #0x30] // [V12 tmp5]
b G_M17651_IG06
- ;; size=92 bbWeight=1 PerfScore 27.00
+ ;; size=64 bbWeight=1 PerfScore 21.00
G_M17651_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0xA8] // [V02 loc0]
+ ldr x0, [fp, #0x98] // [V02 loc0]
; gcrRegs +[x0]
- ldr x1, [fp, #0xA8] // [V02 loc0]
+ ldr x1, [fp, #0x98] // [V02 loc0]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x20]
blr x1
- str x0, [fp, #0x60] // [V08 tmp1]
- ldr x0, [fp, #0x60] // [V08 tmp1]
- str x0, [fp, #0x58] // [V09 tmp2]
- ldr x0, [fp, #0x60] // [V08 tmp1]
+ str x0, [fp, #0x50] // [V08 tmp1]
+ ldr x0, [fp, #0x50] // [V08 tmp1]
+ str x0, [fp, #0x48] // [V09 tmp2]
+ ldr x0, [fp, #0x50] // [V08 tmp1]
cbnz x0, G_M17651_IG04
- str xzr, [fp, #0x40] // [V12 tmp5]
+ str xzr, [fp, #0x30] // [V12 tmp5]
b G_M17651_IG06
;; size=52 bbWeight=1 PerfScore 23.00
G_M17651_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x58] // [V09 tmp2]
+ ldr x0, [fp, #0x48] // [V09 tmp2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -98,42 +90,42 @@ G_M17651_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- str x0, [fp, #0x50] // [V10 tmp3]
- ldr x0, [fp, #0x50] // [V10 tmp3]
- str x0, [fp, #0x48] // [V11 tmp4]
- ldr x0, [fp, #0x50] // [V10 tmp3]
+ str x0, [fp, #0x40] // [V10 tmp3]
+ ldr x0, [fp, #0x40] // [V10 tmp3]
+ str x0, [fp, #0x38] // [V11 tmp4]
+ ldr x0, [fp, #0x40] // [V10 tmp3]
cbnz x0, G_M17651_IG05
- str xzr, [fp, #0x40] // [V12 tmp5]
+ str xzr, [fp, #0x30] // [V12 tmp5]
b G_M17651_IG06
;; size=64 bbWeight=1 PerfScore 18.00
G_M17651_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x48] // [V11 tmp4]
+ ldr x0, [fp, #0x38] // [V11 tmp4]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- str x0, [fp, #0x40] // [V12 tmp5]
+ str x0, [fp, #0x30] // [V12 tmp5]
;; size=28 bbWeight=1 PerfScore 8.50
G_M17651_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V12 tmp5]
+ ldr x0, [fp, #0x30] // [V12 tmp5]
; gcrRegs +[x0]
- str x0, [fp, #0xA0] // [V03 loc1]
- str xzr, [fp, #0x98] // [V04 loc2]
- ldr x0, [fp, #0xB8] // [V00 this]
+ str x0, [fp, #0x90] // [V03 loc1]
+ str xzr, [fp, #0x88] // [V04 loc2]
+ ldr x0, [fp, #0xA8] // [V00 this]
ldr w0, [x0, #0x68]
; gcrRegs -[x0]
- str w0, [fp, #0x94] // [V05 loc3]
- ldr w0, [fp, #0x94] // [V05 loc3]
+ str w0, [fp, #0x84] // [V05 loc3]
+ ldr w0, [fp, #0x84] // [V05 loc3]
sub w0, w0, #1
- str w0, [fp, #0x1C] // [V17 tmp10]
- ldr w0, [fp, #0x1C] // [V17 tmp10]
+ str w0, [fp, #0x14] // [V16 tmp9]
+ ldr w0, [fp, #0x14] // [V16 tmp9]
cmp w0, #2
bhi G_M17651_IG07
- ldr w0, [fp, #0x1C] // [V17 tmp10]
+ ldr w0, [fp, #0x14] // [V16 tmp9]
mov w0, w0
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -145,7 +137,7 @@ G_M17651_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
b G_M17651_IG11
;; size=4 bbWeight=1 PerfScore 1.00
G_M17651_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0xA0] // [V03 loc1]
+ ldr x1, [fp, #0x90] // [V03 loc1]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -156,12 +148,12 @@ G_M17651_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1] +[x0]
- str x0, [fp, #0x98] // [V04 loc2]
+ str x0, [fp, #0x88] // [V04 loc2]
b G_M17651_IG12
;; size=44 bbWeight=1 PerfScore 11.00
G_M17651_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x1, [fp, #0xA0] // [V03 loc1]
+ ldr x1, [fp, #0x90] // [V03 loc1]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -172,12 +164,12 @@ G_M17651_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1] +[x0]
- str x0, [fp, #0x98] // [V04 loc2]
+ str x0, [fp, #0x88] // [V04 loc2]
b G_M17651_IG12
;; size=44 bbWeight=1 PerfScore 11.00
G_M17651_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x1, [fp, #0xA0] // [V03 loc1]
+ ldr x1, [fp, #0x90] // [V03 loc1]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -188,7 +180,7 @@ G_M17651_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x2, [x2]
blr x2
; gcrRegs -[x1] +[x0]
- str x0, [fp, #0x98] // [V04 loc2]
+ str x0, [fp, #0x88] // [V04 loc2]
b G_M17651_IG12
;; size=44 bbWeight=1 PerfScore 11.00
G_M17651_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -196,17 +188,17 @@ G_M17651_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- str x0, [fp, #0x98] // [V04 loc2]
+ str x0, [fp, #0x88] // [V04 loc2]
;; size=16 bbWeight=1 PerfScore 2.50
G_M17651_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0xB8] // [V00 this]
+ ldr x0, [fp, #0xA8] // [V00 this]
; gcrRegs +[x0]
ldr x0, [x0, #0x38]
cbz x0, G_M17651_IG13
- ldr x0, [fp, #0xB8] // [V00 this]
+ ldr x0, [fp, #0xA8] // [V00 this]
ldr x0, [x0, #0x38]
- str x0, [fp, #0x38] // [V13 tmp6]
- add x0, fp, #104 // [V06 loc4]
...
-20 (-2.20%) : 95.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
@@ -74,19 +74,14 @@ G_M3749_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
str x0, [fp, #0x38] // [V16 tmp2]
ldr x0, [fp, #0x40] // [V15 tmp1]
cbnz x0, G_M3749_IG05
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #6
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
str x0, [fp, #0x38] // [V16 tmp2]
- ;; size=100 bbWeight=1 PerfScore 27.50
+ ;; size=80 bbWeight=1 PerfScore 24.50
G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
ldr x0, [fp, #0x38] // [V16 tmp2]
@@ -252,7 +247,7 @@ G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
str x0, [fp, #0x18] // [V20 tmp6]
ldr x0, [fp, #0x58] // [V11 loc9]
@@ -303,7 +298,7 @@ G_M3749_IG06: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=12 bbWeight=1 PerfScore 2.50
-; Total bytes of code 908, prolog size 44, PerfScore 269.00, instruction count 227, allocated bytes for code 908 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
+; Total bytes of code 888, prolog size 44, PerfScore 266.00, instruction count 222, allocated bytes for code 888 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
; ============================================================
Unwind Info:
@@ -314,7 +309,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 227 (0x000e3) Actual length = 908 (0x00038c)
+ Function Length : 222 (0x000de) Actual length = 888 (0x000378)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+10.00%) : 2231.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable1[ubyte]](System.String,System.Nullable1[ubyte]):this (Tier0)
@@ -7,7 +7,7 @@
;
; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] this class-hnd <Xunit.TestFrameworkOptions>
; V01 arg1 [V01 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] class-hnd <System.String>
-; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XSF] addr-exposed <System.Nullable`1[ubyte]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [fp+0x28] do-not-enreg[XS] addr-exposed <System.Nullable`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
@@ -24,10 +24,14 @@ G_M26730_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
str x2, [fp, #0x28] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldrb w0, [fp, #0x28] // [V02 arg2]
- cbnz w0, G_M26730_IG04
- ldr x0, [fp, #0x38] // [V00 this]
+ add x1, fp, #40 // [V02 arg2]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_UNBOX_NULLABLE
; gcrRegs +[x0]
+ cbnz x0, G_M26730_IG04
+ ldr x0, [fp, #0x38] // [V00 this]
ldr x0, [x0, #0x08]
ldr x1, [fp, #0x30] // [V01 arg1]
; gcrRegs +[x1]
@@ -38,7 +42,7 @@ G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x2
; gcrRegs -[x0-x1]
- ;; size=44 bbWeight=1 PerfScore 18.50
+ ;; size=60 bbWeight=1 PerfScore 19.50
G_M26730_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
@@ -53,7 +57,7 @@ G_M26730_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_BOX_NULLABLE
+ bl CORINFO_HELP_UNBOX_NULLABLE
; gcrRegs +[x0]
str x0, [fp, #0x20] // [V04 tmp1]
ldr x2, [fp, #0x20] // [V04 tmp1]
@@ -74,7 +78,7 @@ G_M26730_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 16, PerfScore 53.50, instruction count 40, allocated bytes for code 160 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
+; Total bytes of code 176, prolog size 16, PerfScore 54.50, instruction count 44, allocated bytes for code 176 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
; ============================================================
Unwind Info:
@@ -85,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
-44 (-57.89%) : 1937.dasm - Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -16,35 +16,19 @@ G_M50046_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M50046_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M50046_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M50046_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M50046_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M50046_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M50046_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M50046_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #57
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M50046_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=c0343c81) for method Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=c0343c81) for method Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 1974.dasm - Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -16,35 +16,19 @@ G_M23230_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M23230_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M23230_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M23230_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23230_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M23230_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M23230_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M23230_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #59
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M23230_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=cbe5a541) for method Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=cbe5a541) for method Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2134.dasm - Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
@@ -15,35 +15,19 @@ G_M7353_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M7353_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M7353_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M7353_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M7353_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
; gcrRegs +[x0]
;; size=16 bbWeight=1 PerfScore 4.50
-G_M7353_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M7353_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M7353_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M7353_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 13.50, instruction count 19, allocated bytes for code 76 (MethodHash=2648e346) for method Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 32 (MethodHash=2648e346) for method Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
; ============================================================
Unwind Info:
@@ -54,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.27%) : 991.dasm - System.Linq.Enumerable:ToDictionarySystem.Canon,System.Canon,System.__Canon:System.Collections.Generic.Dictionary`2System.Canon,System.Canon
@@ -16,7 +16,7 @@
; V05 loc0 [V05 ] ( 3, 2 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc1 [V06,T13] ( 3, 5 ) ref -> x24 class-hnd exact single-def <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
; V07 loc2 [V07,T52] ( 3, 1.50) ref -> x24 class-hnd single-def <System.__Canon[]>
-; V08 loc3 [V08,T53] ( 3, 1.50) ref -> x24 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
+; V08 loc3 [V08,T56] ( 2, 1 ) ref -> x22 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
;* V09 loc4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret <System.ReadOnlySpan`1[System.__Canon]>
; V10 loc5 [V10,T07] ( 7, 9 ) ref -> [fp+0x18] class-hnd EH-live spill-single-def <<unknown class>>
; V11 loc6 [V11,T06] ( 3, 12 ) ref -> x21 class-hnd <System.__Canon>
@@ -31,7 +31,7 @@
; V20 tmp8 [V20,T01] ( 2, 16 ) ref -> x25 class-hnd "non-inline candidate call" <System.__Canon>
;* V21 tmp9 [V21 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V22 tmp10 [V22 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V23 tmp11 [V23,T40] ( 3, 2 ) long -> x22 "spilling helperCall"
+; V23 tmp11 [V23,T40] ( 3, 2 ) long -> x24 "spilling helperCall"
; V24 tmp12 [V24,T41] ( 3, 2 ) long -> x25 "spilling helperCall"
;* V25 tmp13 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.Span`1[System.__Canon]>
;* V26 tmp14 [V26 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
@@ -72,7 +72,7 @@
; V61 rat13 [V61,T24] ( 3, 2.80) long -> x0 "spilling expr"
; V62 rat14 [V62,T34] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
; V63 rat15 [V63,T25] ( 3, 2.80) long -> x0 "spilling expr"
-; V64 rat16 [V64,T35] ( 3, 2.24) long -> x22 "fgMakeTemp is creating a new local variable"
+; V64 rat16 [V64,T35] ( 3, 2.24) long -> x24 "fgMakeTemp is creating a new local variable"
; V65 rat17 [V65,T26] ( 3, 2.80) long -> x0 "spilling expr"
; V66 rat18 [V66,T36] ( 3, 2.24) long -> x25 "fgMakeTemp is creating a new local variable"
; V67 rat19 [V67,T47] ( 3, 2 ) long -> x0 "runtime lookup"
@@ -83,9 +83,9 @@
; V72 rat24 [V72,T38] ( 3, 2.24) long -> x0 "fgMakeTemp is creating a new local variable"
; V73 rat25 [V73,T29] ( 3, 2.80) long -> x0 "spilling expr"
; V74 rat26 [V74,T39] ( 3, 2.24) long -> x11 "fgMakeTemp is creating a new local variable"
-; V75 rat27 [V75,T56] ( 3, 1 ) long -> x23 "runtime lookup"
-; V76 rat28 [V76,T54] ( 3, 1.40) long -> x0 "spilling expr"
-; V77 rat29 [V77,T55] ( 3, 1.12) long -> x23 "fgMakeTemp is creating a new local variable"
+; V75 rat27 [V75,T55] ( 3, 1 ) long -> x23 "runtime lookup"
+; V76 rat28 [V76,T53] ( 3, 1.40) long -> x0 "spilling expr"
+; V77 rat29 [V77,T54] ( 3, 1.12) long -> x23 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -124,7 +124,7 @@ G_M36297_IG04: ; bbWeight=0.20, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.20 PerfScore 0.60
G_M36297_IG05: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
@@ -161,11 +161,11 @@ G_M36297_IG09: ; bbWeight=0.18, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG10: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
mov x21, x0
@@ -210,13 +210,13 @@ G_M36297_IG15: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG16: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x22
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFARRAY
+ bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
mov x24, x0
@@ -241,7 +241,7 @@ G_M36297_IG19: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x22, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -263,7 +263,7 @@ G_M36297_IG23: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x25, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -326,73 +326,71 @@ G_M36297_IG29: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG30: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov x1, x22
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[x1] +[x0]
+ bl CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[x1 x22] +[x0]
; gcr arg pop 0
- mov x24, x0
- ; gcrRegs +[x24]
- cbz x24, G_M36297_IG44
+ mov x22, x0
+ ; gcrRegs +[x22]
ldr x0, [x21, #0x38]
; gcrRegs -[x0]
ldr x1, [x0, #0x18]
cmp x1, #80
ble G_M36297_IG33
- ;; size=32 bbWeight=0.50 PerfScore 5.25
-G_M36297_IG31: ; bbWeight=0.40, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
- ldr x22, [x0, #0x50]
- cbz x22, G_M36297_IG33
+ ;; size=28 bbWeight=0.50 PerfScore 4.75
+G_M36297_IG31: ; bbWeight=0.40, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ ldr x24, [x0, #0x50]
+ cbz x24, G_M36297_IG33
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M36297_IG32: ; bbWeight=0.32, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG32: ; bbWeight=0.32, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
b G_M36297_IG34
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M36297_IG33: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG33: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
- mov x22, x0
+ mov x24, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG34: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG34: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21, #0x38]
ldr x1, [x0, #0x18]
cmp x1, #88
ble G_M36297_IG37
;; size=16 bbWeight=0.50 PerfScore 3.75
-G_M36297_IG35: ; bbWeight=0.40, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG35: ; bbWeight=0.40, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x25, [x0, #0x58]
cbz x25, G_M36297_IG37
;; size=8 bbWeight=0.40 PerfScore 1.60
-G_M36297_IG36: ; bbWeight=0.32, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG36: ; bbWeight=0.32, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
b G_M36297_IG38
;; size=4 bbWeight=0.32 PerfScore 0.32
-G_M36297_IG37: ; bbWeight=0.18, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
+G_M36297_IG37: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x21
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x25, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
-G_M36297_IG38: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
- mov x0, x22
- mov x1, x24
+G_M36297_IG38: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ mov x0, x24
+ mov x1, x22
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.CollectionsMarshal:AsSpan[System.__Canon](System.Collections.Generic.List`1[System.__Canon]):System.Span`1[System.__Canon]
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x24]
+ ; gcrRegs -[x1 x22]
; byrRegs +[x0]
; gcr arg pop 0
mov w2, w1
@@ -428,7 +426,7 @@ G_M36297_IG41: ; bbWeight=0.18, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG42: ; bbWeight=0.50, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=400000 {x22}, byref
@@ -477,11 +475,11 @@ G_M36297_IG47: ; bbWeight=0.18, gcrefRegs=D80000 {x19 x20 x22 x23}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=20 bbWeight=0.18 PerfScore 0.54
G_M36297_IG48: ; bbWeight=0.50, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
- bl CORINFO_HELP_NEWSFAST
+ bl CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[x0]
; gcr arg pop 0
mov x24, x0
@@ -513,7 +511,7 @@ G_M36297_IG51: ; bbWeight=0.18, gcrefRegs=1580000 {x19 x20 x22 x24}, byre
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x11, x0
;; size=24 bbWeight=0.18 PerfScore 0.63
@@ -556,7 +554,7 @@ G_M36297_IG57: ; bbWeight=0.09, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov x23, x0
;; size=24 bbWeight=0.09 PerfScore 0.32
@@ -709,7 +707,7 @@ G_M36297_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1460, prolog size 52, PerfScore 319.10, instruction count 365, allocated bytes for code 1460 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 1456, prolog size 52, PerfScore 318.60, instruction count 364, allocated bytes for code 1456 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================
Unwind Info:
@@ -720,7 +718,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 344 (0x00158) Actual length = 1376 (0x000560)
+ Function Length : 343 (0x00157) Actual length = 1372 (0x00055c)
---- Epilog scopes ----
...
+0 (0.00%) : 492.dasm - Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -39,14 +39,13 @@ G_M47281_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M47281_IG05
+ cbnz x19, G_M47281_IG05
;; size=52 bbWeight=1 PerfScore 13.00
-G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -61,7 +60,7 @@ G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M47281_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1 x19] +[x0]
+ ; gcrRegs +[x0]
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
+0 (0.00%) : 592.dasm - Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> x0 this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> x1 class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> x0 class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 8
@@ -39,14 +39,13 @@ G_M51894_IG02: ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, b
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
- cbnz x0, G_M51894_IG05
+ cbnz x19, G_M51894_IG05
;; size=52 bbWeight=1 PerfScore 13.00
-G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x1, x19
- ; gcrRegs +[x1]
+G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0 x19]
+ mov x1, xzr
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -61,7 +60,7 @@ G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M51894_IG05: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1 x19] +[x0]
+ ; gcrRegs +[x0]
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
realworld.run.windows.arm64.checked.mch
-44 (-57.89%) : 2065.dasm - UtilsStrings.SR:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M14360_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M14360_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M14360_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M14360_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M14360_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M14360_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M14360_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M14360_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M14360_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=a4ffc7e7) for method UtilsStrings.SR:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=a4ffc7e7) for method UtilsStrings.SR:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2042.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M47685_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M47685_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M47685_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M47685_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M47685_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M47685_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M47685_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M47685_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M47685_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=8aae45ba) for method FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=8aae45ba) for method FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-44 (-57.89%) : 2050.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
@@ -8,7 +8,6 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T00] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
;
; Lcl frame size = 0
@@ -16,33 +15,18 @@ G_M17141_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M17141_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M17141_IG05
- ;; size=20 bbWeight=1 PerfScore 5.50
-G_M17141_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17141_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
str wzr, [x0]
;; size=16 bbWeight=1 PerfScore 2.50
-G_M17141_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M17141_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M17141_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #0xD1FFAB1E
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M17141_IG03
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 8, PerfScore 11.50, instruction count 19, allocated bytes for code 76 (MethodHash=290cbd0a) for method FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 6.00, instruction count 8, allocated bytes for code 32 (MethodHash=290cbd0a) for method FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +37,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
+ Function Length : 8 (0x00008) Actual length = 32 (0x000020)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.33%) : 2104.dasm - Microsoft.FSharp.Core.FSharpFunc2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc2[System.Canon,System.Canon],System.Canon,System.Canon):System.__Canon (FullOpts)
@@ -8,15 +8,15 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 5, 4.20) long -> x0 single-def
-; V01 arg0 [V01,T01] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]>
; V02 arg1 [V02,T03] ( 4, 3 ) ref -> x20 class-hnd single-def <System.__Canon>
; V03 arg2 [V03,T04] ( 4, 3 ) ref -> x21 class-hnd single-def <System.__Canon>
-; V04 loc0 [V04,T07] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V04 loc0 [V04,T08] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp2 [V08,T06] ( 2, 4 ) long -> x0 "argument with side effect"
-; V09 tmp3 [V09,T08] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V09 tmp3 [V09,T07] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
; V10 rat0 [V10,T05] ( 3, 4 ) long -> x0 "runtime lookup"
; V11 rat1 [V11,T02] ( 3, 5.60) long -> x2 "fgMakeTemp is creating a new local variable"
;
@@ -48,16 +48,16 @@ G_M55917_IG04: ; bbWeight=0.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
;; size=16 bbWeight=0.20 PerfScore 0.50
G_M55917_IG05: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M55917_IG08
+ cbz x19, G_M55917_IG08
;; size=12 bbWeight=1 PerfScore 2.50
G_M55917_IG06: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -76,24 +76,24 @@ G_M55917_IG07: ; bbWeight=0.50, epilog, nogc, extend
br x3
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M55917_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x2] +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M55917_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x2]
+ mov x0, xzr
mov x1, x20
; gcrRegs +[x1]
- ldr x2, [x19]
+ mov x2, xzr
+ ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
- ; gcrRegs -[x1 x19-x20]
+ ; gcrRegs -[x1 x20] +[x0]
; gcr arg pop 0
mov x1, x21
; gcrRegs +[x1]
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
- ;; size=40 bbWeight=0.50 PerfScore 10.25
+ ;; size=44 bbWeight=0.50 PerfScore 10.50
G_M55917_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -102,7 +102,7 @@ G_M55917_IG09: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 172, prolog size 32, PerfScore 37.45, instruction count 43, allocated bytes for code 172 (MethodHash=44692592) for method Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
+; Total bytes of code 176, prolog size 32, PerfScore 37.70, instruction count 44, allocated bytes for code 176 (MethodHash=44692592) for method Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
; ============================================================
Unwind Info:
@@ -113,7 +113,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 43 (0x0002b) Actual length = 172 (0x0000ac)
+ Function Length : 44 (0x0002c) Actual length = 176 (0x0000b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.78%) : 2992.dasm - Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
@@ -7,14 +7,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> x19 class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <FSharp.Compiler.AbstractIL.BinaryConstants+TableName>
; V02 arg2 [V02,T01] ( 4, 3 ) int -> x20 single-def
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> x0 class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T02] ( 3, 2 ) int -> x21 single-def "field V01.idx (fldOffset=0x0)" P-INDEP
-; V07 tmp2 [V07,T04] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V07 tmp2 [V07,T03] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -34,10 +34,10 @@ G_M49388_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M49388_IG05
+ cbz x19, G_M49388_IG05
;; size=24 bbWeight=1 PerfScore 4.00
G_M49388_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -54,22 +54,22 @@ G_M49388_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x3
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0] +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
+G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0]
+ mov x0, xzr
mov w1, w21
- ldr x2, [x19]
+ mov x2, xzr
+ ldr x2, [x2]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
blr x2
- ; gcrRegs -[x19]
+ ; gcrRegs +[x0]
; gcr arg pop 0
mov w1, w20
ldr x2, [x0]
ldr x2, [x2, #0x48]
ldr x2, [x2, #0x20]
- ;; size=40 bbWeight=0.50 PerfScore 10.25
+ ;; size=44 bbWeight=0.50 PerfScore 10.50
G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -78,7 +78,7 @@ G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.50
-; Total bytes of code 144, prolog size 28, PerfScore 29.25, instruction count 36, allocated bytes for code 144 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
+; Total bytes of code 148, prolog size 28, PerfScore 29.50, instruction count 37, allocated bytes for code 148 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -89,7 +89,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 36 (0x00024) Actual length = 144 (0x000090)
+ Function Length : 37 (0x00025) Actual length = 148 (0x000094)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+6.90%) : 1940.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> x19 this class-hnd single-def <System.Xml.XmlNode>
-; V01 loc0 [V01,T01] ( 4, 3 ) ref -> x0 class-hnd single-def <<unknown class>>
+; V00 this [V00,T00] ( 6, 5 ) ref -> x19 this class-hnd single-def <System.Xml.XmlNode>
+; V01 loc0 [V01,T02] ( 2, 1.50) ref -> x1 class-hnd single-def <<unknown class>>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
+; V04 tmp1 [V04,T01] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
;
; Lcl frame size = 8
@@ -28,15 +28,18 @@ G_M19732_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_ISINSTANCEOFCLASS
+ bl CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M19732_IG05
- ;; size=24 bbWeight=1 PerfScore 4.00
-G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref
- mov x1, x19
+ mov x1, x0
; gcrRegs +[x1]
- ldr x2, [x0]
+ cbz x19, G_M19732_IG05
+ ;; size=28 bbWeight=1 PerfScore 4.50
+G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ldr x2, [x19]
ldr x2, [x2, #0x98]
ldr x2, [x2, #0x10]
;; size=16 bbWeight=0.50 PerfScore 4.75
@@ -46,21 +49,21 @@ G_M19732_IG04: ; bbWeight=0.50, epilog, nogc, extend
br x2
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0-x1]
- mov x0, x19
- ; gcrRegs +[x0]
- ldr x1, [x19]
+G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0-x1 x19]
+ mov x0, xzr
+ mov x1, xzr
+ ldr x1, [x1]
ldr x1, [x1, #0x50]
ldr x1, [x1, #0x30]
blr x1
+ ; gcrRegs +[x0]
; gcr arg pop 0
- mov x1, x19
- ; gcrRegs +[x1]
+ mov x1, xzr
ldr x2, [x0]
ldr x2, [x2, #0x98]
ldr x2, [x2, #0x10]
- ;; size=36 bbWeight=0.50 PerfScore 10.00
+ ;; size=40 bbWeight=0.50 PerfScore 10.25
G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
@@ -68,7 +71,7 @@ G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 2.00
-; Total bytes of code 116, prolog size 16, PerfScore 25.75, instruction count 29, allocated bytes for code 116 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
+; Total bytes of code 124, prolog size 16, PerfScore 26.50, instruction count 31, allocated bytes for code 124 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
; ============================================================
Unwind Info:
@@ -79,7 +82,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 29 (0x0001d) Actual length = 116 (0x000074)
+ 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)
smoke_tests.nativeaot.windows.arm64.checked.mch
-32 (-57.14%) : 1221.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
@@ -16,31 +16,19 @@ G_M28146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M28146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0, #-0x08]
- cbnz x0, G_M28146_IG05
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M28146_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0]
+G_M28146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
ldr x0, [x0, #0x08]
; gcrRegs +[x0]
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M28146_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[x0]
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M28146_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M28146_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- bl CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[x0]
- b G_M28146_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 15.50, instruction count 14, allocated bytes for code 56 (MethodHash=6de6920d) for method Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
+; Total bytes of code 24, prolog size 8, PerfScore 7.50, instruction count 6, allocated bytes for code 24 (MethodHash=6de6920d) for method Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
; ============================================================
Unwind Info:
@@ -51,7 +39,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 6 (0x00006) Actual length = 24 (0x000018)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-32 (-57.14%) : 18801.dasm - Internal.TypeSystem.TypeSystemContext:get_PointerTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
@@ -15,31 +15,19 @@ G_M31235_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M31235_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0, #-0x08]
- cbnz x0, G_M31235_IG05
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M31235_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0]
+G_M31235_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
ldr x0, [x0, #0x10]
; gcrRegs +[x0]
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M31235_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[x0]
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M31235_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M31235_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- bl CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[x0]
- b G_M31235_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 15.50, instruction count 14, allocated bytes for code 56 (MethodHash=d87085fc) for method Internal.TypeSystem.TypeSystemContext:get_PointerTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
+; Total bytes of code 24, prolog size 8, PerfScore 7.50, instruction count 6, allocated bytes for code 24 (MethodHash=d87085fc) for method Internal.TypeSystem.TypeSystemContext:get_PointerTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
; ============================================================
Unwind Info:
@@ -50,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 6 (0x00006) Actual length = 24 (0x000018)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-32 (-57.14%) : 19045.dasm - System.Text.Encoding:get_BigEndianUnicode():System.Text.Encoding (FullOpts)
@@ -15,31 +15,19 @@ G_M39592_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M39592_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0, #-0x08]
- cbnz x0, G_M39592_IG05
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M39592_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x0, [HIGH RELOC #0xD1FFAB1E]
- add x0, x0, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x0]
+G_M39592_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[x0]
ldr x0, [x0, #0x08]
; gcrRegs +[x0]
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M39592_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[x0]
+ ;; size=8 bbWeight=1 PerfScore 4.00
+G_M39592_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M39592_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- bl CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[x0]
- b G_M39592_IG03
- ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 56, prolog size 8, PerfScore 15.50, instruction count 14, allocated bytes for code 56 (MethodHash=d9cd6557) for method System.Text.Encoding:get_BigEndianUnicode():System.Text.Encoding (FullOpts)
+; Total bytes of code 24, prolog size 8, PerfScore 7.50, instruction count 6, allocated bytes for code 24 (MethodHash=d9cd6557) for method System.Text.Encoding:get_BigEndianUnicode():System.Text.Encoding (FullOpts)
; ============================================================
Unwind Info:
@@ -50,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
+ Function Length : 6 (0x00006) Actual length = 24 (0x000018)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-2.74%) : 288.dasm - System.Threading.ProcessorIdCache:ProcessorNumberSpeedCheck():ubyte (FullOpts)
@@ -7,8 +7,8 @@
; partially interruptible
; Final local variable assignments
;
-; V00 loc0 [V00,T14] ( 9, 33.50) double -> d9
-; V01 loc1 [V01,T15] ( 9, 33.50) double -> d8
+; V00 loc0 [V00,T13] ( 9, 33.50) double -> d9
+; V01 loc1 [V01,T14] ( 9, 33.50) double -> d8
; V02 loc2 [V02,T06] ( 3, 64.50) long -> x20
; V03 loc3 [V03,T07] ( 4, 12.50) int -> x21
; V04 loc4 [V04,T01] ( 10,264 ) long -> x23
@@ -18,19 +18,18 @@
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V10 tmp2 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V11 tmp3 [V11,T16] ( 3, 14 ) double -> d16 "Inline return value spill temp"
-; V12 tmp4 [V12,T12] ( 4, 36 ) double -> d16 "Inlining Arg"
+; V11 tmp3 [V11,T15] ( 3, 14 ) double -> d16 "Inline return value spill temp"
+; V12 tmp4 [V12,T11] ( 4, 36 ) double -> d16 "Inlining Arg"
;* V13 tmp5 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V14 tmp6 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V15 tmp7 [V15,T17] ( 3, 14 ) double -> d16 "Inline return value spill temp"
-; V16 tmp8 [V16,T13] ( 4, 36 ) double -> d16 "Inlining Arg"
-; V17 tmp9 [V17,T11] ( 2, 1 ) int -> x0 "Inline return value spill temp"
+; V15 tmp7 [V15,T16] ( 3, 14 ) double -> d16 "Inline return value spill temp"
+; V16 tmp8 [V16,T12] ( 4, 36 ) double -> d16 "Inlining Arg"
+; V17 tmp9 [V17,T10] ( 2, 1 ) int -> x0 "Inline return value spill temp"
; V18 tmp10 [V18,T08] ( 3, 3 ) int -> x0 "Inlining Arg"
; V19 cse0 [V19,T04] ( 6,129 ) byref -> x19 "CSE - aggressive"
-; V20 cse1 [V20,T18] ( 3, 3 ) double -> d8 "CSE - aggressive"
+; V20 cse1 [V20,T17] ( 3, 3 ) double -> d8 "CSE - aggressive"
; V21 cse2 [V21,T05] ( 12, 96 ) ref -> x1 multi-def "CSE - aggressive"
-; V22 rat0 [V22,T09] ( 3, 3 ) long -> x19 "fgMakeTemp is creating a new local variable"
-; V23 rat1 [V23,T10] ( 3, 3 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
+; V22 rat0 [V22,T09] ( 3, 3 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -64,14 +63,13 @@ G_M1452_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x50
ret lr
;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M1452_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- adrp x19, [HIGH RELOC #0xD1FFAB1E]
- add x19, x19, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x19, #-0x08]
- cbnz x0, G_M1452_IG36
- ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M1452_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M1452_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
+ ; byrRegs +[x0]
+ mov x19, x0
+ ; byrRegs +[x19]
ldr x0, [x19]
+ ; byrRegs -[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -81,17 +79,16 @@ G_M1452_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
add x0, x1, x0, LSR #63
add x20, x0, #1
mov w21, wzr
- ;; size=40 bbWeight=0.50 PerfScore 6.50
-G_M1452_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- ; byrRegs +[x19]
+ ;; size=48 bbWeight=0.50 PerfScore 7.25
+G_M1452_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
mov w22, #8
;; size=4 bbWeight=4 PerfScore 2.00
-G_M1452_IG08: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG07: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
lsl w22, w22, #1
ldrb w0, [x19, #0x08]
- cbnz w0, G_M1452_IG10
+ cbnz w0, G_M1452_IG09
;; size=12 bbWeight=32 PerfScore 160.00
-G_M1452_IG09: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M1452_IG08: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -100,24 +97,24 @@ G_M1452_IG09: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl <unknown method>
; gcrRegs -[x0-x1]
;; size=16 bbWeight=8 PerfScore 20.00
-G_M1452_IG10: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG09: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
bl System.Diagnostics.Stopwatch:QueryPerformanceCounter():long
mov x23, x0
mov w24, wzr
cmp w22, #0
- ble G_M1452_IG12
+ ble G_M1452_IG11
;; size=20 bbWeight=32 PerfScore 112.00
-G_M1452_IG11: ; bbWeight=64, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG10: ; bbWeight=64, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
bl System.Threading.Thread:GetCurrentProcessorNumber():int
add w24, w24, #1
cmp w24, w22
- blt G_M1452_IG11
+ blt G_M1452_IG10
;; size=16 bbWeight=64 PerfScore 192.00
-G_M1452_IG12: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG11: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
ldrb w0, [x19, #0x08]
- cbnz w0, G_M1452_IG14
+ cbnz w0, G_M1452_IG13
;; size=8 bbWeight=32 PerfScore 128.00
-G_M1452_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M1452_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -126,48 +123,48 @@ G_M1452_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl <unknown method>
; gcrRegs -[x0-x1]
;; size=16 bbWeight=8 PerfScore 20.00
-G_M1452_IG14: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG13: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
bl System.Diagnostics.Stopwatch:QueryPerformanceCounter():long
sub x23, x0, x23
cmp x23, x20
- blt G_M1452_IG08
+ blt G_M1452_IG07
;; size=16 bbWeight=32 PerfScore 96.00
-G_M1452_IG15: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG14: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
scvtf d16, x23
scvtf d17, w22
fdiv d16, d16, d17
fcmp d9, d16
- beq G_M1452_IG18
+ beq G_M1452_IG17
;; size=20 bbWeight=4 PerfScore 96.00
-G_M1452_IG16: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG15: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
fcmp d9, d9
- bne G_M1452_IG19
+ bne G_M1452_IG18
fcmp d9, d16
- blo G_M1452_IG19
+ blo G_M1452_IG18
;; size=16 bbWeight=2 PerfScore 8.00
-G_M1452_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- b G_M1452_IG20
+G_M1452_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+ b G_M1452_IG19
;; size=4 bbWeight=8 PerfScore 8.00
-G_M1452_IG18: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG17: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
mov x0, v9.d[0]
- tbz x0, #63, G_M1452_IG17
+ tbz x0, #63, G_M1452_IG16
;; size=8 bbWeight=16 PerfScore 32.00
-G_M1452_IG19: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M1452_IG18: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
fmov d16, d9
;; size=4 bbWeight=2 PerfScore 1.00
-G_M1452_IG20: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M1452_IG19: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
fmov d9, d16
asr w0, w22, #31
and w0, w0, #3
add w0, w0, w22
asr w22, w0, #2
;; size=20 bbWeight=4 PerfScore 14.00
-G_M1452_IG21: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG20: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
lsl w22, w22, #1
ldrb w0, [x19, #0x08]
- cbnz w0, G_M1452_IG23
+ cbnz w0, G_M1452_IG22
;; size=12 bbWeight=32 PerfScore 160.00
-G_M1452_IG22: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M1452_IG21: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -176,24 +173,24 @@ G_M1452_IG22: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl <unknown method>
; gcrRegs -[x0-x1]
;; size=16 bbWeight=8 PerfScore 20.00
-G_M1452_IG23: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG22: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
bl System.Diagnostics.Stopwatch:QueryPerformanceCounter():long
mov x23, x0
mov w24, wzr
cmp w22, #0
- ble G_M1452_IG25
+ ble G_M1452_IG24
;; size=20 bbWeight=32 PerfScore 112.00
-G_M1452_IG24: ; bbWeight=64, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG23: ; bbWeight=64, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
bl <unknown method>
add w24, w24, #1
cmp w24, w22
- blt G_M1452_IG24
+ blt G_M1452_IG23
;; size=16 bbWeight=64 PerfScore 192.00
-G_M1452_IG25: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG24: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
ldrb w0, [x19, #0x08]
- cbnz w0, G_M1452_IG27
+ cbnz w0, G_M1452_IG26
;; size=8 bbWeight=32 PerfScore 128.00
-G_M1452_IG26: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M1452_IG25: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -202,42 +199,42 @@ G_M1452_IG26: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl <unknown method>
; gcrRegs -[x0-x1]
;; size=16 bbWeight=8 PerfScore 20.00
-G_M1452_IG27: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG26: ; bbWeight=32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
bl System.Diagnostics.Stopwatch:QueryPerformanceCounter():long
sub x23, x0, x23
cmp x23, x20
- blt G_M1452_IG21
+ blt G_M1452_IG20
;; size=16 bbWeight=32 PerfScore 96.00
-G_M1452_IG28: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG27: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
scvtf d16, x23
scvtf d17, w22
fdiv d16, d16, d17
fcmp d8, d16
- beq G_M1452_IG31
+ beq G_M1452_IG30
;; size=20 bbWeight=4 PerfScore 96.00
-G_M1452_IG29: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG28: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
fcmp d8, d8
- bne G_M1452_IG32
+ bne G_M1452_IG31
fcmp d8, d16
- blo G_M1452_IG32
+ blo G_M1452_IG31
;; size=16 bbWeight=2 PerfScore 8.00
-G_M1452_IG30: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- b G_M1452_IG33
+G_M1452_IG29: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+ b G_M1452_IG32
;; size=4 bbWeight=8 PerfScore 8.00
-G_M1452_IG31: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M1452_IG30: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
mov x0, v8.d[0]
- tbz x0, #63, G_M1452_IG30
...
-20 (-1.93%) : 2645.dasm - System.Globalization.InvariantModeCasing:IndexOfIgnoreCase(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort]):int (FullOpts)
@@ -9,7 +9,7 @@
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V02 loc0 [V02,T38] ( 5, 4.50) long -> x20
+; V02 loc0 [V02,T37] ( 5, 4.50) long -> x20
; V03 loc1 [V03 ] ( 1, 1 ) byref -> [fp+0x28] must-init pinned single-def
; V04 loc2 [V04,T30] ( 4, 10 ) long -> x21
; V05 loc3 [V05 ] ( 1, 1 ) byref -> [fp+0x20] must-init pinned single-def
@@ -94,9 +94,9 @@
;* V84 tmp73 [V84 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V85 tmp74 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V86 tmp75 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V87 tmp76 [V87,T35] ( 3, 3 ) byref -> x20 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V88 tmp77 [V88,T37] ( 3, 3 ) int -> x22 single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V89 tmp78 [V89,T36] ( 3, 3 ) byref -> x21 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V87 tmp76 [V87,T34] ( 3, 3 ) byref -> x20 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V88 tmp77 [V88,T36] ( 3, 3 ) int -> x22 single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V89 tmp78 [V89,T35] ( 3, 3 ) byref -> x21 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V90 tmp79 [V90,T32] ( 5, 5 ) int -> x19 single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V91 tmp80 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V92 tmp81 [V92 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
@@ -126,8 +126,8 @@
;* V116 tmp105 [V116 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
;* V117 tmp106 [V117 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP
;* V118 tmp107 [V118 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
-; V119 tmp108 [V119,T39] ( 2, 4 ) long -> x20 "Cast away GC"
-; V120 tmp109 [V120,T40] ( 2, 4 ) long -> x21 "Cast away GC"
+; V119 tmp108 [V119,T38] ( 2, 4 ) long -> x20 "Cast away GC"
+; V120 tmp109 [V120,T39] ( 2, 4 ) long -> x21 "Cast away GC"
; V121 cse0 [V121,T22] ( 3, 24 ) int -> x28 "CSE - moderate"
; V122 cse1 [V122,T23] ( 3, 24 ) int -> x2 "CSE - moderate"
; V123 cse2 [V123,T05] ( 6, 64 ) int -> x26 "CSE - aggressive"
@@ -135,8 +135,7 @@
; V125 cse4 [V125,T24] ( 3, 24 ) int -> x27 "CSE - moderate"
; V126 cse5 [V126,T00] ( 33,196.50) ref -> x1 multi-def "CSE - aggressive"
; V127 cse6 [V127,T10] ( 6, 48 ) byref -> [fp+0x10] multi-def "CSE - aggressive"
-; V128 rat0 [V128,T34] ( 3, 6 ) long -> x23 "fgMakeTemp is creating a new local variable"
-; V129 rat1 [V129,T41] ( 3, 3 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
+; V128 rat0 [V128,T40] ( 3, 3 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 32
@@ -185,16 +184,14 @@ G_M10941_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M10941_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
- adrp x23, [HIGH RELOC #0xD1FFAB1E]
- add x23, x23, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x23, #-0x08]
- cbnz x0, G_M10941_IG31
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M10941_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
- ldrb w0, [x23]
- cbnz w0, G_M10941_IG09
- ;; size=8 bbWeight=1 PerfScore 4.00
-G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
+ ; byrRegs +[x0]
+ ; gcr arg pop 0
+ ldrb w0, [x0]
+ ; byrRegs -[x0]
+ cbnz w0, G_M10941_IG08
+ ;; size=12 bbWeight=1 PerfScore 5.00
+G_M10941_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -204,7 +201,7 @@ G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M10941_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M10941_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
stp x21, x20, [fp, #0x20] // [V05 loc3], [V03 loc1]
sub w0, w22, w19
sbfiz x0, x0, #1, #32
@@ -214,30 +211,30 @@ G_M10941_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21
sub x19, x0, #2
mov x23, x20
cmp x20, x22
- bhi G_M10941_IG27
+ bhi G_M10941_IG26
;; size=40 bbWeight=1 PerfScore 7.00
-G_M10941_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG09: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x20-x21]
mov x24, x21
mov x25, x23
cmp x21, x19
- bhi G_M10941_IG26
+ bhi G_M10941_IG25
;; size=16 bbWeight=4 PerfScore 10.00
-G_M10941_IG11: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG10: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrh w26, [x24]
movn w0, #0xD1FFAB1E
add w0, w26, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG13
+ bhi G_M10941_IG12
;; size=20 bbWeight=16 PerfScore 88.00
-G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG11: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp x24, x19
- bne G_M10941_IG15
+ bne G_M10941_IG14
;; size=8 bbWeight=8 PerfScore 12.00
-G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrh w27, [x25]
cmp w26, w27
- beq G_M10941_IG14
+ beq G_M10941_IG13
mov w0, w26
bl <unknown method>
; gcr arg pop 0
@@ -255,34 +252,48 @@ G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w0, w0, w26
uxth w0, w0
cmp w0, w27
- bne G_M10941_IG26
+ bne G_M10941_IG25
;; size=72 bbWeight=8 PerfScore 168.00
-G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x28]
add x24, x24, #2
add x25, x25, #2
- b G_M10941_IG25
+ b G_M10941_IG24
;; size=12 bbWeight=8 PerfScore 16.00
-G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrh w27, [x25]
movn w0, #0xD1FFAB1E
add w0, w27, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG24
+ bhi G_M10941_IG23
ldrh w28, [x25, #0x02]
movn w0, #0xD1FFAB1E
add w0, w28, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG24
+ bhi G_M10941_IG23
ldrh w2, [x24, #0x02]
movn w0, #0xD1FFAB1E
add w0, w2, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG24
+ bhi G_M10941_IG23
str w2, [fp, #0x18] // [V46 tmp35]
movn w0, #0xD1FFAB1E
add w0, w27, w0
cmp w0, #0xD1FFAB1E
+ bls G_M10941_IG15
+ adrp x1, [HIGH RELOC #0xD1FFAB1E]
+ add x1, x1, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x1]
+ mov x0, x1
+ ; gcrRegs +[x0]
+ bl <unknown method>
+ ; gcrRegs -[x0-x1]
+ ; gcr arg pop 0
+ ;; size=96 bbWeight=8 PerfScore 180.00
+G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movn w0, #0xD1FFAB1E
+ add w0, w28, w0
+ cmp w0, #0xD1FFAB1E
bls G_M10941_IG16
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
@@ -291,23 +302,9 @@ G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x0]
bl <unknown method>
; gcrRegs -[x0-x1]
- ; gcr arg pop 0
- ;; size=96 bbWeight=8 PerfScore 180.00
-G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movn w0, #0xD1FFAB1E
- add w0, w28, w0
- cmp w0, #0xD1FFAB1E
- bls G_M10941_IG17
- adrp x1, [HIGH RELOC #0xD1FFAB1E]
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x1]
- mov x0, x1
- ; gcrRegs +[x0]
- bl <unknown method>
- ; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=32 bbWeight=8 PerfScore 40.00
-G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, w27
bl System.Text.UnicodeDebug:AssertIsHighSurrogateCodePoint(uint)
; gcr arg pop 0
@@ -320,7 +317,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w28, w0, w27
movn w0, #0xD1FFAB1E LSL #16
cmp w28, w0
- bhi G_M10941_IG32
+ bhi G_M10941_IG30
mov w0, w28
bl <unknown method>
; gcr arg pop 0
@@ -350,7 +347,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movn w0, #0xD1FFAB1E
add w0, w2, w0
cmp w0, #0xD1FFAB1E
- bls G_M10941_IG18
+ bls G_M10941_IG17
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -360,10 +357,24 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=160 bbWeight=8 PerfScore 224.00
-G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movn w0, #0xD1FFAB1E
add w0, w28, w0
cmp w0, #0xD1FFAB1E
+ bls G_M10941_IG18
+ adrp x1, [HIGH RELOC #0xD1FFAB1E]
+ add x1, x1, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x1]
+ mov x0, x1
+ ; gcrRegs +[x0]
+ bl <unknown method>
+ ; gcrRegs -[x0-x1]
+ ; gcr arg pop 0
+ ;; size=32 bbWeight=8 PerfScore 40.00
+G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movn w0, #0xD1FFAB1E
+ add w0, w26, w0
+ cmp w0, #0xD1FFAB1E
bls G_M10941_IG19
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
@@ -376,7 +387,8 @@ G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=32 bbWeight=8 PerfScore 40.00
G_M10941_IG19: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movn w0, #0xD1FFAB1E
- add w0, w26, w0
+ ldr w3, [fp, #0x18] // [V46 tmp35]
+ add w0, w3, w0
cmp w0, #0xD1FFAB1E
...
-20 (-1.93%) : 8594.dasm - System.Globalization.InvariantModeCasing:IndexOfIgnoreCase(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort]):int (FullOpts)
@@ -10,7 +10,7 @@
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V02 loc0 [V02,T38] ( 5, 4.50) long -> x20
+; V02 loc0 [V02,T37] ( 5, 4.50) long -> x20
; V03 loc1 [V03 ] ( 1, 1 ) byref -> [fp+0x28] must-init pinned single-def
; V04 loc2 [V04,T30] ( 4, 10 ) long -> x21
; V05 loc3 [V05 ] ( 1, 1 ) byref -> [fp+0x20] must-init pinned single-def
@@ -95,9 +95,9 @@
;* V84 tmp73 [V84 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V85 tmp74 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V86 tmp75 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V87 tmp76 [V87,T35] ( 3, 3 ) byref -> x20 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V88 tmp77 [V88,T37] ( 3, 3 ) int -> x22 single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V89 tmp78 [V89,T36] ( 3, 3 ) byref -> x21 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V87 tmp76 [V87,T34] ( 3, 3 ) byref -> x20 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V88 tmp77 [V88,T36] ( 3, 3 ) int -> x22 single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V89 tmp78 [V89,T35] ( 3, 3 ) byref -> x21 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
; V90 tmp79 [V90,T32] ( 5, 5 ) int -> x19 single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V91 tmp80 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V92 tmp81 [V92 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
@@ -127,8 +127,8 @@
;* V116 tmp105 [V116 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
;* V117 tmp106 [V117 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP
;* V118 tmp107 [V118 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
-; V119 tmp108 [V119,T39] ( 2, 4 ) long -> x20 "Cast away GC"
-; V120 tmp109 [V120,T40] ( 2, 4 ) long -> x21 "Cast away GC"
+; V119 tmp108 [V119,T38] ( 2, 4 ) long -> x20 "Cast away GC"
+; V120 tmp109 [V120,T39] ( 2, 4 ) long -> x21 "Cast away GC"
; V121 cse0 [V121,T22] ( 3, 24 ) int -> x28 "CSE - moderate"
; V122 cse1 [V122,T23] ( 3, 24 ) int -> x2 "CSE - moderate"
; V123 cse2 [V123,T05] ( 6, 64 ) int -> x26 "CSE - aggressive"
@@ -136,8 +136,7 @@
; V125 cse4 [V125,T24] ( 3, 24 ) int -> x27 "CSE - moderate"
; V126 cse5 [V126,T00] ( 33,196.50) ref -> x1 multi-def "CSE - aggressive"
; V127 cse6 [V127,T10] ( 6, 48 ) byref -> [fp+0x10] multi-def "CSE - aggressive"
-; V128 rat0 [V128,T34] ( 3, 6 ) long -> x23 "fgMakeTemp is creating a new local variable"
-; V129 rat1 [V129,T41] ( 3, 3 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
+; V128 rat0 [V128,T40] ( 3, 3 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 32
@@ -186,16 +185,14 @@ G_M10941_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M10941_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
- adrp x23, [HIGH RELOC #0xD1FFAB1E]
- add x23, x23, [LOW RELOC #0xD1FFAB1E]
- ldr x0, [x23, #-0x08]
- cbnz x0, G_M10941_IG31
- ;; size=16 bbWeight=1 PerfScore 5.00
-G_M10941_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
- ldrb w0, [x23]
- cbnz w0, G_M10941_IG09
- ;; size=8 bbWeight=1 PerfScore 4.00
-G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref
+ bl CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
+ ; byrRegs +[x0]
+ ; gcr arg pop 0
+ ldrb w0, [x0]
+ ; byrRegs -[x0]
+ cbnz w0, G_M10941_IG08
+ ;; size=12 bbWeight=1 PerfScore 5.00
+G_M10941_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -205,7 +202,7 @@ G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=300000 {x20
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M10941_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
+G_M10941_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}, byref, isz
stp x21, x20, [fp, #0x20] // [V05 loc3], [V03 loc1]
sub w0, w22, w19
sbfiz x0, x0, #1, #32
@@ -215,30 +212,30 @@ G_M10941_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21
sub x19, x0, #2
mov x23, x20
cmp x20, x22
- bhi G_M10941_IG27
+ bhi G_M10941_IG26
;; size=40 bbWeight=1 PerfScore 7.00
-G_M10941_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG09: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x20-x21]
mov x24, x21
mov x25, x23
cmp x21, x19
- bhi G_M10941_IG26
+ bhi G_M10941_IG25
;; size=16 bbWeight=4 PerfScore 10.00
-G_M10941_IG11: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG10: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrh w26, [x24]
movn w0, #0xD1FFAB1E
add w0, w26, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG13
+ bhi G_M10941_IG12
;; size=20 bbWeight=16 PerfScore 88.00
-G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG11: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp x24, x19
- bne G_M10941_IG15
+ bne G_M10941_IG14
;; size=8 bbWeight=8 PerfScore 12.00
-G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrh w27, [x25]
cmp w26, w27
- beq G_M10941_IG14
+ beq G_M10941_IG13
mov w0, w26
bl <unknown method>
; gcr arg pop 0
@@ -256,34 +253,48 @@ G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w0, w0, w26
uxth w0, w0
cmp w0, w27
- bne G_M10941_IG26
+ bne G_M10941_IG25
;; size=72 bbWeight=8 PerfScore 168.00
-G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x28]
add x24, x24, #2
add x25, x25, #2
- b G_M10941_IG25
+ b G_M10941_IG24
;; size=12 bbWeight=8 PerfScore 16.00
-G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldrh w27, [x25]
movn w0, #0xD1FFAB1E
add w0, w27, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG24
+ bhi G_M10941_IG23
ldrh w28, [x25, #0x02]
movn w0, #0xD1FFAB1E
add w0, w28, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG24
+ bhi G_M10941_IG23
ldrh w2, [x24, #0x02]
movn w0, #0xD1FFAB1E
add w0, w2, w0
cmp w0, #0xD1FFAB1E
- bhi G_M10941_IG24
+ bhi G_M10941_IG23
str w2, [fp, #0x18] // [V46 tmp35]
movn w0, #0xD1FFAB1E
add w0, w27, w0
cmp w0, #0xD1FFAB1E
+ bls G_M10941_IG15
+ adrp x1, [HIGH RELOC #0xD1FFAB1E]
+ add x1, x1, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x1]
+ mov x0, x1
+ ; gcrRegs +[x0]
+ bl <unknown method>
+ ; gcrRegs -[x0-x1]
+ ; gcr arg pop 0
+ ;; size=96 bbWeight=8 PerfScore 180.00
+G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movn w0, #0xD1FFAB1E
+ add w0, w28, w0
+ cmp w0, #0xD1FFAB1E
bls G_M10941_IG16
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
@@ -292,23 +303,9 @@ G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x0]
bl <unknown method>
; gcrRegs -[x0-x1]
- ; gcr arg pop 0
- ;; size=96 bbWeight=8 PerfScore 180.00
-G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movn w0, #0xD1FFAB1E
- add w0, w28, w0
- cmp w0, #0xD1FFAB1E
- bls G_M10941_IG17
- adrp x1, [HIGH RELOC #0xD1FFAB1E]
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ; gcrRegs +[x1]
- mov x0, x1
- ; gcrRegs +[x0]
- bl <unknown method>
- ; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=32 bbWeight=8 PerfScore 40.00
-G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, w27
bl System.Text.UnicodeDebug:AssertIsHighSurrogateCodePoint(uint)
; gcr arg pop 0
@@ -321,7 +318,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add w28, w0, w27
movn w0, #0xD1FFAB1E LSL #16
cmp w28, w0
- bhi G_M10941_IG32
+ bhi G_M10941_IG30
mov w0, w28
bl <unknown method>
; gcr arg pop 0
@@ -351,7 +348,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movn w0, #0xD1FFAB1E
add w0, w2, w0
cmp w0, #0xD1FFAB1E
- bls G_M10941_IG18
+ bls G_M10941_IG17
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
; gcrRegs +[x1]
@@ -361,10 +358,24 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0-x1]
; gcr arg pop 0
;; size=160 bbWeight=8 PerfScore 224.00
-G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movn w0, #0xD1FFAB1E
add w0, w28, w0
cmp w0, #0xD1FFAB1E
+ bls G_M10941_IG18
+ adrp x1, [HIGH RELOC #0xD1FFAB1E]
+ add x1, x1, [LOW RELOC #0xD1FFAB1E]
+ ; gcrRegs +[x1]
+ mov x0, x1
+ ; gcrRegs +[x0]
+ bl <unknown method>
+ ; gcrRegs -[x0-x1]
+ ; gcr arg pop 0
+ ;; size=32 bbWeight=8 PerfScore 40.00
+G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movn w0, #0xD1FFAB1E
+ add w0, w26, w0
+ cmp w0, #0xD1FFAB1E
bls G_M10941_IG19
adrp x1, [HIGH RELOC #0xD1FFAB1E]
add x1, x1, [LOW RELOC #0xD1FFAB1E]
@@ -377,7 +388,8 @@ G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=32 bbWeight=8 PerfScore 40.00
G_M10941_IG19: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movn w0, #0xD1FFAB1E
- add w0, w26, w0
+ ldr w3, [fp, #0x18] // [V46 tmp35]
+ add w0, w3, w0
cmp w0, #0xD1FFAB1E
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.windows.arm64.checked.mch |
44 |
42 |
0 |
2 |
-2,820 |
+0 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
163 |
163 |
0 |
0 |
-6,688 |
+0 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
152 |
150 |
0 |
2 |
-7,268 |
+0 |
| coreclr_tests.run.windows.arm64.checked.mch |
11 |
11 |
0 |
0 |
-676 |
+0 |
| libraries.crossgen2.windows.arm64.checked.mch |
7 |
5 |
0 |
2 |
-76 |
+0 |
| libraries.pmi.windows.arm64.checked.mch |
157 |
157 |
0 |
0 |
-8,852 |
+0 |
| libraries_tests.run.windows.arm64.Release.mch |
43 |
42 |
1 |
0 |
-1,288 |
+16 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
73 |
71 |
0 |
2 |
-4,260 |
+0 |
| realworld.run.windows.arm64.checked.mch |
85 |
79 |
5 |
1 |
-11,808 |
+24 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
484 |
484 |
0 |
0 |
-17,640 |
+0 |
|
1,219 |
1,204 |
6 |
9 |
-61,376 |
+40 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.windows.arm64.checked.mch |
1,132 |
0 |
1,132 |
0 (0.00%) |
1,748 (53.36%) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
8,975 |
7,709 |
1,266 |
1 (0.01%) |
5,908 (38.67%) |
| benchmarks.run_tiered.windows.arm64.checked.mch |
6,963 |
5,655 |
1,308 |
0 (0.00%) |
4,243 (36.57%) |
| coreclr_tests.run.windows.arm64.checked.mch |
310 |
3 |
307 |
0 (0.00%) |
870 (55.20%) |
| libraries.crossgen2.windows.arm64.checked.mch |
92,814 |
12 |
92,802 |
1 (0.00%) |
81,674 (46.70%) |
| libraries.pmi.windows.arm64.checked.mch |
4,507 |
0 |
4,507 |
0 (0.00%) |
2,259 (31.54%) |
| libraries_tests.run.windows.arm64.Release.mch |
2,341 |
1,904 |
437 |
0 (0.00%) |
3,209 (53.97%) |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
858 |
0 |
858 |
0 (0.00%) |
1,425 (53.19%) |
| realworld.run.windows.arm64.checked.mch |
1,673 |
0 |
1,673 |
1 (0.02%) |
3,035 (59.46%) |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
12,693 |
6 |
12,687 |
0 (0.00%) |
11,219 (46.38%) |
|
132,266 |
15,289 |
116,977 |
3 (0.00%) |
115,590 (45.92%) |
jit-analyze output
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: 182012 (overridden on cmd)
Total bytes of diff: 179192 (overridden on cmd)
Total bytes of delta: -2820 (-1.55 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-544 : 540.dasm (-77.27 % of base)
-272 : 9.dasm (-72.34 % of base)
-120 : 847.dasm (-50.00 % of base)
-112 : 577.dasm (-25.45 % of base)
-76 : 1757.dasm (-11.24 % of base)
-72 : 245.dasm (-10.53 % of base)
-72 : 953.dasm (-52.94 % of base)
-68 : 3288.dasm (-36.96 % of base)
-68 : 2251.dasm (-38.64 % of base)
-64 : 2571.dasm (-40.00 % of base)
-60 : 1234.dasm (-41.67 % of base)
-56 : 1141.dasm (-33.33 % of base)
-56 : 2559.dasm (-60.87 % of base)
-48 : 1332.dasm (-3.77 % of base)
-48 : 1401.dasm (-16.22 % of base)
-48 : 3062.dasm (-17.65 % of base)
-48 : 1961.dasm (-9.60 % of base)
-48 : 2989.dasm (-40.00 % of base)
-48 : 879.dasm (-5.74 % of base)
-44 : 1820.dasm (-12.50 % of base)
42 total files with Code Size differences (42 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-544 (-77.27 % of base) : 540.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-120 (-50.00 % of base) : 847.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-112 (-25.45 % of base) : 577.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-76 (-11.24 % of base) : 1757.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetGenericMethodBaseDefinition(System.Reflection.MethodBase):System.Reflection.MethodBase (FullOpts)
-72 (-52.94 % of base) : 953.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-72 (-10.53 % of base) : 245.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-68 (-36.96 % of base) : 3288.dasm - System.Globalization.GregorianCalendar:TryToDateTime(int,int,int,int,int,int,int,int,byref):ubyte:this (FullOpts)
-68 (-38.64 % of base) : 2251.dasm - System.SR:GetResourceString(System.String):System.String (FullOpts)
-64 (-40.00 % of base) : 2571.dasm - System.Xml.Serialization.CodeGenerator:GetVariableType(System.Object):System.Type (FullOpts)
-60 (-41.67 % of base) : 1234.dasm - Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (FullOpts)
-56 (-60.87 % of base) : 2559.dasm - System.Text.RegularExpressions.Regex:.ctor():this (FullOpts)
-56 (-33.33 % of base) : 1141.dasm - Utf8Json.JsonSerializer:Serialize[System.__Canon](System.IO.Stream,System.__Canon) (FullOpts)
-48 (-9.60 % of base) : 1961.dasm - Microsoft.Extensions.Logging.EventSourceLoggerFactoryExtensions:AddEventSourceLogger(Microsoft.Extensions.Logging.ILoggingBuilder):Microsoft.Extensions.Logging.ILoggingBuilder (FullOpts)
-48 (-16.22 % of base) : 1401.dasm - System.Buffers.StringSearchValues:<Create>g__NormalizeIfNeeded|2_1(System.String,ubyte):System.String (FullOpts)
-48 (-3.77 % of base) : 1332.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (FullOpts)
-48 (-17.65 % of base) : 3062.dasm - System.Threading.PortableThreadPool:ShouldAdjustMaxWorkersActive(int):ubyte:this (FullOpts)
-48 (-5.74 % of base) : 879.dasm - System.Threading.ProcessorIdCache:ProcessorNumberSpeedCheck():ubyte (FullOpts)
-48 (-40.00 % of base) : 2989.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-44 (-10.19 % of base) : 2032.dasm - Microsoft.Extensions.DependencyInjection.DependencyInjectionEventSource:CallSiteBuilt(Microsoft.Extensions.DependencyInjection.ServiceProvider,System.Type,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (FullOpts)
Top method improvements (percentages):
-544 (-77.27 % of base) : 540.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-56 (-60.87 % of base) : 2559.dasm - System.Text.RegularExpressions.Regex:.ctor():this (FullOpts)
-72 (-52.94 % of base) : 953.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-120 (-50.00 % of base) : 847.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-44 (-45.83 % of base) : 2992.dasm - System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
-60 (-41.67 % of base) : 1234.dasm - Utf8Json.Resolvers.BuiltinResolver+BuiltinResolverGetFormatterHelper:GetFormatter(System.Type):System.Object (FullOpts)
-48 (-40.00 % of base) : 2989.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-64 (-40.00 % of base) : 2571.dasm - System.Xml.Serialization.CodeGenerator:GetVariableType(System.Object):System.Type (FullOpts)
-44 (-39.29 % of base) : 1275.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-68 (-38.64 % of base) : 2251.dasm - System.SR:GetResourceString(System.String):System.String (FullOpts)
-68 (-36.96 % of base) : 3288.dasm - System.Globalization.GregorianCalendar:TryToDateTime(int,int,int,int,int,int,int,int,byref):ubyte:this (FullOpts)
-56 (-33.33 % of base) : 1141.dasm - Utf8Json.JsonSerializer:Serialize[System.__Canon](System.IO.Stream,System.__Canon) (FullOpts)
-24 (-31.58 % of base) : 3307.dasm - System.Collections.ContainsKeyTrue`2+<>c[System.__Canon,System.__Canon]:<Setup>b__10_1(System.__Canon):System.__Canon:this (FullOpts)
-44 (-31.43 % of base) : 873.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (FullOpts)
-44 (-31.43 % of base) : 872.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
-44 (-26.19 % of base) : 3005.dasm - System.Threading.PortableThreadPool+GateThread:EnsureRunningSlow(System.Threading.PortableThreadPool) (FullOpts)
-24 (-26.09 % of base) : 1998.dasm - Microsoft.Extensions.DependencyInjection.ServiceDescriptor:get_ImplementationFactory():System.Func`2[System.IServiceProvider,System.Object]:this (FullOpts)
-44 (-25.58 % of base) : 22.dasm - System.StartupHookProvider:ManagedStartup(ulong) (FullOpts)
-112 (-25.45 % of base) : 577.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
42 total methods with Code Size differences (42 improved, 0 regressed).
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: 1173228 (overridden on cmd)
Total bytes of diff: 1166540 (overridden on cmd)
Total bytes of delta: -6688 (-0.57 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1900 : 7907.dasm (-29.86 % of base)
-216 : 11959.dasm (-21.95 % of base)
-180 : 10450.dasm (-16.07 % of base)
-116 : 10419.dasm (-8.10 % of base)
-88 : 13596.dasm (-44.90 % of base)
-88 : 2543.dasm (-40.74 % of base)
-88 : 2544.dasm (-40.74 % of base)
-84 : 14149.dasm (-55.26 % of base)
-80 : 3450.dasm (-31.25 % of base)
-76 : 12697.dasm (-44.19 % of base)
-72 : 13492.dasm (-22.78 % of base)
-64 : 13227.dasm (-12.21 % of base)
-60 : 12917.dasm (-17.24 % of base)
-60 : 21.dasm (-22.73 % of base)
-56 : 13093.dasm (-20.29 % of base)
-56 : 8893.dasm (-32.56 % of base)
-52 : 8011.dasm (-27.08 % of base)
-52 : 8977.dasm (-15.66 % of base)
-48 : 11777.dasm (-46.15 % of base)
-44 : 7273.dasm (-22.92 % of base)
79 total files with Code Size differences (79 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1900 (-29.86 % of base) : 7907.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-216 (-21.95 % of base) : 11959.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterlessConstructor(System.Type,System.Reflection.ConstructorInfo):System.Func`1[System.Object]:this (Tier0)
-180 (-16.07 % of base) : 10450.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-116 (-8.10 % of base) : 10419.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-88 (-44.90 % of base) : 13596.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-88 (-40.74 % of base) : 2544.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2543.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-84 (-55.26 % of base) : 14149.dasm - System.Type:op_Equality(System.Type,System.Type):ubyte (Tier1)
-80 (-31.25 % of base) : 3450.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-76 (-44.19 % of base) : 12697.dasm - System.Numerics.Tests.Perf_Vector4:ClampBenchmark():System.Numerics.Vector4:this (Tier0)
-72 (-22.78 % of base) : 13492.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-64 (-12.21 % of base) : 13227.dasm - System.Threading.CancellationTokenSource:CancelAfter(uint):this (Tier0)
-60 (-22.73 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-60 (-17.24 % of base) : 12917.dasm - System.Text.RegularExpressions.Symbolic.UnicodeCategoryConditions:WordLetterForAnchors(System.Text.RegularExpressions.Symbolic.CharSetSolver):System.Text.RegularExpressions.Symbolic.BDD (Tier0)
-56 (-20.29 % of base) : 13093.dasm - System.Net.Security.TlsFrameHelper:DecodeString(System.ReadOnlySpan`1[ubyte]):System.String (Tier0)
-56 (-32.56 % of base) : 8893.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-52 (-15.66 % of base) : 8977.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Security.SslSessionsCache+SslCredKey,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-52 (-27.08 % of base) : 8011.dasm - System.Diagnostics.Metrics.MeterListener:GetAllListeners():System.Collections.Generic.List`1[System.Diagnostics.Metrics.MeterListener] (Tier0)
-48 (-46.15 % of base) : 11777.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-44 (-22.92 % of base) : 7273.dasm - System.Threading.Thread+StartHelper:Run():this (Tier0)
Top method improvements (percentages):
-84 (-55.26 % of base) : 14149.dasm - System.Type:op_Equality(System.Type,System.Type):ubyte (Tier1)
-48 (-46.15 % of base) : 11777.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-88 (-44.90 % of base) : 13596.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-76 (-44.19 % of base) : 12697.dasm - System.Numerics.Tests.Perf_Vector4:ClampBenchmark():System.Numerics.Vector4:this (Tier0)
-88 (-40.74 % of base) : 2544.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2543.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-38.46 % of base) : 3177.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:get_Default():MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext (Tier0)
-20 (-38.46 % of base) : 4897.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver:get_Instance():Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver (Tier0)
-20 (-38.46 % of base) : 13656.dasm - Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory:get_Instance():Newtonsoft.Json.Utilities.DynamicReflectionDelegateFactory (Tier0)
-20 (-38.46 % of base) : 13860.dasm - Newtonsoft.Json.Utilities.ExpressionReflectionDelegateFactory:get_Instance():Newtonsoft.Json.Utilities.ReflectionDelegateFactory (Tier0)
-20 (-38.46 % of base) : 7544.dasm - System.Diagnostics.LegacyPropagator:get_Instance():System.Diagnostics.DistributedContextPropagator (Tier0)
-20 (-38.46 % of base) : 7990.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 73.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 2523.dasm - System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
-20 (-38.46 % of base) : 425.dasm - System.Globalization.GlobalizationMode:get_UseNls():ubyte (Tier0)
-20 (-38.46 % of base) : 382.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
-20 (-38.46 % of base) : 2105.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-38.46 % of base) : 7898.dasm - System.Net.Http.GlobalHttpSettings+DiagnosticsHandler:get_EnableActivityPropagation():ubyte (Tier0)
-20 (-38.46 % of base) : 7504.dasm - System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
-20 (-38.46 % of base) : 7961.dasm - System.Net.Http.Headers.AltSvcHeaderParser:get_Parser():System.Net.Http.Headers.AltSvcHeaderParser (Tier0)
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: 862284 (overridden on cmd)
Total bytes of diff: 855016 (overridden on cmd)
Total bytes of delta: -7268 (-0.84 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1900 : 11290.dasm (-29.86 % of base)
-544 : 2715.dasm (-77.27 % of base)
-300 : 7293.dasm (-11.70 % of base)
-180 : 6199.dasm (-16.07 % of base)
-136 : 9523.dasm (-54.84 % of base)
-136 : 9524.dasm (-43.04 % of base)
-136 : 9525.dasm (-43.59 % of base)
-128 : 9522.dasm (-55.17 % of base)
-116 : 6163.dasm (-8.10 % of base)
-116 : 10238.dasm (-53.70 % of base)
-112 : 2813.dasm (-25.45 % of base)
-104 : 7440.dasm (-19.26 % of base)
-88 : 2302.dasm (-40.74 % of base)
-88 : 2303.dasm (-40.74 % of base)
-80 : 10249.dasm (-47.62 % of base)
-80 : 5026.dasm (-31.25 % of base)
-60 : 21.dasm (-22.73 % of base)
-56 : 8438.dasm (-32.56 % of base)
-44 : 3869.dasm (-7.33 % of base)
-44 : 8593.dasm (-22.92 % of base)
73 total files with Code Size differences (73 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-1900 (-29.86 % of base) : 11290.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-544 (-77.27 % of base) : 2715.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-300 (-11.70 % of base) : 7293.dasm - ProtoBuf.Meta.ValueMember:TryGetCoreSerializer(ProtoBuf.Meta.RuntimeTypeModel,int,int,System.Type,byref,ubyte,ubyte,ubyte,ubyte):ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode (Tier0)
-180 (-16.07 % of base) : 6199.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-136 (-43.04 % of base) : 9524.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:GetResult():int:this (Tier1)
-136 (-54.84 % of base) : 9523.dasm - System.Threading.Tasks.ValueTask`1[int]:get_IsCompleted():ubyte:this (Tier1)
-136 (-43.59 % of base) : 9525.dasm - System.Threading.Tasks.ValueTask`1[int]:get_Result():int:this (Tier1)
-128 (-55.17 % of base) : 9522.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Tier1)
-116 (-8.10 % of base) : 6163.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-116 (-53.70 % of base) : 10238.dasm - System.Threading.Tasks.ValueTask:AsTask():System.Threading.Tasks.Task:this (Tier1)
-112 (-25.45 % of base) : 2813.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-104 (-19.26 % of base) : 7440.dasm - ProtoBuf.Internal.TypeCompatibilityHelper:GetModuleCompatibilityLevel(System.Reflection.Module):int (Tier0)
-88 (-40.74 % of base) : 2303.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2302.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-80 (-31.25 % of base) : 5026.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-80 (-47.62 % of base) : 10249.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
-60 (-22.73 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-56 (-32.56 % of base) : 8438.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-44 (-7.33 % of base) : 3869.dasm - System.MemoryExtensions:Equals(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):ubyte (Tier1)
-44 (-22.92 % of base) : 8593.dasm - System.Threading.Thread+StartHelper:Run():this (Tier0)
Top method improvements (percentages):
-544 (-77.27 % of base) : 2715.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-128 (-55.17 % of base) : 9522.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:get_IsCompleted():ubyte:this (Tier1)
-136 (-54.84 % of base) : 9523.dasm - System.Threading.Tasks.ValueTask`1[int]:get_IsCompleted():ubyte:this (Tier1)
-116 (-53.70 % of base) : 10238.dasm - System.Threading.Tasks.ValueTask:AsTask():System.Threading.Tasks.Task:this (Tier1)
-80 (-47.62 % of base) : 10249.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem,ubyte):ubyte (Tier1)
-136 (-43.59 % of base) : 9525.dasm - System.Threading.Tasks.ValueTask`1[int]:get_Result():int:this (Tier1)
-136 (-43.04 % of base) : 9524.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]:GetResult():int:this (Tier1)
-88 (-40.74 % of base) : 2303.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-88 (-40.74 % of base) : 2302.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-20 (-38.46 % of base) : 9069.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-20 (-38.46 % of base) : 9864.dasm - Microsoft.Extensions.Logging.NullScope:get_Instance():Microsoft.Extensions.Logging.NullScope (Tier0)
-20 (-38.46 % of base) : 11368.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 73.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-20 (-38.46 % of base) : 2282.dasm - System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
-20 (-38.46 % of base) : 400.dasm - System.Globalization.GlobalizationMode:get_UseNls():ubyte (Tier0)
-20 (-38.46 % of base) : 357.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
-20 (-38.46 % of base) : 1932.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-20 (-38.46 % of base) : 11208.dasm - System.Net.CredentialCache:get_DefaultCredentials():System.Net.ICredentials (Tier0)
-20 (-38.46 % of base) : 11283.dasm - System.Net.Http.GlobalHttpSettings+DiagnosticsHandler:get_EnableActivityPropagation():ubyte (Tier0)
-20 (-38.46 % of base) : 11099.dasm - System.Net.Http.HttpMethod:get_Get():System.Net.Http.HttpMethod (Tier0)
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: 77860 (overridden on cmd)
Total bytes of diff: 77184 (overridden on cmd)
Total bytes of delta: -676 (-0.87 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-216 : 29.dasm (-80.60 % of base)
-100 : 15.dasm (-26.60 % of base)
-52 : 60.dasm (-46.43 % of base)
-44 : 6.dasm (-42.31 % of base)
-44 : 580.dasm (-39.29 % of base)
-44 : 523.dasm (-68.75 % of base)
-44 : 184.dasm (-52.38 % of base)
-44 : 574.dasm (-7.80 % of base)
-36 : 367.dasm (-7.76 % of base)
-36 : 3.dasm (-25.00 % of base)
-16 : 597.dasm (-22.22 % of base)
11 total files with Code Size differences (11 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-216 (-80.60 % of base) : 29.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-100 (-26.60 % of base) : 15.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-52 (-46.43 % of base) : 60.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
-44 (-7.80 % of base) : 574.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
-44 (-52.38 % of base) : 184.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
-44 (-42.31 % of base) : 6.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-44 (-39.29 % of base) : 580.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-44 (-68.75 % of base) : 523.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
-36 (-7.76 % of base) : 367.dasm - Program:TestEntryPoint():int (FullOpts)
-36 (-25.00 % of base) : 3.dasm - Test_negativegenerics:TestEntryPoint():int (FullOpts)
-16 (-22.22 % of base) : 597.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
Top method improvements (percentages):
-216 (-80.60 % of base) : 29.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-44 (-68.75 % of base) : 523.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
-44 (-52.38 % of base) : 184.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
-52 (-46.43 % of base) : 60.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
-44 (-42.31 % of base) : 6.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-44 (-39.29 % of base) : 580.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-100 (-26.60 % of base) : 15.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-36 (-25.00 % of base) : 3.dasm - Test_negativegenerics:TestEntryPoint():int (FullOpts)
-16 (-22.22 % of base) : 597.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
-44 (-7.80 % of base) : 574.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
-36 (-7.76 % of base) : 367.dasm - Program:TestEntryPoint():int (FullOpts)
11 total methods with Code Size differences (11 improved, 0 regressed).
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: 10005180 (overridden on cmd)
Total bytes of diff: 10005104 (overridden on cmd)
Total bytes of delta: -76 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-28 : 21951.dasm (-36.84 % of base)
-28 : 21952.dasm (-35.00 % of base)
-12 : 166045.dasm (-5.88 % of base)
-4 : 166049.dasm (-4.00 % of base)
-4 : 168839.dasm (-2.50 % of base)
5 total files with Code Size differences (5 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-28 (-36.84 % of base) : 21951.dasm - System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
-28 (-35.00 % of base) : 21952.dasm - System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
-12 (-5.88 % of base) : 166045.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-4 (-2.50 % of base) : 168839.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
-4 (-4.00 % of base) : 166049.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
Top method improvements (percentages):
-28 (-36.84 % of base) : 21951.dasm - System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
-28 (-35.00 % of base) : 21952.dasm - System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
-12 (-5.88 % of base) : 166045.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-4 (-4.00 % of base) : 166049.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
-4 (-2.50 % of base) : 168839.dasm - Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
5 total methods with Code Size differences (5 improved, 0 regressed).
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: 381864 (overridden on cmd)
Total bytes of diff: 373012 (overridden on cmd)
Total bytes of delta: -8852 (-2.32 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-772 : 566.dasm (-50.66 % of base)
-356 : 7334.dasm (-43.00 % of base)
-104 : 3578.dasm (-18.44 % of base)
-104 : 3600.dasm (-18.71 % of base)
-104 : 3561.dasm (-18.44 % of base)
-100 : 25.dasm (-26.60 % of base)
-96 : 3588.dasm (-17.02 % of base)
-96 : 3594.dasm (-16.00 % of base)
-92 : 1318.dasm (-62.16 % of base)
-92 : 301.dasm (-27.38 % of base)
-88 : 4170.dasm (-8.00 % of base)
-80 : 3653.dasm (-11.90 % of base)
-80 : 4365.dasm (-11.63 % of base)
-80 : 4366.dasm (-11.90 % of base)
-80 : 3652.dasm (-11.63 % of base)
-80 : 4173.dasm (-7.75 % of base)
-76 : 6975.dasm (-32.20 % of base)
-72 : 2091.dasm (-36.00 % of base)
-68 : 2093.dasm (-36.96 % of base)
-68 : 705.dasm (-26.56 % of base)
80 total files with Code Size differences (80 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-772 (-50.66 % of base) : 566.dasm - Microsoft.CSharp.RuntimeBinder.RuntimeBinderExtensions:IsEquivalentTo(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
-356 (-43.00 % of base) : 7334.dasm - System.Threading.Tasks.TaskAsyncEnumerableExtensions+<ToBlockingEnumerable>d__3`1[ubyte]:<>m__Finally1():this (FullOpts)
-104 (-18.71 % of base) : 3600.dasm - System.Lazy`1[long]:CreateValue():long:this (FullOpts)
-104 (-18.44 % of base) : 3578.dasm - System.Lazy`1[short]:CreateValue():short:this (FullOpts)
-104 (-18.44 % of base) : 3561.dasm - System.Lazy`1[ubyte]:CreateValue():ubyte:this (FullOpts)
-100 (-26.60 % of base) : 25.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-96 (-17.02 % of base) : 3588.dasm - System.Lazy`1[double]:CreateValue():double:this (FullOpts)
-96 (-16.00 % of base) : 3594.dasm - System.Lazy`1[System.Numerics.Vector`1[float]]:CreateValue():System.Numerics.Vector`1[float]:this (FullOpts)
-92 (-27.38 % of base) : 301.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:DeduceArgumentRestriction(int,Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder,System.Dynamic.DynamicMetaObject,Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo):System.Dynamic.BindingRestrictions (FullOpts)
-92 (-62.16 % of base) : 1318.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:Get(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (FullOpts)
-88 (-8.00 % of base) : 4170.dasm - System.MemoryExtensions:TrimStart[ubyte](System.Memory`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.Memory`1[ubyte] (FullOpts)
-80 (-11.63 % of base) : 3652.dasm - System.Memory`1[short]:CopyTo(System.Memory`1[short]):this (FullOpts)
-80 (-11.90 % of base) : 3653.dasm - System.Memory`1[short]:TryCopyTo(System.Memory`1[short]):ubyte:this (FullOpts)
-80 (-7.75 % of base) : 4173.dasm - System.MemoryExtensions:TrimStart[ubyte](System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.ReadOnlyMemory`1[ubyte] (FullOpts)
-80 (-11.63 % of base) : 4365.dasm - System.ReadOnlyMemory`1[short]:CopyTo(System.Memory`1[short]):this (FullOpts)
-80 (-11.90 % of base) : 4366.dasm - System.ReadOnlyMemory`1[short]:TryCopyTo(System.Memory`1[short]):ubyte:this (FullOpts)
-76 (-32.20 % of base) : 6975.dasm - System.Threading.Tasks.Task`1[ubyte]:WaitAsync(System.TimeSpan,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[ubyte]:this (FullOpts)
-72 (-36.00 % of base) : 2091.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.TypeTable:InsertAggregate(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType) (FullOpts)
-68 (-26.56 % of base) : 705.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.ComInvokeBinder:MarshalType(System.Dynamic.DynamicMetaObject,ubyte):System.Type (FullOpts)
-68 (-36.96 % of base) : 2093.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.TypeTable:InsertArray(Microsoft.CSharp.RuntimeBinder.Semantics.CType,int,Microsoft.CSharp.RuntimeBinder.Semantics.ArrayType) (FullOpts)
Top method improvements (percentages):
-56 (-73.68 % of base) : 274.dasm - System.Runtime.InteropServices.BuiltInInteropVariantExtensions:GetByRefDataRef[ubyte](byref):byref (FullOpts)
-92 (-62.16 % of base) : 1318.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal:Get(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.ConstVal (FullOpts)
-44 (-57.89 % of base) : 769.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.ComTypeDesc:get_EmptyEvents():System.Collections.Generic.Dictionary`2[System.String,Microsoft.CSharp.RuntimeBinder.ComInterop.ComEventDesc] (FullOpts)
-44 (-57.89 % of base) : 691.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.SplatInvokeBinder:get_Instance():Microsoft.CSharp.RuntimeBinder.ComInterop.SplatInvokeBinder (FullOpts)
-44 (-57.89 % of base) : 350.dasm - Microsoft.CSharp.RuntimeBinder.CSharpConvertBinder:Microsoft.CSharp.RuntimeBinder.ICSharpBinder.GetArgumentInfo(int):Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo:this (FullOpts)
-44 (-57.89 % of base) : 2217.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[double](double):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2216.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[int](int):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2219.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[long](long):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2215.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[short](short):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2213.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[System.__Canon](System.__Canon):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2218.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2214.dasm - Microsoft.Extensions.Logging.Debug.DebugLogger:BeginScope[ubyte](ubyte):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2200.dasm - Microsoft.Extensions.Logging.NullExternalScopeProvider:get_Instance():Microsoft.Extensions.Logging.IExternalScopeProvider (FullOpts)
-44 (-57.89 % of base) : 2208.dasm - Microsoft.Extensions.Logging.NullExternalScopeProvider:Microsoft.Extensions.Logging.IExternalScopeProvider.Push(System.Object):System.IDisposable:this (FullOpts)
-44 (-57.89 % of base) : 2211.dasm - Microsoft.Extensions.Logging.NullScope:get_Instance():Microsoft.Extensions.Logging.NullScope (FullOpts)
-44 (-57.89 % of base) : 140.dasm - System.SR:UsingResourceKeys():ubyte (FullOpts)
-44 (-57.89 % of base) : 6680.dasm - System.Threading.Lock:get_ContentionCount():long (FullOpts)
-44 (-57.89 % of base) : 6896.dasm - System.Threading.WindowsThreadPool:get_ThreadCount():int (FullOpts)
-60 (-57.69 % of base) : 6894.dasm - System.Threading.WindowsThreadPool:GetMaxThreads(byref,byref) (FullOpts)
-44 (-55.00 % of base) : 6902.dasm - System.Threading.WindowsThreadPool+ThreadCountHolder:.ctor():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: 334372 (overridden on cmd)
Total bytes of diff: 333100 (overridden on cmd)
Total bytes of delta: -1272 (-0.38 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 2231.dasm (10.00 % of base)
Top file improvements (bytes):
-152 : 3427.dasm (-43.18 % of base)
-72 : 4196.dasm (-22.78 % of base)
-68 : 2297.dasm (-10.69 % of base)
-52 : 1133.dasm (-18.06 % of base)
-40 : 2226.dasm (-10.00 % of base)
-40 : 419.dasm (-7.19 % of base)
-40 : 2746.dasm (-35.71 % of base)
-40 : 28.dasm (-15.38 % of base)
-40 : 3677.dasm (-13.16 % of base)
-40 : 5264.dasm (-43.48 % of base)
-32 : 2315.dasm (-12.31 % of base)
-32 : 3490.dasm (-29.63 % of base)
-32 : 3481.dasm (-24.24 % of base)
-32 : 4198.dasm (-34.78 % of base)
-28 : 3480.dasm (-4.40 % of base)
-28 : 473.dasm (-3.32 % of base)
-20 : 2406.dasm (-35.71 % of base)
-20 : 2739.dasm (-35.71 % of base)
-20 : 2821.dasm (-25.00 % of base)
-20 : 2848.dasm (-7.14 % of base)
43 total files with Code Size differences (42 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
16 (10.00 % of base) : 2231.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
Top method improvements (bytes):
-152 (-43.18 % of base) : 3427.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationTests:WriteTestFiles():this (Tier0)
-72 (-22.78 % of base) : 4196.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-68 (-10.69 % of base) : 2297.dasm - Xunit.Sdk.SerializationHelper:GetType(System.String,System.String):System.Type (Tier0)
-52 (-18.06 % of base) : 1133.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-40 (-15.38 % of base) : 28.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:GetCurrent():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-40 (-43.48 % of base) : 5264.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
-40 (-13.16 % of base) : 3677.dasm - System.Text.Json.JsonElement:ToString():System.String:this (Tier0)
-40 (-10.00 % of base) : 2226.dasm - Xunit.ConsoleClient.ConsoleRunner:ValidateFileExists(System.Object,System.String):ubyte:this (Tier0)
-40 (-7.19 % of base) : 419.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier0)
-40 (-35.71 % of base) : 2746.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler+ReaderWriterLockWrapper:WriteLock():System.IDisposable (Tier0)
-32 (-29.63 % of base) : 3490.dasm - Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationProvider:Normalize(System.String):System.String (Tier0)
-32 (-24.24 % of base) : 3481.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:HasInvalidPathChars(System.String):ubyte (Tier0)
-32 (-34.78 % of base) : 4198.dasm - System.ComponentModel.WeakHashtable:.ctor():this (Tier0)
-32 (-12.31 % of base) : 2315.dasm - Xunit.Sdk.TestFramework:.ctor(Xunit.Abstractions.IMessageSink):this (Tier0)
-28 (-4.40 % of base) : 3480.dasm - Microsoft.Extensions.FileProviders.PhysicalFileProvider:GetFileInfo(System.String):Microsoft.Extensions.FileProviders.IFileInfo:this (Tier0)
-28 (-3.32 % of base) : 473.dasm - Xunit.DependencyContextAssemblyCache:GetFallbackRuntime(System.String):System.String:this (Tier0)
-20 (-26.32 % of base) : 309.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.Native.PlatformApis:GetOSPlatform():int (Tier0)
-20 (-38.46 % of base) : 306.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-20 (-2.20 % of base) : 95.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
-20 (-38.46 % of base) : 23.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
Top method regressions (percentages):
16 (10.00 % of base) : 2231.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
Top method improvements (percentages):
-40 (-43.48 % of base) : 5264.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (Tier1)
-152 (-43.18 % of base) : 3427.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationTests:WriteTestFiles():this (Tier0)
-20 (-38.46 % of base) : 306.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-20 (-38.46 % of base) : 23.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
-20 (-38.46 % of base) : 26.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:get_Current():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-20 (-38.46 % of base) : 58.dasm - Internal.Microsoft.Extensions.DependencyModel.FileSystemWrapper:get_Default():Internal.Microsoft.Extensions.DependencyModel.IFileSystem (Tier0)
-20 (-38.46 % of base) : 4083.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Comparison():System.Comparison`1[System.String] (Tier0)
-20 (-38.46 % of base) : 4085.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Instance():Microsoft.Extensions.Configuration.ConfigurationKeyComparer (Tier0)
-20 (-38.46 % of base) : 4901.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-40 (-35.71 % of base) : 2746.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler+ReaderWriterLockWrapper:WriteLock():System.IDisposable (Tier0)
-20 (-35.71 % of base) : 2731.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (Tier0)
-20 (-35.71 % of base) : 2406.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (Tier0)
-20 (-35.71 % of base) : 2739.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (Tier0)
-20 (-35.71 % of base) : 2270.dasm - Xunit.Xunit2Discoverer:GetSupportedPlatformSuffixes(int):System.String[] (Tier0)
-32 (-34.78 % of base) : 4198.dasm - System.ComponentModel.WeakHashtable:.ctor():this (Tier0)
-32 (-29.63 % of base) : 3490.dasm - Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationProvider:Normalize(System.String):System.String (Tier0)
-20 (-26.32 % of base) : 309.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.Native.PlatformApis:GetOSPlatform():int (Tier0)
-20 (-26.32 % of base) : 2714.dasm - Microsoft.DotNet.XUnitExtensions.DiscovererHelpers:get_IsMonoRuntime():ubyte (Tier0)
-20 (-25.00 % of base) : 2831.dasm - Xunit.Sdk.ExecutionContextHelper:get_IsSupported():ubyte (Tier0)
-20 (-25.00 % of base) : 2821.dasm - Xunit.Sdk.XunitTestAssemblyRunner:AfterTestAssemblyStartingAsync():System.Threading.Tasks.Task:this (Tier0)
43 total methods with Code Size differences (42 improved, 1 regressed).
librariestestsnotieredcompilation.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: 98900 (overridden on cmd)
Total bytes of diff: 94640 (overridden on cmd)
Total bytes of delta: -4260 (-4.31 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-544 : 67.dasm (-77.27 % of base)
-280 : 2401.dasm (-67.31 % of base)
-200 : 1186.dasm (-79.37 % of base)
-120 : 1161.dasm (-58.82 % of base)
-116 : 1870.dasm (-11.98 % of base)
-112 : 479.dasm (-25.45 % of base)
-104 : 121.dasm (-18.44 % of base)
-100 : 546.dasm (-26.60 % of base)
-88 : 139.dasm (-14.57 % of base)
-88 : 709.dasm (-44.90 % of base)
-76 : 963.dasm (-32.76 % of base)
-72 : 1326.dasm (-30.00 % of base)
-72 : 10.dasm (-10.53 % of base)
-52 : 2014.dasm (-14.29 % of base)
-52 : 774.dasm (-15.29 % of base)
-48 : 721.dasm (-32.43 % of base)
-44 : 124.dasm (-10.38 % of base)
-44 : 1274.dasm (-52.38 % of base)
-44 : 1298.dasm (-52.38 % of base)
-44 : 1338.dasm (-52.38 % of base)
61 total files with Code Size differences (61 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-544 (-77.27 % of base) : 67.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-280 (-67.31 % of base) : 2401.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-200 (-79.37 % of base) : 1186.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-120 (-58.82 % of base) : 1161.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-116 (-11.98 % of base) : 1870.dasm - Xunit.Sdk.CollectionTracker:CheckIfDictionariesAreEqual(Xunit.Sdk.CollectionTracker,Xunit.Sdk.CollectionTracker,System.Collections.IEqualityComparer):System.Nullable`1[ubyte] (FullOpts)
-112 (-25.45 % of base) : 479.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-104 (-18.44 % of base) : 121.dasm - System.Lazy`1[int]:CreateValue():int:this (FullOpts)
-100 (-26.60 % of base) : 546.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-88 (-44.90 % of base) : 709.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-88 (-14.57 % of base) : 139.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (FullOpts)
-76 (-32.76 % of base) : 963.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (FullOpts)
-72 (-30.00 % of base) : 1326.dasm - NativeExports.ComInterfaces+MyComWrapper:get_MyObjectComInterfaceEntries():ulong (FullOpts)
-72 (-10.53 % of base) : 10.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-52 (-14.29 % of base) : 2014.dasm - System.Xml.Linq.ElementWriter:WriteElement(System.Xml.Linq.XElement):this (FullOpts)
-52 (-15.29 % of base) : 774.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler:AddExecutionOptions(System.String,Xunit.Abstractions.ITestFrameworkExecutionOptions):this (FullOpts)
-48 (-32.43 % of base) : 721.dasm - ComInterfaceGenerator.Tests.GeneratedComInterfaceComImportInteropTests:get_IsSupported():ubyte (FullOpts)
-44 (-52.38 % of base) : 1379.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1428.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1824.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1396.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
Top method improvements (percentages):
-200 (-79.37 % of base) : 1186.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-544 (-77.27 % of base) : 67.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-280 (-67.31 % of base) : 2401.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-120 (-58.82 % of base) : 1161.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-44 (-57.89 % of base) : 2134.dasm - Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
-44 (-57.89 % of base) : 760.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 512.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 1937.dasm - Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 768.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-57.89 % of base) : 1974.dasm - Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-44 (-52.38 % of base) : 1379.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1428.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1824.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1396.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1298.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1185.dasm - <SharedTypes_ComInterfaces_IGetIntArray>FA214D816C95247C6B11496DF3E741F51CFFDF42655C9ADCC408020ADDEBD389B__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1756.dasm - <SharedTypes_ComInterfaces_IInt>F5760B97C133242F5A106190440B4906CD2EB48D5707A49A7150FCE3CC122F69A__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1611.dasm - <SharedTypes_ComInterfaces_IIntArray>FC8C36D862B5D89EFA40DC2F69A3F2BB75A6AFAFDD2DD51BB784960FEC6297044__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1763.dasm - <SharedTypes_ComInterfaces_IInterface>F0F8D3EC26B752C48BE9B9C143F24949B29CF1C6BE9A1BE3C3F507CEEFFF883D7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-52.38 % of base) : 1851.dasm - <SharedTypes_ComInterfaces_IJaggedIntArray>F9E7186D7D1C2305121E3CFFB9B96C704885894333BE2F6EA823FE55F12BCB2F5__InterfaceInformation:get_Iid():System.Guid (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: 400564 (overridden on cmd)
Total bytes of diff: 388780 (overridden on cmd)
Total bytes of delta: -11784 (-2.94 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
8 : 1940.dasm (6.90 % of base)
4 : 2104.dasm (2.33 % of base)
4 : 2992.dasm (2.78 % of base)
4 : 3030.dasm (2.33 % of base)
4 : 4475.dasm (2.33 % of base)
Top file improvements (bytes):
-6416 : 4604.dasm (-73.54 % of base)
-544 : 539.dasm (-77.27 % of base)
-292 : 4537.dasm (-62.39 % of base)
-272 : 9.dasm (-72.34 % of base)
-212 : 3353.dasm (-43.44 % of base)
-128 : 2688.dasm (-50.79 % of base)
-128 : 4450.dasm (-35.56 % of base)
-120 : 839.dasm (-50.00 % of base)
-112 : 576.dasm (-25.45 % of base)
-112 : 2347.dasm (-60.87 % of base)
-104 : 2445.dasm (-12.44 % of base)
-100 : 2442.dasm (-8.36 % of base)
-92 : 4464.dasm (-74.19 % of base)
-92 : 4465.dasm (-74.19 % of base)
-88 : 3212.dasm (-53.66 % of base)
-84 : 2450.dasm (-39.62 % of base)
-84 : 3240.dasm (-10.94 % of base)
-72 : 945.dasm (-52.94 % of base)
-72 : 245.dasm (-10.53 % of base)
-68 : 4542.dasm (-58.62 % of base)
61 total files with Code Size differences (56 improved, 5 regressed), 1 unchanged.
Top method regressions (bytes):
8 (6.90 % of base) : 1940.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.78 % of base) : 2992.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.33 % of base) : 3030.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.33 % of base) : 4475.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.33 % of base) : 2104.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (bytes):
-6416 (-73.54 % of base) : 4604.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-544 (-77.27 % of base) : 539.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-292 (-62.39 % of base) : 4537.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-212 (-43.44 % of base) : 3353.dasm - FSharp.Compiler.Parser:tables():Internal.Utilities.Text.Parsing.Tables`1[FSharp.Compiler.Parser+token] (FullOpts)
-128 (-50.79 % of base) : 2688.dasm - FSharp.Compiler.AbstractIL.IL+PublicKey:GetHashCode(System.Collections.IEqualityComparer):int:this (FullOpts)
-128 (-35.56 % of base) : 4450.dasm - FSharp.Compiler.LexFilter+LexFilter:GetToken():FSharp.Compiler.Parser+token:this (FullOpts)
-120 (-50.00 % of base) : 839.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-112 (-60.87 % of base) : 2347.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-112 (-25.45 % of base) : 576.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-104 (-12.44 % of base) : 2445.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-100 (-8.36 % of base) : 2442.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
-92 (-74.19 % of base) : 4465.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-92 (-74.19 % of base) : 4464.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-88 (-53.66 % of base) : 3212.dasm - FSharp.Compiler.CompilerImports:logMessage@377(FSharp.Compiler.CompilerConfig+TcConfig,ubyte):Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit] (FullOpts)
-84 (-39.62 % of base) : 2450.dasm - FSComp.SR:optsHelpBannerOutputFiles():System.String (FullOpts)
-84 (-10.94 % of base) : 3240.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:GenerateProgramFilesReferenceAssemblyRoot():System.String (FullOpts)
-72 (-52.94 % of base) : 945.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-72 (-10.53 % of base) : 245.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-68 (-58.62 % of base) : 4542.dasm - FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions:ErrorLogger.ErrorR(FSharp.Compiler.ErrorLogger+ErrorLogger,System.Exception) (FullOpts)
Top method regressions (percentages):
8 (6.90 % of base) : 1940.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.78 % of base) : 2992.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.33 % of base) : 3030.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.33 % of base) : 4475.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.33 % of base) : 2104.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (percentages):
-544 (-77.27 % of base) : 539.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-92 (-74.19 % of base) : 4465.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-92 (-74.19 % of base) : 4464.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-6416 (-73.54 % of base) : 4604.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-272 (-72.34 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-292 (-62.39 % of base) : 4537.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-112 (-60.87 % of base) : 2347.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-68 (-58.62 % of base) : 4542.dasm - FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions:ErrorLogger.ErrorR(FSharp.Compiler.ErrorLogger+ErrorLogger,System.Exception) (FullOpts)
-44 (-57.89 % of base) : 2451.dasm - FSComp.SR:.cctor() (FullOpts)
-44 (-57.89 % of base) : 1595.dasm - FSharp.Benchmarks.Program:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2643.dasm - FSharp.Compiler.AbstractIL.IL:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2802.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
-44 (-57.89 % of base) : 4660.dasm - FSharp.Compiler.BuildGraph+NodeCodeBuilder:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2042.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2050.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2304.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2395.dasm - FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
-44 (-57.89 % of base) : 2384.dasm - FSharp.Compiler.Features+LanguageVersion:.cctor() (FullOpts)
-44 (-57.89 % of base) : 2744.dasm - FSharp.Compiler.FxResolver:.cctor() (FullOpts)
-44 (-57.89 % of base) : 4459.dasm - FSharp.Compiler.Lexer:.cctor() (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: 1012896 (overridden on cmd)
Total bytes of diff: 995256 (overridden on cmd)
Total bytes of delta: -17640 (-1.74 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-260 : 11017.dasm (-51.59 % of base)
-260 : 5740.dasm (-51.59 % of base)
-128 : 11425.dasm (-13.33 % of base)
-128 : 5291.dasm (-13.33 % of base)
-108 : 14156.dasm (-5.31 % of base)
-108 : 4485.dasm (-16.17 % of base)
-108 : 8663.dasm (-5.31 % of base)
-108 : 1091.dasm (-16.17 % of base)
-96 : 13741.dasm (-45.28 % of base)
-96 : 1828.dasm (-45.28 % of base)
-96 : 3855.dasm (-13.04 % of base)
-96 : 5675.dasm (-45.28 % of base)
-96 : 8008.dasm (-45.28 % of base)
-96 : 823.dasm (-13.04 % of base)
-92 : 22084.dasm (-44.23 % of base)
-88 : 10128.dasm (-11.89 % of base)
-88 : 4706.dasm (-11.89 % of base)
-84 : 22190.dasm (-42.86 % of base)
-84 : 5745.dasm (-36.21 % of base)
-84 : 11021.dasm (-36.21 % of base)
90 total files with Code Size differences (90 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-260 (-51.59 % of base) : 11017.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-260 (-51.59 % of base) : 5740.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-128 (-13.33 % of base) : 11425.dasm - System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-128 (-13.33 % of base) : 5291.dasm - System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-108 (-5.31 % of base) : 14156.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
-108 (-5.31 % of base) : 8663.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
-108 (-16.17 % of base) : 4485.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-108 (-16.17 % of base) : 1091.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-45.28 % of base) : 1828.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-96 (-45.28 % of base) : 5675.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-96 (-13.04 % of base) : 3855.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-13.04 % of base) : 823.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-45.28 % of base) : 13741.dasm - System.Threading.Tasks.AwaitTaskContinuation:Run(System.Threading.Tasks.Task,ubyte):this (FullOpts)
-96 (-45.28 % of base) : 8008.dasm - System.Threading.Tasks.AwaitTaskContinuation:Run(System.Threading.Tasks.Task,ubyte):this (FullOpts)
-92 (-44.23 % of base) : 22084.dasm - System.Runtime.CompilerServices.TaskAwaiter:OnCompletedInternal(System.Threading.Tasks.Task,System.Action,ubyte,ubyte) (FullOpts)
-88 (-11.89 % of base) : 10128.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:CompareMethodSignatures(Internal.Runtime.CompilerServices.RuntimeSignature,Internal.Runtime.CompilerServices.RuntimeSignature):ubyte:this (FullOpts)
-88 (-11.89 % of base) : 4706.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:CompareMethodSignatures(Internal.Runtime.CompilerServices.RuntimeSignature,Internal.Runtime.CompilerServices.RuntimeSignature):ubyte:this (FullOpts)
-84 (-42.86 % of base) : 22190.dasm - System.Runtime.CompilerServices.TaskAwaiter:UnsafeOnCompletedInternal(System.Threading.Tasks.Task,System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte) (FullOpts)
-84 (-36.21 % of base) : 5745.dasm - System.Threading.Tasks.Task:CancellationCleanupLogic():this (FullOpts)
-84 (-36.21 % of base) : 11021.dasm - System.Threading.Tasks.Task:CancellationCleanupLogic():this (FullOpts)
Top method improvements (percentages):
-32 (-57.14 % of base) : 17123.dasm - Internal.Reflection.Execution.AssemblyBinderImplementation:get_Instance():Internal.Reflection.Execution.AssemblyBinderImplementation (FullOpts)
-32 (-57.14 % of base) : 1221.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
-32 (-57.14 % of base) : 6390.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
-32 (-57.14 % of base) : 11738.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
-32 (-57.14 % of base) : 18802.dasm - Internal.TypeSystem.TypeSystemContext:get_ByRefTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
-32 (-57.14 % of base) : 18801.dasm - Internal.TypeSystem.TypeSystemContext:get_PointerTypesCache():Internal.TypeSystem.TypeSystemContext+RuntimeTypeHandleToParameterTypeRuntimeTypeHandleHashtable (FullOpts)
-32 (-57.14 % of base) : 21298.dasm - System.Buffers.ArrayPool`1[int]:get_Shared():System.Buffers.ArrayPool`1[int] (FullOpts)
-32 (-57.14 % of base) : 23438.dasm - System.Globalization.CultureData:GetCalendar(ushort):System.Globalization.CalendarData:this (FullOpts)
-32 (-57.14 % of base) : 20681.dasm - System.Globalization.CultureInfo:get_UserDefaultLocaleName():System.String (FullOpts)
-32 (-57.14 % of base) : 18167.dasm - System.Globalization.DateTimeFormatInfo:get_InvariantInfo():System.Globalization.DateTimeFormatInfo (FullOpts)
-32 (-57.14 % of base) : 20254.dasm - System.IO.StreamWriter:get_UTF8NoBOM():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 19413.dasm - System.Random:get_Shared():System.Random (FullOpts)
-32 (-57.14 % of base) : 15714.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
-32 (-57.14 % of base) : 19705.dasm - System.Text.DecoderFallback:get_ReplacementFallback():System.Text.DecoderFallback (FullOpts)
-32 (-57.14 % of base) : 19047.dasm - System.Text.Encoding:get_ASCII():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 19045.dasm - System.Text.Encoding:get_BigEndianUnicode():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 19044.dasm - System.Text.Encoding:get_Default():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 19050.dasm - System.Text.Encoding:get_Latin1():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 19046.dasm - System.Text.Encoding:get_Unicode():System.Text.Encoding (FullOpts)
-32 (-57.14 % of base) : 19049.dasm - System.Text.Encoding:get_UTF32():System.Text.Encoding (FullOpts)
windows x64
Diffs are based on 135,677 contexts (21,464 MinOpts, 114,213 FullOpts).
MISSED contexts: base: 1 (0.00%), diff: 120,821 (46.32%)
Overall (-82,504 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| aspnet.run.windows.x64.checked.mch |
514,620 |
-8,573 |
| benchmarks.run.windows.x64.checked.mch |
125,820 |
-3,462 |
| benchmarks.run_pgo.windows.x64.checked.mch |
877,224 |
-6,482 |
| benchmarks.run_tiered.windows.x64.checked.mch |
758,568 |
-9,407 |
| coreclr_tests.run.windows.x64.checked.mch |
51,809 |
-514 |
| libraries.crossgen2.windows.x64.checked.mch |
6,763,269 |
-61 |
| libraries.pmi.windows.x64.checked.mch |
104,569 |
-26,214 |
| libraries_tests.run.windows.x64.Release.mch |
406,472 |
-2,539 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
68,102 |
-3,732 |
| realworld.run.windows.x64.checked.mch |
433,308 |
-10,928 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
453,425 |
-10,592 |
MinOpts (-18,807 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| aspnet.run.windows.x64.checked.mch |
333,087 |
-2,957 |
| benchmarks.run_pgo.windows.x64.checked.mch |
624,409 |
-6,359 |
| benchmarks.run_tiered.windows.x64.checked.mch |
674,908 |
-7,044 |
| libraries_tests.run.windows.x64.Release.mch |
326,705 |
-2,447 |
FullOpts (-63,697 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| aspnet.run.windows.x64.checked.mch |
181,533 |
-5,616 |
| benchmarks.run.windows.x64.checked.mch |
125,746 |
-3,462 |
| benchmarks.run_pgo.windows.x64.checked.mch |
252,815 |
-123 |
| benchmarks.run_tiered.windows.x64.checked.mch |
83,660 |
-2,363 |
| coreclr_tests.run.windows.x64.checked.mch |
51,809 |
-514 |
| libraries.crossgen2.windows.x64.checked.mch |
6,762,519 |
-61 |
| libraries.pmi.windows.x64.checked.mch |
104,569 |
-26,214 |
| libraries_tests.run.windows.x64.Release.mch |
79,767 |
-92 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
68,102 |
-3,732 |
| realworld.run.windows.x64.checked.mch |
433,308 |
-10,928 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
453,379 |
-10,592 |
Example diffs
aspnet.run.windows.x64.checked.mch
-30 (-69.77%) : 1849.dasm - System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M39340_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M39340_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 134
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M39340_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=ac0c6653) for method System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=ac0c6653) for method System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 2045.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M4853_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M4853_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 620
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M4853_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 2749.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M58517_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M58517_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 366
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rax, qword ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M58517_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=6f6f1b6a) for method System.Marvin:get_DefaultSeed():ulong (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=6f6f1b6a) for method System.Marvin:get_DefaultSeed():ulong (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+0 (0.00%) : 5785.dasm - System.Collections.Generic.ArraySortHelper1[System.__Canon]:CreateArraySortHelper():System.Collections.Generic.IArraySortHelper1System.__Canon
@@ -50,7 +50,7 @@ G_M65267_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M65267_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M65267_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -95,14 +95,14 @@ G_M65267_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M65267_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- call [CORINFO_HELP_CHKCASTCLASS]
+ call [CORINFO_HELP_CHKCASTCLASS_SPECIAL]
; gcrRegs -[rdx] +[rax]
mov gword ptr [rbp-0x48], rax
mov rax, qword ptr [rbp+0x10]
@@ -116,7 +116,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x40]
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call [CORINFO_HELP_CHKCASTCLASS]
+ call [CORINFO_HELP_CHKCASTCLASS_SPECIAL]
; gcrRegs -[rdx]
mov gword ptr [rbp-0x50], rax
mov rcx, gword ptr [rbp-0x48]
@@ -129,7 +129,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x58]
; gcrRegs +[rdx]
mov rcx, qword ptr [rbp-0x28]
- call [CORINFO_HELP_CHKCASTINTERFACE]
+ call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rdx]
mov gword ptr [rbp-0x10], rax
jmp SHORT G_M65267_IG10
@@ -137,7 +137,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M65267_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, qword ptr [rbp+0x10]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rcx, gword ptr [rbp-0x20]
+0 (0.00%) : 2915.dasm - System.Span`1[System.Canon]:.ctor(System.Canon[],int,int):this (Tier0)
@@ -71,7 +71,7 @@ G_M12399_IG07: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M12399_IG08: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x18]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x10], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M12399_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -121,7 +121,7 @@ G_M12399_IG12: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M12399_IG13: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x18]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M12399_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 4732.dasm - System.Span`1[System.Canon]:.ctor(System.Canon[]):this (Tier0)
@@ -59,7 +59,7 @@ G_M63343_IG05: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG06: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x18]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x10], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -94,7 +94,7 @@ G_M63343_IG09: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG10: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x18]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
benchmarks.run.windows.x64.checked.mch
-36 (-56.25%) : 1854.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
@@ -8,41 +8,27 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+; V00 this [V00,T00] ( 5, 5 ) ref -> rcx this class-hnd single-def <Newtonsoft.Json.JsonWriter>
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M22193_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
- sub rsp, 32
- mov rbx, rcx
- ; gcrRegs +[rbx]
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22193_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M22193_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M22193_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov qword ptr [rbx+0x20], rcx
- mov dword ptr [rbx+0x2C], 3
- mov word ptr [rbx+0x38], 257
+ sub rsp, 40
+ ;; size=4 bbWeight=1 PerfScore 0.25
+G_M22193_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rcx]
+ xor eax, eax
+ mov qword ptr [rcx+0x20], rax
+ mov dword ptr [rcx+0x2C], 3
+ mov word ptr [rcx+0x38], 257
;; size=19 bbWeight=1 PerfScore 3.25
-G_M22193_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
- pop rbx
+G_M22193_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 40
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M22193_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rcx, 0xD1FFAB1E
- mov edx, 43
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M22193_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 64, prolog size 5, PerfScore 10.50, instruction count 16, allocated bytes for code 64 (MethodHash=7b84a94e) for method Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
+; Total bytes of code 28, prolog size 4, PerfScore 4.75, instruction count 7, allocated bytes for code 28 (MethodHash=7b84a94e) for method Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
; ============================================================
Unwind Info:
@@ -50,10 +36,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x04
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-44 (-53.01%) : 1471.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)
@@ -8,47 +8,29 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
-; V01 RetBuf [V01,T00] ( 4, 4 ) byref -> rbx single-def
-; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 cse0 [V03,T01] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
+; V01 RetBuf [V01,T00] ( 4, 4 ) byref -> rdx single-def
+;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M40456_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
- sub rsp, 32
vzeroupper
- mov rbx, rdx
- ; byrRegs +[rbx]
- ;; size=11 bbWeight=1 PerfScore 2.50
-G_M40456_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M40456_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M40456_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+ ;; size=3 bbWeight=1 PerfScore 1.00
+G_M40456_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref
+ ; byrRegs +[rdx]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
vmovups xmm0, xmmword ptr [rcx]
vpcmpgtd xmm0, xmm0, xmmword ptr [rax]
- vmovups xmmword ptr [rbx], xmm0
- mov rax, rbx
+ vmovups xmmword ptr [rdx], xmm0
+ mov rax, rdx
; byrRegs +[rax]
;; size=35 bbWeight=1 PerfScore 9.75
-G_M40456_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
- pop rbx
+G_M40456_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M40456_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref, isz
- ; byrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 411
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M40456_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 83, prolog size 8, PerfScore 18.00, instruction count 19, allocated bytes for code 83 (MethodHash=567561f7) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)
+; Total bytes of code 39, prolog size 3, PerfScore 11.75, instruction count 8, allocated bytes for code 39 (MethodHash=567561f7) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -56,10 +38,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-47 (-52.81%) : 870.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
@@ -7,60 +7,44 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 cse0 [V01,T01] ( 3, 1.50) int -> rcx "CSE - moderate"
; V02 cse1 [V02,T00] ( 3, 2.50) int -> rax "CSE - aggressive"
-;* V03 cse2 [V03,T02] ( 0, 0 ) long -> zero-ref "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
-G_M41971_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
+G_M41971_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M41971_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M41971_IG10
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M41971_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movsx rax, word ptr [(reloc)] ; static handle
test eax, eax
- jle SHORT G_M41971_IG08
+ jle SHORT G_M41971_IG07
;; size=12 bbWeight=1 PerfScore 5.25
-G_M41971_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M41971_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movsx rcx, word ptr [(reloc)] ; static handle
test ecx, ecx
- jle SHORT G_M41971_IG06
+ jle SHORT G_M41971_IG05
cmp eax, ecx
setle al
movzx rax, al
;; size=20 bbWeight=0.50 PerfScore 3.38
-G_M41971_IG05: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
+G_M41971_IG04: ; bbWeight=0.50, epilog, nogc, extend
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M41971_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M41971_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M41971_IG07: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
+G_M41971_IG06: ; bbWeight=0.50, epilog, nogc, extend
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M41971_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M41971_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M41971_IG09: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
+G_M41971_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M41971_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rcx, 0xD1FFAB1E
- mov edx, 985
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M41971_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 89, prolog size 4, PerfScore 15.00, instruction count 24, allocated bytes for code 89 (MethodHash=9fd75c0c) for method System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
+; Total bytes of code 42, prolog size 0, PerfScore 10.38, instruction count 14, allocated bytes for code 42 (MethodHash=9fd75c0c) for method System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -68,9 +52,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
+0 (0.00%) : 1592.dasm - System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
@@ -8,9 +8,9 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 3, 2.50) ref -> rsi this class-hnd single-def <System.Text.Json.JsonSerializerOptions>
-; V01 arg1 [V01,T00] ( 5, 4.50) ref -> rbx class-hnd <System.Text.Json.Serialization.JsonConverter>
+; V01 arg1 [V01,T00] ( 6, 5.50) ref -> rbx class-hnd <System.Text.Json.Serialization.JsonConverter>
; V02 arg2 [V02,T02] ( 3, 2.50) ref -> rdi class-hnd single-def <System.Type>
-; V03 loc0 [V03,T03] ( 3, 2.50) ref -> rax class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory>
+; V03 loc0 [V03,T03] ( 2, 1.50) ref -> rcx class-hnd single-def <System.Text.Json.Serialization.JsonConverterFactory>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 32
@@ -31,26 +31,26 @@ G_M17128_IG02: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; System.Text.Json.Serialization.JsonConverterFactory
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
- je SHORT G_M17128_IG04
- ;; size=23 bbWeight=1 PerfScore 2.75
-G_M17128_IG03: ; bbWeight=0.50, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
mov rcx, rax
; gcrRegs +[rcx]
+ test rbx, rbx
+ je SHORT G_M17128_IG04
+ ;; size=26 bbWeight=1 PerfScore 3.00
+G_M17128_IG03: ; bbWeight=0.50, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbx]
mov rdx, rdi
; gcrRegs +[rdx]
mov r8, rsi
; gcrRegs +[r8]
call [System.Text.Json.Serialization.JsonConverterFactory:GetConverterInternal(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.JsonConverter:this]
- ; gcrRegs -[rcx rdx rsi rdi r8]
+ ; gcrRegs -[rcx rdx rsi rdi r8] +[rax]
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
- ;; size=18 bbWeight=0.50 PerfScore 2.00
+ ;; size=15 bbWeight=0.50 PerfScore 1.88
G_M17128_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, rbx
@@ -64,7 +64,7 @@ G_M17128_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 68, prolog size 7, PerfScore 11.75, instruction count 23, allocated bytes for code 68 (MethodHash=9152bd17) for method System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
+; Total bytes of code 68, prolog size 7, PerfScore 11.88, instruction count 23, allocated bytes for code 68 (MethodHash=9152bd17) for method System.Text.Json.JsonSerializerOptions:ExpandConverterFactory(System.Text.Json.Serialization.JsonConverter,System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 2120.dasm - System.RuntimeType:FilterApplyBase(System.Reflection.MemberInfo,int,ubyte,ubyte,ubyte,System.String,ubyte):ubyte (FullOpts)
@@ -8,22 +8,22 @@
; 0 inlinees with PGO data; 12 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 11, 7 ) ref -> rsi class-hnd single-def <System.Reflection.MemberInfo>
+; V00 arg0 [V00,T01] ( 10, 6.50) ref -> rsi class-hnd single-def <System.Reflection.MemberInfo>
; V01 arg1 [V01,T00] ( 13, 7.50) int -> rbx single-def
; V02 arg2 [V02,T03] ( 3, 3 ) ubyte -> rdi single-def
; V03 arg3 [V03,T04] ( 3, 2.50) ubyte -> rbp single-def
; V04 arg4 [V04,T15] ( 2, 1 ) ubyte -> [rsp+0x80] single-def
; V05 arg5 [V05,T05] ( 6, 3.50) ref -> r14 class-hnd single-def <System.String>
; V06 arg6 [V06,T16] ( 1, 0.50) ubyte -> [rsp+0x90] single-def
-; V07 loc0 [V07,T08] ( 4, 2 ) ubyte -> r15
-; V08 loc1 [V08,T07] ( 5, 2.50) ref -> rbx class-hnd single-def <System.Reflection.MethodInfo>
+; V07 loc0 [V07,T07] ( 4, 2 ) ubyte -> r13
+; V08 loc1 [V08,T12] ( 3, 1.50) ref -> rbx class-hnd single-def <System.Reflection.MethodInfo>
; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T12] ( 2, 1 ) int -> r15
+; V10 tmp1 [V10,T13] ( 2, 1 ) int -> r15
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <<unknown class>>
;* V12 tmp3 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V13 tmp4 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V14 tmp5 [V14,T09] ( 4, 2 ) ubyte -> r15 "Inline return value spill temp"
-; V15 tmp6 [V15,T02] ( 5, 5 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V14 tmp5 [V14,T08] ( 4, 2 ) ubyte -> r15 "Inline return value spill temp"
+; V15 tmp6 [V15,T02] ( 6, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V16 tmp7 [V16,T11] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
;* V17 tmp8 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp9 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -33,21 +33,22 @@
;* V22 tmp13 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V25 cse0 [V25,T10] ( 4, 2 ) long -> rdi "CSE - aggressive"
-; V26 cse1 [V26,T13] ( 3, 1.50) long -> rsi "CSE - moderate"
+; V25 cse0 [V25,T09] ( 4, 2 ) long -> r15 "CSE - aggressive"
+; V26 cse1 [V26,T14] ( 3, 1.50) long -> rsi "CSE - moderate"
; V27 cse2 [V27,T06] ( 6, 3 ) ref -> rdx multi-def "CSE - aggressive"
-; V28 cse3 [V28,T14] ( 3, 1.50) int -> r8 "CSE - moderate"
+; V28 cse3 [V28,T10] ( 4, 2 ) long -> rdi "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M7707_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push r15
push r14
+ push r13
push rdi
push rsi
push rbp
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rsi, rcx
; gcrRegs +[rsi]
mov ebx, edx
@@ -55,7 +56,7 @@ G_M7707_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
mov ebp, r9d
mov r14, gword ptr [rsp+0x88]
; gcrRegs +[r14]
- ;; size=31 bbWeight=1 PerfScore 8.25
+ ;; size=33 bbWeight=1 PerfScore 9.25
G_M7707_IG02: ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
test rsi, rsi
jne SHORT G_M7707_IG04
@@ -100,6 +101,7 @@ G_M7707_IG06: ; bbWeight=0.50, gcrefRegs=4041 {rax rsi r14}, byrefRegs=00
G_M7707_IG07: ; bbWeight=0.50, gcrefRegs=4041 {rax rsi r14}, byrefRegs=0000 {}, byref
lea rcx, bword ptr [rax+0x0C]
; byrRegs +[rcx]
+ mov r8d, dword ptr [rax+0x08]
add r8d, r8d
lea rdx, bword ptr [r14+0x0C]
; byrRegs +[rdx]
@@ -108,7 +110,7 @@ G_M7707_IG07: ; bbWeight=0.50, gcrefRegs=4041 {rax rsi r14}, byrefRegs=00
; byrRegs -[rcx rdx]
; gcr arg pop 0
mov r15d, eax
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=24 bbWeight=0.50 PerfScore 3.25
G_M7707_IG08: ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
test r15b, r15b
jne SHORT G_M7707_IG09
@@ -136,62 +138,61 @@ G_M7707_IG11: ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {
G_M7707_IG12: ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
mov rcx, rsi
; gcrRegs +[rcx]
- mov rax, qword ptr [rsi]
- mov rdi, qword ptr [rax+0x48]
- call [rdi+0x38]<unknown method>
+ mov rdi, qword ptr [rsi]
+ mov r15, qword ptr [rdi+0x48]
+ call [r15+0x38]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
+ mov r13, rax
+ ; gcrRegs +[r13]
mov rcx, rsi
; gcrRegs +[rcx]
- mov rax, qword ptr [rsi]
+ mov rax, qword ptr [rdi+0x50]
; gcrRegs -[rax]
- mov rax, qword ptr [rax+0x50]
call [rax]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
- cmp r15, rax
- setne r15b
- ; gcrRegs -[r15]
- movzx r15, r15b
+ cmp r13, rax
+ setne r13b
+ ; gcrRegs -[r13]
+ movzx r13, r13b
xor ecx, ecx
test bl, 2
setne cl
- test ecx, r15d
+ test ecx, r13d
jne G_M7707_IG16
mov rcx, rsi
; gcrRegs +[rcx]
- call [rdi+0x28]<unknown method>
+ call [r15+0x28]<unknown method>
; gcrRegs -[rax rcx]
; gcr arg pop 0
cmp eax, 32
je SHORT G_M7707_IG14
mov rcx, rsi
; gcrRegs +[rcx]
- call [rdi+0x28]<unknown method>
+ call [r15+0x28]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
cmp eax, 128
je SHORT G_M7707_IG14
- movzx rdi, byte ptr [rsp+0x80]
- test dil, dil
+ movzx r15, byte ptr [rsp+0x80]
+ test r15b, r15b
je SHORT G_M7707_IG13
xor r8d, r8d
test bl, 64
sete r8b
- test r8d, r15d
+ test r8d, r13d
jne G_M7707_IG16
test bl, 8
- mov dword ptr [rsp+0x80], edi
+ mov dword ptr [rsp+0x80], r15d
jne SHORT G_M7707_IG14
jmp G_M7707_IG16
- ;; size=130 bbWeight=0.50 PerfScore 18.62
-G_M7707_IG13: ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
+ ;; size=131 bbWeight=0.50 PerfScore 17.62
+G_M7707_IG13: ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
test bl, 4
- mov dword ptr [rsp+0x80], edi
- je G_M7707_IG16
- ;; size=16 bbWeight=0.50 PerfScore 1.12
+ mov dword ptr [rsp+0x80], r15d
+ je SHORT G_M7707_IG16
+ ;; size=13 bbWeight=0.50 PerfScore 1.12
G_M7707_IG14: ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref, isz
cmp byte ptr [rsp+0x90], 0
je SHORT G_M7707_IG15
@@ -211,7 +212,7 @@ G_M7707_IG15: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
xor edx, edx
test bl, 2
sete dl
- and edx, r15d
+ and edx, r13d
movzx rcx, bpl
test edx, ecx
je SHORT G_M7707_IG18
@@ -224,20 +225,16 @@ G_M7707_IG15: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; System.Reflection.MethodInfo
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx rsi] +[rax]
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
- test rbx, rbx
- je SHORT G_M7707_IG16
mov rcx, rbx
; gcrRegs +[rcx]
- mov rax, qword ptr [rbx]
- ; gcrRegs -[rax]
- mov rsi, qword ptr [rax+0x58]
+ mov rsi, qword ptr [rdi+0x58]
call [rsi+0x20]<unknown method>
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
; gcr arg pop 0
test al, 64
jne SHORT G_M7707_IG18
@@ -248,35 +245,37 @@ G_M7707_IG15: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
; gcr arg pop 0
test eax, 0x400
jne SHORT G_M7707_IG18
- ;; size=95 bbWeight=0.50 PerfScore 12.38
+ ;; size=87 bbWeight=0.50 PerfScore 10.75
G_M7707_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M7707_IG17: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
+ pop r13
pop r14
pop r15
ret
- ;; size=13 bbWeight=0.50 PerfScore 2.12
+ ;; size=15 bbWeight=0.50 PerfScore 2.38
G_M7707_IG18: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M7707_IG19: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
+ pop r13
pop r14
pop r15
ret
- ;; size=13 bbWeight=0.50 PerfScore 2.12
+ ;; size=15 bbWeight=0.50 PerfScore 2.38
-; Total bytes of code 492, prolog size 12, PerfScore 72.12, instruction count 148, allocated bytes for code 492 (MethodHash=2a67e1e4) for method System.RuntimeType:FilterApplyBase(System.Reflection.MemberInfo,int,ubyte,ubyte,ubyte,System.String,ubyte):ubyte (FullOpts)
+; Total bytes of code 492, prolog size 14, PerfScore 72.00, instruction count 148, allocated bytes for code 492 (MethodHash=2a67e1e4) for method System.RuntimeType:FilterApplyBase(System.Reflection.MemberInfo,int,ubyte,ubyte,ubyte,System.String,ubyte):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -284,15 +283,16 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x0C
...
+6 (+3.24%) : 1570.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverterSystem.__Canon:System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4.50) ref -> rsi this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
+; V00 this [V00,T01] ( 5, 4.50) ref -> rsi this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
; V01 TypeCtx [V01,T00] ( 8, 5.38) long -> rbx single-def
-; V02 loc0 [V02,T08] ( 3, 2.50) ref -> rax class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.__Canon]>
+;* V02 loc0 [V02,T12] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.__Canon]>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V05 tmp2 [V05,T05] ( 3, 3 ) ref -> rax class-hnd single-def "dup spill" <System.Text.Json.Serialization.JsonConverter>
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp4 [V07,T12] ( 3, 1.50) ref -> rax
-; V08 tmp5 [V08,T10] ( 4, 2 ) ref -> rax
+; V07 tmp4 [V07,T11] ( 3, 1.50) ref -> rax
+; V08 tmp5 [V08,T09] ( 4, 2 ) ref -> rax
; V09 tmp6 [V09,T06] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Converters.CastingConverter`1[System.__Canon]>
;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V11 tmp8 [V11,T04] ( 2, 4 ) long -> rcx "argument with side effect"
; V12 rat0 [V12,T03] ( 3, 4 ) long -> rcx "runtime lookup"
; V13 rat1 [V13,T02] ( 3, 5.60) long -> rcx "fgMakeTemp is creating a new local variable"
-; V14 rat2 [V14,T11] ( 3, 2 ) long -> rcx "runtime lookup"
+; V14 rat2 [V14,T10] ( 3, 2 ) long -> rcx "runtime lookup"
; V15 rat3 [V15,T07] ( 3, 2.80) long -> rcx "spilling expr"
-; V16 rat4 [V16,T09] ( 3, 2.24) long -> rcx "fgMakeTemp is creating a new local variable"
+; V16 rat4 [V16,T08] ( 3, 2.24) long -> rcx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 40
@@ -49,41 +49,45 @@ G_M17047_IG03: ; bbWeight=0.80, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
G_M17047_IG04: ; bbWeight=0.20, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
mov rcx, rbx
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.20 PerfScore 0.35
G_M17047_IG05: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
- je SHORT G_M17047_IG07
+ test rsi, rsi
+ je SHORT G_M17047_IG08
;; size=13 bbWeight=1 PerfScore 2.50
-G_M17047_IG06: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rsi]
+G_M17047_IG06: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax]
+ mov rax, rsi
+ ; gcrRegs +[rax]
+ ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M17047_IG07: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rsi
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M17047_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[rsi]
- mov rcx, rsi
+G_M17047_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rax rsi]
+ xor rcx, rcx
; gcrRegs +[rcx]
- mov rax, qword ptr [rsi]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
test rax, rax
- jne SHORT G_M17047_IG08
+ jne SHORT G_M17047_IG09
xor rax, rax
- jmp SHORT G_M17047_IG09
- ;; size=22 bbWeight=0.50 PerfScore 5.38
-G_M17047_IG08: ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M17047_IG10
+ ;; size=26 bbWeight=0.50 PerfScore 5.38
+G_M17047_IG09: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
mov rcx, rax
; gcrRegs +[rcx]
mov rdx, rbx
@@ -91,46 +95,46 @@ G_M17047_IG08: ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000
; gcrRegs -[rcx]
; gcr arg pop 0
;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M17047_IG09: ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref, isz
+G_M17047_IG10: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
test rax, rax
- jne SHORT G_M17047_IG14
+ jne SHORT G_M17047_IG15
mov rcx, qword ptr [rbx+0x38]
cmp qword ptr [rcx+0x08], 24
- jle SHORT G_M17047_IG12
+ jle SHORT G_M17047_IG13
;; size=16 bbWeight=0.50 PerfScore 3.62
-G_M17047_IG10: ; bbWeight=0.40, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M17047_IG11: ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rcx, qword ptr [rcx+0x18]
test rcx, rcx
- je SHORT G_M17047_IG12
+ je SHORT G_M17047_IG13
;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M17047_IG11: ; bbWeight=0.32, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M17047_IG13
+G_M17047_IG12: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M17047_IG14
;; size=2 bbWeight=0.32 PerfScore 0.64
-G_M17047_IG12: ; bbWeight=0.18, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M17047_IG13: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, rbx
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
-G_M17047_IG13: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- call CORINFO_HELP_NEWSFAST
+G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
- mov rdx, rsi
+ xor rdx, rdx
; gcrRegs +[rdx]
call [System.Text.Json.Serialization.Converters.CastingConverter`1[System.__Canon]:.ctor(System.Text.Json.Serialization.JsonConverter):this]
- ; gcrRegs -[rax rcx rdx rsi]
+ ; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
mov rax, rbx
; gcrRegs +[rax]
- ;; size=23 bbWeight=0.50 PerfScore 2.50
-G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=22 bbWeight=0.50 PerfScore 2.50
+G_M17047_IG15: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx]
add rsp, 40
pop rbx
@@ -138,7 +142,7 @@ G_M17047_IG14: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 185, prolog size 11, PerfScore 31.21, instruction count 57, allocated bytes for code 185 (MethodHash=3467bd68) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
+; Total bytes of code 191, prolog size 11, PerfScore 31.33, instruction count 58, allocated bytes for code 191 (MethodHash=3467bd68) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-30 (-69.77%) : 373.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M4853_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M4853_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 621
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M4853_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=52ebed0a) for method System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 2165.dasm - System.Threading.ThreadPool:get_UseWindowsThreadPool():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M46586_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M46586_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 820
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M46586_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=2a624a05) for method System.Threading.ThreadPool:get_UseWindowsThreadPool():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=2a624a05) for method System.Threading.ThreadPool:get_UseWindowsThreadPool():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 4377.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M7622_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M7622_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 440
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M7622_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+0 (0.00%) : 3764.dasm - System.Collections.Generic.ArraySortHelper2[System.__Canon,System.__Canon]:CreateArraySortHelper():System.Collections.Generic.IArraySortHelper2System.Canon,System.Canon
@@ -54,7 +54,7 @@ G_M9235_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
G_M9235_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M9235_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -99,14 +99,14 @@ G_M9235_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
G_M9235_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx] +[rax]
mov gword ptr [rbp-0x50], rax
mov rax, qword ptr [rbp+0x10]
@@ -120,7 +120,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x40]
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx]
mov gword ptr [rbp-0x58], rax
mov rax, qword ptr [rbp+0x10]
@@ -134,7 +134,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x48]
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx]
mov gword ptr [rbp-0x60], rax
mov rcx, gword ptr [rbp-0x50]
@@ -149,7 +149,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x68]
; gcrRegs +[rdx]
mov rcx, qword ptr [rbp-0x28]
- call [CORINFO_HELP_CHKCASTINTERFACE]
+ call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rdx]
mov gword ptr [rbp-0x10], rax
jmp SHORT G_M9235_IG10
@@ -157,7 +157,7 @@ G_M9235_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M9235_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, qword ptr [rbp+0x10]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rcx, gword ptr [rbp-0x20]
+0 (0.00%) : 3952.dasm - System.Collections.Generic.ArraySortHelper1[System.__Canon]:CreateArraySortHelper():System.Collections.Generic.IArraySortHelper1System.__Canon
@@ -51,7 +51,7 @@ G_M65267_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M65267_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M65267_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -96,14 +96,14 @@ G_M65267_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M65267_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx] +[rax]
mov gword ptr [rbp-0x48], rax
mov rax, qword ptr [rbp+0x10]
@@ -117,7 +117,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x40]
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx]
mov gword ptr [rbp-0x50], rax
mov rcx, gword ptr [rbp-0x48]
@@ -130,7 +130,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x58]
; gcrRegs +[rdx]
mov rcx, qword ptr [rbp-0x28]
- call [CORINFO_HELP_CHKCASTINTERFACE]
+ call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rdx]
mov gword ptr [rbp-0x10], rax
jmp SHORT G_M65267_IG10
@@ -138,7 +138,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M65267_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, qword ptr [rbp+0x10]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rcx, gword ptr [rbp-0x20]
+0 (0.00%) : 12228.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:CreatePropertyInfoForTypeInfo():System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (Instrumented Tier0)
@@ -59,12 +59,12 @@ G_M41961_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M41961_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp-0x30]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x20], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M41961_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp-0x20]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x18], rax
mov rcx, gword ptr [rbp+0x10]
benchmarks.run_tiered.windows.x64.checked.mch
-30 (-71.43%) : 10433.dasm - System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M54325_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M54325_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 46
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov eax, dword ptr [(reloc)] ; static handle
- ;; size=26 bbWeight=1 PerfScore 3.50
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M54325_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 42, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 42 (MethodHash=836e2bca) for method System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
+; Total bytes of code 12, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 12 (MethodHash=836e2bca) for method System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 3601.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M44918_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M44918_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 10
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M44918_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=78e75089) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=78e75089) for method Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 3997.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M7622_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M7622_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 440
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M7622_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=cd77e239) for method System.SR:UsingResourceKeys():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+0 (0.00%) : 1587.dasm - System.Span`1[System.Canon]:.ctor(System.Canon[]):this (Tier0)
@@ -59,7 +59,7 @@ G_M63343_IG05: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG06: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x18]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x10], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -94,7 +94,7 @@ G_M63343_IG09: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M63343_IG10: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x18]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M63343_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 5119.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]:CreatePropertyInfoForTypeInfo():System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (Tier0)
@@ -59,12 +59,12 @@ G_M41961_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M41961_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp-0x30]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x20], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M41961_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp-0x20]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x18], rax
mov rcx, gword ptr [rbp+0x10]
+0 (0.00%) : 6415.dasm - System.Collections.Generic.ArraySortHelper1[System.__Canon]:CreateArraySortHelper():System.Collections.Generic.IArraySortHelper1System.__Canon
@@ -51,7 +51,7 @@ G_M65267_IG03: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M65267_IG04: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x18], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M65267_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
@@ -96,14 +96,14 @@ G_M65267_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M65267_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_CLASS
+ call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov qword ptr [rbp-0x28], rax
;; size=23 bbWeight=0.20 PerfScore 0.65
G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx] +[rax]
mov gword ptr [rbp-0x48], rax
mov rax, qword ptr [rbp+0x10]
@@ -117,7 +117,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x40]
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
+ call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx]
mov gword ptr [rbp-0x50], rax
mov rcx, gword ptr [rbp-0x48]
@@ -130,7 +130,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdx, gword ptr [rbp-0x58]
; gcrRegs +[rdx]
mov rcx, qword ptr [rbp-0x28]
- call [CORINFO_HELP_CHKCASTINTERFACE]
+ call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rdx]
mov gword ptr [rbp-0x10], rax
jmp SHORT G_M65267_IG10
@@ -138,7 +138,7 @@ G_M65267_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M65267_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, qword ptr [rbp+0x10]
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov gword ptr [rbp-0x20], rax
mov rcx, gword ptr [rbp-0x20]
coreclr_tests.run.windows.x64.checked.mch
-31 (-68.89%) : 522.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
@@ -17,26 +17,15 @@
G_M17591_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M17591_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M17591_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M17591_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 1
;; size=5 bbWeight=1 PerfScore 0.25
-G_M17591_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M17591_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M17591_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rcx, 0xD1FFAB1E
- mov edx, 15
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M17591_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 4, PerfScore 5.75, instruction count 10, allocated bytes for code 45 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
+; Total bytes of code 14, prolog size 4, PerfScore 1.75, instruction count 4, allocated bytes for code 14 (MethodHash=ebb5bb48) for method TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
; ============================================================
Unwind Info:
-43 (-63.24%) : 33.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
@@ -7,47 +7,32 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T00] ( 3, 5 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref single-def
;
-; Lcl frame size = 40
+; Lcl frame size = 0
-G_M16369_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
+G_M16369_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M16369_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M16369_IG06
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M16369_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
test rax, rax
- jne SHORT G_M16369_IG05
+ jne SHORT G_M16369_IG04
;; size=18 bbWeight=1 PerfScore 3.50
-G_M16369_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M16369_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rax]
- add rsp, 40
tail.jmp [<unknown method>]
; gcr arg pop 0
- ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M16369_IG05: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M16369_IG04: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs +[rax]
- add rsp, 40
ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M16369_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 18
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M16369_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 68, prolog size 4, PerfScore 9.50, instruction count 15, allocated bytes for code 68 (MethodHash=9e38c00e) for method System.Console:get_Out():System.IO.TextWriter (FullOpts)
+; Total bytes of code 25, prolog size 0, PerfScore 5.00, instruction count 6, allocated bytes for code 25 (MethodHash=9e38c00e) for method System.Console:get_Out():System.IO.TextWriter (FullOpts)
; ============================================================
Unwind Info:
@@ -55,9 +40,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-31 (-59.62%) : 225.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
@@ -8,35 +8,23 @@
; Final local variable assignments
;
; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 cse0 [V01,T01] ( 0, 0 ) long -> zero-ref "CSE - aggressive"
-; V02 cse1 [V02,T00] ( 3, 3 ) long -> rcx "CSE - aggressive"
+; V01 cse0 [V01,T00] ( 3, 3 ) long -> rax "CSE - aggressive"
;
; Lcl frame size = 40
G_M63990_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M63990_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M63990_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M63990_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- inc dword ptr [rcx]
+G_M63990_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ inc dword ptr [rax]
;; size=12 bbWeight=1 PerfScore 3.25
-G_M63990_IG04: ; bbWeight=1, epilog, nogc, extend
+G_M63990_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M63990_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rcx, 0xD1FFAB1E
- mov edx, 14
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M63990_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
-; Total bytes of code 52, prolog size 4, PerfScore 8.75, instruction count 11, allocated bytes for code 52 (MethodHash=4db60609) for method DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
+; Total bytes of code 21, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 21 (MethodHash=4db60609) for method DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
; ============================================================
Unwind Info:
-15 (-25.86%) : 597.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-; V01 loc0 [V01,T02] ( 3, 1.50) ref -> rax class-hnd single-def <<unknown class>>
+; V01 loc0 [V01,T02] ( 2, 1 ) ref -> rax class-hnd single-def <<unknown class>>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 cse0 [V03,T01] ( 3, 2.50) ref -> rdx "CSE - aggressive"
;
@@ -33,30 +33,21 @@ G_M2237_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M2237_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M2237_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
- je SHORT G_M2237_IG07
mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
- ;; size=23 bbWeight=0.50 PerfScore 2.25
+ ;; size=18 bbWeight=0.50 PerfScore 1.62
G_M2237_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M2237_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M2237_IG08: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 40
- ret
- ;; size=5 bbWeight=0.50 PerfScore 0.62
-; Total bytes of code 58, prolog size 4, PerfScore 7.88, instruction count 17, allocated bytes for code 58 (MethodHash=10e0f742) for method System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
+; Total bytes of code 43, prolog size 4, PerfScore 6.50, instruction count 12, allocated bytes for code 43 (MethodHash=10e0f742) for method System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
; ============================================================
Unwind Info:
-38 (-9.64%) : 574.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
@@ -59,18 +59,14 @@ G_M2789_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rdi, r9
; gcrRegs +[rdi]
;; size=25 bbWeight=1 PerfScore 8.25
-G_M2789_IG02: ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref
- test byte ptr [(reloc)], 1 ; global ptr
- je G_M2789_IG20
- ;; size=13 bbWeight=1 PerfScore 4.00
-G_M2789_IG03: ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG02: ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rcx, gword ptr [rdx]
; gcrRegs +[rcx]
test rcx, rcx
- jne SHORT G_M2789_IG05
+ jne SHORT G_M2789_IG04
;; size=18 bbWeight=1 PerfScore 3.50
-G_M2789_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG03: ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov edx, ebx
xor rcx, rcx
@@ -80,9 +76,9 @@ G_M2789_IG04: ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=00
call [<unknown method>]
; gcrRegs -[rcx r8]
; gcr arg pop 0
- jmp SHORT G_M2789_IG06
+ jmp SHORT G_M2789_IG05
;; size=15 bbWeight=0.50 PerfScore 2.88
-G_M2789_IG05: ; bbWeight=0.50, gcrefRegs=00E2 {rcx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M2789_IG04: ; bbWeight=0.50, gcrefRegs=00E2 {rcx rbp rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov edx, ebx
mov r11, 0xD1FFAB1E ; code for <unknown method>
@@ -90,31 +86,31 @@ G_M2789_IG05: ; bbWeight=0.50, gcrefRegs=00E2 {rcx rbp rsi rdi}, byrefReg
; gcrRegs -[rcx]
; gcr arg pop 0
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M2789_IG06: ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M2789_IG05: ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref
test eax, eax
- je G_M2789_IG19
+ je G_M2789_IG18
;; size=8 bbWeight=1 PerfScore 1.25
-G_M2789_IG07: ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG06: ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
test rsi, rsi
- je SHORT G_M2789_IG13
+ je SHORT G_M2789_IG12
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M2789_IG08: ; bbWeight=0.46, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG07: ; bbWeight=0.46, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rsi+0x08]
test r14d, r14d
- je SHORT G_M2789_IG13
+ je SHORT G_M2789_IG12
;; size=9 bbWeight=0.46 PerfScore 1.50
-G_M2789_IG09: ; bbWeight=0.47, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG08: ; bbWeight=0.47, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
mov r15d, r14d
lea ecx, [r15+0x07]
test ecx, ecx
- jl G_M2789_IG21
+ jl G_M2789_IG19
call <unknown method>
; gcrRegs +[rax]
; gcr arg pop 0
mov r13, rax
; gcrRegs +[r13]
test r13, r13
- jne SHORT G_M2789_IG10
+ jne SHORT G_M2789_IG09
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
mov rcx, rdx
@@ -123,9 +119,9 @@ G_M2789_IG09: ; bbWeight=0.47, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=00
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
;; size=47 bbWeight=0.47 PerfScore 3.79
-G_M2789_IG10: ; bbWeight=0.47, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG09: ; bbWeight=0.47, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [r13+0x08], r14d
- jge SHORT G_M2789_IG11
+ jge SHORT G_M2789_IG10
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
mov rcx, rdx
@@ -134,7 +130,7 @@ G_M2789_IG10: ; bbWeight=0.47, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefReg
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=25 bbWeight=0.47 PerfScore 3.55
-G_M2789_IG11: ; bbWeight=0.47, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG10: ; bbWeight=0.47, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefRegs=0000 {}, byref, isz
lea rcx, bword ptr [r13+0x0C]
; byrRegs +[rcx]
lea rdx, bword ptr [rsi+0x0C]
@@ -142,23 +138,23 @@ G_M2789_IG11: ; bbWeight=0.47, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefReg
mov r8d, r14d
add r8, r8
cmp r8, 6
- jne SHORT G_M2789_IG16
+ jne SHORT G_M2789_IG15
;; size=20 bbWeight=0.47 PerfScore 1.30
-G_M2789_IG12: ; bbWeight=0.24, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0006 {rcx rdx}, byref, isz
+G_M2789_IG11: ; bbWeight=0.24, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0006 {rcx rdx}, byref, isz
; gcrRegs -[rsi]
mov eax, dword ptr [rdx]
mov r8d, dword ptr [rdx+0x02]
mov dword ptr [rcx], eax
mov dword ptr [rcx+0x02], r8d
- jmp SHORT G_M2789_IG17
+ jmp SHORT G_M2789_IG16
;; size=14 bbWeight=0.24 PerfScore 1.90
-G_M2789_IG13: ; bbWeight=0.50, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {}, byref
+G_M2789_IG12: ; bbWeight=0.50, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
; byrRegs -[rcx rdx]
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M2789_IG14: ; bbWeight=0.50, gcrefRegs=00A2 {rcx rbp rdi}, byrefRegs=0000 {}, byref
+G_M2789_IG13: ; bbWeight=0.50, gcrefRegs=00A2 {rcx rbp rdi}, byrefRegs=0000 {}, byref
mov edx, ebx
mov r8, rbp
; gcrRegs +[r8]
@@ -172,7 +168,7 @@ G_M2789_IG14: ; bbWeight=0.50, gcrefRegs=00A2 {rcx rbp rdi}, byrefRegs=00
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x70]
;; size=31 bbWeight=0.50 PerfScore 4.00
-G_M2789_IG15: ; bbWeight=0.50, epilog, nogc, extend
+G_M2789_IG14: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
pop rbp
@@ -183,18 +179,18 @@ G_M2789_IG15: ; bbWeight=0.50, epilog, nogc, extend
pop r15
tail.jmp [rax+0x30]<unknown method>
;; size=18 bbWeight=0.50 PerfScore 2.88
-G_M2789_IG16: ; bbWeight=0.47, gcVars=0000000000000000 {}, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0006 {rcx rdx}, gcvars, byref
+G_M2789_IG15: ; bbWeight=0.47, gcVars=0000000000000000 {}, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0006 {rcx rdx}, gcvars, byref
; gcrRegs -[rcx rdx] +[rbp r13]
; byrRegs +[rcx rdx]
call [<unknown method>]
; byrRegs -[rcx rdx]
; gcr arg pop 0
;; size=6 bbWeight=0.47 PerfScore 1.42
-G_M2789_IG17: ; bbWeight=0.47, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG16: ; bbWeight=0.47, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref, isz
mov ecx, dword ptr [r13+0x08]
sub ecx, r15d
cmp ecx, 7
- jge SHORT G_M2789_IG18
+ jge SHORT G_M2789_IG17
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
mov rcx, rdx
@@ -203,7 +199,7 @@ G_M2789_IG17: ; bbWeight=0.47, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=00
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=31 bbWeight=0.47 PerfScore 3.32
-G_M2789_IG18: ; bbWeight=0.47, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref, isz
+G_M2789_IG17: ; bbWeight=0.47, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=0000 {}, byref, isz
movsxd rcx, r15d
lea rcx, bword ptr [r13+2*rcx+0x0C]
; byrRegs +[rcx]
@@ -216,9 +212,9 @@ G_M2789_IG18: ; bbWeight=0.47, gcrefRegs=20A0 {rbp rdi r13}, byrefRegs=00
mov rcx, r13
; gcrRegs +[rcx]
; byrRegs -[rcx]
- jmp SHORT G_M2789_IG14
+ jmp SHORT G_M2789_IG13
;; size=37 bbWeight=0.47 PerfScore 5.10
-G_M2789_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M2789_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rcx rbp rdi r13]
; byrRegs -[rdx]
add rsp, 32
@@ -231,22 +227,13 @@ G_M2789_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
pop r15
ret
;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M2789_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbp rsi rdi]
- mov rcx, 0xD1FFAB1E
- mov edx, 7
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp G_M2789_IG03
- ;; size=25 bbWeight=0 PerfScore 0.00
-G_M2789_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp rsi rdi]
+G_M2789_IG19: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 394, prolog size 14, PerfScore 53.50, instruction count 109, allocated bytes for code 394 (MethodHash=bd4cf51a) for method CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
+; Total bytes of code 356, prolog size 14, PerfScore 49.50, instruction count 103, allocated bytes for code 356 (MethodHash=bd4cf51a) for method CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
; ============================================================
Unwind Info:
-26 (-6.90%) : 494.dasm - Program:TestEntryPoint():int (FullOpts)
@@ -12,35 +12,33 @@
;* V01 loc1 [V01 ] ( 0, 0 ) int -> zero-ref single-def
;* V02 loc2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Program>
;* V03 loc3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodInfo>
-;* V04 loc4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
+; V04 loc4 [V04,T02] ( 5, 5 ) ref -> rbx class-hnd single-def <<unknown class>>
; V05 loc5 [V05 ] ( 2, 2 ) struct (16) [rbp-0x18] do-not-enreg[XS] must-init addr-exposed <System.Decimal>
; V06 loc6 [V06 ] ( 2, 2 ) struct (16) [rbp-0x28] do-not-enreg[XS] must-init addr-exposed <System.Decimal>
;* V07 loc7 [V07 ] ( 0, 0 ) int -> zero-ref ld-addr-op
; V08 OutArgs [V08 ] ( 1, 1 ) struct (64) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <Program>
-; V10 tmp2 [V10,T03] ( 3, 4.25) ref -> rax single-def "CASTCLASS eval op1"
-; V11 tmp3 [V11,T06] ( 3, 1.25) long -> rcx "fgMakeTemp is creating a new local variable"
-; V12 tmp4 [V12,T00] ( 8, 12.75) ref -> rbx class-hnd "spilling QMark2" <<unknown class>>
-; V13 tmp5 [V13 ] ( 8, 6.00) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-; V14 tmp6 [V14 ] ( 6, 8.00) struct (16) [rbp-0x48] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
-; V15 tmp7 [V15,T07] ( 5, 1.00) int -> rax "Inline return value spill temp"
-; V16 tmp8 [V16,T04] ( 2, 4 ) long -> rcx "impAppendStmt"
-; V17 tmp9 [V17,T05] ( 2, 2.00) long -> rcx "impAppendStmt"
-; V18 tmp10 [V18,T08] ( 3, 1.00) int -> rax single-def "Inline stloc first use temp"
-; V19 tmp11 [V19,T09] ( 2, 0.00) long -> rcx "impAppendStmt"
-; V20 tmp12 [V20 ] ( 2, 2 ) int -> [rbp-0x18] do-not-enreg[X] addr-exposed "field V05._flags (fldOffset=0x0)" P-DEP
-; V21 tmp13 [V21 ] ( 2, 2 ) int -> [rbp-0x14] do-not-enreg[X] addr-exposed "field V05._hi32 (fldOffset=0x4)" P-DEP
-; V22 tmp14 [V22 ] ( 2, 2 ) long -> [rbp-0x10] do-not-enreg[X] addr-exposed "field V05._lo64 (fldOffset=0x8)" P-DEP
-; V23 tmp15 [V23 ] ( 2, 2 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V06._flags (fldOffset=0x0)" P-DEP
-; V24 tmp16 [V24 ] ( 2, 2 ) int -> [rbp-0x24] do-not-enreg[X] addr-exposed "field V06._hi32 (fldOffset=0x4)" P-DEP
-; V25 tmp17 [V25 ] ( 2, 2 ) long -> [rbp-0x20] do-not-enreg[X] addr-exposed "field V06._lo64 (fldOffset=0x8)" P-DEP
-; V26 tmp18 [V26 ] ( 4, 3.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V13._flags (fldOffset=0x0)" P-DEP
-; V27 tmp19 [V27 ] ( 4, 3.50) int -> [rbp-0x34] do-not-enreg[X] addr-exposed "field V13._hi32 (fldOffset=0x4)" P-DEP
-; V28 tmp20 [V28 ] ( 4, 3.50) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V13._lo64 (fldOffset=0x8)" P-DEP
-; V29 tmp21 [V29 ] ( 4, 3.50) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V14._flags (fldOffset=0x0)" P-DEP
-; V30 tmp22 [V30 ] ( 3, 4.00) int -> [rbp-0x44] do-not-enreg[X] addr-exposed "field V14._hi32 (fldOffset=0x4)" P-DEP
-; V31 tmp23 [V31 ] ( 3, 4.00) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V14._lo64 (fldOffset=0x8)" P-DEP
-; V32 tmp24 [V32,T02] ( 3, 6 ) ref -> rax single-def "argument with side effect"
+; V09 tmp1 [V09,T00] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <Program>
+; V10 tmp2 [V10 ] ( 8, 6.00) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
+; V11 tmp3 [V11 ] ( 6, 8.00) struct (16) [rbp-0x48] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Decimal>
+; V12 tmp4 [V12,T06] ( 5, 1.00) int -> rax "Inline return value spill temp"
+; V13 tmp5 [V13,T04] ( 2, 4 ) long -> rcx "impAppendStmt"
+; V14 tmp6 [V14,T05] ( 2, 2.00) long -> rcx "impAppendStmt"
+; V15 tmp7 [V15,T07] ( 3, 1.00) int -> rax single-def "Inline stloc first use temp"
+; V16 tmp8 [V16,T08] ( 2, 0.00) long -> rcx "impAppendStmt"
+; V17 tmp9 [V17 ] ( 2, 2 ) int -> [rbp-0x18] do-not-enreg[X] addr-exposed "field V05._flags (fldOffset=0x0)" P-DEP
+; V18 tmp10 [V18 ] ( 2, 2 ) int -> [rbp-0x14] do-not-enreg[X] addr-exposed "field V05._hi32 (fldOffset=0x4)" P-DEP
+; V19 tmp11 [V19 ] ( 2, 2 ) long -> [rbp-0x10] do-not-enreg[X] addr-exposed "field V05._lo64 (fldOffset=0x8)" P-DEP
+; V20 tmp12 [V20 ] ( 2, 2 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V06._flags (fldOffset=0x0)" P-DEP
+; V21 tmp13 [V21 ] ( 2, 2 ) int -> [rbp-0x24] do-not-enreg[X] addr-exposed "field V06._hi32 (fldOffset=0x4)" P-DEP
+; V22 tmp14 [V22 ] ( 2, 2 ) long -> [rbp-0x20] do-not-enreg[X] addr-exposed "field V06._lo64 (fldOffset=0x8)" P-DEP
+; V23 tmp15 [V23 ] ( 4, 3.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V10._flags (fldOffset=0x0)" P-DEP
+; V24 tmp16 [V24 ] ( 4, 3.50) int -> [rbp-0x34] do-not-enreg[X] addr-exposed "field V10._hi32 (fldOffset=0x4)" P-DEP
+; V25 tmp17 [V25 ] ( 4, 3.50) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V10._lo64 (fldOffset=0x8)" P-DEP
+; V26 tmp18 [V26 ] ( 4, 3.50) int -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V11._flags (fldOffset=0x0)" P-DEP
+; V27 tmp19 [V27 ] ( 3, 4.00) int -> [rbp-0x44] do-not-enreg[X] addr-exposed "field V11._hi32 (fldOffset=0x4)" P-DEP
+; V28 tmp20 [V28 ] ( 3, 4.00) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V11._lo64 (fldOffset=0x8)" P-DEP
+; V29 tmp21 [V29,T01] ( 3, 6 ) ref -> rax single-def "argument with side effect"
+; V30 tmp22 [V30,T03] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
;
; Lcl frame size = 136
@@ -57,7 +55,7 @@ G_M13170_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=36 bbWeight=1 PerfScore 7.33
G_M13170_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; Program
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
mov rbx, rax
; gcrRegs +[rbx]
@@ -71,7 +69,7 @@ G_M13170_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs -[rax rcx]
mov gword ptr [rsp+0x30], rcx
;; size=5 bbWeight=1 PerfScore 1.00
-G_M13170_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M13170_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov gword ptr [rsp+0x38], rcx
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
@@ -92,19 +90,19 @@ G_M13170_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rax, qword ptr [rax+0x70]
call [rax+0x18]<unknown method>
; gcrRegs -[rcx rdx rbx r8] +[rax]
+ mov rdx, rax
+ ; gcrRegs +[rdx]
+ mov rcx, 0xD1FFAB1E ; <unknown class>
+ call CORINFO_HELP_ISINSTANCEOF_EXCEPTION
+ ; gcrRegs -[rdx]
mov rbx, rax
; gcrRegs +[rbx]
- test rbx, rbx
- jne G_M13170_IG12
- ;; size=81 bbWeight=1 PerfScore 14.25
-G_M13170_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax]
lea rdx, [rbp-0x18]
mov r8d, 3
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
call [rbx+0x18]<unknown method>
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
lea rdx, [rbp-0x28]
mov r8d, 3
mov rcx, gword ptr [rbx+0x08]
@@ -118,86 +116,69 @@ G_M13170_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rcx, qword ptr [rbp-0x40]
mov edx, dword ptr [rbp-0x44]
or rcx, rdx
- je SHORT G_M13170_IG10
- ;; size=66 bbWeight=1 PerfScore 22.75
-G_M13170_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ je SHORT G_M13170_IG09
+ ;; size=156 bbWeight=1 PerfScore 37.25
+G_M13170_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rbp-0x30]
mov edx, dword ptr [rbp-0x34]
or rcx, rdx
- je SHORT G_M13170_IG16
+ je SHORT G_M13170_IG13
mov eax, dword ptr [rbp-0x38]
sar eax, 31
mov ecx, dword ptr [rbp-0x48]
sar ecx, 31
sub eax, ecx
- jne SHORT G_M13170_IG17
+ jne SHORT G_M13170_IG14
lea rcx, [rbp-0x38]
lea rdx, [rbp-0x48]
call [<unknown method>]
;; size=42 bbWeight=0.50 PerfScore 5.75
-G_M13170_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M13170_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test eax, eax
- jne SHORT G_M13170_IG14
+ jne SHORT G_M13170_IG11
;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M13170_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13170_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, 100
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M13170_IG09: ; bbWeight=0.50, epilog, nogc, extend
+G_M13170_IG08: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 136
pop rbx
pop rbp
ret
;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M13170_IG10: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M13170_IG09: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
mov rcx, qword ptr [rbp-0x30]
mov edx, dword ptr [rbp-0x34]
or rcx, rdx
- je SHORT G_M13170_IG08
+ je SHORT G_M13170_IG07
;; size=12 bbWeight=0.00 PerfScore 0.00
-G_M13170_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M13170_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x38]
sar eax, 31
or eax, 1
- jmp SHORT G_M13170_IG07
+ jmp SHORT G_M13170_IG06
;; size=11 bbWeight=0 PerfScore 0.00
-G_M13170_IG12: ; bbWeight=0.25, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rax rbx]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- cmp qword ptr [rbx], rcx
- je G_M13170_IG05
- ;; size=19 bbWeight=0.25 PerfScore 1.06
-G_M13170_IG13: ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- mov rdx, rax
- ; gcrRegs +[rdx]
- call CORINFO_HELP_CHKCASTANY
- ; gcrRegs -[rdx]
- mov rbx, rax
- ; gcrRegs +[rbx]
- jmp G_M13170_IG05
- ;; size=16 bbWeight=0.12 PerfScore 0.44
-G_M13170_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rbx]
+G_M13170_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, -1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M13170_IG15: ; bbWeight=0.50, epilog, nogc, extend
+G_M13170_IG12: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 136
pop rbx
pop rbp
ret
;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M13170_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M13170_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
mov eax, dword ptr [rbp-0x48]
sar eax, 31
or eax, 1
neg eax
- jmp SHORT G_M13170_IG07
+ jmp SHORT G_M13170_IG06
;; size=13 bbWeight=0 PerfScore 0.00
-G_M13170_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M13170_IG07
+G_M13170_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M13170_IG06
;; size=2 bbWeight=0 PerfScore 0.00
-; Total bytes of code 377, prolog size 36, PerfScore 60.46, instruction count 94, allocated bytes for code 377 (MethodHash=eaa4cc8d) for method Program:TestEntryPoint():int (FullOpts)
+; Total bytes of code 351, prolog size 36, PerfScore 59.21, instruction count 88, allocated bytes for code 351 (MethodHash=eaa4cc8d) for method Program:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:
libraries.crossgen2.windows.x64.checked.mch
-19 (-45.24%) : 29747.dasm - System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
@@ -9,35 +9,27 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) ref -> rbx this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
-; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V00 this [V00,T00] ( 4, 4 ) ref -> rcx this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
+;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M14591_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
- sub rsp, 32
- mov rbx, rcx
- ; gcrRegs +[rbx]
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M14591_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
- ; byrRegs +[rax]
- ; gcr arg pop 0
- cmp byte ptr [rbx], bl
- lea rcx, bword ptr [rbx+0x18]
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M14591_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rcx]
+ cmp byte ptr [rcx], cl
+ add rcx, 24
+ ; gcrRegs -[rcx]
; byrRegs +[rcx]
mov rdx, qword ptr [(reloc)] ; <unknown class>
lea rax, [(reloc)] ; function address
- ; byrRegs -[rax]
- ;; size=26 bbWeight=1 PerfScore 9.00
+ ;; size=20 bbWeight=1 PerfScore 5.75
G_M14591_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
- pop rbx
tail.jmp [rax]System.Threading.DeferredDisposableLifetime`1[System.__Canon]:AddRef():ubyte:this
- ;; size=8 bbWeight=1 PerfScore 2.75
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 42, prolog size 8, PerfScore 13.25, instruction count 11, allocated bytes for code 42 (MethodHash=2830c700) for method System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
+; Total bytes of code 23, prolog size 0, PerfScore 7.75, instruction count 5, allocated bytes for code 23 (MethodHash=2830c700) for method System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -45,10 +37,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-18 (-40.00%) : 29748.dasm - System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
@@ -9,37 +9,27 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
-; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V00 this [V00,T00] ( 5, 5 ) ref -> r8 this class-hnd single-def <System.Threading.PreAllocatedOverlapped>
+;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M28675_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
- sub rsp, 32
- mov rbx, rcx
- ; gcrRegs +[rbx]
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M28675_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
- ; byrRegs +[rax]
- ; gcr arg pop 0
- cmp byte ptr [rbx], bl
- lea rcx, bword ptr [rbx+0x18]
+ mov r8, rcx
+ ; gcrRegs +[r8]
+ ;; size=3 bbWeight=1 PerfScore 0.25
+G_M28675_IG02: ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+ cmp byte ptr [r8], r8b
+ lea rcx, bword ptr [r8+0x18]
; byrRegs +[rcx]
mov rdx, qword ptr [(reloc)] ; <unknown class>
- mov r8, rbx
- ; gcrRegs +[r8]
lea rax, [(reloc)] ; function address
- ; byrRegs -[rax]
- ;; size=29 bbWeight=1 PerfScore 9.25
+ ;; size=21 bbWeight=1 PerfScore 6.00
G_M28675_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
- pop rbx
tail.jmp [rax]<unknown method>
- ;; size=8 bbWeight=1 PerfScore 2.75
+ ;; size=3 bbWeight=1 PerfScore 2.00
-; Total bytes of code 45, prolog size 8, PerfScore 13.50, instruction count 12, allocated bytes for code 45 (MethodHash=2d3d8ffc) for method System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
+; Total bytes of code 27, prolog size 3, PerfScore 8.25, instruction count 6, allocated bytes for code 27 (MethodHash=2d3d8ffc) for method System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
; ============================================================
Unwind Info:
@@ -47,10 +37,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-6 (-4.96%) : 153501.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
@@ -15,7 +15,7 @@
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V04 tmp2 [V04,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V05 tmp3 [V05,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V06 cse0 [V06,T03] ( 4, 3 ) byref -> rax "CSE - aggressive"
+; V06 cse0 [V06,T03] ( 4, 3 ) int -> rcx "CSE - aggressive"
; V07 cse1 [V07,T02] ( 5, 3.50) int -> rdx "CSE - aggressive"
;
; Lcl frame size = 40
@@ -28,7 +28,7 @@ G_M44169_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov ebx, edx
;; size=10 bbWeight=1 PerfScore 2.75
G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
movzx rcx, word ptr [rax]
@@ -36,21 +36,20 @@ G_M44169_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmp ecx, edx
je SHORT G_M44169_IG04
;; size=16 bbWeight=1 PerfScore 6.50
-G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
+G_M44169_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[rax]
cmp edx, 47
jne SHORT G_M44169_IG07
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- movzx rcx, word ptr [rax]
- movzx r8, bx
- cmp ecx, r8d
+G_M44169_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ movzx rax, bx
+ cmp ecx, eax
je SHORT G_M44169_IG05
- movzx rcx, bx
- cmp ecx, 47
+ movzx rax, bx
+ cmp eax, 47
jne SHORT G_M44169_IG07
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=15 bbWeight=0.50 PerfScore 1.50
G_M44169_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[rax]
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
@@ -59,13 +58,11 @@ G_M44169_IG06: ; bbWeight=0.50, epilog, nogc, extend
pop rsi
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, gcvars, byref, isz
- ; byrRegs +[rax]
- cmp word ptr [rax], 47
+G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+ cmp ecx, 47
je SHORT G_M44169_IG09
mov ecx, edx
call [<unknown method>]
- ; byrRegs -[rax]
; gcr arg pop 0
mov esi, eax
movzx rcx, bx
@@ -74,7 +71,7 @@ G_M44169_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
cmp esi, eax
sete al
movzx rax, al
- ;; size=33 bbWeight=0.50 PerfScore 6.12
+ ;; size=32 bbWeight=0.50 PerfScore 4.75
G_M44169_IG08: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -94,7 +91,7 @@ G_M44169_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 121, prolog size 6, PerfScore 22.88, instruction count 46, allocated bytes for code 121 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
+; Total bytes of code 115, prolog size 6, PerfScore 20.50, instruction count 45, allocated bytes for code 115 (MethodHash=17bc5376) for method Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 156332.dasm - Microsoft.CodeAnalysis.RuleSetInclude:g_resolveIncludePath|80(System.String,System.String):System.String (FullOpts)
@@ -15,7 +15,7 @@
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T04] ( 2, 2 ) int -> r8 "argument with side effect"
; V05 tmp2 [V05,T03] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
-; V06 cse0 [V06,T05] ( 3, 1.50) byref -> rax "CSE - moderate"
+; V06 cse0 [V06,T05] ( 3, 1.50) int -> r8 "CSE - moderate"
;
; Lcl frame size = 32
@@ -44,12 +44,12 @@ G_M45118_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
;; size=20 bbWeight=1 PerfScore 5.00
G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
- cmp word ptr [rax], 47
- jne SHORT G_M45118_IG04
movzx r8, word ptr [rax]
+ cmp r8d, 47
+ jne SHORT G_M45118_IG04
mov rcx, rbx
; gcrRegs +[rcx]
lea r11, [(reloc)] ; function address
@@ -68,7 +68,7 @@ G_M45118_IG03: ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
- ;; size=51 bbWeight=0.50 PerfScore 9.88
+ ;; size=51 bbWeight=0.50 PerfScore 8.50
G_M45118_IG04: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, rdi
@@ -82,7 +82,7 @@ G_M45118_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 95, prolog size 7, PerfScore 21.62, instruction count 31, allocated bytes for code 95 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 95, prolog size 7, PerfScore 20.25, instruction count 31, allocated bytes for code 95 (MethodHash=eed24fc1) for method Microsoft.CodeAnalysis.RuleSetInclude:<GetIncludePath>g__resolveIncludePath|8_0(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:
+1 (+3.23%) : 3523.dasm - .$Array:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> rbx "value for stsfld with typeinit"
;
; Lcl frame size = 32
@@ -18,21 +17,23 @@ G_M35347_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 32
;; size=5 bbWeight=1 PerfScore 1.25
G_M35347_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- call [<unknown method>]
- ; gcr arg pop 0
- mov ebx, eax
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
- mov dword ptr [rax+0x0E10], ebx
- ;; size=20 bbWeight=1 PerfScore 7.25
+ mov rbx, rax
+ ; byrRegs +[rbx]
+ call [<unknown method>]
+ ; byrRegs -[rax]
+ ; gcr arg pop 0
+ mov dword ptr [rbx+0x0E10], eax
+ ;; size=21 bbWeight=1 PerfScore 7.25
G_M35347_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 31, prolog size 5, PerfScore 10.25, instruction count 9, allocated bytes for code 31 (MethodHash=db6175ec) for method <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 5, PerfScore 10.25, instruction count 9, allocated bytes for code 32 (MethodHash=db6175ec) for method <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
; ============================================================
Unwind Info:
+1 (+3.23%) : 170656.dasm - Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
@@ -9,7 +9,6 @@
; Final local variable assignments
;
; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T00] ( 2, 4 ) int -> rbx "value for stsfld with typeinit"
;
; Lcl frame size = 32
@@ -18,21 +17,23 @@ G_M7219_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 32
;; size=5 bbWeight=1 PerfScore 1.25
G_M7219_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- call [<unknown method>]
- ; gcr arg pop 0
- mov ebx, eax
- call [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
+ call [CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR]
; byrRegs +[rax]
; gcr arg pop 0
- mov dword ptr [rax+0x220], ebx
- ;; size=20 bbWeight=1 PerfScore 7.25
+ mov rbx, rax
+ ; byrRegs +[rbx]
+ call [<unknown method>]
+ ; byrRegs -[rax]
+ ; gcr arg pop 0
+ mov dword ptr [rbx+0x220], eax
+ ;; size=21 bbWeight=1 PerfScore 7.25
G_M7219_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 31, prolog size 5, PerfScore 10.25, instruction count 9, allocated bytes for code 31 (MethodHash=ab7fe3cc) for method Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
+; Total bytes of code 32, prolog size 5, PerfScore 10.25, instruction count 9, allocated bytes for code 32 (MethodHash=ab7fe3cc) for method Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch
-44 (-91.67%) : 1425.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
@@ -8,39 +8,23 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> rbx this class-hnd single-def <Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag>
-; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag>
+;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 tmp1 [V02,T01] ( 2, 2 ) int -> rax "Inline return value spill temp"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M40059_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rbx
- sub rsp, 32
- mov rbx, rcx
- ; gcrRegs +[rbx]
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M40059_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M40059_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M40059_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbx+0x08]
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M40059_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rcx]
+ mov eax, dword ptr [rcx+0x08]
;; size=3 bbWeight=1 PerfScore 2.00
-G_M40059_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
- pop rbx
+G_M40059_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
-G_M40059_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rcx, 0xD1FFAB1E
- mov edx, 0x87F
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M40059_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 48, prolog size 5, PerfScore 9.25, instruction count 13, allocated bytes for code 48 (MethodHash=21e16384) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
+; Total bytes of code 4, prolog size 0, PerfScore 3.00, instruction count 2, allocated bytes for code 4 (MethodHash=21e16384) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -48,10 +32,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-39 (-73.58%) : 1357.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_ActivePatternResult():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
@@ -7,36 +7,22 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M35839_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M35839_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M35839_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M35839_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M35839_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M35839_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M35839_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M35839_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 156
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M35839_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=ae3c7400) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_ActivePatternResult():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=ae3c7400) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_ActivePatternResult():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
; ============================================================
Unwind Info:
@@ -44,9 +30,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-39 (-73.58%) : 1361.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_Class():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
@@ -7,36 +7,22 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M21340_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M21340_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M21340_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M21340_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M21340_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M21340_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M21340_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M21340_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 156
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M21340_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=3b9aaca3) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_Class():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=3b9aaca3) for method Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_Class():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
; ============================================================
Unwind Info:
@@ -44,9 +30,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
+4 (+3.77%) : 371.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
@@ -7,13 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]]>
; V01 arg1 [V01,T01] ( 4, 3 ) int -> rsi single-def
; V02 arg2 [V02,T02] ( 4, 3 ) struct ( 8) [rsp+0x50] do-not-enreg[S] single-def <System.Nullable`1[int]>
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V06 tmp1 [V06,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 40
@@ -30,10 +30,10 @@ G_M49112_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M49112_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M49112_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -52,15 +52,15 @@ G_M49112_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rsi
tail.jmp [rax+0x28]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M49112_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rcx] +[rbx]
- mov rcx, rbx
+G_M49112_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rcx]
+ xor rcx, rcx
; gcrRegs +[rcx]
mov edx, esi
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rcx rbx] +[rax]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
@@ -68,7 +68,7 @@ G_M49112_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=30 bbWeight=0.50 PerfScore 6.38
+ ;; size=34 bbWeight=0.50 PerfScore 6.38
G_M49112_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -76,7 +76,7 @@ G_M49112_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 106, prolog size 16, PerfScore 18.88, instruction count 33, allocated bytes for code 106 (MethodHash=653e4027) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 18.88, instruction count 33, allocated bytes for code 110 (MethodHash=653e4027) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.77%) : 372.dasm - Microsoft.FSharp.Core.FSharpFunc2[int,System.Nullable1[int]]:InvokeFastshort:short (FullOpts)
@@ -7,13 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]]>
; V01 arg1 [V01,T01] ( 4, 3 ) int -> rsi single-def
; V02 arg2 [V02,T02] ( 4, 3 ) struct ( 8) [rsp+0x50] do-not-enreg[S] single-def <System.Nullable`1[int]>
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V06 tmp1 [V06,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 40
@@ -30,10 +30,10 @@ G_M61269_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M61269_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M61269_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -52,15 +52,15 @@ G_M61269_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rsi
tail.jmp [rax+0x28]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M61269_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rcx] +[rbx]
- mov rcx, rbx
+G_M61269_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rcx]
+ xor rcx, rcx
; gcrRegs +[rcx]
mov edx, esi
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rcx rbx] +[rax]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
@@ -68,7 +68,7 @@ G_M61269_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=30 bbWeight=0.50 PerfScore 6.38
+ ;; size=34 bbWeight=0.50 PerfScore 6.38
G_M61269_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -76,7 +76,7 @@ G_M61269_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 106, prolog size 16, PerfScore 18.88, instruction count 33, allocated bytes for code 106 (MethodHash=beac10aa) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],int,System.Nullable`1[int]):short (FullOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 18.88, instruction count 33, allocated bytes for code 110 (MethodHash=beac10aa) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],int,System.Nullable`1[int]):short (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.77%) : 376.dasm - Microsoft.FSharp.Core.FSharpFunc2[int,System.Nullable1[int]]:InvokeFastlong:long (FullOpts)
@@ -7,13 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]]>
; V01 arg1 [V01,T01] ( 4, 3 ) int -> rsi single-def
; V02 arg2 [V02,T02] ( 4, 3 ) struct ( 8) [rsp+0x50] do-not-enreg[S] single-def <System.Nullable`1[int]>
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V06 tmp1 [V06,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 40
@@ -30,10 +30,10 @@ G_M749_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M749_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M749_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -52,15 +52,15 @@ G_M749_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rsi
tail.jmp [rax+0x28]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-G_M749_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rcx] +[rbx]
- mov rcx, rbx
+G_M749_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rcx]
+ xor rcx, rcx
; gcrRegs +[rcx]
mov edx, esi
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rcx rbx] +[rax]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
@@ -68,7 +68,7 @@ G_M749_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=30 bbWeight=0.50 PerfScore 6.38
+ ;; size=34 bbWeight=0.50 PerfScore 6.38
G_M749_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -76,7 +76,7 @@ G_M749_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=10 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 106, prolog size 16, PerfScore 18.88, instruction count 33, allocated bytes for code 106 (MethodHash=f06afd12) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],int,System.Nullable`1[int]):long (FullOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 18.88, instruction count 33, allocated bytes for code 110 (MethodHash=f06afd12) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],int,System.Nullable`1[int]):long (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-30 (-71.43%) : 253.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M27576_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M27576_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 35
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov eax, dword ptr [(reloc)] ; static handle
- ;; size=26 bbWeight=1 PerfScore 3.50
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M27576_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 42, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 42 (MethodHash=44ff9447) for method Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
+; Total bytes of code 12, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 12 (MethodHash=44ff9447) for method Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-71.43%) : 1783.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M27576_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M27576_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 35
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov eax, dword ptr [(reloc)] ; static handle
- ;; size=26 bbWeight=1 PerfScore 3.50
+ ;; size=6 bbWeight=1 PerfScore 2.00
G_M27576_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 42, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 42 (MethodHash=44ff9447) for method Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
+; Total bytes of code 12, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 12 (MethodHash=44ff9447) for method Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-30 (-69.77%) : 5009.dasm - System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
@@ -5,28 +5,23 @@
; partially interruptible
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 32
+; Lcl frame size = 0
G_M41143_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
- ;; size=10 bbWeight=1 PerfScore 1.75
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M41143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, 0xD1FFAB1E
- mov edx, 1
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
movzx rax, byte ptr [(reloc)] ; static handle
- ;; size=27 bbWeight=1 PerfScore 3.50
+ ;; size=7 bbWeight=1 PerfScore 2.00
G_M41143_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
pop rbp
ret
- ;; size=6 bbWeight=1 PerfScore 1.75
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 43, prolog size 10, PerfScore 7.00, instruction count 10, allocated bytes for code 43 (MethodHash=c8a55f48) for method System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
+; Total bytes of code 13, prolog size 4, PerfScore 4.75, instruction count 5, allocated bytes for code 13 (MethodHash=c8a55f48) for method System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
; ============================================================
Unwind Info:
@@ -34,10 +29,9 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x05
- CountOfUnwindCodes: 2
+ SizeOfProlog : 0x01
+ CountOfUnwindCodes: 1
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-20 (-3.03%) : 1638.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
@@ -70,15 +70,12 @@ G_M3749_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
mov gword ptr [rbp-0x70], rax
cmp gword ptr [rbp-0x68], 0
jne SHORT G_M3749_IG05
- mov rcx, 0xD1FFAB1E
- mov edx, 6
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ ; gcrRegs -[rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
mov gword ptr [rbp-0x70], rax
- ;; size=78 bbWeight=1 PerfScore 18.00
+ ;; size=58 bbWeight=1 PerfScore 16.50
G_M3749_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rbp-0x70]
@@ -190,7 +187,7 @@ G_M3749_IG06: ; bbWeight=1, extend
; gcrRegs -[rcx]
mov gword ptr [rbp-0x88], rax
mov rcx, 0xD1FFAB1E ; Internal.Microsoft.Extensions.DependencyModel.CompilationOptions
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
mov gword ptr [rbp-0x90], rax
mov rcx, gword ptr [rbp-0x50]
; gcrRegs +[rcx]
@@ -239,7 +236,7 @@ G_M3749_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 660, prolog size 57, PerfScore 181.08, instruction count 133, allocated bytes for code 660 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
+; Total bytes of code 640, prolog size 57, PerfScore 179.58, instruction count 130, allocated bytes for code 640 (MethodHash=f11ef15a) for method Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (Tier0)
; ============================================================
Unwind Info:
+16 (+12.40%) : 2498.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable1[ubyte]](System.String,System.Nullable1[ubyte]):this (Tier0)
@@ -7,7 +7,7 @@
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <Xunit.TestFrameworkOptions>
; V01 arg1 [V01 ] ( 1, 1 ) ref -> [rbp+0x18] do-not-enreg[] class-hnd <System.String>
-; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp+0x20] do-not-enreg[XSF] addr-exposed <System.Nullable`1[ubyte]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp+0x20] do-not-enreg[XS] addr-exposed <System.Nullable`1[ubyte]>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] must-init "argument with side effect"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] must-init "argument with side effect"
@@ -26,11 +26,13 @@ G_M26730_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov qword ptr [rbp+0x20], r8
;; size=32 bbWeight=1 PerfScore 7.00
G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movzx rax, byte ptr [rbp+0x20]
- test eax, eax
+ lea rdx, [rbp+0x20]
+ mov rcx, 0xD1FFAB1E ; System.Nullable`1[ubyte]
+ call CORINFO_HELP_UNBOX_NULLABLE
+ ; gcrRegs +[rax]
+ test rax, rax
jne SHORT G_M26730_IG04
mov rax, gword ptr [rbp+0x10]
- ; gcrRegs +[rax]
mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
mov rdx, gword ptr [rbp+0x18]
@@ -39,7 +41,7 @@ G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rax rcx rdx]
nop
- ;; size=29 bbWeight=1 PerfScore 12.50
+ ;; size=45 bbWeight=1 PerfScore 13.25
G_M26730_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
@@ -52,7 +54,7 @@ G_M26730_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x10], rax
lea rdx, [rbp+0x20]
mov rcx, 0xD1FFAB1E ; System.Nullable`1[ubyte]
- call CORINFO_HELP_BOX_NULLABLE
+ call CORINFO_HELP_UNBOX_NULLABLE
mov gword ptr [rbp-0x08], rax
mov r8, gword ptr [rbp-0x08]
; gcrRegs +[r8]
@@ -71,7 +73,7 @@ G_M26730_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 129, prolog size 20, PerfScore 39.00, instruction count 37, allocated bytes for code 129 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
+; Total bytes of code 145, prolog size 20, PerfScore 39.75, instruction count 39, allocated bytes for code 145 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
; ============================================================
Unwind Info:
+16 (+12.40%) : 4675.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable1[ubyte]](System.String,System.Nullable1[ubyte]):this (Tier0)
@@ -7,7 +7,7 @@
;
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <Xunit.TestFrameworkOptions>
; V01 arg1 [V01 ] ( 1, 1 ) ref -> [rbp+0x18] do-not-enreg[] class-hnd <System.String>
-; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp+0x20] do-not-enreg[XSF] addr-exposed <System.Nullable`1[ubyte]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp+0x20] do-not-enreg[XS] addr-exposed <System.Nullable`1[ubyte]>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] must-init "argument with side effect"
; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] must-init "argument with side effect"
@@ -26,11 +26,13 @@ G_M26730_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov qword ptr [rbp+0x20], r8
;; size=32 bbWeight=1 PerfScore 7.00
G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movzx rax, byte ptr [rbp+0x20]
- test eax, eax
+ lea rdx, [rbp+0x20]
+ mov rcx, 0xD1FFAB1E ; System.Nullable`1[ubyte]
+ call CORINFO_HELP_UNBOX_NULLABLE
+ ; gcrRegs +[rax]
+ test rax, rax
jne SHORT G_M26730_IG04
mov rax, gword ptr [rbp+0x10]
- ; gcrRegs +[rax]
mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
mov rdx, gword ptr [rbp+0x18]
@@ -39,7 +41,7 @@ G_M26730_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rax rcx rdx]
nop
- ;; size=29 bbWeight=1 PerfScore 12.50
+ ;; size=45 bbWeight=1 PerfScore 13.25
G_M26730_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
@@ -52,7 +54,7 @@ G_M26730_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x10], rax
lea rdx, [rbp+0x20]
mov rcx, 0xD1FFAB1E ; System.Nullable`1[ubyte]
- call CORINFO_HELP_BOX_NULLABLE
+ call CORINFO_HELP_UNBOX_NULLABLE
mov gword ptr [rbp-0x08], rax
mov r8, gword ptr [rbp-0x08]
; gcrRegs +[r8]
@@ -71,7 +73,7 @@ G_M26730_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 129, prolog size 20, PerfScore 39.00, instruction count 37, allocated bytes for code 129 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
+; Total bytes of code 145, prolog size 20, PerfScore 39.75, instruction count 39, allocated bytes for code 145 (MethodHash=1fca9795) for method Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
; ============================================================
Unwind Info:
librariestestsnotieredcompilation.run.windows.x64.Release.mch
-39 (-73.58%) : 485.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -8,36 +8,22 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Xunit.TestAssemblyDiscoveryStarting>
-; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M52532_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M52532_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M52532_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M52532_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M52532_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M52532_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M52532_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M52532_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 56
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M52532_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=5fc132cb) for method Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=5fc132cb) for method Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -45,9 +31,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-39 (-73.58%) : 737.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -8,36 +8,22 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Xunit.TestAssemblyDiscoveryFinished>
-; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M31334_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M31334_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M31334_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M31334_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M31334_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M31334_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M31334_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M31334_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 55
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M31334_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=58be8599) for method Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=58be8599) for method Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -45,9 +31,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-39 (-73.58%) : 745.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
@@ -8,36 +8,22 @@
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Xunit.TestAssemblyExecutionStarting>
-; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M24108_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M24108_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M24108_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M24108_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M24108_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M24108_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M24108_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M24108_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 58
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M24108_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=c38ba1d3) for method Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=c38ba1d3) for method Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -45,9 +31,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-1 (-1.41%) : 465.dasm - Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> rcx this class-hnd single-def <Xunit.Sdk.ReflectionTypeInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 32
@@ -32,18 +32,18 @@ G_M47281_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {},
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
jne SHORT G_M47281_IG05
;; size=36 bbWeight=1 PerfScore 8.00
-G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rdx, rbx
+G_M47281_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbx]
+ xor rdx, rdx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown method>
- ;; size=13 bbWeight=0.50 PerfScore 0.25
+ ;; size=12 bbWeight=0.50 PerfScore 0.25
G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -51,13 +51,13 @@ G_M47281_IG04: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=11 bbWeight=0.50 PerfScore 1.38
G_M47281_IG05: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rdx rbx] +[rax]
+ ; gcrRegs -[rdx] +[rax]
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-; Total bytes of code 71, prolog size 5, PerfScore 11.75, instruction count 18, allocated bytes for code 71 (MethodHash=13da474e) for method Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
+; Total bytes of code 70, prolog size 5, PerfScore 11.75, instruction count 18, allocated bytes for code 70 (MethodHash=13da474e) for method Xunit.Sdk.ReflectionTypeInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
; ============================================================
Unwind Info:
-1 (-1.41%) : 567.dasm - Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 3, 3 ) ref -> rcx this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
-; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <System.String>
+; V00 this [V00,T01] ( 3, 3 ) ref -> rcx this class-hnd single-def <Xunit.Sdk.ReflectionMethodInfo>
+; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.String>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T02] ( 3, 5 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
-; V04 tmp2 [V04,T03] ( 3, 5 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
+; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]>
+; V04 tmp2 [V04,T03] ( 2, 3 ) ref -> rax class-hnd single-def "dup spill" <<unknown class>>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;
; Lcl frame size = 32
@@ -32,18 +32,18 @@ G_M51894_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {},
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
jne SHORT G_M51894_IG05
;; size=36 bbWeight=1 PerfScore 8.00
-G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rdx, rbx
+G_M51894_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbx]
+ xor rdx, rdx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown method>
- ;; size=13 bbWeight=0.50 PerfScore 0.25
+ ;; size=12 bbWeight=0.50 PerfScore 0.25
G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -51,13 +51,13 @@ G_M51894_IG04: ; bbWeight=0.50, epilog, nogc, extend
; gcr arg pop 0
;; size=11 bbWeight=0.50 PerfScore 1.38
G_M51894_IG05: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rdx rbx] +[rax]
+ ; gcrRegs -[rdx] +[rax]
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-; Total bytes of code 71, prolog size 5, PerfScore 11.75, instruction count 18, allocated bytes for code 71 (MethodHash=ff0d3549) for method Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
+; Total bytes of code 70, prolog size 5, PerfScore 11.75, instruction count 18, allocated bytes for code 70 (MethodHash=ff0d3549) for method Xunit.Sdk.ReflectionMethodInfo:GetCustomAttributes(System.String):System.Collections.Generic.IEnumerable`1[Xunit.Abstractions.IAttributeInfo]:this (FullOpts)
; ============================================================
Unwind Info:
-9 (-0.73%) : 969.dasm - System.Linq.Enumerable:ToDictionarySystem.Canon,System.Canon,System.__Canon:System.Collections.Generic.Dictionary`2System.Canon,System.Canon
@@ -16,7 +16,7 @@
; V05 loc0 [V05 ] ( 3, 2 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc1 [V06,T11] ( 3, 5 ) ref -> r13 class-hnd exact single-def <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
; V07 loc2 [V07,T55] ( 3, 1.50) ref -> r13 class-hnd single-def <System.__Canon[]>
-; V08 loc3 [V08,T56] ( 3, 1.50) ref -> r13 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
+; V08 loc3 [V08,T59] ( 2, 1 ) ref -> r14 class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
; V09 loc4 [V09 ] ( 2, 1 ) struct (16) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed <System.ReadOnlySpan`1[System.__Canon]>
; V10 loc5 [V10,T07] ( 7, 9 ) ref -> [rbp-0xA0] class-hnd EH-live single-def <<unknown class>>
; V11 loc6 [V11,T06] ( 3, 12 ) ref -> rdi class-hnd <System.__Canon>
@@ -31,7 +31,7 @@
; V20 tmp8 [V20,T01] ( 2, 16 ) ref -> r12 class-hnd "non-inline candidate call" <System.__Canon>
;* V21 tmp9 [V21 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V22 tmp10 [V22 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V23 tmp11 [V23,T39] ( 3, 2 ) long -> r14 "spilling helperCall"
+; V23 tmp11 [V23,T39] ( 3, 2 ) long -> r13 "spilling helperCall"
; V24 tmp12 [V24,T40] ( 3, 2 ) long -> r12 "spilling helperCall"
; V25 tmp13 [V25 ] ( 2, 2 ) struct (16) [rbp-0x68] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.Span`1[System.__Canon]>
;* V26 tmp14 [V26 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
@@ -73,7 +73,7 @@
; V62 rat13 [V62,T22] ( 3, 2.80) long -> rcx "spilling expr"
; V63 rat14 [V63,T32] ( 3, 2.24) long -> rcx "fgMakeTemp is creating a new local variable"
; V64 rat15 [V64,T23] ( 3, 2.80) long -> rcx "spilling expr"
-; V65 rat16 [V65,T33] ( 3, 2.24) long -> r14 "fgMakeTemp is creating a new local variable"
+; V65 rat16 [V65,T33] ( 3, 2.24) long -> r13 "fgMakeTemp is creating a new local variable"
; V66 rat17 [V66,T24] ( 3, 2.80) long -> rcx "spilling expr"
; V67 rat18 [V67,T34] ( 3, 2.24) long -> r12 "fgMakeTemp is creating a new local variable"
; V68 rat19 [V68,T46] ( 3, 2 ) long -> rcx "runtime lookup"
@@ -84,9 +84,9 @@
; V73 rat24 [V73,T36] ( 3, 2.24) long -> rcx "fgMakeTemp is creating a new local variable"
; V74 rat25 [V74,T27] ( 3, 2.80) long -> rcx "spilling expr"
; V75 rat26 [V75,T37] ( 3, 2.24) long -> r11 "fgMakeTemp is creating a new local variable"
-; V76 rat27 [V76,T59] ( 3, 1 ) long -> r15 "runtime lookup"
-; V77 rat28 [V77,T57] ( 3, 1.40) long -> rcx "spilling expr"
-; V78 rat29 [V78,T58] ( 3, 1.12) long -> r15 "fgMakeTemp is creating a new local variable"
+; V76 rat27 [V76,T58] ( 3, 1 ) long -> r15 "runtime lookup"
+; V77 rat28 [V77,T56] ( 3, 1.40) long -> rcx "spilling expr"
+; V78 rat29 [V78,T57] ( 3, 1.12) long -> r15 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 152
@@ -137,7 +137,7 @@ G_M36297_IG03: ; bbWeight=0.80, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRe
G_M36297_IG04: ; bbWeight=0.20, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.20 PerfScore 0.35
@@ -170,12 +170,12 @@ G_M36297_IG08: ; bbWeight=0.32, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
G_M36297_IG09: ; bbWeight=0.18, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG10: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
; gcr arg pop 0
mov rdi, rax
@@ -220,14 +220,14 @@ G_M36297_IG14: ; bbWeight=0.32, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRe
G_M36297_IG15: ; bbWeight=0.18, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG16: ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdx, r14
; gcrRegs +[rdx]
- call CORINFO_HELP_ISINSTANCEOFARRAY
+ call CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
mov r13, rax
@@ -250,7 +250,7 @@ G_M36297_IG18: ; bbWeight=0.32, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRe
G_M36297_IG19: ; bbWeight=0.18, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r14, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
@@ -270,7 +270,7 @@ G_M36297_IG22: ; bbWeight=0.32, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRe
G_M36297_IG23: ; bbWeight=0.18, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r12, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
@@ -330,67 +330,65 @@ G_M36297_IG30: ; bbWeight=0.32, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRe
G_M36297_IG31: ; bbWeight=0.18, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG32: ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdx, r14
; gcrRegs +[rdx]
- call CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[rdx] +[rax]
+ call CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[rdx r14] +[rax]
; gcr arg pop 0
- mov r13, rax
- ; gcrRegs +[r13]
- test r13, r13
- je G_M36297_IG49
+ mov r14, rax
+ ; gcrRegs +[r14]
mov rcx, qword ptr [rdi+0x38]
cmp qword ptr [rcx+0x18], 80
jle SHORT G_M36297_IG35
- ;; size=31 bbWeight=0.50 PerfScore 4.38
-G_M36297_IG33: ; bbWeight=0.40, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax r14]
- mov r14, qword ptr [rcx+0x50]
- test r14, r14
+ ;; size=22 bbWeight=0.50 PerfScore 3.75
+G_M36297_IG33: ; bbWeight=0.40, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax]
+ mov r13, qword ptr [rcx+0x50]
+ test r13, r13
je SHORT G_M36297_IG35
;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M36297_IG34: ; bbWeight=0.32, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG34: ; bbWeight=0.32, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
jmp SHORT G_M36297_IG36
;; size=2 bbWeight=0.32 PerfScore 0.64
-G_M36297_IG35: ; bbWeight=0.18, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref
+G_M36297_IG35: ; bbWeight=0.18, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
- mov r14, rax
+ mov r13, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
-G_M36297_IG36: ; bbWeight=0.50, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG36: ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rdi+0x38]
cmp qword ptr [rcx+0x18], 88
jle SHORT G_M36297_IG39
;; size=11 bbWeight=0.50 PerfScore 3.00
-G_M36297_IG37: ; bbWeight=0.40, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG37: ; bbWeight=0.40, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
mov r12, qword ptr [rcx+0x58]
test r12, r12
je SHORT G_M36297_IG39
;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M36297_IG38: ; bbWeight=0.32, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M36297_IG38: ; bbWeight=0.32, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
jmp SHORT G_M36297_IG40
;; size=2 bbWeight=0.32 PerfScore 0.64
-G_M36297_IG39: ; bbWeight=0.18, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref
+G_M36297_IG39: ; bbWeight=0.18, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r12, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
-G_M36297_IG40: ; bbWeight=0.50, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref
+G_M36297_IG40: ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x68]
- mov rdx, r14
- mov r8, r13
+ mov rdx, r13
+ mov r8, r14
; gcrRegs +[r8]
call [System.Runtime.InteropServices.CollectionsMarshal:AsSpan[System.__Canon](System.Collections.Generic.List`1[System.__Canon]):System.Span`1[System.__Canon]]
- ; gcrRegs -[r8 r13]
+ ; gcrRegs -[r8 r14]
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 2.00
G_M36297_IG41: ; bbWeight=0.50, nogc, extend
@@ -418,7 +416,7 @@ G_M36297_IG44: ; bbWeight=0.32, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0
G_M36297_IG45: ; bbWeight=0.18, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
@@ -468,12 +466,12 @@ G_M36297_IG51: ; bbWeight=0.32, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRe
G_M36297_IG52: ; bbWeight=0.18, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M36297_IG53: ; bbWeight=0.50, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
- call CORINFO_HELP_NEWSFAST
+ call CORINFO_HELP_NEWSFAST_ALIGN8
; gcrRegs +[rax]
; gcr arg pop 0
mov r13, rax
@@ -501,7 +499,7 @@ G_M36297_IG55: ; bbWeight=0.32, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRe
G_M36297_IG56: ; bbWeight=0.18, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r11, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
@@ -543,7 +541,7 @@ G_M36297_IG61: ; bbWeight=0.16, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRe
G_M36297_IG62: ; bbWeight=0.09, gcrefRegs=6048 {rbx rsi r13 r14}, byrefRegs=0000 {}, byref
mov rcx, rdi
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov r15, rax
;; size=21 bbWeight=0.09 PerfScore 0.16
@@ -690,7 +688,7 @@ G_M36297_IG74: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1236, prolog size 84, PerfScore 238.71, instruction count 337, allocated bytes for code 1236 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
+; Total bytes of code 1227, prolog size 84, PerfScore 238.09, instruction count 335, allocated bytes for code 1227 (MethodHash=28597236) for method System.Linq.Enumerable:ToDictionary[System.__Canon,System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon] (FullOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch
-39 (-73.58%) : 2989.dasm - FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
@@ -7,36 +7,22 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M34240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M34240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M34240_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M34240_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M34240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M34240_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M34240_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M34240_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 0x3CAB
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M34240_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=e8cf7a3f) for method FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=e8cf7a3f) for method FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
; ============================================================
Unwind Info:
@@ -44,9 +30,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-39 (-73.58%) : 2632.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
@@ -7,36 +7,22 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M41081_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M41081_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M41081_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M41081_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M41081_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
;; size=13 bbWeight=1 PerfScore 2.25
-G_M41081_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M41081_IG03: ; bbWeight=1, epilog, nogc, extend
ret
- ;; size=5 bbWeight=1 PerfScore 1.25
-G_M41081_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- mov rcx, 0xD1FFAB1E
- mov edx, 0x52D
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M41081_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 4, PerfScore 7.75, instruction count 11, allocated bytes for code 53 (MethodHash=80065f86) for method System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
+; Total bytes of code 14, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 14 (MethodHash=80065f86) for method System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
; ============================================================
Unwind Info:
@@ -44,9 +30,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
-39 (-65.00%) : 2781.dasm - System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
@@ -8,38 +8,24 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 OutArgs [V00 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 40
+; Lcl frame size = 0
G_M46897_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- sub rsp, 40
- ;; size=4 bbWeight=1 PerfScore 0.25
-G_M46897_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- test byte ptr [(reloc)], 1 ; global ptr
- je SHORT G_M46897_IG05
- ;; size=9 bbWeight=1 PerfScore 4.00
-G_M46897_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=0 bbWeight=1 PerfScore 0.00
+G_M46897_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
cmp dword ptr [rcx], ecx
;; size=15 bbWeight=1 PerfScore 5.25
-G_M46897_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+G_M46897_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Threading.PortableThreadPool:RequestWorker():this]
; gcr arg pop 0
- ;; size=10 bbWeight=1 PerfScore 2.25
-G_M46897_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rcx]
- mov rcx, 0xD1FFAB1E
- mov edx, 985
- call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- ; gcr arg pop 0
- jmp SHORT G_M46897_IG03
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 4, PerfScore 11.75, instruction count 12, allocated bytes for code 60 (MethodHash=8a4148ce) for method System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
+; Total bytes of code 21, prolog size 0, PerfScore 7.25, instruction count 4, allocated bytes for code 21 (MethodHash=8a4148ce) for method System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
; ============================================================
Unwind Info:
@@ -47,9 +33,8 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x04
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x00
+ CountOfUnwindCodes: 0
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
+4 (+2.96%) : 3667.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
@@ -8,15 +8,15 @@
; Final local variable assignments
;
; V00 TypeCtx [V00,T00] ( 5, 4.20) long -> rcx single-def
-; V01 arg0 [V01,T01] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]>
+; V01 arg0 [V01,T01] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]>
; V02 arg1 [V02,T04] ( 4, 3 ) int -> rdi single-def
; V03 arg2 [V03,T03] ( 4, 3 ) ref -> rsi class-hnd single-def <System.__Canon>
-; V04 loc0 [V04,T07] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V04 loc0 [V04,T08] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V08 tmp2 [V08,T06] ( 2, 4 ) long -> rcx "argument with side effect"
-; V09 tmp3 [V09,T08] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V09 tmp3 [V09,T07] ( 3, 3 ) ref -> rax single-def "argument with side effect"
; V10 rat0 [V10,T05] ( 3, 4 ) long -> rcx "runtime lookup"
; V11 rat1 [V11,T02] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable"
;
@@ -46,17 +46,17 @@ G_M46648_IG03: ; bbWeight=0.80, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
;; size=5 bbWeight=0.80 PerfScore 1.80
G_M46648_IG04: ; bbWeight=0.20, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=18 bbWeight=0.20 PerfScore 0.30
G_M46648_IG05: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rbx
; gcrRegs +[rdx]
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M46648_IG08
;; size=13 bbWeight=1 PerfScore 2.50
G_M46648_IG06: ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref
@@ -77,15 +77,15 @@ G_M46648_IG07: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x28]<unknown method>
;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M46648_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rcx r8] +[rbx]
- mov rcx, rbx
+G_M46648_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rcx r8]
+ xor rcx, rcx
; gcrRegs +[rcx]
mov edx, edi
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rcx rbx] +[rax]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
@@ -94,7 +94,7 @@ G_M46648_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=28 bbWeight=0.50 PerfScore 6.00
+ ;; size=32 bbWeight=0.50 PerfScore 6.00
G_M46648_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 48
pop rbx
@@ -103,7 +103,7 @@ G_M46648_IG09: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 135, prolog size 21, PerfScore 26.98, instruction count 45, allocated bytes for code 135 (MethodHash=085649c7) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
+; Total bytes of code 139, prolog size 21, PerfScore 26.98, instruction count 45, allocated bytes for code 139 (MethodHash=085649c7) for method Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
; ============================================================
Unwind Info:
+3 (+3.19%) : 2354.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
@@ -7,11 +7,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.Xml.XmlNode>
-; V01 loc0 [V01,T01] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V00 this [V00,T00] ( 6, 5 ) ref -> rbx this class-hnd single-def <System.Xml.XmlNode>
+; V01 loc0 [V01,T02] ( 2, 1.50) ref -> rdx class-hnd single-def <<unknown class>>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V04 tmp1 [V04,T01] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 32
@@ -25,50 +25,50 @@ G_M19732_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
- je SHORT G_M19732_IG05
- ;; size=23 bbWeight=1 PerfScore 2.75
-G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
- mov rcx, rax
- ; gcrRegs +[rcx]
- mov rdx, rbx
+ mov rdx, rax
; gcrRegs +[rdx]
- mov rax, qword ptr [rax]
+ test rbx, rbx
+ je SHORT G_M19732_IG05
+ ;; size=26 bbWeight=1 PerfScore 3.00
+G_M19732_IG03: ; bbWeight=0.50, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ mov rcx, rbx
+ ; gcrRegs +[rcx]
+ mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x98]
- ;; size=16 bbWeight=0.50 PerfScore 2.25
+ ;; size=13 bbWeight=0.50 PerfScore 2.12
G_M19732_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
tail.jmp [rax+0x10]<unknown method>
;; size=9 bbWeight=0.50 PerfScore 1.38
-G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rcx rdx]
- mov rcx, rbx
+G_M19732_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rcx rdx rbx]
+ xor rcx, rcx
; gcrRegs +[rcx]
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x50]
call [rax+0x30]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
- mov rdx, rbx
+ xor rdx, rdx
; gcrRegs +[rdx]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x98]
- ;; size=29 bbWeight=0.50 PerfScore 5.88
+ ;; size=32 bbWeight=0.50 PerfScore 5.88
G_M19732_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
tail.jmp [rax+0x10]<unknown method>
;; size=9 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 94, prolog size 8, PerfScore 15.12, instruction count 26, allocated bytes for code 94 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
+; Total bytes of code 97, prolog size 8, PerfScore 15.25, instruction count 26, allocated bytes for code 97 (MethodHash=3159b2eb) for method System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
; ============================================================
Unwind Info:
+4 (+3.92%) : 3629.dasm - Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
@@ -7,14 +7,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
+; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <FSharp.Compiler.AbstractIL.BinaryConstants+TableName>
; V02 arg2 [V02,T01] ( 4, 3 ) int -> rsi single-def
-; V03 loc0 [V03,T03] ( 4, 3 ) ref -> rax class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T04] ( 3, 2 ) ref -> rax class-hnd single-def <<unknown class>>
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T02] ( 3, 2 ) int -> rdi single-def "field V01.idx (fldOffset=0x0)" P-INDEP
-; V07 tmp2 [V07,T04] ( 3, 3 ) ref -> rax single-def "argument with side effect"
+; V07 tmp2 [V07,T03] ( 3, 3 ) ref -> rax single-def "argument with side effect"
;
; Lcl frame size = 32
@@ -32,10 +32,10 @@ G_M49388_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
+ call CORINFO_HELP_CHKCASTINTERFACE
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
- test rax, rax
+ test rbx, rbx
je SHORT G_M49388_IG05
;; size=23 bbWeight=1 PerfScore 2.75
G_M49388_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
@@ -55,15 +55,15 @@ G_M49388_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop rdi
tail.jmp [rax+0x28]<unknown method>
;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rcx] +[rbx]
- mov rcx, rbx
+G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rcx]
+ xor rcx, rcx
; gcrRegs +[rcx]
mov edx, edi
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [0x0000]
mov rax, qword ptr [rax+0x48]
call [rax+0x20]<unknown method>
- ; gcrRegs -[rcx rbx] +[rax]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
@@ -71,7 +71,7 @@ G_M49388_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
- ;; size=27 bbWeight=0.50 PerfScore 6.00
+ ;; size=31 bbWeight=0.50 PerfScore 6.00
G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -80,7 +80,7 @@ G_M49388_IG06: ; bbWeight=0.50, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 102, prolog size 15, PerfScore 18.88, instruction count 36, allocated bytes for code 102 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
+; Total bytes of code 106, prolog size 15, PerfScore 18.88, instruction count 36, allocated bytes for code 106 (MethodHash=75db3f13) for method Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
; ============================================================
Unwind Info:
smoke_tests.nativeaot.windows.x64.checked.mch
-23 (-56.10%) : 11613.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
@@ -15,29 +15,20 @@
G_M47143_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M47143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea rax, [(reloc)]
- cmp qword ptr [rax-0x08], 0
- jne SHORT G_M47143_IG05
- ;; size=14 bbWeight=1 PerfScore 4.50
-G_M47143_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, qword ptr [(reloc)]
+G_M47143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
mov rax, gword ptr [rax+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M47143_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[rax]
+ ;; size=9 bbWeight=1 PerfScore 3.00
+G_M47143_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M47143_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp SHORT G_M47143_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 41, prolog size 4, PerfScore 10.00, instruction count 10, allocated bytes for code 41 (MethodHash=9ea447d8) for method Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 18, prolog size 4, PerfScore 4.50, instruction count 5, allocated bytes for code 18 (MethodHash=9ea447d8) for method Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================
Unwind Info:
-23 (-56.10%) : 4570.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
@@ -16,29 +16,20 @@
G_M28146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M28146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea rax, [(reloc)]
- cmp qword ptr [rax-0x08], 0
- jne SHORT G_M28146_IG05
- ;; size=14 bbWeight=1 PerfScore 4.50
-G_M28146_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, qword ptr [(reloc)]
+G_M28146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
mov rax, gword ptr [rax+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M28146_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[rax]
+ ;; size=9 bbWeight=1 PerfScore 3.00
+G_M28146_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M28146_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp SHORT G_M28146_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 41, prolog size 4, PerfScore 10.00, instruction count 10, allocated bytes for code 41 (MethodHash=6de6920d) for method Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
+; Total bytes of code 18, prolog size 4, PerfScore 4.50, instruction count 5, allocated bytes for code 18 (MethodHash=6de6920d) for method Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
; ============================================================
Unwind Info:
-23 (-56.10%) : 6386.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
@@ -16,29 +16,20 @@
G_M47143_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M47143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea rax, [(reloc)]
- cmp qword ptr [rax-0x08], 0
- jne SHORT G_M47143_IG05
- ;; size=14 bbWeight=1 PerfScore 4.50
-G_M47143_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rax, qword ptr [(reloc)]
+G_M47143_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
mov rax, gword ptr [rax+0x08]
; gcrRegs +[rax]
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M47143_IG04: ; bbWeight=1, epilog, nogc, extend
+ ; byrRegs -[rax]
+ ;; size=9 bbWeight=1 PerfScore 3.00
+G_M47143_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-G_M47143_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax]
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp SHORT G_M47143_IG03
- ;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 41, prolog size 4, PerfScore 10.00, instruction count 10, allocated bytes for code 41 (MethodHash=9ea447d8) for method Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
+; Total bytes of code 18, prolog size 4, PerfScore 4.50, instruction count 5, allocated bytes for code 18 (MethodHash=9ea447d8) for method Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
; ============================================================
Unwind Info:
-27 (-3.10%) : 12016.dasm - System.DateTimeFormat:TryFormatInvariantGushort:ubyte (FullOpts)
@@ -210,13 +210,12 @@ G_M22798_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
; byrRegs -[rbx]
; gcr arg pop 0
;; size=187 bbWeight=0.50 PerfScore 18.00
-G_M22798_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- lea rcx, [(reloc)]
- cmp qword ptr [rcx-0x08], 0
- jne G_M22798_IG18
- ;; size=18 bbWeight=0.50 PerfScore 2.25
-G_M22798_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r13, qword ptr [(reloc)]
+G_M22798_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
+ mov r13, rax
+ ; byrRegs +[r13]
mov rcx, gword ptr [r13+0x38]
; gcrRegs +[rcx]
cmp byte ptr [rcx], cl
@@ -228,17 +227,17 @@ G_M22798_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov word ptr [rbx+0x04], 47
mov r15d, dword ptr [rsp+0x30]
cmp r15d, 99
- jbe SHORT G_M22798_IG08
+ jbe SHORT G_M22798_IG07
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
; gcrRegs +[rdx]
call <unknown method>
; gcrRegs -[rcx rdx]
- ; byrRegs +[r13]
+ ; byrRegs -[rax]
; gcr arg pop 0
- ;; size=62 bbWeight=0.50 PerfScore 8.00
-G_M22798_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+ ;; size=63 bbWeight=0.50 PerfScore 7.62
+G_M22798_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
lea rcx, [rbx+0x06]
mov rdx, gword ptr [r13+0x38]
; gcrRegs +[rdx]
@@ -252,7 +251,7 @@ G_M22798_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov r15d, dword ptr [rsp+0x40]
lea r12, [rbx+0x0C]
cmp r15d, 0x270F
- jbe SHORT G_M22798_IG09
+ jbe SHORT G_M22798_IG08
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -261,7 +260,7 @@ G_M22798_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=66 bbWeight=0.50 PerfScore 7.50
-G_M22798_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M22798_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
mov ecx, r15d
imul rcx, rcx, 0xD1FFAB1E
shr rcx, 37
@@ -282,7 +281,7 @@ G_M22798_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov dword ptr [r12+0x04], ecx
mov word ptr [rbx+0x14], 32
cmp r14d, 99
- jbe SHORT G_M22798_IG10
+ jbe SHORT G_M22798_IG09
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -292,7 +291,7 @@ G_M22798_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=86 bbWeight=0.50 PerfScore 10.88
-G_M22798_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M22798_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
lea rcx, [rbx+0x16]
mov rdx, gword ptr [r13+0x38]
; gcrRegs +[rdx]
@@ -304,7 +303,7 @@ G_M22798_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov dword ptr [rcx], edx
mov word ptr [rbx+0x1A], 58
cmp ebp, 99
- jbe SHORT G_M22798_IG11
+ jbe SHORT G_M22798_IG10
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -313,7 +312,7 @@ G_M22798_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=53 bbWeight=0.50 PerfScore 6.75
-G_M22798_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M22798_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
lea rcx, [rbx+0x1C]
mov rdx, gword ptr [r13+0x38]
; gcrRegs +[rdx]
@@ -325,7 +324,7 @@ G_M22798_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov dword ptr [rcx], edx
mov word ptr [rbx+0x20], 58
cmp edi, 99
- jbe SHORT G_M22798_IG12
+ jbe SHORT G_M22798_IG11
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -334,7 +333,7 @@ G_M22798_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=51 bbWeight=0.50 PerfScore 6.75
-G_M22798_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M22798_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
lea rax, [rbx+0x22]
mov rdx, gword ptr [r13+0x38]
; gcrRegs +[rdx]
@@ -346,7 +345,7 @@ G_M22798_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov dword ptr [rax], edx
mov rax, 0xD1FFAB1E
cmp rsi, rax
- je G_M22798_IG16
+ je G_M22798_IG15
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
@@ -356,11 +355,11 @@ G_M22798_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
add rsi, rdx
mov ecx, 43
test esi, esi
- jge SHORT G_M22798_IG13
+ jge SHORT G_M22798_IG12
mov ecx, 45
neg esi
;; size=86 bbWeight=0.50 PerfScore 8.88
-G_M22798_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M22798_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
mov edx, 0xD1FFAB1E
mov eax, edx
imul edx:eax, esi
@@ -374,7 +373,7 @@ G_M22798_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov word ptr [rbx+0x26], 32
mov word ptr [rbx+0x28], cx
cmp edi, 99
- jbe SHORT G_M22798_IG14
+ jbe SHORT G_M22798_IG13
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -383,7 +382,7 @@ G_M22798_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=60 bbWeight=0.50 PerfScore 6.38
-G_M22798_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M22798_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
lea rcx, [rbx+0x2A]
mov rdx, gword ptr [r13+0x38]
; gcrRegs +[rdx]
@@ -395,7 +394,7 @@ G_M22798_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
mov dword ptr [rcx], edx
mov word ptr [rbx+0x2E], 58
cmp esi, 99
- jbe SHORT G_M22798_IG15
+ jbe SHORT G_M22798_IG14
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -404,7 +403,7 @@ G_M22798_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=51 bbWeight=0.50 PerfScore 6.75
-G_M22798_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref
+G_M22798_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref
add rbx, 48
mov rax, gword ptr [r13+0x38]
; gcrRegs +[rax]
@@ -415,13 +414,13 @@ G_M22798_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
; gcrRegs -[rax]
mov dword ptr [rbx], eax
;; size=21 bbWeight=0.50 PerfScore 4.50
-G_M22798_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M22798_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[r13]
xor eax, eax
mov bword ptr [rsp+0x28], rax
mov eax, 1
;; size=12 bbWeight=0.50 PerfScore 0.75
-G_M22798_IG17: ; bbWeight=0.50, epilog, nogc, extend
+G_M22798_IG16: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 72
pop rbx
pop rbp
@@ -433,14 +432,8 @@ G_M22798_IG17: ; bbWeight=0.50, epilog, nogc, extend
pop r15
ret
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M22798_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- call CORINFO_HELP_READYTORUN_GCSTATIC_BASE
- ; byrRegs +[rax]
- ; gcr arg pop 0
- jmp G_M22798_IG07
- ;; size=10 bbWeight=0 PerfScore 0.00
-; Total bytes of code 870, prolog size 23, PerfScore 109.50, instruction count 227, allocated bytes for code 870 (MethodHash=ef1aa6f1) for method System.DateTimeFormat:TryFormatInvariantG[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (FullOpts)
+; Total bytes of code 843, prolog size 23, PerfScore 106.88, instruction count 223, allocated bytes for code 843 (MethodHash=ef1aa6f1) for method System.DateTimeFormat:TryFormatInvariantG[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
-24 (-2.18%) : 2650.dasm - System.Globalization.InvariantModeCasing:IndexOfIgnoreCase(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort]):int (FullOpts)
@@ -9,13 +9,13 @@
;
; V00 arg0 [V00,T27] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 arg1 [V01,T28] ( 4, 8 ) byref -> rdx ld-addr-op single-def
-; V02 loc0 [V02,T34] ( 5, 4.50) long -> rdi
+; V02 loc0 [V02,T33] ( 5, 4.50) long -> rdi
; V03 loc1 [V03 ] ( 1, 1 ) byref -> [rsp+0x50] must-init pinned single-def
; V04 loc2 [V04,T29] ( 4, 10 ) long -> rbx
; V05 loc3 [V05 ] ( 1, 1 ) byref -> [rsp+0x48] must-init pinned single-def
-; V06 loc4 [V06,T31] ( 3, 6 ) long -> r14
+; V06 loc4 [V06,T31] ( 3, 6 ) long -> rbp
; V07 loc5 [V07,T12] ( 5, 33 ) long -> rsi
-; V08 loc6 [V08,T22] ( 6, 17.50) long -> rbp
+; V08 loc6 [V08,T22] ( 6, 17.50) long -> r14
; V09 loc7 [V09,T00] ( 12,104 ) long -> r15
; V10 loc8 [V10,T01] ( 11, 84 ) long -> r13
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -94,10 +94,10 @@
;* V84 tmp73 [V84 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V85 tmp74 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V86 tmp75 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V87 tmp76 [V87,T37] ( 3, 3 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V88 tmp77 [V88,T39] ( 3, 3 ) int -> rbp "field V00._length (fldOffset=0x8)" P-INDEP
-; V89 tmp78 [V89,T38] ( 3, 3 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V90 tmp79 [V90,T33] ( 5, 5 ) int -> rsi "field V01._length (fldOffset=0x8)" P-INDEP
+; V87 tmp76 [V87,T36] ( 3, 3 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V88 tmp77 [V88,T38] ( 3, 3 ) int -> rbp "field V00._length (fldOffset=0x8)" P-INDEP
+; V89 tmp78 [V89,T37] ( 3, 3 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V90 tmp79 [V90,T32] ( 5, 5 ) int -> rsi "field V01._length (fldOffset=0x8)" P-INDEP
;* V91 tmp80 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V92 tmp81 [V92 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V93 tmp82 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
@@ -128,14 +128,13 @@
;* V118 tmp107 [V118 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
;* V119 tmp108 [V119 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
;* V120 tmp109 [V120 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-; V121 tmp110 [V121,T35] ( 2, 4 ) long -> rdi "Cast away GC"
-; V122 tmp111 [V122,T36] ( 2, 4 ) long -> rbx "Cast away GC"
+; V121 tmp110 [V121,T34] ( 2, 4 ) long -> rdi "Cast away GC"
+; V122 tmp111 [V122,T35] ( 2, 4 ) long -> rbx "Cast away GC"
; V123 cse0 [V123,T20] ( 3, 24 ) int -> r8 "CSE - moderate"
; V124 cse1 [V124,T21] ( 3, 24 ) int -> r10 "CSE - moderate"
; V125 cse2 [V125,T04] ( 6, 64 ) int -> r12 "CSE - aggressive"
; V126 cse3 [V126,T09] ( 6, 48 ) int -> rax multi-def "CSE - aggressive"
-; V127 rat0 [V127,T32] ( 3, 6 ) long -> r14 "fgMakeTemp is creating a new local variable"
-; V128 rat1 [V128,T40] ( 3, 3 ) long -> rax "ReplaceWithLclVar is creating a new local variable"
+; V127 rat0 [V127,T39] ( 3, 3 ) long -> rax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 88
@@ -187,16 +186,15 @@ G_M10941_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rd
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=19 bbWeight=0.50 PerfScore 1.00
-G_M10941_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
- lea r14, [(reloc)]
- cmp qword ptr [r14-0x08], 0
- jne G_M10941_IG32
- ;; size=18 bbWeight=1 PerfScore 4.50
-G_M10941_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
- cmp byte ptr [r14], 0
- jne SHORT G_M10941_IG09
- ;; size=6 bbWeight=1 PerfScore 4.00
-G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
+G_M10941_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
+ cmp byte ptr [rax], 0
+ jne SHORT G_M10941_IG08
+ ;; size=10 bbWeight=1 PerfScore 5.00
+G_M10941_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
+ ; byrRegs -[rax]
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -205,39 +203,39 @@ G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rd
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=19 bbWeight=0.50 PerfScore 1.00
-G_M10941_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
+G_M10941_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
mov bword ptr [rsp+0x50], rdi
mov bword ptr [rsp+0x48], rbx
sub ebp, esi
movsxd rcx, ebp
- lea r14, [rdi+2*rcx]
+ lea rbp, [rdi+2*rcx]
mov ecx, esi
lea rsi, [rbx+2*rcx-0x02]
- mov rbp, rdi
- cmp rdi, r14
- ja G_M10941_IG28
+ mov r14, rdi
+ cmp rdi, rbp
+ ja G_M10941_IG27
;; size=38 bbWeight=1 PerfScore 5.75
-G_M10941_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG09: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rbx rdi]
mov r15, rbx
- mov r13, rbp
+ mov r13, r14
cmp rbx, rsi
- ja G_M10941_IG27
+ ja G_M10941_IG26
;; size=15 bbWeight=4 PerfScore 7.00
-G_M10941_IG11: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG10: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movzx r12, word ptr [r15]
lea ecx, [r12-0xD800]
cmp ecx, 0x3FF
- ja SHORT G_M10941_IG13
+ ja SHORT G_M10941_IG12
;; size=20 bbWeight=16 PerfScore 60.00
-G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG11: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp r15, rsi
- jne SHORT G_M10941_IG15
+ jne SHORT G_M10941_IG14
;; size=5 bbWeight=8 PerfScore 10.00
-G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movzx rax, word ptr [r13]
cmp r12d, eax
- je SHORT G_M10941_IG14
+ je SHORT G_M10941_IG13
mov ecx, r12d
call <unknown method>
; gcr arg pop 0
@@ -259,32 +257,32 @@ G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add ecx, dword ptr [rsp+0x44]
movzx rcx, cx
cmp ecx, r12d
- jne G_M10941_IG27
+ jne G_M10941_IG26
;; size=81 bbWeight=8 PerfScore 174.00
-G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add r15, 2
add r13, 2
- jmp G_M10941_IG26
+ jmp G_M10941_IG25
;; size=13 bbWeight=8 PerfScore 20.00
-G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movzx rax, word ptr [r13]
lea ecx, [rax-0xD800]
cmp ecx, 0x3FF
- ja G_M10941_IG25
+ ja G_M10941_IG24
movzx r8, word ptr [r13+0x02]
lea ecx, [r8-0xDC00]
cmp ecx, 0x3FF
- ja G_M10941_IG25
+ ja G_M10941_IG24
movzx r10, word ptr [r15+0x02]
lea ecx, [r10-0xDC00]
cmp ecx, 0x3FF
- ja G_M10941_IG25
+ ja G_M10941_IG24
mov dword ptr [rsp+0x40], eax
mov dword ptr [rsp+0x3C], r8d
mov dword ptr [rsp+0x30], r10d
lea ecx, [rax-0xD800]
cmp ecx, 0x3FF
- jbe G_M10941_IG24
+ jbe G_M10941_IG23
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -294,11 +292,11 @@ G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov eax, dword ptr [rsp+0x40]
;; size=126 bbWeight=8 PerfScore 152.00
-G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [rsp+0x3C]
lea ecx, [r8-0xDC00]
cmp ecx, 0x3FF
- jbe SHORT G_M10941_IG17
+ jbe SHORT G_M10941_IG16
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -308,7 +306,7 @@ G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcr arg pop 0
mov eax, dword ptr [rsp+0x40]
;; size=43 bbWeight=8 PerfScore 46.00
-G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov ecx, eax
call System.Text.UnicodeDebug:AssertIsHighSurrogateCodePoint(uint)
; gcr arg pop 0
@@ -321,7 +319,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
lea eax, [rcx+rax+D1FFAB1EH]
mov dword ptr [rsp+0x24], eax
cmp eax, 0xD1FFAB1E
- ja G_M10941_IG33
+ ja G_M10941_IG31
mov ecx, eax
call <unknown method>
; gcr arg pop 0
@@ -349,7 +347,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rsp+0x34], r8d
lea ecx, [rax-0xD800]
cmp ecx, 0x3FF
- jbe SHORT G_M10941_IG18
+ jbe SHORT G_M10941_IG17
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -358,10 +356,22 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=168 bbWeight=8 PerfScore 206.00
-G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [rsp+0x34]
lea ecx, [r8-0xDC00]
cmp ecx, 0x3FF
+ jbe SHORT G_M10941_IG18
+ lea rcx, gword ptr [(reloc)]
+ ; gcrRegs +[rcx]
+ lea rdx, gword ptr [(reloc)]
+ ; gcrRegs +[rdx]
+ call <unknown method>
+ ; gcrRegs -[rcx rdx]
+ ; gcr arg pop 0
+ ;; size=39 bbWeight=8 PerfScore 38.00
+G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ lea ecx, [r12-0xD800]
+ cmp ecx, 0x3FF
jbe SHORT G_M10941_IG19
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
@@ -370,9 +380,10 @@ G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call <unknown method>
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=39 bbWeight=8 PerfScore 38.00
+ ;; size=35 bbWeight=8 PerfScore 30.00
G_M10941_IG19: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea ecx, [r12-0xD800]
+ mov r10d, dword ptr [rsp+0x30]
+ lea ecx, [r10-0xDC00]
cmp ecx, 0x3FF
jbe SHORT G_M10941_IG20
lea rcx, gword ptr [(reloc)]
@@ -381,22 +392,9 @@ G_M10941_IG19: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
...
-24 (-2.18%) : 8611.dasm - System.Globalization.InvariantModeCasing:IndexOfIgnoreCase(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort]):int (FullOpts)
@@ -10,13 +10,13 @@
;
; V00 arg0 [V00,T27] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 arg1 [V01,T28] ( 4, 8 ) byref -> rdx ld-addr-op single-def
-; V02 loc0 [V02,T34] ( 5, 4.50) long -> rdi
+; V02 loc0 [V02,T33] ( 5, 4.50) long -> rdi
; V03 loc1 [V03 ] ( 1, 1 ) byref -> [rsp+0x50] must-init pinned single-def
; V04 loc2 [V04,T29] ( 4, 10 ) long -> rbx
; V05 loc3 [V05 ] ( 1, 1 ) byref -> [rsp+0x48] must-init pinned single-def
-; V06 loc4 [V06,T31] ( 3, 6 ) long -> r14
+; V06 loc4 [V06,T31] ( 3, 6 ) long -> rbp
; V07 loc5 [V07,T12] ( 5, 33 ) long -> rsi
-; V08 loc6 [V08,T22] ( 6, 17.50) long -> rbp
+; V08 loc6 [V08,T22] ( 6, 17.50) long -> r14
; V09 loc7 [V09,T00] ( 12,104 ) long -> r15
; V10 loc8 [V10,T01] ( 11, 84 ) long -> r13
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -95,10 +95,10 @@
;* V84 tmp73 [V84 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V85 tmp74 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V86 tmp75 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V87 tmp76 [V87,T37] ( 3, 3 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V88 tmp77 [V88,T39] ( 3, 3 ) int -> rbp "field V00._length (fldOffset=0x8)" P-INDEP
-; V89 tmp78 [V89,T38] ( 3, 3 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V90 tmp79 [V90,T33] ( 5, 5 ) int -> rsi "field V01._length (fldOffset=0x8)" P-INDEP
+; V87 tmp76 [V87,T36] ( 3, 3 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V88 tmp77 [V88,T38] ( 3, 3 ) int -> rbp "field V00._length (fldOffset=0x8)" P-INDEP
+; V89 tmp78 [V89,T37] ( 3, 3 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V90 tmp79 [V90,T32] ( 5, 5 ) int -> rsi "field V01._length (fldOffset=0x8)" P-INDEP
;* V91 tmp80 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V92 tmp81 [V92 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V93 tmp82 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
@@ -129,14 +129,13 @@
;* V118 tmp107 [V118 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x8)" P-INDEP
;* V119 tmp108 [V119 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
;* V120 tmp109 [V120 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-; V121 tmp110 [V121,T35] ( 2, 4 ) long -> rdi "Cast away GC"
-; V122 tmp111 [V122,T36] ( 2, 4 ) long -> rbx "Cast away GC"
+; V121 tmp110 [V121,T34] ( 2, 4 ) long -> rdi "Cast away GC"
+; V122 tmp111 [V122,T35] ( 2, 4 ) long -> rbx "Cast away GC"
; V123 cse0 [V123,T20] ( 3, 24 ) int -> r8 "CSE - moderate"
; V124 cse1 [V124,T21] ( 3, 24 ) int -> r10 "CSE - moderate"
; V125 cse2 [V125,T04] ( 6, 64 ) int -> r12 "CSE - aggressive"
; V126 cse3 [V126,T09] ( 6, 48 ) int -> rax multi-def "CSE - aggressive"
-; V127 rat0 [V127,T32] ( 3, 6 ) long -> r14 "fgMakeTemp is creating a new local variable"
-; V128 rat1 [V128,T40] ( 3, 3 ) long -> rax "ReplaceWithLclVar is creating a new local variable"
+; V127 rat0 [V127,T39] ( 3, 3 ) long -> rax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 88
@@ -188,16 +187,15 @@ G_M10941_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rd
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=19 bbWeight=0.50 PerfScore 1.00
-G_M10941_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
- lea r14, [(reloc)]
- cmp qword ptr [r14-0x08], 0
- jne G_M10941_IG32
- ;; size=18 bbWeight=1 PerfScore 4.50
-G_M10941_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
- cmp byte ptr [r14], 0
- jne SHORT G_M10941_IG09
- ;; size=6 bbWeight=1 PerfScore 4.00
-G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
+G_M10941_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+ call CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
+ ; byrRegs +[rax]
+ ; gcr arg pop 0
+ cmp byte ptr [rax], 0
+ jne SHORT G_M10941_IG08
+ ;; size=10 bbWeight=1 PerfScore 5.00
+G_M10941_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
+ ; byrRegs -[rax]
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -206,39 +204,39 @@ G_M10941_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rd
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=19 bbWeight=0.50 PerfScore 1.00
-G_M10941_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
+G_M10941_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref
mov bword ptr [rsp+0x50], rdi
mov bword ptr [rsp+0x48], rbx
sub ebp, esi
movsxd rcx, ebp
- lea r14, [rdi+2*rcx]
+ lea rbp, [rdi+2*rcx]
mov ecx, esi
lea rsi, [rbx+2*rcx-0x02]
- mov rbp, rdi
- cmp rdi, r14
- ja G_M10941_IG28
+ mov r14, rdi
+ cmp rdi, rbp
+ ja G_M10941_IG27
;; size=38 bbWeight=1 PerfScore 5.75
-G_M10941_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG09: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rbx rdi]
mov r15, rbx
- mov r13, rbp
+ mov r13, r14
cmp rbx, rsi
- ja G_M10941_IG27
+ ja G_M10941_IG26
;; size=15 bbWeight=4 PerfScore 7.00
-G_M10941_IG11: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG10: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movzx r12, word ptr [r15]
lea ecx, [r12-0xD800]
cmp ecx, 0x3FF
- ja SHORT G_M10941_IG13
+ ja SHORT G_M10941_IG12
;; size=20 bbWeight=16 PerfScore 60.00
-G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG11: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp r15, rsi
- jne SHORT G_M10941_IG15
+ jne SHORT G_M10941_IG14
;; size=5 bbWeight=8 PerfScore 10.00
-G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG12: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movzx rax, word ptr [r13]
cmp r12d, eax
- je SHORT G_M10941_IG14
+ je SHORT G_M10941_IG13
mov ecx, r12d
call <unknown method>
; gcr arg pop 0
@@ -260,32 +258,32 @@ G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add ecx, dword ptr [rsp+0x44]
movzx rcx, cx
cmp ecx, r12d
- jne G_M10941_IG27
+ jne G_M10941_IG26
;; size=81 bbWeight=8 PerfScore 174.00
-G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG13: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add r15, 2
add r13, 2
- jmp G_M10941_IG26
+ jmp G_M10941_IG25
;; size=13 bbWeight=8 PerfScore 20.00
-G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10941_IG14: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movzx rax, word ptr [r13]
lea ecx, [rax-0xD800]
cmp ecx, 0x3FF
- ja G_M10941_IG25
+ ja G_M10941_IG24
movzx r8, word ptr [r13+0x02]
lea ecx, [r8-0xDC00]
cmp ecx, 0x3FF
- ja G_M10941_IG25
+ ja G_M10941_IG24
movzx r10, word ptr [r15+0x02]
lea ecx, [r10-0xDC00]
cmp ecx, 0x3FF
- ja G_M10941_IG25
+ ja G_M10941_IG24
mov dword ptr [rsp+0x40], eax
mov dword ptr [rsp+0x3C], r8d
mov dword ptr [rsp+0x30], r10d
lea ecx, [rax-0xD800]
cmp ecx, 0x3FF
- jbe G_M10941_IG24
+ jbe G_M10941_IG23
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -295,11 +293,11 @@ G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov eax, dword ptr [rsp+0x40]
;; size=126 bbWeight=8 PerfScore 152.00
-G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG15: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [rsp+0x3C]
lea ecx, [r8-0xDC00]
cmp ecx, 0x3FF
- jbe SHORT G_M10941_IG17
+ jbe SHORT G_M10941_IG16
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -309,7 +307,7 @@ G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcr arg pop 0
mov eax, dword ptr [rsp+0x40]
;; size=43 bbWeight=8 PerfScore 46.00
-G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG16: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov ecx, eax
call System.Text.UnicodeDebug:AssertIsHighSurrogateCodePoint(uint)
; gcr arg pop 0
@@ -322,7 +320,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
lea eax, [rcx+rax+D1FFAB1EH]
mov dword ptr [rsp+0x24], eax
cmp eax, 0xD1FFAB1E
- ja G_M10941_IG33
+ ja G_M10941_IG31
mov ecx, eax
call <unknown method>
; gcr arg pop 0
@@ -350,7 +348,7 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rsp+0x34], r8d
lea ecx, [rax-0xD800]
cmp ecx, 0x3FF
- jbe SHORT G_M10941_IG18
+ jbe SHORT G_M10941_IG17
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
lea rdx, gword ptr [(reloc)]
@@ -359,10 +357,22 @@ G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=168 bbWeight=8 PerfScore 206.00
-G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10941_IG17: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [rsp+0x34]
lea ecx, [r8-0xDC00]
cmp ecx, 0x3FF
+ jbe SHORT G_M10941_IG18
+ lea rcx, gword ptr [(reloc)]
+ ; gcrRegs +[rcx]
+ lea rdx, gword ptr [(reloc)]
+ ; gcrRegs +[rdx]
+ call <unknown method>
+ ; gcrRegs -[rcx rdx]
+ ; gcr arg pop 0
+ ;; size=39 bbWeight=8 PerfScore 38.00
+G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ lea ecx, [r12-0xD800]
+ cmp ecx, 0x3FF
jbe SHORT G_M10941_IG19
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
@@ -371,9 +381,10 @@ G_M10941_IG18: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call <unknown method>
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=39 bbWeight=8 PerfScore 38.00
+ ;; size=35 bbWeight=8 PerfScore 30.00
G_M10941_IG19: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- lea ecx, [r12-0xD800]
+ mov r10d, dword ptr [rsp+0x30]
+ lea ecx, [r10-0xDC00]
cmp ecx, 0x3FF
jbe SHORT G_M10941_IG20
lea rcx, gword ptr [(reloc)]
@@ -382,22 +393,9 @@ G_M10941_IG19: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| aspnet.run.windows.x64.checked.mch |
178 |
175 |
0 |
3 |
-8,573 |
+0 |
| benchmarks.run.windows.x64.checked.mch |
43 |
39 |
1 |
3 |
-3,468 |
+6 |
| benchmarks.run_pgo.windows.x64.checked.mch |
139 |
134 |
0 |
5 |
-6,482 |
+0 |
| benchmarks.run_tiered.windows.x64.checked.mch |
176 |
173 |
0 |
3 |
-9,407 |
+0 |
| coreclr_tests.run.windows.x64.checked.mch |
11 |
11 |
0 |
0 |
-514 |
+0 |
| libraries.crossgen2.windows.x64.checked.mch |
10 |
6 |
2 |
2 |
-63 |
+2 |
| libraries.pmi.windows.x64.checked.mch |
682 |
631 |
49 |
2 |
-26,410 |
+196 |
| libraries_tests.run.windows.x64.Release.mch |
87 |
85 |
2 |
0 |
-2,571 |
+32 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
73 |
73 |
0 |
0 |
-3,732 |
+0 |
| realworld.run.windows.x64.checked.mch |
85 |
79 |
5 |
1 |
-10,947 |
+19 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
314 |
314 |
0 |
0 |
-10,592 |
+0 |
|
1,798 |
1,720 |
59 |
19 |
-82,759 |
+255 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| aspnet.run.windows.x64.checked.mch |
5,875 |
4,005 |
1,870 |
0 (0.00%) |
4,769 (43.20%) |
| benchmarks.run.windows.x64.checked.mch |
917 |
1 |
916 |
0 (0.00%) |
1,177 (47.27%) |
| benchmarks.run_pgo.windows.x64.checked.mch |
8,531 |
7,017 |
1,514 |
0 (0.00%) |
5,906 (39.82%) |
| benchmarks.run_tiered.windows.x64.checked.mch |
8,164 |
7,053 |
1,111 |
0 (0.00%) |
4,895 (36.38%) |
| coreclr_tests.run.windows.x64.checked.mch |
312 |
3 |
309 |
0 (0.00%) |
870 (55.13%) |
| libraries.crossgen2.windows.x64.checked.mch |
97,270 |
11 |
97,259 |
0 (0.00%) |
86,292 (46.91%) |
| libraries.pmi.windows.x64.checked.mch |
2,546 |
0 |
2,546 |
0 (0.00%) |
1,380 (31.93%) |
| libraries_tests.run.windows.x64.Release.mch |
3,957 |
3,371 |
586 |
0 (0.00%) |
3,972 (47.71%) |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
851 |
0 |
851 |
0 (0.00%) |
1,395 (52.80%) |
| realworld.run.windows.x64.checked.mch |
1,764 |
0 |
1,764 |
1 (0.02%) |
3,120 (59.09%) |
| smoke_tests.nativeaot.windows.x64.checked.mch |
5,490 |
3 |
5,487 |
0 (0.00%) |
7,045 (54.48%) |
|
135,677 |
21,464 |
114,213 |
1 (0.00%) |
120,821 (46.32%) |
jit-analyze output
aspnet.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 514620 (overridden on cmd)
Total bytes of diff: 506047 (overridden on cmd)
Total bytes of delta: -8573 (-1.67 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-370 : 10996.dasm (-33.64 % of base)
-215 : 1054.dasm (-65.35 % of base)
-194 : 10141.dasm (-62.99 % of base)
-194 : 9458.dasm (-62.99 % of base)
-192 : 7737.dasm (-62.34 % of base)
-192 : 9861.dasm (-62.34 % of base)
-176 : 10174.dasm (-76.19 % of base)
-176 : 978.dasm (-76.19 % of base)
-176 : 9843.dasm (-76.19 % of base)
-176 : 7763.dasm (-76.19 % of base)
-176 : 9414.dasm (-76.19 % of base)
-164 : 9021.dasm (-74.89 % of base)
-159 : 1053.dasm (-74.30 % of base)
-155 : 9855.dasm (-73.81 % of base)
-155 : 8980.dasm (-73.81 % of base)
-154 : 10140.dasm (-73.68 % of base)
-154 : 7740.dasm (-73.68 % of base)
-154 : 9459.dasm (-73.68 % of base)
-106 : 4461.dasm (-63.10 % of base)
-106 : 4462.dasm (-63.10 % of base)
61 total files with Code Size differences (61 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-370 (-33.64 % of base) : 10996.dasm - System.Threading.Tasks.Task:RunContinuations(System.Object):this (Tier1)
-215 (-65.35 % of base) : 1054.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_Result():Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult:this (Tier1)
-194 (-62.99 % of base) : 10141.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_Result():Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult:this (Tier1)
-194 (-62.99 % of base) : 9458.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_Result():Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult:this (Tier1)
-192 (-62.34 % of base) : 7737.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_Result():Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult:this (Tier1)
-192 (-62.34 % of base) : 9861.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_Result():Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult:this (Tier1)
-176 (-76.19 % of base) : 10174.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 978.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 9843.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 7763.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 9414.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-164 (-74.89 % of base) : 9021.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-159 (-74.30 % of base) : 1053.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-155 (-73.81 % of base) : 9855.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-155 (-73.81 % of base) : 8980.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-154 (-73.68 % of base) : 10140.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-154 (-73.68 % of base) : 7740.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-154 (-73.68 % of base) : 9459.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-106 (-63.10 % of base) : 4462.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 4461.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
Top method improvements (percentages):
-176 (-76.19 % of base) : 10174.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 978.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 9843.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 7763.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-176 (-76.19 % of base) : 9414.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-164 (-74.89 % of base) : 9021.dasm - System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:get_IsCompleted():ubyte:this (Tier1)
-159 (-74.30 % of base) : 1053.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-155 (-73.81 % of base) : 9855.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-155 (-73.81 % of base) : 8980.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-154 (-73.68 % of base) : 10140.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-154 (-73.68 % of base) : 7740.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-154 (-73.68 % of base) : 9459.dasm - System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]:get_IsCompleted():ubyte:this (Tier1)
-30 (-69.77 % of base) : 4062.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-30 (-69.77 % of base) : 4856.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 1622.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 1849.dasm - System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
-30 (-69.77 % of base) : 2060.dasm - System.Globalization.GlobalizationMode:get_UseNls():ubyte (Tier0)
-30 (-69.77 % of base) : 2045.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
-30 (-69.77 % of base) : 2749.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-30 (-69.77 % of base) : 3551.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv6():ubyte (Tier0)
benchmarks.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 125820 (overridden on cmd)
Total bytes of diff: 122358 (overridden on cmd)
Total bytes of delta: -3462 (-2.75 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
6 : 1570.dasm (3.24 % of base)
Top file improvements (bytes):
-526 : 1957.dasm (-88.40 % of base)
-486 : 555.dasm (-80.46 % of base)
-440 : 2529.dasm (-68.75 % of base)
-222 : 1255.dasm (-67.68 % of base)
-217 : 9.dasm (-70.45 % of base)
-168 : 2379.dasm (-9.31 % of base)
-122 : 2553.dasm (-25.79 % of base)
-105 : 845.dasm (-65.62 % of base)
-100 : 588.dasm (-30.12 % of base)
-76 : 1744.dasm (-20.32 % of base)
-74 : 1536.dasm (-25.87 % of base)
-72 : 233.dasm (-13.53 % of base)
-55 : 951.dasm (-52.88 % of base)
-47 : 871.dasm (-52.81 % of base)
-47 : 870.dasm (-52.81 % of base)
-44 : 1471.dasm (-53.01 % of base)
-43 : 1361.dasm (-48.86 % of base)
-42 : 877.dasm (-7.16 % of base)
-41 : 1886.dasm (-38.68 % of base)
-41 : 2089.dasm (-10.43 % of base)
39 total files with Code Size differences (38 improved, 1 regressed), 3 unchanged.
Top method regressions (bytes):
6 (3.24 % of base) : 1570.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
Top method improvements (bytes):
-526 (-88.40 % of base) : 1957.dasm - Newtonsoft.Json.Linq.JValue:GetValueType(System.Nullable`1[int],System.Object):int (FullOpts)
-486 (-80.46 % of base) : 555.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-440 (-68.75 % of base) : 2529.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (FullOpts)
-222 (-67.68 % of base) : 1255.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]] (FullOpts)
-217 (-70.45 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-168 (-9.31 % of base) : 2379.dasm - Microsoft.Extensions.Logging.EventSource.EventSourceLogger:ToJson(System.Collections.Generic.IReadOnlyList`1[System.Collections.Generic.KeyValuePair`2[System.String,System.String]]):System.String (FullOpts)
-122 (-25.79 % of base) : 2553.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-105 (-65.62 % of base) : 845.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-100 (-30.12 % of base) : 588.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-76 (-20.32 % of base) : 1744.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[ubyte]():System.Text.Json.Serialization.JsonConverter`1[ubyte]:this (FullOpts)
-74 (-25.87 % of base) : 1536.dasm - System.HashCode:Add(int):this (FullOpts)
-72 (-13.53 % of base) : 233.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-55 (-52.88 % of base) : 951.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-47 (-52.81 % of base) : 871.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (FullOpts)
-47 (-52.81 % of base) : 870.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
-44 (-53.01 % of base) : 1471.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)
-43 (-48.86 % of base) : 1361.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-42 (-7.16 % of base) : 877.dasm - System.Threading.ProcessorIdCache:ProcessorNumberSpeedCheck():ubyte (FullOpts)
-41 (-10.43 % of base) : 2089.dasm - Microsoft.Extensions.Logging.EventSourceLoggerFactoryExtensions:AddEventSourceLogger(Microsoft.Extensions.Logging.ILoggingBuilder):Microsoft.Extensions.Logging.ILoggingBuilder (FullOpts)
-41 (-38.68 % of base) : 1886.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:GetCharEscapeFlags(int,ushort):ubyte[] (FullOpts)
Top method regressions (percentages):
6 (3.24 % of base) : 1570.dasm - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.__Canon]():System.Text.Json.Serialization.JsonConverter`1[System.__Canon]:this (FullOpts)
Top method improvements (percentages):
-526 (-88.40 % of base) : 1957.dasm - Newtonsoft.Json.Linq.JValue:GetValueType(System.Nullable`1[int],System.Object):int (FullOpts)
-486 (-80.46 % of base) : 555.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-217 (-70.45 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-440 (-68.75 % of base) : 2529.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (FullOpts)
-222 (-67.68 % of base) : 1255.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]] (FullOpts)
-105 (-65.62 % of base) : 845.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-36 (-56.25 % of base) : 1854.dasm - Newtonsoft.Json.JsonWriter:.ctor():this (FullOpts)
-44 (-53.01 % of base) : 1471.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)
-55 (-52.88 % of base) : 951.dasm - System.AppDomain:OnProcessExit() (FullOpts)
-47 (-52.81 % of base) : 871.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (FullOpts)
-47 (-52.81 % of base) : 870.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (FullOpts)
-43 (-48.86 % of base) : 1361.dasm - System.Threading.Tasks.TaskScheduler:get_Id():int:this (FullOpts)
-41 (-38.68 % of base) : 1886.dasm - Newtonsoft.Json.Utilities.JavaScriptUtils:GetCharEscapeFlags(int,ushort):ubyte[] (FullOpts)
-31 (-33.70 % of base) : 23.dasm - System.StartupHookProvider:ManagedStartup(ulong) (FullOpts)
-100 (-30.12 % of base) : 588.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-31 (-29.52 % of base) : 2512.dasm - System.Threading.PortableThreadPool+GateThread:EnsureRunningSlow(System.Threading.PortableThreadPool) (FullOpts)
-74 (-25.87 % of base) : 1536.dasm - System.HashCode:Add(int):this (FullOpts)
-122 (-25.79 % of base) : 2553.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts)
-13 (-25.00 % of base) : 1198.dasm - System.Collections.TryGetValueFalse`2+<>c[System.__Canon,System.__Canon]:<Setup>b__10_1(System.__Canon):System.__Canon:this (FullOpts)
-23 (-24.73 % of base) : 2174.dasm - System.Diagnostics.Tracing.NameInfo:ReserveEventIDsBelow(int) (FullOpts)
benchmarks.run_pgo.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 877224 (overridden on cmd)
Total bytes of diff: 870742 (overridden on cmd)
Total bytes of delta: -6482 (-0.74 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1933 : 14982.dasm (-35.60 % of base)
-185 : 12625.dasm (-20.46 % of base)
-123 : 4325.dasm (-12.65 % of base)
-117 : 12577.dasm (-13.43 % of base)
-106 : 2203.dasm (-63.10 % of base)
-106 : 2204.dasm (-63.10 % of base)
-90 : 4560.dasm (-50.00 % of base)
-68 : 13910.dasm (-10.86 % of base)
-67 : 14674.dasm (-7.03 % of base)
-66 : 9744.dasm (-53.66 % of base)
-65 : 10808.dasm (-39.16 % of base)
-60 : 21.dasm (-32.43 % of base)
-60 : 11783.dasm (-54.55 % of base)
-58 : 11411.dasm (-35.15 % of base)
-56 : 5933.dasm (-40.58 % of base)
-54 : 5429.dasm (-21.34 % of base)
-52 : 8470.dasm (-55.32 % of base)
-46 : 5663.dasm (-31.51 % of base)
-42 : 6115.dasm (-16.03 % of base)
-41 : 5767.dasm (-6.08 % of base)
61 total files with Code Size differences (61 improved, 0 regressed), 5 unchanged.
Top method improvements (bytes):
-1933 (-35.60 % of base) : 14982.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-185 (-20.46 % of base) : 12625.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-123 (-12.65 % of base) : 4325.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:TryParseDateTimeIso(Newtonsoft.Json.Utilities.StringReference,int,byref):ubyte (Tier0)
-117 (-13.43 % of base) : 12577.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-106 (-63.10 % of base) : 2204.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 2203.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-90 (-50.00 % of base) : 4560.dasm - System.HashCode:Initialize(byref,byref,byref,byref) (Tier0)
-68 (-10.86 % of base) : 13910.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConditionalExpression(System.Linq.Expressions.Expression,int):this (Tier0)
-67 (-7.03 % of base) : 14674.dasm - System.Diagnostics.Tracing.ActivityTracker:OnStart(System.String,System.String,int,byref,byref,int,ubyte):this (Tier0)
-66 (-53.66 % of base) : 9744.dasm - System.Xml.XmlUTF8NodeWriter:.ctor():this (Tier0)
-65 (-39.16 % of base) : 10808.dasm - Microsoft.Extensions.Logging.ScopesOverheadBenchmark:NotFiltered():this (Tier0)
-60 (-32.43 % of base) : 21.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (Tier0)
-60 (-54.55 % of base) : 11783.dasm - System.Numerics.Tests.Perf_Vector2:AddFunctionBenchmark():System.Numerics.Vector2:this (Tier0)
-58 (-35.15 % of base) : 11411.dasm - System.Globalization.NumberFormatInfo:GetInstance(System.IFormatProvider):System.Globalization.NumberFormatInfo (Tier1)
-56 (-40.58 % of base) : 5933.dasm - System.TimeZoneInfo:UtcOffsetOutOfRange(System.TimeSpan):ubyte (Tier0)
-54 (-21.34 % of base) : 5429.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Security.SslSessionsCache+SslCredKey,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-52 (-55.32 % of base) : 8470.dasm - System.IO.Tests.Perf_RandomAccess_NoBuffering+<>c:<Setup>b__11_9(int):System.AlignedMemory:this (Tier0)
-46 (-31.51 % of base) : 5663.dasm - System.Threading.Thread+StartHelper:Run():this (Tier0)
-42 (-16.03 % of base) : 6115.dasm - System.Net.Security.TlsFrameHelper:DecodeString(System.ReadOnlySpan`1[ubyte]):System.String (Tier0)
-41 (-6.08 % of base) : 5767.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (Tier0)
Top method improvements (percentages):
-30 (-69.77 % of base) : 10543.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-30 (-69.77 % of base) : 15054.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 59.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 2183.dasm - System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
-30 (-69.77 % of base) : 422.dasm - System.Globalization.GlobalizationMode:get_UseNls():ubyte (Tier0)
-30 (-69.77 % of base) : 373.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
-30 (-69.77 % of base) : 1788.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-30 (-69.77 % of base) : 5256.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv4():ubyte (Tier0)
-30 (-69.77 % of base) : 1379.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 4377.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-30 (-69.77 % of base) : 4542.dasm - System.Text.Json.AppContextSwitchHelper:get_IsSourceGenReflectionFallbackEnabled():ubyte (Tier0)
-30 (-69.77 % of base) : 4538.dasm - System.Text.Json.JsonSerializer:get_IsReflectionEnabledByDefault():ubyte (Tier0)
-30 (-69.77 % of base) : 2158.dasm - System.Threading.Lock:get_ContentionCount():long (Tier0)
-30 (-69.77 % of base) : 2165.dasm - System.Threading.ThreadPool:get_UseWindowsThreadPool():ubyte (Tier0)
-30 (-63.83 % of base) : 9438.dasm - System.HashCode:MixEmptyState():uint (Tier0)
-106 (-63.10 % of base) : 2204.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 2203.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-30 (-61.22 % of base) : 25.dasm - System.StringComparer:get_Ordinal():System.StringComparer (Tier0)
-30 (-61.22 % of base) : 6489.dasm - System.Text.EncoderFallback:get_ReplacementFallback():System.Text.EncoderFallback (Tier0)
-30 (-61.22 % of base) : 6484.dasm - System.Text.Encoding:get_ASCII():System.Text.Encoding (Tier0)
benchmarks.run_tiered.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 758568 (overridden on cmd)
Total bytes of diff: 749161 (overridden on cmd)
Total bytes of delta: -9407 (-1.24 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1933 : 10610.dasm (-35.60 % of base)
-486 : 2993.dasm (-80.46 % of base)
-440 : 9832.dasm (-68.75 % of base)
-185 : 5721.dasm (-20.46 % of base)
-122 : 12514.dasm (-25.79 % of base)
-122 : 9822.dasm (-25.79 % of base)
-117 : 5673.dasm (-13.43 % of base)
-110 : 9803.dasm (-31.34 % of base)
-106 : 2176.dasm (-63.10 % of base)
-106 : 2175.dasm (-63.10 % of base)
-103 : 12511.dasm (-55.08 % of base)
-103 : 9637.dasm (-55.08 % of base)
-97 : 12510.dasm (-54.80 % of base)
-97 : 9788.dasm (-54.80 % of base)
-97 : 9816.dasm (-54.80 % of base)
-94 : 9720.dasm (-50.27 % of base)
-94 : 9846.dasm (-50.27 % of base)
-94 : 9864.dasm (-50.27 % of base)
-92 : 12533.dasm (-44.66 % of base)
-92 : 12532.dasm (-44.23 % of base)
69 total files with Code Size differences (69 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-1933 (-35.60 % of base) : 10610.dasm - System.Net.Http.Headers.KnownHeaders:GetCandidate[System.Net.Http.Headers.KnownHeaders+StringAccessor](System.Net.Http.Headers.KnownHeaders+StringAccessor):System.Net.Http.Headers.KnownHeader (Tier0)
-486 (-80.46 % of base) : 2993.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-440 (-68.75 % of base) : 9832.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (Tier1)
-185 (-20.46 % of base) : 5721.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (Tier0)
-122 (-25.79 % of base) : 9822.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-122 (-25.79 % of base) : 12514.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-117 (-13.43 % of base) : 5673.dasm - System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this (Tier0)
-110 (-31.34 % of base) : 9803.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-106 (-63.10 % of base) : 2176.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
-106 (-63.10 % of base) : 2175.dasm - System.Threading.PortableThreadPool:get_HasForcedMinThreads():ubyte (Tier0)
-103 (-55.08 % of base) : 9637.dasm - System.Threading.Tasks.ValueTask:get_IsCompleted():ubyte:this (Tier1)
-103 (-55.08 % of base) : 12511.dasm - System.Threading.Tasks.ValueTask`1[int]:get_IsCompleted():ubyte:this (Tier1)
-97 (-54.80 % of base) : 9788.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter:get_IsCompleted():ubyte:this (Tier1)
-97 (-54.80 % of base) : 9816.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:get_IsCompleted():ubyte:this (Tier1)
-97 (-54.80 % of base) : 12510.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:get_IsCompleted():ubyte:this (Tier1)
-94 (-50.27 % of base) : 9846.dasm - System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter:GetResult():this (Tier1)
-94 (-50.27 % of base) : 9864.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:GetResult():this (Tier1)
-94 (-50.27 % of base) : 9720.dasm - System.Threading.Tasks.ValueTask:ThrowIfCompletedUnsuccessfully():this (Tier1)
-92 (-44.23 % of base) : 12532.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:GetResult():int:this (Tier1)
-92 (-44.66 % of base) : 12533.dasm - System.Threading.Tasks.ValueTask`1[int]:get_Result():int:this (Tier1)
Top method improvements (percentages):
-486 (-80.46 % of base) : 2993.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
-30 (-71.43 % of base) : 10433.dasm - System.Net.Http.GlobalHttpSettings+SocketsHttpHandler:get_MaxConnectionsPerServer():int (Tier0)
-30 (-69.77 % of base) : 3601.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:get_DisableDynamicEngine():ubyte (Tier0)
-30 (-69.77 % of base) : 10678.dasm - System.Diagnostics.Metrics.Meter:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 59.dasm - System.Diagnostics.Tracing.EventSource:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 2539.dasm - System.Environment:get_IsWindows8OrAbove():ubyte (Tier0)
-30 (-69.77 % of base) : 415.dasm - System.Globalization.GlobalizationMode:get_UseNls():ubyte (Tier0)
-30 (-69.77 % of base) : 368.dasm - System.Globalization.GlobalizationMode+Settings:get_Invariant():ubyte (Tier0)
-30 (-69.77 % of base) : 1760.dasm - System.Marvin:get_DefaultSeed():ulong (Tier0)
-30 (-69.77 % of base) : 10604.dasm - System.Net.Http.GlobalHttpSettings+DiagnosticsHandler:get_EnableActivityPropagation():ubyte (Tier0)
-30 (-69.77 % of base) : 10324.dasm - System.Net.SocketProtocolSupportPal:get_OSSupportsIPv4():ubyte (Tier0)
-30 (-69.77 % of base) : 1338.dasm - System.Runtime.CompilerServices.RuntimeFeature:get_IsDynamicCodeSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 11908.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-30 (-69.77 % of base) : 3997.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-30 (-69.77 % of base) : 6866.dasm - System.Text.Json.AppContextSwitchHelper:get_IsSourceGenReflectionFallbackEnabled():ubyte (Tier0)
-30 (-69.77 % of base) : 6862.dasm - System.Text.Json.JsonSerializer:get_IsReflectionEnabledByDefault():ubyte (Tier0)
-30 (-69.77 % of base) : 2131.dasm - System.Threading.Lock:get_ContentionCount():long (Tier0)
-30 (-69.77 % of base) : 2138.dasm - System.Threading.ThreadPool:get_UseWindowsThreadPool():ubyte (Tier0)
-440 (-68.75 % of base) : 9832.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:SignalCompletion():this (Tier1)
-106 (-63.10 % of base) : 2176.dasm - System.Threading.PortableThreadPool:get_HasForcedMaxThreads():ubyte (Tier0)
coreclr_tests.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 51809 (overridden on cmd)
Total bytes of diff: 51295 (overridden on cmd)
Total bytes of delta: -514 (-0.99 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-178 : 9.dasm (-81.65 % of base)
-69 : 42.dasm (-29.87 % of base)
-43 : 33.dasm (-63.24 % of base)
-38 : 574.dasm (-9.64 % of base)
-31 : 580.dasm (-36.47 % of base)
-31 : 225.dasm (-59.62 % of base)
-31 : 522.dasm (-68.89 % of base)
-31 : 332.dasm (-31.96 % of base)
-26 : 494.dasm (-6.90 % of base)
-21 : 63.dasm (-29.17 % of base)
-15 : 597.dasm (-25.86 % of base)
11 total files with Code Size differences (11 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-178 (-81.65 % of base) : 9.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-69 (-29.87 % of base) : 42.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-43 (-63.24 % of base) : 33.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-38 (-9.64 % of base) : 574.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
-31 (-59.62 % of base) : 225.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
-31 (-36.47 % of base) : 580.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-31 (-31.96 % of base) : 332.dasm - Test_negativegenerics:TestEntryPoint():int (FullOpts)
-31 (-68.89 % of base) : 522.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
-26 (-6.90 % of base) : 494.dasm - Program:TestEntryPoint():int (FullOpts)
-21 (-29.17 % of base) : 63.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
-15 (-25.86 % of base) : 597.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
Top method improvements (percentages):
-178 (-81.65 % of base) : 9.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-31 (-68.89 % of base) : 522.dasm - TestLibrary.OutOfProcessTest:get_OutOfProcessTestsSupported():ubyte (FullOpts)
-43 (-63.24 % of base) : 33.dasm - System.Console:get_Out():System.IO.TextWriter (FullOpts)
-31 (-59.62 % of base) : 225.dasm - DelegateDefinitions:TestVoidParameterVoidStaticCallback() (FullOpts)
-31 (-36.47 % of base) : 580.dasm - System.Text.RegularExpressions.Regex:.cctor() (FullOpts)
-31 (-31.96 % of base) : 332.dasm - Test_negativegenerics:TestEntryPoint():int (FullOpts)
-69 (-29.87 % of base) : 42.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-21 (-29.17 % of base) : 63.dasm - TestLibrary.Utilities:get_Verbose():ubyte (FullOpts)
-15 (-25.86 % of base) : 597.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (FullOpts)
-38 (-9.64 % of base) : 574.dasm - CoreclrTestLib.MobileAppHandler:CheckExitCode(int,System.String,System.String,System.IO.StreamWriter) (FullOpts)
-26 (-6.90 % of base) : 494.dasm - Program:TestEntryPoint():int (FullOpts)
11 total methods with Code Size differences (11 improved, 0 regressed).
libraries.crossgen2.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 6763269 (overridden on cmd)
Total bytes of diff: 6763208 (overridden on cmd)
Total bytes of delta: -61 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1 : 3523.dasm (3.23 % of base)
1 : 170656.dasm (3.23 % of base)
Top file improvements (bytes):
-19 : 29747.dasm (-45.24 % of base)
-18 : 29748.dasm (-40.00 % of base)
-12 : 15565.dasm (-2.78 % of base)
-7 : 153036.dasm (-3.98 % of base)
-6 : 153501.dasm (-4.96 % of base)
-1 : 153505.dasm (-1.72 % of base)
8 total files with Code Size differences (6 improved, 2 regressed), 2 unchanged.
Top method regressions (bytes):
1 (3.23 % of base) : 3523.dasm - <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
1 (3.23 % of base) : 170656.dasm - Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
Top method improvements (bytes):
-19 (-45.24 % of base) : 29747.dasm - System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
-18 (-40.00 % of base) : 29748.dasm - System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
-12 (-2.78 % of base) : 15565.dasm - System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
-7 (-3.98 % of base) : 153036.dasm - System.Data.OleDb.PropertyIDSet:.ctor(System.Guid,int):this (FullOpts)
-6 (-4.96 % of base) : 153501.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-1 (-1.72 % of base) : 153505.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
Top method regressions (percentages):
1 (3.23 % of base) : 3523.dasm - <StartupCode$FSharp-Core>.$Array:.cctor() (FullOpts)
1 (3.23 % of base) : 170656.dasm - Newtonsoft.Json.DefaultJsonNameTable:.cctor() (FullOpts)
Top method improvements (percentages):
-19 (-45.24 % of base) : 29747.dasm - System.Threading.PreAllocatedOverlapped:AddRef():ubyte:this (FullOpts)
-18 (-40.00 % of base) : 29748.dasm - System.Threading.PreAllocatedOverlapped:Release():this (FullOpts)
-6 (-4.96 % of base) : 153501.dasm - Roslyn.Utilities.PathUtilities:PathCharEqual(ushort,ushort):ubyte (FullOpts)
-7 (-3.98 % of base) : 153036.dasm - System.Data.OleDb.PropertyIDSet:.ctor(System.Guid,int):this (FullOpts)
-12 (-2.78 % of base) : 15565.dasm - System.Threading.PortableThreadPool+BlockingConfig:.cctor() (FullOpts)
-1 (-1.72 % of base) : 153505.dasm - Roslyn.Utilities.PathUtilities:NormalizeWithForwardSlash(System.String):System.String (FullOpts)
8 total methods with Code Size differences (6 improved, 2 regressed).
libraries.pmi.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 104569 (overridden on cmd)
Total bytes of diff: 78355 (overridden on cmd)
Total bytes of delta: -26214 (-25.07 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 312.dasm (2.86 % of base)
4 : 316.dasm (2.86 % of base)
4 : 340.dasm (2.82 % of base)
4 : 343.dasm (3.64 % of base)
4 : 344.dasm (3.64 % of base)
4 : 356.dasm (3.64 % of base)
4 : 358.dasm (3.64 % of base)
4 : 359.dasm (3.64 % of base)
4 : 360.dasm (3.25 % of base)
4 : 371.dasm (3.77 % of base)
4 : 372.dasm (3.77 % of base)
4 : 373.dasm (3.77 % of base)
4 : 374.dasm (3.77 % of base)
4 : 375.dasm (3.33 % of base)
4 : 376.dasm (3.77 % of base)
4 : 387.dasm (3.39 % of base)
4 : 388.dasm (3.39 % of base)
4 : 391.dasm (3.39 % of base)
4 : 400.dasm (2.86 % of base)
4 : 401.dasm (3.67 % of base)
Top file improvements (bytes):
-156 : 3014.dasm (-36.62 % of base)
-85 : 397.dasm (-35.86 % of base)
-84 : 352.dasm (-36.36 % of base)
-84 : 367.dasm (-36.36 % of base)
-84 : 394.dasm (-36.21 % of base)
-84 : 395.dasm (-36.21 % of base)
-84 : 568.dasm (-50.00 % of base)
-83 : 398.dasm (-36.24 % of base)
-83 : 399.dasm (-36.24 % of base)
-83 : 412.dasm (-36.24 % of base)
-83 : 427.dasm (-36.24 % of base)
-82 : 353.dasm (-37.27 % of base)
-82 : 354.dasm (-37.27 % of base)
-82 : 368.dasm (-37.27 % of base)
-82 : 369.dasm (-37.27 % of base)
-82 : 382.dasm (-36.44 % of base)
-82 : 396.dasm (-35.96 % of base)
-81 : 366.dasm (-36.99 % of base)
-81 : 413.dasm (-37.16 % of base)
-81 : 429.dasm (-37.16 % of base)
87 total files with Code Size differences (56 improved, 31 regressed), 2 unchanged.
Top method regressions (bytes):
4 (3.39 % of base) : 388.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],double,System.Nullable`1[int]):int (FullOpts)
4 (3.39 % of base) : 391.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],double,System.Nullable`1[int]):long (FullOpts)
4 (3.39 % of base) : 387.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],double,System.Nullable`1[int]):short (FullOpts)
4 (3.77 % of base) : 374.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],int,System.Nullable`1[int]):double (FullOpts)
4 (3.77 % of base) : 373.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],int,System.Nullable`1[int]):int (FullOpts)
4 (3.77 % of base) : 376.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],int,System.Nullable`1[int]):long (FullOpts)
4 (3.77 % of base) : 372.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],int,System.Nullable`1[int]):short (FullOpts)
4 (3.33 % of base) : 375.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float]](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],System.Numerics.Vector`1[float]]],int,System.Nullable`1[int]):System.Numerics.Vector`1[float] (FullOpts)
4 (3.77 % of base) : 371.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.67 % of base) : 419.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],long,System.Nullable`1[int]):double (FullOpts)
4 (3.67 % of base) : 418.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],long,System.Nullable`1[int]):int (FullOpts)
4 (3.67 % of base) : 421.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],long,System.Nullable`1[int]):long (FullOpts)
4 (3.67 % of base) : 417.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],long,System.Nullable`1[int]):short (FullOpts)
4 (2.86 % of base) : 415.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[long,System.__Canon],long,System.Nullable`1[int]):System.__Canon (FullOpts)
4 (3.31 % of base) : 420.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float]](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],System.Numerics.Vector`1[float]]],long,System.Nullable`1[int]):System.Numerics.Vector`1[float] (FullOpts)
4 (3.67 % of base) : 416.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],long,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.64 % of base) : 359.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],short,System.Nullable`1[int]):double (FullOpts)
4 (3.64 % of base) : 358.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],short,System.Nullable`1[int]):int (FullOpts)
4 (3.25 % of base) : 360.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],System.Numerics.Vector`1[float]]],short,System.Nullable`1[int]):System.Numerics.Vector`1[float] (FullOpts)
4 (3.64 % of base) : 356.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],short,System.Nullable`1[int]):ubyte (FullOpts)
Top method improvements (bytes):
-156 (-36.62 % of base) : 3014.dasm - Microsoft.FSharp.Linq.QueryModule:|ZeroOnElseBranch|_|(Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Core.Unit] (FullOpts)
-85 (-35.86 % of base) : 397.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],double,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-84 (-36.21 % of base) : 395.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[short,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]]],double,System.Nullable`1[int],short):System.Nullable`1[int] (FullOpts)
-84 (-36.21 % of base) : 394.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[ubyte,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]]],double,System.Nullable`1[int],ubyte):System.Nullable`1[int] (FullOpts)
-84 (-36.36 % of base) : 367.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],short,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-84 (-36.36 % of base) : 352.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],ubyte,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-84 (-50.00 % of base) : 568.dasm - Microsoft.FSharp.Core.FSharpResult`2[ubyte,System.Nullable`1[int]]:CompareTo(Microsoft.FSharp.Core.FSharpResult`2[ubyte,System.Nullable`1[int]]):int:this (FullOpts)
-83 (-36.24 % of base) : 399.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],double,System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-83 (-36.24 % of base) : 398.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],double,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-83 (-36.24 % of base) : 427.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],long,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-83 (-36.24 % of base) : 412.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-82 (-35.96 % of base) : 396.dasm - Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]:InvokeFast[int,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[double,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]]],double,System.Nullable`1[int],int):System.Nullable`1[int] (FullOpts)
-82 (-36.44 % of base) : 382.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[double,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[double,System.Nullable`1[int]]]],int,System.Nullable`1[int],double):System.Nullable`1[int] (FullOpts)
-82 (-37.27 % of base) : 369.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],short,System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-82 (-37.27 % of base) : 368.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],short,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-82 (-37.27 % of base) : 354.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],ubyte,System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-82 (-37.27 % of base) : 353.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],ubyte,System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
-81 (-37.16 % of base) : 429.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]]],long,System.Nullable`1[int],long):System.Nullable`1[int] (FullOpts)
-81 (-36.99 % of base) : 366.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[int,System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]]],short,System.Nullable`1[int],int):System.Nullable`1[int] (FullOpts)
-81 (-37.16 % of base) : 413.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[System.Numerics.Vector`1[float],System.Nullable`1[int]](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]],System.Numerics.Vector`1[float],System.Nullable`1[int],System.Numerics.Vector`1[float]):System.Nullable`1[int] (FullOpts)
Top method regressions (percentages):
4 (3.77 % of base) : 374.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],int,System.Nullable`1[int]):double (FullOpts)
4 (3.77 % of base) : 373.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],int,System.Nullable`1[int]):int (FullOpts)
4 (3.77 % of base) : 376.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],int,System.Nullable`1[int]):long (FullOpts)
4 (3.77 % of base) : 372.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],int,System.Nullable`1[int]):short (FullOpts)
4 (3.77 % of base) : 371.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[int,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],int,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.67 % of base) : 419.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],long,System.Nullable`1[int]):double (FullOpts)
4 (3.67 % of base) : 418.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],long,System.Nullable`1[int]):int (FullOpts)
4 (3.67 % of base) : 421.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],long,System.Nullable`1[int]):long (FullOpts)
4 (3.67 % of base) : 417.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],long,System.Nullable`1[int]):short (FullOpts)
4 (3.67 % of base) : 416.dasm - Microsoft.FSharp.Core.FSharpFunc`2[long,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[long,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],long,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.67 % of base) : 404.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],System.Numerics.Vector`1[float],System.Nullable`1[int]):double (FullOpts)
4 (3.67 % of base) : 403.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],System.Numerics.Vector`1[float],System.Nullable`1[int]):int (FullOpts)
4 (3.67 % of base) : 406.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[long](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],long]],System.Numerics.Vector`1[float],System.Nullable`1[int]):long (FullOpts)
4 (3.67 % of base) : 402.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[short](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],short]],System.Numerics.Vector`1[float],System.Nullable`1[int]):short (FullOpts)
4 (3.67 % of base) : 401.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],System.Numerics.Vector`1[float],System.Nullable`1[int]):ubyte (FullOpts)
4 (3.64 % of base) : 359.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],short,System.Nullable`1[int]):double (FullOpts)
4 (3.64 % of base) : 358.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],short,System.Nullable`1[int]):int (FullOpts)
4 (3.64 % of base) : 356.dasm - Microsoft.FSharp.Core.FSharpFunc`2[short,System.Nullable`1[int]]:InvokeFast[ubyte](Microsoft.FSharp.Core.FSharpFunc`2[short,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],ubyte]],short,System.Nullable`1[int]):ubyte (FullOpts)
4 (3.64 % of base) : 344.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[double](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],double]],ubyte,System.Nullable`1[int]):double (FullOpts)
4 (3.64 % of base) : 343.dasm - Microsoft.FSharp.Core.FSharpFunc`2[ubyte,System.Nullable`1[int]]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[ubyte,Microsoft.FSharp.Core.FSharpFunc`2[System.Nullable`1[int],int]],ubyte,System.Nullable`1[int]):int (FullOpts)
Top method improvements (percentages):
-44 (-91.67 % of base) : 1425.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:GetHashCode():int:this (FullOpts)
-55 (-74.32 % of base) : 3563.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.Adapters+CleanupLeaf@294:Invoke(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Quotations.FSharpExpr):Microsoft.FSharp.Quotations.FSharpExpr:this (FullOpts)
-39 (-73.58 % of base) : 1943.dasm - Microsoft.FSharp.Control.AsyncReturn:get_AsyncReturn():Microsoft.FSharp.Control.AsyncReturn (FullOpts)
-39 (-73.58 % of base) : 2633.dasm - Microsoft.FSharp.Core.ExtraTopLevelOperators:get_DefaultAsyncBuilder():Microsoft.FSharp.Control.FSharpAsyncBuilder (FullOpts)
-39 (-73.58 % of base) : 1618.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_AddressOfOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1622.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_AddressSetOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1562.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_AppOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1564.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_IfThenElseOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1570.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_LetOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1568.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_LetRecCombOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1566.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_LetRecOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1616.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_SequentialOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1628.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_TryFinallyOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1626.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_TryWithOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1620.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_VarSetOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1632.dasm - Microsoft.FSharp.Quotations.ExprConstInfo:get_WhileLoopOp():Microsoft.FSharp.Quotations.ExprConstInfo (FullOpts)
-39 (-73.58 % of base) : 1357.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_ActivePatternResult():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
-39 (-73.58 % of base) : 1359.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_Alias():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
-39 (-73.58 % of base) : 1361.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_Class():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
-39 (-73.58 % of base) : 1369.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag:get_Enum():Microsoft.FSharp.Text.StructuredPrintfImpl.TextTag (FullOpts)
libraries_tests.run.windows.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 406472 (overridden on cmd)
Total bytes of diff: 403933 (overridden on cmd)
Total bytes of delta: -2539 (-0.62 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 2498.dasm (12.40 % of base)
16 : 4675.dasm (12.40 % of base)
Top file improvements (bytes):
-83 : 4743.dasm (-17.93 % of base)
-80 : 2595.dasm (-17.28 % of base)
-67 : 8434.dasm (-25.67 % of base)
-60 : 6947.dasm (-11.95 % of base)
-54 : 4254.dasm (-21.34 % of base)
-54 : 6238.dasm (-21.34 % of base)
-53 : 935.dasm (-23.25 % of base)
-53 : 2759.dasm (-23.25 % of base)
-41 : 8406.dasm (-21.81 % of base)
-40 : 5165.dasm (-44.44 % of base)
-40 : 1587.dasm (-22.99 % of base)
-40 : 1838.dasm (-8.75 % of base)
-40 : 317.dasm (-8.81 % of base)
-40 : 2493.dasm (-13.07 % of base)
-40 : 20.dasm (-22.99 % of base)
-40 : 3074.dasm (-44.44 % of base)
-40 : 4670.dasm (-13.07 % of base)
-32 : 2613.dasm (-18.50 % of base)
-32 : 4761.dasm (-18.50 % of base)
-30 : 1582.dasm (-61.22 % of base)
66 total files with Code Size differences (64 improved, 2 regressed), 0 unchanged.
Top method regressions (bytes):
16 (12.40 % of base) : 2498.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
16 (12.40 % of base) : 4675.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
Top method improvements (bytes):
-83 (-17.93 % of base) : 4743.dasm - Xunit.Sdk.SerializationHelper:GetType(System.String,System.String):System.Type (Tier0)
-80 (-17.28 % of base) : 2595.dasm - Xunit.Sdk.SerializationHelper:GetType(System.String,System.String):System.Type (Tier0)
-67 (-25.67 % of base) : 8434.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-60 (-11.95 % of base) : 6947.dasm - Interop+BCrypt+BCryptAlgorithmCache:IsBCryptAlgorithmSupported(System.String,int):ubyte (Tier0)
-54 (-21.34 % of base) : 4254.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-54 (-21.34 % of base) : 6238.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:AcquireAllLocks(byref):this (Tier0)
-53 (-23.25 % of base) : 935.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-53 (-23.25 % of base) : 2759.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (Tier0)
-41 (-21.81 % of base) : 8406.dasm - Microsoft.Extensions.Configuration.InternalConfigurationRootExtensions+<>c__DisplayClass0_0:<GetChildrenImplementation>b__1(System.String):Microsoft.Extensions.Configuration.IConfigurationSection:this (Tier0)
-40 (-22.99 % of base) : 1587.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:GetCurrent():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-40 (-22.99 % of base) : 20.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:GetCurrent():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-40 (-13.07 % of base) : 2493.dasm - Xunit.ConsoleClient.ConsoleRunner:ValidateFileExists(System.Object,System.String):ubyte:this (Tier0)
-40 (-13.07 % of base) : 4670.dasm - Xunit.ConsoleClient.ConsoleRunner:ValidateFileExists(System.Object,System.String):ubyte:this (Tier0)
-40 (-8.75 % of base) : 1838.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier0)
-40 (-8.81 % of base) : 317.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (Tier0)
-40 (-44.44 % of base) : 5165.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler+ReaderWriterLockWrapper:WriteLock():System.IDisposable (Tier0)
-40 (-44.44 % of base) : 3074.dasm - Xunit.DefaultRunnerReporterWithTypesMessageHandler+ReaderWriterLockWrapper:WriteLock():System.IDisposable (Tier0)
-32 (-18.50 % of base) : 2613.dasm - Xunit.Sdk.TestFramework:.ctor(Xunit.Abstractions.IMessageSink):this (Tier0)
-32 (-18.50 % of base) : 4761.dasm - Xunit.Sdk.TestFramework:.ctor(Xunit.Abstractions.IMessageSink):this (Tier0)
-30 (-71.43 % of base) : 1783.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
Top method regressions (percentages):
16 (12.40 % of base) : 2498.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
16 (12.40 % of base) : 4675.dasm - Xunit.TestFrameworkOptions:SetValue[System.Nullable`1[ubyte]](System.String,System.Nullable`1[ubyte]):this (Tier0)
Top method improvements (percentages):
-30 (-71.43 % of base) : 1783.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-30 (-71.43 % of base) : 253.dasm - Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment:get_OperatingSystemPlatform():int (Tier0)
-30 (-69.77 % of base) : 6853.dasm - Interop+BCrypt:get_PseudoHandlesSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 5009.dasm - System.Globalization.Tests.InvariantModeTests:get_PredefinedCulturesOnlyIsDisabled():ubyte (Tier0)
-30 (-69.77 % of base) : 7545.dasm - System.Security.Cryptography.HMACSHA3_256:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 7548.dasm - System.Security.Cryptography.HMACSHA3_384:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 7550.dasm - System.Security.Cryptography.HMACSHA3_512:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 7383.dasm - System.Security.Cryptography.SHA3_256:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 7373.dasm - System.Security.Cryptography.SHA3_384:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 6944.dasm - System.Security.Cryptography.SHA3_512:get_IsSupported():ubyte (Tier0)
-30 (-69.77 % of base) : 6898.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-30 (-69.77 % of base) : 7348.dasm - System.SR:UsingResourceKeys():ubyte (Tier0)
-30 (-61.22 % of base) : 1582.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
-30 (-61.22 % of base) : 15.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader:get_Default():Internal.Microsoft.Extensions.DependencyModel.DependencyContextLoader (Tier0)
-30 (-61.22 % of base) : 18.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:get_Current():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-30 (-61.22 % of base) : 1585.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths:get_Current():Internal.Microsoft.Extensions.DependencyModel.DependencyContextPaths (Tier0)
-30 (-61.22 % of base) : 34.dasm - Internal.Microsoft.Extensions.DependencyModel.FileSystemWrapper:get_Default():Internal.Microsoft.Extensions.DependencyModel.IFileSystem (Tier0)
-30 (-61.22 % of base) : 1601.dasm - Internal.Microsoft.Extensions.DependencyModel.FileSystemWrapper:get_Default():Internal.Microsoft.Extensions.DependencyModel.IFileSystem (Tier0)
-30 (-61.22 % of base) : 8394.dasm - Microsoft.Extensions.Configuration.ConfigurationKeyComparer:get_Comparison():System.Comparison`1[System.String] (Tier0)
-30 (-61.22 % of base) : 7073.dasm - System.Reflection.Metadata.MetadataStringDecoder:get_DefaultUTF8():System.Reflection.Metadata.MetadataStringDecoder (Tier0)
librariestestsnotieredcompilation.run.windows.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 68102 (overridden on cmd)
Total bytes of diff: 64370 (overridden on cmd)
Total bytes of delta: -3732 (-5.48 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-486 : 66.dasm (-80.46 % of base)
-222 : 2322.dasm (-67.68 % of base)
-177 : 1170.dasm (-81.57 % of base)
-111 : 1765.dasm (-13.21 % of base)
-105 : 1130.dasm (-69.54 % of base)
-100 : 452.dasm (-30.12 % of base)
-88 : 120.dasm (-22.11 % of base)
-80 : 138.dasm (-17.66 % of base)
-72 : 9.dasm (-13.53 % of base)
-69 : 519.dasm (-29.87 % of base)
-68 : 686.dasm (-45.95 % of base)
-58 : 1131.dasm (-42.65 % of base)
-56 : 941.dasm (-35.90 % of base)
-44 : 1149.dasm (-63.77 % of base)
-44 : 1249.dasm (-63.77 % of base)
-44 : 1267.dasm (-63.77 % of base)
-44 : 1277.dasm (-63.77 % of base)
-44 : 1338.dasm (-63.77 % of base)
-44 : 1370.dasm (-63.77 % of base)
-44 : 1398.dasm (-63.77 % of base)
63 total files with Code Size differences (63 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-486 (-80.46 % of base) : 66.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-222 (-67.68 % of base) : 2322.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-177 (-81.57 % of base) : 1170.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-111 (-13.21 % of base) : 1765.dasm - Xunit.Sdk.CollectionTracker:CheckIfDictionariesAreEqual(Xunit.Sdk.CollectionTracker,Xunit.Sdk.CollectionTracker,System.Collections.IEqualityComparer):System.Nullable`1[ubyte] (FullOpts)
-105 (-69.54 % of base) : 1130.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-100 (-30.12 % of base) : 452.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-88 (-22.11 % of base) : 120.dasm - System.Lazy`1[int]:CreateValue():int:this (FullOpts)
-80 (-17.66 % of base) : 138.dasm - Xunit.ConsoleClient.DiagnosticMessageSink:OnMessage(Xunit.Abstractions.IMessageSinkMessage):ubyte:this (FullOpts)
-72 (-13.53 % of base) : 9.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-69 (-29.87 % of base) : 519.dasm - System.Console:CreateOutputWriter(System.IO.Stream):System.IO.TextWriter (FullOpts)
-68 (-45.95 % of base) : 686.dasm - System.Linq.Enumerable:Cast[System.__Canon](System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-58 (-42.65 % of base) : 1131.dasm - System.Runtime.InteropServices.Marshalling.UniqueComInterfaceMarshaller`1[System.__Canon]:ConvertToManaged(ulong):System.__Canon (FullOpts)
-56 (-35.90 % of base) : 941.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (FullOpts)
-44 (-63.77 % of base) : 1591.dasm - <SharedTypes_ComInterfaces_IArrayOfStatelessElements>F997BA340F1C602826A33304D11289B2F916116FCF25AA5066692B8DC9808E77C__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1398.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1277.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1718.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1410.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1150.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1794.dasm - <SharedTypes_ComInterfaces_IGetIntArray>FA214D816C95247C6B11496DF3E741F51CFFDF42655C9ADCC408020ADDEBD389B__InterfaceInformation:get_Iid():System.Guid (FullOpts)
Top method improvements (percentages):
-177 (-81.57 % of base) : 1170.dasm - Xunit.Sdk.CollectionTrackerExtensions:AsTracker(System.Collections.IEnumerable):Xunit.Sdk.CollectionTracker (FullOpts)
-486 (-80.46 % of base) : 66.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-39 (-73.58 % of base) : 2099.dasm - Microsoft.CodeAnalysis.AssemblyIdentityComparer:get_Default():Microsoft.CodeAnalysis.AssemblyIdentityComparer (FullOpts)
-39 (-73.58 % of base) : 737.dasm - Xunit.TestAssemblyDiscoveryFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-39 (-73.58 % of base) : 485.dasm - Xunit.TestAssemblyDiscoveryStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-39 (-73.58 % of base) : 1898.dasm - Xunit.TestAssemblyExecutionFinished:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-39 (-73.58 % of base) : 745.dasm - Xunit.TestAssemblyExecutionStarting:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-39 (-73.58 % of base) : 1938.dasm - Xunit.TestExecutionSummary:get_InterfaceTypes():System.Collections.Generic.HashSet`1[System.String]:this (FullOpts)
-105 (-69.54 % of base) : 1130.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:GetOrCreateInterfaceDetailsStrategy():System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceDetailsStrategy:this (FullOpts)
-222 (-67.68 % of base) : 2322.dasm - System.Collections.Immutable.ImmutableExtensions:AsOrderedCollection[System.ValueTuple`3[int,int,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`3[int,int,System.__Canon]]):System.Collections.Immutable.IOrderedCollection`1[System.ValueTuple`3[int,int,System.__Canon]] (FullOpts)
-44 (-63.77 % of base) : 1591.dasm - <SharedTypes_ComInterfaces_IArrayOfStatelessElements>F997BA340F1C602826A33304D11289B2F916116FCF25AA5066692B8DC9808E77C__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1398.dasm - <SharedTypes_ComInterfaces_IBool>F1FE57BB180AB34F547DA2AF42A54F6BB7C54809B082630C4DB88EA10A9B77BAA__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1277.dasm - <SharedTypes_ComInterfaces_ICustomStringMarshallingUtf16>F293B0560034FBCA8F397E7EBD4143A52C3BD770BA41A9EC6A142B9A9EAD169A8__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1718.dasm - <SharedTypes_ComInterfaces_IDerived>FD2E2000916F7322C38FFC890B0CD47AC749A1C6B3C465B21BB923E8FEB7CDED7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1410.dasm - <SharedTypes_ComInterfaces_IFloat>F78CC465A10946FB6FDAE1935E39E2936108140B34974C4C5D2879B22D4C0BCC2__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1150.dasm - <SharedTypes_ComInterfaces_IGetAndSetInt>F7D680BDD9F632803E4C91B4471F4B075906326C3E62CD0B30BD3929C056710FF__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1794.dasm - <SharedTypes_ComInterfaces_IGetIntArray>FA214D816C95247C6B11496DF3E741F51CFFDF42655C9ADCC408020ADDEBD389B__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1648.dasm - <SharedTypes_ComInterfaces_IInt>F5760B97C133242F5A106190440B4906CD2EB48D5707A49A7150FCE3CC122F69A__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1537.dasm - <SharedTypes_ComInterfaces_IIntArray>FC8C36D862B5D89EFA40DC2F69A3F2BB75A6AFAFDD2DD51BB784960FEC6297044__InterfaceInformation:get_Iid():System.Guid (FullOpts)
-44 (-63.77 % of base) : 1654.dasm - <SharedTypes_ComInterfaces_IInterface>F0F8D3EC26B752C48BE9B9C143F24949B29CF1C6BE9A1BE3C3F507CEEFFF883D7__InterfaceInformation:get_Iid():System.Guid (FullOpts)
realworld.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 433308 (overridden on cmd)
Total bytes of diff: 422380 (overridden on cmd)
Total bytes of delta: -10928 (-2.52 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
4 : 2553.dasm (2.92 % of base)
4 : 3629.dasm (3.92 % of base)
4 : 3667.dasm (2.96 % of base)
4 : 5139.dasm (2.94 % of base)
3 : 2354.dasm (3.19 % of base)
Top file improvements (bytes):
-6444 : 5267.dasm (-75.66 % of base)
-486 : 530.dasm (-80.46 % of base)
-286 : 5201.dasm (-70.62 % of base)
-217 : 9.dasm (-70.45 % of base)
-217 : 1611.dasm (-70.45 % of base)
-202 : 4013.dasm (-35.82 % of base)
-105 : 835.dasm (-65.62 % of base)
-105 : 5111.dasm (-36.97 % of base)
-100 : 567.dasm (-30.12 % of base)
-85 : 3036.dasm (-10.46 % of base)
-80 : 2950.dasm (-25.24 % of base)
-76 : 3050.dasm (-11.67 % of base)
-76 : 3896.dasm (-13.50 % of base)
-74 : 2940.dasm (-57.81 % of base)
-74 : 3852.dasm (-62.18 % of base)
-72 : 233.dasm (-13.53 % of base)
-72 : 1835.dasm (-13.53 % of base)
-63 : 3309.dasm (-44.37 % of base)
-62 : 5127.dasm (-73.81 % of base)
-62 : 5126.dasm (-73.81 % of base)
60 total files with Code Size differences (55 improved, 5 regressed), 1 unchanged.
Top method regressions (bytes):
4 (3.92 % of base) : 3629.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
4 (2.96 % of base) : 3667.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.94 % of base) : 5139.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.92 % of base) : 2553.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
3 (3.19 % of base) : 2354.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
Top method improvements (bytes):
-6444 (-75.66 % of base) : 5267.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-486 (-80.46 % of base) : 530.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-286 (-70.62 % of base) : 5201.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-217 (-70.45 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-217 (-70.45 % of base) : 1611.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-202 (-35.82 % of base) : 4013.dasm - FSharp.Compiler.Parser:tables():Internal.Utilities.Text.Parsing.Tables`1[FSharp.Compiler.Parser+token] (FullOpts)
-105 (-36.97 % of base) : 5111.dasm - FSharp.Compiler.LexFilter+LexFilter:GetToken():FSharp.Compiler.Parser+token:this (FullOpts)
-105 (-65.62 % of base) : 835.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-100 (-30.12 % of base) : 567.dasm - System.Linq.Enumerable:Concat[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-85 (-10.46 % of base) : 3036.dasm - FSharp.Compiler.Features+LanguageVersion:getVersionFromString(System.String):System.Decimal (FullOpts)
-80 (-25.24 % of base) : 2950.dasm - FSharp.Compiler.Text.RangeModule:rangeN(System.String,int):FSharp.Compiler.Text.Range (FullOpts)
-76 (-13.50 % of base) : 3896.dasm - Microsoft.Build.Shared.FrameworkLocationHelper:GenerateProgramFilesReferenceAssemblyRoot():System.String (FullOpts)
-76 (-11.67 % of base) : 3050.dasm - System.Number:DecimalToNumber(byref,byref) (FullOpts)
-74 (-62.18 % of base) : 3852.dasm - FSharp.Compiler.CompilerImports:logMessage@377(FSharp.Compiler.CompilerConfig+TcConfig,ubyte):Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit] (FullOpts)
-74 (-57.81 % of base) : 2940.dasm - FSharp.Compiler.Text.Position:.ctor(int,int):this (FullOpts)
-72 (-13.53 % of base) : 233.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-72 (-13.53 % of base) : 1835.dasm - System.Linq.Enumerable:Skip[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-63 (-44.37 % of base) : 3309.dasm - FSharp.Compiler.AbstractIL.IL+PublicKey:GetHashCode(System.Collections.IEqualityComparer):int:this (FullOpts)
-62 (-73.81 % of base) : 5127.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-62 (-73.81 % of base) : 5126.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
Top method regressions (percentages):
4 (3.92 % of base) : 3629.dasm - Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.BinaryConstants+TableName,Microsoft.FSharp.Core.FSharpFunc`2[int,int]],FSharp.Compiler.AbstractIL.BinaryConstants+TableName,int):int (FullOpts)
3 (3.19 % of base) : 2354.dasm - System.Xml.XmlNode:CreateNavigator():System.Xml.XPath.XPathNavigator:this (FullOpts)
4 (2.96 % of base) : 3667.dasm - Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],int,System.__Canon):System.__Canon (FullOpts)
4 (2.94 % of base) : 5139.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,int]:InvokeFast[int](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,int):int (FullOpts)
4 (2.92 % of base) : 2553.dasm - Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon]:InvokeFast[System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon):System.__Canon (FullOpts)
Top method improvements (percentages):
-486 (-80.46 % of base) : 530.dasm - System.Linq.Enumerable:Where[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts)
-6444 (-75.66 % of base) : 5267.dasm - FSharp.Compiler.CompilerDiagnostics:RangeFromException@79(System.Exception):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] (FullOpts)
-55 (-74.32 % of base) : 5206.dasm - FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions:ErrorLogger.ErrorR(FSharp.Compiler.ErrorLogger+ErrorLogger,System.Exception) (FullOpts)
-62 (-73.81 % of base) : 5127.dasm - FSharp.Compiler.Lexer:get_actions():ushort[] (FullOpts)
-62 (-73.81 % of base) : 5126.dasm - FSharp.Compiler.Lexer:get_trans():ushort[][] (FullOpts)
-39 (-73.58 % of base) : 2989.dasm - FSharp.Compiler.Features+LanguageFeature:get_SingleUnderscorePattern():FSharp.Compiler.Features+LanguageFeature (FullOpts)
-39 (-73.58 % of base) : 2632.dasm - System.Runtime.Loader.AssemblyLoadContext:get_Default():System.Runtime.Loader.AssemblyLoadContext (FullOpts)
-286 (-70.62 % of base) : 5201.dasm - FSharp.Compiler.ParseAndCheckInputs:PostParseModuleImpl[int](int,Microsoft.FSharp.Core.FSharpOption`1[System.String],System.Tuple`2[ubyte,ubyte],System.String,FSharp.Compiler.Syntax.ParsedImplFileFragment):FSharp.Compiler.Syntax.SynModuleOrNamespace (FullOpts)
-217 (-70.45 % of base) : 9.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-217 (-70.45 % of base) : 1611.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-105 (-65.62 % of base) : 835.dasm - System.Threading.ThreadPool:get_CompletedWorkItemCount():long (FullOpts)
-39 (-65.00 % of base) : 2781.dasm - System.Threading.ThreadPool:RequestWorkerThread() (FullOpts)
-31 (-64.58 % of base) : 3057.dasm - FSComp.SR:.cctor() (FullOpts)
-31 (-64.58 % of base) : 1926.dasm - FSharp.Benchmarks.Program:.cctor() (FullOpts)
-31 (-64.58 % of base) : 3261.dasm - FSharp.Compiler.AbstractIL.IL:.cctor() (FullOpts)
-31 (-64.58 % of base) : 3429.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:.cctor() (FullOpts)
-31 (-64.58 % of base) : 5326.dasm - FSharp.Compiler.BuildGraph+NodeCodeBuilder:.cctor() (FullOpts)
-31 (-64.58 % of base) : 2461.dasm - FSharp.Compiler.CodeAnalysis.FSharpChecker:.cctor() (FullOpts)
-31 (-64.58 % of base) : 2471.dasm - FSharp.Compiler.CodeAnalysis.SimulatedMSBuildReferenceResolver:.cctor() (FullOpts)
-31 (-64.58 % of base) : 2882.dasm - FSharp.Compiler.ErrorLogger+StackGuard:.cctor() (FullOpts)
smoke_tests.nativeaot.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 453425 (overridden on cmd)
Total bytes of diff: 442833 (overridden on cmd)
Total bytes of delta: -10592 (-2.34 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-250 : 11050.dasm (-54.95 % of base)
-250 : 5766.dasm (-54.95 % of base)
-218 : 8678.dasm (-9.61 % of base)
-121 : 5301.dasm (-12.32 % of base)
-121 : 11452.dasm (-12.32 % of base)
-107 : 1783.dasm (-40.53 % of base)
-103 : 4112.dasm (-14.74 % of base)
-103 : 927.dasm (-14.74 % of base)
-96 : 4603.dasm (-16.00 % of base)
-96 : 1051.dasm (-16.00 % of base)
-84 : 10123.dasm (-10.12 % of base)
-84 : 4756.dasm (-10.12 % of base)
-72 : 3183.dasm (-15.86 % of base)
-72 : 679.dasm (-15.86 % of base)
-69 : 11226.dasm (-17.83 % of base)
-69 : 1836.dasm (-43.67 % of base)
-69 : 5708.dasm (-43.67 % of base)
-69 : 5988.dasm (-17.83 % of base)
-68 : 2371.dasm (-22.59 % of base)
-68 : 7734.dasm (-22.59 % of base)
87 total files with Code Size differences (87 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-250 (-54.95 % of base) : 11050.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-250 (-54.95 % of base) : 5766.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-218 (-9.61 % of base) : 8678.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
-121 (-12.32 % of base) : 5301.dasm - System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-121 (-12.32 % of base) : 11452.dasm - System.DateTimeFormat:TryFormat[ushort](System.DateTime,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.TimeSpan):ubyte (FullOpts)
-107 (-40.53 % of base) : 1783.dasm - System.Runtime.InteropServices.ComWrappers+ManagedObjectWrapper:AsRuntimeDefined(byref):long:this (FullOpts)
-103 (-14.74 % of base) : 4112.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-103 (-14.74 % of base) : 927.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-16.00 % of base) : 4603.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-96 (-16.00 % of base) : 1051.dasm - System.Number:TryUInt32ToDecStr[ushort](uint,int,System.Span`1[ushort],byref):ubyte (FullOpts)
-84 (-10.12 % of base) : 10123.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:CompareMethodSignatures(Internal.Runtime.CompilerServices.RuntimeSignature,Internal.Runtime.CompilerServices.RuntimeSignature):ubyte:this (FullOpts)
-84 (-10.12 % of base) : 4756.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:CompareMethodSignatures(Internal.Runtime.CompilerServices.RuntimeSignature,Internal.Runtime.CompilerServices.RuntimeSignature):ubyte:this (FullOpts)
-72 (-15.86 % of base) : 3183.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,System.Span`1[ushort],byref):ubyte (FullOpts)
-72 (-15.86 % of base) : 679.dasm - System.Number:TryUInt64ToDecStr[ushort](ulong,System.Span`1[ushort],byref):ubyte (FullOpts)
-69 (-17.83 % of base) : 11226.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetVirtualResolveData(Internal.Runtime.TypeLoader.NativeFormatModuleInfo,System.RuntimeTypeHandle,System.Reflection.Runtime.General.QMethodDefinition,System.RuntimeTypeHandle[],byref):long (FullOpts)
-69 (-17.83 % of base) : 5988.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetVirtualResolveData(Internal.Runtime.TypeLoader.NativeFormatModuleInfo,System.RuntimeTypeHandle,System.Reflection.Runtime.General.QMethodDefinition,System.RuntimeTypeHandle[],byref):long (FullOpts)
-69 (-43.67 % of base) : 1836.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-69 (-43.67 % of base) : 5708.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer:GetStringComparer(System.Object):System.Collections.Generic.IEqualityComparer`1[System.String] (FullOpts)
-68 (-22.59 % of base) : 2371.dasm - System.Globalization.CompareInfo:NlsEndsWith(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong):ubyte:this (FullOpts)
-68 (-22.59 % of base) : 7734.dasm - System.Globalization.CompareInfo:NlsEndsWith(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong):ubyte:this (FullOpts)
Top method improvements (percentages):
-65 (-61.90 % of base) : 10314.dasm - System.Threading.SpinWait:.cctor() (FullOpts)
-65 (-61.90 % of base) : 7837.dasm - System.Threading.SpinWait:.cctor() (FullOpts)
-23 (-56.10 % of base) : 4570.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
-23 (-56.10 % of base) : 1203.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:get_AssemblyBinder():Internal.Reflection.Core.AssemblyBinder:this (FullOpts)
-23 (-56.10 % of base) : 6386.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
-23 (-56.10 % of base) : 11613.dasm - Internal.TypeSystem.TypeDesc:get_Instantiation():Internal.TypeSystem.Instantiation:this (FullOpts)
-23 (-56.10 % of base) : 11910.dasm - System.Linq.Expressions.BlockExpression:GetOrMakeVariables():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.ParameterExpression]:this (FullOpts)
-250 (-54.95 % of base) : 11050.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-250 (-54.95 % of base) : 5766.dasm - System.Threading.Tasks.Task:FinishStageTwo():this (FullOpts)
-23 (-53.49 % of base) : 7996.dasm - System.Threading.Tasks.Task:LogFinishCompletionNotification() (FullOpts)
-23 (-52.27 % of base) : 10064.dasm - System.Linq.Expressions.ConditionalExpression:GetFalse():System.Linq.Expressions.Expression:this (FullOpts)
-18 (-51.43 % of base) : 12456.dasm - System.Globalization.JapaneseCalendar:get_MinSupportedDateTime():System.DateTime:this (FullOpts)
-18 (-51.43 % of base) : 7024.dasm - System.Globalization.JapaneseCalendar:get_MinSupportedDateTime():System.DateTime:this (FullOpts)
-18 (-51.43 % of base) : 12467.dasm - System.Globalization.TaiwanCalendar:get_MinSupportedDateTime():System.DateTime:this (FullOpts)
-18 (-51.43 % of base) : 7042.dasm - System.Globalization.TaiwanCalendar:get_MinSupportedDateTime():System.DateTime:this (FullOpts)
-42 (-47.73 % of base) : 1915.dasm - System.Globalization.CultureInfo:GetUserDefaultCulture():System.Globalization.CultureInfo (FullOpts)
-42 (-47.73 % of base) : 4903.dasm - System.Globalization.CultureInfo:GetUserDefaultCulture():System.Globalization.CultureInfo (FullOpts)
-18 (-46.15 % of base) : 8544.dasm - System.Threading.WindowsThreadPool+ThreadCountHolder:Finalize():this (FullOpts)
-41 (-46.07 % of base) : 1260.dasm - System.Threading.Thread:DecrementRunningForeground() (FullOpts)
-41 (-46.07 % of base) : 4628.dasm - System.Threading.Thread:DecrementRunningForeground() (FullOpts)