Assembly Diffs
linux arm64
Diffs are based on 2,498,771 contexts (1,011,240 MinOpts, 1,487,531 FullOpts).
MISSED contexts: 6,580 (0.26%)
Overall (+147,632 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm64.checked.mch |
15,908,516 |
+0 |
benchmarks.run_pgo.linux.arm64.checked.mch |
78,672,796 |
+1,492 |
benchmarks.run_tiered.linux.arm64.checked.mch |
29,592,944 |
+620 |
coreclr_tests.run.linux.arm64.checked.mch |
508,895,360 |
+143,476 |
libraries.crossgen2.linux.arm64.checked.mch |
55,781,064 |
+0 |
libraries.pmi.linux.arm64.checked.mch |
74,608,176 |
+0 |
libraries_tests.run.linux.arm64.Release.mch |
383,838,152 |
+1,936 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
163,129,488 |
+108 |
realworld.run.linux.arm64.checked.mch |
15,368,676 |
+0 |
MinOpts (+147,632 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm64.checked.mch |
346,256 |
+0 |
benchmarks.run_pgo.linux.arm64.checked.mch |
23,982,040 |
+1,492 |
benchmarks.run_tiered.linux.arm64.checked.mch |
24,621,220 |
+620 |
coreclr_tests.run.linux.arm64.checked.mch |
348,829,192 |
+143,476 |
libraries.crossgen2.linux.arm64.checked.mch |
1,636 |
+0 |
libraries.pmi.linux.arm64.checked.mch |
119,984 |
+0 |
libraries_tests.run.linux.arm64.Release.mch |
215,421,676 |
+1,936 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
13,479,996 |
+108 |
realworld.run.linux.arm64.checked.mch |
574,152 |
+0 |
Example diffs
benchmarks.run.linux.arm64.checked.mch
+0 (0.00%) : 3345.dasm - BenchmarkDotNet.Autogenerated.Runnable150:ForDisassemblyDiagnoser_():System.String:this (MinOpts)
@@ -28,8 +28,8 @@ G_M15325_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bne G_M15325_IG04
ldr x0, [fp, #0x28] // [V00 this]
; gcrRegs +[x0]
- ldr d0, [x0, #0x50]
- str d0, [fp, #0x20] // [V01 loc0]
+ ldr d16, [x0, #0x50]
+ str d16, [fp, #0x20] // [V01 loc0]
ldr x0, [fp, #0x28] // [V00 this]
ldr x0, [x0, #0x40]
str x0, [fp, #0x18] // [V02 loc1]
+0 (0.00%) : 5229.dasm - BenchmarkDotNet.Autogenerated.Runnable146:ForDisassemblyDiagnoser_():System.Runtime.Intrinsics.Vector128`1[ulong]:this (MinOpts)
@@ -39,8 +39,8 @@ G_M51349_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M51349_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movi v0.4s, #0
- str q0, [fp, #0x10] // [V01 loc0]
+ movi v16.4s, #0
+ str q16, [fp, #0x10] // [V01 loc0]
ldr q0, [fp, #0x10] // [V01 loc0]
;; size=12 bbWeight=1 PerfScore 3.50
G_M51349_IG05: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 5257.dasm - BenchmarkDotNet.Autogenerated.Runnable101:TrickTheJIT_():this (MinOpts)
@@ -45,14 +45,14 @@ G_M62529_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x3, [x3, #0x30]
blr x3
; gcrRegs -[x0]
- ldr x8, [fp, #0x38] // [V00 this]
- ; gcrRegs +[x8]
- str w0, [x8, #0x40]
+ ldr x1, [fp, #0x38] // [V00 this]
+ ; gcrRegs +[x1]
+ str w0, [x1, #0x40]
add x8, fp, #24 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0x38] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
+0 (0.00%) : 30616.dasm - BenchmarkDotNet.Autogenerated.Runnable174:ForDisassemblyDiagnoser_():MicroBenchmarks.Serializers.StructRecord:this (MinOpts)
@@ -68,8 +68,8 @@ G_M62134_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs +[x13]
bl CORINFO_HELP_ASSIGN_BYREF
bl CORINFO_HELP_ASSIGN_BYREF
- ldp x12, x15, [x13], #0x10
- stp x12, x15, [x14], #0x10
+ ldp x0, x1, [x13], #0x10
+ stp x0, x1, [x14], #0x10
;; size=32 bbWeight=1 PerfScore 11.50
G_M62134_IG05: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x50
+0 (0.00%) : 30712.dasm - BenchmarkDotNet.Autogenerated.Runnable119:ForDisassemblyDiagnoser_():System.Numerics.Vector`1[float]:this (MinOpts)
@@ -39,8 +39,8 @@ G_M9709_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M9709_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movi v0.4s, #0
- str q0, [fp, #0x10] // [V01 loc0]
+ movi v16.4s, #0
+ str q16, [fp, #0x10] // [V01 loc0]
ldr q0, [fp, #0x10] // [V01 loc0]
;; size=12 bbWeight=1 PerfScore 3.50
G_M9709_IG05: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 30764.dasm - BenchmarkDotNet.Autogenerated.Runnable173:ForDisassemblyDiagnoser_():MicroBenchmarks.Serializers.LargeStructWithProperties:this (MinOpts)
@@ -58,10 +58,10 @@ G_M40642_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_ASSIGN_BYREF
bl CORINFO_HELP_ASSIGN_BYREF
bl CORINFO_HELP_ASSIGN_BYREF
- ldp x12, x15, [x13], #0x10
- stp x12, x15, [x14], #0x10
- ldr x12, [x13], #0x08
- str x12, [x14], #0x08
+ ldp x0, x1, [x13], #0x10
+ stp x0, x1, [x14], #0x10
+ ldr x0, [x13], #0x08
+ str x0, [x14], #0x08
;; size=56 bbWeight=1 PerfScore 19.00
G_M40642_IG05: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x60
benchmarks.run_pgo.linux.arm64.checked.mch
-8 (-7.14%) : 11573.dasm - System.Numerics.Tests.Perf_VectorOf1[float]:DivisionOperatorBenchmark():System.Numerics.Vector
1[float]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[float]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[float]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M16645_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M16645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M16645_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M16645_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fdiv v0.4s, v8.4s, v0.4s
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ fdiv v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 30.00
G_M16645_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 37.50, instruction count 28, allocated bytes for code 112 (MethodHash=6743befa) for method System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 34.50, instruction count 26, allocated bytes for code 104 (MethodHash=6743befa) for method System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 18785.dasm - System.Numerics.Tests.Perf_VectorOf1[ulong]:AddBenchmark():System.Numerics.Vector
1[ulong]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ulong]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ulong]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M47405_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M47405_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M47405_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M47405_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- add v0.2d, v8.2d, v0.2d
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ add v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 19.00
G_M47405_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=23c946d2) for method System.Numerics.Tests.Perf_VectorOf`1[ulong]:AddBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=23c946d2) for method System.Numerics.Tests.Perf_VectorOf`1[ulong]:AddBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 22993.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M21176_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M21176_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M21176_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M21176_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- smin v0.4s, v8.4s, v0.4s
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ smin v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00
G_M21176_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=8963ad47) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=8963ad47) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
+4 (+10.00%) : 55879.dasm - System.MathF:CopySign(float,float):float (Tier0)
@@ -18,11 +18,12 @@ G_M24268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str s1, [fp, #0x18] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M24268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00]
- ldr s16, [fp, #0x18] // [V01 arg1]
- ldr s17, [fp, #0x1C] // [V00 arg0]
- bsl v0.4s, v16.4s, v17.4s
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00]
+ ldr s17, [fp, #0x18] // [V01 arg1]
+ ldr s18, [fp, #0x1C] // [V00 arg0]
+ bsl v16.4s, v17.4s, v18.4s
+ dup s0, v16.s[0]
+ ;; size=20 bbWeight=1 PerfScore 7.50
G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -30,7 +31,7 @@ G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 8000000080000000h, 8000000080000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+10.00%) : 1280.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector128
1[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte
@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0]
- uqxtn v0.8b, v0.8h
- ldr q16, [fp, #0x10] // [V01 arg1]
- uqxtn2 v0.16b, v16.8h
- ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0]
+ uqxtn v16.8b, v16.8h
+ ldr q17, [fp, #0x10] // [V01 arg1]
+ uqxtn2 v16.16b, v17.8h
+ mov v0.16b, v16.16b
+ ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+11.11%) : 19329.dasm - System.Runtime.Intrinsics.Vector128:Createbyte:System.Runtime.Intrinsics.Vector128`1byte
@@ -19,16 +19,17 @@ G_M51682_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x20] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M51682_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0]
- ldr d16, [fp, #0x20] // [V01 arg1]
- ins v0.d[1], v16.d[0]
- ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0]
+ ldr d17, [fp, #0x20] // [V01 arg1]
+ ins v16.d[1], v17.d[0]
+ mov v0.16b, v16.16b
+ ;; size=16 bbWeight=1 PerfScore 5.50
G_M51682_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)
benchmarks.run_tiered.linux.arm64.checked.mch
-8 (-7.14%) : 18337.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128
1[ushort]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M38061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M38061_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M38061_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M38061_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- add v0.8h, v8.8h, v0.8h
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ add v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 19.00
G_M38061_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=00d86b52) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=00d86b52) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 21053.dasm - System.Numerics.Tests.Perf_VectorOf1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector
1[int]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[int]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[int]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M61916_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M61916_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M61916_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- cmge v0.4s, v8.4s, v0.4s
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ cmge v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00
G_M61916_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=95300e23) for method System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=95300e23) for method System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 21153.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128
1[ushort]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M29641_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M29641_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M29641_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M29641_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- eor v0.8h, v8.8h, v0.8h
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ eor v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 18.50
G_M29641_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=efce8c36) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=efce8c36) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
+4 (+10.00%) : 33055.dasm - System.MathF:CopySign(float,float):float (Tier0)
@@ -18,11 +18,12 @@ G_M24268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str s1, [fp, #0x18] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M24268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00]
- ldr s16, [fp, #0x18] // [V01 arg1]
- ldr s17, [fp, #0x1C] // [V00 arg0]
- bsl v0.4s, v16.4s, v17.4s
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00]
+ ldr s17, [fp, #0x18] // [V01 arg1]
+ ldr s18, [fp, #0x1C] // [V00 arg0]
+ bsl v16.4s, v17.4s, v18.4s
+ dup s0, v16.s[0]
+ ;; size=20 bbWeight=1 PerfScore 7.50
G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -30,7 +31,7 @@ G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 8000000080000000h, 8000000080000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+10.00%) : 1152.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector128
1[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte
@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0]
- uqxtn v0.8b, v0.8h
- ldr q16, [fp, #0x10] // [V01 arg1]
- uqxtn2 v0.16b, v16.8h
- ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0]
+ uqxtn v16.8b, v16.8h
+ ldr q17, [fp, #0x10] // [V01 arg1]
+ uqxtn2 v16.16b, v17.8h
+ mov v0.16b, v16.16b
+ ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+11.11%) : 10507.dasm - System.Runtime.Intrinsics.Vector128:Createbyte:System.Runtime.Intrinsics.Vector128`1byte
@@ -19,16 +19,17 @@ G_M51682_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x20] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M51682_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0]
- ldr d16, [fp, #0x20] // [V01 arg1]
- ins v0.d[1], v16.d[0]
- ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0]
+ ldr d17, [fp, #0x20] // [V01 arg1]
+ ins v16.d[1], v17.d[0]
+ mov v0.16b, v16.16b
+ ;; size=16 bbWeight=1 PerfScore 5.50
G_M51682_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)
coreclr_tests.run.linux.arm64.checked.mch
-8 (-6.67%) : 317154.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
@@ -10,22 +10,21 @@
; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Vector4>
; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M39822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
- str d8, [sp, #0x48]
+ stp fp, lr, [sp, #-0x40]!
mov fp, sp
str s0, [fp, #0x30] // [V00 arg0]
str s1, [fp, #0x34] // [V00 arg0+0x04]
str s2, [fp, #0x38] // [V00 arg0+0x08]
str s3, [fp, #0x3C] // [V00 arg0+0x0c]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
fmov s16, #1.0000
str s16, [fp, #0x3C] // [V00 arg0+0x0c]
- ldr q8, [fp, #0x30] // [V00 arg0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x30] // [V00 arg0]
+ str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -35,8 +34,8 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fadd v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01]
+ fadd v16.4s, v17.4s, v16.4s
str q16, [fp, #0x20] // [V02 tmp1]
ldr s0, [fp, #0x20] // [V02 tmp1]
ldr s1, [fp, #0x24] // [V02 tmp1+0x04]
@@ -44,23 +43,22 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c]
;; size=80 bbWeight=1 PerfScore 26.00
G_M39822_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x48]
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 36.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 33.50, instruction count 28, allocated bytes for code 112 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -68,10 +66,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 09 save_freg X#0 Z#9 (0x09); str d8, [sp, #72]
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
- E4 end
- E4 end
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
-12 (-6.12%) : 317628.dasm - Performance_2700:TestEntryPoint():int (Tier0)
@@ -11,15 +11,14 @@
; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x20] "ReplaceWithLclVar is creating a new local variable"
; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
mov fp, sp
str xzr, [fp, #0x40] // [V00 loc0]
str xzr, [fp, #0x48] // [V00 loc0+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -29,8 +28,8 @@ G_M50724_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -40,8 +39,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fmul v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01]
+ fmul v16.4s, v17.4s, v16.4s
str q16, [fp, #0x40] // [V00 loc0]
movi v16.4s, #0
str q16, [fp, #0x30] // [V02 tmp1]
@@ -60,33 +59,31 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov w0, wzr
;; size=148 bbWeight=1 PerfScore 40.50
G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #100
;; size=4 bbWeight=1 PerfScore 0.50
G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
RWD00 dq 4000000040000000h, 4000000040000000h
-; Total bytes of code 196, prolog size 20, PerfScore 53.50, instruction count 49, allocated bytes for code 196 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 184, prolog size 16, PerfScore 48.50, instruction count 46, allocated bytes for code 184 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,10 +94,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 0B save_freg X#0 Z#11 (0x0B); str d8, [sp, #88]
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
- E4 end
- E4 end
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
E4 end
-16 (-5.06%) : 230911.dasm - (dynamicClass):ILSTUBPInvoke():System.Numerics.Vector3 (MinOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xD4] do-not-enreg[]
+; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xDC] do-not-enreg[]
; V01 loc1 [V01 ] ( 1, 1 ) simd12 -> [fp+0xC0] HFA(float) do-not-enreg[SR] multireg-ret <System.Numerics.Vector3>
; V02 loc2 [V02 ] ( 1, 1 ) simd12 -> [fp+0xB0] HFA(float) do-not-enreg[S] <System.Numerics.Vector3>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,20 +21,18 @@
; TEMP_02 float -> [fp+0x70]
; TEMP_01 float -> [fp+0x6C]
;
-; Lcl frame size = 200
+; Lcl frame size = 208
G_M47779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #0xD1FFAB1E]!
- stp d8, d9, [sp, #0xD8]
- str d10, [sp, #0xE8]
- stp x19, x20, [sp, #0xF0]
- stp x21, x22, [sp, #0xD1FFAB1E]
+ stp x19, x20, [sp, #0xE0]
+ stp x21, x22, [sp, #0xF0]
stp x23, x24, [sp, #0xD1FFAB1E]
stp x25, x26, [sp, #0xD1FFAB1E]
stp x27, x28, [sp, #0xD1FFAB1E]
mov fp, sp
str x12, [fp, #0x60] // [V04 tmp1]
- ;; size=40 bbWeight=1 PerfScore 9.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add x0, fp, #32 // [V09 PInvokeFrame+0x08]
mov x1, x12
@@ -48,7 +46,7 @@ G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x1, fp, #32 // [V09 PInvokeFrame+0x08]
; byrRegs +[x1]
str x1, [x0, #0x10]
- str wzr, [fp, #0xD4] // [V00 loc0]
+ str wzr, [fp, #0xDC] // [V00 loc0]
nop
nop
ldr x0, [fp, #0x60] // [V04 tmp1]
@@ -88,12 +86,12 @@ G_M47779_IG05: ; bbWeight=1, isz, extend
; gcr arg pop 0
;; size=52 bbWeight=1 PerfScore 13.50
G_M47779_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr s8, [fp, #0x74] // [TEMP_03]
- str s8, [fp, #0x90] // [V06 tmp3]
- ldr s9, [fp, #0x70] // [TEMP_02]
- str s9, [fp, #0x94] // [V06 tmp3+0x04]
- ldr s10, [fp, #0x6C] // [TEMP_01]
- str s10, [fp, #0x98] // [V06 tmp3+0x08]
+ ldr s16, [fp, #0x74] // [TEMP_03]
+ str s16, [fp, #0x90] // [V06 tmp3]
+ ldr s17, [fp, #0x70] // [TEMP_02]
+ str s17, [fp, #0x94] // [V06 tmp3+0x04]
+ ldr s18, [fp, #0x6C] // [TEMP_01]
+ str s18, [fp, #0x98] // [V06 tmp3+0x08]
nop
ldr q16, [fp, #0x90] // [V06 tmp3]
str q16, [fp, #0xB0] // [V02 loc2]
@@ -114,26 +112,24 @@ G_M47779_IG07: ; bbWeight=1, epilog, nogc, extend
ldp x27, x28, [sp, #0xD1FFAB1E]
ldp x25, x26, [sp, #0xD1FFAB1E]
ldp x23, x24, [sp, #0xD1FFAB1E]
- ldp x21, x22, [sp, #0xD1FFAB1E]
- ldp x19, x20, [sp, #0xF0]
- ldr d10, [sp, #0xE8]
- ldp d8, d9, [sp, #0xD8]
+ ldp x21, x22, [sp, #0xF0]
+ ldp x19, x20, [sp, #0xE0]
ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
-; Total bytes of code 316, prolog size 40, PerfScore 92.00, instruction count 79, allocated bytes for code 316 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
+; Total bytes of code 300, prolog size 32, PerfScore 87.00, instruction count 75, allocated bytes for code 300 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 4
+ Code Words : 3
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -145,10 +141,8 @@ Unwind Info:
E6 save_next
E6 save_next
E6 save_next
- C8 1E save_regp X#0 Z#30 (0x1E); stp x19, x20, [sp, #240]
- DC 9D save_freg X#2 Z#29 (0x1D); str d10, [sp, #232]
- D8 1B save_fregp X#0 Z#27 (0x1B); stp d8, d9, [sp, #216]
- A7 save_fplr_x #39 (0x27); stp fp, lr, [sp, #-320]!
+ C8 1C save_regp X#0 Z#28 (0x1C); stp x19, x20, [sp, #224]
+ A5 save_fplr_x #37 (0x25); stp fp, lr, [sp, #-304]!
E4 end
E4 end
E4 end
+44 (+73.33%) : 84135.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[ubyte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector128
1[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector64
1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48]
+; TEMP_01 simd8 -> [fp+0x40]
+; TEMP_05 simd16 -> [fp+0x30]
+; TEMP_04 simd16 -> [fp+0x20]
+; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M54744_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0]
- str q1, [fp, #0x18] // [V01 arg1]
- str q2, [fp, #0x28] // [V01 arg1+0x10]
- str q3, [fp, #0x38] // [V01 arg1+0x20]
- str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0]
+ str q1, [fp, #0x58] // [V01 arg1]
+ str q2, [fp, #0x68] // [V01 arg1+0x10]
+ str q3, [fp, #0x78] // [V01 arg1+0x20]
+ str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M54744_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0]
- ldr q16, [fp, #0x18] // [V01 arg1]
- ldr q17, [fp, #0x28] // [V01 arg1+0x10]
- ldr q18, [fp, #0x38] // [V01 arg1+0x20]
- ldr d19, [fp, #0x10] // [V02 arg2]
- tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0]
+ str d16, [fp, #0x48] // [TEMP_02]
+ ldr q16, [fp, #0x58] // [V01 arg1]
+ str q16, [fp, #0x30] // [TEMP_05]
+ ldr q16, [fp, #0x68] // [V01 arg1+0x10]
+ str q16, [fp, #0x20] // [TEMP_04]
+ ldr q16, [fp, #0x78] // [V01 arg1+0x20]
+ str q16, [fp, #0x10] // [TEMP_03]
+ ldr d16, [fp, #0x50] // [V02 arg2]
+ str d16, [fp, #0x40] // [TEMP_01]
+ ldr d16, [fp, #0x48] // [TEMP_02]
+ ldr q17, [fp, #0x30] // [TEMP_05]
+ ldr q18, [fp, #0x20] // [TEMP_04]
+ ldr q19, [fp, #0x10] // [TEMP_03]
+ ldr d20, [fp, #0x40] // [TEMP_01]
+ tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b
+ mov v0.8b, v16.8b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M54744_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end
E4 end
+44 (+73.33%) : 45896.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector1281[ubyte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector128
1[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector128
1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0x50] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x20] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0xA0] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x70] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x60] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_05 simd16 -> [fp+0x50]
+; TEMP_04 simd16 -> [fp+0x40]
+; TEMP_03 simd16 -> [fp+0x30]
+; TEMP_02 simd16 -> [fp+0x20]
+; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 80
+; Lcl frame size = 160
G_M246_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- str q0, [fp, #0x50] // [V00 arg0]
- str q1, [fp, #0x20] // [V01 arg1]
- str q2, [fp, #0x30] // [V01 arg1+0x10]
- str q3, [fp, #0x40] // [V01 arg1+0x20]
- str q4, [fp, #0x10] // [V02 arg2]
+ str q0, [fp, #0xA0] // [V00 arg0]
+ str q1, [fp, #0x70] // [V01 arg1]
+ str q2, [fp, #0x80] // [V01 arg1+0x10]
+ str q3, [fp, #0x90] // [V01 arg1+0x20]
+ str q4, [fp, #0x60] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M246_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x50] // [V00 arg0]
- ldr q16, [fp, #0x20] // [V01 arg1]
- ldr q17, [fp, #0x30] // [V01 arg1+0x10]
- ldr q18, [fp, #0x40] // [V01 arg1+0x20]
- ldr q19, [fp, #0x10] // [V02 arg2]
- tbx v0.16b, {v16.16b, v17.16b, v18.16b}, v19.16b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr q16, [fp, #0xA0] // [V00 arg0]
+ str q16, [fp, #0x50] // [TEMP_05]
+ ldr q16, [fp, #0x70] // [V01 arg1]
+ str q16, [fp, #0x40] // [TEMP_04]
+ ldr q16, [fp, #0x80] // [V01 arg1+0x10]
+ str q16, [fp, #0x30] // [TEMP_03]
+ ldr q16, [fp, #0x90] // [V01 arg1+0x20]
+ str q16, [fp, #0x20] // [TEMP_02]
+ ldr q16, [fp, #0x60] // [V02 arg2]
+ str q16, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x50] // [TEMP_05]
+ ldr q17, [fp, #0x40] // [TEMP_04]
+ ldr q18, [fp, #0x30] // [TEMP_03]
+ ldr q19, [fp, #0x20] // [TEMP_02]
+ ldr q20, [fp, #0x10] // [TEMP_01]
+ tbx v16.16b, {v17.16b, v18.16b, v19.16b}, v20.16b
+ mov v0.16b, v16.16b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M246_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0xB0
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ 95 save_fplr_x #21 (0x15); stp fp, lr, [sp, #-176]!
E4 end
E4 end
+44 (+73.33%) : 84160.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[byte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector128
1[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector64
1[byte]):System.Runtime.Intrinsics.Vector64`1[byte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48]
+; TEMP_01 simd8 -> [fp+0x40]
+; TEMP_05 simd16 -> [fp+0x30]
+; TEMP_04 simd16 -> [fp+0x20]
+; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M2168_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0]
- str q1, [fp, #0x18] // [V01 arg1]
- str q2, [fp, #0x28] // [V01 arg1+0x10]
- str q3, [fp, #0x38] // [V01 arg1+0x20]
- str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0]
+ str q1, [fp, #0x58] // [V01 arg1]
+ str q2, [fp, #0x68] // [V01 arg1+0x10]
+ str q3, [fp, #0x78] // [V01 arg1+0x20]
+ str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M2168_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0]
- ldr q16, [fp, #0x18] // [V01 arg1]
- ldr q17, [fp, #0x28] // [V01 arg1+0x10]
- ldr q18, [fp, #0x38] // [V01 arg1+0x20]
- ldr d19, [fp, #0x10] // [V02 arg2]
- tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0]
+ str d16, [fp, #0x48] // [TEMP_02]
+ ldr q16, [fp, #0x58] // [V01 arg1]
+ str q16, [fp, #0x30] // [TEMP_05]
+ ldr q16, [fp, #0x68] // [V01 arg1+0x10]
+ str q16, [fp, #0x20] // [TEMP_04]
+ ldr q16, [fp, #0x78] // [V01 arg1+0x20]
+ str q16, [fp, #0x10] // [TEMP_03]
+ ldr d16, [fp, #0x50] // [V02 arg2]
+ str d16, [fp, #0x40] // [TEMP_01]
+ ldr d16, [fp, #0x48] // [TEMP_02]
+ ldr q17, [fp, #0x30] // [TEMP_05]
+ ldr q18, [fp, #0x20] // [TEMP_04]
+ ldr q19, [fp, #0x10] // [TEMP_03]
+ ldr d20, [fp, #0x40] // [TEMP_01]
+ tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b
+ mov v0.8b, v16.8b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M2168_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end
E4 end
libraries.crossgen2.linux.arm64.checked.mch
+0 (0.00%) : 6809.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -33,10 +33,10 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x3
; gcrRegs -[x0 x2]
str w0, [fp, #0x24] // [V01 loc0]
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1]
- ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x0]
+ ldr x1, [x0]
; gcrRegs +[x1]
ldr w0, [fp, #0x24] // [V01 loc0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+0 (0.00%) : 6810.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
@@ -28,17 +28,17 @@ G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- fcvtzs x11, d0
- str x11, [fp, #0x18] // [V02 loc0]
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0
- sxtw x0, w0
- cmp x11, x0
+ fcvtzs x0, d0
+ str x0, [fp, #0x18] // [V02 loc0]
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0
+ sxtw x1, w1
+ cmp x0, x1
blt G_M28342_IG03
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0xD1FFAB1E LSL #16
- sxtw x0, w0
- cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0xD1FFAB1E LSL #16
+ sxtw x1, w1
+ cmp x0, x1
ble G_M28342_IG04
;; size=68 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 6814.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
@@ -34,26 +34,26 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x3
; gcrRegs -[x0 x2]
str w0, [fp, #0x24] // [V01 loc0]
- ldr x1, [fp, #0x28] // [V00 arg0]
- ; gcrRegs +[x1]
- ldr w1, [x1, #0x08]
- ; gcrRegs -[x1]
- cbz w1, G_M30483_IG03
- ldr w1, [fp, #0x24] // [V01 loc0]
- cmn w1, #1
- cset x1, ne
- str w1, [fp, #0x14] // [V04 tmp1]
+ ldr x0, [fp, #0x28] // [V00 arg0]
+ ; gcrRegs +[x0]
+ ldr w0, [x0, #0x08]
+ ; gcrRegs -[x0]
+ cbz w0, G_M30483_IG03
+ ldr w0, [fp, #0x24] // [V01 loc0]
+ cmn w0, #1
+ cset x0, ne
+ str w0, [fp, #0x14] // [V04 tmp1]
b G_M30483_IG04
;; size=68 bbWeight=1 PerfScore 22.50
G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1
- str w1, [fp, #0x14] // [V04 tmp1]
+ mov w0, #1
+ str w0, [fp, #0x14] // [V04 tmp1]
;; size=8 bbWeight=1 PerfScore 1.50
G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1]
- ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x0]
+ ldr x1, [x0]
; gcrRegs +[x1]
ldr w0, [fp, #0x14] // [V04 tmp1]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+0 (0.00%) : 6815.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
@@ -28,17 +28,17 @@ G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- fcvtzs x11, d0
- str x11, [fp, #0x18] // [V02 loc0]
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0
- sxtw x0, w0
- cmp x11, x0
+ fcvtzs x0, d0
+ str x0, [fp, #0x18] // [V02 loc0]
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0
+ sxtw x1, w1
+ cmp x0, x1
blt G_M50957_IG03
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0xD1FFAB1E LSL #16
- sxtw x0, w0
- cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0xD1FFAB1E LSL #16
+ sxtw x1, w1
+ cmp x0, x1
ble G_M50957_IG04
;; size=68 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 192180.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -38,8 +38,8 @@ G_M16092_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- ldr w11, [fp, #0x20] // [V06 tmp1]
- cmp w0, w11
+ ldr w1, [fp, #0x20] // [V06 tmp1]
+ cmp w0, w1
beq G_M16092_IG04
mov w0, wzr
;; size=60 bbWeight=1 PerfScore 16.00
libraries.pmi.linux.arm64.checked.mch
+0 (0.00%) : 72720.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
@@ -1350,21 +1350,22 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcr arg pop 0
str x0, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0]
- ; gcrRegs +[x2]
- cbz x2, G_M12913_IG05
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [x2, #0x08]
- str x2, [fp, #0xD1FFAB1E] // [V03 loc1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ cbz x0, G_M12913_IG05
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ ldr x0, [x0, #0x08]
+ str x0, [fp, #0xD1FFAB1E] // [V03 loc1]
;; size=48 bbWeight=1 PerfScore 17.50
G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x2]
- ldr x2, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs -[x0]
+ ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x0]
+ ldr x2, [x0, #0x08]
; gcrRegs +[x2]
- ldr x2, [x2, #0x08]
ldr x1, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38354,16 +38355,18 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ 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, #0xD1FFAB1E] // [V1269 tmp844]
ldr x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409]
; gcrRegs +[x2]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38389,21 +38392,23 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
+ 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, #0xD1FFAB1E] // [V1270 tmp845]
ldr x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
- ldr x4, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ldr x4, [x0, #0x08]
; gcrRegs +[x4]
- ldr x4, [x4, #0x08]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409]
; gcrRegs +[x2]
ldr x3, [fp, #0xD1FFAB1E] // [V412 loc410]
; gcrRegs +[x3]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for <unknown method>
@@ -38476,16 +38481,18 @@ G_M12913_IG650: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xF8] // [V1272 tmp847]
+ 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, #0xF8] // [V1272 tmp847]
ldr x1, [fp, #0xF8] // [V1272 tmp847]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V31 loc29]
; gcrRegs +[x2]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38911,9 +38918,11 @@ G_M12913_IG662: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0xB0] // [V1281 tmp856]
ldr x2, [fp, #0xB0] // [V1281 tmp856]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39054,9 +39063,11 @@ G_M12913_IG670: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x90] // [V1285 tmp860]
ldr x2, [fp, #0x90] // [V1285 tmp860]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39257,9 +39268,11 @@ G_M12913_IG679: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x70] // [V1289 tmp864]
ldr x2, [fp, #0x70] // [V1289 tmp864]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39400,9 +39413,11 @@ G_M12913_IG687: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x50] // [V1293 tmp868]
ldr x2, [fp, #0x50] // [V1293 tmp868]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
libraries_tests.run.linux.arm64.Release.mch
-20 (-5.49%) : 186747.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrowsSystem.__Canon (Tier0)
@@ -5,40 +5,40 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] class-hnd <System.Action>
-; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon>
-; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] class-hnd <System.Action>
+; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon>
+; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon>
-; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "SpillCatchArg"
-; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon>
+; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "SpillCatchArg"
+; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 80
G_M19780_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x60]!
- str x19, [sp, #0x58]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- str xzr, [x9, #0x20]
+ stp xzr, xzr, [x9, #0x20]
add x2, sp, #96
- str x2, [fp, #0x50] // [V08 PSPSym]
- str x0, [fp, #0x48]
- str x0, [fp, #0x40] // [V00 TypeCtx]
- str x1, [fp, #0x38] // [V01 arg0]
- ;; size=48 bbWeight=1 PerfScore 10.00
+ str x2, [fp, #0x58] // [V08 PSPSym]
+ str x0, [fp, #0x50]
+ str x0, [fp, #0x48] // [V00 TypeCtx]
+ str x1, [fp, #0x40] // [V01 arg0]
+ ;; size=44 bbWeight=1 PerfScore 9.00
G_M19780_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x30] // [V02 loc0]
+ str xzr, [fp, #0x38] // [V02 loc0]
;; size=4 bbWeight=1 PerfScore 1.00
G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x38] // [V01 arg0]
+ ldr x0, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x1, [fp, #0x38] // [V01 arg0]
+ ldr x1, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x1]
ldr x1, [x1, #0x18]
; gcrRegs -[x1]
@@ -47,13 +47,13 @@ G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=20 bbWeight=1 PerfScore 11.00
G_M19780_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0]
cbnz x0, G_M19780_IG06
;; size=8 bbWeight=1 PerfScore 3.00
G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -70,7 +70,7 @@ G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -79,29 +79,30 @@ G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x48] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
beq G_M19780_IG08
- ;; size=56 bbWeight=1 PerfScore 21.50
+ ;; size=60 bbWeight=1 PerfScore 24.00
G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V07 tmp3]
- ldr x0, [fp, #0x10] // [V07 tmp3]
- ldr x1, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x18] // [V07 tmp3]
+ ldr x0, [fp, #0x18] // [V07 tmp3]
+ ldr x1, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -115,77 +116,72 @@ G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=52 bbWeight=0 PerfScore 0.00
G_M19780_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M19780_IG09: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
- ldr x1, [x1, #-0x10]
- str x1, [sp, #0x10]
+ ldr x1, [x1, #-0x08]
+ str x1, [sp, #0x18]
sub fp, x1, #96
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M19780_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- str x0, [fp, #0x18] // [V06 tmp2]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x20] // [V06 tmp2]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x18] // [V06 tmp2]
+ ldr x1, [fp, #0x20] // [V06 tmp2]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION
; gcrRegs -[x1]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
G_M19780_IG11: ; bbWeight=0, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M19780_IG12: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #96
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M19780_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V05 tmp1]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x28] // [V05 tmp1]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x20] // [V05 tmp1]
+ ldr x1, [fp, #0x28] // [V05 tmp1]
; gcrRegs +[x1]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x28] // [V03 loc1]
- ldr x0, [fp, #0x28] // [V03 loc1]
- str x0, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x30] // [V03 loc1]
+ ldr x0, [fp, #0x30] // [V03 loc1]
+ str x0, [fp, #0x38] // [V02 loc0]
adr x0, [G_M19780_IG04]
; gcrRegs -[x0]
;; size=40 bbWeight=1 PerfScore 16.50
G_M19780_IG14: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 364, prolog size 48, PerfScore 76.50, instruction count 91, allocated bytes for code 364 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
+; Total bytes of code 344, prolog size 44, PerfScore 73.00, instruction count 86, allocated bytes for code 344 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
; ============================================================
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 : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -193,10 +189,24 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0B save_reg X#0 Z#11 (0x0B); str x19, [sp, #88]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
E4 end
E4 end
+
+Unwind Info:
+ >> Start offset : 0xd1ffab1e (not in unwind data)
+ >> End offset : 0xd1ffab1e (not in unwind data)
+ Code Words : 1
+ Epilog Count : 0
+ E bit : 1
+ X bit : 0
+ Vers : 0
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ --- One epilog, unwind codes at 0
+ ---- Unwind codes ----
+ ---- Epilog start at index 0 ----
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
E4 end
...
-16 (-4.12%) : 203952.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)
@@ -5,46 +5,45 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]>
-; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
-; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]>
+; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M22620_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20]
- str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym]
- str x0, [fp, #0x68]
- str x0, [fp, #0x60] // [V00 TypeCtx]
- str x1, [fp, #0x50] // [V01 arg0]
- str x2, [fp, #0x58] // [V01 arg0+0x08]
- str x3, [fp, #0x48] // [V02 arg1]
- ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym]
+ str x0, [fp, #0x70]
+ str x0, [fp, #0x68] // [V00 TypeCtx]
+ str x1, [fp, #0x58] // [V01 arg0]
+ str x2, [fp, #0x60] // [V01 arg0+0x08]
+ str x3, [fp, #0x50] // [V02 arg1]
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08]
- ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08]
+ ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3]
ldr x3, [x3, #0x18]
; gcrRegs -[x3]
@@ -52,41 +51,41 @@ G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; byrRegs -[x1]
; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00
G_M22620_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3]
- ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3]
+ ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M22620_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2]
- ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2]
+ ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2]
- ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M22620_IG05
b G_M22620_IG07
;; size=76 bbWeight=1 PerfScore 34.00
G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -103,7 +102,7 @@ G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -112,35 +111,35 @@ G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x68] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
bne G_M22620_IG07
- ldr x0, [fp, #0x30] // [V05 loc2]
- ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2]
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M22620_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3]
- ldr x0, [fp, #0x10] // [V10 tmp3]
- ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3]
+ ldr x0, [fp, #0x18] // [V10 tmp3]
+ ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -157,37 +156,35 @@ G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M22620_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M22620_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1]
- ldr x0, [fp, #0x20] // [V08 tmp1]
- str x0, [fp, #0x38] // [V04 loc1]
- ldr x0, [fp, #0x38] // [V04 loc1]
- str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1]
+ ldr x0, [fp, #0x28] // [V08 tmp1]
+ str x0, [fp, #0x40] // [V04 loc1]
+ ldr x0, [fp, #0x40] // [V04 loc1]
+ str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M22620_IG03]
; gcrRegs -[x0]
;; size=24 bbWeight=1 PerfScore 7.50
G_M22620_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
; ============================================================
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 : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -195,12 +192,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
E4 end
- E4 end
- E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
@@ -210,13 +204,14 @@ Unwind Info:
E bit : 1
...
-16 (-4.12%) : 212008.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)
@@ -5,46 +5,45 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.Span`1[int]>
-; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]>
-; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
-; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.Span`1[int]>
+; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]>
+; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M57052_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20]
- str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym]
- str x0, [fp, #0x68]
- str x0, [fp, #0x60] // [V00 TypeCtx]
- str x1, [fp, #0x50] // [V01 arg0]
- str x2, [fp, #0x58] // [V01 arg0+0x08]
- str x3, [fp, #0x48] // [V02 arg1]
- ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym]
+ str x0, [fp, #0x70]
+ str x0, [fp, #0x68] // [V00 TypeCtx]
+ str x1, [fp, #0x58] // [V01 arg0]
+ str x2, [fp, #0x60] // [V01 arg0+0x08]
+ str x3, [fp, #0x50] // [V02 arg1]
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08]
- ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08]
+ ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3]
ldr x3, [x3, #0x18]
; gcrRegs -[x3]
@@ -52,41 +51,41 @@ G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; byrRegs -[x1]
; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00
G_M57052_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3]
- ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3]
+ ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M57052_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2]
- ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2]
+ ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2]
- ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M57052_IG05
b G_M57052_IG07
;; size=76 bbWeight=1 PerfScore 34.00
G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -103,7 +102,7 @@ G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -112,35 +111,35 @@ G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x68] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
bne G_M57052_IG07
- ldr x0, [fp, #0x30] // [V05 loc2]
- ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2]
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M57052_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3]
- ldr x0, [fp, #0x10] // [V10 tmp3]
- ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3]
+ ldr x0, [fp, #0x18] // [V10 tmp3]
+ ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -157,37 +156,35 @@ G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M57052_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M57052_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1]
- ldr x0, [fp, #0x20] // [V08 tmp1]
- str x0, [fp, #0x38] // [V04 loc1]
- ldr x0, [fp, #0x38] // [V04 loc1]
- str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1]
+ ldr x0, [fp, #0x28] // [V08 tmp1]
+ str x0, [fp, #0x40] // [V04 loc1]
+ ldr x0, [fp, #0x40] // [V04 loc1]
+ str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M57052_IG03]
; gcrRegs -[x0]
;; size=24 bbWeight=1 PerfScore 7.50
G_M57052_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
; ============================================================
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 : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -195,12 +192,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
E4 end
- E4 end
- E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
@@ -210,13 +204,14 @@ Unwind Info:
E bit : 1
...
+12 (+12.50%) : 496476.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
@@ -24,28 +24,31 @@ G_M34860_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str x0, [fp, #0x38] // [V00 this]
;; size=28 bbWeight=1 PerfScore 6.50
G_M34860_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x30] // [V01 arg1]
+ ldr d16, [fp, #0x30] // [V01 arg1]
+ fmov d0, d16
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
str d0, [fp, #0x18] // [V04 loc0]
- ldr d0, [fp, #0x28] // [V02 arg2]
- ldr d2, [fp, #0x20] // [V03 arg3]
+ ldr d16, [fp, #0x28] // [V02 arg2]
+ fmov d0, d16
+ ldr d16, [fp, #0x20] // [V03 arg3]
+ fmov d2, d16
ldr d1, [fp, #0x18] // [V04 loc0]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- ;; size=60 bbWeight=1 PerfScore 20.00
+ ;; size=72 bbWeight=1 PerfScore 21.50
G_M34860_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 28.50, instruction count 24, allocated bytes for code 96 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
+; Total bytes of code 108, prolog size 12, PerfScore 30.00, instruction count 27, allocated bytes for code 108 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
; ============================================================
Unwind Info:
@@ -56,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+14.29%) : 419326.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector128
1[double]):double (Tier0)
@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q0, [fp, #0x10] // [V00 arg0]
;; size=12 bbWeight=1 PerfScore 2.50
G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0]
- faddp d0, v0.2d
- ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0]
+ faddp d16, v16.2d
+ dup d0, v16.d[0]
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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 (+14.29%) : 419368.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector128
1[double]):double (Instrumented Tier0)
@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q0, [fp, #0x10] // [V00 arg0]
;; size=12 bbWeight=1 PerfScore 2.50
G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0]
- faddp d0, v0.2d
- ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0]
+ faddp d16, v16.2d
+ dup d0, v16.d[0]
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
-8 (-1.57%) : 13258.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple
2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
@@ -7,39 +7,38 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x60] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
-; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x48] do-not-enreg[] must-init
-; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x44] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x68] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x54] do-not-enreg[] must-init
+; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x50] do-not-enreg[] must-init
+; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x40] do-not-enreg[] "impSpillStackEnsure"
-; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x3C] do-not-enreg[] must-init
-; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init
-; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure"
-; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "impSpillStackEnsure"
-; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x48] do-not-enreg[] "impSpillStackEnsure"
+; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x44] do-not-enreg[] must-init
+; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init
+; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] "impSpillStackEnsure"
+; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "impSpillStackEnsure"
+; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure"
+; TEMP_01 ref -> [fp+0x18]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
- add x9, fp, #36
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
- str xzr, [x9, #0x20]
- str wzr, [x9, #0x28]
- str x0, [fp, #0x70] // [V00 this]
- str x1, [fp, #0x60] // [V01 arg1]
- str x2, [fp, #0x68] // [V01 arg1+0x08]
- str x3, [fp, #0x50] // [V02 arg2]
- str x4, [fp, #0x58] // [V02 arg2+0x08]
- ;; size=52 bbWeight=1 PerfScore 11.50
+ stp q16, q16, [x9, #0x20]
+ str x0, [fp, #0x78] // [V00 this]
+ str x1, [fp, #0x68] // [V01 arg1]
+ str x2, [fp, #0x70] // [V01 arg1+0x08]
+ str x3, [fp, #0x58] // [V02 arg2]
+ str x4, [fp, #0x60] // [V02 arg2+0x08]
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -53,9 +52,9 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x0, [fp, #0x60] // [V01 arg1]
+ ldr x0, [fp, #0x68] // [V01 arg1]
; gcrRegs +[x0]
- ldr x1, [fp, #0x50] // [V02 arg2]
+ ldr x1, [fp, #0x58] // [V02 arg2]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -64,49 +63,48 @@ G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- str w0, [fp, #0x40] // [V07 tmp1]
- ldr w1, [fp, #0x40] // [V07 tmp1]
- uxtb w1, w1
- str w1, [fp, #0x4C] // [V03 loc0]
- ldr w1, [fp, #0x4C] // [V03 loc0]
- cbz w1, G_M13185_IG05
+ str w0, [fp, #0x48] // [V07 tmp1]
+ ldr w0, [fp, #0x48] // [V07 tmp1]
+ uxtb w0, w0
+ str w0, [fp, #0x54] // [V03 loc0]
+ ldr w0, [fp, #0x54] // [V03 loc0]
+ cbz w0, G_M13185_IG05
nop
- str wzr, [fp, #0x48] // [V04 loc1]
+ str wzr, [fp, #0x50] // [V04 loc1]
nop
b G_M13185_IG11
;; size=72 bbWeight=1 PerfScore 20.50
G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
- ; gcrRegs +[x1]
- cbz x1, G_M13185_IG06
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
- cmp x1, #0
- cset x1, eq
- ; gcrRegs -[x1]
- str w1, [fp, #0x3C] // [V08 tmp2]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
+ ; gcrRegs +[x0]
+ cbz x0, G_M13185_IG06
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
+ cmp x0, #0
+ cset x0, eq
+ ; gcrRegs -[x0]
+ str w0, [fp, #0x44] // [V08 tmp2]
b G_M13185_IG07
;; size=28 bbWeight=1 PerfScore 8.00
G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1
- str w1, [fp, #0x3C] // [V08 tmp2]
+ mov w0, #1
+ str w0, [fp, #0x44] // [V08 tmp2]
;; size=8 bbWeight=1 PerfScore 1.50
G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w1, [fp, #0x3C] // [V08 tmp2]
- uxtb w1, w1
- str w1, [fp, #0x44] // [V05 loc2]
- ldr w1, [fp, #0x44] // [V05 loc2]
- cbz w1, G_M13185_IG08
+ ldr w0, [fp, #0x44] // [V08 tmp2]
+ uxtb w0, w0
+ str w0, [fp, #0x4C] // [V05 loc2]
+ ldr w0, [fp, #0x4C] // [V05 loc2]
+ cbz w0, G_M13185_IG08
nop
- add x1, fp, #96 // [V01 arg1]
+ add x1, fp, #104 // [V01 arg1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_BOX
; gcrRegs +[x0]
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- add x1, fp, #80 // [V02 arg2]
+ str x0, [fp, #0x18] // [TEMP_01]
+ add x1, fp, #88 // [V02 arg2]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
@@ -114,18 +112,20 @@ G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bl CORINFO_HELP_BOX
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x18] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
cset x0, eq
; gcrRegs -[x0]
- str w0, [fp, #0x48] // [V04 loc1]
+ str w0, [fp, #0x50] // [V04 loc1]
nop
b G_M13185_IG11
- ;; size=88 bbWeight=1 PerfScore 17.00
+ ;; size=92 bbWeight=1 PerfScore 19.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19]
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ; gcrRegs -[x1]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x1, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
@@ -133,9 +133,9 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1, #0x20]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x30] // [V09 tmp3]
- ldr x0, [fp, #0x58] // [V02 arg2+0x08]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ str x0, [fp, #0x38] // [V09 tmp3]
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
@@ -143,13 +143,13 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1, #0x20]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x28] // [V10 tmp4]
- ldr x0, [fp, #0x30] // [V09 tmp3]
- ldr x1, [fp, #0x28] // [V10 tmp4]
+ str x0, [fp, #0x30] // [V10 tmp4]
+ ldr x0, [fp, #0x38] // [V09 tmp3]
+ ldr x1, [fp, #0x30] // [V10 tmp4]
; gcrRegs +[x1]
cmp x0, x1
bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
movz x1, #0xD1FFAB1E // code for <unknown method>
; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
@@ -159,8 +159,8 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [fp, #0x20] // [V12 tmp6]
- ldr x0, [fp, #0x58] // [V02 arg2+0x08]
+ str w0, [fp, #0x28] // [V12 tmp6]
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -170,14 +170,14 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [fp, #0x1C] // [V13 tmp7]
- ldr w0, [fp, #0x20] // [V12 tmp6]
- ldr w1, [fp, #0x1C] // [V13 tmp7]
+ str w0, [fp, #0x24] // [V13 tmp7]
+ ldr w0, [fp, #0x28] // [V12 tmp6]
+ ldr w1, [fp, #0x24] // [V13 tmp7]
cmp w0, w1
bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -187,41 +187,40 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- str w0, [fp, #0x18] // [V14 tmp8]
- ldr w0, [fp, #0x18] // [V14 tmp8]
- str w0, [fp, #0x24] // [V11 tmp5]
+ str w0, [fp, #0x20] // [V14 tmp8]
+ ldr w0, [fp, #0x20] // [V14 tmp8]
+ str w0, [fp, #0x2C] // [V11 tmp5]
...
-4 (-1.15%) : 154971.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -5,75 +5,74 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x28] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init
-; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] must-init
+; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x40] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x30] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init
+; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] must-init
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call"
-; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "non-inline candidate call"
-; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x14] do-not-enreg[] "non-inline candidate call"
+; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "non-inline candidate call"
+; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "non-inline candidate call"
+; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call"
+; TEMP_01 int -> [fp+0x18]
;
-; Lcl frame size = 56
+; Lcl frame size = 64
G_M13983_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x50]!
- str x19, [sp, #0x48]
mov fp, sp
- str wzr, [fp, #0x24] // [V02 loc0]
- str wzr, [fp, #0x20] // [V03 loc1]
- str x0, [fp, #0x38] // [V00 arg0]
- str x1, [fp, #0x40] // [V00 arg0+0x08]
- str x2, [fp, #0x28] // [V01 arg1]
- str x3, [fp, #0x30] // [V01 arg1+0x08]
- ;; size=36 bbWeight=1 PerfScore 8.50
+ str wzr, [fp, #0x2C] // [V02 loc0]
+ str wzr, [fp, #0x28] // [V03 loc1]
+ str x0, [fp, #0x40] // [V00 arg0]
+ str x1, [fp, #0x48] // [V00 arg0+0x08]
+ str x2, [fp, #0x30] // [V01 arg1]
+ str x3, [fp, #0x38] // [V01 arg1+0x08]
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M13983_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- str w0, [fp, #0x1C] // [V05 tmp1]
- add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x24] // [V05 tmp1]
+ add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr w1, [fp, #0x1C] // [V05 tmp1]
+ ldr w1, [fp, #0x24] // [V05 tmp1]
cmp w0, w1
beq G_M13983_IG04
mov w0, wzr
;; size=68 bbWeight=1 PerfScore 17.00
G_M13983_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M13983_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- str w0, [fp, #0x18] // [V06 tmp2]
- add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x20] // [V06 tmp2]
+ add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr w1, [fp, #0x18] // [V06 tmp2]
+ ldr w1, [fp, #0x20] // [V06 tmp2]
eor w0, w0, w1
- str w0, [fp, #0x24] // [V02 loc0]
- str wzr, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x2C] // [V02 loc0]
+ str wzr, [fp, #0x28] // [V03 loc1]
b G_M13983_IG06
;; size=72 bbWeight=1 PerfScore 18.50
G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- add x0, fp, #56 // [V00 arg0]
- ldr w1, [fp, #0x20] // [V03 loc1]
+ add x0, fp, #64 // [V00 arg0]
+ ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -82,10 +81,11 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs +[x0]
ldrb w0, [x0]
; byrRegs -[x0]
- str w0, [fp, #0x14] // [V07 tmp3]
- ldr w19, [fp, #0x24] // [V02 loc0]
- add x0, fp, #40 // [V01 arg1]
- ldr w1, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x1C] // [V07 tmp3]
+ ldr w0, [fp, #0x2C] // [V02 loc0]
+ str w0, [fp, #0x18] // [TEMP_01]
+ add x0, fp, #48 // [V01 arg1]
+ ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -94,46 +94,46 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs +[x0]
ldrb w0, [x0]
; byrRegs -[x0]
- ldr w1, [fp, #0x14] // [V07 tmp3]
+ ldr w1, [fp, #0x1C] // [V07 tmp3]
eor w0, w0, w1
- orr w0, w19, w0
- str w0, [fp, #0x24] // [V02 loc0]
- ldr w0, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x18] // [TEMP_01]
+ orr w0, w1, w0
+ str w0, [fp, #0x2C] // [V02 loc0]
+ ldr w0, [fp, #0x28] // [V03 loc1]
add w0, w0, #1
- str w0, [fp, #0x20] // [V03 loc1]
- ;; size=100 bbWeight=1 PerfScore 32.50
+ str w0, [fp, #0x28] // [V03 loc1]
+ ;; size=108 bbWeight=1 PerfScore 35.50
G_M13983_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
- ldr w1, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x28] // [V03 loc1]
cmp w0, w1
bgt G_M13983_IG05
- ldr w0, [fp, #0x24] // [V02 loc0]
+ ldr w0, [fp, #0x2C] // [V02 loc0]
cmp w0, #0
cset x0, eq
;; size=48 bbWeight=1 PerfScore 12.50
G_M13983_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 348, prolog size 20, PerfScore 97.00, instruction count 87, allocated bytes for code 348 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 344, prolog size 16, PerfScore 95.00, instruction count 86, allocated bytes for code 344 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 87 (0x00057) Actual length = 348 (0x00015c)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -144,10 +144,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 09 save_reg X#0 Z#9 (0x09); str x19, [sp, #72]
89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
E4 end
- E4 end
- E4 end
+0 (0.00%) : 2033.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:.cctor() (MinOpts)
@@ -150,13 +150,13 @@ G_M31492_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
; byrRegs +[x0]
; gcr arg pop 0
- ldr x1, [x0]
- ; gcrRegs +[x1]
- str x1, [fp, #0x18] // [V08 tmp7]
- ldr x1, [fp, #0x18] // [V08 tmp7]
- ldr x0, [fp, #0x28] // [V06 tmp5]
+ ldr x0, [x0]
; gcrRegs +[x0]
; byrRegs -[x0]
+ str x0, [fp, #0x18] // [V08 tmp7]
+ ldr x1, [fp, #0x18] // [V08 tmp7]
+ ; gcrRegs +[x1]
+ ldr x0, [fp, #0x28] // [V06 tmp5]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
+4 (+2.50%) : 292624.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|1_0(byref,byref,int,int) (MinOpts)
@@ -36,25 +36,26 @@ G_M37733_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M37733_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- adds w1, w1, #1
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ adds w0, w0, #1
bvc G_M37733_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 8.00
G_M37733_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M37733_IG06
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 6.50
G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -76,13 +77,13 @@ G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=56 bbWeight=1 PerfScore 18.00
+ ;; size=60 bbWeight=1 PerfScore 18.50
G_M37733_IG07: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 24, PerfScore 46.00, instruction count 40, allocated bytes for code 160 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
+; Total bytes of code 164, prolog size 24, PerfScore 46.50, instruction count 41, allocated bytes for code 164 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -93,7 +94,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.86%) : 287185.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|35_0(byref,byref,int) (MinOpts)
@@ -34,19 +34,20 @@ G_M32397_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32397_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M32397_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 12.00
G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -67,13 +68,13 @@ G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M32397_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -84,7 +85,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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 (+2.86%) : 279999.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|83_0(byref,byref,int) (MinOpts)
@@ -34,19 +34,20 @@ G_M960_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M960_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M960_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 12.00
G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -67,13 +68,13 @@ G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M960_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -84,7 +85,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
realworld.run.linux.arm64.checked.mch
+0 (0.00%) : 1329.dasm - BenchmarkDotNet.Autogenerated.Runnable33:TrickTheJIT_():this (MinOpts)
@@ -45,14 +45,14 @@ G_M19025_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x3, [x3, #0x30]
blr x3
; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this]
- ; gcrRegs +[x8]
- str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this]
+ ; gcrRegs +[x1]
+ str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
+0 (0.00%) : 1513.dasm - BenchmarkDotNet.Autogenerated.Runnable5:ForDisassemblyDiagnoser_():System.Numerics.Vector`1[float]:this (MinOpts)
@@ -39,8 +39,8 @@ G_M16961_IG03: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M16961_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movi v0.4s, #0
- str q0, [fp, #0x10] // [V01 loc0]
+ movi v16.4s, #0
+ str q16, [fp, #0x10] // [V01 loc0]
ldr q0, [fp, #0x10] // [V01 loc0]
;; size=12 bbWeight=1 PerfScore 3.50
G_M16961_IG05: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 1605.dasm - BenchmarkDotNet.Autogenerated.Runnable29:TrickTheJIT_():this (MinOpts)
@@ -45,14 +45,14 @@ G_M43802_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x3, [x3, #0x30]
blr x3
; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this]
- ; gcrRegs +[x8]
- str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this]
+ ; gcrRegs +[x1]
+ str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
+0 (0.00%) : 1800.dasm - BenchmarkDotNet.Autogenerated.Runnable26:TrickTheJIT_():this (MinOpts)
@@ -45,14 +45,14 @@ G_M4149_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x3, [x3, #0x30]
blr x3
; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this]
- ; gcrRegs +[x8]
- str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this]
+ ; gcrRegs +[x1]
+ str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
+0 (0.00%) : 1872.dasm - BenchmarkDotNet.Autogenerated.Runnable37:TrickTheJIT_():this (MinOpts)
@@ -45,14 +45,14 @@ G_M64469_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x3, [x3, #0x30]
blr x3
; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this]
- ; gcrRegs +[x8]
- str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this]
+ ; gcrRegs +[x1]
+ str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
+0 (0.00%) : 2220.dasm - BenchmarkDotNet.Autogenerated.Runnable35:TrickTheJIT_():this (MinOpts)
@@ -45,14 +45,14 @@ G_M17559_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x3, [x3, #0x30]
blr x3
; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this]
- ; gcrRegs +[x8]
- str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this]
+ ; gcrRegs +[x1]
+ str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.linux.arm64.checked.mch |
252 |
0 |
0 |
252 |
-0 |
+0 |
benchmarks.run_pgo.linux.arm64.checked.mch |
21,672 |
242 |
590 |
20,840 |
-1,836 |
+3,328 |
benchmarks.run_tiered.linux.arm64.checked.mch |
20,613 |
233 |
425 |
19,955 |
-1,768 |
+2,388 |
coreclr_tests.run.linux.arm64.checked.mch |
147,716 |
4,497 |
7,026 |
136,193 |
-36,344 |
+179,820 |
libraries.crossgen2.linux.arm64.checked.mch |
5 |
0 |
0 |
5 |
-0 |
+0 |
libraries.pmi.linux.arm64.checked.mch |
1 |
0 |
0 |
1 |
-0 |
+0 |
libraries_tests.run.linux.arm64.Release.mch |
187,842 |
538 |
1,421 |
185,883 |
-6,496 |
+8,432 |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
11,768 |
2 |
30 |
11,736 |
-12 |
+120 |
realworld.run.linux.arm64.checked.mch |
26 |
0 |
0 |
26 |
-0 |
+0 |
smoke_tests.nativeaot.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
389,895 |
5,512 |
9,492 |
374,891 |
-46,456 |
+194,088 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.arm64.checked.mch |
34,613 |
3,148 |
31,465 |
239 (0.69%) |
239 (0.69%) |
benchmarks.run_pgo.linux.arm64.checked.mch |
150,972 |
59,296 |
91,676 |
132 (0.09%) |
132 (0.09%) |
benchmarks.run_tiered.linux.arm64.checked.mch |
71,125 |
53,989 |
17,136 |
82 (0.12%) |
82 (0.12%) |
coreclr_tests.run.linux.arm64.checked.mch |
626,766 |
383,796 |
242,970 |
455 (0.07%) |
455 (0.07%) |
libraries.crossgen2.linux.arm64.checked.mch |
234,183 |
15 |
234,168 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.linux.arm64.checked.mch |
293,130 |
6 |
293,124 |
1,913 (0.65%) |
1,913 (0.65%) |
libraries_tests.run.linux.arm64.Release.mch |
733,486 |
489,338 |
244,148 |
1,326 (0.18%) |
1,326 (0.18%) |
librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
302,704 |
21,560 |
281,144 |
2,093 (0.69%) |
2,093 (0.69%) |
realworld.run.linux.arm64.checked.mch |
32,765 |
85 |
32,680 |
338 (1.02%) |
338 (1.02%) |
smoke_tests.nativeaot.linux.arm64.checked.mch |
19,027 |
7 |
19,020 |
2 (0.01%) |
2 (0.01%) |
|
2,498,771 |
1,011,240 |
1,487,531 |
6,580 (0.26%) |
6,580 (0.26%) |
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: 15908516 (overridden on cmd)
Total bytes of diff: 15908516 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 58 unchanged.
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: 78672796 (overridden on cmd)
Total bytes of diff: 78674288 (overridden on cmd)
Total bytes of delta: 1492 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
152 : 2651.dasm (36.19 % of base)
152 : 31244.dasm (33.63 % of base)
68 : 11103.dasm (39.53 % of base)
48 : 48036.dasm (1.89 % of base)
48 : 38272.dasm (2.24 % of base)
40 : 139653.dasm (1.60 % of base)
40 : 139667.dasm (1.60 % of base)
24 : 31913.dasm (0.32 % of base)
24 : 36040.dasm (1.37 % of base)
24 : 36998.dasm (0.32 % of base)
16 : 48531.dasm (1.01 % of base)
16 : 5460.dasm (3.54 % of base)
16 : 147807.dasm (1.80 % of base)
16 : 140069.dasm (2.26 % of base)
16 : 20329.dasm (2.09 % of base)
16 : 21356.dasm (1.06 % of base)
16 : 29384.dasm (4.94 % of base)
16 : 60688.dasm (1.09 % of base)
16 : 66697.dasm (0.42 % of base)
12 : 22155.dasm (1.21 % of base)
Top file improvements (bytes):
-24 : 22522.dasm (-1.16 % of base)
-16 : 76242.dasm (-0.93 % of base)
-16 : 11967.dasm (-0.56 % of base)
-16 : 5313.dasm (-0.15 % of base)
-16 : 92985.dasm (-2.13 % of base)
-16 : 29182.dasm (-0.29 % of base)
-16 : 31941.dasm (-0.29 % of base)
-12 : 14864.dasm (-1.45 % of base)
-12 : 93964.dasm (-2.83 % of base)
-12 : 94375.dasm (-2.05 % of base)
-12 : 132267.dasm (-0.13 % of base)
-12 : 15246.dasm (-0.13 % of base)
-12 : 18384.dasm (-3.66 % of base)
-12 : 26063.dasm (-1.07 % of base)
-8 : 36005.dasm (-7.14 % of base)
-8 : 40993.dasm (-7.14 % of base)
-8 : 44057.dasm (-7.14 % of base)
-8 : 51317.dasm (-7.14 % of base)
-8 : 95873.dasm (-7.14 % of base)
-8 : 113829.dasm (-7.14 % of base)
75 total files with Code Size differences (39 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
152 (33.63 % of base) : 31244.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
152 (36.19 % of base) : 2651.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
68 (39.53 % of base) : 11103.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
48 (1.89 % of base) : 48036.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Instrumented Tier0)
48 (2.24 % of base) : 38272.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Tier0)
40 (1.60 % of base) : 139653.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
40 (1.60 % of base) : 139667.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
24 (0.32 % of base) : 36998.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
24 (0.32 % of base) : 31913.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
24 (1.37 % of base) : 36040.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
16 (0.42 % of base) : 66697.dasm - Neural:read_data_file():this (Instrumented Tier0)
16 (1.09 % of base) : 60688.dasm - NeuralJagged:Init() (Instrumented Tier0)
16 (1.01 % of base) : 48531.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Instrumented Tier0)
16 (1.06 % of base) : 21356.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
16 (4.94 % of base) : 29384.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
16 (2.09 % of base) : 20329.dasm - System.Security.Cryptography.TripleDesImplementation:GetAlgorithm(int,int):long (Tier0)
16 (1.80 % of base) : 147807.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
16 (2.26 % of base) : 140069.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Instrumented Tier0)
16 (3.54 % of base) : 5460.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
12 (1.21 % of base) : 22155.dasm - Interop+Crypto:CheckX509IpAddress(Microsoft.Win32.SafeHandles.SafeX509Handle,ubyte[],int,System.String,int):int (Tier0)
Top method improvements (bytes):
-24 (-1.16 % of base) : 22522.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Instrumented Tier0)
-16 (-0.29 % of base) : 29182.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
-16 (-0.29 % of base) : 31941.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
-16 (-0.93 % of base) : 76242.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
-16 (-0.56 % of base) : 11967.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
-16 (-0.15 % of base) : 5313.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
-16 (-2.13 % of base) : 92985.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
-12 (-2.05 % of base) : 94375.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
-12 (-2.83 % of base) : 93964.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-12 (-3.66 % of base) : 18384.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-12 (-1.07 % of base) : 26063.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
-12 (-1.45 % of base) : 14864.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
-12 (-0.13 % of base) : 132267.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Instrumented Tier0)
-12 (-0.13 % of base) : 15246.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
-8 (-5.71 % of base) : 11237.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:EqualsAllBenchmark():ubyte:this (Tier0)
-8 (-7.14 % of base) : 11573.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
-8 (-5.71 % of base) : 11721.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-8 (-7.14 % of base) : 27669.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
-8 (-7.14 % of base) : 40993.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:MinBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 40521.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
Top method regressions (percentages):
68 (39.53 % of base) : 11103.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
152 (36.19 % of base) : 2651.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
152 (33.63 % of base) : 31244.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
4 (11.11 % of base) : 19329.dasm - System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
4 (10.00 % of base) : 2230.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
4 (10.00 % of base) : 1280.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (10.00 % of base) : 7054.dasm - System.Math:CopySign(double,double):double (Tier0)
4 (10.00 % of base) : 55879.dasm - System.MathF:CopySign(float,float):float (Tier0)
4 (10.00 % of base) : 10394.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[uint,ushort](System.Numerics.Vector`1[uint],System.Numerics.Vector`1[uint]):System.Numerics.Vector`1[ushort] (Tier0)
4 (8.33 % of base) : 29102.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (6.67 % of base) : 45191.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
4 (6.25 % of base) : 80355.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
4 (6.25 % of base) : 76138.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
4 (6.25 % of base) : 110945.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
4 (5.26 % of base) : 30642.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
4 (5.26 % of base) : 57934.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
4 (5.00 % of base) : 124341.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
16 (4.94 % of base) : 29384.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
8 (4.88 % of base) : 30462.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 5167.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
Top method improvements (percentages):
-8 (-7.14 % of base) : 11573.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
-8 (-7.14 % of base) : 27669.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
-8 (-7.14 % of base) : 40993.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:MinBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 40521.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 18785.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:AddBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
-8 (-7.14 % of base) : 36005.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 113829.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 134081.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 147001.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 44057.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 51317.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 95873.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 114441.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 124017.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 22993.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 128737.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 142057.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 57017.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:BitwiseAndBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
-8 (-7.14 % of base) : 53689.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
-8 (-7.14 % of base) : 26657.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (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: 29592944 (overridden on cmd)
Total bytes of diff: 29593564 (overridden on cmd)
Total bytes of delta: 620 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
152 : 2420.dasm (36.19 % of base)
68 : 13823.dasm (39.53 % of base)
48 : 24446.dasm (2.24 % of base)
40 : 69146.dasm (1.85 % of base)
24 : 20477.dasm (0.35 % of base)
24 : 24845.dasm (0.35 % of base)
24 : 24191.dasm (1.37 % of base)
16 : 15543.dasm (2.09 % of base)
16 : 22341.dasm (4.94 % of base)
16 : 34905.dasm (1.14 % of base)
16 : 4922.dasm (3.54 % of base)
16 : 69152.dasm (2.48 % of base)
16 : 69653.dasm (1.94 % of base)
16 : 16326.dasm (1.06 % of base)
16 : 35819.dasm (0.43 % of base)
12 : 17227.dasm (1.21 % of base)
12 : 24487.dasm (0.86 % of base)
12 : 52336.dasm (0.71 % of base)
12 : 1176.dasm (0.50 % of base)
12 : 16593.dasm (1.05 % of base)
Top file improvements (bytes):
-24 : 17551.dasm (-1.34 % of base)
-20 : 6660.dasm (-1.37 % of base)
-16 : 19883.dasm (-0.33 % of base)
-16 : 4801.dasm (-0.19 % of base)
-16 : 49583.dasm (-2.13 % of base)
-16 : 10989.dasm (-0.62 % of base)
-12 : 11600.dasm (-1.45 % of base)
-12 : 11950.dasm (-0.13 % of base)
-12 : 50288.dasm (-2.83 % of base)
-12 : 8162.dasm (-3.66 % of base)
-12 : 21791.dasm (-1.07 % of base)
-8 : 18338.dasm (-7.14 % of base)
-8 : 21153.dasm (-7.14 % of base)
-8 : 21173.dasm (-6.67 % of base)
-8 : 22345.dasm (-7.14 % of base)
-8 : 24849.dasm (-5.71 % of base)
-8 : 25826.dasm (-7.14 % of base)
-8 : 29045.dasm (-7.14 % of base)
-8 : 31897.dasm (-7.14 % of base)
-8 : 5718.dasm (-7.14 % of base)
73 total files with Code Size differences (36 improved, 37 regressed), 20 unchanged.
Top method regressions (bytes):
152 (36.19 % of base) : 2420.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
68 (39.53 % of base) : 13823.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
48 (2.24 % of base) : 24446.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Tier0)
40 (1.85 % of base) : 69146.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0)
24 (0.35 % of base) : 24845.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Tier0)
24 (0.35 % of base) : 20477.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Tier0)
24 (1.37 % of base) : 24191.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
16 (0.43 % of base) : 35819.dasm - Neural:read_data_file():this (Tier0)
16 (1.14 % of base) : 34905.dasm - NeuralJagged:Init() (Tier0)
16 (1.06 % of base) : 16326.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
16 (4.94 % of base) : 22341.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
16 (2.09 % of base) : 15543.dasm - System.Security.Cryptography.TripleDesImplementation:GetAlgorithm(int,int):long (Tier0)
16 (1.94 % of base) : 69653.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
16 (2.48 % of base) : 69152.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Tier0)
16 (3.54 % of base) : 4922.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
12 (1.05 % of base) : 16593.dasm - Interop+Crypto:BioNewFile(System.String,System.String):Microsoft.Win32.SafeHandles.SafeBioHandle (Tier0)
12 (1.21 % of base) : 17227.dasm - Interop+Crypto:CheckX509IpAddress(Microsoft.Win32.SafeHandles.SafeX509Handle,ubyte[],int,System.String,int):int (Tier0)
12 (0.86 % of base) : 24487.dasm - Interop+Crypto:EcKeyCreateByKeyParameters(byref,System.String,ubyte[],int,ubyte[],int,ubyte[],int):int (Tier0)
12 (0.71 % of base) : 52336.dasm - Interop+Sys:ForkAndExecProcess(System.String,ulong,ulong,System.String,int,int,int,int,uint,uint,ulong,int,byref,byref,byref,byref):int (Tier0)
12 (0.50 % of base) : 1176.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)
Top method improvements (bytes):
-24 (-1.34 % of base) : 17551.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Tier0)
-20 (-1.37 % of base) : 6660.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
-16 (-0.33 % of base) : 19883.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Tier0)
-16 (-0.62 % of base) : 10989.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
-16 (-0.19 % of base) : 4801.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
-16 (-2.13 % of base) : 49583.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
-12 (-2.83 % of base) : 50288.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-12 (-3.66 % of base) : 8162.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-12 (-1.07 % of base) : 21791.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
-12 (-1.45 % of base) : 11600.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
-12 (-0.13 % of base) : 11950.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
-8 (-7.14 % of base) : 27953.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 21230.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
-8 (-7.14 % of base) : 26809.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 21053.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 5718.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:XorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-8 (-7.14 % of base) : 22746.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 22345.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:AndNotBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
-8 (-7.14 % of base) : 39313.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-5.71 % of base) : 21329.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanAnyBenchmark():ubyte:this (Tier0)
Top method regressions (percentages):
68 (39.53 % of base) : 13823.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
152 (36.19 % of base) : 2420.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
4 (11.11 % of base) : 10507.dasm - System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
4 (10.00 % of base) : 1152.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (10.00 % of base) : 12483.dasm - System.Math:CopySign(double,double):double (Tier0)
4 (10.00 % of base) : 33055.dasm - System.MathF:CopySign(float,float):float (Tier0)
4 (10.00 % of base) : 15049.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[uint,ushort](System.Numerics.Vector`1[uint],System.Numerics.Vector`1[uint]):System.Numerics.Vector`1[ushort] (Tier0)
4 (8.33 % of base) : 19805.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (6.67 % of base) : 28523.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
4 (6.25 % of base) : 42733.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
4 (6.25 % of base) : 57950.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
4 (5.26 % of base) : 19026.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
4 (5.26 % of base) : 33071.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
4 (5.00 % of base) : 61210.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
16 (4.94 % of base) : 22341.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
8 (4.88 % of base) : 18846.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 4687.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
4 (4.76 % of base) : 59411.dasm - System.Numerics.Tests.Perf_Quaternion:LengthBenchmark():float:this (Tier0)
4 (4.55 % of base) : 62538.dasm - System.Numerics.Tests.Perf_Vector2:LengthSquaredBenchmark():float:this (Tier0)
4 (4.55 % of base) : 37602.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SumBenchmark():float:this (Tier0)
Top method improvements (percentages):
-8 (-7.14 % of base) : 27953.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 21230.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
-8 (-7.14 % of base) : 26809.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 21053.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 5718.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:XorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-8 (-7.14 % of base) : 22746.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 22345.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:AndNotBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
-8 (-7.14 % of base) : 39313.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 68101.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 27217.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 29045.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 58441.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 31921.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 64285.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 18338.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
-8 (-7.14 % of base) : 32349.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ubyte]:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[ubyte]:this (Tier0)
-8 (-7.14 % of base) : 25826.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 31897.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
-8 (-7.14 % of base) : 18337.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
-8 (-7.14 % of base) : 21153.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (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: 508895360 (overridden on cmd)
Total bytes of diff: 509038836 (overridden on cmd)
Total bytes of delta: 143476 (0.03 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
860 : 7063.dasm (1.98 % of base)
860 : 7075.dasm (1.97 % of base)
860 : 7088.dasm (2.11 % of base)
860 : 7018.dasm (2.11 % of base)
860 : 7073.dasm (1.99 % of base)
860 : 7079.dasm (2.09 % of base)
860 : 7116.dasm (2.11 % of base)
860 : 6998.dasm (1.98 % of base)
860 : 7057.dasm (2.13 % of base)
860 : 7059.dasm (1.83 % of base)
860 : 7105.dasm (1.97 % of base)
860 : 7109.dasm (2.10 % of base)
808 : 284592.dasm (0.60 % of base)
784 : 284722.dasm (0.59 % of base)
784 : 286435.dasm (0.59 % of base)
784 : 286487.dasm (0.64 % of base)
756 : 295162.dasm (0.73 % of base)
720 : 294004.dasm (0.68 % of base)
672 : 294174.dasm (0.64 % of base)
672 : 295185.dasm (0.69 % of base)
Top file improvements (bytes):
-220 : 162861.dasm (-8.63 % of base)
-220 : 162911.dasm (-8.63 % of base)
-204 : 162871.dasm (-11.62 % of base)
-204 : 162901.dasm (-11.62 % of base)
-204 : 162921.dasm (-11.62 % of base)
-204 : 201420.dasm (-15.41 % of base)
-204 : 201452.dasm (-15.41 % of base)
-204 : 201508.dasm (-15.41 % of base)
-200 : 201409.dasm (-5.26 % of base)
-200 : 201463.dasm (-5.26 % of base)
-116 : 162479.dasm (-3.49 % of base)
-116 : 162693.dasm (-3.49 % of base)
-116 : 162710.dasm (-3.49 % of base)
-116 : 162725.dasm (-3.49 % of base)
-116 : 162735.dasm (-3.49 % of base)
-116 : 162849.dasm (-8.73 % of base)
-116 : 162881.dasm (-8.73 % of base)
-116 : 162931.dasm (-8.73 % of base)
-116 : 162489.dasm (-3.49 % of base)
-116 : 162447.dasm (-3.49 % of base)
67 total files with Code Size differences (27 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
860 (1.98 % of base) : 6998.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 7018.dasm - lclfldadd:TestEntryPoint():int (Tier0)
860 (2.13 % of base) : 7057.dasm - lclfldadd:TestEntryPoint():int (Tier0)
860 (1.83 % of base) : 7059.dasm - lclflddiv:TestEntryPoint():int (MinOpts)
860 (1.98 % of base) : 7063.dasm - lclflddiv:TestEntryPoint():int (Tier0)
860 (1.99 % of base) : 7073.dasm - lclflddiv:TestEntryPoint():int (Tier0)
860 (1.97 % of base) : 7075.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 7088.dasm - lclfldmul:TestEntryPoint():int (Tier0)
860 (2.09 % of base) : 7079.dasm - lclfldmul:TestEntryPoint():int (Tier0)
860 (1.97 % of base) : 7105.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 7116.dasm - lclfldsub:TestEntryPoint():int (Tier0)
860 (2.10 % of base) : 7109.dasm - lclfldsub:TestEntryPoint():int (Tier0)
808 (0.60 % of base) : 284592.dasm - i4div:TestEntryPoint():int (MinOpts)
784 (0.59 % of base) : 284722.dasm - i8div:TestEntryPoint():int (MinOpts)
784 (0.59 % of base) : 286435.dasm - u4div:TestEntryPoint():int (MinOpts)
784 (0.64 % of base) : 286487.dasm - u8div:TestEntryPoint():int (MinOpts)
756 (0.73 % of base) : 295162.dasm - u4div:TestEntryPoint():int (Tier0)
720 (0.68 % of base) : 294004.dasm - i4div:TestEntryPoint():int (Tier0)
672 (0.64 % of base) : 294174.dasm - i8div:TestEntryPoint():int (Tier0)
672 (0.69 % of base) : 295185.dasm - u8div:TestEntryPoint():int (Tier0)
Top method improvements (bytes):
-220 (-8.63 % of base) : 162861.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 162911.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 201420.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 162871.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 201452.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 162901.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 162921.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 201508.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
-200 (-5.26 % of base) : 201409.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
-200 (-5.26 % of base) : 201463.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
-116 (-3.49 % of base) : 162447.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt160:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 162489.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 162479.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt167:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 162693.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt160:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 162735.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 162710.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt163:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 162725.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt167:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-8.73 % of base) : 162849.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 162881.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 162931.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
Top method regressions (percentages):
52 (76.47 % of base) : 84212.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
52 (76.47 % of base) : 84186.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
52 (76.47 % of base) : 45988.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
52 (76.47 % of base) : 45961.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
44 (73.33 % of base) : 84160.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
44 (73.33 % of base) : 84135.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
44 (73.33 % of base) : 45934.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
44 (73.33 % of base) : 45896.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
36 (69.23 % of base) : 84110.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
36 (69.23 % of base) : 84086.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
36 (69.23 % of base) : 45863.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
36 (69.23 % of base) : 45835.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
184 (51.11 % of base) : 99764.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
184 (51.11 % of base) : 99792.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
184 (48.42 % of base) : 139079.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
184 (48.42 % of base) : 139116.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
176 (48.35 % of base) : 138834.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunStructLclFldScenario():this (Tier0)
176 (48.35 % of base) : 138871.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
52 (48.15 % of base) : 315289.dasm - Runtime_91209:Problem4():System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
176 (47.31 % of base) : 99631.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
Top method improvements (percentages):
-204 (-15.41 % of base) : 201420.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
-204 (-15.41 % of base) : 201452.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-15.41 % of base) : 201508.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 162871.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 162901.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 162921.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 162849.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 162881.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 162931.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 162861.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 162911.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
-112 (-6.83 % of base) : 201441.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
-112 (-6.83 % of base) : 201476.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (Instrumented Tier0)
-112 (-6.83 % of base) : 201497.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (Instrumented Tier0)
-8 (-6.67 % of base) : 317154.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
-12 (-6.12 % of base) : 317628.dasm - Performance_2700:TestEntryPoint():int (Tier0)
-200 (-5.26 % of base) : 201409.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
-200 (-5.26 % of base) : 201463.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
-16 (-5.06 % of base) : 230911.dasm - (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
-96 (-4.54 % of base) : 162437.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble3:RunBasicScenario(int,ubyte):this (MinOpts)
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: 55781064 (overridden on cmd)
Total bytes of diff: 55781064 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 5 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
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: 74608176 (overridden on cmd)
Total bytes of diff: 74608176 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
libraries_tests.run.linux.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 383838152 (overridden on cmd)
Total bytes of diff: 383840088 (overridden on cmd)
Total bytes of delta: 1936 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
624 : 454496.dasm (3.07 % of base)
128 : 498312.dasm (1.75 % of base)
112 : 500001.dasm (1.70 % of base)
88 : 500666.dasm (1.49 % of base)
64 : 499970.dasm (1.27 % of base)
64 : 501192.dasm (1.27 % of base)
64 : 499781.dasm (1.27 % of base)
64 : 501149.dasm (1.27 % of base)
64 : 500020.dasm (1.27 % of base)
52 : 501242.dasm (0.91 % of base)
48 : 404698.dasm (1.89 % of base)
48 : 116719.dasm (2.24 % of base)
48 : 293582.dasm (1.07 % of base)
40 : 499844.dasm (1.07 % of base)
40 : 474014.dasm (1.98 % of base)
32 : 501272.dasm (0.88 % of base)
28 : 85749.dasm (3.07 % of base)
24 : 117642.dasm (0.72 % of base)
24 : 298586.dasm (3.41 % of base)
24 : 368487.dasm (0.43 % of base)
Top file improvements (bytes):
-72 : 475429.dasm (-3.83 % of base)
-52 : 412052.dasm (-2.21 % of base)
-44 : 100976.dasm (-1.50 % of base)
-44 : 102435.dasm (-1.56 % of base)
-44 : 139051.dasm (-1.75 % of base)
-44 : 102361.dasm (-1.59 % of base)
-44 : 102397.dasm (-1.56 % of base)
-44 : 102282.dasm (-1.56 % of base)
-44 : 102368.dasm (-1.62 % of base)
-44 : 201546.dasm (-1.44 % of base)
-44 : 102356.dasm (-1.56 % of base)
-44 : 102402.dasm (-1.56 % of base)
-44 : 103381.dasm (-1.66 % of base)
-44 : 122578.dasm (-1.56 % of base)
-44 : 190889.dasm (-1.56 % of base)
-44 : 209756.dasm (-1.56 % of base)
-44 : 254622.dasm (-1.14 % of base)
-44 : 61280.dasm (-1.56 % of base)
-44 : 68407.dasm (-1.56 % of base)
-40 : 2733.dasm (-1.31 % of base)
78 total files with Code Size differences (38 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
624 (3.07 % of base) : 454496.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
128 (1.75 % of base) : 498312.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
112 (1.70 % of base) : 500001.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
88 (1.49 % of base) : 500666.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
64 (1.27 % of base) : 500020.dasm - System.Numerics.Tests.maxTest:RunMaxTests() (Instrumented Tier0)
64 (1.27 % of base) : 499781.dasm - System.Numerics.Tests.minTest:RunMinTests() (Instrumented Tier0)
64 (1.27 % of base) : 499970.dasm - System.Numerics.Tests.op_andTest:RunAndTests() (Instrumented Tier0)
64 (1.27 % of base) : 501149.dasm - System.Numerics.Tests.op_orTest:RunOrTests() (Instrumented Tier0)
64 (1.27 % of base) : 501192.dasm - System.Numerics.Tests.op_xorTest:RunXorTests() (Instrumented Tier0)
52 (0.91 % of base) : 501242.dasm - System.Numerics.Tests.op_multiplyTest:RunMultiplyTests() (Instrumented Tier0)
48 (1.07 % of base) : 293582.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.classes.simplename005.simplename005.NS1.Test:RunTest():ubyte:this (Tier0)
48 (1.89 % of base) : 404698.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Instrumented Tier0)
48 (2.24 % of base) : 116719.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Tier0)
40 (1.07 % of base) : 499844.dasm - System.Numerics.Tests.BigIntegerConstructorTest:RunCtorSingleTests() (Instrumented Tier0)
40 (1.98 % of base) : 474014.dasm - WebData.BaseLib.StringGen:GetIllegalXmlStringWithSeed(int,ubyte,int):System.String (Instrumented Tier0)
32 (0.88 % of base) : 501272.dasm - System.Numerics.Tests.gcdTest:RunGCDTests() (Instrumented Tier0)
28 (3.07 % of base) : 85749.dasm - Microsoft.CodeAnalysis.XmlDocumentationCommentTextReader+Reader:Read(ushort[],int,int):int:this (Tier0)
24 (0.72 % of base) : 117642.dasm - DryIoc.Factory:ApplyReuse(FastExpressionCompiler.LightExpression.Expression,DryIoc.Request):FastExpressionCompiler.LightExpression.Expression:this (Tier0)
24 (3.41 % of base) : 298586.dasm - FsCheck.Random:stdNext(FsCheck.Random+StdGen):System.Tuple`2[int,FsCheck.Random+StdGen] (Tier0)
24 (0.43 % of base) : 368487.dasm - System.Net.Quic.MsQuicApi:.cctor() (Tier0)
Top method improvements (bytes):
-72 (-3.83 % of base) : 475429.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
-52 (-2.21 % of base) : 412052.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
-44 (-1.14 % of base) : 254622.dasm - System.Xml.Schema.Compiler:CompileComplexType(System.Xml.Schema.XmlSchemaComplexType):this (Instrumented Tier0)
-44 (-1.56 % of base) : 209756.dasm - Xunit.Sdk.AssertEqualityComparer`1[byte]:Equals(byte,Xunit.Sdk.CollectionTracker,byte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.59 % of base) : 102361.dasm - Xunit.Sdk.AssertEqualityComparer`1[double]:Equals(double,Xunit.Sdk.CollectionTracker,double,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 102356.dasm - Xunit.Sdk.AssertEqualityComparer`1[float]:Equals(float,Xunit.Sdk.CollectionTracker,float,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 61280.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 68407.dasm - Xunit.Sdk.AssertEqualityComparer`1[long]:Equals(long,Xunit.Sdk.CollectionTracker,long,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 102282.dasm - Xunit.Sdk.AssertEqualityComparer`1[short]:Equals(short,Xunit.Sdk.CollectionTracker,short,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.50 % of base) : 100976.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.__Canon]:Equals(System.__Canon,Xunit.Sdk.CollectionTracker,System.__Canon,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.44 % of base) : 201546.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.75 % of base) : 139051.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Tier0)
-44 (-1.62 % of base) : 102368.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Decimal]:Equals(System.Decimal,Xunit.Sdk.CollectionTracker,System.Decimal,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.66 % of base) : 103381.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 122578.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 102397.dasm - Xunit.Sdk.AssertEqualityComparer`1[uint]:Equals(uint,Xunit.Sdk.CollectionTracker,uint,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 102402.dasm - Xunit.Sdk.AssertEqualityComparer`1[ulong]:Equals(ulong,Xunit.Sdk.CollectionTracker,ulong,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 102435.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 190889.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-40 (-1.31 % of base) : 2733.dasm - Xunit.Assert:Equal[int](int,int,System.Collections.Generic.IEqualityComparer`1[int]) (Tier0)
Top method regressions (percentages):
4 (14.29 % of base) : 419368.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
4 (14.29 % of base) : 419326.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
12 (12.50 % of base) : 496476.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
12 (12.50 % of base) : 496657.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Log2DoubleTest(double,double,double):this (Tier0)
12 (12.50 % of base) : 496358.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
12 (11.54 % of base) : 495649.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]) (Tier0)
12 (11.54 % of base) : 495714.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]) (Tier0)
4 (9.09 % of base) : 425247.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
4 (9.09 % of base) : 425053.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
4 (9.09 % of base) : 413486.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
4 (9.09 % of base) : 413085.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (9.09 % of base) : 427489.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[double](System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (Tier0)
4 (9.09 % of base) : 414799.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
4 (9.09 % of base) : 414559.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
4 (8.33 % of base) : 352010.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Instrumented Tier0)
4 (8.33 % of base) : 346481.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
4 (8.33 % of base) : 414427.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Instrumented Tier0)
4 (8.33 % of base) : 414068.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Tier0)
4 (6.67 % of base) : 496565.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64DoubleSumTest():this (Tier0)
4 (6.25 % of base) : 142364.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
Top method improvements (percentages):
-20 (-5.49 % of base) : 186747.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
-16 (-4.12 % of base) : 203952.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
-16 (-4.12 % of base) : 212008.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
-72 (-3.83 % of base) : 475429.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
-16 (-3.77 % of base) : 190303.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Instrumented Tier0)
-12 (-3.66 % of base) : 77408.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-8 (-3.64 % of base) : 72193.dasm - SharedTypes.IntWrapperWithNotification:RaiseInvokeSucceeded():this (Tier0)
-4 (-3.33 % of base) : 726471.dasm - System.Threading.ThreadPools.Tests.ThreadPoolTests+<>c:<ThreadPoolThreadCreationDoesNotTransferExecutionContext>b__37_1(System.Threading.AsyncLocalValueChangedArgs`1[int]):this (Tier0)
-12 (-2.83 % of base) : 19842.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-4 (-2.63 % of base) : 119864.dasm - Lamar.ServiceRegistry+<>c__22`1[System.__Canon]:<FindAndRemovePolicies>b__22_0(Microsoft.Extensions.DependencyInjection.ServiceDescriptor):ubyte:this (Tier0)
-12 (-2.54 % of base) : 206053.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Instrumented Tier0)
-12 (-2.54 % of base) : 524048.dasm - System.AssertExtensions:AssertThrows[System.__Canon,ushort](System.Span`1[ushort],System.AssertExtensions+AssertThrowsAction`1[ushort]):System.__Canon (Instrumented Tier0)
-4 (-2.50 % of base) : 256073.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlByte (Tier0)
-8 (-2.38 % of base) : 36626.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution+UnopEasyOut:OpKind(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):int (Tier0)
-4 (-2.38 % of base) : 252580.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlInt16 (Tier0)
-20 (-2.29 % of base) : 231415.dasm - System.ComponentModel.ReflectPropertyDescriptor:SetValue(System.Object,System.Object):this (Tier0)
-52 (-2.21 % of base) : 412052.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
-12 (-2.05 % of base) : 38970.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
-8 (-2.04 % of base) : 146757.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock:ShortenBranches(byref):this (Tier0)
-20 (-2.04 % of base) : 231510.dasm - System.ComponentModel.ReflectPropertyDescriptor:ResetValue(System.Object):this (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: 163129488 (overridden on cmd)
Total bytes of diff: 163129596 (overridden on cmd)
Total bytes of delta: 108 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
4 : 267660.dasm (2.38 % of base)
4 : 267661.dasm (2.50 % of base)
4 : 268104.dasm (2.38 % of base)
4 : 268123.dasm (2.50 % of base)
4 : 268167.dasm (2.50 % of base)
4 : 268195.dasm (2.50 % of base)
4 : 268482.dasm (2.50 % of base)
4 : 270432.dasm (2.50 % of base)
4 : 270803.dasm (2.38 % of base)
4 : 272101.dasm (2.50 % of base)
4 : 274420.dasm (2.50 % of base)
4 : 276424.dasm (2.50 % of base)
4 : 276844.dasm (2.38 % of base)
4 : 279200.dasm (2.38 % of base)
4 : 279988.dasm (2.50 % of base)
4 : 279999.dasm (2.86 % of base)
4 : 286779.dasm (2.50 % of base)
4 : 286788.dasm (2.38 % of base)
4 : 287185.dasm (2.86 % of base)
4 : 291259.dasm (2.50 % of base)
Top file improvements (bytes):
-8 : 13258.dasm (-1.57 % of base)
-4 : 154971.dasm (-1.15 % of base)
26 total files with Code Size differences (2 improved, 24 regressed), 37 unchanged.
Top method regressions (bytes):
4 (2.50 % of base) : 292624.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 272101.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 274420.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 268167.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 292646.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 267661.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 292647.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.86 % of base) : 287185.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
4 (2.50 % of base) : 286779.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 286788.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 268195.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 276424.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 267660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 268482.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 268104.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 276844.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 268123.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 291783.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|68_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 270432.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
Top method improvements (bytes):
-8 (-1.57 % of base) : 13258.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
-4 (-1.15 % of base) : 154971.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method regressions (percentages):
4 (2.86 % of base) : 287185.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
4 (2.86 % of base) : 279999.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
4 (2.50 % of base) : 292624.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 272101.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 274420.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 268167.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 292646.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 267661.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 286779.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 268195.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 276424.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 268482.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 268123.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 270432.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 279988.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|84_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 292647.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 286788.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 267660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 268104.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
Top method improvements (percentages):
-8 (-1.57 % of base) : 13258.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
-4 (-1.15 % of base) : 154971.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
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: 15368676 (overridden on cmd)
Total bytes of diff: 15368676 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 26 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
linux x64
Diffs are based on 2,505,340 contexts (977,766 MinOpts, 1,527,574 FullOpts).
MISSED contexts: 6,922 (0.28%)
Overall (-485,333 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.x64.checked.mch |
16,148,228 |
-5 |
benchmarks.run_pgo.linux.x64.checked.mch |
70,126,965 |
-18,248 |
benchmarks.run_tiered.linux.x64.checked.mch |
15,918,176 |
-11,382 |
coreclr_tests.run.linux.x64.checked.mch |
402,653,853 |
-237,129 |
libraries.crossgen2.linux.x64.checked.mch |
38,689,357 |
-4 |
libraries.pmi.linux.x64.checked.mch |
58,919,195 |
-13 |
libraries_tests.run.linux.x64.Release.mch |
339,819,743 |
-163,282 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
130,995,704 |
-54,244 |
realworld.run.linux.x64.checked.mch |
12,767,093 |
-1,026 |
smoke_tests.nativeaot.linux.x64.checked.mch |
4,192,959 |
+0 |
MinOpts (-485,333 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.x64.checked.mch |
264,173 |
-5 |
benchmarks.run_pgo.linux.x64.checked.mch |
21,310,577 |
-18,248 |
benchmarks.run_tiered.linux.x64.checked.mch |
12,281,125 |
-11,382 |
coreclr_tests.run.linux.x64.checked.mch |
279,538,531 |
-237,129 |
libraries.crossgen2.linux.x64.checked.mch |
1,202 |
-4 |
libraries.pmi.linux.x64.checked.mch |
112,870 |
-13 |
libraries_tests.run.linux.x64.Release.mch |
183,511,120 |
-163,282 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
10,658,448 |
-54,244 |
realworld.run.linux.x64.checked.mch |
386,910 |
-1,026 |
smoke_tests.nativeaot.linux.x64.checked.mch |
949 |
+0 |
Example diffs
benchmarks.run.linux.x64.checked.mch
-1 (-1.18%) : 36837.dasm - BenchmarkDotNet.Autogenerated.Runnable153:ForDisassemblyDiagnoser_():ubyte[]:this (MinOpts)
@@ -22,19 +22,19 @@ G_M31513_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x08], rdi
;; size=22 bbWeight=1 PerfScore 5.00
G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x44], 11
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x44], 11
jne SHORT G_M31513_IG04
- mov rdi, gword ptr [rbp-0x08]
- mov edi, dword ptr [rdi+0x40]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x0C], edi
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- movzx rdi, byte ptr [rdi+0x4C]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x10], edi
+ mov rax, gword ptr [rbp-0x08]
+ mov eax, dword ptr [rax+0x40]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x0C], eax
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ movzx rax, byte ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x10], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbp-0x0C]
@@ -42,7 +42,7 @@ G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rdi] +[rax]
nop
- ;; size=49 bbWeight=1 PerfScore 19.25
+ ;; size=48 bbWeight=1 PerfScore 19.25
G_M31513_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
@@ -59,7 +59,7 @@ G_M31513_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 85, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 85 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
+; Total bytes of code 84, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 84 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
; ============================================================
Unwind Info:
-1 (-1.18%) : 37053.dasm - BenchmarkDotNet.Autogenerated.Runnable153:ForDisassemblyDiagnoser_():ubyte[]:this (MinOpts)
@@ -22,19 +22,19 @@ G_M31513_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x08], rdi
;; size=22 bbWeight=1 PerfScore 5.00
G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x44], 11
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x44], 11
jne SHORT G_M31513_IG04
- mov rdi, gword ptr [rbp-0x08]
- mov edi, dword ptr [rdi+0x40]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x0C], edi
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- movzx rdi, byte ptr [rdi+0x4C]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x10], edi
+ mov rax, gword ptr [rbp-0x08]
+ mov eax, dword ptr [rax+0x40]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x0C], eax
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ movzx rax, byte ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x10], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbp-0x0C]
@@ -42,7 +42,7 @@ G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rdi] +[rax]
nop
- ;; size=49 bbWeight=1 PerfScore 19.25
+ ;; size=48 bbWeight=1 PerfScore 19.25
G_M31513_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
@@ -59,7 +59,7 @@ G_M31513_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 85, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 85 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
+; Total bytes of code 84, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 84 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
; ============================================================
Unwind Info:
-1 (-1.18%) : 41665.dasm - BenchmarkDotNet.Autogenerated.Runnable153:ForDisassemblyDiagnoser_():ubyte[]:this (MinOpts)
@@ -22,19 +22,19 @@ G_M31513_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x08], rdi
;; size=22 bbWeight=1 PerfScore 5.00
G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x44], 11
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x44], 11
jne SHORT G_M31513_IG04
- mov rdi, gword ptr [rbp-0x08]
- mov edi, dword ptr [rdi+0x40]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x0C], edi
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- movzx rdi, byte ptr [rdi+0x4C]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x10], edi
+ mov rax, gword ptr [rbp-0x08]
+ mov eax, dword ptr [rax+0x40]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x0C], eax
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ movzx rax, byte ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x10], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbp-0x0C]
@@ -42,7 +42,7 @@ G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rdi] +[rax]
nop
- ;; size=49 bbWeight=1 PerfScore 19.25
+ ;; size=48 bbWeight=1 PerfScore 19.25
G_M31513_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
@@ -59,7 +59,7 @@ G_M31513_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 85, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 85 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
+; Total bytes of code 84, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 84 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 42856.dasm - BenchmarkDotNet.Autogenerated.Runnable198:TrickTheJIT_():this (MinOpts)
@@ -40,12 +40,13 @@ G_M10145_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rax+0x48]
call [rax+0x30]<unknown method>
; gcrRegs -[rdi]
+ mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
+ mov dword ptr [rcx+0x74], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
- mov dword ptr [rdi+0x74], eax
- mov rdi, gword ptr [rbp-0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rcx rdi] +[rax]
nop
;; size=77 bbWeight=1 PerfScore 22.25
G_M10145_IG03: ; bbWeight=1, epilog, nogc, extend
+1 (+0.61%) : 11777.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -44,10 +44,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
lea rdi, [rbp-0x10]
call [<unknown method>]
mov dword ptr [rbp-0x24], eax
- xor edi, edi
- mov dword ptr [rbp-0x28], edi
- xor edi, edi
- mov dword ptr [rbp-0x2C], edi
+ xor eax, eax
+ mov dword ptr [rbp-0x28], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.00
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -55,24 +55,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
; byrRegs +[rax]
- movzx rdi, byte ptr [rax]
- mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20]
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x34]
sub ecx, eax
- or ecx, dword ptr [rbp-0x28]
- mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x28]
+ mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C]
inc eax
mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C]
- cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C]
+ cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x28], 0
@@ -84,7 +87,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
+1 (+0.61%) : 1542.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -44,10 +44,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
lea rdi, [rbp-0x10]
call [<unknown method>]
mov dword ptr [rbp-0x24], eax
- xor edi, edi
- mov dword ptr [rbp-0x28], edi
- xor edi, edi
- mov dword ptr [rbp-0x2C], edi
+ xor eax, eax
+ mov dword ptr [rbp-0x28], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.00
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -55,24 +55,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
; byrRegs +[rax]
- movzx rdi, byte ptr [rax]
- mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20]
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x34]
sub ecx, eax
- or ecx, dword ptr [rbp-0x28]
- mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x28]
+ mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C]
inc eax
mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C]
- cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C]
+ cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x28], 0
@@ -84,7 +87,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.linux.x64.checked.mch
-15 (-9.74%) : 27751.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10]
- movzx r9, r9b
- test r9d, r9d
+ mov eax, dword ptr [rbp+0x10]
+ movzx rax, al
+ test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d
- mov dword ptr [rbp-0x30], r9d
+ xor eax, eax
+ mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x30], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30]
- mov dword ptr [rbp-0x2C], r9d
- mov r9d, dword ptr [rbp-0x2C]
- mov dword ptr [rsp], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x08], r9d
- xor r9, r9
- ; gcrRegs +[r9]
- mov gword ptr [rsp+0x10], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
- mov dword ptr [rsp+0x18], r9d
- mov r9d, dword ptr [rbp-0x28]
- movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0x2C], eax
+ mov eax, dword ptr [rbp-0x2C]
+ mov dword ptr [rsp], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x08], eax
+ xor rax, rax
+ ; gcrRegs +[rax]
+ mov gword ptr [rsp+0x10], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rsp+0x18], eax
+ mov eax, dword ptr [rbp-0x28]
+ movzx r9, al
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rsi, gword ptr [rbp-0x10]
@@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rcx rdx rsi rdi]
nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================
Unwind Info:
-6 (-8.96%) : 110171.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
@@ -21,12 +21,12 @@ G_M42870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x14], edx
;; size=21 bbWeight=1 PerfScore 4.75
G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x14]
- movsx rdi, di
- ror di, 8
- movzx rdi, di
- movsx rdi, di
- mov dword ptr [rbp-0x20], edi
+ mov eax, dword ptr [rbp-0x14]
+ cwde
+ ror ax, 8
+ movzx rax, ax
+ cwde
+ mov dword ptr [rbp-0x20], eax
mov rdi, bword ptr [rbp-0x10]
; byrRegs +[rdi]
mov rsi, qword ptr [rbp-0x08]
@@ -34,14 +34,14 @@ G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; byrRegs -[rdi]
nop
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M42870_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 67, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
+; Total bytes of code 61, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 61 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
; ============================================================
Unwind Info:
-6 (-8.96%) : 4208.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
@@ -21,12 +21,12 @@ G_M42870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x14], edx
;; size=21 bbWeight=1 PerfScore 4.75
G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x14]
- movsx rdi, di
- ror di, 8
- movzx rdi, di
- movsx rdi, di
- mov dword ptr [rbp-0x20], edi
+ mov eax, dword ptr [rbp-0x14]
+ cwde
+ ror ax, 8
+ movzx rax, ax
+ cwde
+ mov dword ptr [rbp-0x20], eax
mov rdi, bword ptr [rbp-0x10]
; byrRegs +[rdi]
mov rsi, qword ptr [rbp-0x08]
@@ -34,14 +34,14 @@ G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; byrRegs -[rdi]
nop
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M42870_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 67, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
+; Total bytes of code 61, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 61 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
; ============================================================
Unwind Info:
+12 (+21.43%) : 84839.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -5,43 +5,48 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this
-; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this
+; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi
- mov bword ptr [rbp-0x18], rdi
- mov qword ptr [rbp-0x20], rsi
- ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax
+ mov qword ptr [rbp-0x20], rax
+ mov qword ptr [rbp-0x08], rsi
+ mov bword ptr [rbp-0x10], rdi
+ mov qword ptr [rbp-0x18], rsi
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18]
- ; byrRegs +[rdi]
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rdi, qword ptr [rbp-0x20]
- ; byrRegs -[rdi]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x20], rax
+ mov rdi, qword ptr [rbp-0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x20]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
- pop rbx
+ add rsp, 32
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 89076.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Instrumented Tier0)
@@ -5,43 +5,48 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this
-; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this
+; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi
- mov bword ptr [rbp-0x18], rdi
- mov qword ptr [rbp-0x20], rsi
- ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax
+ mov qword ptr [rbp-0x20], rax
+ mov qword ptr [rbp-0x08], rsi
+ mov bword ptr [rbp-0x10], rdi
+ mov qword ptr [rbp-0x18], rsi
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18]
- ; byrRegs +[rdi]
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rdi, qword ptr [rbp-0x20]
- ; byrRegs -[rdi]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x20], rax
+ mov rdi, qword ptr [rbp-0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x20]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
- pop rbx
+ add rsp, 32
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+16 (+21.62%) : 81439.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
@@ -8,54 +8,58 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Queue>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
+ sub rsp, 32
+ lea rbp, [rsp+0x20]
+ xor eax, eax
+ mov qword ptr [rbp-0x18], rax
mov gword ptr [rbp-0x08], rdi
mov dword ptr [rbp-0x0C], esi
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp-0x08]
; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x18], rax
+ mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp-0x08]
- mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10]
+ ; gcrRegs -[rcx]
+ mov eax, ecx
; gcrRegs -[rax]
add eax, dword ptr [rbp-0x0C]
- mov rdx, gword ptr [rbp-0x08]
- ; gcrRegs +[rdx]
- mov rdi, gword ptr [rdx+0x08]
- ; gcrRegs +[rdi]
+ mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
+ mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx]
- idiv edx:eax, dword ptr [rdi+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08]
+ mov rcx, gword ptr [rbp-0x18]
cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M41139_IG04
mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10]
+ ; byrRegs +[rax]
+ mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=45 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax]
+ ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rdi]
- ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 74 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================
Unwind Info:
@@ -68,5 +72,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
benchmarks.run_tiered.linux.x64.checked.mch
-15 (-9.74%) : 19867.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10]
- movzx r9, r9b
- test r9d, r9d
+ mov eax, dword ptr [rbp+0x10]
+ movzx rax, al
+ test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d
- mov dword ptr [rbp-0x30], r9d
+ xor eax, eax
+ mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x30], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30]
- mov dword ptr [rbp-0x2C], r9d
- mov r9d, dword ptr [rbp-0x2C]
- mov dword ptr [rsp], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x08], r9d
- xor r9, r9
- ; gcrRegs +[r9]
- mov gword ptr [rsp+0x10], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
- mov dword ptr [rsp+0x18], r9d
- mov r9d, dword ptr [rbp-0x28]
- movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0x2C], eax
+ mov eax, dword ptr [rbp-0x2C]
+ mov dword ptr [rsp], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x08], eax
+ xor rax, rax
+ ; gcrRegs +[rax]
+ mov gword ptr [rsp+0x10], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rsp+0x18], eax
+ mov eax, dword ptr [rbp-0x28]
+ movzx r9, al
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rsi, gword ptr [rbp-0x10]
@@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rcx rdx rsi rdi]
nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================
Unwind Info:
-6 (-8.96%) : 3945.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
@@ -21,12 +21,12 @@ G_M42870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x14], edx
;; size=21 bbWeight=1 PerfScore 4.75
G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x14]
- movsx rdi, di
- ror di, 8
- movzx rdi, di
- movsx rdi, di
- mov dword ptr [rbp-0x20], edi
+ mov eax, dword ptr [rbp-0x14]
+ cwde
+ ror ax, 8
+ movzx rax, ax
+ cwde
+ mov dword ptr [rbp-0x20], eax
mov rdi, bword ptr [rbp-0x10]
; byrRegs +[rdi]
mov rsi, qword ptr [rbp-0x08]
@@ -34,14 +34,14 @@ G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; byrRegs -[rdi]
nop
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M42870_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 67, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
+; Total bytes of code 61, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 61 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
; ============================================================
Unwind Info:
-5 (-6.25%) : 8446.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
@@ -20,14 +20,14 @@ G_M35089_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x0C], esi
;; size=17 bbWeight=1 PerfScore 3.75
G_M35089_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x0C]
- movsx rdi, di
- test edi, edi
+ mov eax, dword ptr [rbp-0x0C]
+ cwde
+ xor edi, edi
+ test eax, eax
setge dil
- movzx rdi, dil
call [<unknown method>]
- mov esi, dword ptr [rbp-0x0C]
- movsx rsi, si
+ mov eax, dword ptr [rbp-0x0C]
+ movsx rsi, ax
xor edi, edi
call [<unknown method>]
mov dword ptr [rbp-0x10], eax
@@ -38,14 +38,14 @@ G_M35089_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; byrRegs -[rdi]
nop
- ;; size=57 bbWeight=1 PerfScore 16.75
+ ;; size=52 bbWeight=1 PerfScore 16.75
G_M35089_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 80, prolog size 10, PerfScore 22.25, instruction count 24, allocated bytes for code 80 (MethodHash=ddbd76ee) for method System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
+; Total bytes of code 75, prolog size 10, PerfScore 22.25, instruction count 24, allocated bytes for code 75 (MethodHash=ddbd76ee) for method System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
; ============================================================
Unwind Info:
+11 (+20.75%) : 922.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,36 +7,40 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 byref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
+ sub rsp, 32
+ lea rbp, [rsp+0x20]
+ xor eax, eax
+ mov qword ptr [rbp-0x18], rax
mov qword ptr [rbp-0x08], rdi
mov qword ptr [rbp-0x10], rdi
- ;; size=18 bbWeight=1 PerfScore 3.75
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, qword ptr [rbp-0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov rcx, rax
- ; byrRegs +[rcx]
+ mov bword ptr [rbp-0x18], rax
mov eax, 512
; byrRegs -[rax]
- mov edi, 8
+ mov ecx, 8
xor edx, edx
- div edx:eax, edi
+ div edx:eax, ecx
+ mov rcx, bword ptr [rbp-0x18]
+ ; byrRegs +[rcx]
mov dword ptr [rcx+0x08], eax
- ;; size=29 bbWeight=1 PerfScore 29.00
+ ;; size=34 bbWeight=1 PerfScore 30.75
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 53, prolog size 14, PerfScore 34.50, instruction count 16, allocated bytes for code 53 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -49,5 +53,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 38546.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -5,43 +5,48 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this
-; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this
+; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi
- mov bword ptr [rbp-0x18], rdi
- mov qword ptr [rbp-0x20], rsi
- ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax
+ mov qword ptr [rbp-0x20], rax
+ mov qword ptr [rbp-0x08], rsi
+ mov bword ptr [rbp-0x10], rdi
+ mov qword ptr [rbp-0x18], rsi
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18]
- ; byrRegs +[rdi]
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rdi, qword ptr [rbp-0x20]
- ; byrRegs -[rdi]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x20], rax
+ mov rdi, qword ptr [rbp-0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x20]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
- pop rbx
+ add rsp, 32
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+16 (+21.62%) : 34315.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
@@ -8,54 +8,58 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Queue>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
+ sub rsp, 32
+ lea rbp, [rsp+0x20]
+ xor eax, eax
+ mov qword ptr [rbp-0x18], rax
mov gword ptr [rbp-0x08], rdi
mov dword ptr [rbp-0x0C], esi
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp-0x08]
; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x18], rax
+ mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp-0x08]
- mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10]
+ ; gcrRegs -[rcx]
+ mov eax, ecx
; gcrRegs -[rax]
add eax, dword ptr [rbp-0x0C]
- mov rdx, gword ptr [rbp-0x08]
- ; gcrRegs +[rdx]
- mov rdi, gword ptr [rdx+0x08]
- ; gcrRegs +[rdi]
+ mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
+ mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx]
- idiv edx:eax, dword ptr [rdi+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08]
+ mov rcx, gword ptr [rbp-0x18]
cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M41139_IG04
mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10]
+ ; byrRegs +[rax]
+ mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=45 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax]
+ ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rdi]
- ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 74 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================
Unwind Info:
@@ -68,5 +72,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
coreclr_tests.run.linux.x64.checked.mch
-15 (-9.74%) : 230953.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10]
- movzx r9, r9b
- test r9d, r9d
+ mov eax, dword ptr [rbp+0x10]
+ movzx rax, al
+ test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d
- mov dword ptr [rbp-0x30], r9d
+ xor eax, eax
+ mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x30], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30]
- mov dword ptr [rbp-0x2C], r9d
- mov r9d, dword ptr [rbp-0x2C]
- mov dword ptr [rsp], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x08], r9d
- xor r9, r9
- ; gcrRegs +[r9]
- mov gword ptr [rsp+0x10], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
- mov dword ptr [rsp+0x18], r9d
- mov r9d, dword ptr [rbp-0x28]
- movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0x2C], eax
+ mov eax, dword ptr [rbp-0x2C]
+ mov dword ptr [rsp], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x08], eax
+ xor rax, rax
+ ; gcrRegs +[rax]
+ mov gword ptr [rsp+0x10], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rsp+0x18], eax
+ mov eax, dword ptr [rbp-0x28]
+ movzx r9, al
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rsi, gword ptr [rbp-0x10]
@@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rcx rdx rsi rdi]
nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================
Unwind Info:
-6 (-8.70%) : 355481.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
@@ -19,30 +19,30 @@ G_M18391_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x0C], esi
;; size=17 bbWeight=1 PerfScore 3.75
G_M18391_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov esi, dword ptr [rbp-0x0C]
- movsx rsi, si
- movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C]
+ cwde
+ movzx rsi, al
mov rdi, bword ptr [rbp-0x08]
; byrRegs +[rdi]
call [<unknown method>]
; byrRegs -[rdi]
- mov esi, dword ptr [rbp-0x0C]
- movsx rsi, si
- sar esi, 8
- movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C]
+ cwde
+ sar eax, 8
+ movzx rsi, al
mov rdi, bword ptr [rbp-0x08]
; byrRegs +[rdi]
call [<unknown method>]
; byrRegs -[rdi]
nop
- ;; size=46 bbWeight=1 PerfScore 11.75
+ ;; size=40 bbWeight=1 PerfScore 11.75
G_M18391_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 69, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 69 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
+; Total bytes of code 63, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 63 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
; ============================================================
Unwind Info:
-6 (-8.70%) : 391139.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
@@ -19,30 +19,30 @@ G_M18391_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x0C], esi
;; size=17 bbWeight=1 PerfScore 3.75
G_M18391_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov esi, dword ptr [rbp-0x0C]
- movsx rsi, si
- movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C]
+ cwde
+ movzx rsi, al
mov rdi, bword ptr [rbp-0x08]
; byrRegs +[rdi]
call [<unknown method>]
; byrRegs -[rdi]
- mov esi, dword ptr [rbp-0x0C]
- movsx rsi, si
- sar esi, 8
- movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C]
+ cwde
+ sar eax, 8
+ movzx rsi, al
mov rdi, bword ptr [rbp-0x08]
; byrRegs +[rdi]
call [<unknown method>]
; byrRegs -[rdi]
nop
- ;; size=46 bbWeight=1 PerfScore 11.75
+ ;; size=40 bbWeight=1 PerfScore 11.75
G_M18391_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 69, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 69 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
+; Total bytes of code 63, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 63 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
; ============================================================
Unwind Info:
+12 (+21.43%) : 224438.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -5,43 +5,48 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this
-; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this
+; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi
- mov bword ptr [rbp-0x18], rdi
- mov qword ptr [rbp-0x20], rsi
- ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax
+ mov qword ptr [rbp-0x20], rax
+ mov qword ptr [rbp-0x08], rsi
+ mov bword ptr [rbp-0x10], rdi
+ mov qword ptr [rbp-0x18], rsi
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18]
- ; byrRegs +[rdi]
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rdi, qword ptr [rbp-0x20]
- ; byrRegs -[rdi]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x20], rax
+ mov rdi, qword ptr [rbp-0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x20]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
- pop rbx
+ add rsp, 32
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 229250.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Instrumented Tier0)
@@ -5,43 +5,48 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this
-; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this
+; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi
- mov bword ptr [rbp-0x18], rdi
- mov qword ptr [rbp-0x20], rsi
- ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax
+ mov qword ptr [rbp-0x20], rax
+ mov qword ptr [rbp-0x08], rsi
+ mov bword ptr [rbp-0x10], rdi
+ mov qword ptr [rbp-0x18], rsi
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18]
- ; byrRegs +[rdi]
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rdi, qword ptr [rbp-0x20]
- ; byrRegs -[rdi]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x20], rax
+ mov rdi, qword ptr [rbp-0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x20]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24
- pop rbx
+ add rsp, 32
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+15 (+22.73%) : 360073.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
@@ -5,40 +5,43 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <Internal.TypeSystem.MethodSignature>
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Internal.TypeSystem.MethodSignature>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M16988_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- push rax
+ sub rsp, 16
lea rbp, [rsp+0x10]
- mov gword ptr [rbp-0x10], rdi
- ;; size=12 bbWeight=1 PerfScore 4.50
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov gword ptr [rbp-0x08], rdi
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M16988_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x10]
- ; gcrRegs +[rdi]
- mov rbx, gword ptr [rdi+0x18]
- ; gcrRegs +[rbx]
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov rax, gword ptr [rax+0x18]
+ mov gword ptr [rbp-0x10], rax
mov rdi, 0xD1FFAB1E
- ; gcrRegs -[rdi]
mov esi, 80
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rbx, gword ptr [rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax]
sete al
movzx rax, al
- ;; size=47 bbWeight=1 PerfScore 9.00
+ ;; size=55 bbWeight=1 PerfScore 11.00
G_M16988_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
- pop rbx
+ add rsp, 16
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 66, prolog size 8, PerfScore 15.75, instruction count 18, allocated bytes for code 66 (MethodHash=956fbda3) for method Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
+; Total bytes of code 81, prolog size 16, PerfScore 16.75, instruction count 20, allocated bytes for code 81 (MethodHash=956fbda3) for method Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -46,11 +49,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
libraries.crossgen2.linux.x64.checked.mch
-2 (-1.79%) : 22837.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
@@ -27,24 +27,24 @@ G_M28342_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rdi, [rbp-0x10]
call [<unknown method>]
- cvttsd2si rdi, xmm0
- mov qword ptr [rbp-0x18], rdi
- mov edi, -1
- movsxd rdi, edi
- cmp qword ptr [rbp-0x18], rdi
+ cvttsd2si rax, xmm0
+ mov qword ptr [rbp-0x18], rax
+ mov eax, -1
+ cdqe
+ cmp qword ptr [rbp-0x18], rax
jl SHORT G_M28342_IG03
- mov edi, 0xD1FFAB1E
- movsxd rdi, edi
- cmp qword ptr [rbp-0x18], rdi
+ mov eax, 0xD1FFAB1E
+ cdqe
+ cmp qword ptr [rbp-0x18], rax
jle SHORT G_M28342_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 62
call [<unknown method>]
;; size=11 bbWeight=1 PerfScore 3.25
G_M28342_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov gword ptr [rbp-0x20], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbp-0x18]
@@ -60,7 +60,7 @@ G_M28342_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
; ============================================================
Unwind Info:
-2 (-1.79%) : 22842.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
@@ -27,24 +27,24 @@ G_M50957_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rdi, [rbp-0x10]
call [<unknown method>]
- cvttsd2si rdi, xmm0
- mov qword ptr [rbp-0x18], rdi
- mov edi, -1
- movsxd rdi, edi
- cmp qword ptr [rbp-0x18], rdi
+ cvttsd2si rax, xmm0
+ mov qword ptr [rbp-0x18], rax
+ mov eax, -1
+ cdqe
+ cmp qword ptr [rbp-0x18], rax
jl SHORT G_M50957_IG03
- mov edi, 0xD1FFAB1E
- movsxd rdi, edi
- cmp qword ptr [rbp-0x18], rdi
+ mov eax, 0xD1FFAB1E
+ cdqe
+ cmp qword ptr [rbp-0x18], rax
jle SHORT G_M50957_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edi, 62
call [<unknown method>]
;; size=11 bbWeight=1 PerfScore 3.25
G_M50957_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov gword ptr [rbp-0x20], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbp-0x18]
@@ -60,7 +60,7 @@ G_M50957_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
; ============================================================
Unwind Info:
-1 (-0.93%) : 22841.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
@@ -24,8 +24,8 @@ G_M30483_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x08], rdi
;; size=20 bbWeight=1 PerfScore 4.00
G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xor edi, edi
- mov gword ptr [rbp-0x18], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rdx, gword ptr [rbp-0x18]
@@ -34,23 +34,23 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rdx rdi]
mov dword ptr [rbp-0x0C], eax
- mov rsi, gword ptr [rbp-0x08]
- ; gcrRegs +[rsi]
- cmp dword ptr [rsi+0x08], 0
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x08], 0
je SHORT G_M30483_IG03
- xor esi, esi
- ; gcrRegs -[rsi]
+ xor eax, eax
+ ; gcrRegs -[rax]
cmp dword ptr [rbp-0x0C], -1
- setne sil
- mov dword ptr [rbp-0x1C], esi
+ setne al
+ mov dword ptr [rbp-0x1C], eax
jmp SHORT G_M30483_IG04
- ;; size=53 bbWeight=1 PerfScore 18.75
+ ;; size=52 bbWeight=1 PerfScore 18.75
G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x1C], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rsi, qword ptr [(reloc)] ; const ptr
- mov rsi, gword ptr [rsi]
+ mov rax, qword ptr [(reloc)] ; const ptr
+ mov rsi, gword ptr [rax]
; gcrRegs +[rsi]
mov edi, dword ptr [rbp-0x1C]
call [<unknown method>]
@@ -63,7 +63,7 @@ G_M30483_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 108, prolog size 16, PerfScore 34.50, instruction count 30, allocated bytes for code 108 (MethodHash=1f4588ec) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
+; Total bytes of code 107, prolog size 16, PerfScore 34.50, instruction count 30, allocated bytes for code 107 (MethodHash=1f4588ec) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 22836.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -23,8 +23,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x08], rdi
;; size=20 bbWeight=1 PerfScore 4.00
G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov gword ptr [rbp-0x18], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rdx, gword ptr [rbp-0x18]
@@ -33,8 +33,8 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rdx rdi]
mov dword ptr [rbp-0x0C], eax
- mov rsi, qword ptr [(reloc)] ; const ptr
- mov rsi, gword ptr [rsi]
+ mov rax, qword ptr [(reloc)] ; const ptr
+ mov rsi, gword ptr [rax]
; gcrRegs +[rsi]
mov edi, dword ptr [rbp-0x0C]
call [<unknown method>]
+0 (0.00%) : 22844.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],int):int (MinOpts)
@@ -24,8 +24,8 @@ G_M44268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x0C], esi
;; size=23 bbWeight=1 PerfScore 5.00
G_M44268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov gword ptr [rbp-0x18], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbp-0x0C]
+1 (+0.61%) : 153101.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -46,10 +46,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
lea rdi, [rbp-0x10]
call [<unknown method>]
mov dword ptr [rbp-0x24], eax
- xor edi, edi
- mov dword ptr [rbp-0x28], edi
- xor edi, edi
- mov dword ptr [rbp-0x2C], edi
+ xor eax, eax
+ mov dword ptr [rbp-0x28], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.00
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -57,24 +57,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
; byrRegs +[rax]
- movzx rdi, byte ptr [rax]
- mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20]
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x34]
sub ecx, eax
- or ecx, dword ptr [rbp-0x28]
- mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x28]
+ mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C]
inc eax
mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C]
- cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C]
+ cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x28], 0
@@ -86,7 +89,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
libraries.pmi.linux.x64.checked.mch
-14 (-0.01%) : 4014.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
@@ -1340,33 +1340,33 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x18], rax
cmp gword ptr [rbp-0x18], 0
je SHORT G_M12913_IG05
- mov rdx, gword ptr [rbp-0x18]
- ; gcrRegs +[rdx]
- mov rdx, gword ptr [rdx+0x08]
- mov gword ptr [rbp-0x20], rdx
+ mov rax, gword ptr [rbp-0x18]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x20], rax
;; size=33 bbWeight=1 PerfScore 12.00
G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdx]
- mov rdx, gword ptr [rbp-0x08]
+ ; gcrRegs -[rax]
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov rdx, gword ptr [rax+0x08]
; gcrRegs +[rdx]
- mov rdx, gword ptr [rdx+0x08]
mov rsi, gword ptr [rbp-0x20]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown method>
call [<unknown method>]
- ; gcrRegs -[rdx rsi] +[rax]
+ ; gcrRegs -[rdx rsi]
; gcr arg pop 0
mov gword ptr [rbp-0x28], rax
;; size=32 bbWeight=1 PerfScore 8.25
G_M12913_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- mov rdi, gword ptr [rbp-0x28]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x13D0], rdi
+ mov rax, gword ptr [rbp-0x28]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x13D0], rax
jmp G_M12913_IG764
;; size=16 bbWeight=1 PerfScore 4.00
G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
call [<unknown method>]
@@ -1375,16 +1375,16 @@ G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x50], rax
cmp gword ptr [rbp-0x50], 0
je SHORT G_M12913_IG06
- mov rdi, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x50]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x58], rax
- mov rdi, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x50]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
@@ -1425,16 +1425,16 @@ G_M12913_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x68], rax
cmp gword ptr [rbp-0x68], 0
je SHORT G_M12913_IG07
- mov rdi, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x58], rax
- mov rdi, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
@@ -1475,16 +1475,16 @@ G_M12913_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x70], rax
cmp gword ptr [rbp-0x70], 0
je SHORT G_M12913_IG08
- mov rdi, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x70]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x78], rax
- mov rdi, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x70]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
@@ -1519,9 +1519,9 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x88], rax
cmp gword ptr [rbp-0x88], 0
je G_M12913_IG14
- mov rdi, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rbp-0x88]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
@@ -1538,47 +1538,45 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x90], rax
cmp gword ptr [rbp-0x90], 0
je SHORT G_M12913_IG09
- mov rdi, gword ptr [rbp-0x90]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x08], 1
- sete dil
- ; gcrRegs -[rdi]
- movzx rdi, dil
- mov dword ptr [rbp-0x137C], edi
- jmp SHORT G_M12913_IG10
- ;; size=154 bbWeight=1 PerfScore 46.25
-G_M12913_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov rax, gword ptr [rbp-0x90]
+ cmp dword ptr [rax+0x08], 1
+ sete al
; gcrRegs -[rax]
- xor edi, edi
- mov dword ptr [rbp-0x137C], edi
+ movzx rax, al
+ mov dword ptr [rbp-0x137C], eax
+ jmp SHORT G_M12913_IG10
+ ;; size=152 bbWeight=1 PerfScore 46.25
+G_M12913_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [rbp-0x137C], eax
;; size=8 bbWeight=1 PerfScore 1.25
G_M12913_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbp-0x137C], 0
je G_M12913_IG13
- mov rdi, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rbp-0x88]
+ ; gcrRegs +[rax]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
; gcr arg pop 0
cmp gword ptr [rax+0x10], 0
je G_M12913_IG12
- mov rdi, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rbp-0x88]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x98], rax
- mov rdi, gword ptr [rbp-0x98]
- ; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x10]
- cmp gword ptr [rdi+0x10], 0
+ mov rax, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rax+0x10]
+ cmp gword ptr [rax+0x10], 0
jne SHORT G_M12913_IG11
jmp G_M12913_IG15
;; size=88 bbWeight=1 PerfScore 29.00
G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdi]
+ ; gcrRegs -[rax]
mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
call [<unknown method>]
@@ -1587,27 +1585,26 @@ G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0xA0], rax
cmp gword ptr [rbp-0xA0], 0
je G_M12913_IG19
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x1398], rax
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x80], rax
- mov rdi, gword ptr [rbp-0x1398]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x58], rdi
+ mov rax, gword ptr [rbp-0x1398]
+ mov gword ptr [rbp-0x58], rax
jmp G_M12913_IG16
;; size=92 bbWeight=1 PerfScore 26.00
G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdi]
+ ; gcrRegs -[rax]
mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
call [<unknown method>]
@@ -1616,27 +1613,26 @@ G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0xA0], rax
cmp gword ptr [rbp-0xA0], 0
je G_M12913_IG19
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x1390], rax
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x80], rax
- mov rdi, gword ptr [rbp-0x1390]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x58], rdi
+ mov rax, gword ptr [rbp-0x1390]
...
+1 (+0.61%) : 253199.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -44,10 +44,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
lea rdi, [rbp-0x10]
call [<unknown method>]
mov dword ptr [rbp-0x24], eax
- xor edi, edi
- mov dword ptr [rbp-0x28], edi
- xor edi, edi
- mov dword ptr [rbp-0x2C], edi
+ xor eax, eax
+ mov dword ptr [rbp-0x28], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.00
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -55,24 +55,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
; byrRegs +[rax]
- movzx rdi, byte ptr [rax]
- mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20]
mov esi, dword ptr [rbp-0x2C]
call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x34]
sub ecx, eax
- or ecx, dword ptr [rbp-0x28]
- mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x28]
+ mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C]
inc eax
mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C]
- cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C]
+ cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x28], 0
@@ -84,7 +87,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
libraries_tests.run.linux.x64.Release.mch
-41 (-14.96%) : 145785.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
@@ -26,86 +26,86 @@ G_M34103_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x0C], esi
;; size=31 bbWeight=1 PerfScore 6.00
G_M34103_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- xor edi, edi
- mov qword ptr [r9], rdi
- mov r9, bword ptr [rbp-0x08]
- mov edi, dword ptr [rbp-0x0C]
- mov dword ptr [r9], edi
- mov r9, bword ptr [rbp-0x08]
- cmp dword ptr [r9], 0
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ xor ecx, ecx
+ mov qword ptr [rax], rcx
+ mov rax, bword ptr [rbp-0x08]
+ mov ecx, dword ptr [rbp-0x0C]
+ mov dword ptr [rax], ecx
+ mov rax, bword ptr [rbp-0x08]
+ cmp dword ptr [rax], 0
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x10], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ cmp dword ptr [rax], 1
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x18], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ cmp dword ptr [rax], 2
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x14], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x20], eax
+ xor eax, eax
+ mov dword ptr [rsp], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x08], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x10], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ cmp dword ptr [rax], 4
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rsp+0x18], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x20], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp-0x14]
+ mov dword ptr [rsp+0x30], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x38], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x40], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x48], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x50], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ xor r9d, r9d
+ cmp dword ptr [rax], 3
sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rbp-0x10], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 1
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rbp-0x18], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 2
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rbp-0x14], r9d
- xor r9d, r9d
- mov dword ptr [rbp-0x20], r9d
- xor r9d, r9d
- mov dword ptr [rsp], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x08], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x10], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 4
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rsp+0x18], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x20], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x28], r9d
- mov r9d, dword ptr [rbp-0x14]
- mov dword ptr [rsp+0x30], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x38], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x40], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x48], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x50], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 3
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
lea rdi, [rbp-0x20]
mov esi, dword ptr [rbp-0x18]
mov edx, dword ptr [rbp-0x10]
xor ecx, ecx
xor r8d, r8d
call [<unknown method>]
+ ; byrRegs -[rax]
mov rax, bword ptr [rbp-0x08]
; byrRegs +[rax]
mov ecx, dword ptr [rbp-0x20]
mov dword ptr [rax+0x04], ecx
- ;; size=234 bbWeight=1 PerfScore 59.00
+ ;; size=193 bbWeight=1 PerfScore 59.00
G_M34103_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 128
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 274, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 274 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
+; Total bytes of code 233, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 233 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
; ============================================================
Unwind Info:
-41 (-14.96%) : 160721.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
@@ -26,86 +26,86 @@ G_M34103_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x0C], esi
;; size=31 bbWeight=1 PerfScore 6.00
G_M34103_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- xor edi, edi
- mov qword ptr [r9], rdi
- mov r9, bword ptr [rbp-0x08]
- mov edi, dword ptr [rbp-0x0C]
- mov dword ptr [r9], edi
- mov r9, bword ptr [rbp-0x08]
- cmp dword ptr [r9], 0
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ xor ecx, ecx
+ mov qword ptr [rax], rcx
+ mov rax, bword ptr [rbp-0x08]
+ mov ecx, dword ptr [rbp-0x0C]
+ mov dword ptr [rax], ecx
+ mov rax, bword ptr [rbp-0x08]
+ cmp dword ptr [rax], 0
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x10], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ cmp dword ptr [rax], 1
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x18], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ cmp dword ptr [rax], 2
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x14], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x20], eax
+ xor eax, eax
+ mov dword ptr [rsp], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x08], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x10], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ cmp dword ptr [rax], 4
+ sete al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rsp+0x18], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x20], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp-0x14]
+ mov dword ptr [rsp+0x30], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x38], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x40], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x48], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x50], eax
+ mov rax, bword ptr [rbp-0x08]
+ ; byrRegs +[rax]
+ xor r9d, r9d
+ cmp dword ptr [rax], 3
sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rbp-0x10], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 1
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rbp-0x18], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 2
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rbp-0x14], r9d
- xor r9d, r9d
- mov dword ptr [rbp-0x20], r9d
- xor r9d, r9d
- mov dword ptr [rsp], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x08], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x10], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 4
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
- mov dword ptr [rsp+0x18], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x20], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x28], r9d
- mov r9d, dword ptr [rbp-0x14]
- mov dword ptr [rsp+0x30], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x38], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x40], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x48], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x50], r9d
- mov r9, bword ptr [rbp-0x08]
- ; byrRegs +[r9]
- cmp dword ptr [r9], 3
- sete r9b
- ; byrRegs -[r9]
- movzx r9, r9b
lea rdi, [rbp-0x20]
mov esi, dword ptr [rbp-0x18]
mov edx, dword ptr [rbp-0x10]
xor ecx, ecx
xor r8d, r8d
call [<unknown method>]
+ ; byrRegs -[rax]
mov rax, bword ptr [rbp-0x08]
; byrRegs +[rax]
mov ecx, dword ptr [rbp-0x20]
mov dword ptr [rax+0x04], ecx
- ;; size=234 bbWeight=1 PerfScore 59.00
+ ;; size=193 bbWeight=1 PerfScore 59.00
G_M34103_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 128
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 274, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 274 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
+; Total bytes of code 233, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 233 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
; ============================================================
Unwind Info:
-15 (-9.74%) : 524753.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10]
- movzx r9, r9b
- test r9d, r9d
+ mov eax, dword ptr [rbp+0x10]
+ movzx rax, al
+ test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d
- mov dword ptr [rbp-0x30], r9d
+ xor eax, eax
+ mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x30], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30]
- mov dword ptr [rbp-0x2C], r9d
- mov r9d, dword ptr [rbp-0x2C]
- mov dword ptr [rsp], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x08], r9d
- xor r9, r9
- ; gcrRegs +[r9]
- mov gword ptr [rsp+0x10], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
- mov dword ptr [rsp+0x18], r9d
- mov r9d, dword ptr [rbp-0x28]
- movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30]
+ mov dword ptr [rbp-0x2C], eax
+ mov eax, dword ptr [rbp-0x2C]
+ mov dword ptr [rsp], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x08], eax
+ xor rax, rax
+ ; gcrRegs +[rax]
+ mov gword ptr [rsp+0x10], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rsp+0x18], eax
+ mov eax, dword ptr [rbp-0x28]
+ movzx r9, al
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rsi, gword ptr [rbp-0x10]
@@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rcx rdx rsi rdi]
nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================
Unwind Info:
+16 (+21.62%) : 230260.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
@@ -8,54 +8,58 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Queue>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 16
- lea rbp, [rsp+0x10]
+ sub rsp, 32
+ lea rbp, [rsp+0x20]
+ xor eax, eax
+ mov qword ptr [rbp-0x18], rax
mov gword ptr [rbp-0x08], rdi
mov dword ptr [rbp-0x0C], esi
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp-0x08]
; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x18], rax
+ mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp-0x08]
- mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10]
+ ; gcrRegs -[rcx]
+ mov eax, ecx
; gcrRegs -[rax]
add eax, dword ptr [rbp-0x0C]
- mov rdx, gword ptr [rbp-0x08]
- ; gcrRegs +[rdx]
- mov rdi, gword ptr [rdx+0x08]
- ; gcrRegs +[rdi]
+ mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
+ mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx]
- idiv edx:eax, dword ptr [rdi+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08]
+ mov rcx, gword ptr [rbp-0x18]
cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M41139_IG04
mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10]
+ ; byrRegs +[rax]
+ mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=45 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax]
+ ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rdi]
- ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 74 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================
Unwind Info:
@@ -68,5 +72,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+15 (+22.73%) : 736212.dasm - System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
@@ -5,40 +5,43 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <System.Threading.RateLimiting.TimerAwaitable>
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Threading.RateLimiting.TimerAwaitable>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M20819_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- push rax
+ sub rsp, 16
lea rbp, [rsp+0x10]
- mov gword ptr [rbp-0x10], rdi
- ;; size=12 bbWeight=1 PerfScore 4.50
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov gword ptr [rbp-0x08], rdi
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M20819_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x10]
- ; gcrRegs +[rdi]
- mov rbx, gword ptr [rdi+0x10]
- ; gcrRegs +[rbx]
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov rax, gword ptr [rax+0x10]
+ mov gword ptr [rbp-0x10], rax
mov rdi, 0xD1FFAB1E
- ; gcrRegs -[rdi]
mov esi, 24
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rbx, gword ptr [rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax]
sete al
movzx rax, al
- ;; size=47 bbWeight=1 PerfScore 9.00
+ ;; size=55 bbWeight=1 PerfScore 11.00
G_M20819_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
- pop rbx
+ add rsp, 16
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 66, prolog size 8, PerfScore 15.75, instruction count 18, allocated bytes for code 66 (MethodHash=dbd4aeac) for method System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
+; Total bytes of code 81, prolog size 16, PerfScore 16.75, instruction count 20, allocated bytes for code 81 (MethodHash=dbd4aeac) for method System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -46,11 +49,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+15 (+24.19%) : 79353.dasm - Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
@@ -5,37 +5,42 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions>
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M11670_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- push rax
+ sub rsp, 16
lea rbp, [rsp+0x10]
- mov gword ptr [rbp-0x10], rdi
- ;; size=12 bbWeight=1 PerfScore 4.50
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov gword ptr [rbp-0x08], rdi
+ ;; size=20 bbWeight=1 PerfScore 4.00
G_M11670_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rbx, gword ptr [rbp-0x10]
- ; gcrRegs +[rbx]
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x10], rax
mov rdi, 0xD1FFAB1E
mov esi, 38
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rbx, gword ptr [rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax]
sete al
movzx rax, al
- ;; size=43 bbWeight=1 PerfScore 7.00
+ ;; size=51 bbWeight=1 PerfScore 9.00
G_M11670_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
- pop rbx
+ add rsp, 16
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 62, prolog size 8, PerfScore 13.75, instruction count 17, allocated bytes for code 62 (MethodHash=a50fd269) for method Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
+; Total bytes of code 77, prolog size 16, PerfScore 14.75, instruction count 19, allocated bytes for code 77 (MethodHash=a50fd269) for method Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -43,11 +48,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x03
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
librariestestsnotieredcompilation.run.linux.x64.Release.mch
-7 (-2.98%) : 293281.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477_Get744525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
@@ -44,21 +44,21 @@ G_M58081_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M58081_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
nop
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- mov edi, dword ptr [rdi+0x4C]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x1C], edi
- xor edi, edi
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov eax, dword ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x1C], eax
+ xor eax, eax
cmp dword ptr [rbp-0x1C], 0
- setg dil
- mov dword ptr [rbp-0x20], edi
+ setg al
+ mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
- je G_M58081_IG08
+ je SHORT G_M58081_IG08
nop
nop
jmp SHORT G_M58081_IG07
- ;; size=39 bbWeight=1 PerfScore 14.25
+ ;; size=34 bbWeight=1 PerfScore 14.25
G_M58081_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
lea rdi, [rbp-0x18]
@@ -91,36 +91,36 @@ G_M58081_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M58081_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x1C]
- dec edi
- mov dword ptr [rbp-0x30], edi
- mov edi, dword ptr [rbp-0x1C]
- dec edi
- mov dword ptr [rbp-0x1C], edi
+ mov eax, dword ptr [rbp-0x1C]
+ dec eax
+ mov dword ptr [rbp-0x30], eax
+ mov eax, dword ptr [rbp-0x1C]
+ dec eax
+ mov dword ptr [rbp-0x1C], eax
lea rdi, [rbp-0x18]
call [<unknown method>]
; gcr arg pop 0
mov dword ptr [rbp-0x34], eax
- mov edi, dword ptr [rbp-0x30]
- cmp edi, dword ptr [rbp-0x34]
- setb dil
- movzx rdi, dil
- mov dword ptr [rbp-0x2C], edi
+ mov eax, dword ptr [rbp-0x30]
+ cmp eax, dword ptr [rbp-0x34]
+ setb al
+ movzx rax, al
+ mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0
jne SHORT G_M58081_IG05
nop
- ;; size=53 bbWeight=1 PerfScore 17.50
+ ;; size=51 bbWeight=1 PerfScore 17.50
G_M58081_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, gword ptr [rbp-0x08]
; gcrRegs +[rax]
xor ecx, ecx
mov dword ptr [rax+0x4C], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x28], ecx
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x28], eax
nop
;; size=15 bbWeight=1 PerfScore 3.75
G_M58081_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov eax, dword ptr [rbp-0x28]
;; size=3 bbWeight=1 PerfScore 1.00
G_M58081_IG10: ; bbWeight=1, epilog, nogc, extend
@@ -129,7 +129,7 @@ G_M58081_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 235 (MethodHash=ffbf1d1e) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get744_525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 228, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 228 (MethodHash=ffbf1d1e) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get744_525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================
Unwind Info:
-7 (-2.98%) : 289202.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477_Get798449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
@@ -44,21 +44,21 @@ G_M39307_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M39307_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
nop
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- mov edi, dword ptr [rdi+0x4C]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x1C], edi
- xor edi, edi
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov eax, dword ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x1C], eax
+ xor eax, eax
cmp dword ptr [rbp-0x1C], 2
- setge dil
- mov dword ptr [rbp-0x20], edi
+ setge al
+ mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
- je G_M39307_IG08
+ je SHORT G_M39307_IG08
nop
nop
jmp SHORT G_M39307_IG07
- ;; size=39 bbWeight=1 PerfScore 14.25
+ ;; size=34 bbWeight=1 PerfScore 14.25
G_M39307_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
lea rdi, [rbp-0x18]
@@ -91,36 +91,36 @@ G_M39307_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M39307_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x1C]
- dec edi
- mov dword ptr [rbp-0x30], edi
- mov edi, dword ptr [rbp-0x1C]
- dec edi
- mov dword ptr [rbp-0x1C], edi
+ mov eax, dword ptr [rbp-0x1C]
+ dec eax
+ mov dword ptr [rbp-0x30], eax
+ mov eax, dword ptr [rbp-0x1C]
+ dec eax
+ mov dword ptr [rbp-0x1C], eax
lea rdi, [rbp-0x18]
call [<unknown method>]
; gcr arg pop 0
mov dword ptr [rbp-0x34], eax
- mov edi, dword ptr [rbp-0x30]
- cmp edi, dword ptr [rbp-0x34]
- setb dil
- movzx rdi, dil
- mov dword ptr [rbp-0x2C], edi
+ mov eax, dword ptr [rbp-0x30]
+ cmp eax, dword ptr [rbp-0x34]
+ setb al
+ movzx rax, al
+ mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0
jne SHORT G_M39307_IG05
nop
- ;; size=53 bbWeight=1 PerfScore 17.50
+ ;; size=51 bbWeight=1 PerfScore 17.50
G_M39307_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, gword ptr [rbp-0x08]
; gcrRegs +[rax]
xor ecx, ecx
mov dword ptr [rax+0x4C], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x28], ecx
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x28], eax
nop
;; size=15 bbWeight=1 PerfScore 3.75
G_M39307_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov eax, dword ptr [rbp-0x28]
;; size=3 bbWeight=1 PerfScore 1.00
G_M39307_IG10: ; bbWeight=1, epilog, nogc, extend
@@ -129,7 +129,7 @@ G_M39307_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 235 (MethodHash=47286674) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get798_449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 228, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 228 (MethodHash=47286674) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get798_449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================
Unwind Info:
-7 (-2.98%) : 289219.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477_Get805454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
@@ -44,21 +44,21 @@ G_M47980_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M47980_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
nop
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- mov edi, dword ptr [rdi+0x4C]
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x1C], edi
- xor edi, edi
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov eax, dword ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x1C], eax
+ xor eax, eax
cmp dword ptr [rbp-0x1C], 3
- setge dil
- mov dword ptr [rbp-0x20], edi
+ setge al
+ mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
- je G_M47980_IG08
+ je SHORT G_M47980_IG08
nop
nop
jmp SHORT G_M47980_IG07
- ;; size=39 bbWeight=1 PerfScore 14.25
+ ;; size=34 bbWeight=1 PerfScore 14.25
G_M47980_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
lea rdi, [rbp-0x18]
@@ -91,36 +91,36 @@ G_M47980_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M47980_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x1C]
- dec edi
- mov dword ptr [rbp-0x30], edi
- mov edi, dword ptr [rbp-0x1C]
- dec edi
- mov dword ptr [rbp-0x1C], edi
+ mov eax, dword ptr [rbp-0x1C]
+ dec eax
+ mov dword ptr [rbp-0x30], eax
+ mov eax, dword ptr [rbp-0x1C]
+ dec eax
+ mov dword ptr [rbp-0x1C], eax
lea rdi, [rbp-0x18]
call [<unknown method>]
; gcr arg pop 0
mov dword ptr [rbp-0x34], eax
- mov edi, dword ptr [rbp-0x30]
- cmp edi, dword ptr [rbp-0x34]
- setb dil
- movzx rdi, dil
- mov dword ptr [rbp-0x2C], edi
+ mov eax, dword ptr [rbp-0x30]
+ cmp eax, dword ptr [rbp-0x34]
+ setb al
+ movzx rax, al
+ mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0
jne SHORT G_M47980_IG05
nop
- ;; size=53 bbWeight=1 PerfScore 17.50
+ ;; size=51 bbWeight=1 PerfScore 17.50
G_M47980_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, gword ptr [rbp-0x08]
; gcrRegs +[rax]
xor ecx, ecx
mov dword ptr [rax+0x4C], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x28], ecx
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x28], eax
nop
;; size=15 bbWeight=1 PerfScore 3.75
G_M47980_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov eax, dword ptr [rbp-0x28]
;; size=3 bbWeight=1 PerfScore 1.00
G_M47980_IG10: ; bbWeight=1, epilog, nogc, extend
@@ -129,7 +129,7 @@ G_M47980_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 235 (MethodHash=c0264493) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get805_454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 228, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 228 (MethodHash=c0264493) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get805_454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================
Unwind Info:
+2 (+0.83%) : 170575.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
@@ -47,18 +47,17 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x18], rax
- mov rdi, gword ptr [rbp-0x18]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x10], rdi
- mov rdi, gword ptr [rbp-0x10]
- mov gword ptr [rbp-0x20], rdi
- xor edi, edi
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x24], edi
+ mov rax, gword ptr [rbp-0x18]
+ mov gword ptr [rbp-0x10], rax
+ mov rax, gword ptr [rbp-0x10]
+ mov gword ptr [rbp-0x20], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x24], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x30], rax
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -88,7 +87,8 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rdx rsi rdi r8]
; gcr arg pop 0
mov dword ptr [rbp-0x3C], eax
- mov edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x24]
+ mov edi, eax
add edi, dword ptr [rbp-0x3C]
mov rdx, gword ptr [rbp-0x08]
; gcrRegs +[rdx]
@@ -105,14 +105,14 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
nop
- ;; size=182 bbWeight=1 PerfScore 42.25
+ ;; size=184 bbWeight=1 PerfScore 42.50
G_M35357_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 241, prolog size 39, PerfScore 57.83, instruction count 52, allocated bytes for code 241 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
+; Total bytes of code 243, prolog size 39, PerfScore 58.08, instruction count 53, allocated bytes for code 243 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
; ============================================================
Unwind Info:
+3 (+0.83%) : 12854.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple
2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
@@ -7,40 +7,41 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [rbp-0x20] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [rbp-0x30] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [rbp-0x34] do-not-enreg[] must-init
-; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [rbp-0x38] do-not-enreg[] must-init
-; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [rbp-0x3C] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [rbp-0x18] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [rbp-0x28] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [rbp-0x2C] do-not-enreg[] must-init
+; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [rbp-0x30] do-not-enreg[] must-init
+; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [rbp-0x34] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [rbp-0x40] do-not-enreg[] "impSpillStackEnsure"
-; V08 tmp2 [V08 ] ( 1, 1 ) int -> [rbp-0x44] do-not-enreg[] must-init
-; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [rbp-0x50] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [rbp-0x58] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V11 tmp5 [V11 ] ( 1, 1 ) int -> [rbp-0x5C] do-not-enreg[] must-init
-; V12 tmp6 [V12 ] ( 1, 1 ) int -> [rbp-0x60] do-not-enreg[] "impSpillStackEnsure"
-; V13 tmp7 [V13 ] ( 1, 1 ) int -> [rbp-0x64] do-not-enreg[] "impSpillStackEnsure"
-; V14 tmp8 [V14 ] ( 1, 1 ) int -> [rbp-0x68] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [rbp-0x38] do-not-enreg[] "impSpillStackEnsure"
+; V08 tmp2 [V08 ] ( 1, 1 ) int -> [rbp-0x3C] do-not-enreg[] must-init
+; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [rbp-0x50] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V11 tmp5 [V11 ] ( 1, 1 ) int -> [rbp-0x54] do-not-enreg[] must-init
+; V12 tmp6 [V12 ] ( 1, 1 ) int -> [rbp-0x58] do-not-enreg[] "impSpillStackEnsure"
+; V13 tmp7 [V13 ] ( 1, 1 ) int -> [rbp-0x5C] do-not-enreg[] "impSpillStackEnsure"
+; V14 tmp8 [V14 ] ( 1, 1 ) int -> [rbp-0x60] do-not-enreg[] "impSpillStackEnsure"
+; TEMP_01 ref -> [rbp-0x68]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 104
+ sub rsp, 112
lea rbp, [rsp+0x70]
xor eax, eax
- mov qword ptr [rbp-0x5C], rax
- mov dword ptr [rbp-0x54], eax
+ mov qword ptr [rbp-0x68], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu ymmword ptr [rbp-0x50], ymm8
- mov gword ptr [rbp-0x10], rdi
- mov gword ptr [rbp-0x20], rsi
- mov gword ptr [rbp-0x18], rdx
- mov gword ptr [rbp-0x30], rcx
- mov gword ptr [rbp-0x28], r8
- ;; size=50 bbWeight=1 PerfScore 12.33
+ vmovdqu ymmword ptr [rbp-0x60], ymm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
+ mov qword ptr [rbp-0x30], rax
+ mov gword ptr [rbp-0x08], rdi
+ mov gword ptr [rbp-0x18], rsi
+ mov gword ptr [rbp-0x10], rdx
+ mov gword ptr [rbp-0x28], rcx
+ mov gword ptr [rbp-0x20], r8
+ ;; size=55 bbWeight=1 PerfScore 13.33
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [(reloc)], 0
je SHORT G_M13185_IG04
@@ -51,67 +52,66 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- mov rdi, gword ptr [rbp-0x20]
+ mov rdi, gword ptr [rbp-0x18]
; gcrRegs +[rdi]
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x28]
; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- mov dword ptr [rbp-0x40], eax
- mov esi, dword ptr [rbp-0x40]
- movzx rsi, sil
- mov dword ptr [rbp-0x34], esi
- cmp dword ptr [rbp-0x34], 0
+ mov dword ptr [rbp-0x38], eax
+ mov eax, dword ptr [rbp-0x38]
+ movzx rax, al
+ mov dword ptr [rbp-0x2C], eax
+ cmp dword ptr [rbp-0x2C], 0
je SHORT G_M13185_IG05
nop
- xor esi, esi
- mov dword ptr [rbp-0x38], esi
+ xor eax, eax
+ mov dword ptr [rbp-0x30], eax
nop
jmp G_M13185_IG11
- ;; size=46 bbWeight=1 PerfScore 15.25
+ ;; size=45 bbWeight=1 PerfScore 15.25
G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp gword ptr [rbp-0x18], 0
+ cmp gword ptr [rbp-0x10], 0
je SHORT G_M13185_IG06
- xor esi, esi
- cmp gword ptr [rbp-0x28], 0
- sete sil
- mov dword ptr [rbp-0x44], esi
+ xor eax, eax
+ cmp gword ptr [rbp-0x20], 0
+ sete al
+ mov dword ptr [rbp-0x3C], eax
jmp SHORT G_M13185_IG07
- ;; size=23 bbWeight=1 PerfScore 9.25
+ ;; size=22 bbWeight=1 PerfScore 9.25
G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov dword ptr [rbp-0x44], 1
+ mov dword ptr [rbp-0x3C], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov esi, dword ptr [rbp-0x44]
- movzx rsi, sil
- mov dword ptr [rbp-0x3C], esi
- cmp dword ptr [rbp-0x3C], 0
+ mov eax, dword ptr [rbp-0x3C]
+ movzx rax, al
+ mov dword ptr [rbp-0x34], eax
+ cmp dword ptr [rbp-0x34], 0
je SHORT G_M13185_IG08
nop
- lea rsi, [rbp-0x20]
+ lea rsi, [rbp-0x18]
mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]
call CORINFO_HELP_BOX
; gcrRegs +[rax]
; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- lea rsi, [rbp-0x30]
+ mov gword ptr [rbp-0x68], rax
+ lea rsi, [rbp-0x28]
mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]
call CORINFO_HELP_BOX
; gcr arg pop 0
- xor edi, edi
- cmp rbx, rax
- sete dil
- mov dword ptr [rbp-0x38], edi
+ cmp gword ptr [rbp-0x68], rax
+ sete al
+ ; gcrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x30], eax
nop
jmp G_M13185_IG11
- ;; size=76 bbWeight=1 PerfScore 14.00
+ ;; size=77 bbWeight=1 PerfScore 16.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax rbx]
- mov rdi, gword ptr [rbp-0x18]
+ mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x18]
+ mov rax, gword ptr [rbp-0x10]
; gcrRegs +[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
@@ -119,71 +119,70 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [rax+0x20]<unknown method>
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
+ mov gword ptr [rbp-0x48], rax
+ mov rdi, gword ptr [rbp-0x20]
+ ; gcrRegs +[rdi]
+ mov rax, gword ptr [rbp-0x20]
+ mov rax, qword ptr [rax]
+ ; gcrRegs -[rax]
+ mov rax, qword ptr [rax+0x48]
+ call [rax+0x20]<unknown method>
+ ; gcrRegs -[rdi] +[rax]
+ ; gcr arg pop 0
mov gword ptr [rbp-0x50], rax
- mov rdi, gword ptr [rbp-0x28]
- ; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x28]
- mov rax, qword ptr [rax]
- ; gcrRegs -[rax]
- mov rax, qword ptr [rax+0x48]
- call [rax+0x20]<unknown method>
- ; gcrRegs -[rdi] +[rax]
- ; gcr arg pop 0
- mov gword ptr [rbp-0x58], rax
- mov rdi, gword ptr [rbp-0x50]
- ; gcrRegs +[rdi]
- cmp rdi, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x48]
+ cmp rax, gword ptr [rbp-0x50]
jne SHORT G_M13185_IG09
- mov rdi, gword ptr [rbp-0x18]
+ mov rdi, gword ptr [rbp-0x10]
+ ; gcrRegs +[rdi]
cmp dword ptr [rdi], edi
call [<unknown method>]
; gcrRegs -[rax rdi]
; gcr arg pop 0
- mov dword ptr [rbp-0x60], eax
- mov rdi, gword ptr [rbp-0x28]
+ mov dword ptr [rbp-0x58], eax
+ mov rdi, gword ptr [rbp-0x20]
; gcrRegs +[rdi]
cmp dword ptr [rdi], edi
call [<unknown method>]
; gcrRegs -[rdi]
; gcr arg pop 0
- mov dword ptr [rbp-0x64], eax
- mov edi, dword ptr [rbp-0x60]
- cmp edi, dword ptr [rbp-0x64]
+ mov dword ptr [rbp-0x5C], eax
+ mov eax, dword ptr [rbp-0x58]
+ cmp eax, dword ptr [rbp-0x5C]
jne SHORT G_M13185_IG09
- mov rdi, gword ptr [rbp-0x18]
+ mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
- mov rsi, gword ptr [rbp-0x28]
+ mov rsi, gword ptr [rbp-0x20]
; gcrRegs +[rsi]
cmp dword ptr [rdi], edi
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- mov dword ptr [rbp-0x68], eax
- mov eax, dword ptr [rbp-0x68]
- mov dword ptr [rbp-0x5C], eax
+ mov dword ptr [rbp-0x60], eax
+ mov eax, dword ptr [rbp-0x60]
+ mov dword ptr [rbp-0x54], eax
jmp SHORT G_M13185_IG10
;; size=119 bbWeight=1 PerfScore 57.00
G_M13185_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- mov dword ptr [rbp-0x5C], eax
+ mov dword ptr [rbp-0x54], eax
;; size=5 bbWeight=1 PerfScore 1.25
G_M13185_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x5C]
+ mov eax, dword ptr [rbp-0x54]
movzx rax, al
- mov dword ptr [rbp-0x38], eax
...
+35 (+0.95%) : 12226.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
@@ -158,14 +158,12 @@ G_M26197_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcr arg pop 0
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x20]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x38], rdi
+ mov rax, gword ptr [rbp-0x20]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x38], rax
nop
mov rdi, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rdi]
call CORINFO_HELP_NEWSFAST
- ; gcrRegs +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x160], rax
mov rdi, gword ptr [rbp-0x160]
@@ -173,28 +171,28 @@ G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rax rdi]
; gcr arg pop 0
- mov rdi, gword ptr [rbp-0x160]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x30], rdi
- xor edi, edi
- ; gcrRegs -[rdi]
- mov dword ptr [rbp-0x3C], edi
+ mov rax, gword ptr [rbp-0x160]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x30], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x3C], eax
nop
jmp G_M26197_IG69
;; size=66 bbWeight=1 PerfScore 14.00
G_M26197_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [rbp-0x10]
- mov rdi, qword ptr [rdi+0x38]
- mov rdi, qword ptr [rdi]
- cmp qword ptr [rdi+0x158], 0
+ mov rax, qword ptr [rbp-0x10]
+ mov rax, qword ptr [rax+0x38]
+ mov rax, qword ptr [rax]
+ cmp qword ptr [rax+0x158], 0
je SHORT G_M26197_IG07
;; size=21 bbWeight=1 PerfScore 9.00
G_M26197_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [rbp-0x10]
- mov rdi, qword ptr [rdi+0x38]
- mov rdi, qword ptr [rdi]
- mov rdi, qword ptr [rdi+0x158]
- mov qword ptr [rbp-0x170], rdi
+ mov rax, qword ptr [rbp-0x10]
+ mov rax, qword ptr [rax+0x38]
+ mov rax, qword ptr [rax]
+ mov rax, qword ptr [rax+0x158]
+ mov qword ptr [rbp-0x170], rax
jmp SHORT G_M26197_IG08
;; size=27 bbWeight=0.80 PerfScore 8.00
G_M26197_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -215,36 +213,36 @@ G_M26197_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rax rdi]
; gcr arg pop 0
- mov rdi, gword ptr [rbp-0x168]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x48], rdi
+ mov rax, gword ptr [rbp-0x168]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x48], rax
nop
- mov rdi, gword ptr [rbp-0x48]
- mov gword ptr [rbp-0x178], rdi
- mov rdi, gword ptr [rbp-0x28]
- mov eax, dword ptr [rbp-0x3C]
- cmp eax, dword ptr [rdi+0x08]
+ mov rax, gword ptr [rbp-0x48]
+ mov gword ptr [rbp-0x178], rax
+ mov rax, gword ptr [rbp-0x28]
+ mov ecx, dword ptr [rbp-0x3C]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG09
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
; gcr arg pop 0
;; size=72 bbWeight=1 PerfScore 18.25
-G_M26197_IG09: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rdi]
- mov ecx, eax
- imul rcx, rcx, 64
- lea rdi, bword ptr [rdi+rcx+0x10]
- ; gcrRegs -[rdi]
+G_M26197_IG09: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rax]
+ mov edx, ecx
+ imul rdx, rdx, 64
+ lea rax, bword ptr [rax+rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rdi, rax
; byrRegs +[rdi]
call [<unknown method>]
; gcrRegs +[rax]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x180], rax
- mov rdi, gword ptr [rbp-0x178]
- ; gcrRegs +[rdi]
- lea rdi, bword ptr [rdi+0x08]
- ; gcrRegs -[rdi]
+ mov rax, gword ptr [rbp-0x178]
+ lea rdi, bword ptr [rax+0x08]
; byrRegs +[rdi]
mov rsi, gword ptr [rbp-0x180]
; gcrRegs +[rsi]
@@ -260,26 +258,26 @@ G_M26197_IG09: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rsi rdi] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x188], rax
- mov rdi, gword ptr [rbp-0x28]
- ; gcrRegs +[rdi]
- mov eax, dword ptr [rbp-0x3C]
- ; gcrRegs -[rax]
- cmp eax, dword ptr [rdi+0x08]
+ mov rax, gword ptr [rbp-0x28]
+ mov ecx, dword ptr [rbp-0x3C]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG10
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=93 bbWeight=1 PerfScore 26.00
-G_M26197_IG10: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rdi]
- mov ecx, eax
- imul rcx, rcx, 64
- lea rdi, bword ptr [rdi+rcx+0x10]
- ; gcrRegs -[rdi]
+ ;; size=96 bbWeight=1 PerfScore 26.25
+G_M26197_IG10: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rax]
+ mov edx, ecx
+ imul rdx, rdx, 64
+ lea rax, bword ptr [rax+rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rdi, rax
; byrRegs +[rdi]
call [<unknown method>]
; gcrRegs +[rax]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
; gcr arg pop 0
mov gword ptr [rbp-0x190], rax
mov rdi, gword ptr [rbp-0x188]
@@ -313,14 +311,13 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdx rsi] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x1A8], rax
- mov rdi, gword ptr [rbp-0x1A8]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x50], rdi
- xor edi, edi
- ; gcrRegs -[rdi]
+ mov rax, gword ptr [rbp-0x1A8]
+ mov gword ptr [rbp-0x50], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
cmp gword ptr [rbp-0x50], 0
- setne dil
- mov dword ptr [rbp-0x5C], edi
+ setne al
+ mov dword ptr [rbp-0x5C], eax
cmp dword ptr [rbp-0x5C], 0
je G_M26197_IG25
nop
@@ -328,30 +325,30 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs +[rdi]
cmp dword ptr [rdi], edi
call <unknown method>
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x378], rax
- mov rdi, gword ptr [rbp-0x378]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x68], rdi
- mov rdi, gword ptr [rbp-0x28]
- mov eax, dword ptr [rbp-0x3C]
- ; gcrRegs -[rax]
- cmp eax, dword ptr [rdi+0x08]
+ mov rax, gword ptr [rbp-0x378]
+ mov gword ptr [rbp-0x68], rax
+ mov rax, gword ptr [rbp-0x28]
+ mov ecx, dword ptr [rbp-0x3C]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG11
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=219 bbWeight=1 PerfScore 54.75
-G_M26197_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rdi]
- mov ecx, eax
- imul rcx, rcx, 64
- lea rdi, bword ptr [rdi+rcx+0x10]
- ; gcrRegs -[rdi]
+ ;; size=221 bbWeight=1 PerfScore 55.00
+G_M26197_IG11: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rax]
+ mov edx, ecx
+ imul rdx, rdx, 64
+ lea rax, bword ptr [rax+rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rdi, rax
; byrRegs +[rdi]
call [<unknown method>]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
; gcr arg pop 0
mov dword ptr [rbp-0x37C], eax
cmp dword ptr [rbp-0x37C], 0
@@ -367,11 +364,9 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x440], rax
- mov rdi, gword ptr [rbp-0x440]
- ; gcrRegs +[rdi]
- mov gword ptr [rbp-0x78], rdi
+ mov rax, gword ptr [rbp-0x440]
+ mov gword ptr [rbp-0x78], rax
lea rdi, [rbp-0x78]
- ; gcrRegs -[rdi]
mov rsi, 0xD1FFAB1E ; System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DiagnosticDescriptor]
call [<unknown method>]
; gcrRegs -[rax]
@@ -379,7 +374,7 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
mov dword ptr [rbp-0x444], eax
cmp dword ptr [rbp-0x444], 1
je SHORT G_M26197_IG13
- ;; size=103 bbWeight=1 PerfScore 30.00
+ ;; size=106 bbWeight=1 PerfScore 30.25
G_M26197_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
...
realworld.run.linux.x64.checked.mch
+0 (0.00%) : 32245.dasm - BenchmarkDotNet.Autogenerated.Runnable1:ForDisassemblyDiagnoser_():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]:this (MinOpts)
@@ -17,13 +17,14 @@ G_M30690_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x08], rdi
;; size=14 bbWeight=1 PerfScore 2.75
G_M30690_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x58], 11
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x58], 11
jne SHORT G_M30690_IG04
mov rdi, gword ptr [rbp-0x08]
+ ; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
nop
;; size=21 bbWeight=1 PerfScore 9.25
G_M30690_IG03: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 33069.dasm - BenchmarkDotNet.Autogenerated.Runnable2:ForDisassemblyDiagnoser_():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]:this (MinOpts)
@@ -17,13 +17,14 @@ G_M22177_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x08], rdi
;; size=14 bbWeight=1 PerfScore 2.75
G_M22177_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x58], 11
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x58], 11
jne SHORT G_M22177_IG04
mov rdi, gword ptr [rbp-0x08]
+ ; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
nop
;; size=21 bbWeight=1 PerfScore 9.25
G_M22177_IG03: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 13074.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -21,8 +21,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x08], rdi
;; size=20 bbWeight=1 PerfScore 4.00
G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov gword ptr [rbp-0x18], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rdx, gword ptr [rbp-0x18]
+0 (0.00%) : 32244.dasm - BenchmarkDotNet.Autogenerated.Runnable1:TrickTheJIT_():this (MinOpts)
@@ -40,12 +40,13 @@ G_M31200_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rax+0x48]
call [rax+0x30]<unknown method>
; gcrRegs -[rdi]
+ mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
+ mov dword ptr [rcx+0x58], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
- mov dword ptr [rdi+0x58], eax
- mov rdi, gword ptr [rbp-0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rcx rdi] +[rax]
nop
;; size=77 bbWeight=1 PerfScore 22.25
G_M31200_IG03: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 32964.dasm - BenchmarkDotNet.Autogenerated.Runnable0:ForDisassemblyDiagnoser_():System.Management.Automation.Language.Ast:this (MinOpts)
@@ -17,13 +17,14 @@ G_M58970_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov gword ptr [rbp-0x08], rdi
;; size=14 bbWeight=1 PerfScore 2.75
G_M58970_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08]
- ; gcrRegs +[rdi]
- cmp dword ptr [rdi+0x40], 11
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x40], 11
jne SHORT G_M58970_IG04
mov rdi, gword ptr [rbp-0x08]
+ ; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
nop
;; size=21 bbWeight=1 PerfScore 9.25
G_M58970_IG03: ; bbWeight=1, epilog, nogc, extend
+0 (0.00%) : 33068.dasm - BenchmarkDotNet.Autogenerated.Runnable2:TrickTheJIT_():this (MinOpts)
@@ -40,12 +40,13 @@ G_M57219_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rax+0x48]
call [rax+0x30]<unknown method>
; gcrRegs -[rdi]
+ mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
+ mov dword ptr [rcx+0x58], eax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
- mov dword ptr [rdi+0x58], eax
- mov rdi, gword ptr [rbp-0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rcx rdi] +[rax]
nop
;; size=77 bbWeight=1 PerfScore 22.25
G_M57219_IG03: ; bbWeight=1, epilog, nogc, extend
smoke_tests.nativeaot.linux.x64.checked.mch
+0 (0.00%) : 19493.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)
@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movaps xmmword ptr [rbp-0x10], xmm8
;; size=34 bbWeight=1 PerfScore 10.08
G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x08]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
@@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x10]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x10]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
@@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x18]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x18]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
@@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x20]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x20]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
+0 (0.00%) : 20294.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)
@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movaps xmmword ptr [rbp-0x10], xmm8
;; size=34 bbWeight=1 PerfScore 10.08
G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x08]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
@@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x10]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x10]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
@@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x18]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x18]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
@@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)]
- mov rdi, gword ptr [rdi+0x20]
+ mov rax, qword ptr [(reloc)]
+ mov rdi, gword ptr [rax+0x20]
; gcrRegs +[rdi]
lea r10, [(reloc)] ; function address
xor rsi, rsi
+0 (0.00%) : 20656.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -22,8 +22,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x08], rdi
;; size=20 bbWeight=1 PerfScore 4.00
G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi
- mov gword ptr [rbp-0x18], rdi
+ xor eax, eax
+ mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08]
; gcrRegs +[rdi]
mov rdx, gword ptr [rbp-0x18]
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.linux.x64.checked.mch |
3,140 |
7 |
2 |
3,131 |
-7 |
+2 |
benchmarks.run_pgo.linux.x64.checked.mch |
38,674 |
8,237 |
1,677 |
28,760 |
-24,140 |
+5,892 |
benchmarks.run_tiered.linux.x64.checked.mch |
26,296 |
5,424 |
1,155 |
19,717 |
-15,622 |
+4,240 |
coreclr_tests.run.linux.x64.checked.mch |
279,225 |
94,263 |
26,795 |
158,167 |
-523,013 |
+285,884 |
libraries.crossgen2.linux.x64.checked.mch |
8 |
3 |
1 |
4 |
-5 |
+1 |
libraries.pmi.linux.x64.checked.mch |
2 |
1 |
1 |
0 |
-14 |
+1 |
libraries_tests.run.linux.x64.Release.mch |
326,263 |
62,571 |
8,941 |
254,751 |
-216,201 |
+52,919 |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
13,430 |
9,202 |
8 |
4,220 |
-57,773 |
+3,529 |
realworld.run.linux.x64.checked.mch |
9 |
1 |
0 |
8 |
-1,026 |
+0 |
smoke_tests.nativeaot.linux.x64.checked.mch |
3 |
0 |
0 |
3 |
-0 |
+0 |
|
687,050 |
179,709 |
38,580 |
468,761 |
-837,801 |
+352,468 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.x64.checked.mch |
42,533 |
3,142 |
39,391 |
324 (0.76%) |
324 (0.76%) |
benchmarks.run_pgo.linux.x64.checked.mch |
158,221 |
60,171 |
98,050 |
156 (0.10%) |
156 (0.10%) |
benchmarks.run_tiered.linux.x64.checked.mch |
56,416 |
42,280 |
14,136 |
84 (0.15%) |
84 (0.15%) |
coreclr_tests.run.linux.x64.checked.mch |
596,312 |
354,685 |
241,627 |
459 (0.08%) |
459 (0.08%) |
libraries.crossgen2.linux.x64.checked.mch |
234,032 |
15 |
234,017 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.linux.x64.checked.mch |
294,182 |
6 |
294,176 |
2,052 (0.69%) |
2,052 (0.69%) |
libraries_tests.run.linux.x64.Release.mch |
760,250 |
495,575 |
264,675 |
1,402 (0.18%) |
1,402 (0.18%) |
librariestestsnotieredcompilation.run.linux.x64.Release.mch |
303,249 |
21,873 |
281,376 |
2,099 (0.69%) |
2,099 (0.69%) |
realworld.run.linux.x64.checked.mch |
32,728 |
9 |
32,719 |
341 (1.03%) |
341 (1.03%) |
smoke_tests.nativeaot.linux.x64.checked.mch |
27,417 |
10 |
27,407 |
5 (0.02%) |
5 (0.02%) |
|
2,505,340 |
977,766 |
1,527,574 |
6,922 (0.28%) |
6,922 (0.28%) |
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: 16148228 (overridden on cmd)
Total bytes of diff: 16148223 (overridden on cmd)
Total bytes of delta: -5 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1 : 11777.dasm (0.61 % of base)
1 : 1542.dasm (0.61 % of base)
Top file improvements (bytes):
-1 : 37053.dasm (-1.18 % of base)
-1 : 40563.dasm (-1.18 % of base)
-1 : 21695.dasm (-1.18 % of base)
-1 : 22682.dasm (-1.18 % of base)
-1 : 26264.dasm (-1.18 % of base)
-1 : 36837.dasm (-1.18 % of base)
-1 : 41665.dasm (-1.18 % of base)
9 total files with Code Size differences (7 improved, 2 regressed), 51 unchanged.
Top method regressions (bytes):
1 (0.61 % of base) : 11777.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
1 (0.61 % of base) : 1542.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (bytes):
-1 (-1.18 % of base) : 37053.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 40563.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 36837.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 41665.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 21695.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
-1 (-1.18 % of base) : 22682.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
-1 (-1.18 % of base) : 26264.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
Top method regressions (percentages):
1 (0.61 % of base) : 11777.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
1 (0.61 % of base) : 1542.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (percentages):
-1 (-1.18 % of base) : 37053.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 40563.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 36837.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 41665.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
-1 (-1.18 % of base) : 21695.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
-1 (-1.18 % of base) : 22682.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
-1 (-1.18 % of base) : 26264.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
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: 70126965 (overridden on cmd)
Total bytes of diff: 70108717 (overridden on cmd)
Total bytes of delta: -18248 (-0.03 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
90 : 8107.dasm (2.34 % of base)
90 : 8585.dasm (2.34 % of base)
57 : 83189.dasm (0.24 % of base)
50 : 56140.dasm (1.81 % of base)
47 : 21911.dasm (1.06 % of base)
45 : 39975.dasm (2.19 % of base)
35 : 21878.dasm (0.64 % of base)
35 : 65208.dasm (0.64 % of base)
34 : 73847.dasm (1.05 % of base)
29 : 9786.dasm (1.72 % of base)
28 : 88416.dasm (0.46 % of base)
26 : 69181.dasm (1.88 % of base)
26 : 11956.dasm (0.89 % of base)
25 : 34604.dasm (3.74 % of base)
23 : 84959.dasm (1.28 % of base)
22 : 40577.dasm (2.60 % of base)
22 : 13833.dasm (2.60 % of base)
22 : 26617.dasm (18.33 % of base)
21 : 4559.dasm (3.78 % of base)
21 : 6326.dasm (0.20 % of base)
Top file improvements (bytes):
-127 : 15875.dasm (-1.16 % of base)
-99 : 66289.dasm (-4.55 % of base)
-99 : 66315.dasm (-4.55 % of base)
-97 : 86380.dasm (-0.86 % of base)
-97 : 91780.dasm (-0.42 % of base)
-76 : 1362.dasm (-3.16 % of base)
-76 : 3489.dasm (-3.16 % of base)
-72 : 1813.dasm (-0.72 % of base)
-72 : 84246.dasm (-0.71 % of base)
-66 : 63145.dasm (-0.76 % of base)
-57 : 56457.dasm (-2.31 % of base)
-57 : 59995.dasm (-3.08 % of base)
-57 : 56444.dasm (-2.31 % of base)
-57 : 59980.dasm (-3.08 % of base)
-56 : 34955.dasm (-0.87 % of base)
-55 : 24596.dasm (-0.85 % of base)
-53 : 1618.dasm (-1.42 % of base)
-53 : 2766.dasm (-1.42 % of base)
-53 : 858.dasm (-2.49 % of base)
-53 : 5849.dasm (-2.49 % of base)
88 total files with Code Size differences (49 improved, 39 regressed), 20 unchanged.
Top method regressions (bytes):
90 (2.34 % of base) : 8107.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
90 (2.34 % of base) : 8585.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
57 (0.24 % of base) : 83189.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
50 (1.81 % of base) : 56140.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Instrumented Tier0)
47 (1.06 % of base) : 21911.dasm - System.Uri:GetUriPartsFromUserString(int):System.String:this (Instrumented Tier0)
45 (2.19 % of base) : 39975.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
35 (0.64 % of base) : 21878.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Instrumented Tier0)
35 (0.64 % of base) : 65208.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Instrumented Tier0)
34 (1.05 % of base) : 73847.dasm - Neural:read_data_file():this (Instrumented Tier0)
29 (1.72 % of base) : 9786.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
28 (0.46 % of base) : 88416.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
26 (1.88 % of base) : 69181.dasm - NeuralJagged:Init() (Instrumented Tier0)
26 (0.89 % of base) : 11956.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
25 (3.74 % of base) : 34604.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
23 (1.28 % of base) : 84959.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
22 (2.60 % of base) : 40577.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Instrumented Tier0)
22 (2.60 % of base) : 13833.dasm - System.Linq.Lookup`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this (Instrumented Tier0)
22 (18.33 % of base) : 26617.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
21 (0.20 % of base) : 6326.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
21 (3.78 % of base) : 4559.dasm - System.Globalization.OrdinalCasing:ToUpperOrdinal(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Instrumented Tier0)
Top method improvements (bytes):
-127 (-1.16 % of base) : 15875.dasm - System.Formats.Asn1.WellKnownOids:GetValue(System.ReadOnlySpan`1[ubyte]):System.String (Instrumented Tier0)
-99 (-4.55 % of base) : 66289.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
-99 (-4.55 % of base) : 66315.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
-97 (-0.42 % of base) : 91780.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Instrumented Tier0)
-97 (-0.86 % of base) : 86380.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier0)
-76 (-3.16 % of base) : 1362.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Instrumented Tier0)
-76 (-3.16 % of base) : 3489.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Instrumented Tier0)
-72 (-0.71 % of base) : 84246.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Instrumented Tier0)
-72 (-0.72 % of base) : 1813.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
-66 (-0.76 % of base) : 63145.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Instrumented Tier0)
-57 (-2.31 % of base) : 56457.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Instrumented Tier0)
-57 (-2.31 % of base) : 56444.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Instrumented Tier0)
-57 (-3.08 % of base) : 59995.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
-57 (-3.08 % of base) : 59980.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
-56 (-0.87 % of base) : 34955.dasm - Utf8Json.Formatters.ISO8601DateTimeFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTime:this (Instrumented Tier0)
-55 (-0.85 % of base) : 24596.dasm - Utf8Json.Formatters.ISO8601DateTimeOffsetFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTimeOffset:this (Instrumented Tier0)
-53 (-2.49 % of base) : 858.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Instrumented Tier0)
-53 (-2.49 % of base) : 5849.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Instrumented Tier0)
-53 (-1.42 % of base) : 1618.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Instrumented Tier0)
-53 (-1.42 % of base) : 2766.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Instrumented Tier0)
Top method regressions (percentages):
16 (21.62 % of base) : 81439.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
12 (21.43 % of base) : 89076.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 84839.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
11 (20.75 % of base) : 1028.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
22 (18.33 % of base) : 26617.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
12 (10.26 % of base) : 82935.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
12 (8.76 % of base) : 82939.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
16 (8.74 % of base) : 60199.dasm - System.Tests.Perf_HashCode:Combine_7():int:this (Instrumented Tier0)
9 (8.65 % of base) : 57684.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:LessThanAllBenchmark():ubyte:this (Tier0)
9 (8.33 % of base) : 42823.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:LessThanAllBenchmark():ubyte:this (Tier0)
16 (8.29 % of base) : 64922.dasm - System.Tests.Perf_HashCode:Combine_8():int:this (Instrumented Tier0)
9 (8.11 % of base) : 117668.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanAllBenchmark():ubyte:this (Tier0)
14 (7.65 % of base) : 16582.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:TryStat(System.String,int,byref):ubyte (Tier0)
15 (7.39 % of base) : 84267.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:get_HasCodeAnalysisEmbeddedAttribute():ubyte:this (Tier0)
6 (7.32 % of base) : 19585.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
11 (7.14 % of base) : 26010.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
12 (6.90 % of base) : 57030.dasm - System.Tests.Perf_HashCode:Combine_6():int:this (Instrumented Tier0)
3 (6.25 % of base) : 4237.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Instrumented Tier0)
3 (6.25 % of base) : 2294.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
10 (6.02 % of base) : 53540.dasm - System.Tests.Perf_HashCode:Combine_5():int:this (Instrumented Tier0)
Top method improvements (percentages):
-15 (-9.74 % of base) : 27751.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
-6 (-8.96 % of base) : 110171.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
-6 (-8.96 % of base) : 4208.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
-51 (-6.85 % of base) : 3283.dasm - System.Reflection.Emit.SignatureHelper:InternalGetSignatureArray():ubyte[]:this (Tier0)
-5 (-6.25 % of base) : 8464.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Instrumented Tier0)
-5 (-6.25 % of base) : 7929.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
-10 (-6.13 % of base) : 65197.dasm - System.UriHelper:UnescapeString(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Instrumented Tier0)
-10 (-6.13 % of base) : 65170.dasm - System.UriHelper:UnescapeString(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)
-3 (-6.12 % of base) : 88723.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Instrumented Tier0)
-3 (-6.12 % of base) : 83766.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Tier0)
-5 (-6.02 % of base) : 8490.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumExistingThreads(short):this (Instrumented Tier0)
-5 (-6.02 % of base) : 7930.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumExistingThreads(short):this (Tier0)
-3 (-5.88 % of base) : 92433.dasm - System.Reflection.Metadata.BlobBuilder:WriteBoolean(ubyte):this (Instrumented Tier0)
-3 (-5.88 % of base) : 88391.dasm - System.Reflection.Metadata.BlobBuilder:WriteBoolean(ubyte):this (Tier0)
-4 (-5.88 % of base) : 8492.dasm - System.Threading.LowLevelLifoSemaphoreBase+Counts:AddSignalCount(uint):this (Instrumented Tier0)
-4 (-5.88 % of base) : 7950.dasm - System.Threading.LowLevelLifoSemaphoreBase+Counts:AddSignalCount(uint):this (Tier0)
-5 (-5.81 % of base) : 12697.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumThreadsGoal(short):this (Instrumented Tier0)
-5 (-5.81 % of base) : 3530.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumThreadsGoal(short):this (Tier0)
-4 (-5.56 % of base) : 1236.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.Reflection.Assembly,ubyte,ubyte):System.Type (Tier0)
-10 (-5.49 % of base) : 53900.dasm - System.UriHelper:UnescapeString(System.String,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (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: 15918176 (overridden on cmd)
Total bytes of diff: 15906794 (overridden on cmd)
Total bytes of delta: -11382 (-0.07 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
90 : 8634.dasm (2.56 % of base)
57 : 37414.dasm (0.24 % of base)
50 : 29401.dasm (2.81 % of base)
47 : 12092.dasm (1.32 % of base)
45 : 21870.dasm (2.19 % of base)
34 : 33229.dasm (1.08 % of base)
31 : 3503.dasm (0.39 % of base)
29 : 5658.dasm (1.72 % of base)
28 : 42208.dasm (0.46 % of base)
26 : 33005.dasm (1.97 % of base)
25 : 25852.dasm (4.11 % of base)
24 : 11731.dasm (0.58 % of base)
22 : 11662.dasm (18.33 % of base)
22 : 6926.dasm (2.97 % of base)
21 : 4960.dasm (4.58 % of base)
21 : 6992.dasm (3.46 % of base)
20 : 26030.dasm (2.09 % of base)
19 : 12187.dasm (3.94 % of base)
19 : 17323.dasm (5.23 % of base)
18 : 33940.dasm (1.34 % of base)
Top file improvements (bytes):
-97 : 40146.dasm (-0.86 % of base)
-96 : 32072.dasm (-4.52 % of base)
-79 : 1196.dasm (-4.03 % of base)
-72 : 1580.dasm (-0.72 % of base)
-62 : 30582.dasm (-0.83 % of base)
-58 : 1410.dasm (-2.06 % of base)
-56 : 24021.dasm (-0.98 % of base)
-55 : 17350.dasm (-0.95 % of base)
-54 : 29813.dasm (-2.83 % of base)
-54 : 30484.dasm (-4.14 % of base)
-53 : 763.dasm (-3.02 % of base)
-52 : 27726.dasm (-4.71 % of base)
-51 : 2811.dasm (-6.85 % of base)
-49 : 749.dasm (-1.24 % of base)
-47 : 40531.dasm (-0.88 % of base)
-42 : 18947.dasm (-0.95 % of base)
-42 : 13122.dasm (-0.91 % of base)
-36 : 8157.dasm (-0.90 % of base)
-35 : 2673.dasm (-0.93 % of base)
-34 : 35929.dasm (-2.51 % of base)
77 total files with Code Size differences (38 improved, 39 regressed), 20 unchanged.
Top method regressions (bytes):
90 (2.56 % of base) : 8634.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier0)
57 (0.24 % of base) : 37414.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
50 (2.81 % of base) : 29401.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Tier0)
47 (1.32 % of base) : 12092.dasm - System.Uri:GetUriPartsFromUserString(int):System.String:this (Tier0)
45 (2.19 % of base) : 21870.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
34 (1.08 % of base) : 33229.dasm - Neural:read_data_file():this (Tier0)
31 (0.39 % of base) : 3503.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
29 (1.72 % of base) : 5658.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
28 (0.46 % of base) : 42208.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
26 (1.97 % of base) : 33005.dasm - NeuralJagged:Init() (Tier0)
25 (4.11 % of base) : 25852.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
24 (0.58 % of base) : 11731.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Tier0)
22 (2.97 % of base) : 6926.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Tier0)
22 (18.33 % of base) : 11662.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
21 (4.58 % of base) : 4960.dasm - System.Globalization.OrdinalCasing:ToUpperOrdinal(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Tier0)
21 (3.46 % of base) : 6992.dasm - System.Linq.Lookup`2[int,System.__Canon]:GetGrouping(int,ubyte):System.Linq.Grouping`2[int,System.__Canon]:this (Tier0)
20 (2.09 % of base) : 26030.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteEscapedJsonString(System.String):this (Tier0)
19 (3.94 % of base) : 12187.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this (Tier0)
19 (5.23 % of base) : 17323.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
18 (1.34 % of base) : 33940.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier0)
Top method improvements (bytes):
-97 (-0.86 % of base) : 40146.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier0)
-96 (-4.52 % of base) : 32072.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Tier0)
-79 (-4.03 % of base) : 1196.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier0)
-72 (-0.72 % of base) : 1580.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
-62 (-0.83 % of base) : 30582.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Tier0)
-58 (-2.06 % of base) : 1410.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Tier0)
-56 (-0.98 % of base) : 24021.dasm - Utf8Json.Formatters.ISO8601DateTimeFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTime:this (Tier0)
-55 (-0.95 % of base) : 17350.dasm - Utf8Json.Formatters.ISO8601DateTimeOffsetFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTimeOffset:this (Tier0)
-54 (-2.83 % of base) : 29813.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Tier0)
-54 (-4.14 % of base) : 30484.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0)
-53 (-3.02 % of base) : 763.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Tier0)
-52 (-4.71 % of base) : 27726.dasm - System.ParseNumbers:StringToLong(System.ReadOnlySpan`1[ushort],int,int,byref):long (Tier0)
-51 (-6.85 % of base) : 2811.dasm - System.Reflection.Emit.SignatureHelper:InternalGetSignatureArray():ubyte[]:this (Tier0)
-49 (-1.24 % of base) : 749.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf16(ulong,int,ulong,int,byref,byref):int (Tier0)
-47 (-0.88 % of base) : 40531.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
-42 (-0.91 % of base) : 13122.dasm - Newtonsoft.Json.JsonTextReader:ParseReadNumber(int,ushort,int):this (Tier0)
-42 (-0.95 % of base) : 18947.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0)
-36 (-0.90 % of base) : 8157.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier0)
-35 (-0.93 % of base) : 2673.dasm - System.Text.UnicodeEncoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (Tier0)
-34 (-2.51 % of base) : 35929.dasm - System.Buffers.Text.Utf8Parser:TryParseGuidCore(System.ReadOnlySpan`1[ubyte],byref,byref,int):ubyte (Tier0)
Top method regressions (percentages):
16 (21.62 % of base) : 34315.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
12 (21.43 % of base) : 38546.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
11 (20.75 % of base) : 922.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
22 (18.33 % of base) : 11662.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
12 (10.26 % of base) : 37160.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
12 (8.76 % of base) : 37164.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
9 (8.33 % of base) : 27172.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:LessThanAllBenchmark():ubyte:this (Tier0)
12 (8.33 % of base) : 29567.dasm - System.Tests.Perf_HashCode:Combine_6():int:this (Tier0)
9 (8.11 % of base) : 48465.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanAllBenchmark():ubyte:this (Tier0)
12 (7.84 % of base) : 30551.dasm - System.Tests.Perf_HashCode:Combine_7():int:this (Tier0)
14 (7.65 % of base) : 9650.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:TryStat(System.String,int,byref):ubyte (Tier0)
15 (7.39 % of base) : 38096.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:get_HasCodeAnalysisEmbeddedAttribute():ubyte:this (Tier0)
12 (7.36 % of base) : 32057.dasm - System.Tests.Perf_HashCode:Combine_8():int:this (Tier0)
10 (7.35 % of base) : 28768.dasm - System.Tests.Perf_HashCode:Combine_5():int:this (Tier0)
6 (7.32 % of base) : 5946.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
11 (7.14 % of base) : 15237.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
3 (6.25 % of base) : 2064.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
8 (6.25 % of base) : 28281.dasm - System.Tests.Perf_HashCode:Combine_4():int:this (Tier0)
4 (5.97 % of base) : 47186.dasm - System.Threading.ReaderWriterLockSlim:SpinWait(int) (Tier0)
9 (5.77 % of base) : 26727.dasm - System.Uri:get_IsFile():ubyte:this (Tier0)
Top method improvements (percentages):
-15 (-9.74 % of base) : 19867.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
-6 (-8.96 % of base) : 3945.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
-51 (-6.85 % of base) : 2811.dasm - System.Reflection.Emit.SignatureHelper:InternalGetSignatureArray():ubyte[]:this (Tier0)
-5 (-6.25 % of base) : 8446.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
-10 (-6.13 % of base) : 32153.dasm - System.UriHelper:UnescapeString(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)
-3 (-6.12 % of base) : 37822.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Tier0)
-5 (-6.02 % of base) : 8448.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumExistingThreads(short):this (Tier0)
-3 (-5.88 % of base) : 42178.dasm - System.Reflection.Metadata.BlobBuilder:WriteBoolean(ubyte):this (Tier0)
-4 (-5.88 % of base) : 8477.dasm - System.Threading.LowLevelLifoSemaphoreBase+Counts:AddSignalCount(uint):this (Tier0)
-5 (-5.81 % of base) : 3019.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumThreadsGoal(short):this (Tier0)
-4 (-5.56 % of base) : 1107.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.Reflection.Assembly,ubyte,ubyte):System.Type (Tier0)
-10 (-5.49 % of base) : 28892.dasm - System.UriHelper:UnescapeString(System.String,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)
-6 (-5.45 % of base) : 11024.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier0)
-6 (-5.13 % of base) : 8991.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier0)
-7 (-4.96 % of base) : 53031.dasm - System.Threading.TimerQueue:MoveTimerToCorrectList(System.Threading.TimerQueueTimer,ubyte):this (Tier0)
-5 (-4.90 % of base) : 15063.dasm - System.Runtime.Serialization.DataContractSerializer:.ctor(System.Type,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
-4 (-4.76 % of base) : 10450.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:GetResult(short):int:this (Tier0)
-52 (-4.71 % of base) : 27726.dasm - System.ParseNumbers:StringToLong(System.ReadOnlySpan`1[ushort],int,int,byref):long (Tier0)
-4 (-4.71 % of base) : 14451.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:GetResult(short):long:this (Tier0)
-4 (-4.71 % of base) : 11018.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[ubyte]:GetResult(short):ubyte:this (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: 402653853 (overridden on cmd)
Total bytes of diff: 402416724 (overridden on cmd)
Total bytes of delta: -237129 (-0.06 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
3477 : 211851.dasm (11.45 % of base)
3477 : 211806.dasm (11.45 % of base)
1346 : 6880.dasm (3.36 % of base)
1323 : 291977.dasm (7.47 % of base)
1256 : 6876.dasm (2.93 % of base)
1235 : 6887.dasm (3.14 % of base)
1034 : 6850.dasm (2.63 % of base)
1030 : 6792.dasm (2.67 % of base)
956 : 6846.dasm (2.28 % of base)
956 : 6768.dasm (2.29 % of base)
923 : 6859.dasm (2.39 % of base)
919 : 6828.dasm (2.43 % of base)
602 : 268637.dasm (0.61 % of base)
534 : 263326.dasm (0.71 % of base)
527 : 267640.dasm (0.54 % of base)
527 : 268660.dasm (0.54 % of base)
470 : 267472.dasm (0.49 % of base)
422 : 260012.dasm (0.35 % of base)
362 : 6834.dasm (0.87 % of base)
357 : 26926.dasm (1.59 % of base)
Top file improvements (bytes):
-65025 : 283883.dasm (-4.74 % of base)
-65025 : 535340.dasm (-4.74 % of base)
-10516 : 369875.dasm (-0.11 % of base)
-3854 : 293948.dasm (-0.23 % of base)
-3025 : 217604.dasm (-0.78 % of base)
-1698 : 376122.dasm (-0.03 % of base)
-1534 : 376117.dasm (-0.05 % of base)
-870 : 172536.dasm (-0.88 % of base)
-870 : 476539.dasm (-0.88 % of base)
-409 : 258271.dasm (-2.48 % of base)
-398 : 376134.dasm (-0.03 % of base)
-363 : 256209.dasm (-0.68 % of base)
-363 : 273022.dasm (-0.68 % of base)
-329 : 263879.dasm (-0.84 % of base)
-329 : 265682.dasm (-0.84 % of base)
-290 : 258278.dasm (-1.63 % of base)
-284 : 6503.dasm (-0.75 % of base)
-284 : 6505.dasm (-0.75 % of base)
-284 : 6509.dasm (-0.75 % of base)
-284 : 6514.dasm (-0.75 % of base)
84 total files with Code Size differences (40 improved, 44 regressed), 20 unchanged.
Top method regressions (bytes):
3477 (11.45 % of base) : 211851.dasm - <Module>:f():int (MinOpts)
3477 (11.45 % of base) : 211806.dasm - <Module>:f():int (MinOpts)
1346 (3.36 % of base) : 6880.dasm - lclfldsub:TestEntryPoint():int (Tier0)
1323 (7.47 % of base) : 291977.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
1256 (2.93 % of base) : 6876.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
1235 (3.14 % of base) : 6887.dasm - lclfldsub:TestEntryPoint():int (Tier0)
1034 (2.63 % of base) : 6850.dasm - lclfldmul:TestEntryPoint():int (Tier0)
1030 (2.67 % of base) : 6792.dasm - lclfldadd:TestEntryPoint():int (Tier0)
956 (2.29 % of base) : 6768.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
956 (2.28 % of base) : 6846.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
923 (2.39 % of base) : 6859.dasm - lclfldmul:TestEntryPoint():int (Tier0)
919 (2.43 % of base) : 6828.dasm - lclfldadd:TestEntryPoint():int (Tier0)
602 (0.61 % of base) : 268637.dasm - u4div:TestEntryPoint():int (Tier0)
534 (0.71 % of base) : 263326.dasm - Test_1000w1d.testout1:Func_0():int (MinOpts)
527 (0.54 % of base) : 267640.dasm - i8div:TestEntryPoint():int (Tier0)
527 (0.54 % of base) : 268660.dasm - u8div:TestEntryPoint():int (Tier0)
470 (0.49 % of base) : 267472.dasm - i4div:TestEntryPoint():int (Tier0)
422 (0.35 % of base) : 260012.dasm - u4div:TestEntryPoint():int (MinOpts)
362 (0.87 % of base) : 6834.dasm - lclflddiv:TestEntryPoint():int (Tier0)
357 (1.59 % of base) : 26926.dasm - StrAccess2:TestEntryPoint():int (MinOpts)
Top method improvements (bytes):
-65025 (-4.74 % of base) : 283883.dasm - Tests.ManyFields:.ctor():this (Tier0)
-65025 (-4.74 % of base) : 535340.dasm - Tests.ManyFields:.ctor():this (Tier0-MinOpts)
-10516 (-0.11 % of base) : 369875.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
-3854 (-0.23 % of base) : 293948.dasm - NullableTest:And() (MinOpts)
-3025 (-0.78 % of base) : 217604.dasm - CTest:TestEntryPoint():int (MinOpts)
-1698 (-0.03 % of base) : 376122.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
-1534 (-0.05 % of base) : 376117.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
-870 (-0.88 % of base) : 172536.dasm - GitHub_17073:Test() (Tier0)
-870 (-0.88 % of base) : 476539.dasm - GitHub_17073:Test() (Tier0-MinOpts)
-409 (-2.48 % of base) : 258271.dasm - Test_i8flat_cs.test:TestEntryPoint():int (MinOpts)
-398 (-0.03 % of base) : 376134.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
-363 (-0.68 % of base) : 256209.dasm - JitTest_chain_boxunbox_il.Test:Main():int (MinOpts)
-363 (-0.68 % of base) : 273022.dasm - JitTest_chain_boxunbox_il.Test:Main():int (Tier0)
-329 (-0.84 % of base) : 263879.dasm - byteMDArrTest:TestEntryPoint():int (MinOpts)
-329 (-0.84 % of base) : 265682.dasm - sbyteMDArrTest:TestEntryPoint():int (MinOpts)
-290 (-1.63 % of base) : 258278.dasm - Test_i8_cs.test:TestEntryPoint():int (MinOpts)
-284 (-0.75 % of base) : 6503.dasm - Program:TestCase0001[EmptyStruct]() (MinOpts)
-284 (-0.75 % of base) : 6505.dasm - Program:TestCase0003[EmptyStructGen`1[int]]() (MinOpts)
-284 (-0.75 % of base) : 6509.dasm - Program:TestCase0007[NestedStructGen`1[System.Decimal]]() (MinOpts)
-284 (-0.75 % of base) : 6514.dasm - Program:TestCase0014[ImplementOneInterfaceGen`1[EmptyStructGen`1[int]]]() (MinOpts)
Top method regressions (percentages):
15 (22.73 % of base) : 360073.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
12 (21.43 % of base) : 229250.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 224438.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
11 (20.75 % of base) : 381484.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
12 (19.05 % of base) : 212198.dasm - Program:TestRet2():ubyte (Tier0)
12 (19.05 % of base) : 288533.dasm - Runtime_75832:Test(int) (Tier0)
23 (18.40 % of base) : 256950.dasm - TestApp:test_2_3(float):float (Tier0)
22 (18.33 % of base) : 234529.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
12 (18.18 % of base) : 212188.dasm - Program:TestCond3() (Tier0)
23 (18.11 % of base) : 256683.dasm - TestApp:test_2_3(float):float (Tier0)
20 (15.62 % of base) : 256877.dasm - TestApp:test_2_3(double):double (Tier0)
20 (15.38 % of base) : 256590.dasm - TestApp:test_2_3(double):double (Tier0)
20 (15.38 % of base) : 297067.dasm - TestApp:test_2_3(double):double (Tier0)
25 (12.76 % of base) : 295591.dasm - ILGEN_0x64f58bd0:Method_0x1bb0(int,ulong,float,uint,uint):int (Tier0)
104 (12.41 % of base) : 400347.dasm - Sensor:ValueMess1() (Tier0)
223 (12.11 % of base) : 400310.dasm - Value0:CheckValues():ubyte:this (Tier0)
9 (12.00 % of base) : 289802.dasm - GitHub_10714:Test():int (Tier0)
3 (12.00 % of base) : 286159.dasm - X:G(S):int (Tier0)
5 (11.90 % of base) : 200938.dasm - ModConst:I8_Mod_0(long):long (Tier0)
223 (11.80 % of base) : 400312.dasm - Value1:CheckValues():ubyte:this (Tier0)
Top method improvements (percentages):
-63 (-12.48 % of base) : 27154.dasm - TestNon2PowerStructs:TestComposite() (Tier0)
-15 (-9.74 % of base) : 230953.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
-6 (-8.70 % of base) : 391139.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
-6 (-8.70 % of base) : 355481.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
-7 (-8.64 % of base) : 287016.dasm - NormalizeTest.Program:ShortTest1(short,int):int (Tier0)
-66 (-8.57 % of base) : 508583.dasm - (dynamicClass):ABIStress_TailCaller241(ABIStress.I128_1,ABIStress.S3U,ABIStress.S11U,ABIStress.S4P,float,long,ubyte,ABIStress.S8P,short,ABIStress.S4P,ABIStress.S7U,ABIStress.S8U,ABIStress.S14U,ABIStress.S3U,ABIStress.S5U,ABIStress.S16U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S7U,ABIStress.S13U,ABIStress.S2U,ABIStress.S5U,ABIStress.S5U):int (MinOpts)
-175 (-7.96 % of base) : 509120.dasm - (dynamicClass):ABIStress_TailCaller534(ABIStress.S32U,ABIStress.S15U,ubyte,ABIStress.S4P,int,ABIStress.S14U,short,short,ABIStress.S1P,ABIStress.S8P,System.Runtime.Intrinsics.Vector256`1[int]):int (MinOpts)
-7 (-7.95 % of base) : 213064.dasm - P:TestByPtr(ulong):int (Tier0)
-67 (-7.89 % of base) : 509138.dasm - (dynamicClass):ABIStress_TailCaller544(ABIStress.S14U,ABIStress.S16U,ABIStress.S7U,ABIStress.S16U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S1P,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S13U,ABIStress.S8P,ABIStress.S4P,ABIStress.S2P,ABIStress.S13U,ABIStress.S8U,ABIStress.S4U,ABIStress.I128_1,ABIStress.S2U,ABIStress.S4U,ABIStress.S8U,long,ABIStress.S4P,ABIStress.S12U):int (MinOpts)
-3 (-6.98 % of base) : 272729.dasm - InlineBool.Program:Not04(ubyte):ubyte (Tier0)
-25 (-6.96 % of base) : 360262.dasm - Internal.IL.StackValue:CreateByRef(Internal.TypeSystem.TypeDesc,ubyte,ubyte):Internal.IL.StackValue (Tier0)
-9 (-6.82 % of base) : 286554.dasm - Runtime_55143:M47(short):int (Tier0)
-54 (-6.64 % of base) : 507945.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S8U,ABIStress.S3U,ABIStress.S1P,ABIStress.S4U,ABIStress.S16U,short,ABIStress.S2P,ABIStress.S8P,ABIStress.S4P,ABIStress.S3U,long,ABIStress.S11U,ABIStress.S11U,short,ABIStress.S3U,ABIStress.S2U,ABIStress.S17U):int (MinOpts)
-13 (-6.50 % of base) : 296255.dasm - PerfNotIf:notIf(ubyte):ubyte:this (Instrumented Tier0)
-93 (-6.41 % of base) : 24954.dasm - Microsoft.Diagnostics.Tracing.Session.TraceEventProviders:GetEventSourceGuidFromName(System.String):System.Guid (Instrumented Tier0)
-6 (-6.19 % of base) : 205863.dasm - VectorTest+VectorUnusedTest`1[short]:VectorUnused(short,short):int (Tier0)
-3 (-6.12 % of base) : 227046.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Instrumented Tier0)
-3 (-6.12 % of base) : 223374.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Tier0)
-57 (-6.06 % of base) : 504647.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S4P,ABIStress.S5U,ABIStress.S3U,ubyte,ABIStress.S15U,ABIStress.Hfa2,ABIStress.S3U,ABIStress.S6U,ABIStress.S2U,ABIStress.S8P,long,short,ABIStress.S10U,ABIStress.S17U,ABIStress.S4P,ABIStress.S16U,short,ABIStress.S4P,ABIStress.S9U):int (MinOpts)
-3 (-6.00 % of base) : 377593.dasm - OVFTest:Test_ulong(ulong):ulong (Tier0)
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: 38689357 (overridden on cmd)
Total bytes of diff: 38689353 (overridden on cmd)
Total bytes of delta: -4 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
1 : 153101.dasm (0.61 % of base)
Top file improvements (bytes):
-2 : 22837.dasm (-1.79 % of base)
-2 : 22842.dasm (-1.79 % of base)
-1 : 22841.dasm (-0.93 % of base)
4 total files with Code Size differences (3 improved, 1 regressed), 4 unchanged.
Top method regressions (bytes):
1 (0.61 % of base) : 153101.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (bytes):
-2 (-1.79 % of base) : 22837.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
-2 (-1.79 % of base) : 22842.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
-1 (-0.93 % of base) : 22841.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
Top method regressions (percentages):
1 (0.61 % of base) : 153101.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (percentages):
-2 (-1.79 % of base) : 22837.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
-2 (-1.79 % of base) : 22842.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
-1 (-0.93 % of base) : 22841.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
4 total methods with Code Size differences (3 improved, 1 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: 58919195 (overridden on cmd)
Total bytes of diff: 58919182 (overridden on cmd)
Total bytes of delta: -13 (-0.00 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
1 : 253199.dasm (0.61 % of base)
Top file improvements (bytes):
-14 : 4014.dasm (-0.01 % of base)
2 total files with Code Size differences (1 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
1 (0.61 % of base) : 253199.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (bytes):
-14 (-0.01 % of base) : 4014.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
Top method regressions (percentages):
1 (0.61 % of base) : 253199.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (percentages):
-14 (-0.01 % of base) : 4014.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
2 total methods with Code Size differences (1 improved, 1 regressed).
libraries_tests.run.linux.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 339819743 (overridden on cmd)
Total bytes of diff: 339656461 (overridden on cmd)
Total bytes of delta: -163282 (-0.05 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
3483 : 523524.dasm (1.55 % of base)
3479 : 524114.dasm (1.48 % of base)
1323 : 473296.dasm (7.47 % of base)
558 : 78239.dasm (1.02 % of base)
558 : 78928.dasm (1.02 % of base)
520 : 473656.dasm (4.20 % of base)
504 : 279734.dasm (1.69 % of base)
297 : 393455.dasm (3.37 % of base)
276 : 118681.dasm (1.77 % of base)
276 : 121263.dasm (1.77 % of base)
276 : 120667.dasm (1.77 % of base)
276 : 120932.dasm (1.77 % of base)
276 : 121755.dasm (1.77 % of base)
276 : 118876.dasm (1.77 % of base)
258 : 720908.dasm (0.84 % of base)
258 : 720921.dasm (0.84 % of base)
218 : 518902.dasm (3.60 % of base)
194 : 519652.dasm (3.54 % of base)
183 : 393327.dasm (3.43 % of base)
183 : 430123.dasm (2.99 % of base)
Top file improvements (bytes):
-1783 : 726653.dasm (-0.57 % of base)
-1718 : 726623.dasm (-0.87 % of base)
-953 : 716694.dasm (-1.00 % of base)
-953 : 704249.dasm (-1.07 % of base)
-624 : 204236.dasm (-1.32 % of base)
-490 : 628039.dasm (-0.69 % of base)
-490 : 682826.dasm (-2.53 % of base)
-490 : 684596.dasm (-0.38 % of base)
-490 : 625179.dasm (-2.53 % of base)
-490 : 640964.dasm (-2.53 % of base)
-490 : 677370.dasm (-2.53 % of base)
-490 : 678019.dasm (-0.69 % of base)
-380 : 720969.dasm (-0.25 % of base)
-323 : 720889.dasm (-0.74 % of base)
-302 : 720760.dasm (-0.23 % of base)
-296 : 563270.dasm (-2.45 % of base)
-296 : 562971.dasm (-2.45 % of base)
-253 : 204218.dasm (-0.88 % of base)
-204 : 729024.dasm (-2.19 % of base)
-204 : 729062.dasm (-2.18 % of base)
83 total files with Code Size differences (43 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
3483 (1.55 % of base) : 523524.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0)
3479 (1.48 % of base) : 524114.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Instrumented Tier0)
1323 (7.47 % of base) : 473296.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
558 (1.02 % of base) : 78928.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (Instrumented Tier0)
558 (1.02 % of base) : 78239.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (Tier0)
520 (4.20 % of base) : 473656.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Instrumented Tier0)
504 (1.69 % of base) : 279734.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (Tier0)
297 (3.37 % of base) : 393455.dasm - System.Net.Http.QPack.H3StaticTable:.cctor() (Tier0)
276 (1.77 % of base) : 118681.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 121263.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 120667.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 120932.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 121755.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 118876.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
258 (0.84 % of base) : 720908.dasm - System.Text.RegularExpressions.Tests.RegexMatchTests+<AllMatches_TestData>d__46:MoveNext():ubyte:this (Instrumented Tier0)
258 (0.84 % of base) : 720921.dasm - System.Text.RegularExpressions.Tests.RegexMatchTests+<AllMatches_TestData>d__46:MoveNext():ubyte:this (Instrumented Tier0)
218 (3.60 % of base) : 518902.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
194 (3.54 % of base) : 519652.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
183 (3.43 % of base) : 393327.dasm - System.Net.Http.HPack.H2StaticTable:.cctor() (Tier0)
183 (2.99 % of base) : 430123.dasm - System.Net.Test.Common.Http2LoopbackConnection:.cctor() (Tier0)
Top method improvements (bytes):
-1783 (-0.57 % of base) : 726653.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-1718 (-0.87 % of base) : 726623.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2209_920+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-953 (-1.00 % of base) : 716694.dasm - System.Text.RegularExpressions.Tests.RegexRustTests+<MatchStartAndEndPositions_MemberData_Cases>d__1:MoveNext():ubyte:this (Instrumented Tier0)
-953 (-1.07 % of base) : 704249.dasm - System.Text.RegularExpressions.Tests.RegexRustTests+<MatchStartAndEndPositions_MemberData_Cases>d__1:MoveNext():ubyte:this (Tier0)
-624 (-1.32 % of base) : 204236.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read1_Object(ubyte,ubyte):System.Object:this (MinOpts)
-490 (-2.53 % of base) : 682826.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Instrumented Tier0)
-490 (-2.53 % of base) : 640964.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Instrumented Tier0)
-490 (-2.53 % of base) : 625179.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Tier0)
-490 (-2.53 % of base) : 677370.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Tier0)
-490 (-0.38 % of base) : 684596.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:Equals(System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):ubyte:this (Instrumented Tier0)
-490 (-0.69 % of base) : 628039.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:Equals(System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):ubyte:this (Tier0)
-490 (-0.69 % of base) : 678019.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:Equals(System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):ubyte:this (Tier0)
-380 (-0.25 % of base) : 720969.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4383_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
-323 (-0.74 % of base) : 720889.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-302 (-0.23 % of base) : 720760.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4375_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
-296 (-2.45 % of base) : 563270.dasm - System.Tests.EnumTests:ToString_TryFormat(ubyte,ubyte) (Instrumented Tier0)
-296 (-2.45 % of base) : 562971.dasm - System.Tests.EnumTests:ToString_TryFormat(ubyte,ubyte) (Instrumented Tier0)
-253 (-0.88 % of base) : 204218.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write1_Object(System.String,System.String,System.Object,ubyte,ubyte):this (MinOpts)
-204 (-2.19 % of base) : 729024.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-204 (-2.18 % of base) : 729062.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
Top method regressions (percentages):
15 (24.19 % of base) : 79353.dasm - Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
15 (22.73 % of base) : 736212.dasm - System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
16 (21.62 % of base) : 524631.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Instrumented Tier0)
16 (21.62 % of base) : 230260.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
12 (21.43 % of base) : 169541.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 156399.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 33925.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 13652.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
12 (21.43 % of base) : 148165.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
12 (21.43 % of base) : 163594.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
11 (20.75 % of base) : 4850.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
12 (20.34 % of base) : 736561.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,int]:.cctor() (Tier0)
9 (19.15 % of base) : 213094.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionEnumerator_Abstract`2[int,System.__Canon]:.cctor() (Instrumented Tier0)
9 (19.15 % of base) : 212144.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionEnumerator_Abstract`2[int,System.__Canon]:.cctor() (Tier0)
22 (18.33 % of base) : 464088.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Instrumented Tier0)
22 (18.33 % of base) : 204272.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
9 (17.65 % of base) : 14705.dasm - System.Collections.Concurrent.ConcurrentDictionaryTypeProps`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:.cctor() (Tier0)
19 (16.10 % of base) : 162210.dasm - Microsoft.CodeAnalysis.Collections.Internal.SegmentedArrayHelper+ValueTypeSegmentHelper`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,Roslyn.Utilities.VoidResult]]:.cctor() (Tier0)
4 (10.81 % of base) : 4302.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:.cctor() (Tier0)
4 (10.81 % of base) : 4413.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:.cctor() (Tier0)
Top method improvements (percentages):
-41 (-14.96 % of base) : 145785.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
-41 (-14.96 % of base) : 160721.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
-15 (-9.74 % of base) : 524753.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
-11 (-9.65 % of base) : 267206.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Instrumented Tier0)
-11 (-9.65 % of base) : 267086.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Tier0)
-6 (-9.23 % of base) : 116987.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:Complement():Microsoft.CodeAnalysis.CSharp.IValueSet`1[ubyte]:this (Instrumented Tier0)
-6 (-9.23 % of base) : 111847.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:Complement():Microsoft.CodeAnalysis.CSharp.IValueSet`1[ubyte]:this (Tier0)
-13 (-8.84 % of base) : 232811.dasm - System.Collections.Specialized.Tests.BitVector32Tests:CountBitsRequired(short):short (Instrumented Tier0)
-30 (-8.47 % of base) : 604864.dasm - System.ServiceModel.Syndication.Tests.XmlDiffDocument:set_Option(int):this (Tier0)
-40 (-8.00 % of base) : 554738.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,ubyte[],System.Guid) (Instrumented Tier0)
-40 (-8.00 % of base) : 552242.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,ubyte[],System.Guid) (Tier0)
-21 (-7.87 % of base) : 470364.dasm - System.Xml.XmlDiff.XmlDiffDocument:set_Option(int):this (Instrumented Tier0)
-21 (-7.87 % of base) : 469727.dasm - System.Xml.XmlDiff.XmlDiffDocument:set_Option(int):this (Tier0)
-15 (-7.77 % of base) : 116531.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:GetTypeArgumentVariance(short,short):short (Instrumented Tier0)
-47 (-7.37 % of base) : 84286.dasm - Microsoft.CodeAnalysis.DllImportData:MakeFlags(ubyte,int,ubyte,int,System.Nullable`1[ubyte],System.Nullable`1[ubyte]):short (Instrumented Tier0)
-12 (-7.23 % of base) : 77133.dasm - LibraryImportGenerator.IntegrationTests.CustomMarshallingTests:NonBlittableStructWithoutAllocation():this (Tier0)
-12 (-7.23 % of base) : 77181.dasm - LibraryImportGenerator.IntegrationTests.CustomMarshallingTests:NonBlittableStructWithoutAllocation_Stateful():this (Tier0)
-8 (-6.96 % of base) : 157571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
-8 (-6.96 % of base) : 173194.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
-8 (-6.96 % of base) : 163361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (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: 130995704 (overridden on cmd)
Total bytes of diff: 130941460 (overridden on cmd)
Total bytes of delta: -54244 (-0.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
3483 : 193135.dasm (1.55 % of base)
35 : 12226.dasm (0.95 % of base)
3 : 12854.dasm (0.83 % of base)
3 : 12224.dasm (0.28 % of base)
2 : 170575.dasm (0.83 % of base)
1 : 293326.dasm (0.15 % of base)
1 : 3796.dasm (0.06 % of base)
1 : 152837.dasm (0.61 % of base)
Top file improvements (bytes):
-1783 : 280197.dasm (-0.57 % of base)
-1718 : 280190.dasm (-0.87 % of base)
-624 : 62207.dasm (-1.32 % of base)
-380 : 273785.dasm (-0.25 % of base)
-323 : 293567.dasm (-0.74 % of base)
-302 : 273547.dasm (-0.23 % of base)
-253 : 62197.dasm (-0.88 % of base)
-204 : 285698.dasm (-2.19 % of base)
-204 : 285701.dasm (-2.18 % of base)
-105 : 61625.dasm (-0.29 % of base)
-105 : 63175.dasm (-0.28 % of base)
-104 : 61609.dasm (-0.85 % of base)
-104 : 63161.dasm (-0.85 % of base)
-94 : 281861.dasm (-0.97 % of base)
-69 : 3523.dasm (-0.34 % of base)
-68 : 62205.dasm (-0.85 % of base)
-62 : 288876.dasm (-0.99 % of base)
-62 : 288882.dasm (-0.99 % of base)
-56 : 280365.dasm (-1.26 % of base)
-56 : 289069.dasm (-1.26 % of base)
48 total files with Code Size differences (40 improved, 8 regressed), 32 unchanged.
Top method regressions (bytes):
3483 (1.55 % of base) : 193135.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
35 (0.95 % of base) : 12226.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
3 (0.28 % of base) : 12224.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatVerifierMessage(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.String):System.String:this (MinOpts)
3 (0.83 % of base) : 12854.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
2 (0.83 % of base) : 170575.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
1 (0.06 % of base) : 3796.dasm - Microsoft.CodeAnalysis.Testing.DiagnosticResult:ToString():System.String:this (MinOpts)
1 (0.61 % of base) : 152837.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
1 (0.15 % of base) : 293326.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get768_540+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
Top method improvements (bytes):
-1783 (-0.57 % of base) : 280197.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-1718 (-0.87 % of base) : 280190.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2209_920+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-624 (-1.32 % of base) : 62207.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read1_Object(ubyte,ubyte):System.Object:this (MinOpts)
-380 (-0.25 % of base) : 273785.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2219_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
-323 (-0.74 % of base) : 293567.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-302 (-0.23 % of base) : 273547.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2211_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
-253 (-0.88 % of base) : 62197.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write1_Object(System.String,System.String,System.Object,ubyte,ubyte):this (MinOpts)
-204 (-2.19 % of base) : 285698.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-204 (-2.18 % of base) : 285701.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-105 (-0.29 % of base) : 61625.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:InitIDs():this (MinOpts)
-105 (-0.28 % of base) : 63175.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:InitIDs():this (MinOpts)
-104 (-0.85 % of base) : 61609.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract:CanSerialize(System.Type):ubyte:this (MinOpts)
-104 (-0.85 % of base) : 63161.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract:CanSerialize(System.Type):ubyte:this (MinOpts)
-94 (-0.97 % of base) : 281861.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-69 (-0.34 % of base) : 3523.dasm - Microsoft.CodeAnalysis.Testing.ReferenceAssemblies+<ResolveCoreAsync>d__50:MoveNext():this (MinOpts)
-68 (-0.85 % of base) : 62205.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read84_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (MinOpts)
-62 (-0.99 % of base) : 288876.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get632_339+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-62 (-0.99 % of base) : 288882.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get638_341+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-56 (-1.26 % of base) : 280365.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2412_975+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-56 (-1.26 % of base) : 289069.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get729_411+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
Top method regressions (percentages):
3483 (1.55 % of base) : 193135.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
35 (0.95 % of base) : 12226.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
3 (0.83 % of base) : 12854.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
2 (0.83 % of base) : 170575.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
1 (0.61 % of base) : 152837.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
3 (0.28 % of base) : 12224.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatVerifierMessage(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.String):System.String:this (MinOpts)
1 (0.15 % of base) : 293326.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get768_540+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
1 (0.06 % of base) : 3796.dasm - Microsoft.CodeAnalysis.Testing.DiagnosticResult:ToString():System.String:this (MinOpts)
Top method improvements (percentages):
-7 (-2.98 % of base) : 293281.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get744_525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.98 % of base) : 289168.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get784_440+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.98 % of base) : 289202.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get798_449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.98 % of base) : 289216.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get804_453+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.98 % of base) : 289219.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get805_454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-8 (-2.71 % of base) : 277530.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get359_103+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 285625.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 278757.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1032_480+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 275633.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get114_100+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 275642.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get116_102+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 279353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1436_675+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 279634.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1647_766+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 279642.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1649_768+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 288353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get251_178+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 278106.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get737_284+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 278318.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get831_349+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 278326.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get833_351+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 278386.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get851_368+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 275529.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get89_76+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.42 % of base) : 275537.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get91_78+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
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: 12767093 (overridden on cmd)
Total bytes of diff: 12766067 (overridden on cmd)
Total bytes of delta: -1026 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1026 : 4576.dasm (-0.63 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 8 unchanged.
Top method improvements (bytes):
-1026 (-0.63 % of base) : 4576.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
Top method improvements (percentages):
-1026 (-0.63 % of base) : 4576.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
1 total methods with Code Size differences (1 improved, 0 regressed).
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: 4192959 (overridden on cmd)
Total bytes of diff: 4192959 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 3 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
osx arm64
Diffs are based on 2,229,922 contexts (927,360 MinOpts, 1,302,562 FullOpts).
MISSED contexts: 6,095 (0.27%)
Overall (+150,252 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
34,339,712 |
+952 |
benchmarks.run_tiered.osx.arm64.checked.mch |
15,547,160 |
+328 |
coreclr_tests.run.osx.arm64.checked.mch |
483,275,704 |
+147,732 |
libraries.crossgen2.osx.arm64.checked.mch |
55,660,852 |
+0 |
libraries.pmi.osx.arm64.checked.mch |
78,453,800 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
311,227,792 |
+1,132 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
161,150,176 |
+108 |
realworld.run.osx.arm64.checked.mch |
14,659,812 |
+0 |
MinOpts (+150,252 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
16,407,348 |
+952 |
benchmarks.run_tiered.osx.arm64.checked.mch |
11,499,248 |
+328 |
coreclr_tests.run.osx.arm64.checked.mch |
331,292,952 |
+147,732 |
libraries.crossgen2.osx.arm64.checked.mch |
1,628 |
+0 |
libraries.pmi.osx.arm64.checked.mch |
121,128 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
201,319,184 |
+1,132 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
13,136,524 |
+108 |
realworld.run.osx.arm64.checked.mch |
563,956 |
+0 |
Example diffs
benchmarks.run_pgo.osx.arm64.checked.mch
-8 (-7.14%) : 33533.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128
1[uint]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M20240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M20240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M20240_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,28 +35,27 @@ G_M20240_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- sub v0.4s, v8.4s, v0.4s
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ sub v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00
G_M20240_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=2f5bb0ef) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=2f5bb0ef) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 34361.dasm - System.Numerics.Tests.Perf_VectorOf1[uint]:BitwiseOrBenchmark():System.Numerics.Vector
1[uint]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[uint]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[uint]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M29126_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M29126_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M29126_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,28 +35,27 @@ G_M29126_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- orr v0.4s, v8.4s, v0.4s
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ orr v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 18.50
G_M29126_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=dfc08e39) for method System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=dfc08e39) for method System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 35725.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M26995_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M26995_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M26995_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,28 +35,27 @@ G_M26995_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- cmgt v0.4s, v8.4s, v0.4s
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ cmgt v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00
G_M26995_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=1a25968c) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=1a25968c) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
+4 (+10.00%) : 7180.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector128
1[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte
@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0]
- uqxtn v0.8b, v0.8h
- ldr q16, [fp, #0x10] // [V01 arg1]
- uqxtn2 v0.16b, v16.8h
- ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0]
+ uqxtn v16.8b, v16.8h
+ ldr q17, [fp, #0x10] // [V01 arg1]
+ uqxtn2 v16.16b, v17.8h
+ mov v0.16b, v16.16b
+ ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+10.00%) : 59316.dasm - System.Math:CopySign(double,double):double (Tier0)
@@ -18,11 +18,12 @@ G_M65071_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M65071_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00]
- ldr d16, [fp, #0x10] // [V01 arg1]
- ldr d17, [fp, #0x18] // [V00 arg0]
- bsl v0.2d, v16.2d, v17.2d
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00]
+ ldr d17, [fp, #0x10] // [V01 arg1]
+ ldr d18, [fp, #0x18] // [V00 arg0]
+ bsl v16.2d, v17.2d, v18.2d
+ dup d0, v16.d[0]
+ ;; size=20 bbWeight=1 PerfScore 7.50
G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -30,7 +31,7 @@ G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 8000000000000000h, 8000000000000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+11.11%) : 28383.dasm - System.Runtime.Intrinsics.Vector128:Createshort:System.Runtime.Intrinsics.Vector128`1short
@@ -19,16 +19,17 @@ G_M45666_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x20] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M45666_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0]
- ldr d16, [fp, #0x20] // [V01 arg1]
- ins v0.d[1], v16.d[0]
- ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0]
+ ldr d17, [fp, #0x20] // [V01 arg1]
+ ins v16.d[1], v17.d[0]
+ mov v0.16b, v16.16b
+ ;; size=16 bbWeight=1 PerfScore 5.50
G_M45666_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)
benchmarks.run_tiered.osx.arm64.checked.mch
-8 (-7.14%) : 4941.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128
1[ulong]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M42360_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M42360_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M42360_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,28 +35,27 @@ G_M42360_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- sub v0.2d, v8.2d, v0.2d
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ sub v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 19.00
G_M42360_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=ce585a87) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=ce585a87) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 20353.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128
1[double]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M25023_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M25023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M25023_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,28 +35,27 @@ G_M25023_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- eor v0.2d, v8.2d, v0.2d
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ eor v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 18.50
G_M25023_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=3bd79e40) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=3bd79e40) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 23833.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128
1[byte]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M41222_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M41222_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M41222_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -36,28 +35,27 @@ G_M41222_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- orr v0.16b, v8.16b, v0.16b
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ orr v0.16b, v17.16b, v16.16b
;; size=84 bbWeight=1 PerfScore 18.50
G_M41222_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=dd1d5ef9) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[byte]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=dd1d5ef9) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[byte]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
+4 (+10.00%) : 39955.dasm - System.Math:CopySign(double,double):double (Tier0)
@@ -18,11 +18,12 @@ G_M65071_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M65071_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00]
- ldr d16, [fp, #0x10] // [V01 arg1]
- ldr d17, [fp, #0x18] // [V00 arg0]
- bsl v0.2d, v16.2d, v17.2d
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00]
+ ldr d17, [fp, #0x10] // [V01 arg1]
+ ldr d18, [fp, #0x18] // [V00 arg0]
+ bsl v16.2d, v17.2d, v18.2d
+ dup d0, v16.d[0]
+ ;; size=20 bbWeight=1 PerfScore 7.50
G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -30,7 +31,7 @@ G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 8000000000000000h, 8000000000000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+10.00%) : 42907.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVectordouble,float:System.Numerics.Vector`1float
@@ -18,17 +18,18 @@ G_M18259_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M18259_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0]
- fcvtn v0.2s, v0.2d
- ldr q16, [fp, #0x10] // [V01 arg1]
- fcvtn2 v0.4s, v16.2d
- ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0]
+ fcvtn v16.2s, v16.2d
+ ldr q17, [fp, #0x10] // [V01 arg1]
+ fcvtn2 v16.4s, v17.2d
+ mov v0.16b, v16.16b
+ ;; size=20 bbWeight=1 PerfScore 10.50
G_M18259_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=c762b8ac) for method System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=c762b8ac) for method System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+11.11%) : 19462.dasm - System.Runtime.Intrinsics.Vector128:Createshort:System.Runtime.Intrinsics.Vector128`1short
@@ -19,16 +19,17 @@ G_M45666_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x20] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M45666_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0]
- ldr d16, [fp, #0x20] // [V01 arg1]
- ins v0.d[1], v16.d[0]
- ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0]
+ ldr d17, [fp, #0x20] // [V01 arg1]
+ ins v16.d[1], v17.d[0]
+ mov v0.16b, v16.16b
+ ;; size=16 bbWeight=1 PerfScore 5.50
G_M45666_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)
coreclr_tests.run.osx.arm64.checked.mch
-8 (-6.67%) : 506242.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
@@ -10,22 +10,21 @@
; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Vector4>
; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M39822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
- str d8, [sp, #0x48]
+ stp fp, lr, [sp, #-0x40]!
mov fp, sp
str s0, [fp, #0x30] // [V00 arg0]
str s1, [fp, #0x34] // [V00 arg0+0x04]
str s2, [fp, #0x38] // [V00 arg0+0x08]
str s3, [fp, #0x3C] // [V00 arg0+0x0c]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
fmov s16, #1.0000
str s16, [fp, #0x3C] // [V00 arg0+0x0c]
- ldr q8, [fp, #0x30] // [V00 arg0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x30] // [V00 arg0]
+ str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -35,8 +34,8 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x0, #144 LSL #16
movk x0, #1 LSL #32
ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fadd v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01]
+ fadd v16.4s, v17.4s, v16.4s
str q16, [fp, #0x20] // [V02 tmp1]
ldr s0, [fp, #0x20] // [V02 tmp1]
ldr s1, [fp, #0x24] // [V02 tmp1+0x04]
@@ -44,23 +43,22 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c]
;; size=80 bbWeight=1 PerfScore 26.00
G_M39822_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x48]
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 36.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 33.50, instruction count 28, allocated bytes for code 112 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -68,10 +66,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 09 save_freg X#0 Z#9 (0x09); str d8, [sp, #72]
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
- E4 end
- E4 end
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
-12 (-6.12%) : 506656.dasm - Performance_2700:TestEntryPoint():int (Tier0)
@@ -11,15 +11,14 @@
; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x20] "ReplaceWithLclVar is creating a new local variable"
; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
mov fp, sp
str xzr, [fp, #0x40] // [V00 loc0]
str xzr, [fp, #0x48] // [V00 loc0+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -29,8 +28,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
movk x0, #145 LSL #16
movk x0, #1 LSL #32
- ldr q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -40,8 +39,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x0, #145 LSL #16
movk x0, #1 LSL #32
ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fmul v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01]
+ fmul v16.4s, v17.4s, v16.4s
str q16, [fp, #0x40] // [V00 loc0]
movi v16.4s, #0
str q16, [fp, #0x30] // [V02 tmp1]
@@ -60,33 +59,31 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov w0, wzr
;; size=148 bbWeight=1 PerfScore 40.50
G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #100
;; size=4 bbWeight=1 PerfScore 0.50
G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
RWD00 dq 4000000040000000h, 4000000040000000h
-; Total bytes of code 196, prolog size 20, PerfScore 53.50, instruction count 49, allocated bytes for code 196 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 184, prolog size 16, PerfScore 48.50, instruction count 46, allocated bytes for code 184 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,10 +94,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 0B save_freg X#0 Z#11 (0x0B); str d8, [sp, #88]
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
- E4 end
- E4 end
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
E4 end
-16 (-5.06%) : 185252.dasm - (dynamicClass):ILSTUBPInvoke():System.Numerics.Vector3 (MinOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xD4] do-not-enreg[]
+; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xDC] do-not-enreg[]
; V01 loc1 [V01 ] ( 1, 1 ) simd12 -> [fp+0xC0] HFA(float) do-not-enreg[SR] multireg-ret <System.Numerics.Vector3>
; V02 loc2 [V02 ] ( 1, 1 ) simd12 -> [fp+0xB0] HFA(float) do-not-enreg[S] <System.Numerics.Vector3>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,20 +21,18 @@
; TEMP_02 float -> [fp+0x70]
; TEMP_01 float -> [fp+0x6C]
;
-; Lcl frame size = 200
+; Lcl frame size = 208
G_M47779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #0xD1FFAB1E]!
- stp d8, d9, [sp, #0xD8]
- str d10, [sp, #0xE8]
- stp x19, x20, [sp, #0xF0]
- stp x21, x22, [sp, #0xD1FFAB1E]
+ stp x19, x20, [sp, #0xE0]
+ stp x21, x22, [sp, #0xF0]
stp x23, x24, [sp, #0xD1FFAB1E]
stp x25, x26, [sp, #0xD1FFAB1E]
stp x27, x28, [sp, #0xD1FFAB1E]
mov fp, sp
str x12, [fp, #0x60] // [V04 tmp1]
- ;; size=40 bbWeight=1 PerfScore 9.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add x0, fp, #32 // [V09 PInvokeFrame+0x08]
mov x1, x12
@@ -48,7 +46,7 @@ G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x1, fp, #32 // [V09 PInvokeFrame+0x08]
; byrRegs +[x1]
str x1, [x0, #0x10]
- str wzr, [fp, #0xD4] // [V00 loc0]
+ str wzr, [fp, #0xDC] // [V00 loc0]
nop
nop
ldr x0, [fp, #0x60] // [V04 tmp1]
@@ -88,12 +86,12 @@ G_M47779_IG05: ; bbWeight=1, isz, extend
; gcr arg pop 0
;; size=52 bbWeight=1 PerfScore 13.50
G_M47779_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr s8, [fp, #0x74] // [TEMP_03]
- str s8, [fp, #0x90] // [V06 tmp3]
- ldr s9, [fp, #0x70] // [TEMP_02]
- str s9, [fp, #0x94] // [V06 tmp3+0x04]
- ldr s10, [fp, #0x6C] // [TEMP_01]
- str s10, [fp, #0x98] // [V06 tmp3+0x08]
+ ldr s16, [fp, #0x74] // [TEMP_03]
+ str s16, [fp, #0x90] // [V06 tmp3]
+ ldr s17, [fp, #0x70] // [TEMP_02]
+ str s17, [fp, #0x94] // [V06 tmp3+0x04]
+ ldr s18, [fp, #0x6C] // [TEMP_01]
+ str s18, [fp, #0x98] // [V06 tmp3+0x08]
nop
ldr q16, [fp, #0x90] // [V06 tmp3]
str q16, [fp, #0xB0] // [V02 loc2]
@@ -114,26 +112,24 @@ G_M47779_IG07: ; bbWeight=1, epilog, nogc, extend
ldp x27, x28, [sp, #0xD1FFAB1E]
ldp x25, x26, [sp, #0xD1FFAB1E]
ldp x23, x24, [sp, #0xD1FFAB1E]
- ldp x21, x22, [sp, #0xD1FFAB1E]
- ldp x19, x20, [sp, #0xF0]
- ldr d10, [sp, #0xE8]
- ldp d8, d9, [sp, #0xD8]
+ ldp x21, x22, [sp, #0xF0]
+ ldp x19, x20, [sp, #0xE0]
ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
-; Total bytes of code 316, prolog size 40, PerfScore 92.00, instruction count 79, allocated bytes for code 316 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
+; Total bytes of code 300, prolog size 32, PerfScore 87.00, instruction count 75, allocated bytes for code 300 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 4
+ Code Words : 3
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -145,10 +141,8 @@ Unwind Info:
E6 save_next
E6 save_next
E6 save_next
- C8 1E save_regp X#0 Z#30 (0x1E); stp x19, x20, [sp, #240]
- DC 9D save_freg X#2 Z#29 (0x1D); str d10, [sp, #232]
- D8 1B save_fregp X#0 Z#27 (0x1B); stp d8, d9, [sp, #216]
- A7 save_fplr_x #39 (0x27); stp fp, lr, [sp, #-320]!
+ C8 1C save_regp X#0 Z#28 (0x1C); stp x19, x20, [sp, #224]
+ A5 save_fplr_x #37 (0x25); stp fp, lr, [sp, #-304]!
E4 end
E4 end
E4 end
+44 (+73.33%) : 343354.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[byte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector128
1[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector64
1[byte]):System.Runtime.Intrinsics.Vector64`1[byte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48]
+; TEMP_01 simd8 -> [fp+0x40]
+; TEMP_05 simd16 -> [fp+0x30]
+; TEMP_04 simd16 -> [fp+0x20]
+; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M2168_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0]
- str q1, [fp, #0x18] // [V01 arg1]
- str q2, [fp, #0x28] // [V01 arg1+0x10]
- str q3, [fp, #0x38] // [V01 arg1+0x20]
- str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0]
+ str q1, [fp, #0x58] // [V01 arg1]
+ str q2, [fp, #0x68] // [V01 arg1+0x10]
+ str q3, [fp, #0x78] // [V01 arg1+0x20]
+ str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M2168_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0]
- ldr q16, [fp, #0x18] // [V01 arg1]
- ldr q17, [fp, #0x28] // [V01 arg1+0x10]
- ldr q18, [fp, #0x38] // [V01 arg1+0x20]
- ldr d19, [fp, #0x10] // [V02 arg2]
- tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0]
+ str d16, [fp, #0x48] // [TEMP_02]
+ ldr q16, [fp, #0x58] // [V01 arg1]
+ str q16, [fp, #0x30] // [TEMP_05]
+ ldr q16, [fp, #0x68] // [V01 arg1+0x10]
+ str q16, [fp, #0x20] // [TEMP_04]
+ ldr q16, [fp, #0x78] // [V01 arg1+0x20]
+ str q16, [fp, #0x10] // [TEMP_03]
+ ldr d16, [fp, #0x50] // [V02 arg2]
+ str d16, [fp, #0x40] // [TEMP_01]
+ ldr d16, [fp, #0x48] // [TEMP_02]
+ ldr q17, [fp, #0x30] // [TEMP_05]
+ ldr q18, [fp, #0x20] // [TEMP_04]
+ ldr q19, [fp, #0x10] // [TEMP_03]
+ ldr d20, [fp, #0x40] // [TEMP_01]
+ tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b
+ mov v0.8b, v16.8b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M2168_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end
E4 end
+44 (+73.33%) : 340048.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector1281[ubyte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector128
1[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector128
1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0x50] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x20] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0xA0] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x70] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x60] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_05 simd16 -> [fp+0x50]
+; TEMP_04 simd16 -> [fp+0x40]
+; TEMP_03 simd16 -> [fp+0x30]
+; TEMP_02 simd16 -> [fp+0x20]
+; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 80
+; Lcl frame size = 160
G_M246_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- str q0, [fp, #0x50] // [V00 arg0]
- str q1, [fp, #0x20] // [V01 arg1]
- str q2, [fp, #0x30] // [V01 arg1+0x10]
- str q3, [fp, #0x40] // [V01 arg1+0x20]
- str q4, [fp, #0x10] // [V02 arg2]
+ str q0, [fp, #0xA0] // [V00 arg0]
+ str q1, [fp, #0x70] // [V01 arg1]
+ str q2, [fp, #0x80] // [V01 arg1+0x10]
+ str q3, [fp, #0x90] // [V01 arg1+0x20]
+ str q4, [fp, #0x60] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M246_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x50] // [V00 arg0]
- ldr q16, [fp, #0x20] // [V01 arg1]
- ldr q17, [fp, #0x30] // [V01 arg1+0x10]
- ldr q18, [fp, #0x40] // [V01 arg1+0x20]
- ldr q19, [fp, #0x10] // [V02 arg2]
- tbx v0.16b, {v16.16b, v17.16b, v18.16b}, v19.16b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr q16, [fp, #0xA0] // [V00 arg0]
+ str q16, [fp, #0x50] // [TEMP_05]
+ ldr q16, [fp, #0x70] // [V01 arg1]
+ str q16, [fp, #0x40] // [TEMP_04]
+ ldr q16, [fp, #0x80] // [V01 arg1+0x10]
+ str q16, [fp, #0x30] // [TEMP_03]
+ ldr q16, [fp, #0x90] // [V01 arg1+0x20]
+ str q16, [fp, #0x20] // [TEMP_02]
+ ldr q16, [fp, #0x60] // [V02 arg2]
+ str q16, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x50] // [TEMP_05]
+ ldr q17, [fp, #0x40] // [TEMP_04]
+ ldr q18, [fp, #0x30] // [TEMP_03]
+ ldr q19, [fp, #0x20] // [TEMP_02]
+ ldr q20, [fp, #0x10] // [TEMP_01]
+ tbx v16.16b, {v17.16b, v18.16b, v19.16b}, v20.16b
+ mov v0.16b, v16.16b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M246_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0xB0
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ 95 save_fplr_x #21 (0x15); stp fp, lr, [sp, #-176]!
E4 end
E4 end
+44 (+73.33%) : 343352.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[ubyte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector128
1[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector64
1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48]
+; TEMP_01 simd8 -> [fp+0x40]
+; TEMP_05 simd16 -> [fp+0x30]
+; TEMP_04 simd16 -> [fp+0x20]
+; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M54744_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0]
- str q1, [fp, #0x18] // [V01 arg1]
- str q2, [fp, #0x28] // [V01 arg1+0x10]
- str q3, [fp, #0x38] // [V01 arg1+0x20]
- str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0]
+ str q1, [fp, #0x58] // [V01 arg1]
+ str q2, [fp, #0x68] // [V01 arg1+0x10]
+ str q3, [fp, #0x78] // [V01 arg1+0x20]
+ str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M54744_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0]
- ldr q16, [fp, #0x18] // [V01 arg1]
- ldr q17, [fp, #0x28] // [V01 arg1+0x10]
- ldr q18, [fp, #0x38] // [V01 arg1+0x20]
- ldr d19, [fp, #0x10] // [V02 arg2]
- tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0]
+ str d16, [fp, #0x48] // [TEMP_02]
+ ldr q16, [fp, #0x58] // [V01 arg1]
+ str q16, [fp, #0x30] // [TEMP_05]
+ ldr q16, [fp, #0x68] // [V01 arg1+0x10]
+ str q16, [fp, #0x20] // [TEMP_04]
+ ldr q16, [fp, #0x78] // [V01 arg1+0x20]
+ str q16, [fp, #0x10] // [TEMP_03]
+ ldr d16, [fp, #0x50] // [V02 arg2]
+ str d16, [fp, #0x40] // [TEMP_01]
+ ldr d16, [fp, #0x48] // [TEMP_02]
+ ldr q17, [fp, #0x30] // [TEMP_05]
+ ldr q18, [fp, #0x20] // [TEMP_04]
+ ldr q19, [fp, #0x10] // [TEMP_03]
+ ldr d20, [fp, #0x40] // [TEMP_01]
+ tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b
+ mov v0.8b, v16.8b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M54744_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end
E4 end
libraries.crossgen2.osx.arm64.checked.mch
+0 (0.00%) : 22045.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
@@ -28,17 +28,17 @@ G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- fcvtzs x11, d0
- str x11, [fp, #0x18] // [V02 loc0]
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0
- sxtw x0, w0
- cmp x11, x0
+ fcvtzs x0, d0
+ str x0, [fp, #0x18] // [V02 loc0]
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0
+ sxtw x1, w1
+ cmp x0, x1
blt G_M50957_IG03
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0xD1FFAB1E LSL #16
- sxtw x0, w0
- cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0xD1FFAB1E LSL #16
+ sxtw x1, w1
+ cmp x0, x1
ble G_M50957_IG04
;; size=68 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 22039.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -33,10 +33,10 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x3
; gcrRegs -[x0 x2]
str w0, [fp, #0x24] // [V01 loc0]
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1]
- ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x0]
+ ldr x1, [x0]
; gcrRegs +[x1]
ldr w0, [fp, #0x24] // [V01 loc0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+0 (0.00%) : 22040.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
@@ -28,17 +28,17 @@ G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- fcvtzs x11, d0
- str x11, [fp, #0x18] // [V02 loc0]
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0
- sxtw x0, w0
- cmp x11, x0
+ fcvtzs x0, d0
+ str x0, [fp, #0x18] // [V02 loc0]
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0
+ sxtw x1, w1
+ cmp x0, x1
blt G_M28342_IG03
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0xD1FFAB1E LSL #16
- sxtw x0, w0
- cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0xD1FFAB1E LSL #16
+ sxtw x1, w1
+ cmp x0, x1
ble G_M28342_IG04
;; size=68 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 22044.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
@@ -34,26 +34,26 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x3
; gcrRegs -[x0 x2]
str w0, [fp, #0x24] // [V01 loc0]
- ldr x1, [fp, #0x28] // [V00 arg0]
- ; gcrRegs +[x1]
- ldr w1, [x1, #0x08]
- ; gcrRegs -[x1]
- cbz w1, G_M30483_IG03
- ldr w1, [fp, #0x24] // [V01 loc0]
- cmn w1, #1
- cset x1, ne
- str w1, [fp, #0x14] // [V04 tmp1]
+ ldr x0, [fp, #0x28] // [V00 arg0]
+ ; gcrRegs +[x0]
+ ldr w0, [x0, #0x08]
+ ; gcrRegs -[x0]
+ cbz w0, G_M30483_IG03
+ ldr w0, [fp, #0x24] // [V01 loc0]
+ cmn w0, #1
+ cset x0, ne
+ str w0, [fp, #0x14] // [V04 tmp1]
b G_M30483_IG04
;; size=68 bbWeight=1 PerfScore 22.50
G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1
- str w1, [fp, #0x14] // [V04 tmp1]
+ mov w0, #1
+ str w0, [fp, #0x14] // [V04 tmp1]
;; size=8 bbWeight=1 PerfScore 1.50
G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1]
- ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x0]
+ ldr x1, [x0]
; gcrRegs +[x1]
ldr w0, [fp, #0x14] // [V04 tmp1]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+0 (0.00%) : 153960.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -38,8 +38,8 @@ G_M16092_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- ldr w11, [fp, #0x20] // [V06 tmp1]
- cmp w0, w11
+ ldr w1, [fp, #0x20] // [V06 tmp1]
+ cmp w0, w1
beq G_M16092_IG04
mov w0, wzr
;; size=60 bbWeight=1 PerfScore 16.00
libraries.pmi.osx.arm64.checked.mch
+0 (0.00%) : 98756.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
@@ -1346,21 +1346,22 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcr arg pop 0
str x0, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0]
- ; gcrRegs +[x2]
- cbz x2, G_M12913_IG05
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [x2, #0x08]
- str x2, [fp, #0xD1FFAB1E] // [V03 loc1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ cbz x0, G_M12913_IG05
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ ldr x0, [x0, #0x08]
+ str x0, [fp, #0xD1FFAB1E] // [V03 loc1]
;; size=48 bbWeight=1 PerfScore 17.50
G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x2]
- ldr x2, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs -[x0]
+ ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x0]
+ ldr x2, [x0, #0x08]
; gcrRegs +[x2]
- ldr x2, [x2, #0x08]
ldr x1, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38358,16 +38359,18 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr x0, [x0]
+ ; gcrRegs +[x0]
+ str x0, [fp, #0xD1FFAB1E] // [V1269 tmp844]
ldr x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409]
; gcrRegs +[x2]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38393,21 +38396,23 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr x0, [x0]
+ ; gcrRegs +[x0]
+ str x0, [fp, #0xD1FFAB1E] // [V1270 tmp845]
ldr x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
- ldr x4, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ldr x4, [x0, #0x08]
; gcrRegs +[x4]
- ldr x4, [x4, #0x08]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409]
; gcrRegs +[x2]
ldr x3, [fp, #0xD1FFAB1E] // [V412 loc410]
; gcrRegs +[x3]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
movz x5, #0xD1FFAB1E // code for <unknown method>
@@ -38480,16 +38485,18 @@ G_M12913_IG650: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xF8] // [V1272 tmp847]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ ldr x0, [x0]
+ ; gcrRegs +[x0]
+ str x0, [fp, #0xF8] // [V1272 tmp847]
ldr x1, [fp, #0xF8] // [V1272 tmp847]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V31 loc29]
; gcrRegs +[x2]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38915,9 +38922,11 @@ G_M12913_IG662: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0xB0] // [V1281 tmp856]
ldr x2, [fp, #0xB0] // [V1281 tmp856]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39058,9 +39067,11 @@ G_M12913_IG670: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x90] // [V1285 tmp860]
ldr x2, [fp, #0x90] // [V1285 tmp860]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39261,9 +39272,11 @@ G_M12913_IG679: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x70] // [V1289 tmp864]
ldr x2, [fp, #0x70] // [V1289 tmp864]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39404,9 +39417,11 @@ G_M12913_IG687: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x50] // [V1293 tmp868]
ldr x2, [fp, #0x50] // [V1293 tmp868]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
libraries_tests.run.osx.arm64.Release.mch
-20 (-5.49%) : 166597.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrowsSystem.__Canon (Tier0)
@@ -5,40 +5,40 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] class-hnd <System.Action>
-; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon>
-; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] class-hnd <System.Action>
+; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon>
+; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon>
-; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "SpillCatchArg"
-; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon>
+; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "SpillCatchArg"
+; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 80
G_M19780_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x60]!
- str x19, [sp, #0x58]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- str xzr, [x9, #0x20]
+ stp xzr, xzr, [x9, #0x20]
add x2, sp, #96
- str x2, [fp, #0x50] // [V08 PSPSym]
- str x0, [fp, #0x48]
- str x0, [fp, #0x40] // [V00 TypeCtx]
- str x1, [fp, #0x38] // [V01 arg0]
- ;; size=48 bbWeight=1 PerfScore 10.00
+ str x2, [fp, #0x58] // [V08 PSPSym]
+ str x0, [fp, #0x50]
+ str x0, [fp, #0x48] // [V00 TypeCtx]
+ str x1, [fp, #0x40] // [V01 arg0]
+ ;; size=44 bbWeight=1 PerfScore 9.00
G_M19780_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x30] // [V02 loc0]
+ str xzr, [fp, #0x38] // [V02 loc0]
;; size=4 bbWeight=1 PerfScore 1.00
G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x38] // [V01 arg0]
+ ldr x0, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x1, [fp, #0x38] // [V01 arg0]
+ ldr x1, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x1]
ldr x1, [x1, #0x18]
; gcrRegs -[x1]
@@ -47,13 +47,13 @@ G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=20 bbWeight=1 PerfScore 11.00
G_M19780_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0]
cbnz x0, G_M19780_IG06
;; size=8 bbWeight=1 PerfScore 3.00
G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -70,7 +70,7 @@ G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -79,29 +79,30 @@ G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x48] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
beq G_M19780_IG08
- ;; size=56 bbWeight=1 PerfScore 21.50
+ ;; size=60 bbWeight=1 PerfScore 24.00
G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V07 tmp3]
- ldr x0, [fp, #0x10] // [V07 tmp3]
- ldr x1, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x18] // [V07 tmp3]
+ ldr x0, [fp, #0x18] // [V07 tmp3]
+ ldr x1, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -115,77 +116,72 @@ G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=52 bbWeight=0 PerfScore 0.00
G_M19780_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M19780_IG09: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
- ldr x1, [x1, #-0x10]
- str x1, [sp, #0x10]
+ ldr x1, [x1, #-0x08]
+ str x1, [sp, #0x18]
sub fp, x1, #96
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M19780_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- str x0, [fp, #0x18] // [V06 tmp2]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x20] // [V06 tmp2]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x18] // [V06 tmp2]
+ ldr x1, [fp, #0x20] // [V06 tmp2]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION
; gcrRegs -[x1]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
G_M19780_IG11: ; bbWeight=0, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M19780_IG12: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #96
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M19780_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V05 tmp1]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x28] // [V05 tmp1]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x20] // [V05 tmp1]
+ ldr x1, [fp, #0x28] // [V05 tmp1]
; gcrRegs +[x1]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x28] // [V03 loc1]
- ldr x0, [fp, #0x28] // [V03 loc1]
- str x0, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x30] // [V03 loc1]
+ ldr x0, [fp, #0x30] // [V03 loc1]
+ str x0, [fp, #0x38] // [V02 loc0]
adr x0, [G_M19780_IG04]
; gcrRegs -[x0]
;; size=40 bbWeight=1 PerfScore 16.50
G_M19780_IG14: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 364, prolog size 48, PerfScore 76.50, instruction count 91, allocated bytes for code 364 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
+; Total bytes of code 344, prolog size 44, PerfScore 73.00, instruction count 86, allocated bytes for code 344 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
; ============================================================
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 : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -193,10 +189,24 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0B save_reg X#0 Z#11 (0x0B); str x19, [sp, #88]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
E4 end
E4 end
+
+Unwind Info:
+ >> Start offset : 0xd1ffab1e (not in unwind data)
+ >> End offset : 0xd1ffab1e (not in unwind data)
+ Code Words : 1
+ Epilog Count : 0
+ E bit : 1
+ X bit : 0
+ Vers : 0
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ --- One epilog, unwind codes at 0
+ ---- Unwind codes ----
+ ---- Epilog start at index 0 ----
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
E4 end
...
-16 (-4.12%) : 183955.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)
@@ -5,46 +5,45 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]>
-; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
-; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]>
+; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M22620_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20]
- str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym]
- str x0, [fp, #0x68]
- str x0, [fp, #0x60] // [V00 TypeCtx]
- str x1, [fp, #0x50] // [V01 arg0]
- str x2, [fp, #0x58] // [V01 arg0+0x08]
- str x3, [fp, #0x48] // [V02 arg1]
- ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym]
+ str x0, [fp, #0x70]
+ str x0, [fp, #0x68] // [V00 TypeCtx]
+ str x1, [fp, #0x58] // [V01 arg0]
+ str x2, [fp, #0x60] // [V01 arg0+0x08]
+ str x3, [fp, #0x50] // [V02 arg1]
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08]
- ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08]
+ ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3]
ldr x3, [x3, #0x18]
; gcrRegs -[x3]
@@ -52,41 +51,41 @@ G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; byrRegs -[x1]
; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00
G_M22620_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3]
- ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3]
+ ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M22620_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2]
- ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2]
+ ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2]
- ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M22620_IG05
b G_M22620_IG07
;; size=76 bbWeight=1 PerfScore 34.00
G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -103,7 +102,7 @@ G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -112,35 +111,35 @@ G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x68] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
bne G_M22620_IG07
- ldr x0, [fp, #0x30] // [V05 loc2]
- ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2]
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M22620_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3]
- ldr x0, [fp, #0x10] // [V10 tmp3]
- ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3]
+ ldr x0, [fp, #0x18] // [V10 tmp3]
+ ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -157,37 +156,35 @@ G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M22620_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M22620_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1]
- ldr x0, [fp, #0x20] // [V08 tmp1]
- str x0, [fp, #0x38] // [V04 loc1]
- ldr x0, [fp, #0x38] // [V04 loc1]
- str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1]
+ ldr x0, [fp, #0x28] // [V08 tmp1]
+ str x0, [fp, #0x40] // [V04 loc1]
+ ldr x0, [fp, #0x40] // [V04 loc1]
+ str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M22620_IG03]
; gcrRegs -[x0]
;; size=24 bbWeight=1 PerfScore 7.50
G_M22620_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
; ============================================================
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 : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -195,12 +192,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
E4 end
- E4 end
- E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
@@ -210,13 +204,14 @@ Unwind Info:
E bit : 1
...
-16 (-4.12%) : 185639.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)
@@ -5,46 +5,45 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.Span`1[int]>
-; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]>
-; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
-; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.Span`1[int]>
+; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]>
+; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M57052_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20]
- str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym]
- str x0, [fp, #0x68]
- str x0, [fp, #0x60] // [V00 TypeCtx]
- str x1, [fp, #0x50] // [V01 arg0]
- str x2, [fp, #0x58] // [V01 arg0+0x08]
- str x3, [fp, #0x48] // [V02 arg1]
- ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym]
+ str x0, [fp, #0x70]
+ str x0, [fp, #0x68] // [V00 TypeCtx]
+ str x1, [fp, #0x58] // [V01 arg0]
+ str x2, [fp, #0x60] // [V01 arg0+0x08]
+ str x3, [fp, #0x50] // [V02 arg1]
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08]
- ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08]
+ ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3]
ldr x3, [x3, #0x18]
; gcrRegs -[x3]
@@ -52,41 +51,41 @@ G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; byrRegs -[x1]
; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00
G_M57052_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3]
- ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3]
+ ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M57052_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2]
- ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2]
+ ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2]
- ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M57052_IG05
b G_M57052_IG07
;; size=76 bbWeight=1 PerfScore 34.00
G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -103,7 +102,7 @@ G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -112,35 +111,35 @@ G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x68] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
bne G_M57052_IG07
- ldr x0, [fp, #0x30] // [V05 loc2]
- ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2]
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M57052_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3]
- ldr x0, [fp, #0x10] // [V10 tmp3]
- ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3]
+ ldr x0, [fp, #0x18] // [V10 tmp3]
+ ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -157,37 +156,35 @@ G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M57052_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M57052_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1]
- ldr x0, [fp, #0x20] // [V08 tmp1]
- str x0, [fp, #0x38] // [V04 loc1]
- ldr x0, [fp, #0x38] // [V04 loc1]
- str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1]
+ ldr x0, [fp, #0x28] // [V08 tmp1]
+ str x0, [fp, #0x40] // [V04 loc1]
+ ldr x0, [fp, #0x40] // [V04 loc1]
+ str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M57052_IG03]
; gcrRegs -[x0]
;; size=24 bbWeight=1 PerfScore 7.50
G_M57052_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
; ============================================================
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 : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -195,12 +192,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
E4 end
- E4 end
- E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
@@ -210,13 +204,14 @@ Unwind Info:
E bit : 1
...
+12 (+12.50%) : 415483.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
@@ -24,28 +24,31 @@ G_M34860_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str x0, [fp, #0x38] // [V00 this]
;; size=28 bbWeight=1 PerfScore 6.50
G_M34860_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x30] // [V01 arg1]
+ ldr d16, [fp, #0x30] // [V01 arg1]
+ fmov d0, d16
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
str d0, [fp, #0x18] // [V04 loc0]
- ldr d0, [fp, #0x28] // [V02 arg2]
- ldr d2, [fp, #0x20] // [V03 arg3]
+ ldr d16, [fp, #0x28] // [V02 arg2]
+ fmov d0, d16
+ ldr d16, [fp, #0x20] // [V03 arg3]
+ fmov d2, d16
ldr d1, [fp, #0x18] // [V04 loc0]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x0, [x0]
blr x0
- ;; size=60 bbWeight=1 PerfScore 20.00
+ ;; size=72 bbWeight=1 PerfScore 21.50
G_M34860_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 28.50, instruction count 24, allocated bytes for code 96 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
+; Total bytes of code 108, prolog size 12, PerfScore 30.00, instruction count 27, allocated bytes for code 108 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
; ============================================================
Unwind Info:
@@ -56,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+14.29%) : 348065.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector128
1[double]):double (Tier0)
@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q0, [fp, #0x10] // [V00 arg0]
;; size=12 bbWeight=1 PerfScore 2.50
G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0]
- faddp d0, v0.2d
- ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0]
+ faddp d16, v16.2d
+ dup d0, v16.d[0]
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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 (+14.29%) : 350673.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector128
1[double]):double (Instrumented Tier0)
@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q0, [fp, #0x10] // [V00 arg0]
;; size=12 bbWeight=1 PerfScore 2.50
G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0]
- faddp d0, v0.2d
- ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0]
+ faddp d16, v16.2d
+ dup d0, v16.d[0]
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
-8 (-1.57%) : 14236.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple
2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
@@ -7,39 +7,38 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x60] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
-; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x48] do-not-enreg[] must-init
-; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x44] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x68] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x54] do-not-enreg[] must-init
+; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x50] do-not-enreg[] must-init
+; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x40] do-not-enreg[] "impSpillStackEnsure"
-; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x3C] do-not-enreg[] must-init
-; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init
-; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure"
-; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "impSpillStackEnsure"
-; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x48] do-not-enreg[] "impSpillStackEnsure"
+; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x44] do-not-enreg[] must-init
+; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init
+; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] "impSpillStackEnsure"
+; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "impSpillStackEnsure"
+; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure"
+; TEMP_01 ref -> [fp+0x18]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
- add x9, fp, #36
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
- str xzr, [x9, #0x20]
- str wzr, [x9, #0x28]
- str x0, [fp, #0x70] // [V00 this]
- str x1, [fp, #0x60] // [V01 arg1]
- str x2, [fp, #0x68] // [V01 arg1+0x08]
- str x3, [fp, #0x50] // [V02 arg2]
- str x4, [fp, #0x58] // [V02 arg2+0x08]
- ;; size=52 bbWeight=1 PerfScore 11.50
+ stp q16, q16, [x9, #0x20]
+ str x0, [fp, #0x78] // [V00 this]
+ str x1, [fp, #0x68] // [V01 arg1]
+ str x2, [fp, #0x70] // [V01 arg1+0x08]
+ str x3, [fp, #0x58] // [V02 arg2]
+ str x4, [fp, #0x60] // [V02 arg2+0x08]
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -53,9 +52,9 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x0, [fp, #0x60] // [V01 arg1]
+ ldr x0, [fp, #0x68] // [V01 arg1]
; gcrRegs +[x0]
- ldr x1, [fp, #0x50] // [V02 arg2]
+ ldr x1, [fp, #0x58] // [V02 arg2]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -64,49 +63,48 @@ G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- str w0, [fp, #0x40] // [V07 tmp1]
- ldr w1, [fp, #0x40] // [V07 tmp1]
- uxtb w1, w1
- str w1, [fp, #0x4C] // [V03 loc0]
- ldr w1, [fp, #0x4C] // [V03 loc0]
- cbz w1, G_M13185_IG05
+ str w0, [fp, #0x48] // [V07 tmp1]
+ ldr w0, [fp, #0x48] // [V07 tmp1]
+ uxtb w0, w0
+ str w0, [fp, #0x54] // [V03 loc0]
+ ldr w0, [fp, #0x54] // [V03 loc0]
+ cbz w0, G_M13185_IG05
nop
- str wzr, [fp, #0x48] // [V04 loc1]
+ str wzr, [fp, #0x50] // [V04 loc1]
nop
b G_M13185_IG11
;; size=72 bbWeight=1 PerfScore 20.50
G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
- ; gcrRegs +[x1]
- cbz x1, G_M13185_IG06
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
- cmp x1, #0
- cset x1, eq
- ; gcrRegs -[x1]
- str w1, [fp, #0x3C] // [V08 tmp2]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
+ ; gcrRegs +[x0]
+ cbz x0, G_M13185_IG06
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
+ cmp x0, #0
+ cset x0, eq
+ ; gcrRegs -[x0]
+ str w0, [fp, #0x44] // [V08 tmp2]
b G_M13185_IG07
;; size=28 bbWeight=1 PerfScore 8.00
G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1
- str w1, [fp, #0x3C] // [V08 tmp2]
+ mov w0, #1
+ str w0, [fp, #0x44] // [V08 tmp2]
;; size=8 bbWeight=1 PerfScore 1.50
G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w1, [fp, #0x3C] // [V08 tmp2]
- uxtb w1, w1
- str w1, [fp, #0x44] // [V05 loc2]
- ldr w1, [fp, #0x44] // [V05 loc2]
- cbz w1, G_M13185_IG08
+ ldr w0, [fp, #0x44] // [V08 tmp2]
+ uxtb w0, w0
+ str w0, [fp, #0x4C] // [V05 loc2]
+ ldr w0, [fp, #0x4C] // [V05 loc2]
+ cbz w0, G_M13185_IG08
nop
- add x1, fp, #96 // [V01 arg1]
+ add x1, fp, #104 // [V01 arg1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
bl CORINFO_HELP_BOX
; gcrRegs +[x0]
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- add x1, fp, #80 // [V02 arg2]
+ str x0, [fp, #0x18] // [TEMP_01]
+ add x1, fp, #88 // [V02 arg2]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
@@ -114,18 +112,20 @@ G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bl CORINFO_HELP_BOX
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x18] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
cset x0, eq
; gcrRegs -[x0]
- str w0, [fp, #0x48] // [V04 loc1]
+ str w0, [fp, #0x50] // [V04 loc1]
nop
b G_M13185_IG11
- ;; size=88 bbWeight=1 PerfScore 17.00
+ ;; size=92 bbWeight=1 PerfScore 19.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19]
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ; gcrRegs -[x1]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x1, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
@@ -133,9 +133,9 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1, #0x20]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x30] // [V09 tmp3]
- ldr x0, [fp, #0x58] // [V02 arg2+0x08]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ str x0, [fp, #0x38] // [V09 tmp3]
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
@@ -143,13 +143,13 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1, #0x20]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x28] // [V10 tmp4]
- ldr x0, [fp, #0x30] // [V09 tmp3]
- ldr x1, [fp, #0x28] // [V10 tmp4]
+ str x0, [fp, #0x30] // [V10 tmp4]
+ ldr x0, [fp, #0x38] // [V09 tmp3]
+ ldr x1, [fp, #0x30] // [V10 tmp4]
; gcrRegs +[x1]
cmp x0, x1
bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
movz x1, #0xD1FFAB1E // code for <unknown method>
; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
@@ -159,8 +159,8 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [fp, #0x20] // [V12 tmp6]
- ldr x0, [fp, #0x58] // [V02 arg2+0x08]
+ str w0, [fp, #0x28] // [V12 tmp6]
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -170,14 +170,14 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [fp, #0x1C] // [V13 tmp7]
- ldr w0, [fp, #0x20] // [V12 tmp6]
- ldr w1, [fp, #0x1C] // [V13 tmp7]
+ str w0, [fp, #0x24] // [V13 tmp7]
+ ldr w0, [fp, #0x28] // [V12 tmp6]
+ ldr w1, [fp, #0x24] // [V13 tmp7]
cmp w0, w1
bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -187,41 +187,40 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- str w0, [fp, #0x18] // [V14 tmp8]
- ldr w0, [fp, #0x18] // [V14 tmp8]
- str w0, [fp, #0x24] // [V11 tmp5]
+ str w0, [fp, #0x20] // [V14 tmp8]
+ ldr w0, [fp, #0x20] // [V14 tmp8]
+ str w0, [fp, #0x2C] // [V11 tmp5]
...
-4 (-1.15%) : 153511.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -5,75 +5,74 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x28] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init
-; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] must-init
+; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x40] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x30] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init
+; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] must-init
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call"
-; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "non-inline candidate call"
-; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x14] do-not-enreg[] "non-inline candidate call"
+; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "non-inline candidate call"
+; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "non-inline candidate call"
+; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call"
+; TEMP_01 int -> [fp+0x18]
;
-; Lcl frame size = 56
+; Lcl frame size = 64
G_M13983_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x50]!
- str x19, [sp, #0x48]
mov fp, sp
- str wzr, [fp, #0x24] // [V02 loc0]
- str wzr, [fp, #0x20] // [V03 loc1]
- str x0, [fp, #0x38] // [V00 arg0]
- str x1, [fp, #0x40] // [V00 arg0+0x08]
- str x2, [fp, #0x28] // [V01 arg1]
- str x3, [fp, #0x30] // [V01 arg1+0x08]
- ;; size=36 bbWeight=1 PerfScore 8.50
+ str wzr, [fp, #0x2C] // [V02 loc0]
+ str wzr, [fp, #0x28] // [V03 loc1]
+ str x0, [fp, #0x40] // [V00 arg0]
+ str x1, [fp, #0x48] // [V00 arg0+0x08]
+ str x2, [fp, #0x30] // [V01 arg1]
+ str x3, [fp, #0x38] // [V01 arg1+0x08]
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M13983_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- str w0, [fp, #0x1C] // [V05 tmp1]
- add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x24] // [V05 tmp1]
+ add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- ldr w1, [fp, #0x1C] // [V05 tmp1]
+ ldr w1, [fp, #0x24] // [V05 tmp1]
cmp w0, w1
beq G_M13983_IG04
mov w0, wzr
;; size=68 bbWeight=1 PerfScore 17.00
G_M13983_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M13983_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- str w0, [fp, #0x18] // [V06 tmp2]
- add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x20] // [V06 tmp2]
+ add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- ldr w1, [fp, #0x18] // [V06 tmp2]
+ ldr w1, [fp, #0x20] // [V06 tmp2]
eor w0, w0, w1
- str w0, [fp, #0x24] // [V02 loc0]
- str wzr, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x2C] // [V02 loc0]
+ str wzr, [fp, #0x28] // [V03 loc1]
b G_M13983_IG06
;; size=72 bbWeight=1 PerfScore 18.50
G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- add x0, fp, #56 // [V00 arg0]
- ldr w1, [fp, #0x20] // [V03 loc1]
+ add x0, fp, #64 // [V00 arg0]
+ ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
@@ -82,10 +81,11 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs +[x0]
ldrb w0, [x0]
; byrRegs -[x0]
- str w0, [fp, #0x14] // [V07 tmp3]
- ldr w19, [fp, #0x24] // [V02 loc0]
- add x0, fp, #40 // [V01 arg1]
- ldr w1, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x1C] // [V07 tmp3]
+ ldr w0, [fp, #0x2C] // [V02 loc0]
+ str w0, [fp, #0x18] // [TEMP_01]
+ add x0, fp, #48 // [V01 arg1]
+ ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
@@ -94,46 +94,46 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs +[x0]
ldrb w0, [x0]
; byrRegs -[x0]
- ldr w1, [fp, #0x14] // [V07 tmp3]
+ ldr w1, [fp, #0x1C] // [V07 tmp3]
eor w0, w0, w1
- orr w0, w19, w0
- str w0, [fp, #0x24] // [V02 loc0]
- ldr w0, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x18] // [TEMP_01]
+ orr w0, w1, w0
+ str w0, [fp, #0x2C] // [V02 loc0]
+ ldr w0, [fp, #0x28] // [V03 loc1]
add w0, w0, #1
- str w0, [fp, #0x20] // [V03 loc1]
- ;; size=100 bbWeight=1 PerfScore 32.50
+ str w0, [fp, #0x28] // [V03 loc1]
+ ;; size=108 bbWeight=1 PerfScore 35.50
G_M13983_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
- ldr w1, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x28] // [V03 loc1]
cmp w0, w1
bgt G_M13983_IG05
- ldr w0, [fp, #0x24] // [V02 loc0]
+ ldr w0, [fp, #0x2C] // [V02 loc0]
cmp w0, #0
cset x0, eq
;; size=48 bbWeight=1 PerfScore 12.50
G_M13983_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 348, prolog size 20, PerfScore 97.00, instruction count 87, allocated bytes for code 348 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 344, prolog size 16, PerfScore 95.00, instruction count 86, allocated bytes for code 344 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 87 (0x00057) Actual length = 348 (0x00015c)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -144,10 +144,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 09 save_reg X#0 Z#9 (0x09); str x19, [sp, #72]
89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
E4 end
- E4 end
- E4 end
+0 (0.00%) : 2077.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1[System.__Canon]:.ctor():this (MinOpts)
@@ -124,15 +124,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x5
; gcrRegs -[x0-x4]
; gcr arg pop 0
- ldr x14, [fp, #0x70] // [V02 tmp1]
- ; gcrRegs +[x14]
- add x14, x14, #144
- ; gcrRegs -[x14]
+ ldr x0, [fp, #0x70] // [V02 tmp1]
+ ; gcrRegs +[x0]
+ add x14, x0, #144
; byrRegs +[x14]
ldr x15, [fp, #0x48] // [V07 tmp6]
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
ldr x0, [fp, #0x78] // [V00 this]
; gcrRegs +[x0]
@@ -201,15 +200,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x5
; gcrRegs -[x0-x4]
; gcr arg pop 0
- ldr x14, [fp, #0x40] // [V08 tmp7]
- ; gcrRegs +[x14]
- add x14, x14, #152
- ; gcrRegs -[x14]
+ ldr x0, [fp, #0x40] // [V08 tmp7]
+ ; gcrRegs +[x0]
+ add x14, x0, #152
; byrRegs +[x14]
ldr x15, [fp, #0x18] // [V13 tmp12]
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
nop
;; size=428 bbWeight=1 PerfScore 184.00
+4 (+2.50%) : 287136.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|1_0(byref,byref,int,int) (MinOpts)
@@ -36,25 +36,26 @@ G_M37733_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M37733_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- adds w1, w1, #1
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ adds w0, w0, #1
bvc G_M37733_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 8.00
G_M37733_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M37733_IG06
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 6.50
G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -76,13 +77,13 @@ G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=56 bbWeight=1 PerfScore 18.00
+ ;; size=60 bbWeight=1 PerfScore 18.50
G_M37733_IG07: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 24, PerfScore 46.00, instruction count 40, allocated bytes for code 160 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
+; Total bytes of code 164, prolog size 24, PerfScore 46.50, instruction count 41, allocated bytes for code 164 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -93,7 +94,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.86%) : 284048.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|83_0(byref,byref,int) (MinOpts)
@@ -34,19 +34,20 @@ G_M960_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M960_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M960_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 12.00
G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -67,13 +68,13 @@ G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M960_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -84,7 +85,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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 (+2.86%) : 288220.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|35_0(byref,byref,int) (MinOpts)
@@ -34,19 +34,20 @@ G_M32397_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M32397_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M32397_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 12.00
G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -67,13 +68,13 @@ G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M32397_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -84,7 +85,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
realworld.run.osx.arm64.checked.mch
+0 (0.00%) : 4586.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
@@ -2596,41 +2596,39 @@ G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1]
blr x1
str x0, [fp, #0xD1FFAB1E] // [V11 loc9]
- ldr x2, [fp, #0xD1FFAB1E] // [V11 loc9]
- ; gcrRegs +[x2]
- cbz x2, G_M23076_IG09
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ldrb w2, [x2, #0x40]
- ; gcrRegs -[x2]
+ ldr x0, [fp, #0xD1FFAB1E] // [V11 loc9]
+ cbz x0, G_M23076_IG09
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
+ ldrb w0, [x0, #0x40]
+ ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V73 tmp3]
+ str w0, [fp, xip1] // [V73 tmp3]
b G_M23076_IG10
;; size=152 bbWeight=1 PerfScore 45.50
G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E
str wzr, [fp, xip1] // [V73 tmp3]
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov xip1, #0xD1FFAB1E
- ldr w2, [fp, xip1] // [V73 tmp3]
- uxtb w2, w2
+ ldr w0, [fp, xip1] // [V73 tmp3]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V09 loc7]
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ; gcrRegs +[x2]
- ldr x2, [x2, #0x30]
- str x2, [fp, #0xD1FFAB1E] // [V12 loc10]
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ldr w2, [x2, #0x38]
- ; gcrRegs -[x2]
- cmp w2, #0
- bgt G_M23076_IG27
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ; gcrRegs +[x2]
- ldr x2, [x2, #0x30]
+ str w0, [fp, xip1] // [V09 loc7]
ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
; gcrRegs +[x0]
+ ldr x0, [x0, #0x30]
+ str x0, [fp, #0xD1FFAB1E] // [V12 loc10]
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
+ ldr w0, [x0, #0x38]
+ ; gcrRegs -[x0]
+ cmp w0, #0
+ bgt G_M23076_IG27
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
+ ; gcrRegs +[x0]
+ ldr x2, [x0, #0x30]
+ ; gcrRegs +[x2]
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
ldr x1, [fp, #0xD1FFAB1E] // [V04 loc2]
; gcrRegs +[x1]
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -3969,27 +3967,27 @@ G_M23076_IG51: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0]
cmp w0, #197
bne G_M23076_IG54
- ldr x1, [fp, #0xD1FFAB1E] // [V02 loc0]
- ; gcrRegs +[x1]
- add x1, x1, #16
- ; gcrRegs -[x1]
- ; byrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ ; gcrRegs +[x0]
+ add x0, x0, #16
+ ; gcrRegs -[x0]
+ ; byrRegs +[x0]
;; size=68 bbWeight=1 PerfScore 22.00
G_M23076_IG52: ; bbWeight=1, nogc, extend
- add x0, x1, #20
+ add x1, x0, #20
mov x2, #0xD1FFAB1E
add x2, fp, x2
- ldp x3, xip1, [x0]
+ ldp x3, xip1, [x1]
stp x3, xip1, [x2]
- ldr w3, [x0, #0x10]
+ ldr w3, [x1, #0x10]
str w3, [x2, #0x10]
;; size=28 bbWeight=1 PerfScore 10.50
G_M23076_IG53: ; bbWeight=1, extend
mov xip1, #0xD1FFAB1E
add x1, fp, xip1 // [V1653 tmp1583]
- ; byrRegs -[x1]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
@@ -17583,8 +17581,8 @@ G_M23076_IG1254: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
blr x1
; gcrRegs -[x0]
str w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
- ldr w1, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
- cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
+ cmp w0, #26
bhi G_M23076_IG1255
ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
mov w0, w0
@@ -21074,9 +21072,9 @@ G_M23076_IG1570: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs -[x0]
cmp w0, #19
bne G_M23076_IG1571
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V325 tmp255]
+ str w0, [fp, xip1] // [V325 tmp255]
b G_M23076_IG1572
;; size=68 bbWeight=1 PerfScore 17.50
G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -21085,8 +21083,8 @@ G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG1572: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V325 tmp255]
- cbz w1, G_M23076_IG4955
+ ldr w0, [fp, xip1] // [V325 tmp255]
+ cbz w0, G_M23076_IG4955
b G_M23076_IG4944
;; size=16 bbWeight=1 PerfScore 4.50
G_M23076_IG1573: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -26732,8 +26730,8 @@ G_M23076_IG1990: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
blr x1
; gcrRegs -[x0]
str w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
- ldr w1, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
- cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
+ cmp w0, #26
bhi G_M23076_IG1991
ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
mov w0, w0
@@ -62283,8 +62281,8 @@ G_M23076_IG4956: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
blr x1
; gcrRegs -[x0]
str w0, [fp, #0x60] // [V2422 tmp2352]
- ldr w1, [fp, #0x60] // [V2422 tmp2352]
- cmp w1, #26
+ ldr w0, [fp, #0x60] // [V2422 tmp2352]
+ cmp w0, #26
bhi G_M23076_IG4957
ldr w0, [fp, #0x60] // [V2422 tmp2352]
mov w0, w0
@@ -62315,10 +62313,10 @@ G_M23076_IG4960: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG4961: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V267 tmp197]
- uxtb w1, w1
+ ldr w0, [fp, xip1] // [V267 tmp197]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50
G_M23076_IG4962: ; bbWeight=1, nogc, extend
mov x0, #0xD1FFAB1E
@@ -62444,9 +62442,9 @@ G_M23076_IG4969: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs -[x0]
cmp w0, #25
bne G_M23076_IG4970
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V444 tmp374]
+ str w0, [fp, xip1] // [V444 tmp374]
b G_M23076_IG4971
;; size=48 bbWeight=1 PerfScore 12.00
G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -62455,10 +62453,10 @@ G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG4971: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V444 tmp374]
- uxtb w1, w1
+ ldr w0, [fp, xip1] // [V444 tmp374]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V19 loc17]
+ str w0, [fp, xip1] // [V19 loc17]
;; size=20 bbWeight=1 PerfScore 4.50
G_M23076_IG4972: ; bbWeight=1, nogc, extend
mov x0, #0xD1FFAB1E
@@ -62586,9 +62584,9 @@ G_M23076_IG4979: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs -[x0]
cmp w0, #25
bne G_M23076_IG4980
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V131 tmp61]
+ str w0, [fp, xip1] // [V131 tmp61]
b G_M23076_IG4981
;; size=48 bbWeight=1 PerfScore 12.00
G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -62597,10 +62595,10 @@ G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG4981: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V131 tmp61]
- uxtb w1, w1
+ ldr w0, [fp, xip1] // [V131 tmp61]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50
G_M23076_IG4982: ; bbWeight=1, nogc, extend
mov x0, #0xD1FFAB1E
@@ -64069,13 +64067,12 @@ G_M23076_IG5065: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ldr x1, [x1]
blr x1
str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62]
- ; gcrRegs +[x1]
- cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62]
+ cbz x0, G_M23076_IG5099
b G_M23076_IG5090
;; size=40 bbWeight=1 PerfScore 12.50
G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -64084,13 +64081,12 @@ G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ldr x1, [x1]
blr x1
str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62]
- ; gcrRegs +[x1]
- cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62]
+ cbz x0, G_M23076_IG5099
b G_M23076_IG5090
;; size=40 bbWeight=1 PerfScore 12.50
...
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
17,441 |
241 |
485 |
16,715 |
-1,828 |
+2,780 |
benchmarks.run_tiered.osx.arm64.checked.mch |
13,642 |
236 |
380 |
13,026 |
-1,796 |
+2,124 |
coreclr_tests.run.osx.arm64.checked.mch |
144,626 |
4,431 |
7,030 |
133,165 |
-32,972 |
+180,704 |
libraries.crossgen2.osx.arm64.checked.mch |
5 |
0 |
0 |
5 |
-0 |
+0 |
libraries.pmi.osx.arm64.checked.mch |
1 |
0 |
0 |
1 |
-0 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
177,655 |
516 |
1,215 |
175,924 |
-6,232 |
+7,364 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
11,766 |
2 |
30 |
11,734 |
-12 |
+120 |
realworld.run.osx.arm64.checked.mch |
1 |
0 |
0 |
1 |
-0 |
+0 |
|
365,137 |
5,426 |
9,140 |
350,571 |
-42,840 |
+193,092 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run_pgo.osx.arm64.checked.mch |
84,643 |
48,345 |
36,298 |
183 (0.22%) |
183 (0.22%) |
benchmarks.run_tiered.osx.arm64.checked.mch |
48,253 |
37,331 |
10,922 |
63 (0.13%) |
63 (0.13%) |
coreclr_tests.run.osx.arm64.checked.mch |
586,148 |
358,028 |
228,120 |
437 (0.07%) |
437 (0.07%) |
libraries.crossgen2.osx.arm64.checked.mch |
233,760 |
15 |
233,745 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.osx.arm64.checked.mch |
313,582 |
18 |
313,564 |
2,034 (0.64%) |
2,034 (0.64%) |
libraries_tests.run.osx.arm64.Release.mch |
631,292 |
462,062 |
169,230 |
965 (0.15%) |
965 (0.15%) |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
301,027 |
21,558 |
279,469 |
2,087 (0.69%) |
2,087 (0.69%) |
realworld.run.osx.arm64.checked.mch |
31,217 |
3 |
31,214 |
326 (1.03%) |
326 (1.03%) |
|
2,229,922 |
927,360 |
1,302,562 |
6,095 (0.27%) |
6,095 (0.27%) |
jit-analyze output
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: 34339712 (overridden on cmd)
Total bytes of diff: 34340664 (overridden on cmd)
Total bytes of delta: 952 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
152 : 1998.dasm (36.19 % of base)
152 : 26806.dasm (33.63 % of base)
68 : 44953.dasm (39.53 % of base)
40 : 81727.dasm (1.60 % of base)
40 : 81730.dasm (1.60 % of base)
24 : 31848.dasm (1.37 % of base)
24 : 32752.dasm (0.32 % of base)
24 : 26780.dasm (0.32 % of base)
16 : 27168.dasm (2.26 % of base)
16 : 42812.dasm (1.00 % of base)
16 : 21329.dasm (3.54 % of base)
16 : 17236.dasm (1.07 % of base)
16 : 37514.dasm (1.01 % of base)
16 : 44463.dasm (0.42 % of base)
16 : 72191.dasm (4.94 % of base)
16 : 77326.dasm (1.80 % of base)
12 : 29316.dasm (1.30 % of base)
12 : 28823.dasm (1.27 % of base)
12 : 15450.dasm (1.36 % of base)
12 : 30542.dasm (1.22 % of base)
Top file improvements (bytes):
-24 : 18315.dasm (-1.15 % of base)
-16 : 13793.dasm (-0.14 % of base)
-16 : 26321.dasm (-0.29 % of base)
-16 : 48684.dasm (-0.92 % of base)
-16 : 61761.dasm (-2.08 % of base)
-16 : 4374.dasm (-0.55 % of base)
-12 : 14641.dasm (-0.13 % of base)
-12 : 23425.dasm (-1.07 % of base)
-12 : 4737.dasm (-3.66 % of base)
-12 : 14162.dasm (-1.45 % of base)
-12 : 63343.dasm (-2.83 % of base)
-12 : 63682.dasm (-2.05 % of base)
-8 : 34361.dasm (-7.14 % of base)
-8 : 35725.dasm (-7.14 % of base)
-8 : 35813.dasm (-7.14 % of base)
-8 : 39973.dasm (-7.14 % of base)
-8 : 4350.dasm (-7.14 % of base)
-8 : 84221.dasm (-7.14 % of base)
-8 : 26841.dasm (-5.56 % of base)
-8 : 40537.dasm (-7.14 % of base)
75 total files with Code Size differences (39 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
152 (33.63 % of base) : 26806.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
152 (36.19 % of base) : 1998.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
68 (39.53 % of base) : 44953.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
40 (1.60 % of base) : 81727.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
40 (1.60 % of base) : 81730.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
24 (0.32 % of base) : 32752.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
24 (0.32 % of base) : 26780.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
24 (1.37 % of base) : 31848.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
16 (0.42 % of base) : 44463.dasm - Neural:read_data_file():this (Instrumented Tier0)
16 (1.00 % of base) : 42812.dasm - NeuralJagged:Init() (Instrumented Tier0)
16 (1.01 % of base) : 37514.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Instrumented Tier0)
16 (1.07 % of base) : 17236.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
16 (4.94 % of base) : 72191.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
16 (1.80 % of base) : 77326.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
16 (2.26 % of base) : 27168.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Instrumented Tier0)
16 (3.54 % of base) : 21329.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
12 (1.30 % of base) : 29316.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeychainCreateTemporary(System.String,int,ulong,byref):int (Instrumented Tier0)
12 (1.36 % of base) : 15450.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeychainCreateTemporary(System.String,int,ulong,byref):int (Tier0)
12 (1.27 % of base) : 28823.dasm - Interop+AppleCrypto:AppleCryptoNative_SslSetTargetName(System.Net.SafeSslHandle,System.String,int,byref):int (Tier0)
12 (1.22 % of base) : 30542.dasm - Interop+libc:clonefile(System.String,System.String,int):int (Tier0)
Top method improvements (bytes):
-24 (-1.15 % of base) : 18315.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Instrumented Tier0)
-16 (-0.29 % of base) : 26321.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
-16 (-0.92 % of base) : 48684.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
-16 (-0.55 % of base) : 4374.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
-16 (-0.14 % of base) : 13793.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
-16 (-2.08 % of base) : 61761.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
-12 (-2.05 % of base) : 63682.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
-12 (-2.83 % of base) : 63343.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-12 (-3.66 % of base) : 4737.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-12 (-1.07 % of base) : 23425.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
-12 (-1.45 % of base) : 14162.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
-12 (-0.13 % of base) : 14641.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
-8 (-5.56 % of base) : 26841.dasm - System.Numerics.Tests.Perf_Vector3:AddFunctionBenchmark():System.Numerics.Vector3:this (Tier0)
-8 (-6.06 % of base) : 22849.dasm - System.Numerics.Tests.Perf_Vector4:MultiplyFunctionBenchmark():System.Numerics.Vector4:this (Tier0)
-8 (-6.06 % of base) : 34069.dasm - System.Numerics.Tests.Perf_Vector4:MultiplyOperatorBenchmark():System.Numerics.Vector4:this (Tier0)
-8 (-7.14 % of base) : 34361.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
-8 (-5.71 % of base) : 22769.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:EqualityOperatorBenchmark():ubyte:this (Tier0)
-8 (-0.37 % of base) : 6209.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
-8 (-7.14 % of base) : 39973.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 79729.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
Top method regressions (percentages):
68 (39.53 % of base) : 44953.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
152 (36.19 % of base) : 1998.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
152 (33.63 % of base) : 26806.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
4 (11.11 % of base) : 28383.dasm - System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
4 (10.00 % of base) : 7180.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
4 (10.00 % of base) : 906.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (10.00 % of base) : 59316.dasm - System.Math:CopySign(double,double):double (Tier0)
4 (10.00 % of base) : 41402.dasm - System.MathF:CopySign(float,float):float (Tier0)
4 (10.00 % of base) : 65518.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
4 (8.33 % of base) : 26242.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (6.67 % of base) : 81934.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
4 (6.25 % of base) : 52731.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
4 (6.25 % of base) : 48589.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
4 (6.25 % of base) : 62103.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
4 (5.26 % of base) : 25047.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
4 (5.26 % of base) : 40264.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
4 (5.00 % of base) : 69316.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
16 (4.94 % of base) : 72191.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
8 (4.88 % of base) : 24866.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 21246.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
Top method improvements (percentages):
-8 (-7.14 % of base) : 34361.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 39973.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 79729.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 22750.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 80869.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 35813.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 77561.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 66061.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseAndOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 84221.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 35725.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 65921.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 71445.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 73925.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MultiplyOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 20066.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 60509.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 11570.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
-8 (-7.14 % of base) : 4350.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[int]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 41385.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[short]:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[short]:this (Tier0)
-8 (-7.14 % of base) : 33533.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 40537.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (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: 15547160 (overridden on cmd)
Total bytes of diff: 15547488 (overridden on cmd)
Total bytes of delta: 328 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
152 : 2011.dasm (36.19 % of base)
68 : 32604.dasm (39.53 % of base)
40 : 47383.dasm (1.85 % of base)
24 : 23575.dasm (0.35 % of base)
24 : 23829.dasm (0.35 % of base)
24 : 27498.dasm (1.37 % of base)
16 : 22566.dasm (2.48 % of base)
16 : 14763.dasm (3.54 % of base)
16 : 31961.dasm (1.04 % of base)
16 : 46487.dasm (1.94 % of base)
16 : 18417.dasm (1.07 % of base)
16 : 32475.dasm (0.43 % of base)
16 : 44922.dasm (4.94 % of base)
12 : 929.dasm (0.50 % of base)
12 : 24652.dasm (1.27 % of base)
12 : 26665.dasm (1.22 % of base)
12 : 17033.dasm (1.36 % of base)
12 : 43010.dasm (0.71 % of base)
8 : 14665.dasm (4.88 % of base)
8 : 22292.dasm (4.88 % of base)
Top file improvements (bytes):
-24 : 19177.dasm (-1.32 % of base)
-20 : 13162.dasm (-1.37 % of base)
-16 : 23208.dasm (-0.32 % of base)
-16 : 42635.dasm (-2.08 % of base)
-16 : 12993.dasm (-0.61 % of base)
-16 : 6033.dasm (-0.18 % of base)
-12 : 41168.dasm (-2.83 % of base)
-12 : 11595.dasm (-3.66 % of base)
-12 : 16274.dasm (-0.13 % of base)
-12 : 21553.dasm (-1.07 % of base)
-12 : 15944.dasm (-1.45 % of base)
-8 : 14133.dasm (-5.71 % of base)
-8 : 20505.dasm (-6.06 % of base)
-8 : 30713.dasm (-7.14 % of base)
-8 : 30717.dasm (-7.14 % of base)
-8 : 44145.dasm (-7.14 % of base)
-8 : 4609.dasm (-0.37 % of base)
-8 : 7649.dasm (-5.41 % of base)
-8 : 7969.dasm (-0.81 % of base)
-8 : 23833.dasm (-7.14 % of base)
74 total files with Code Size differences (37 improved, 37 regressed), 20 unchanged.
Top method regressions (bytes):
152 (36.19 % of base) : 2011.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
68 (39.53 % of base) : 32604.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
40 (1.85 % of base) : 47383.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0)
24 (0.35 % of base) : 23829.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Tier0)
24 (0.35 % of base) : 23575.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Tier0)
24 (1.37 % of base) : 27498.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
16 (0.43 % of base) : 32475.dasm - Neural:read_data_file():this (Tier0)
16 (1.04 % of base) : 31961.dasm - NeuralJagged:Init() (Tier0)
16 (1.07 % of base) : 18417.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
16 (4.94 % of base) : 44922.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
16 (1.94 % of base) : 46487.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
16 (2.48 % of base) : 22566.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Tier0)
16 (3.54 % of base) : 14763.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
12 (1.36 % of base) : 17033.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeychainCreateTemporary(System.String,int,ulong,byref):int (Tier0)
12 (1.27 % of base) : 24652.dasm - Interop+AppleCrypto:AppleCryptoNative_SslSetTargetName(System.Net.SafeSslHandle,System.String,int,byref):int (Tier0)
12 (1.22 % of base) : 26665.dasm - Interop+libc:clonefile(System.String,System.String,int):int (Tier0)
12 (0.71 % of base) : 43010.dasm - Interop+Sys:ForkAndExecProcess(System.String,ulong,ulong,System.String,int,int,int,int,uint,uint,ulong,int,byref,byref,byref,byref):int (Tier0)
12 (0.50 % of base) : 929.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)
8 (1.03 % of base) : 26696.dasm - Interop+Sys:GetNativeIPInterfaceStatistics(System.String,byref):int (Tier0)
8 (0.96 % of base) : 43000.dasm - Interop+Sys:Stat(System.String,byref):int (Tier0)
Top method improvements (bytes):
-24 (-1.32 % of base) : 19177.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Tier0)
-20 (-1.37 % of base) : 13162.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
-16 (-0.32 % of base) : 23208.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Tier0)
-16 (-0.61 % of base) : 12993.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
-16 (-0.18 % of base) : 6033.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
-16 (-2.08 % of base) : 42635.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
-12 (-2.83 % of base) : 41168.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-12 (-3.66 % of base) : 11595.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-12 (-1.07 % of base) : 21553.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
-12 (-1.45 % of base) : 15944.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
-12 (-0.13 % of base) : 16274.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
-8 (-6.06 % of base) : 20505.dasm - System.Numerics.Tests.Perf_Vector4:MultiplyFunctionBenchmark():System.Numerics.Vector4:this (Tier0)
-8 (-7.14 % of base) : 27617.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 28581.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-5.41 % of base) : 7649.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:LessThanAllBenchmark():ubyte:this (Tier0)
-8 (-5.71 % of base) : 21257.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:LessThanAnyBenchmark():ubyte:this (Tier0)
-8 (-7.14 % of base) : 28353.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:SubtractBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 23917.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseAndOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
-8 (-7.14 % of base) : 27645.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
-8 (-0.37 % of base) : 4609.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
Top method regressions (percentages):
68 (39.53 % of base) : 32604.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
152 (36.19 % of base) : 2011.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
4 (11.11 % of base) : 19462.dasm - System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
4 (10.00 % of base) : 909.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (10.00 % of base) : 39955.dasm - System.Math:CopySign(double,double):double (Tier0)
4 (10.00 % of base) : 31205.dasm - System.MathF:CopySign(float,float):float (Tier0)
4 (10.00 % of base) : 42907.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
4 (8.33 % of base) : 23129.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (6.67 % of base) : 47536.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
4 (6.25 % of base) : 35333.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
4 (6.25 % of base) : 40495.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
4 (5.26 % of base) : 22473.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
4 (5.26 % of base) : 31028.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
4 (5.00 % of base) : 44325.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
16 (4.94 % of base) : 44922.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
8 (4.88 % of base) : 22292.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 14665.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
4 (4.76 % of base) : 44059.dasm - System.Numerics.Tests.Perf_Quaternion:LengthBenchmark():float:this (Tier0)
4 (4.55 % of base) : 45593.dasm - System.Numerics.Tests.Perf_Vector2:LengthSquaredBenchmark():float:this (Tier0)
4 (4.55 % of base) : 47503.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:SumBenchmark():float:this (Tier0)
Top method improvements (percentages):
-8 (-7.14 % of base) : 27617.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 28581.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 28353.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:SubtractBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 23917.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseAndOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
-8 (-7.14 % of base) : 27645.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
-8 (-7.14 % of base) : 46925.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 45485.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 47865.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 29225.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 30469.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 28565.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 30717.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 32837.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 44145.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 23833.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 20353.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
-8 (-7.14 % of base) : 31285.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
-8 (-7.14 % of base) : 4941.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
-8 (-7.14 % of base) : 30293.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
-8 (-7.14 % of base) : 30713.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (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: 483275704 (overridden on cmd)
Total bytes of diff: 483423436 (overridden on cmd)
Total bytes of delta: 147732 (0.03 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
860 : 320595.dasm (2.09 % of base)
860 : 320626.dasm (2.11 % of base)
860 : 3310.dasm (1.97 % of base)
860 : 320530.dasm (2.11 % of base)
860 : 320568.dasm (2.13 % of base)
860 : 320582.dasm (1.98 % of base)
860 : 320604.dasm (2.11 % of base)
860 : 3282.dasm (1.98 % of base)
860 : 3332.dasm (1.97 % of base)
860 : 320592.dasm (1.99 % of base)
860 : 320619.dasm (2.10 % of base)
860 : 3299.dasm (1.84 % of base)
808 : 228655.dasm (0.60 % of base)
784 : 230042.dasm (0.59 % of base)
784 : 230052.dasm (0.64 % of base)
784 : 228779.dasm (0.59 % of base)
756 : 485871.dasm (0.73 % of base)
720 : 484698.dasm (0.68 % of base)
672 : 484830.dasm (0.64 % of base)
672 : 485895.dasm (0.69 % of base)
Top file improvements (bytes):
-220 : 129381.dasm (-8.63 % of base)
-220 : 129331.dasm (-8.63 % of base)
-204 : 414075.dasm (-15.41 % of base)
-204 : 129341.dasm (-11.62 % of base)
-204 : 129371.dasm (-11.62 % of base)
-204 : 129391.dasm (-11.62 % of base)
-204 : 414045.dasm (-15.41 % of base)
-204 : 414125.dasm (-15.41 % of base)
-116 : 129351.dasm (-8.73 % of base)
-116 : 129007.dasm (-3.49 % of base)
-116 : 129017.dasm (-3.49 % of base)
-116 : 129027.dasm (-3.49 % of base)
-116 : 129195.dasm (-3.49 % of base)
-116 : 129207.dasm (-3.49 % of base)
-116 : 129217.dasm (-3.49 % of base)
-116 : 129227.dasm (-3.49 % of base)
-116 : 129321.dasm (-8.73 % of base)
-116 : 129401.dasm (-8.73 % of base)
-116 : 128995.dasm (-3.49 % of base)
-112 : 414095.dasm (-6.83 % of base)
68 total files with Code Size differences (28 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
860 (1.98 % of base) : 3282.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 320530.dasm - lclfldadd:TestEntryPoint():int (Tier0)
860 (2.13 % of base) : 320568.dasm - lclfldadd:TestEntryPoint():int (Tier0)
860 (1.84 % of base) : 3299.dasm - lclflddiv:TestEntryPoint():int (MinOpts)
860 (1.98 % of base) : 320582.dasm - lclflddiv:TestEntryPoint():int (Tier0)
860 (1.99 % of base) : 320592.dasm - lclflddiv:TestEntryPoint():int (Tier0)
860 (1.97 % of base) : 3310.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
860 (2.09 % of base) : 320595.dasm - lclfldmul:TestEntryPoint():int (Tier0)
860 (2.11 % of base) : 320604.dasm - lclfldmul:TestEntryPoint():int (Tier0)
860 (1.97 % of base) : 3332.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 320626.dasm - lclfldsub:TestEntryPoint():int (Tier0)
860 (2.10 % of base) : 320619.dasm - lclfldsub:TestEntryPoint():int (Tier0)
808 (0.60 % of base) : 228655.dasm - i4div:TestEntryPoint():int (MinOpts)
784 (0.59 % of base) : 228779.dasm - i8div:TestEntryPoint():int (MinOpts)
784 (0.59 % of base) : 230042.dasm - u4div:TestEntryPoint():int (MinOpts)
784 (0.64 % of base) : 230052.dasm - u8div:TestEntryPoint():int (MinOpts)
756 (0.73 % of base) : 485871.dasm - u4div:TestEntryPoint():int (Tier0)
720 (0.68 % of base) : 484698.dasm - i4div:TestEntryPoint():int (Tier0)
672 (0.64 % of base) : 484830.dasm - i8div:TestEntryPoint():int (Tier0)
672 (0.69 % of base) : 485895.dasm - u8div:TestEntryPoint():int (Tier0)
Top method improvements (bytes):
-220 (-8.63 % of base) : 129331.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 129381.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 414045.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 129341.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 414075.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 129371.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 129391.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 414125.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
-116 (-3.49 % of base) : 128995.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt160:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129027.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129007.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt163:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129017.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt167:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129195.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt160:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129227.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129207.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt163:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 129217.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt167:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-8.73 % of base) : 129321.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 129351.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 129401.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
-112 (-6.83 % of base) : 414065.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
Top method regressions (percentages):
52 (76.47 % of base) : 343358.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
52 (76.47 % of base) : 343356.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
52 (76.47 % of base) : 340054.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
52 (76.47 % of base) : 340052.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
44 (73.33 % of base) : 343354.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
44 (73.33 % of base) : 343352.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
44 (73.33 % of base) : 340050.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
44 (73.33 % of base) : 340048.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
36 (69.23 % of base) : 343350.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
36 (69.23 % of base) : 343348.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
36 (69.23 % of base) : 340046.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
36 (69.23 % of base) : 340044.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
184 (51.11 % of base) : 356206.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
184 (51.11 % of base) : 356230.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
184 (48.42 % of base) : 392718.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
184 (48.42 % of base) : 392743.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
176 (48.35 % of base) : 392529.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunStructLclFldScenario():this (Tier0)
176 (48.35 % of base) : 392553.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
52 (48.15 % of base) : 504582.dasm - Runtime_91209:Problem4():System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
176 (47.31 % of base) : 356090.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
Top method improvements (percentages):
-204 (-15.41 % of base) : 414045.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
-204 (-15.41 % of base) : 414075.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-15.41 % of base) : 414125.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 129341.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 129371.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 129391.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 129321.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 129351.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 129401.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 129331.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 129381.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
-112 (-6.83 % of base) : 414065.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
-112 (-6.83 % of base) : 414095.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (Instrumented Tier0)
-112 (-6.83 % of base) : 414115.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (Instrumented Tier0)
-8 (-6.67 % of base) : 506242.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
-12 (-6.12 % of base) : 506656.dasm - Performance_2700:TestEntryPoint():int (Tier0)
-16 (-5.06 % of base) : 185252.dasm - (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
-96 (-4.54 % of base) : 128985.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble3:RunBasicScenario(int,ubyte):this (MinOpts)
-96 (-4.54 % of base) : 129101.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt643:RunBasicScenario(int,ubyte):this (MinOpts)
-96 (-4.54 % of base) : 129301.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt643:RunBasicScenario(int,ubyte):this (MinOpts)
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: 55660852 (overridden on cmd)
Total bytes of diff: 55660852 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 5 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
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: 78453800 (overridden on cmd)
Total bytes of diff: 78453800 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
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: 311227792 (overridden on cmd)
Total bytes of diff: 311228924 (overridden on cmd)
Total bytes of delta: 1132 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
624 : 377446.dasm (3.07 % of base)
128 : 418998.dasm (1.75 % of base)
112 : 418930.dasm (1.70 % of base)
88 : 418428.dasm (1.49 % of base)
64 : 417691.dasm (1.27 % of base)
64 : 418022.dasm (1.27 % of base)
64 : 418478.dasm (1.27 % of base)
64 : 418904.dasm (1.27 % of base)
64 : 418907.dasm (1.27 % of base)
52 : 417718.dasm (0.91 % of base)
48 : 246562.dasm (1.07 % of base)
40 : 216277.dasm (3.85 % of base)
40 : 397538.dasm (1.98 % of base)
40 : 418439.dasm (1.07 % of base)
32 : 418222.dasm (0.84 % of base)
28 : 84114.dasm (3.07 % of base)
24 : 70640.dasm (2.00 % of base)
24 : 114987.dasm (0.72 % of base)
24 : 310436.dasm (0.43 % of base)
24 : 256131.dasm (3.41 % of base)
Top file improvements (bytes):
-72 : 399011.dasm (-3.83 % of base)
-72 : 399441.dasm (-2.96 % of base)
-52 : 343600.dasm (-2.21 % of base)
-44 : 101535.dasm (-1.56 % of base)
-44 : 101909.dasm (-1.56 % of base)
-44 : 179035.dasm (-1.44 % of base)
-44 : 68178.dasm (-1.56 % of base)
-44 : 101470.dasm (-1.56 % of base)
-44 : 170123.dasm (-1.56 % of base)
-44 : 218609.dasm (-1.11 % of base)
-44 : 101507.dasm (-1.56 % of base)
-44 : 129567.dasm (-1.75 % of base)
-44 : 67725.dasm (-1.50 % of base)
-44 : 68099.dasm (-1.72 % of base)
-44 : 101559.dasm (-1.56 % of base)
-44 : 101868.dasm (-1.56 % of base)
-44 : 50929.dasm (-1.66 % of base)
-44 : 54334.dasm (-1.66 % of base)
-44 : 54338.dasm (-1.56 % of base)
-44 : 94145.dasm (-1.56 % of base)
77 total files with Code Size differences (37 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
624 (3.07 % of base) : 377446.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
128 (1.75 % of base) : 418998.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
112 (1.70 % of base) : 418930.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
88 (1.49 % of base) : 418428.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
64 (1.27 % of base) : 417691.dasm - System.Numerics.Tests.maxTest:RunMaxTests() (Instrumented Tier0)
64 (1.27 % of base) : 418904.dasm - System.Numerics.Tests.minTest:RunMinTests() (Instrumented Tier0)
64 (1.27 % of base) : 418022.dasm - System.Numerics.Tests.op_andTest:RunAndTests() (Instrumented Tier0)
64 (1.27 % of base) : 418478.dasm - System.Numerics.Tests.op_orTest:RunOrTests() (Instrumented Tier0)
64 (1.27 % of base) : 418907.dasm - System.Numerics.Tests.op_xorTest:RunXorTests() (Instrumented Tier0)
52 (0.91 % of base) : 417718.dasm - System.Numerics.Tests.op_multiplyTest:RunMultiplyTests() (Instrumented Tier0)
48 (1.07 % of base) : 246562.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.classes.simplename005.simplename005.NS1.Test:RunTest():ubyte:this (Tier0)
40 (3.85 % of base) : 216277.dasm - System.Data.SqlTypes.SqlDateTime:.ctor(int,int,int,int,int,int,double):this (Tier0)
40 (1.07 % of base) : 418439.dasm - System.Numerics.Tests.BigIntegerConstructorTest:RunCtorSingleTests() (Instrumented Tier0)
40 (1.98 % of base) : 397538.dasm - WebData.BaseLib.StringGen:GetIllegalXmlStringWithSeed(int,ubyte,int):System.String (Instrumented Tier0)
32 (0.84 % of base) : 418222.dasm - System.Numerics.Tests.gcdTest:RunGCDTests() (Instrumented Tier0)
28 (3.07 % of base) : 84114.dasm - Microsoft.CodeAnalysis.XmlDocumentationCommentTextReader+Reader:Read(ushort[],int,int):int:this (Tier0)
24 (0.72 % of base) : 114987.dasm - DryIoc.Factory:ApplyReuse(FastExpressionCompiler.LightExpression.Expression,DryIoc.Request):FastExpressionCompiler.LightExpression.Expression:this (Tier0)
24 (3.41 % of base) : 256131.dasm - FsCheck.Random:stdNext(FsCheck.Random+StdGen):System.Tuple`2[int,FsCheck.Random+StdGen] (Tier0)
24 (2.00 % of base) : 70640.dasm - LibraryImportGenerator.IntegrationTests.FunctionPointerTests:CalledWithArgumentsInOrder():this (Tier0)
24 (0.43 % of base) : 310436.dasm - System.Net.Quic.MsQuicApi:.cctor() (Tier0)
Top method improvements (bytes):
-72 (-2.96 % of base) : 399441.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Instrumented Tier0)
-72 (-3.83 % of base) : 399011.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
-52 (-2.21 % of base) : 343600.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
-44 (-1.11 % of base) : 218609.dasm - System.Xml.Schema.Compiler:CompileComplexType(System.Xml.Schema.XmlSchemaComplexType):this (Instrumented Tier0)
-44 (-1.66 % of base) : 54334.dasm - Xunit.Sdk.AssertEqualityComparer`1[byte]:Equals(byte,Xunit.Sdk.CollectionTracker,byte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 101559.dasm - Xunit.Sdk.AssertEqualityComparer`1[double]:Equals(double,Xunit.Sdk.CollectionTracker,double,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 101535.dasm - Xunit.Sdk.AssertEqualityComparer`1[float]:Equals(float,Xunit.Sdk.CollectionTracker,float,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 54338.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 94145.dasm - Xunit.Sdk.AssertEqualityComparer`1[long]:Equals(long,Xunit.Sdk.CollectionTracker,long,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 170123.dasm - Xunit.Sdk.AssertEqualityComparer`1[short]:Equals(short,Xunit.Sdk.CollectionTracker,short,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.50 % of base) : 67725.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.__Canon]:Equals(System.__Canon,Xunit.Sdk.CollectionTracker,System.__Canon,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.44 % of base) : 179035.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.75 % of base) : 129567.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Tier0)
-44 (-1.72 % of base) : 68099.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Threading.CancellationToken]:Equals(System.Threading.CancellationToken,Xunit.Sdk.CollectionTracker,System.Threading.CancellationToken,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 68178.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.66 % of base) : 50929.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 101470.dasm - Xunit.Sdk.AssertEqualityComparer`1[uint]:Equals(uint,Xunit.Sdk.CollectionTracker,uint,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 101507.dasm - Xunit.Sdk.AssertEqualityComparer`1[ulong]:Equals(ulong,Xunit.Sdk.CollectionTracker,ulong,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 101909.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 101868.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
Top method regressions (percentages):
4 (14.29 % of base) : 350673.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
4 (14.29 % of base) : 348065.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
12 (12.50 % of base) : 415483.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
12 (12.50 % of base) : 415833.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Log2DoubleTest(double,double,double):this (Tier0)
12 (12.50 % of base) : 415187.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
12 (11.54 % of base) : 415193.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]) (Tier0)
12 (11.54 % of base) : 415335.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]) (Tier0)
4 (9.09 % of base) : 345302.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
4 (9.09 % of base) : 354406.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
4 (9.09 % of base) : 344354.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
4 (9.09 % of base) : 354040.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
4 (9.09 % of base) : 349408.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
4 (9.09 % of base) : 355321.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
4 (9.09 % of base) : 347037.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
4 (9.09 % of base) : 354707.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
4 (8.33 % of base) : 298858.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Instrumented Tier0)
4 (8.33 % of base) : 291834.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
4 (8.33 % of base) : 348907.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Instrumented Tier0)
4 (8.33 % of base) : 346662.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Tier0)
4 (8.33 % of base) : 344598.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
Top method improvements (percentages):
-20 (-5.49 % of base) : 166597.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
-16 (-4.12 % of base) : 183955.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
-16 (-4.12 % of base) : 185639.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
-72 (-3.83 % of base) : 399011.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
-16 (-3.77 % of base) : 170047.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Instrumented Tier0)
-12 (-3.66 % of base) : 74993.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-8 (-3.64 % of base) : 70559.dasm - SharedTypes.IntWrapperWithNotification:RaiseInvokeSucceeded():this (Tier0)
-4 (-3.33 % of base) : 626069.dasm - System.Threading.ThreadPools.Tests.ThreadPoolTests+<>c:<ThreadPoolThreadCreationDoesNotTransferExecutionContext>b__37_1(System.Threading.AsyncLocalValueChangedArgs`1[int]):this (Tier0)
-72 (-2.96 % of base) : 399441.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Instrumented Tier0)
-12 (-2.83 % of base) : 19446.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-4 (-2.63 % of base) : 114013.dasm - Lamar.ServiceRegistry+<>c__22`1[System.__Canon]:<FindAndRemovePolicies>b__22_0(Microsoft.Extensions.DependencyInjection.ServiceDescriptor):ubyte:this (Tier0)
-12 (-2.54 % of base) : 453226.dasm - System.AssertExtensions:AssertThrows[System.__Canon,ushort](System.ReadOnlySpan`1[ushort],System.AssertExtensions+AssertThrowsActionReadOnly`1[ushort]):System.__Canon (Instrumented Tier0)
-12 (-2.54 % of base) : 452864.dasm - System.AssertExtensions:AssertThrows[System.__Canon,ushort](System.Span`1[ushort],System.AssertExtensions+AssertThrowsAction`1[ushort]):System.__Canon (Instrumented Tier0)
-8 (-2.38 % of base) : 49678.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution+UnopEasyOut:OpKind(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):int (Tier0)
-20 (-2.25 % of base) : 202923.dasm - System.ComponentModel.ReflectPropertyDescriptor:SetValue(System.Object,System.Object):this (Tier0)
-4 (-2.22 % of base) : 217476.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlByte (Tier0)
-52 (-2.21 % of base) : 343600.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
-4 (-2.13 % of base) : 217525.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlInt16 (Tier0)
-12 (-2.05 % of base) : 42036.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
-8 (-2.04 % of base) : 152373.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock:ShortenBranches(byref):this (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: 161150176 (overridden on cmd)
Total bytes of diff: 161150284 (overridden on cmd)
Total bytes of delta: 108 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
4 : 271352.dasm (2.38 % of base)
4 : 274018.dasm (2.38 % of base)
4 : 271353.dasm (2.50 % of base)
4 : 271453.dasm (2.50 % of base)
4 : 272776.dasm (2.38 % of base)
4 : 273577.dasm (2.50 % of base)
4 : 277604.dasm (2.50 % of base)
4 : 278496.dasm (2.38 % of base)
4 : 282434.dasm (2.50 % of base)
4 : 283303.dasm (2.50 % of base)
4 : 284939.dasm (2.38 % of base)
4 : 285757.dasm (2.50 % of base)
4 : 287179.dasm (2.50 % of base)
4 : 287180.dasm (2.38 % of base)
4 : 288220.dasm (2.86 % of base)
4 : 269942.dasm (2.50 % of base)
4 : 270218.dasm (2.38 % of base)
4 : 271483.dasm (2.50 % of base)
4 : 271861.dasm (2.50 % of base)
4 : 284036.dasm (2.50 % of base)
Top file improvements (bytes):
-8 : 14236.dasm (-1.57 % of base)
-4 : 153511.dasm (-1.15 % of base)
27 total files with Code Size differences (2 improved, 25 regressed), 37 unchanged.
Top method regressions (bytes):
4 (2.50 % of base) : 287136.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 277604.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 273577.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 278496.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 274018.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 271453.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 287179.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 269942.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 287180.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.86 % of base) : 288220.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
4 (2.50 % of base) : 287829.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 287837.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 271483.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 271861.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 282434.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 272776.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 270218.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 271353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 285757.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 286295.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|68_0(byref,byref,int,int,int) (MinOpts)
Top method improvements (bytes):
-8 (-1.57 % of base) : 14236.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
-4 (-1.15 % of base) : 153511.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method regressions (percentages):
4 (2.86 % of base) : 288220.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
4 (2.86 % of base) : 284048.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
4 (2.50 % of base) : 287136.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 277604.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 273577.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 271453.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 287179.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 269942.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 287829.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 271483.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 271861.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 282434.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 271353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 285757.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 283303.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 284036.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|84_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 278496.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 274018.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 287180.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 287837.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
Top method improvements (percentages):
-8 (-1.57 % of base) : 14236.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
-4 (-1.15 % of base) : 153511.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
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: 14659812 (overridden on cmd)
Total bytes of diff: 14659812 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
windows arm64
Diffs are based on 2,308,445 contexts (929,692 MinOpts, 1,378,753 FullOpts).
MISSED contexts: 6,353 (0.27%)
Overall (+148,112 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.windows.arm64.checked.mch |
46,475,100 |
+988 |
benchmarks.run_tiered.windows.arm64.checked.mch |
15,251,468 |
+384 |
coreclr_tests.run.windows.arm64.checked.mch |
494,449,448 |
+143,628 |
libraries.crossgen2.windows.arm64.checked.mch |
59,008,088 |
+0 |
libraries.pmi.windows.arm64.checked.mch |
78,059,240 |
+0 |
libraries_tests.run.windows.arm64.Release.mch |
308,519,220 |
+3,000 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
169,413,408 |
+112 |
realworld.run.windows.arm64.checked.mch |
15,463,108 |
+0 |
MinOpts (+148,112 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.windows.arm64.checked.mch |
16,058,416 |
+988 |
benchmarks.run_tiered.windows.arm64.checked.mch |
11,172,728 |
+384 |
coreclr_tests.run.windows.arm64.checked.mch |
338,587,172 |
+143,628 |
libraries.crossgen2.windows.arm64.checked.mch |
1,636 |
+0 |
libraries.pmi.windows.arm64.checked.mch |
119,984 |
+0 |
libraries_tests.run.windows.arm64.Release.mch |
201,005,952 |
+3,000 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
13,136,540 |
+112 |
realworld.run.windows.arm64.checked.mch |
563,980 |
+0 |
Example diffs
benchmarks.run_pgo.windows.arm64.checked.mch
-8 (-7.14%) : 9849.dasm - System.Numerics.Tests.Perf_VectorOf1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector
1[long]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[long]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[long]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M56679_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M56679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M56679_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M56679_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- cmge v0.2d, v0.2d, v8.2d
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ cmge v0.2d, v16.2d, v17.2d
;; size=84 bbWeight=1 PerfScore 19.00
G_M56679_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=d2652298) for method System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=d2652298) for method System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 10245.dasm - System.Numerics.Tests.Perf_VectorOf1[byte]:BitwiseAndBenchmark():System.Numerics.Vector
1[byte]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M14640_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M14640_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M14640_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M14640_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- and v0.16b, v8.16b, v0.16b
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ and v0.16b, v17.16b, v16.16b
;; size=84 bbWeight=1 PerfScore 18.50
G_M14640_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=c4e4c6cf) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=c4e4c6cf) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 19481.dasm - System.Numerics.Tests.Perf_VectorOf1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector
1[ubyte]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ubyte]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ubyte]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M64560_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M64560_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M64560_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M64560_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- sub v0.16b, v8.16b, v0.16b
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ sub v0.16b, v17.16b, v16.16b
;; size=84 bbWeight=1 PerfScore 19.00
G_M64560_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=a47003cf) for method System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=a47003cf) for method System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
+4 (+10.00%) : 12422.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector128
1[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte
@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0]
- uqxtn v0.8b, v0.8h
- ldr q16, [fp, #0x10] // [V01 arg1]
- uqxtn2 v0.16b, v16.8h
- ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0]
+ uqxtn v16.8b, v16.8h
+ ldr q17, [fp, #0x10] // [V01 arg1]
+ uqxtn2 v16.16b, v17.8h
+ mov v0.16b, v16.16b
+ ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+10.00%) : 1220.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector128
1[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte
@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0]
- uqxtn v0.8b, v0.8h
- ldr q16, [fp, #0x10] // [V01 arg1]
- uqxtn2 v0.16b, v16.8h
- ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0]
+ uqxtn v16.8b, v16.8h
+ ldr q17, [fp, #0x10] // [V01 arg1]
+ uqxtn2 v16.16b, v17.8h
+ mov v0.16b, v16.16b
+ ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+11.11%) : 6268.dasm - System.Runtime.Intrinsics.Vector128:Createint:System.Runtime.Intrinsics.Vector128`1int
@@ -19,16 +19,17 @@ G_M3554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x20] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3554_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0]
- ldr d16, [fp, #0x20] // [V01 arg1]
- ins v0.d[1], v16.d[0]
- ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0]
+ ldr d17, [fp, #0x20] // [V01 arg1]
+ ins v16.d[1], v17.d[0]
+ mov v0.16b, v16.16b
+ ;; size=16 bbWeight=1 PerfScore 5.50
G_M3554_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)
benchmarks.run_tiered.windows.arm64.checked.mch
-8 (-7.14%) : 5877.dasm - System.Numerics.Tests.Perf_VectorOf1[double]:GreaterThanBenchmark():System.Numerics.Vector
1[double]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[double]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[double]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M28109_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M28109_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M28109_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M28109_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fcmgt v0.2d, v8.2d, v0.2d
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ fcmgt v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 19.00
G_M28109_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=ffdb9232) for method System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=ffdb9232) for method System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 10393.dasm - System.Numerics.Tests.Perf_VectorOf1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector
1[short]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M51679_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M51679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M51679_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M51679_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- eor v0.8h, v8.8h, v0.8h
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ eor v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 18.50
G_M51679_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=50653620) for method System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=50653620) for method System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
-8 (-7.14%) : 15117.dasm - System.Numerics.Tests.Perf_VectorOf1[short]:MinBenchmark():System.Numerics.Vector
1[short]:this (Tier0)
@@ -5,18 +5,17 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M25702_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M25702_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -26,8 +25,8 @@ G_M25702_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -36,28 +35,27 @@ G_M25702_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 q0, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- smin v0.8h, v8.8h, v0.8h
+ ldr q16, [x0]
+ ldr q17, [fp, #0x18] // [TEMP_01]
+ smin v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 19.00
G_M25702_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=0a609b99) for method System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=0a609b99) for method System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -65,10 +63,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
- E4 end
+4 (+10.00%) : 30778.dasm - System.MathF:CopySign(float,float):float (Tier0)
@@ -18,11 +18,12 @@ G_M24268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str s1, [fp, #0x18] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M24268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00]
- ldr s16, [fp, #0x18] // [V01 arg1]
- ldr s17, [fp, #0x1C] // [V00 arg0]
- bsl v0.4s, v16.4s, v17.4s
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00]
+ ldr s17, [fp, #0x18] // [V01 arg1]
+ ldr s18, [fp, #0x1C] // [V00 arg0]
+ bsl v16.4s, v17.4s, v18.4s
+ dup s0, v16.s[0]
+ ;; size=20 bbWeight=1 PerfScore 7.50
G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -30,7 +31,7 @@ G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 8000000080000000h, 8000000080000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+10.00%) : 45500.dasm - System.Math:CopySign(double,double):double (Tier0)
@@ -18,11 +18,12 @@ G_M65071_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x10] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M65071_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00]
- ldr d16, [fp, #0x10] // [V01 arg1]
- ldr d17, [fp, #0x18] // [V00 arg0]
- bsl v0.2d, v16.2d, v17.2d
- ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00]
+ ldr d17, [fp, #0x10] // [V01 arg1]
+ ldr d18, [fp, #0x18] // [V00 arg0]
+ bsl v16.2d, v17.2d, v18.2d
+ dup d0, v16.d[0]
+ ;; size=20 bbWeight=1 PerfScore 7.50
G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
@@ -30,7 +31,7 @@ G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 8000000000000000h, 8000000000000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +42,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+11.11%) : 14964.dasm - System.Runtime.Intrinsics.Vector128:Createint:System.Runtime.Intrinsics.Vector128`1int
@@ -19,16 +19,17 @@ G_M3554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str d1, [fp, #0x20] // [V01 arg1]
;; size=16 bbWeight=1 PerfScore 3.50
G_M3554_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0]
- ldr d16, [fp, #0x20] // [V01 arg1]
- ins v0.d[1], v16.d[0]
- ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0]
+ ldr d17, [fp, #0x20] // [V01 arg1]
+ ins v16.d[1], v17.d[0]
+ mov v0.16b, v16.16b
+ ;; size=16 bbWeight=1 PerfScore 5.50
G_M3554_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)
coreclr_tests.run.windows.arm64.checked.mch
-8 (-6.67%) : 307681.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
@@ -10,22 +10,21 @@
; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Vector4>
; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M39822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
- str d8, [sp, #0x48]
+ stp fp, lr, [sp, #-0x40]!
mov fp, sp
str s0, [fp, #0x30] // [V00 arg0]
str s1, [fp, #0x34] // [V00 arg0+0x04]
str s2, [fp, #0x38] // [V00 arg0+0x08]
str s3, [fp, #0x3C] // [V00 arg0+0x0c]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
fmov s16, #1.0000
str s16, [fp, #0x3C] // [V00 arg0+0x0c]
- ldr q8, [fp, #0x30] // [V00 arg0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x30] // [V00 arg0]
+ str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -35,8 +34,8 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fadd v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01]
+ fadd v16.4s, v17.4s, v16.4s
str q16, [fp, #0x20] // [V02 tmp1]
ldr s0, [fp, #0x20] // [V02 tmp1]
ldr s1, [fp, #0x24] // [V02 tmp1+0x04]
@@ -44,23 +43,22 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c]
;; size=80 bbWeight=1 PerfScore 26.00
G_M39822_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x48]
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 36.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 33.50, instruction count 28, allocated bytes for code 112 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
; ============================================================
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 : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -68,10 +66,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 09 save_freg X#0 Z#9 (0x09); str d8, [sp, #72]
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
- E4 end
- E4 end
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
E4 end
-12 (-6.12%) : 308121.dasm - Performance_2700:TestEntryPoint():int (Tier0)
@@ -11,15 +11,14 @@
; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x20] "ReplaceWithLclVar is creating a new local variable"
; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
- str d8, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
mov fp, sp
str xzr, [fp, #0x40] // [V00 loc0]
str xzr, [fp, #0x48] // [V00 loc0+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -29,8 +28,8 @@ G_M50724_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 q8, [x0]
- str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0]
+ str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -40,8 +39,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01]
- fmul v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01]
+ fmul v16.4s, v17.4s, v16.4s
str q16, [fp, #0x40] // [V00 loc0]
movi v16.4s, #0
str q16, [fp, #0x30] // [V02 tmp1]
@@ -60,33 +59,31 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov w0, wzr
;; size=148 bbWeight=1 PerfScore 40.50
G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, #100
;; size=4 bbWeight=1 PerfScore 0.50
G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58]
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
RWD00 dq 4000000040000000h, 4000000040000000h
-; Total bytes of code 196, prolog size 20, PerfScore 53.50, instruction count 49, allocated bytes for code 196 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 184, prolog size 16, PerfScore 48.50, instruction count 46, allocated bytes for code 184 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2
E bit : 0
X bit : 0
Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,10 +94,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- DC 0B save_freg X#0 Z#11 (0x0B); str d8, [sp, #88]
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
- E4 end
- E4 end
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
E4 end
-16 (-5.06%) : 226614.dasm - (dynamicClass):ILSTUBPInvoke():System.Numerics.Vector3 (MinOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xD4] do-not-enreg[]
+; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xDC] do-not-enreg[]
; V01 loc1 [V01 ] ( 1, 1 ) simd12 -> [fp+0xC0] HFA(float) do-not-enreg[SR] multireg-ret <System.Numerics.Vector3>
; V02 loc2 [V02 ] ( 1, 1 ) simd12 -> [fp+0xB0] HFA(float) do-not-enreg[S] <System.Numerics.Vector3>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -21,20 +21,18 @@
; TEMP_02 float -> [fp+0x70]
; TEMP_01 float -> [fp+0x6C]
;
-; Lcl frame size = 200
+; Lcl frame size = 208
G_M47779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #0xD1FFAB1E]!
- stp d8, d9, [sp, #0xD8]
- str d10, [sp, #0xE8]
- stp x19, x20, [sp, #0xF0]
- stp x21, x22, [sp, #0xD1FFAB1E]
+ stp x19, x20, [sp, #0xE0]
+ stp x21, x22, [sp, #0xF0]
stp x23, x24, [sp, #0xD1FFAB1E]
stp x25, x26, [sp, #0xD1FFAB1E]
stp x27, x28, [sp, #0xD1FFAB1E]
mov fp, sp
str x12, [fp, #0x60] // [V04 tmp1]
- ;; size=40 bbWeight=1 PerfScore 9.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add x0, fp, #32 // [V09 PInvokeFrame+0x08]
mov x1, x12
@@ -48,7 +46,7 @@ G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x1, fp, #32 // [V09 PInvokeFrame+0x08]
; byrRegs +[x1]
str x1, [x0, #0x10]
- str wzr, [fp, #0xD4] // [V00 loc0]
+ str wzr, [fp, #0xDC] // [V00 loc0]
nop
nop
ldr x0, [fp, #0x60] // [V04 tmp1]
@@ -88,12 +86,12 @@ G_M47779_IG05: ; bbWeight=1, isz, extend
; gcr arg pop 0
;; size=52 bbWeight=1 PerfScore 13.50
G_M47779_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr s8, [fp, #0x74] // [TEMP_03]
- str s8, [fp, #0x90] // [V06 tmp3]
- ldr s9, [fp, #0x70] // [TEMP_02]
- str s9, [fp, #0x94] // [V06 tmp3+0x04]
- ldr s10, [fp, #0x6C] // [TEMP_01]
- str s10, [fp, #0x98] // [V06 tmp3+0x08]
+ ldr s16, [fp, #0x74] // [TEMP_03]
+ str s16, [fp, #0x90] // [V06 tmp3]
+ ldr s17, [fp, #0x70] // [TEMP_02]
+ str s17, [fp, #0x94] // [V06 tmp3+0x04]
+ ldr s18, [fp, #0x6C] // [TEMP_01]
+ str s18, [fp, #0x98] // [V06 tmp3+0x08]
nop
ldr q16, [fp, #0x90] // [V06 tmp3]
str q16, [fp, #0xB0] // [V02 loc2]
@@ -114,26 +112,24 @@ G_M47779_IG07: ; bbWeight=1, epilog, nogc, extend
ldp x27, x28, [sp, #0xD1FFAB1E]
ldp x25, x26, [sp, #0xD1FFAB1E]
ldp x23, x24, [sp, #0xD1FFAB1E]
- ldp x21, x22, [sp, #0xD1FFAB1E]
- ldp x19, x20, [sp, #0xF0]
- ldr d10, [sp, #0xE8]
- ldp d8, d9, [sp, #0xD8]
+ ldp x21, x22, [sp, #0xF0]
+ ldp x19, x20, [sp, #0xE0]
ldp fp, lr, [sp], #0xD1FFAB1E
ret lr
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
-; Total bytes of code 316, prolog size 40, PerfScore 92.00, instruction count 79, allocated bytes for code 316 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
+; Total bytes of code 300, prolog size 32, PerfScore 87.00, instruction count 75, allocated bytes for code 300 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 4
+ Code Words : 3
Epilog Count : 1
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -145,10 +141,8 @@ Unwind Info:
E6 save_next
E6 save_next
E6 save_next
- C8 1E save_regp X#0 Z#30 (0x1E); stp x19, x20, [sp, #240]
- DC 9D save_freg X#2 Z#29 (0x1D); str d10, [sp, #232]
- D8 1B save_fregp X#0 Z#27 (0x1B); stp d8, d9, [sp, #216]
- A7 save_fplr_x #39 (0x27); stp fp, lr, [sp, #-320]!
+ C8 1C save_regp X#0 Z#28 (0x1C); stp x19, x20, [sp, #224]
+ A5 save_fplr_x #37 (0x25); stp fp, lr, [sp, #-304]!
E4 end
E4 end
E4 end
+44 (+73.33%) : 83574.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[ubyte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector128
1[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector64
1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48]
+; TEMP_01 simd8 -> [fp+0x40]
+; TEMP_05 simd16 -> [fp+0x30]
+; TEMP_04 simd16 -> [fp+0x20]
+; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M54744_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0]
- str q1, [fp, #0x18] // [V01 arg1]
- str q2, [fp, #0x28] // [V01 arg1+0x10]
- str q3, [fp, #0x38] // [V01 arg1+0x20]
- str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0]
+ str q1, [fp, #0x58] // [V01 arg1]
+ str q2, [fp, #0x68] // [V01 arg1+0x10]
+ str q3, [fp, #0x78] // [V01 arg1+0x20]
+ str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M54744_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0]
- ldr q16, [fp, #0x18] // [V01 arg1]
- ldr q17, [fp, #0x28] // [V01 arg1+0x10]
- ldr q18, [fp, #0x38] // [V01 arg1+0x20]
- ldr d19, [fp, #0x10] // [V02 arg2]
- tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0]
+ str d16, [fp, #0x48] // [TEMP_02]
+ ldr q16, [fp, #0x58] // [V01 arg1]
+ str q16, [fp, #0x30] // [TEMP_05]
+ ldr q16, [fp, #0x68] // [V01 arg1+0x10]
+ str q16, [fp, #0x20] // [TEMP_04]
+ ldr q16, [fp, #0x78] // [V01 arg1+0x20]
+ str q16, [fp, #0x10] // [TEMP_03]
+ ldr d16, [fp, #0x50] // [V02 arg2]
+ str d16, [fp, #0x40] // [TEMP_01]
+ ldr d16, [fp, #0x48] // [TEMP_02]
+ ldr q17, [fp, #0x30] // [TEMP_05]
+ ldr q18, [fp, #0x20] // [TEMP_04]
+ ldr q19, [fp, #0x10] // [TEMP_03]
+ ldr d20, [fp, #0x40] // [TEMP_01]
+ tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b
+ mov v0.8b, v16.8b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M54744_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end
E4 end
+44 (+73.33%) : 83602.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[byte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector128
1[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector64
1[byte]):System.Runtime.Intrinsics.Vector64`1[byte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48]
+; TEMP_01 simd8 -> [fp+0x40]
+; TEMP_05 simd16 -> [fp+0x30]
+; TEMP_04 simd16 -> [fp+0x20]
+; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M2168_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0]
- str q1, [fp, #0x18] // [V01 arg1]
- str q2, [fp, #0x28] // [V01 arg1+0x10]
- str q3, [fp, #0x38] // [V01 arg1+0x20]
- str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0]
+ str q1, [fp, #0x58] // [V01 arg1]
+ str q2, [fp, #0x68] // [V01 arg1+0x10]
+ str q3, [fp, #0x78] // [V01 arg1+0x20]
+ str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M2168_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0]
- ldr q16, [fp, #0x18] // [V01 arg1]
- ldr q17, [fp, #0x28] // [V01 arg1+0x10]
- ldr q18, [fp, #0x38] // [V01 arg1+0x20]
- ldr d19, [fp, #0x10] // [V02 arg2]
- tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0]
+ str d16, [fp, #0x48] // [TEMP_02]
+ ldr q16, [fp, #0x58] // [V01 arg1]
+ str q16, [fp, #0x30] // [TEMP_05]
+ ldr q16, [fp, #0x68] // [V01 arg1+0x10]
+ str q16, [fp, #0x20] // [TEMP_04]
+ ldr q16, [fp, #0x78] // [V01 arg1+0x20]
+ str q16, [fp, #0x10] // [TEMP_03]
+ ldr d16, [fp, #0x50] // [V02 arg2]
+ str d16, [fp, #0x40] // [TEMP_01]
+ ldr d16, [fp, #0x48] // [TEMP_02]
+ ldr q17, [fp, #0x30] // [TEMP_05]
+ ldr q18, [fp, #0x20] // [TEMP_04]
+ ldr q19, [fp, #0x10] // [TEMP_03]
+ ldr d20, [fp, #0x40] // [TEMP_01]
+ tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b
+ mov v0.8b, v16.8b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M2168_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end
E4 end
+44 (+73.33%) : 44972.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector1281[byte],System.ValueTuple
3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector128
1[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector128
1[byte]):System.Runtime.Intrinsics.Vector128`1[byte
@@ -5,36 +5,52 @@
; partially interruptible
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0x50] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x20] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
-; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0xA0] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x70] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]>
+; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x60] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_05 simd16 -> [fp+0x50]
+; TEMP_04 simd16 -> [fp+0x40]
+; TEMP_03 simd16 -> [fp+0x30]
+; TEMP_02 simd16 -> [fp+0x20]
+; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 80
+; Lcl frame size = 160
G_M10198_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- str q0, [fp, #0x50] // [V00 arg0]
- str q1, [fp, #0x20] // [V01 arg1]
- str q2, [fp, #0x30] // [V01 arg1+0x10]
- str q3, [fp, #0x40] // [V01 arg1+0x20]
- str q4, [fp, #0x10] // [V02 arg2]
+ str q0, [fp, #0xA0] // [V00 arg0]
+ str q1, [fp, #0x70] // [V01 arg1]
+ str q2, [fp, #0x80] // [V01 arg1+0x10]
+ str q3, [fp, #0x90] // [V01 arg1+0x20]
+ str q4, [fp, #0x60] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50
G_M10198_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x50] // [V00 arg0]
- ldr q16, [fp, #0x20] // [V01 arg1]
- ldr q17, [fp, #0x30] // [V01 arg1+0x10]
- ldr q18, [fp, #0x40] // [V01 arg1+0x20]
- ldr q19, [fp, #0x10] // [V02 arg2]
- tbx v0.16b, {v16.16b, v17.16b, v18.16b}, v19.16b
- ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr q16, [fp, #0xA0] // [V00 arg0]
+ str q16, [fp, #0x50] // [TEMP_05]
+ ldr q16, [fp, #0x70] // [V01 arg1]
+ str q16, [fp, #0x40] // [TEMP_04]
+ ldr q16, [fp, #0x80] // [V01 arg1+0x10]
+ str q16, [fp, #0x30] // [TEMP_03]
+ ldr q16, [fp, #0x90] // [V01 arg1+0x20]
+ str q16, [fp, #0x20] // [TEMP_02]
+ ldr q16, [fp, #0x60] // [V02 arg2]
+ str q16, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x50] // [TEMP_05]
+ ldr q17, [fp, #0x40] // [TEMP_04]
+ ldr q18, [fp, #0x30] // [TEMP_03]
+ ldr q19, [fp, #0x20] // [TEMP_02]
+ ldr q20, [fp, #0x10] // [TEMP_01]
+ tbx v16.16b, {v17.16b, v18.16b, v19.16b}, v20.16b
+ mov v0.16b, v16.16b
+ ;; size=68 bbWeight=1 PerfScore 28.50
G_M10198_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0xB0
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=51c0d829) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=51c0d829) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
; ============================================================
Unwind Info:
@@ -45,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -53,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ 95 save_fplr_x #21 (0x15); stp fp, lr, [sp, #-176]!
E4 end
E4 end
libraries.crossgen2.windows.arm64.checked.mch
+0 (0.00%) : 6661.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
@@ -28,17 +28,17 @@ G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- fcvtzs x11, d0
- str x11, [fp, #0x18] // [V02 loc0]
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0
- sxtw x0, w0
- cmp x11, x0
+ fcvtzs x0, d0
+ str x0, [fp, #0x18] // [V02 loc0]
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0
+ sxtw x1, w1
+ cmp x0, x1
blt G_M50957_IG03
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0xD1FFAB1E LSL #16
- sxtw x0, w0
- cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0xD1FFAB1E LSL #16
+ sxtw x1, w1
+ cmp x0, x1
ble G_M50957_IG04
;; size=68 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 136778.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -38,8 +38,8 @@ G_M16092_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- ldr w11, [fp, #0x20] // [V06 tmp1]
- cmp w0, w11
+ ldr w1, [fp, #0x20] // [V06 tmp1]
+ cmp w0, w1
beq G_M16092_IG04
mov w0, wzr
;; size=60 bbWeight=1 PerfScore 16.00
+0 (0.00%) : 6655.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -33,10 +33,10 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x3
; gcrRegs -[x0 x2]
str w0, [fp, #0x24] // [V01 loc0]
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1]
- ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x0]
+ ldr x1, [x0]
; gcrRegs +[x1]
ldr w0, [fp, #0x24] // [V01 loc0]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
+0 (0.00%) : 6656.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
@@ -28,17 +28,17 @@ G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add x11, x11, [LOW RELOC #0xD1FFAB1E]
ldr x1, [x11]
blr x1
- fcvtzs x11, d0
- str x11, [fp, #0x18] // [V02 loc0]
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0
- sxtw x0, w0
- cmp x11, x0
+ fcvtzs x0, d0
+ str x0, [fp, #0x18] // [V02 loc0]
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0
+ sxtw x1, w1
+ cmp x0, x1
blt G_M28342_IG03
- ldr x11, [fp, #0x18] // [V02 loc0]
- movn w0, #0xD1FFAB1E LSL #16
- sxtw x0, w0
- cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0]
+ movn w1, #0xD1FFAB1E LSL #16
+ sxtw x1, w1
+ cmp x0, x1
ble G_M28342_IG04
;; size=68 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+0 (0.00%) : 6660.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
@@ -34,26 +34,26 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x3
; gcrRegs -[x0 x2]
str w0, [fp, #0x24] // [V01 loc0]
- ldr x1, [fp, #0x28] // [V00 arg0]
- ; gcrRegs +[x1]
- ldr w1, [x1, #0x08]
- ; gcrRegs -[x1]
- cbz w1, G_M30483_IG03
- ldr w1, [fp, #0x24] // [V01 loc0]
- cmn w1, #1
- cset x1, ne
- str w1, [fp, #0x14] // [V04 tmp1]
+ ldr x0, [fp, #0x28] // [V00 arg0]
+ ; gcrRegs +[x0]
+ ldr w0, [x0, #0x08]
+ ; gcrRegs -[x0]
+ cbz w0, G_M30483_IG03
+ ldr w0, [fp, #0x24] // [V01 loc0]
+ cmn w0, #1
+ cset x0, ne
+ str w0, [fp, #0x14] // [V04 tmp1]
b G_M30483_IG04
;; size=68 bbWeight=1 PerfScore 22.50
G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1
- str w1, [fp, #0x14] // [V04 tmp1]
+ mov w0, #1
+ str w0, [fp, #0x14] // [V04 tmp1]
;; size=8 bbWeight=1 PerfScore 1.50
G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr
- add x1, x1, [LOW RELOC #0xD1FFAB1E]
- ldr x1, [x1]
- ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr
+ add x0, x0, [LOW RELOC #0xD1FFAB1E]
+ ldr x0, [x0]
+ ldr x1, [x0]
; gcrRegs +[x1]
ldr w0, [fp, #0x14] // [V04 tmp1]
adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address
libraries.pmi.windows.arm64.checked.mch
+0 (0.00%) : 15929.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
@@ -1350,21 +1350,22 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcr arg pop 0
str x0, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0]
- ; gcrRegs +[x2]
- cbz x2, G_M12913_IG05
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [x2, #0x08]
- str x2, [fp, #0xD1FFAB1E] // [V03 loc1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ cbz x0, G_M12913_IG05
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ ldr x0, [x0, #0x08]
+ str x0, [fp, #0xD1FFAB1E] // [V03 loc1]
;; size=48 bbWeight=1 PerfScore 17.50
G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x2]
- ldr x2, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs -[x0]
+ ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x0]
+ ldr x2, [x0, #0x08]
; gcrRegs +[x2]
- ldr x2, [x2, #0x08]
ldr x1, [fp, #0xD1FFAB1E] // [V03 loc1]
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38354,16 +38355,18 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ 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, #0xD1FFAB1E] // [V1269 tmp844]
ldr x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409]
; gcrRegs +[x2]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38389,21 +38392,23 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
+ 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, #0xD1FFAB1E] // [V1270 tmp845]
ldr x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
- ldr x4, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ldr x4, [x0, #0x08]
; gcrRegs +[x4]
- ldr x4, [x4, #0x08]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409]
; gcrRegs +[x2]
ldr x3, [fp, #0xD1FFAB1E] // [V412 loc410]
; gcrRegs +[x3]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x5, #0xD1FFAB1E // code for <unknown method>
@@ -38476,16 +38481,18 @@ G_M12913_IG650: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w1, #0xD1FFAB1E
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- str x1, [fp, #0xF8] // [V1272 tmp847]
+ 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, #0xF8] // [V1272 tmp847]
ldr x1, [fp, #0xF8] // [V1272 tmp847]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V31 loc29]
; gcrRegs +[x2]
movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -38911,9 +38918,11 @@ G_M12913_IG662: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0xB0] // [V1281 tmp856]
ldr x2, [fp, #0xB0] // [V1281 tmp856]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39054,9 +39063,11 @@ G_M12913_IG670: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x90] // [V1285 tmp860]
ldr x2, [fp, #0x90] // [V1285 tmp860]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39257,9 +39268,11 @@ G_M12913_IG679: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x70] // [V1289 tmp864]
ldr x2, [fp, #0x70] // [V1289 tmp864]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
@@ -39400,9 +39413,11 @@ G_M12913_IG687: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
str x0, [fp, #0x50] // [V1293 tmp868]
ldr x2, [fp, #0x50] // [V1293 tmp868]
; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26]
- sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26]
+ ; gcrRegs -[x0]
+ sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2]
; gcr arg pop 0
libraries_tests.run.windows.arm64.Release.mch
-20 (-5.49%) : 159856.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrowsSystem.__Canon (Tier0)
@@ -5,40 +5,40 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] class-hnd <System.Action>
-; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon>
-; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] class-hnd <System.Action>
+; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon>
+; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon>
-; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "SpillCatchArg"
-; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon>
+; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "SpillCatchArg"
+; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 80
G_M19780_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x60]!
- str x19, [sp, #0x58]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- str xzr, [x9, #0x20]
+ stp xzr, xzr, [x9, #0x20]
add x2, sp, #96
- str x2, [fp, #0x50] // [V08 PSPSym]
- str x0, [fp, #0x48]
- str x0, [fp, #0x40] // [V00 TypeCtx]
- str x1, [fp, #0x38] // [V01 arg0]
- ;; size=48 bbWeight=1 PerfScore 10.00
+ str x2, [fp, #0x58] // [V08 PSPSym]
+ str x0, [fp, #0x50]
+ str x0, [fp, #0x48] // [V00 TypeCtx]
+ str x1, [fp, #0x40] // [V01 arg0]
+ ;; size=44 bbWeight=1 PerfScore 9.00
G_M19780_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x30] // [V02 loc0]
+ str xzr, [fp, #0x38] // [V02 loc0]
;; size=4 bbWeight=1 PerfScore 1.00
G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x38] // [V01 arg0]
+ ldr x0, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x1, [fp, #0x38] // [V01 arg0]
+ ldr x1, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x1]
ldr x1, [x1, #0x18]
; gcrRegs -[x1]
@@ -47,13 +47,13 @@ G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=20 bbWeight=1 PerfScore 11.00
G_M19780_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0]
cbnz x0, G_M19780_IG06
;; size=8 bbWeight=1 PerfScore 3.00
G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -70,7 +70,7 @@ G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -79,29 +79,30 @@ G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x48] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
beq G_M19780_IG08
- ;; size=56 bbWeight=1 PerfScore 21.50
+ ;; size=60 bbWeight=1 PerfScore 24.00
G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V07 tmp3]
- ldr x0, [fp, #0x10] // [V07 tmp3]
- ldr x1, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x18] // [V07 tmp3]
+ ldr x0, [fp, #0x18] // [V07 tmp3]
+ ldr x1, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -115,77 +116,72 @@ G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=52 bbWeight=0 PerfScore 0.00
G_M19780_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M19780_IG09: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
- ldr x1, [x1, #-0x10]
- str x1, [sp, #0x10]
+ ldr x1, [x1, #-0x08]
+ str x1, [sp, #0x18]
sub fp, x1, #96
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M19780_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- str x0, [fp, #0x18] // [V06 tmp2]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x20] // [V06 tmp2]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x18] // [V06 tmp2]
+ ldr x1, [fp, #0x20] // [V06 tmp2]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION
; gcrRegs -[x1]
; gcr arg pop 0
;; size=24 bbWeight=0 PerfScore 0.00
G_M19780_IG11: ; bbWeight=0, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M19780_IG12: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #96
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M19780_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V05 tmp1]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x28] // [V05 tmp1]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x20] // [V05 tmp1]
+ ldr x1, [fp, #0x28] // [V05 tmp1]
; gcrRegs +[x1]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x28] // [V03 loc1]
- ldr x0, [fp, #0x28] // [V03 loc1]
- str x0, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x30] // [V03 loc1]
+ ldr x0, [fp, #0x30] // [V03 loc1]
+ str x0, [fp, #0x38] // [V02 loc0]
adr x0, [G_M19780_IG04]
; gcrRegs -[x0]
;; size=40 bbWeight=1 PerfScore 16.50
G_M19780_IG14: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 364, prolog size 48, PerfScore 76.50, instruction count 91, allocated bytes for code 364 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
+; Total bytes of code 344, prolog size 44, PerfScore 73.00, instruction count 86, allocated bytes for code 344 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
; ============================================================
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 : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -193,10 +189,24 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0B save_reg X#0 Z#11 (0x0B); str x19, [sp, #88]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
E4 end
E4 end
+
+Unwind Info:
+ >> Start offset : 0xd1ffab1e (not in unwind data)
+ >> End offset : 0xd1ffab1e (not in unwind data)
+ Code Words : 1
+ Epilog Count : 0
+ E bit : 1
+ X bit : 0
+ Vers : 0
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
+ --- One epilog, unwind codes at 0
+ ---- Unwind codes ----
+ ---- Epilog start at index 0 ----
+ 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+ E4 end
E4 end
...
-16 (-4.12%) : 179781.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)
@@ -5,46 +5,45 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.Span`1[int]>
-; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]>
-; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
-; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.Span`1[int]>
+; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]>
+; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M57052_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20]
- str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym]
- str x0, [fp, #0x68]
- str x0, [fp, #0x60] // [V00 TypeCtx]
- str x1, [fp, #0x50] // [V01 arg0]
- str x2, [fp, #0x58] // [V01 arg0+0x08]
- str x3, [fp, #0x48] // [V02 arg1]
- ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym]
+ str x0, [fp, #0x70]
+ str x0, [fp, #0x68] // [V00 TypeCtx]
+ str x1, [fp, #0x58] // [V01 arg0]
+ str x2, [fp, #0x60] // [V01 arg0+0x08]
+ str x3, [fp, #0x50] // [V02 arg1]
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08]
- ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08]
+ ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3]
ldr x3, [x3, #0x18]
; gcrRegs -[x3]
@@ -52,41 +51,41 @@ G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; byrRegs -[x1]
; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00
G_M57052_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3]
- ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3]
+ ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M57052_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2]
- ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2]
+ ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2]
- ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M57052_IG05
b G_M57052_IG07
;; size=76 bbWeight=1 PerfScore 34.00
G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -103,7 +102,7 @@ G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -112,35 +111,35 @@ G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x68] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
bne G_M57052_IG07
- ldr x0, [fp, #0x30] // [V05 loc2]
- ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2]
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M57052_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3]
- ldr x0, [fp, #0x10] // [V10 tmp3]
- ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3]
+ ldr x0, [fp, #0x18] // [V10 tmp3]
+ ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -157,37 +156,35 @@ G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M57052_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M57052_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1]
- ldr x0, [fp, #0x20] // [V08 tmp1]
- str x0, [fp, #0x38] // [V04 loc1]
- ldr x0, [fp, #0x38] // [V04 loc1]
- str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1]
+ ldr x0, [fp, #0x28] // [V08 tmp1]
+ str x0, [fp, #0x40] // [V04 loc1]
+ ldr x0, [fp, #0x40] // [V04 loc1]
+ str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M57052_IG03]
; gcrRegs -[x0]
;; size=24 bbWeight=1 PerfScore 7.50
G_M57052_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
; ============================================================
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 : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -195,12 +192,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
E4 end
- E4 end
- E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
@@ -210,13 +204,14 @@ Unwind Info:
E bit : 1
...
-16 (-4.12%) : 177355.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)
@@ -5,46 +5,45 @@
; fully interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[]
-; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]>
-; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
-; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>>
-; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
-; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[]
+; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]>
+; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]>
+; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
-; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect"
-; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>>
+; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect"
+; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect"
+; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
+; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M22620_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20]
- str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym]
- str x0, [fp, #0x68]
- str x0, [fp, #0x60] // [V00 TypeCtx]
- str x1, [fp, #0x50] // [V01 arg0]
- str x2, [fp, #0x58] // [V01 arg0+0x08]
- str x3, [fp, #0x48] // [V02 arg1]
- ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym]
+ str x0, [fp, #0x70]
+ str x0, [fp, #0x68] // [V00 TypeCtx]
+ str x1, [fp, #0x58] // [V01 arg0]
+ str x2, [fp, #0x60] // [V01 arg0+0x08]
+ str x3, [fp, #0x50] // [V02 arg1]
+ ;; size=52 bbWeight=1 PerfScore 11.00
G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08]
- ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08]
+ ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0]
ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3]
ldr x3, [x3, #0x18]
; gcrRegs -[x3]
@@ -52,41 +51,41 @@ G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
; byrRegs -[x1]
; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00
G_M22620_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3]
- ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3]
+ ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M22620_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1]
bl CORINFO_HELP_ISINSTANCEOFANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2]
- ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2]
+ ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_CHKCASTANY
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2]
- ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M22620_IG05
b G_M22620_IG07
;; size=76 bbWeight=1 PerfScore 34.00
G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
@@ -103,7 +102,7 @@ G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=40 bbWeight=0 PerfScore 0.00
G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -112,35 +111,35 @@ G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr wzr, [x0]
blr x1
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01]
+ ldr x1, [fp, #0x68] // [V00 TypeCtx]
+ ldr x1, [x1, #0x38]
+ ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38]
- ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
bne G_M22620_IG07
- ldr x0, [fp, #0x30] // [V05 loc2]
- ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2]
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M22620_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38]
ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
; gcrRegs +[x0]
; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3]
- ldr x0, [fp, #0x10] // [V10 tmp3]
- ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3]
+ ldr x0, [fp, #0x18] // [V10 tmp3]
+ ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -157,37 +156,35 @@ G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M22620_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
; gcrRegs +[x0]
stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10]
- ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18]
+ ;; size=12 bbWeight=1 PerfScore 2.50
G_M22620_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1]
- ldr x0, [fp, #0x20] // [V08 tmp1]
- str x0, [fp, #0x38] // [V04 loc1]
- ldr x0, [fp, #0x38] // [V04 loc1]
- str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1]
+ ldr x0, [fp, #0x28] // [V08 tmp1]
+ str x0, [fp, #0x40] // [V04 loc1]
+ ldr x0, [fp, #0x40] // [V04 loc1]
+ str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M22620_IG03]
; gcrRegs -[x0]
;; size=24 bbWeight=1 PerfScore 7.50
G_M22620_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
; ============================================================
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 : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -195,12 +192,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
E4 end
E4 end
- E4 end
- E4 end
Unwind Info:
>> Start offset : 0xd1ffab1e (not in unwind data)
@@ -210,13 +204,14 @@ Unwind Info:
E bit : 1
...
+12 (+12.50%) : 426748.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
@@ -24,28 +24,31 @@ G_M27621_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str x0, [fp, #0x38] // [V00 this]
;; size=28 bbWeight=1 PerfScore 6.50
G_M27621_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x30] // [V01 arg1]
+ ldr d16, [fp, #0x30] // [V01 arg1]
+ fmov d0, d16
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
str d0, [fp, #0x18] // [V04 loc0]
- ldr d0, [fp, #0x28] // [V02 arg2]
- ldr d2, [fp, #0x20] // [V03 arg3]
+ ldr d16, [fp, #0x28] // [V02 arg2]
+ fmov d0, d16
+ ldr d16, [fp, #0x20] // [V03 arg3]
+ fmov d2, d16
ldr d1, [fp, #0x18] // [V04 loc0]
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
blr x0
- ;; size=60 bbWeight=1 PerfScore 20.00
+ ;; size=72 bbWeight=1 PerfScore 21.50
G_M27621_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x40
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 28.50, instruction count 24, allocated bytes for code 96 (MethodHash=cc6f941a) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
+; Total bytes of code 108, prolog size 12, PerfScore 30.00, instruction count 27, allocated bytes for code 108 (MethodHash=cc6f941a) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
; ============================================================
Unwind Info:
@@ -56,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+14.29%) : 361959.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector128
1[double]):double (Tier0)
@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q0, [fp, #0x10] // [V00 arg0]
;; size=12 bbWeight=1 PerfScore 2.50
G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0]
- faddp d0, v0.2d
- ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0]
+ faddp d16, v16.2d
+ dup d0, v16.d[0]
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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 (+14.29%) : 362704.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector128
1[double]):double (Instrumented Tier0)
@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
str q0, [fp, #0x10] // [V00 arg0]
;; size=12 bbWeight=1 PerfScore 2.50
G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0]
- faddp d0, v0.2d
- ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0]
+ faddp d16, v16.2d
+ dup d0, v16.d[0]
+ ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
-8 (-1.57%) : 11929.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple
2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
@@ -7,39 +7,38 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
-; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x60] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
-; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
-; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x48] do-not-enreg[] must-init
-; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x44] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]>
+; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x68] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]>
+; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x54] do-not-enreg[] must-init
+; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x50] do-not-enreg[] must-init
+; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x40] do-not-enreg[] "impSpillStackEnsure"
-; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x3C] do-not-enreg[] must-init
-; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
-; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init
-; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure"
-; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "impSpillStackEnsure"
-; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x48] do-not-enreg[] "impSpillStackEnsure"
+; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x44] do-not-enreg[] must-init
+; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>>
+; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init
+; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] "impSpillStackEnsure"
+; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "impSpillStackEnsure"
+; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure"
+; TEMP_01 ref -> [fp+0x18]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
- add x9, fp, #36
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
- str xzr, [x9, #0x20]
- str wzr, [x9, #0x28]
- str x0, [fp, #0x70] // [V00 this]
- str x1, [fp, #0x60] // [V01 arg1]
- str x2, [fp, #0x68] // [V01 arg1+0x08]
- str x3, [fp, #0x50] // [V02 arg2]
- str x4, [fp, #0x58] // [V02 arg2+0x08]
- ;; size=52 bbWeight=1 PerfScore 11.50
+ stp q16, q16, [x9, #0x20]
+ str x0, [fp, #0x78] // [V00 this]
+ str x1, [fp, #0x68] // [V01 arg1]
+ str x2, [fp, #0x70] // [V01 arg1+0x08]
+ str x3, [fp, #0x58] // [V02 arg2]
+ str x4, [fp, #0x60] // [V02 arg2+0x08]
+ ;; size=44 bbWeight=1 PerfScore 9.50
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -53,9 +52,9 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x0, [fp, #0x60] // [V01 arg1]
+ ldr x0, [fp, #0x68] // [V01 arg1]
; gcrRegs +[x0]
- ldr x1, [fp, #0x50] // [V02 arg2]
+ ldr x1, [fp, #0x58] // [V02 arg2]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -64,49 +63,48 @@ G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- str w0, [fp, #0x40] // [V07 tmp1]
- ldr w1, [fp, #0x40] // [V07 tmp1]
- uxtb w1, w1
- str w1, [fp, #0x4C] // [V03 loc0]
- ldr w1, [fp, #0x4C] // [V03 loc0]
- cbz w1, G_M13185_IG05
+ str w0, [fp, #0x48] // [V07 tmp1]
+ ldr w0, [fp, #0x48] // [V07 tmp1]
+ uxtb w0, w0
+ str w0, [fp, #0x54] // [V03 loc0]
+ ldr w0, [fp, #0x54] // [V03 loc0]
+ cbz w0, G_M13185_IG05
nop
- str wzr, [fp, #0x48] // [V04 loc1]
+ str wzr, [fp, #0x50] // [V04 loc1]
nop
b G_M13185_IG11
;; size=72 bbWeight=1 PerfScore 20.50
G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
- ; gcrRegs +[x1]
- cbz x1, G_M13185_IG06
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
- cmp x1, #0
- cset x1, eq
- ; gcrRegs -[x1]
- str w1, [fp, #0x3C] // [V08 tmp2]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
+ ; gcrRegs +[x0]
+ cbz x0, G_M13185_IG06
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
+ cmp x0, #0
+ cset x0, eq
+ ; gcrRegs -[x0]
+ str w0, [fp, #0x44] // [V08 tmp2]
b G_M13185_IG07
;; size=28 bbWeight=1 PerfScore 8.00
G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1
- str w1, [fp, #0x3C] // [V08 tmp2]
+ mov w0, #1
+ str w0, [fp, #0x44] // [V08 tmp2]
;; size=8 bbWeight=1 PerfScore 1.50
G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w1, [fp, #0x3C] // [V08 tmp2]
- uxtb w1, w1
- str w1, [fp, #0x44] // [V05 loc2]
- ldr w1, [fp, #0x44] // [V05 loc2]
- cbz w1, G_M13185_IG08
+ ldr w0, [fp, #0x44] // [V08 tmp2]
+ uxtb w0, w0
+ str w0, [fp, #0x4C] // [V05 loc2]
+ ldr w0, [fp, #0x4C] // [V05 loc2]
+ cbz w0, G_M13185_IG08
nop
- add x1, fp, #96 // [V01 arg1]
+ add x1, fp, #104 // [V01 arg1]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_BOX
; gcrRegs +[x0]
; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- add x1, fp, #80 // [V02 arg2]
+ str x0, [fp, #0x18] // [TEMP_01]
+ add x1, fp, #88 // [V02 arg2]
movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
@@ -114,18 +112,20 @@ G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
bl CORINFO_HELP_BOX
; gcrRegs +[x0]
; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x18] // [TEMP_01]
+ ; gcrRegs +[x1]
+ cmp x1, x0
cset x0, eq
; gcrRegs -[x0]
- str w0, [fp, #0x48] // [V04 loc1]
+ str w0, [fp, #0x50] // [V04 loc1]
nop
b G_M13185_IG11
- ;; size=88 bbWeight=1 PerfScore 17.00
+ ;; size=92 bbWeight=1 PerfScore 19.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19]
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ; gcrRegs -[x1]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x1, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
@@ -133,9 +133,9 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1, #0x20]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x30] // [V09 tmp3]
- ldr x0, [fp, #0x58] // [V02 arg2+0x08]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ str x0, [fp, #0x38] // [V09 tmp3]
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1]
ldr x1, [x1]
; gcrRegs -[x1]
@@ -143,13 +143,13 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1, #0x20]
blr x1
; gcr arg pop 0
- str x0, [fp, #0x28] // [V10 tmp4]
- ldr x0, [fp, #0x30] // [V09 tmp3]
- ldr x1, [fp, #0x28] // [V10 tmp4]
+ str x0, [fp, #0x30] // [V10 tmp4]
+ ldr x0, [fp, #0x38] // [V09 tmp3]
+ ldr x1, [fp, #0x30] // [V10 tmp4]
; gcrRegs +[x1]
cmp x0, x1
bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
movz x1, #0xD1FFAB1E // code for <unknown method>
; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16
@@ -159,8 +159,8 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [fp, #0x20] // [V12 tmp6]
- ldr x0, [fp, #0x58] // [V02 arg2+0x08]
+ str w0, [fp, #0x28] // [V12 tmp6]
+ ldr x0, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -170,14 +170,14 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- str w0, [fp, #0x1C] // [V13 tmp7]
- ldr w0, [fp, #0x20] // [V12 tmp6]
- ldr w1, [fp, #0x1C] // [V13 tmp7]
+ str w0, [fp, #0x24] // [V13 tmp7]
+ ldr w0, [fp, #0x28] // [V12 tmp6]
+ ldr w1, [fp, #0x24] // [V13 tmp7]
cmp w0, w1
bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -187,41 +187,40 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blr x2
; gcrRegs -[x0-x1]
; gcr arg pop 0
- str w0, [fp, #0x18] // [V14 tmp8]
- ldr w0, [fp, #0x18] // [V14 tmp8]
- str w0, [fp, #0x24] // [V11 tmp5]
+ str w0, [fp, #0x20] // [V14 tmp8]
+ ldr w0, [fp, #0x20] // [V14 tmp8]
+ str w0, [fp, #0x2C] // [V11 tmp5]
...
+0 (0.00%) : 2117.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1[System.__Canon]:.ctor():this (MinOpts)
@@ -124,15 +124,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x5
; gcrRegs -[x0-x4]
; gcr arg pop 0
- ldr x14, [fp, #0x70] // [V02 tmp1]
- ; gcrRegs +[x14]
- add x14, x14, #144
- ; gcrRegs -[x14]
+ ldr x0, [fp, #0x70] // [V02 tmp1]
+ ; gcrRegs +[x0]
+ add x14, x0, #144
; byrRegs +[x14]
ldr x15, [fp, #0x48] // [V07 tmp6]
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
ldr x0, [fp, #0x78] // [V00 this]
; gcrRegs +[x0]
@@ -201,15 +200,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x5
; gcrRegs -[x0-x4]
; gcr arg pop 0
- ldr x14, [fp, #0x40] // [V08 tmp7]
- ; gcrRegs +[x14]
- add x14, x14, #152
- ; gcrRegs -[x14]
+ ldr x0, [fp, #0x40] // [V08 tmp7]
+ ; gcrRegs +[x0]
+ add x14, x0, #152
; byrRegs +[x14]
ldr x15, [fp, #0x18] // [V13 tmp12]
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
nop
;; size=428 bbWeight=1 PerfScore 184.00
+0 (0.00%) : 2145.dasm - Microsoft.CodeAnalysis.Testing.PackageIdentity:.ctor(System.String,System.String):this (MinOpts)
@@ -61,20 +61,20 @@ G_M36042_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcr arg pop 0
nop
nop
- ldr x14, [fp, #0x88] // [V00 this]
- ; gcrRegs +[x14]
- str x14, [fp, #0x70] // [V04 tmp1]
- ldr x14, [fp, #0x80] // [V01 arg1]
- str x14, [fp, #0x68] // [V05 tmp2]
- ldr x14, [fp, #0x70] // [V04 tmp1]
- str x14, [fp, #0x60] // [V06 tmp3]
- ldr x14, [fp, #0x68] // [V05 tmp2]
- str x14, [fp, #0x58] // [V07 tmp4]
- ldr x14, [fp, #0x80] // [V01 arg1]
- cbnz x14, G_M36042_IG06
+ ldr x0, [fp, #0x88] // [V00 this]
+ ; gcrRegs +[x0]
+ str x0, [fp, #0x70] // [V04 tmp1]
+ ldr x0, [fp, #0x80] // [V01 arg1]
+ str x0, [fp, #0x68] // [V05 tmp2]
+ ldr x0, [fp, #0x70] // [V04 tmp1]
+ str x0, [fp, #0x60] // [V06 tmp3]
+ ldr x0, [fp, #0x68] // [V05 tmp2]
+ str x0, [fp, #0x58] // [V07 tmp4]
+ ldr x0, [fp, #0x80] // [V01 arg1]
+ cbnz x0, G_M36042_IG06
;; size=72 bbWeight=1 PerfScore 23.50
G_M36042_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x14]
+ ; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -108,30 +108,29 @@ G_M36042_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=80 bbWeight=0 PerfScore 0.00
G_M36042_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x14, [fp, #0x60] // [V06 tmp3]
- ; gcrRegs +[x14]
- add x14, x14, #8
- ; gcrRegs -[x14]
+ ldr x0, [fp, #0x60] // [V06 tmp3]
+ ; gcrRegs +[x0]
+ add x14, x0, #8
; byrRegs +[x14]
ldr x15, [fp, #0x58] // [V07 tmp4]
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ldr x14, [fp, #0x88] // [V00 this]
- ; gcrRegs +[x14]
- str x14, [fp, #0x50] // [V08 tmp5]
- ldr x14, [fp, #0x78] // [V02 arg2]
- str x14, [fp, #0x48] // [V09 tmp6]
- ldr x14, [fp, #0x50] // [V08 tmp5]
- str x14, [fp, #0x40] // [V10 tmp7]
- ldr x14, [fp, #0x48] // [V09 tmp6]
- str x14, [fp, #0x38] // [V11 tmp8]
- ldr x14, [fp, #0x78] // [V02 arg2]
- cbnz x14, G_M36042_IG08
+ ldr x0, [fp, #0x88] // [V00 this]
+ ; gcrRegs +[x0]
+ str x0, [fp, #0x50] // [V08 tmp5]
+ ldr x0, [fp, #0x78] // [V02 arg2]
+ str x0, [fp, #0x48] // [V09 tmp6]
+ ldr x0, [fp, #0x50] // [V08 tmp5]
+ str x0, [fp, #0x40] // [V10 tmp7]
+ ldr x0, [fp, #0x48] // [V09 tmp6]
+ str x0, [fp, #0x38] // [V11 tmp8]
+ ldr x0, [fp, #0x78] // [V02 arg2]
+ cbnz x0, G_M36042_IG08
;; size=56 bbWeight=1 PerfScore 20.50
G_M36042_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x14]
+ ; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -165,15 +164,14 @@ G_M36042_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
;; size=80 bbWeight=0 PerfScore 0.00
G_M36042_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x14, [fp, #0x40] // [V10 tmp7]
- ; gcrRegs +[x14]
- add x14, x14, #16
- ; gcrRegs -[x14]
+ ldr x0, [fp, #0x40] // [V10 tmp7]
+ ; gcrRegs +[x0]
+ add x14, x0, #16
; byrRegs +[x14]
ldr x15, [fp, #0x38] // [V11 tmp8]
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
nop
;; size=20 bbWeight=1 PerfScore 6.00
+4 (+2.50%) : 291660.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035AUtilities:gWithResize|2_0(byref,byref,int,int) (MinOpts)
@@ -36,25 +36,26 @@ G_M12365_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M12365_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- adds w1, w1, #1
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ adds w0, w0, #1
bvc G_M12365_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 8.00
G_M12365_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M12365_IG06
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=24 bbWeight=1 PerfScore 6.50
G_M12365_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -76,13 +77,13 @@ G_M12365_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=56 bbWeight=1 PerfScore 18.00
+ ;; size=60 bbWeight=1 PerfScore 18.50
G_M12365_IG07: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 24, PerfScore 46.00, instruction count 40, allocated bytes for code 160 (MethodHash=97c8cfb2) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
+; Total bytes of code 164, prolog size 24, PerfScore 46.50, instruction count 41, allocated bytes for code 164 (MethodHash=97c8cfb2) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -93,7 +94,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+2.86%) : 282855.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035AUtilities:gWithResize|83_0(byref,byref,int) (MinOpts)
@@ -34,19 +34,20 @@ G_M48747_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M48747_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M48747_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 12.00
G_M48747_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -67,13 +68,13 @@ G_M48747_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M48747_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=44774194) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=44774194) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -84,7 +85,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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 (+2.86%) : 292211.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035AUtilities:gWithResize|35_0(byref,byref,int) (MinOpts)
@@ -34,19 +34,20 @@ G_M42150_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M42150_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- ldr x1, [fp, #0x20] // [V01 arg1]
- ; byrRegs +[x1]
- ldr w1, [x1]
- ; byrRegs -[x1]
- mov w0, #2
- smull x1, w1, w0
- lsr x2, x1, #32
- cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1]
+ ; byrRegs +[x0]
+ ldr w0, [x0]
+ ; byrRegs -[x0]
+ mov w1, #2
+ smull x0, w0, w1
+ lsr x2, x0, #32
+ cmp w2, w0, ASR #31
beq G_M42150_IG05
bl CORINFO_HELP_OVERFLOW
; gcr arg pop 0
;; size=36 bbWeight=1 PerfScore 12.00
G_M42150_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0]
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
@@ -67,13 +68,13 @@ G_M42150_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
nop
nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M42150_IG06: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x30
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=f91e5b59) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=f91e5b59) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
; ============================================================
Unwind Info:
@@ -84,7 +85,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ 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)
realworld.run.windows.arm64.checked.mch
+0 (0.00%) : 4498.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
@@ -2602,41 +2602,39 @@ G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr x1, [x1]
blr x1
str x0, [fp, #0xD1FFAB1E] // [V11 loc9]
- ldr x2, [fp, #0xD1FFAB1E] // [V11 loc9]
- ; gcrRegs +[x2]
- cbz x2, G_M23076_IG09
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ldrb w2, [x2, #0x40]
- ; gcrRegs -[x2]
+ ldr x0, [fp, #0xD1FFAB1E] // [V11 loc9]
+ cbz x0, G_M23076_IG09
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
+ ldrb w0, [x0, #0x40]
+ ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V73 tmp3]
+ str w0, [fp, xip1] // [V73 tmp3]
b G_M23076_IG10
;; size=152 bbWeight=1 PerfScore 45.50
G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E
str wzr, [fp, xip1] // [V73 tmp3]
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov xip1, #0xD1FFAB1E
- ldr w2, [fp, xip1] // [V73 tmp3]
- uxtb w2, w2
+ ldr w0, [fp, xip1] // [V73 tmp3]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V09 loc7]
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ; gcrRegs +[x2]
- ldr x2, [x2, #0x30]
- str x2, [fp, #0xD1FFAB1E] // [V12 loc10]
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ldr w2, [x2, #0x38]
- ; gcrRegs -[x2]
- cmp w2, #0
- bgt G_M23076_IG27
- ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1]
- ; gcrRegs +[x2]
- ldr x2, [x2, #0x30]
+ str w0, [fp, xip1] // [V09 loc7]
ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
; gcrRegs +[x0]
+ ldr x0, [x0, #0x30]
+ str x0, [fp, #0xD1FFAB1E] // [V12 loc10]
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
+ ldr w0, [x0, #0x38]
+ ; gcrRegs -[x0]
+ cmp w0, #0
+ bgt G_M23076_IG27
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
+ ; gcrRegs +[x0]
+ ldr x2, [x0, #0x30]
+ ; gcrRegs +[x2]
+ ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
ldr x1, [fp, #0xD1FFAB1E] // [V04 loc2]
; gcrRegs +[x1]
movz x3, #0xD1FFAB1E // code for <unknown method>
@@ -3975,27 +3973,27 @@ G_M23076_IG51: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x0]
cmp w0, #197
bne G_M23076_IG54
- ldr x1, [fp, #0xD1FFAB1E] // [V02 loc0]
- ; gcrRegs +[x1]
- add x1, x1, #16
- ; gcrRegs -[x1]
- ; byrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0]
+ ; gcrRegs +[x0]
+ add x0, x0, #16
+ ; gcrRegs -[x0]
+ ; byrRegs +[x0]
;; size=68 bbWeight=1 PerfScore 22.00
G_M23076_IG52: ; bbWeight=1, nogc, extend
- add x0, x1, #20
+ add x1, x0, #20
mov x2, #0xD1FFAB1E
add x2, fp, x2
- ldp x3, xip1, [x0]
+ ldp x3, xip1, [x1]
stp x3, xip1, [x2]
- ldr w3, [x0, #0x10]
+ ldr w3, [x1, #0x10]
str w3, [x2, #0x10]
;; size=28 bbWeight=1 PerfScore 10.50
G_M23076_IG53: ; bbWeight=1, extend
mov xip1, #0xD1FFAB1E
add x1, fp, xip1 // [V1653 tmp1583]
- ; byrRegs -[x1]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
@@ -17589,8 +17587,8 @@ G_M23076_IG1254: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
blr x1
; gcrRegs -[x0]
str w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
- ldr w1, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
- cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
+ cmp w0, #26
bhi G_M23076_IG1255
ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
mov w0, w0
@@ -21080,9 +21078,9 @@ G_M23076_IG1570: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs -[x0]
cmp w0, #19
bne G_M23076_IG1571
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V325 tmp255]
+ str w0, [fp, xip1] // [V325 tmp255]
b G_M23076_IG1572
;; size=68 bbWeight=1 PerfScore 17.50
G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -21091,8 +21089,8 @@ G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG1572: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V325 tmp255]
- cbz w1, G_M23076_IG4955
+ ldr w0, [fp, xip1] // [V325 tmp255]
+ cbz w0, G_M23076_IG4955
b G_M23076_IG4944
;; size=16 bbWeight=1 PerfScore 4.50
G_M23076_IG1573: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -26738,8 +26736,8 @@ G_M23076_IG1990: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
blr x1
; gcrRegs -[x0]
str w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
- ldr w1, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
- cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
+ cmp w0, #26
bhi G_M23076_IG1991
ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
mov w0, w0
@@ -62289,8 +62287,8 @@ G_M23076_IG4956: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
blr x1
; gcrRegs -[x0]
str w0, [fp, #0x60] // [V2422 tmp2352]
- ldr w1, [fp, #0x60] // [V2422 tmp2352]
- cmp w1, #26
+ ldr w0, [fp, #0x60] // [V2422 tmp2352]
+ cmp w0, #26
bhi G_M23076_IG4957
ldr w0, [fp, #0x60] // [V2422 tmp2352]
mov w0, w0
@@ -62321,10 +62319,10 @@ G_M23076_IG4960: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG4961: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V267 tmp197]
- uxtb w1, w1
+ ldr w0, [fp, xip1] // [V267 tmp197]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50
G_M23076_IG4962: ; bbWeight=1, nogc, extend
mov x0, #0xD1FFAB1E
@@ -62450,9 +62448,9 @@ G_M23076_IG4969: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs -[x0]
cmp w0, #25
bne G_M23076_IG4970
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V444 tmp374]
+ str w0, [fp, xip1] // [V444 tmp374]
b G_M23076_IG4971
;; size=48 bbWeight=1 PerfScore 12.00
G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -62461,10 +62459,10 @@ G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG4971: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V444 tmp374]
- uxtb w1, w1
+ ldr w0, [fp, xip1] // [V444 tmp374]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V19 loc17]
+ str w0, [fp, xip1] // [V19 loc17]
;; size=20 bbWeight=1 PerfScore 4.50
G_M23076_IG4972: ; bbWeight=1, nogc, extend
mov x0, #0xD1FFAB1E
@@ -62592,9 +62590,9 @@ G_M23076_IG4979: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
; gcrRegs -[x0]
cmp w0, #25
bne G_M23076_IG4980
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V131 tmp61]
+ str w0, [fp, xip1] // [V131 tmp61]
b G_M23076_IG4981
;; size=48 bbWeight=1 PerfScore 12.00
G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -62603,10 +62601,10 @@ G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 1.50
G_M23076_IG4981: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V131 tmp61]
- uxtb w1, w1
+ ldr w0, [fp, xip1] // [V131 tmp61]
+ uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50
G_M23076_IG4982: ; bbWeight=1, nogc, extend
mov x0, #0xD1FFAB1E
@@ -64075,13 +64073,12 @@ G_M23076_IG5065: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ldr x1, [x1]
blr x1
str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62]
- ; gcrRegs +[x1]
- cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62]
+ cbz x0, G_M23076_IG5099
b G_M23076_IG5090
;; size=40 bbWeight=1 PerfScore 12.50
G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
@@ -64090,13 +64087,12 @@ G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ldr x1, [x1]
blr x1
str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62]
- ; gcrRegs +[x1]
- cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62]
+ cbz x0, G_M23076_IG5099
b G_M23076_IG5090
;; size=40 bbWeight=1 PerfScore 12.50
...
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
benchmarks.run_pgo.windows.arm64.checked.mch |
17,272 |
238 |
502 |
16,532 |
-1,820 |
+2,808 |
benchmarks.run_tiered.windows.arm64.checked.mch |
13,406 |
231 |
384 |
12,791 |
-1,748 |
+2,132 |
coreclr_tests.run.windows.arm64.checked.mch |
145,366 |
4,434 |
6,992 |
133,940 |
-36,032 |
+179,660 |
libraries.crossgen2.windows.arm64.checked.mch |
5 |
0 |
0 |
5 |
-0 |
+0 |
libraries.pmi.windows.arm64.checked.mch |
1 |
0 |
0 |
1 |
-0 |
+0 |
libraries_tests.run.windows.arm64.Release.mch |
176,837 |
526 |
1,746 |
174,565 |
-6,428 |
+9,428 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
11,765 |
1 |
30 |
11,734 |
-8 |
+120 |
realworld.run.windows.arm64.checked.mch |
1 |
0 |
0 |
1 |
-0 |
+0 |
smoke_tests.nativeaot.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
364,653 |
5,430 |
9,654 |
349,569 |
-46,036 |
+194,148 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.arm64.checked.mch |
24,217 |
4 |
24,213 |
230 (0.94%) |
230 (0.94%) |
benchmarks.run_pgo.windows.arm64.checked.mch |
96,879 |
48,066 |
48,813 |
104 (0.11%) |
104 (0.11%) |
benchmarks.run_tiered.windows.arm64.checked.mch |
48,412 |
36,693 |
11,719 |
61 (0.13%) |
61 (0.13%) |
coreclr_tests.run.windows.arm64.checked.mch |
595,261 |
362,539 |
232,722 |
442 (0.07%) |
442 (0.07%) |
libraries.crossgen2.windows.arm64.checked.mch |
243,831 |
15 |
243,816 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.windows.arm64.checked.mch |
302,812 |
6 |
302,806 |
2,059 (0.68%) |
2,059 (0.68%) |
libraries_tests.run.windows.arm64.Release.mch |
625,153 |
460,799 |
164,354 |
901 (0.14%) |
901 (0.14%) |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
314,854 |
21,559 |
293,295 |
2,183 (0.69%) |
2,183 (0.69%) |
realworld.run.windows.arm64.checked.mch |
32,874 |
3 |
32,871 |
370 (1.11%) |
370 (1.11%) |
smoke_tests.nativeaot.windows.arm64.checked.mch |
24,152 |
8 |
24,144 |
3 (0.01%) |
3 (0.01%) |
|
2,308,445 |
929,692 |
1,378,753 |
6,353 (0.27%) |
6,353 (0.27%) |
jit-analyze output
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: 46475100 (overridden on cmd)
Total bytes of diff: 46476088 (overridden on cmd)
Total bytes of delta: 988 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
152 : 2112.dasm (36.19 % of base)
152 : 23108.dasm (33.63 % of base)
68 : 75733.dasm (39.53 % of base)
48 : 72247.dasm (0.74 % of base)
40 : 90862.dasm (1.60 % of base)
40 : 90857.dasm (1.60 % of base)
24 : 23520.dasm (0.32 % of base)
24 : 28757.dasm (0.32 % of base)
24 : 30375.dasm (1.35 % of base)
16 : 15196.dasm (1.05 % of base)
16 : 40249.dasm (2.26 % of base)
16 : 44057.dasm (1.80 % of base)
16 : 46753.dasm (1.09 % of base)
16 : 49134.dasm (0.42 % of base)
16 : 70707.dasm (0.99 % of base)
16 : 19085.dasm (3.54 % of base)
16 : 5104.dasm (1.76 % of base)
16 : 66988.dasm (4.94 % of base)
12 : 1240.dasm (0.50 % of base)
12 : 81329.dasm (1.13 % of base)
Top file improvements (bytes):
-24 : 15736.dasm (-1.16 % of base)
-20 : 9669.dasm (-1.37 % of base)
-16 : 22845.dasm (-0.29 % of base)
-16 : 55172.dasm (-0.93 % of base)
-16 : 7476.dasm (-0.14 % of base)
-16 : 70478.dasm (-2.13 % of base)
-16 : 8569.dasm (-0.56 % of base)
-12 : 19650.dasm (-3.66 % of base)
-12 : 24822.dasm (-1.07 % of base)
-12 : 11177.dasm (-1.45 % of base)
-12 : 68376.dasm (-2.83 % of base)
-12 : 11687.dasm (-0.13 % of base)
-12 : 68771.dasm (-2.05 % of base)
-8 : 26153.dasm (-7.14 % of base)
-8 : 27037.dasm (-7.14 % of base)
-8 : 28221.dasm (-5.71 % of base)
-8 : 28321.dasm (-7.14 % of base)
-8 : 30281.dasm (-7.14 % of base)
-8 : 33801.dasm (-7.14 % of base)
-8 : 33845.dasm (-7.14 % of base)
71 total files with Code Size differences (35 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
152 (33.63 % of base) : 23108.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
152 (36.19 % of base) : 2112.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
68 (39.53 % of base) : 75733.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
48 (0.74 % of base) : 72247.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier0)
40 (1.60 % of base) : 90862.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
40 (1.60 % of base) : 90857.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
24 (0.32 % of base) : 28757.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
24 (0.32 % of base) : 23520.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
24 (1.35 % of base) : 30375.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
16 (0.42 % of base) : 49134.dasm - Neural:read_data_file():this (Instrumented Tier0)
16 (1.09 % of base) : 46753.dasm - NeuralJagged:Init() (Instrumented Tier0)
16 (1.76 % of base) : 5104.dasm - System.Globalization.CultureInfo:GetUserDefaultUICulture():System.Globalization.CultureInfo (Tier0)
16 (0.99 % of base) : 70707.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Instrumented Tier0)
16 (1.05 % of base) : 15196.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
16 (4.94 % of base) : 66988.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
16 (1.80 % of base) : 44057.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
16 (2.26 % of base) : 40249.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Instrumented Tier0)
16 (3.54 % of base) : 19085.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
12 (1.13 % of base) : 81329.dasm - Interop+Crypt32:FindOidInfo(int,System.String,int,ubyte):Interop+Crypt32+CRYPT_OID_INFO (Tier0)
12 (0.50 % of base) : 1240.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)
Top method improvements (bytes):
-24 (-1.16 % of base) : 15736.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Instrumented Tier0)
-20 (-1.37 % of base) : 9669.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
-16 (-0.29 % of base) : 22845.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
-16 (-0.93 % of base) : 55172.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
-16 (-0.56 % of base) : 8569.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
-16 (-0.14 % of base) : 7476.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
-16 (-2.13 % of base) : 70478.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
-12 (-2.05 % of base) : 68771.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
-12 (-2.83 % of base) : 68376.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-12 (-3.66 % of base) : 19650.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-12 (-1.07 % of base) : 24822.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
-12 (-1.45 % of base) : 11177.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
-12 (-0.13 % of base) : 11687.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
-8 (-7.14 % of base) : 10245.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-6.67 % of base) : 8617.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:DotBenchmark():int:this (Tier0)
-8 (-7.14 % of base) : 27037.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsStaticBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 36793.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:AddBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-8 (-7.14 % of base) : 9849.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-8 (-7.14 % of base) : 19481.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
-8 (-7.14 % of base) : 79457.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
Top method regressions (percentages):
68 (39.53 % of base) : 75733.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
152 (36.19 % of base) : 2112.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
152 (33.63 % of base) : 23108.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
4 (11.11 % of base) : 6268.dasm - System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
4 (10.00 % of base) : 12422.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
4 (10.00 % of base) : 1220.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (10.00 % of base) : 81429.dasm - System.Math:CopySign(double,double):double (Tier0)
4 (10.00 % of base) : 47681.dasm - System.MathF:CopySign(float,float):float (Tier0)
4 (10.00 % of base) : 65873.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
4 (8.33 % of base) : 22767.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (6.67 % of base) : 50562.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
4 (6.25 % of base) : 59211.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
4 (6.25 % of base) : 55077.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
4 (6.25 % of base) : 20907.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
4 (5.26 % of base) : 22004.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
4 (5.26 % of base) : 45796.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
4 (5.00 % of base) : 90002.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
16 (4.94 % of base) : 66988.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
8 (4.88 % of base) : 21761.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 18976.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
Top method improvements (percentages):
-8 (-7.14 % of base) : 10245.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-8 (-7.14 % of base) : 27037.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsStaticBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 36793.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:AddBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-8 (-7.14 % of base) : 9849.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-8 (-7.14 % of base) : 19481.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
-8 (-7.14 % of base) : 79457.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 42877.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 79533.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 43713.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseAndOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 33845.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 49641.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 26153.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 46005.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseAndBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 47437.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 66561.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 28321.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 43445.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
-8 (-7.14 % of base) : 33801.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ubyte]:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[ubyte]:this (Tier0)
-8 (-7.14 % of base) : 34369.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 30281.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (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: 15251468 (overridden on cmd)
Total bytes of diff: 15251852 (overridden on cmd)
Total bytes of delta: 384 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
152 : 1866.dasm (36.19 % of base)
68 : 44127.dasm (39.53 % of base)
48 : 42554.dasm (0.74 % of base)
40 : 47367.dasm (1.85 % of base)
24 : 21972.dasm (1.35 % of base)
24 : 19659.dasm (0.35 % of base)
24 : 24232.dasm (0.35 % of base)
16 : 2250.dasm (1.76 % of base)
16 : 42378.dasm (4.94 % of base)
16 : 11358.dasm (3.54 % of base)
16 : 27950.dasm (2.48 % of base)
16 : 29443.dasm (1.94 % of base)
16 : 30873.dasm (1.14 % of base)
16 : 31159.dasm (0.43 % of base)
16 : 4309.dasm (1.05 % of base)
12 : 1176.dasm (0.50 % of base)
12 : 45338.dasm (1.13 % of base)
8 : 11232.dasm (4.88 % of base)
8 : 11228.dasm (2.11 % of base)
8 : 18040.dasm (4.88 % of base)
Top file improvements (bytes):
-24 : 16254.dasm (-1.34 % of base)
-16 : 7586.dasm (-0.18 % of base)
-16 : 42305.dasm (-2.13 % of base)
-16 : 19129.dasm (-0.32 % of base)
-16 : 8694.dasm (-0.61 % of base)
-12 : 6608.dasm (-3.66 % of base)
-12 : 11865.dasm (-1.45 % of base)
-12 : 20781.dasm (-1.07 % of base)
-12 : 41157.dasm (-2.83 % of base)
-12 : 12226.dasm (-0.13 % of base)
-8 : 10393.dasm (-7.14 % of base)
-8 : 15086.dasm (-7.14 % of base)
-8 : 15222.dasm (-7.14 % of base)
-8 : 16874.dasm (-7.14 % of base)
-8 : 22809.dasm (-7.14 % of base)
-8 : 27973.dasm (-7.14 % of base)
-8 : 29393.dasm (-7.14 % of base)
-8 : 29405.dasm (-7.14 % of base)
-8 : 29549.dasm (-7.14 % of base)
-8 : 29949.dasm (-7.14 % of base)
72 total files with Code Size differences (37 improved, 35 regressed), 20 unchanged.
Top method regressions (bytes):
152 (36.19 % of base) : 1866.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
68 (39.53 % of base) : 44127.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
48 (0.74 % of base) : 42554.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier0)
40 (1.85 % of base) : 47367.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0)
24 (0.35 % of base) : 24232.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Tier0)
24 (0.35 % of base) : 19659.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Tier0)
24 (1.35 % of base) : 21972.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
16 (0.43 % of base) : 31159.dasm - Neural:read_data_file():this (Tier0)
16 (1.14 % of base) : 30873.dasm - NeuralJagged:Init() (Tier0)
16 (1.76 % of base) : 2250.dasm - System.Globalization.CultureInfo:GetUserDefaultUICulture():System.Globalization.CultureInfo (Tier0)
16 (1.05 % of base) : 4309.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
16 (4.94 % of base) : 42378.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
16 (1.94 % of base) : 29443.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
16 (2.48 % of base) : 27950.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Tier0)
16 (3.54 % of base) : 11358.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
12 (1.13 % of base) : 45338.dasm - Interop+Crypt32:FindOidInfo(int,System.String,int,ubyte):Interop+Crypt32+CRYPT_OID_INFO (Tier0)
12 (0.50 % of base) : 1176.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)
8 (4.88 % of base) : 18040.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 11232.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (2.11 % of base) : 11228.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitStloc(System.Reflection.Emit.ILGenerator,int) (Tier0)
Top method improvements (bytes):
-24 (-1.34 % of base) : 16254.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Tier0)
-16 (-0.32 % of base) : 19129.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Tier0)
-16 (-0.61 % of base) : 8694.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
-16 (-0.18 % of base) : 7586.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
-16 (-2.13 % of base) : 42305.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
-12 (-2.83 % of base) : 41157.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-12 (-3.66 % of base) : 6608.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-12 (-1.07 % of base) : 20781.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
-12 (-1.45 % of base) : 11865.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
-12 (-0.13 % of base) : 12226.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
-8 (-7.14 % of base) : 5877.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
-8 (-5.71 % of base) : 16913.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:GreaterThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-8 (-7.14 % of base) : 27973.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:AddOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 15222.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-8 (-7.14 % of base) : 10393.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-8 (-7.14 % of base) : 15117.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-8 (-7.14 % of base) : 16874.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
-8 (-5.71 % of base) : 15113.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:InequalityOperatorBenchmark():ubyte:this (Tier0)
-8 (-7.14 % of base) : 15086.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivideBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 31565.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
Top method regressions (percentages):
68 (39.53 % of base) : 44127.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
152 (36.19 % of base) : 1866.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
4 (11.11 % of base) : 14964.dasm - System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
4 (10.00 % of base) : 1157.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
4 (10.00 % of base) : 45500.dasm - System.Math:CopySign(double,double):double (Tier0)
4 (10.00 % of base) : 30778.dasm - System.MathF:CopySign(float,float):float (Tier0)
4 (10.00 % of base) : 40137.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
4 (8.33 % of base) : 19051.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (6.67 % of base) : 31890.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
4 (6.25 % of base) : 34754.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
4 (6.25 % of base) : 16938.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
4 (5.26 % of base) : 18271.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
4 (5.26 % of base) : 30120.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
4 (5.00 % of base) : 46895.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
16 (4.94 % of base) : 42378.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
8 (4.88 % of base) : 18040.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
8 (4.88 % of base) : 11232.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
4 (4.76 % of base) : 46726.dasm - System.Numerics.Tests.Perf_Quaternion:LengthBenchmark():float:this (Tier0)
4 (4.55 % of base) : 48281.dasm - System.Numerics.Tests.Perf_Vector2:LengthSquaredBenchmark():float:this (Tier0)
4 (4.55 % of base) : 44360.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SumBenchmark():float:this (Tier0)
Top method improvements (percentages):
-8 (-7.14 % of base) : 5877.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
-8 (-7.14 % of base) : 27973.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:AddOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
-8 (-7.14 % of base) : 15222.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-8 (-7.14 % of base) : 10393.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-8 (-7.14 % of base) : 15117.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-8 (-7.14 % of base) : 16874.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
-8 (-7.14 % of base) : 15086.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivideBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 31565.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 46929.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 48009.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 29405.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 29549.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 39949.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 48025.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MultiplyOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
-8 (-7.14 % of base) : 22809.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 29445.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:MultiplyOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
-8 (-7.14 % of base) : 17762.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
-8 (-7.14 % of base) : 18406.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ubyte]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ubyte]:this (Tier0)
-8 (-7.14 % of base) : 29949.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
-8 (-7.14 % of base) : 29393.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (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: 494449448 (overridden on cmd)
Total bytes of diff: 494593076 (overridden on cmd)
Total bytes of delta: 143628 (0.03 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
860 : 6361.dasm (1.98 % of base)
860 : 6371.dasm (2.11 % of base)
860 : 6426.dasm (1.98 % of base)
860 : 6436.dasm (1.99 % of base)
860 : 6451.dasm (2.11 % of base)
860 : 6468.dasm (1.97 % of base)
860 : 6472.dasm (2.10 % of base)
860 : 6479.dasm (2.11 % of base)
860 : 6420.dasm (2.13 % of base)
860 : 6422.dasm (1.83 % of base)
860 : 6438.dasm (1.97 % of base)
860 : 6442.dasm (2.09 % of base)
808 : 274214.dasm (0.60 % of base)
784 : 274341.dasm (0.59 % of base)
784 : 276106.dasm (0.59 % of base)
784 : 276116.dasm (0.64 % of base)
756 : 287048.dasm (0.73 % of base)
720 : 286000.dasm (0.68 % of base)
672 : 286124.dasm (0.64 % of base)
672 : 287058.dasm (0.69 % of base)
Top file improvements (bytes):
-220 : 157661.dasm (-8.63 % of base)
-220 : 157611.dasm (-8.63 % of base)
-204 : 157651.dasm (-11.62 % of base)
-204 : 194469.dasm (-15.41 % of base)
-204 : 194419.dasm (-15.41 % of base)
-204 : 157621.dasm (-11.62 % of base)
-204 : 157671.dasm (-11.62 % of base)
-204 : 194389.dasm (-15.41 % of base)
-200 : 194379.dasm (-5.26 % of base)
-200 : 194429.dasm (-5.26 % of base)
-116 : 157230.dasm (-3.49 % of base)
-116 : 157479.dasm (-3.49 % of base)
-116 : 157601.dasm (-8.73 % of base)
-116 : 157499.dasm (-3.49 % of base)
-116 : 157631.dasm (-8.73 % of base)
-116 : 157251.dasm (-3.49 % of base)
-116 : 157489.dasm (-3.49 % of base)
-116 : 157216.dasm (-3.49 % of base)
-116 : 157465.dasm (-3.49 % of base)
-116 : 157681.dasm (-8.73 % of base)
67 total files with Code Size differences (27 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
860 (1.98 % of base) : 6361.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 6371.dasm - lclfldadd:TestEntryPoint():int (Tier0)
860 (2.13 % of base) : 6420.dasm - lclfldadd:TestEntryPoint():int (Tier0)
860 (1.83 % of base) : 6422.dasm - lclflddiv:TestEntryPoint():int (MinOpts)
860 (1.98 % of base) : 6426.dasm - lclflddiv:TestEntryPoint():int (Tier0)
860 (1.99 % of base) : 6436.dasm - lclflddiv:TestEntryPoint():int (Tier0)
860 (1.97 % of base) : 6438.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
860 (2.11 % of base) : 6451.dasm - lclfldmul:TestEntryPoint():int (Tier0)
860 (2.09 % of base) : 6442.dasm - lclfldmul:TestEntryPoint():int (Tier0)
860 (1.97 % of base) : 6468.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
860 (2.10 % of base) : 6472.dasm - lclfldsub:TestEntryPoint():int (Tier0)
860 (2.11 % of base) : 6479.dasm - lclfldsub:TestEntryPoint():int (Tier0)
808 (0.60 % of base) : 274214.dasm - i4div:TestEntryPoint():int (MinOpts)
784 (0.59 % of base) : 274341.dasm - i8div:TestEntryPoint():int (MinOpts)
784 (0.59 % of base) : 276106.dasm - u4div:TestEntryPoint():int (MinOpts)
784 (0.64 % of base) : 276116.dasm - u8div:TestEntryPoint():int (MinOpts)
756 (0.73 % of base) : 287048.dasm - u4div:TestEntryPoint():int (Tier0)
720 (0.68 % of base) : 286000.dasm - i4div:TestEntryPoint():int (Tier0)
672 (0.64 % of base) : 286124.dasm - i8div:TestEntryPoint():int (Tier0)
672 (0.69 % of base) : 287058.dasm - u8div:TestEntryPoint():int (Tier0)
Top method improvements (bytes):
-220 (-8.63 % of base) : 157611.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 157661.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 194389.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 157621.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 194419.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 157651.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 157671.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
-204 (-15.41 % of base) : 194469.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
-200 (-5.26 % of base) : 194379.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
-200 (-5.26 % of base) : 194429.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
-116 (-3.49 % of base) : 157216.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt160:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 157251.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 157230.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt163:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 157465.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt160:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 157499.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 157479.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt163:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-3.49 % of base) : 157489.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt167:RunBasicScenario(int,ubyte):this (MinOpts)
-116 (-8.73 % of base) : 157601.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 157631.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 157681.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
Top method regressions (percentages):
52 (76.47 % of base) : 83662.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
52 (76.47 % of base) : 83631.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
52 (76.47 % of base) : 45028.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
52 (76.47 % of base) : 44999.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
44 (73.33 % of base) : 83602.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
44 (73.33 % of base) : 83574.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
44 (73.33 % of base) : 44972.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
44 (73.33 % of base) : 44946.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
36 (69.23 % of base) : 83549.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
36 (69.23 % of base) : 83525.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
36 (69.23 % of base) : 44921.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
36 (69.23 % of base) : 44897.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
184 (51.11 % of base) : 98262.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
184 (51.11 % of base) : 98286.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
184 (48.42 % of base) : 134820.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
184 (48.42 % of base) : 134845.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
176 (48.35 % of base) : 134631.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunStructLclFldScenario():this (Tier0)
176 (48.35 % of base) : 134655.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
52 (48.15 % of base) : 304374.dasm - Runtime_91209:Problem4():System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
176 (47.31 % of base) : 98146.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
Top method improvements (percentages):
-204 (-15.41 % of base) : 194389.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
-204 (-15.41 % of base) : 194419.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-15.41 % of base) : 194469.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
-204 (-11.62 % of base) : 157621.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 157651.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
-204 (-11.62 % of base) : 157671.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 157601.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 157631.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
-116 (-8.73 % of base) : 157681.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 157611.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
-220 (-8.63 % of base) : 157661.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
-112 (-6.83 % of base) : 194409.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
-112 (-6.83 % of base) : 194439.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (Instrumented Tier0)
-112 (-6.83 % of base) : 194459.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (Instrumented Tier0)
-8 (-6.67 % of base) : 307681.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
-12 (-6.12 % of base) : 308121.dasm - Performance_2700:TestEntryPoint():int (Tier0)
-200 (-5.26 % of base) : 194379.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
-200 (-5.26 % of base) : 194429.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
-16 (-5.06 % of base) : 226614.dasm - (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
-96 (-4.54 % of base) : 157317.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt640:RunBasicScenario(int,ubyte):this (MinOpts)
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: 59008088 (overridden on cmd)
Total bytes of diff: 59008088 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 5 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
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: 78059240 (overridden on cmd)
Total bytes of diff: 78059240 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
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: 308519220 (overridden on cmd)
Total bytes of diff: 308522220 (overridden on cmd)
Total bytes of delta: 3000 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
624 : 386485.dasm (3.07 % of base)
128 : 431548.dasm (1.75 % of base)
112 : 432670.dasm (1.70 % of base)
88 : 431103.dasm (1.49 % of base)
64 : 433182.dasm (1.27 % of base)
64 : 433188.dasm (1.27 % of base)
64 : 433191.dasm (1.27 % of base)
64 : 432293.dasm (1.27 % of base)
64 : 432595.dasm (1.27 % of base)
52 : 431540.dasm (0.91 % of base)
48 : 111415.dasm (0.64 % of base)
48 : 237393.dasm (1.07 % of base)
48 : 3495.dasm (0.74 % of base)
40 : 431141.dasm (1.07 % of base)
40 : 406897.dasm (1.98 % of base)
32 : 432687.dasm (0.88 % of base)
28 : 77035.dasm (3.07 % of base)
24 : 391462.dasm (5.04 % of base)
24 : 314788.dasm (0.43 % of base)
24 : 391972.dasm (3.11 % of base)
Top file improvements (bytes):
-72 : 408349.dasm (-3.83 % of base)
-52 : 354004.dasm (-2.21 % of base)
-48 : 111257.dasm (-1.14 % of base)
-44 : 163601.dasm (-1.56 % of base)
-44 : 110994.dasm (-1.50 % of base)
-44 : 111589.dasm (-1.56 % of base)
-44 : 163292.dasm (-1.56 % of base)
-44 : 163843.dasm (-1.56 % of base)
-44 : 266035.dasm (-1.56 % of base)
-44 : 304217.dasm (-1.56 % of base)
-44 : 304242.dasm (-1.56 % of base)
-44 : 48920.dasm (-1.56 % of base)
-44 : 49025.dasm (-1.66 % of base)
-44 : 111259.dasm (-1.53 % of base)
-44 : 123731.dasm (-1.75 % of base)
-44 : 162591.dasm (-1.56 % of base)
-44 : 163596.dasm (-1.56 % of base)
-44 : 171436.dasm (-1.56 % of base)
-44 : 171622.dasm (-1.44 % of base)
-44 : 209968.dasm (-1.11 % of base)
78 total files with Code Size differences (38 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
624 (3.07 % of base) : 386485.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
128 (1.75 % of base) : 431548.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
112 (1.70 % of base) : 432670.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
88 (1.49 % of base) : 431103.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
64 (1.27 % of base) : 433188.dasm - System.Numerics.Tests.maxTest:RunMaxTests() (Instrumented Tier0)
64 (1.27 % of base) : 433191.dasm - System.Numerics.Tests.minTest:RunMinTests() (Instrumented Tier0)
64 (1.27 % of base) : 432293.dasm - System.Numerics.Tests.op_andTest:RunAndTests() (Instrumented Tier0)
64 (1.27 % of base) : 433182.dasm - System.Numerics.Tests.op_orTest:RunOrTests() (Instrumented Tier0)
64 (1.27 % of base) : 432595.dasm - System.Numerics.Tests.op_xorTest:RunXorTests() (Instrumented Tier0)
52 (0.91 % of base) : 431540.dasm - System.Numerics.Tests.op_multiplyTest:RunMultiplyTests() (Instrumented Tier0)
48 (1.07 % of base) : 237393.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.classes.simplename005.simplename005.NS1.Test:RunTest():ubyte:this (Tier0)
48 (0.64 % of base) : 111415.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Instrumented Tier0)
48 (0.74 % of base) : 3495.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier0)
40 (1.07 % of base) : 431141.dasm - System.Numerics.Tests.BigIntegerConstructorTest:RunCtorSingleTests() (Instrumented Tier0)
40 (1.98 % of base) : 406897.dasm - WebData.BaseLib.StringGen:GetIllegalXmlStringWithSeed(int,ubyte,int):System.String (Instrumented Tier0)
32 (0.88 % of base) : 432687.dasm - System.Numerics.Tests.gcdTest:RunGCDTests() (Instrumented Tier0)
28 (3.07 % of base) : 77035.dasm - Microsoft.CodeAnalysis.XmlDocumentationCommentTextReader+Reader:Read(ushort[],int,int):int:this (Tier0)
24 (0.43 % of base) : 314788.dasm - System.Net.Quic.MsQuicApi:.cctor() (Tier0)
24 (3.11 % of base) : 391972.dasm - System.Xml.Xsl.XmlQueryType:GetHashCode():int:this (Instrumented Tier0)
24 (5.04 % of base) : 391462.dasm - System.Xml.Xsl.XmlQueryType:GetHashCode():int:this (Tier0)
Top method improvements (bytes):
-72 (-3.83 % of base) : 408349.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
-52 (-2.21 % of base) : 354004.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
-48 (-1.14 % of base) : 111257.dasm - Xunit.Assert:Equal[System.Nullable`1[int]](System.Nullable`1[int],System.Nullable`1[int],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]) (Instrumented Tier0)
-44 (-1.11 % of base) : 209968.dasm - System.Xml.Schema.Compiler:CompileComplexType(System.Xml.Schema.XmlSchemaComplexType):this (Instrumented Tier0)
-44 (-1.56 % of base) : 304217.dasm - Xunit.Sdk.AssertEqualityComparer`1[byte]:Equals(byte,Xunit.Sdk.CollectionTracker,byte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 163292.dasm - Xunit.Sdk.AssertEqualityComparer`1[double]:Equals(double,Xunit.Sdk.CollectionTracker,double,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 163596.dasm - Xunit.Sdk.AssertEqualityComparer`1[float]:Equals(float,Xunit.Sdk.CollectionTracker,float,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 48920.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 162591.dasm - Xunit.Sdk.AssertEqualityComparer`1[long]:Equals(long,Xunit.Sdk.CollectionTracker,long,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 163601.dasm - Xunit.Sdk.AssertEqualityComparer`1[short]:Equals(short,Xunit.Sdk.CollectionTracker,short,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.50 % of base) : 110994.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.__Canon]:Equals(System.__Canon,Xunit.Sdk.CollectionTracker,System.__Canon,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.44 % of base) : 171622.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.75 % of base) : 123731.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Tier0)
-44 (-1.53 % of base) : 111259.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Nullable`1[int],Xunit.Sdk.CollectionTracker,System.Nullable`1[int],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 111589.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.66 % of base) : 49025.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 266035.dasm - Xunit.Sdk.AssertEqualityComparer`1[uint]:Equals(uint,Xunit.Sdk.CollectionTracker,uint,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 171436.dasm - Xunit.Sdk.AssertEqualityComparer`1[ulong]:Equals(ulong,Xunit.Sdk.CollectionTracker,ulong,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 163843.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
-44 (-1.56 % of base) : 304242.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
Top method regressions (percentages):
4 (14.29 % of base) : 362704.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
4 (14.29 % of base) : 361959.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
12 (12.50 % of base) : 426861.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
12 (12.50 % of base) : 427049.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Log2DoubleTest(double,double,double):this (Tier0)
12 (12.50 % of base) : 426748.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
12 (11.54 % of base) : 426008.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]) (Tier0)
12 (11.54 % of base) : 426090.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]) (Tier0)
4 (9.09 % of base) : 355565.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
4 (9.09 % of base) : 354496.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
4 (9.09 % of base) : 363937.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Instrumented Tier0)
4 (9.09 % of base) : 363612.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (9.09 % of base) : 358251.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
4 (9.09 % of base) : 365461.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
4 (9.09 % of base) : 356709.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
4 (9.09 % of base) : 365302.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
4 (8.33 % of base) : 294767.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
4 (8.33 % of base) : 357796.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Instrumented Tier0)
4 (8.33 % of base) : 364123.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ulong]:Invoke(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (8.33 % of base) : 363920.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ulong]:Invoke(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
4 (8.33 % of base) : 355595.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ulong]:Invoke(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
Top method improvements (percentages):
-20 (-5.49 % of base) : 159856.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
-16 (-4.12 % of base) : 177355.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
-16 (-4.12 % of base) : 179781.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
-72 (-3.83 % of base) : 408349.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
-16 (-3.77 % of base) : 163473.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Instrumented Tier0)
-12 (-3.66 % of base) : 71179.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
-8 (-3.64 % of base) : 67201.dasm - SharedTypes.IntWrapperWithNotification:RaiseInvokeSucceeded():this (Tier0)
-20 (-3.55 % of base) : 620641.dasm - System.Transactions.DtcProxyShim.OletxHelper:Retry(System.Action) (Instrumented Tier0)
-4 (-3.33 % of base) : 618795.dasm - System.Threading.ThreadPools.Tests.ThreadPoolTests+<>c:<ThreadPoolThreadCreationDoesNotTransferExecutionContext>b__37_1(System.Threading.AsyncLocalValueChangedArgs`1[int]):this (Tier0)
-12 (-2.83 % of base) : 14575.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
-8 (-2.78 % of base) : 330593.dasm - System.Net.WebSockets.WebSocketBuffer:IsPinnedSendPayloadBuffer(ubyte[],int,int):ubyte:this (Tier0)
-4 (-2.63 % of base) : 106315.dasm - Lamar.ServiceRegistry+<>c__22`1[System.__Canon]:<FindAndRemovePolicies>b__22_0(Microsoft.Extensions.DependencyInjection.ServiceDescriptor):ubyte:this (Tier0)
-8 (-2.38 % of base) : 27592.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution+UnopEasyOut:OpKind(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):int (Tier0)
-20 (-2.25 % of base) : 191572.dasm - System.ComponentModel.ReflectPropertyDescriptor:SetValue(System.Object,System.Object):this (Tier0)
-4 (-2.22 % of base) : 212821.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlByte (Tier0)
-52 (-2.21 % of base) : 354004.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
-4 (-2.13 % of base) : 212826.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlInt16 (Tier0)
-24 (-2.09 % of base) : 620716.dasm - System.Transactions.Oletx.OletxResourceManager:get_ResourceManagerShim():System.Transactions.DtcProxyShim.ResourceManagerShim:this (Tier0)
-12 (-2.05 % of base) : 36921.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
-20 (-2.04 % of base) : 191649.dasm - System.ComponentModel.ReflectPropertyDescriptor:ResetValue(System.Object):this (Tier0)
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: 169413408 (overridden on cmd)
Total bytes of diff: 169413520 (overridden on cmd)
Total bytes of delta: 112 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
4 : 281963.dasm (2.38 % of base)
4 : 282843.dasm (2.50 % of base)
4 : 290181.dasm (2.50 % of base)
4 : 290763.dasm (2.38 % of base)
4 : 291619.dasm (2.50 % of base)
4 : 291660.dasm (2.50 % of base)
4 : 291683.dasm (2.38 % of base)
4 : 291819.dasm (2.50 % of base)
4 : 297761.dasm (2.50 % of base)
4 : 300764.dasm (2.38 % of base)
4 : 301930.dasm (2.50 % of base)
4 : 302588.dasm (2.38 % of base)
4 : 303949.dasm (2.50 % of base)
4 : 281435.dasm (2.38 % of base)
4 : 282844.dasm (2.27 % of base)
4 : 282855.dasm (2.86 % of base)
4 : 291567.dasm (2.50 % of base)
4 : 291591.dasm (2.38 % of base)
4 : 291670.dasm (2.50 % of base)
4 : 291682.dasm (2.50 % of base)
Top file improvements (bytes):
-8 : 11929.dasm (-1.57 % of base)
28 total files with Code Size differences (1 improved, 27 regressed), 39 unchanged.
Top method regressions (bytes):
4 (2.50 % of base) : 291567.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|0_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291619.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 301930.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 303949.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 302588.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 304187.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 291660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291682.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 298907.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 291683.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 291591.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.86 % of base) : 292211.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
4 (2.50 % of base) : 291819.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 291827.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 297761.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291670.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 281435.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int,int) (MinOpts)
4 (2.50 % of base) : 299355.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 290181.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 290763.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|68_0(byref,byref,int,int,int) (MinOpts)
Top method improvements (bytes):
-8 (-1.57 % of base) : 11929.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
Top method regressions (percentages):
4 (2.86 % of base) : 292211.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
4 (2.86 % of base) : 282855.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
4 (2.50 % of base) : 291567.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|0_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291619.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 301930.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 303949.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291682.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 298907.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291819.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 297761.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 291670.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 299355.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 290181.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 300630.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
4 (2.50 % of base) : 282843.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|84_0(byref,byref,int,int) (MinOpts)
4 (2.38 % of base) : 302588.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 304187.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 291683.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
4 (2.38 % of base) : 291591.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
Top method improvements (percentages):
-8 (-1.57 % of base) : 11929.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
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: 15463108 (overridden on cmd)
Total bytes of diff: 15463108 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
windows x64
Diffs are based on 2,366,385 contexts (928,740 MinOpts, 1,437,645 FullOpts).
MISSED contexts: 6,816 (0.29%)
Overall (-62,154 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.x64.checked.mch |
8,536,477 |
+2 |
benchmarks.run_pgo.windows.x64.checked.mch |
35,464,350 |
-13,500 |
benchmarks.run_tiered.windows.x64.checked.mch |
12,551,598 |
-12,300 |
coreclr_tests.run.windows.x64.checked.mch |
392,239,828 |
+139,386 |
libraries.crossgen2.windows.x64.checked.mch |
39,446,742 |
-2 |
libraries.pmi.windows.x64.checked.mch |
60,117,403 |
+2 |
libraries_tests.run.windows.x64.Release.mch |
276,943,385 |
-163,110 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
135,762,558 |
-12,638 |
realworld.run.windows.x64.checked.mch |
13,729,153 |
+6 |
smoke_tests.nativeaot.windows.x64.checked.mch |
5,087,013 |
+0 |
MinOpts (-62,154 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.x64.checked.mch |
361 |
+2 |
benchmarks.run_pgo.windows.x64.checked.mch |
13,997,605 |
-13,500 |
benchmarks.run_tiered.windows.x64.checked.mch |
9,105,849 |
-12,300 |
coreclr_tests.run.windows.x64.checked.mch |
272,531,567 |
+139,386 |
libraries.crossgen2.windows.x64.checked.mch |
1,189 |
-2 |
libraries.pmi.windows.x64.checked.mch |
113,519 |
+2 |
libraries_tests.run.windows.x64.Release.mch |
173,720,676 |
-163,110 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
10,806,556 |
-12,638 |
realworld.run.windows.x64.checked.mch |
386,603 |
+6 |
smoke_tests.nativeaot.windows.x64.checked.mch |
947 |
+0 |
Example diffs
benchmarks.run.windows.x64.checked.mch
+0 (0.00%) : 14957.dasm - Devirtualization.EqualityComparerFixture1[System.ValueTuple
3[ubyte,int,int]]:CompareNoOpt(byref,byref):ubyte:this (MinOpts)
@@ -30,19 +30,21 @@ G_M54368_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs +[rax]
mov gword ptr [rbp-0x28], rax
- mov rcx, bword ptr [rbp+0x18]
- ; byrRegs +[rcx]
- vmovups xmm0, xmmword ptr [rcx]
+ mov rax, bword ptr [rbp+0x18]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ vmovups xmm0, xmmword ptr [rax]
vmovups xmmword ptr [rbp-0x10], xmm0
- mov rcx, bword ptr [rbp+0x20]
- vmovups xmm0, xmmword ptr [rcx]
+ mov rax, bword ptr [rbp+0x20]
+ vmovups xmm0, xmmword ptr [rax]
vmovups xmmword ptr [rbp-0x20], xmm0
mov rcx, gword ptr [rbp-0x28]
; gcrRegs +[rcx]
- ; byrRegs -[rcx]
lea rdx, [rbp-0x10]
lea r8, [rbp-0x20]
mov rax, gword ptr [rbp-0x28]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
mov rax, qword ptr [rax]
; gcrRegs -[rax]
mov rax, qword ptr [rax+0x48]
+0 (0.00%) : 5678.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -21,8 +21,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp+0x10], rcx
;; size=20 bbWeight=1 PerfScore 4.00
G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x10], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov r8, gword ptr [rbp-0x10]
+2 (+1.28%) : 15566.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -48,10 +48,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
call [<unknown method>]
; byrRegs -[rcx]
mov dword ptr [rbp-0x04], eax
- xor ecx, ecx
- mov dword ptr [rbp-0x08], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.50
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -60,26 +60,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax]
- mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18]
; byrRegs +[rcx]
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x14]
sub ecx, eax
- or ecx, dword ptr [rbp-0x08]
- mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x08]
+ mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C]
inc eax
mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C]
- cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C]
+ cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x08], 0
@@ -91,7 +93,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-33 (-17.28%) : 24937.dasm - System.Numerics.Tests.Perf_VectorOf1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector
1[byte]:this (Tier0)
@@ -8,56 +8,52 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]>
; V01 RetBuf [V01 ] ( 1, 1 ) byref -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_02 simd32 -> [rbp-0x40]
-; TEMP_01 simd32 -> [rbp-0x60]
+; TEMP_02 simd32 -> [rbp-0x20]
+; TEMP_01 simd32 -> [rbp-0x40]
;
-; Lcl frame size = 128
+; Lcl frame size = 96
G_M14138_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 128
+ sub rsp, 96
vzeroupper
- vmovaps xmmword ptr [rsp+0x70], xmm6
- vmovaps xmmword ptr [rsp+0x60], xmm7
- lea rbp, [rsp+0x80]
+ lea rbp, [rsp+0x60]
mov gword ptr [rbp+0x10], rcx
mov bword ptr [rbp+0x18], rdx
- ;; size=39 bbWeight=1 PerfScore 8.75
+ ;; size=21 bbWeight=1 PerfScore 4.75
G_M14138_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x40], ymm6
- mov rcx, 0xD1FFAB1E
- xor edx, edx
- call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x60], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x20], ymm0
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x40]
- vmovups ymm7, ymmword ptr [rbp-0x60]
- vpternlogd ymm6, ymm7, ymmword ptr [rax], -54
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x40], ymm0
+ mov rcx, 0xD1FFAB1E
+ xor edx, edx
+ call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rbp-0x20]
+ vmovups ymm1, ymmword ptr [rbp-0x40]
+ vpternlogd ymm0, ymm1, ymmword ptr [rax], -54
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
- vmovups ymmword ptr [rax], ymm6
+ vmovups ymmword ptr [rax], ymm0
mov rax, bword ptr [rbp+0x18]
;; size=128 bbWeight=1 PerfScore 32.25
G_M14138_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x70]
- vmovaps xmm7, xmmword ptr [rsp+0x60]
vzeroupper
- add rsp, 128
+ add rsp, 96
pop rbp
ret
- ;; size=24 bbWeight=1 PerfScore 10.75
+ ;; size=9 bbWeight=1 PerfScore 2.75
-; Total bytes of code 191, prolog size 31, PerfScore 51.75, instruction count 36, allocated bytes for code 191 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
+; Total bytes of code 158, prolog size 13, PerfScore 39.75, instruction count 32, allocated bytes for code 158 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
; ============================================================
Unwind Info:
@@ -65,14 +61,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x17
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x17 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7)
- Scaled Small Offset: 6 * 16 = 96 = 0x00060
- CodeOffset: 0x11 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
- Scaled Small Offset: 7 * 16 = 112 = 0x00070
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 15 * 8 + 8 = 128 = 0x80
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 11 * 8 + 8 = 96 = 0x60
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-24 (-15.38%) : 60693.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
@@ -30,44 +30,44 @@ G_M64047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x28], r9d
;; size=24 bbWeight=1 PerfScore 5.75
G_M64047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d
- mov dword ptr [rbp-0x08], r8d
- mov r8d, dword ptr [rbp+0x28]
- movzx r8, r8b
- mov dword ptr [rsp+0x20], r8d
- mov r8d, dword ptr [rbp+0x30]
- movzx r8, r8b
- mov dword ptr [rsp+0x28], r8d
- mov r8d, dword ptr [rbp+0x38]
- movzx r8, r8b
- mov dword ptr [rsp+0x30], r8d
- mov r8d, dword ptr [rbp+0x40]
- movzx r8, r8b
- mov dword ptr [rsp+0x38], r8d
- mov r8d, dword ptr [rbp+0x48]
- movzx r8, r8b
- mov dword ptr [rsp+0x40], r8d
- mov r8d, dword ptr [rbp+0x50]
- movzx r8, r8b
- mov dword ptr [rsp+0x48], r8d
- mov r8d, dword ptr [rbp+0x58]
- movzx r8, r8b
- mov dword ptr [rsp+0x50], r8d
- mov r8d, dword ptr [rbp+0x18]
- movzx r8, r8b
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ mov eax, dword ptr [rbp+0x28]
+ movzx rax, al
+ mov dword ptr [rsp+0x20], eax
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rsp+0x30], eax
+ mov eax, dword ptr [rbp+0x40]
+ movzx rax, al
+ mov dword ptr [rsp+0x38], eax
+ mov eax, dword ptr [rbp+0x48]
+ movzx rax, al
+ mov dword ptr [rsp+0x40], eax
+ mov eax, dword ptr [rbp+0x50]
+ movzx rax, al
+ mov dword ptr [rsp+0x48], eax
+ mov eax, dword ptr [rbp+0x58]
+ movzx rax, al
+ mov dword ptr [rsp+0x50], eax
+ mov eax, dword ptr [rbp+0x18]
+ movzx r8, al
lea rcx, [rbp-0x08]
mov edx, dword ptr [rbp+0x10]
mov r9d, dword ptr [rbp+0x20]
call [<unknown method>]
mov eax, dword ptr [rbp-0x08]
- ;; size=126 bbWeight=1 PerfScore 24.75
+ ;; size=102 bbWeight=1 PerfScore 24.75
G_M64047_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 96
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 156 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 132, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 132 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================
Unwind Info:
-18 (-11.11%) : 81297.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
@@ -17,23 +17,22 @@ G_M36416_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
sub rsp, 144
vzeroupper
- vmovaps xmmword ptr [rsp+0x80], xmm6
lea rbp, [rsp+0x90]
mov gword ptr [rbp+0x10], rcx
- ;; size=32 bbWeight=1 PerfScore 5.75
+ ;; size=23 bbWeight=1 PerfScore 3.75
G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x70], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x70], ymm0
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x70]
- vmulpd ymm0, ymm6, ymmword ptr [rax]
+ vmovups ymm0, ymmword ptr [rbp-0x70]
+ vmulpd ymm0, ymm0, ymmword ptr [rax]
vmovups ymmword ptr [rbp-0x30], ymm0
vmovups ymm0, ymmword ptr [rbp-0x30]
vhaddpd ymm0, ymm0, ymmword ptr [rbp-0x30]
@@ -43,14 +42,13 @@ G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
vaddpd ymm0, ymm0, ymmword ptr [rbp-0x50]
;; size=109 bbWeight=1 PerfScore 45.50
G_M36416_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper
add rsp, 144
pop rbp
ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
-; Total bytes of code 162, prolog size 28, PerfScore 58.00, instruction count 30, allocated bytes for code 162 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
+; Total bytes of code 144, prolog size 19, PerfScore 52.00, instruction count 28, allocated bytes for code 144 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
; ============================================================
Unwind Info:
@@ -58,13 +56,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x14
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
- Scaled Small Offset: 8 * 16 = 128 = 0x00080
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small
Size: 18 * 8 = 144 = 0x00090
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+15 (+20.00%) : 54635.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
@@ -8,54 +8,58 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Collections.Queue>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x08]
;
-; Lcl frame size = 32
+; Lcl frame size = 48
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
+ sub rsp, 48
+ lea rbp, [rsp+0x30]
+ xor eax, eax
+ mov qword ptr [rbp-0x08], rax
mov gword ptr [rbp+0x10], rcx
mov dword ptr [rbp+0x18], edx
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp+0x10]
; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x08], rax
+ mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp+0x10]
- mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10]
+ ; gcrRegs -[rcx]
+ mov eax, ecx
; gcrRegs -[rax]
add eax, dword ptr [rbp+0x18]
- mov rdx, gword ptr [rbp+0x10]
- ; gcrRegs +[rdx]
- mov r8, gword ptr [rdx+0x08]
- ; gcrRegs +[r8]
+ mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
+ mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx]
- idiv edx:eax, dword ptr [r8+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08]
+ mov rcx, gword ptr [rbp-0x08]
cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M41139_IG04
mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10]
+ ; byrRegs +[rax]
+ mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=46 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax]
+ ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r8]
- ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 75, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 75 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================
Unwind Info:
@@ -68,5 +72,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 60127.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -8,40 +8,45 @@
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this
; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx
mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10]
- ; byrRegs +[rcx]
- mov rbx, gword ptr [rcx]
- ; gcrRegs +[rbx]
- mov rcx, qword ptr [rbp+0x18]
- ; byrRegs -[rcx]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x10], rax
+ mov rcx, qword ptr [rbp+0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
+ add rsp, 48
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 64215.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Instrumented Tier0)
@@ -8,40 +8,45 @@
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this
; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx
mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10]
- ; byrRegs +[rcx]
- mov rbx, gword ptr [rcx]
- ; gcrRegs +[rbx]
- mov rcx, qword ptr [rbp+0x18]
- ; byrRegs -[rcx]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x10], rax
+ mov rcx, qword ptr [rbp+0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
+ add rsp, 48
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
benchmarks.run_tiered.windows.x64.checked.mch
-33 (-17.28%) : 18417.dasm - System.Numerics.Tests.Perf_VectorOf1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector
1[byte]:this (Tier0)
@@ -8,56 +8,52 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]>
; V01 RetBuf [V01 ] ( 1, 1 ) byref -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_02 simd32 -> [rbp-0x40]
-; TEMP_01 simd32 -> [rbp-0x60]
+; TEMP_02 simd32 -> [rbp-0x20]
+; TEMP_01 simd32 -> [rbp-0x40]
;
-; Lcl frame size = 128
+; Lcl frame size = 96
G_M14138_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 128
+ sub rsp, 96
vzeroupper
- vmovaps xmmword ptr [rsp+0x70], xmm6
- vmovaps xmmword ptr [rsp+0x60], xmm7
- lea rbp, [rsp+0x80]
+ lea rbp, [rsp+0x60]
mov gword ptr [rbp+0x10], rcx
mov bword ptr [rbp+0x18], rdx
- ;; size=39 bbWeight=1 PerfScore 8.75
+ ;; size=21 bbWeight=1 PerfScore 4.75
G_M14138_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x40], ymm6
- mov rcx, 0xD1FFAB1E
- xor edx, edx
- call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x60], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x20], ymm0
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x40]
- vmovups ymm7, ymmword ptr [rbp-0x60]
- vpternlogd ymm6, ymm7, ymmword ptr [rax], -54
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x40], ymm0
+ mov rcx, 0xD1FFAB1E
+ xor edx, edx
+ call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rbp-0x20]
+ vmovups ymm1, ymmword ptr [rbp-0x40]
+ vpternlogd ymm0, ymm1, ymmword ptr [rax], -54
mov rax, bword ptr [rbp+0x18]
; byrRegs +[rax]
- vmovups ymmword ptr [rax], ymm6
+ vmovups ymmword ptr [rax], ymm0
mov rax, bword ptr [rbp+0x18]
;; size=128 bbWeight=1 PerfScore 32.25
G_M14138_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x70]
- vmovaps xmm7, xmmword ptr [rsp+0x60]
vzeroupper
- add rsp, 128
+ add rsp, 96
pop rbp
ret
- ;; size=24 bbWeight=1 PerfScore 10.75
+ ;; size=9 bbWeight=1 PerfScore 2.75
-; Total bytes of code 191, prolog size 31, PerfScore 51.75, instruction count 36, allocated bytes for code 191 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
+; Total bytes of code 158, prolog size 13, PerfScore 39.75, instruction count 32, allocated bytes for code 158 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
; ============================================================
Unwind Info:
@@ -65,14 +61,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x17
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x17 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7)
- Scaled Small Offset: 6 * 16 = 96 = 0x00060
- CodeOffset: 0x11 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
- Scaled Small Offset: 7 * 16 = 112 = 0x00070
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 15 * 8 + 8 = 128 = 0x80
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 11 * 8 + 8 = 96 = 0x60
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-24 (-15.38%) : 38686.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
@@ -30,44 +30,44 @@ G_M64047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x28], r9d
;; size=24 bbWeight=1 PerfScore 5.75
G_M64047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d
- mov dword ptr [rbp-0x08], r8d
- mov r8d, dword ptr [rbp+0x28]
- movzx r8, r8b
- mov dword ptr [rsp+0x20], r8d
- mov r8d, dword ptr [rbp+0x30]
- movzx r8, r8b
- mov dword ptr [rsp+0x28], r8d
- mov r8d, dword ptr [rbp+0x38]
- movzx r8, r8b
- mov dword ptr [rsp+0x30], r8d
- mov r8d, dword ptr [rbp+0x40]
- movzx r8, r8b
- mov dword ptr [rsp+0x38], r8d
- mov r8d, dword ptr [rbp+0x48]
- movzx r8, r8b
- mov dword ptr [rsp+0x40], r8d
- mov r8d, dword ptr [rbp+0x50]
- movzx r8, r8b
- mov dword ptr [rsp+0x48], r8d
- mov r8d, dword ptr [rbp+0x58]
- movzx r8, r8b
- mov dword ptr [rsp+0x50], r8d
- mov r8d, dword ptr [rbp+0x18]
- movzx r8, r8b
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ mov eax, dword ptr [rbp+0x28]
+ movzx rax, al
+ mov dword ptr [rsp+0x20], eax
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rsp+0x30], eax
+ mov eax, dword ptr [rbp+0x40]
+ movzx rax, al
+ mov dword ptr [rsp+0x38], eax
+ mov eax, dword ptr [rbp+0x48]
+ movzx rax, al
+ mov dword ptr [rsp+0x40], eax
+ mov eax, dword ptr [rbp+0x50]
+ movzx rax, al
+ mov dword ptr [rsp+0x48], eax
+ mov eax, dword ptr [rbp+0x58]
+ movzx rax, al
+ mov dword ptr [rsp+0x50], eax
+ mov eax, dword ptr [rbp+0x18]
+ movzx r8, al
lea rcx, [rbp-0x08]
mov edx, dword ptr [rbp+0x10]
mov r9d, dword ptr [rbp+0x20]
call [<unknown method>]
mov eax, dword ptr [rbp-0x08]
- ;; size=126 bbWeight=1 PerfScore 24.75
+ ;; size=102 bbWeight=1 PerfScore 24.75
G_M64047_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 96
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 156 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 132, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 132 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================
Unwind Info:
-18 (-11.11%) : 48180.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
@@ -17,23 +17,22 @@ G_M36416_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
sub rsp, 144
vzeroupper
- vmovaps xmmword ptr [rsp+0x80], xmm6
lea rbp, [rsp+0x90]
mov gword ptr [rbp+0x10], rcx
- ;; size=32 bbWeight=1 PerfScore 5.75
+ ;; size=23 bbWeight=1 PerfScore 3.75
G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x70], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x70], ymm0
mov rcx, 0xD1FFAB1E
xor edx, edx
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x70]
- vmulpd ymm0, ymm6, ymmword ptr [rax]
+ vmovups ymm0, ymmword ptr [rbp-0x70]
+ vmulpd ymm0, ymm0, ymmword ptr [rax]
vmovups ymmword ptr [rbp-0x30], ymm0
vmovups ymm0, ymmword ptr [rbp-0x30]
vhaddpd ymm0, ymm0, ymmword ptr [rbp-0x30]
@@ -43,14 +42,13 @@ G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
vaddpd ymm0, ymm0, ymmword ptr [rbp-0x50]
;; size=109 bbWeight=1 PerfScore 45.50
G_M36416_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper
add rsp, 144
pop rbp
ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
-; Total bytes of code 162, prolog size 28, PerfScore 58.00, instruction count 30, allocated bytes for code 162 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
+; Total bytes of code 144, prolog size 19, PerfScore 52.00, instruction count 28, allocated bytes for code 144 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
; ============================================================
Unwind Info:
@@ -58,13 +56,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x14
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
- Scaled Small Offset: 8 * 16 = 128 = 0x00080
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small
Size: 18 * 8 = 144 = 0x00090
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+9 (+16.36%) : 806.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
@@ -7,6 +7,7 @@
;
; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp+0x10] do-not-enreg[]
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 byref -> [rbp-0x10]
;
; Lcl frame size = 48
@@ -14,29 +15,32 @@ G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbp
sub rsp, 48
lea rbp, [rsp+0x30]
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
mov qword ptr [rbp-0x08], rcx
mov qword ptr [rbp+0x10], rcx
- ;; size=18 bbWeight=1 PerfScore 3.75
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp+0x10]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[rax]
- mov rcx, rax
- ; byrRegs +[rcx]
+ mov bword ptr [rbp-0x10], rax
mov eax, 512
; byrRegs -[rax]
- mov r8d, 8
+ mov ecx, 8
xor edx, edx
- div edx:eax, r8d
+ div edx:eax, ecx
+ mov rcx, bword ptr [rbp-0x10]
+ ; byrRegs +[rcx]
mov dword ptr [rcx+0x08], eax
- ;; size=31 bbWeight=1 PerfScore 29.00
+ ;; size=34 bbWeight=1 PerfScore 30.75
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 55, prolog size 14, PerfScore 34.50, instruction count 16, allocated bytes for code 55 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================
Unwind Info:
+15 (+20.00%) : 35053.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
@@ -8,54 +8,58 @@
; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Collections.Queue>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x08]
;
-; Lcl frame size = 32
+; Lcl frame size = 48
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- sub rsp, 32
- lea rbp, [rsp+0x20]
+ sub rsp, 48
+ lea rbp, [rsp+0x30]
+ xor eax, eax
+ mov qword ptr [rbp-0x08], rax
mov gword ptr [rbp+0x10], rcx
mov dword ptr [rbp+0x18], edx
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp+0x10]
; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x08], rax
+ mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp+0x10]
- mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10]
+ ; gcrRegs -[rcx]
+ mov eax, ecx
; gcrRegs -[rax]
add eax, dword ptr [rbp+0x18]
- mov rdx, gword ptr [rbp+0x10]
- ; gcrRegs +[rdx]
- mov r8, gword ptr [rdx+0x08]
- ; gcrRegs +[r8]
+ mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
+ mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx]
- idiv edx:eax, dword ptr [r8+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08]
+ mov rcx, gword ptr [rbp-0x08]
cmp edx, dword ptr [rcx+0x08]
jae SHORT G_M41139_IG04
mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10]
+ ; byrRegs +[rax]
+ mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=46 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax]
+ ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 48
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r8]
- ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 75, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 75 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================
Unwind Info:
@@ -68,5 +72,5 @@ Unwind Info:
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: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 38122.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -8,40 +8,45 @@
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this
; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx
mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10]
- ; byrRegs +[rcx]
- mov rbx, gword ptr [rcx]
- ; gcrRegs +[rbx]
- mov rcx, qword ptr [rbp+0x18]
- ; byrRegs -[rcx]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x10], rax
+ mov rcx, qword ptr [rbp+0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
+ add rsp, 48
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
coreclr_tests.run.windows.x64.checked.mch
-24 (-15.38%) : 443459.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
@@ -30,44 +30,44 @@ G_M64047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x28], r9d
;; size=24 bbWeight=1 PerfScore 5.75
G_M64047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d
- mov dword ptr [rbp-0x08], r8d
- mov r8d, dword ptr [rbp+0x28]
- movzx r8, r8b
- mov dword ptr [rsp+0x20], r8d
- mov r8d, dword ptr [rbp+0x30]
- movzx r8, r8b
- mov dword ptr [rsp+0x28], r8d
- mov r8d, dword ptr [rbp+0x38]
- movzx r8, r8b
- mov dword ptr [rsp+0x30], r8d
- mov r8d, dword ptr [rbp+0x40]
- movzx r8, r8b
- mov dword ptr [rsp+0x38], r8d
- mov r8d, dword ptr [rbp+0x48]
- movzx r8, r8b
- mov dword ptr [rsp+0x40], r8d
- mov r8d, dword ptr [rbp+0x50]
- movzx r8, r8b
- mov dword ptr [rsp+0x48], r8d
- mov r8d, dword ptr [rbp+0x58]
- movzx r8, r8b
- mov dword ptr [rsp+0x50], r8d
- mov r8d, dword ptr [rbp+0x18]
- movzx r8, r8b
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ mov eax, dword ptr [rbp+0x28]
+ movzx rax, al
+ mov dword ptr [rsp+0x20], eax
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rsp+0x30], eax
+ mov eax, dword ptr [rbp+0x40]
+ movzx rax, al
+ mov dword ptr [rsp+0x38], eax
+ mov eax, dword ptr [rbp+0x48]
+ movzx rax, al
+ mov dword ptr [rsp+0x40], eax
+ mov eax, dword ptr [rbp+0x50]
+ movzx rax, al
+ mov dword ptr [rsp+0x48], eax
+ mov eax, dword ptr [rbp+0x58]
+ movzx rax, al
+ mov dword ptr [rsp+0x50], eax
+ mov eax, dword ptr [rbp+0x18]
+ movzx r8, al
lea rcx, [rbp-0x08]
mov edx, dword ptr [rbp+0x10]
mov r9d, dword ptr [rbp+0x20]
call [<unknown method>]
mov eax, dword ptr [rbp-0x08]
- ;; size=126 bbWeight=1 PerfScore 24.75
+ ;; size=102 bbWeight=1 PerfScore 24.75
G_M64047_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 96
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 156 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 132, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 132 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================
Unwind Info:
-27 (-12.68%) : 491292.dasm - Performance_2700:TestEntryPoint():int (Tier0)
@@ -16,24 +16,23 @@ G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
push rbp
sub rsp, 144
vzeroupper
- vmovaps xmmword ptr [rsp+0x80], xmm6
lea rbp, [rsp+0x90]
vxorps xmm4, xmm4, xmm4
vmovdqu ymmword ptr [rbp-0x30], ymm4
- ;; size=37 bbWeight=1 PerfScore 7.08
+ ;; size=28 bbWeight=1 PerfScore 5.08
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E
mov edx, 1
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rcx]
- vmovups ymmword ptr [rbp-0x70], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ vmovups ymm0, ymmword ptr [rax]
+ vmovups ymmword ptr [rbp-0x70], ymm0
mov rcx, 0xD1FFAB1E
mov edx, 1
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x70]
- vmulps ymm0, ymm6, ymmword ptr [rax]
+ vmovups ymm0, ymmword ptr [rbp-0x70]
+ vmulps ymm0, ymm0, ymmword ptr [rax]
vmovups ymmword ptr [rbp-0x30], ymm0
vxorps ymm0, ymm0, ymm0
vmovups ymmword ptr [rbp-0x50], ymm0
@@ -46,26 +45,24 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
;; size=129 bbWeight=1 PerfScore 36.08
G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper
add rsp, 144
pop rbp
ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, 100
;; size=5 bbWeight=1 PerfScore 0.25
G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper
add rsp, 144
pop rbp
ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
RWD00 dq 4000000040000000h, 4000000040000000h, 4000000040000000h, 4000000040000000h
-; Total bytes of code 213, prolog size 37, PerfScore 56.92, instruction count 40, allocated bytes for code 215 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 186, prolog size 28, PerfScore 46.92, instruction count 37, allocated bytes for code 188 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================
Unwind Info:
@@ -73,13 +70,11 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x14
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x08
+ CountOfUnwindCodes: 3
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
- Scaled Small Offset: 8 * 16 = 128 = 0x00080
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small
Size: 18 * 8 = 144 = 0x00090
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
-20 (-12.58%) : 338336.dasm - CompareVectorWithZero:TestEqualityUsingReversedInputsint (Tier0)
@@ -6,61 +6,61 @@
; Final local variable assignments
;
; V00 arg0 [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[]
-; V01 loc0 [V01 ] ( 1, 1 ) int -> [rbp-0x24] do-not-enreg[] must-init ld-addr-op
+; V01 loc0 [V01 ] ( 1, 1 ) int -> [rbp-0x04] do-not-enreg[] must-init ld-addr-op
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd64 -> [rbp-0x64]
+; TEMP_01 int -> [rbp-0x08]
+; TEMP_02 simd64 -> [rbp-0x48]
;
-; Lcl frame size = 136
+; Lcl frame size = 112
G_M45123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 136
+ sub rsp, 112
vzeroupper
- vmovaps xmmword ptr [rsp+0x70], xmm6
- lea rbp, [rsp+0x90]
+ lea rbp, [rsp+0x70]
xor eax, eax
- mov dword ptr [rbp-0x24], eax
+ mov dword ptr [rbp-0x04], eax
mov bword ptr [rbp+0x10], rcx
- ;; size=35 bbWeight=1 PerfScore 8.00
+ ;; size=22 bbWeight=1 PerfScore 5.00
G_M45123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov dword ptr [rbp-0x24], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x04], eax
+ mov rax, bword ptr [rbp+0x10]
+ ; byrRegs +[rax]
+ vxorps ymm0, ymm0, ymm0
+ vpcmpeqd k1, zmm0, zmmword ptr [rax]
+ kortestw k1, k1
+ setb al
+ ; byrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x08], eax
mov rcx, bword ptr [rbp+0x10]
; byrRegs +[rcx]
- vxorps ymm0, ymm0, ymm0
- vpcmpeqd k1, zmm0, zmmword ptr [rcx]
- kortestw k1, k1
- setb bl
- movzx rbx, bl
- mov rcx, bword ptr [rbp+0x10]
- vmovups zmm6, zmmword ptr [rcx]
- vmovups zmmword ptr [rbp-0x64], zmm6
- mov ecx, dword ptr [rbp-0x24]
+ vmovups zmm0, zmmword ptr [rcx]
+ vmovups zmmword ptr [rbp-0x48], zmm0
+ mov ecx, dword ptr [rbp-0x04]
; byrRegs -[rcx]
call [<unknown method>]
vpbroadcastd zmm0, eax
- vmovups zmm6, zmmword ptr [rbp-0x64]
- vpcmpeqd k1, zmm6, zmm0
+ vmovups zmm1, zmmword ptr [rbp-0x48]
+ vpcmpeqd k1, zmm1, zmm0
kortestw k1, k1
- setb cl
- movzx rcx, cl
- cmp ebx, ecx
+ setb al
+ movzx rax, al
+ xor ecx, ecx
+ cmp dword ptr [rbp-0x08], eax
sete cl
- movzx rcx, cl
call [<unknown method>]
nop
- ;; size=105 bbWeight=1 PerfScore 30.33
+ ;; size=108 bbWeight=1 PerfScore 33.08
G_M45123_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x70]
vzeroupper
- add rsp, 136
- pop rbx
+ add rsp, 112
pop rbp
ret
- ;; size=19 bbWeight=1 PerfScore 7.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
-; Total bytes of code 159, prolog size 31, PerfScore 45.58, instruction count 39, allocated bytes for code 163 (MethodHash=d3254fbc) for method CompareVectorWithZero:TestEqualityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
+; Total bytes of code 139, prolog size 18, PerfScore 40.83, instruction count 36, allocated bytes for code 143 (MethodHash=d3254fbc) for method CompareVectorWithZero:TestEqualityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
; ============================================================
Unwind Info:
@@ -68,14 +68,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x12
- CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x12 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
- Scaled Small Offset: 7 * 16 = 112 = 0x00070
- CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small
- Size: 17 * 8 = 136 = 0x00088
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 13 * 8 + 8 = 112 = 0x70
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+14 (+43.75%) : 490962.dasm - TestGitHub22556:Add(TestGitHub22556,int):int (Tier0)
@@ -8,31 +8,35 @@
; V00 arg0 [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] class-hnd <Test_GitHub_22556>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 int -> [rbp-0x04]
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M12822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- mov rbp, rsp
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
mov gword ptr [rbp+0x10], rcx
mov dword ptr [rbp+0x18], edx
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=17 bbWeight=1 PerfScore 3.75
G_M12822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, gword ptr [rbp+0x10]
; gcrRegs +[rax]
- mov ecx, dword ptr [rax+0x08]
- mov eax, 1
+ mov eax, dword ptr [rax+0x08]
; gcrRegs -[rax]
+ mov dword ptr [rbp-0x04], eax
+ mov eax, 1
xor edx, edx
idiv edx:eax, dword ptr [rbp+0x18]
- add eax, ecx
- ;; size=19 bbWeight=1 PerfScore 28.75
+ add eax, dword ptr [rbp-0x04]
+ ;; size=23 bbWeight=1 PerfScore 31.50
G_M12822_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 16
pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 32, prolog size 4, PerfScore 33.50, instruction count 12, allocated bytes for code 32 (MethodHash=dc14cde9) for method Test_GitHub_22556:Add(Test_GitHub_22556,int):int (Tier0)
+; Total bytes of code 46, prolog size 10, PerfScore 37.00, instruction count 15, allocated bytes for code 46 (MethodHash=dc14cde9) for method Test_GitHub_22556:Add(Test_GitHub_22556,int):int (Tier0)
; ============================================================
Unwind Info:
@@ -40,9 +44,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x01
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
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)
+14 (+43.75%) : 491095.dasm - TestGitHub27027:Run(TestGitHub27027,int):int (Tier0)
@@ -8,31 +8,35 @@
; V00 arg0 [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] class-hnd <Test_GitHub_27027>
; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 int -> [rbp-0x04]
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M51774_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- mov rbp, rsp
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
mov gword ptr [rbp+0x10], rcx
mov dword ptr [rbp+0x18], edx
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=17 bbWeight=1 PerfScore 3.75
G_M51774_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, gword ptr [rbp+0x10]
; gcrRegs +[rax]
- mov ecx, dword ptr [rax+0x08]
- mov eax, 1
+ mov eax, dword ptr [rax+0x08]
; gcrRegs -[rax]
+ mov dword ptr [rbp-0x04], eax
+ mov eax, 1
xor edx, edx
idiv edx:eax, dword ptr [rbp+0x18]
- add eax, ecx
- ;; size=19 bbWeight=1 PerfScore 28.75
+ add eax, dword ptr [rbp-0x04]
+ ;; size=23 bbWeight=1 PerfScore 31.50
G_M51774_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 16
pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 32, prolog size 4, PerfScore 33.50, instruction count 12, allocated bytes for code 32 (MethodHash=380735c1) for method Test_GitHub_27027:Run(Test_GitHub_27027,int):int (Tier0)
+; Total bytes of code 46, prolog size 10, PerfScore 37.00, instruction count 15, allocated bytes for code 46 (MethodHash=380735c1) for method Test_GitHub_27027:Run(Test_GitHub_27027,int):int (Tier0)
; ============================================================
Unwind Info:
@@ -40,9 +44,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x01
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
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)
+12 (+44.44%) : 425520.dasm - ModConst:I4Mod0(int):int (Tier0)
@@ -7,29 +7,33 @@
;
; V00 arg0 [V00 ] ( 1, 1 ) int -> [rbp+0x10] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 int -> [rbp-0x04]
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M32851_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- mov rbp, rsp
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
mov dword ptr [rbp+0x10], ecx
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=13 bbWeight=1 PerfScore 2.75
G_M32851_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, dword ptr [rbp+0x10]
mov eax, dword ptr [rbp+0x10]
- xor r8d, r8d
+ mov dword ptr [rbp-0x04], eax
+ mov eax, dword ptr [rbp+0x10]
+ xor ecx, ecx
cdq
- idiv edx:eax, r8d
- mov eax, ecx
+ idiv edx:eax, ecx
+ mov eax, dword ptr [rbp-0x04]
sub eax, 0
- ;; size=18 bbWeight=1 PerfScore 28.25
+ ;; size=20 bbWeight=1 PerfScore 30.00
G_M32851_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 16
pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 27, prolog size 4, PerfScore 32.00, instruction count 12, allocated bytes for code 27 (MethodHash=c49f7fac) for method ModConst:I4_Mod_0(int):int (Tier0)
+; Total bytes of code 39, prolog size 10, PerfScore 34.50, instruction count 15, allocated bytes for code 39 (MethodHash=c49f7fac) for method ModConst:I4_Mod_0(int):int (Tier0)
; ============================================================
Unwind Info:
@@ -37,9 +41,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x01
- CountOfUnwindCodes: 1
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
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)
libraries.crossgen2.windows.x64.checked.mch
-2 (-1.79%) : 15401.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
@@ -27,24 +27,24 @@ G_M50957_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rcx, [rbp+0x18]
call [<unknown method>]
- cvttsd2si rcx, xmm0
- mov qword ptr [rbp-0x08], rcx
- mov ecx, -1
- movsxd rcx, ecx
- cmp qword ptr [rbp-0x08], rcx
+ cvttsd2si rax, xmm0
+ mov qword ptr [rbp-0x08], rax
+ mov eax, -1
+ cdqe
+ cmp qword ptr [rbp-0x08], rax
jl SHORT G_M50957_IG03
- mov ecx, 0xD1FFAB1E
- movsxd rcx, ecx
- cmp qword ptr [rbp-0x08], rcx
+ mov eax, 0xD1FFAB1E
+ cdqe
+ cmp qword ptr [rbp-0x08], rax
jle SHORT G_M50957_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 62
call [<unknown method>]
;; size=11 bbWeight=1 PerfScore 3.25
G_M50957_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x10], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov edx, dword ptr [rbp-0x08]
@@ -60,7 +60,7 @@ G_M50957_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
; ============================================================
Unwind Info:
-2 (-1.79%) : 15396.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
@@ -27,24 +27,24 @@ G_M28342_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rcx, [rbp+0x18]
call [<unknown method>]
- cvttsd2si rcx, xmm0
- mov qword ptr [rbp-0x08], rcx
- mov ecx, -1
- movsxd rcx, ecx
- cmp qword ptr [rbp-0x08], rcx
+ cvttsd2si rax, xmm0
+ mov qword ptr [rbp-0x08], rax
+ mov eax, -1
+ cdqe
+ cmp qword ptr [rbp-0x08], rax
jl SHORT G_M28342_IG03
- mov ecx, 0xD1FFAB1E
- movsxd rcx, ecx
- cmp qword ptr [rbp-0x08], rcx
+ mov eax, 0xD1FFAB1E
+ cdqe
+ cmp qword ptr [rbp-0x08], rax
jle SHORT G_M28342_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, 62
call [<unknown method>]
;; size=11 bbWeight=1 PerfScore 3.25
G_M28342_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x10], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov edx, dword ptr [rbp-0x08]
@@ -60,7 +60,7 @@ G_M28342_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
; ============================================================
Unwind Info:
+0 (0.00%) : 15397.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],int):ubyte (MinOpts)
@@ -24,8 +24,8 @@ G_M4887_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x18], edx
;; size=23 bbWeight=1 PerfScore 5.00
G_M4887_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x08], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x08], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov edx, dword ptr [rbp+0x18]
+0 (0.00%) : 15403.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],int):int (MinOpts)
@@ -24,8 +24,8 @@ G_M44268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x18], edx
;; size=23 bbWeight=1 PerfScore 5.00
G_M44268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x08], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x08], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov edx, dword ptr [rbp+0x18]
+0 (0.00%) : 15400.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
@@ -24,8 +24,8 @@ G_M30483_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp+0x10], rcx
;; size=20 bbWeight=1 PerfScore 4.00
G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xor ecx, ecx
- mov gword ptr [rbp-0x10], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov r8, gword ptr [rbp-0x10]
@@ -34,23 +34,23 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rcx r8]
mov dword ptr [rbp-0x04], eax
- mov rdx, gword ptr [rbp+0x10]
- ; gcrRegs +[rdx]
- cmp dword ptr [rdx+0x08], 0
+ mov rax, gword ptr [rbp+0x10]
+ ; gcrRegs +[rax]
+ cmp dword ptr [rax+0x08], 0
je SHORT G_M30483_IG03
- xor edx, edx
- ; gcrRegs -[rdx]
+ xor eax, eax
+ ; gcrRegs -[rax]
cmp dword ptr [rbp-0x04], -1
- setne dl
- mov dword ptr [rbp-0x14], edx
+ setne al
+ mov dword ptr [rbp-0x14], eax
jmp SHORT G_M30483_IG04
;; size=52 bbWeight=1 PerfScore 18.75
G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x14], 1
;; size=7 bbWeight=1 PerfScore 1.00
G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdx, qword ptr [(reloc)] ; const ptr
- mov rdx, gword ptr [rdx]
+ mov rax, qword ptr [(reloc)] ; const ptr
+ mov rdx, gword ptr [rax]
; gcrRegs +[rdx]
mov ecx, dword ptr [rbp-0x14]
call [<unknown method>]
+2 (+1.28%) : 148392.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -50,10 +50,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
call [<unknown method>]
; byrRegs -[rcx]
mov dword ptr [rbp-0x04], eax
- xor ecx, ecx
- mov dword ptr [rbp-0x08], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.50
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -62,26 +62,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax]
- mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18]
; byrRegs +[rcx]
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x14]
sub ecx, eax
- or ecx, dword ptr [rbp-0x08]
- mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x08]
+ mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C]
inc eax
mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C]
- cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C]
+ cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x08], 0
@@ -93,7 +95,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch
+0 (0.00%) : 3856.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)
@@ -1340,33 +1340,33 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x08], rax
cmp gword ptr [rbp-0x08], 0
je SHORT G_M12913_IG05
- mov r8, gword ptr [rbp-0x08]
- ; gcrRegs +[r8]
- mov r8, gword ptr [r8+0x08]
- mov gword ptr [rbp-0x10], r8
+ mov rax, gword ptr [rbp-0x08]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x10], rax
;; size=33 bbWeight=1 PerfScore 12.00
G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax r8]
- mov r8, gword ptr [rbp+0x10]
+ ; gcrRegs -[rax]
+ mov rax, gword ptr [rbp+0x10]
+ ; gcrRegs +[rax]
+ mov r8, gword ptr [rax+0x08]
; gcrRegs +[r8]
- mov r8, gword ptr [r8+0x08]
mov rdx, gword ptr [rbp-0x10]
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown method>
call [<unknown method>]
- ; gcrRegs -[rdx r8] +[rax]
+ ; gcrRegs -[rdx r8]
; gcr arg pop 0
mov gword ptr [rbp-0x18], rax
;; size=32 bbWeight=1 PerfScore 8.25
G_M12913_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- mov rcx, gword ptr [rbp-0x18]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x13C0], rcx
+ mov rax, gword ptr [rbp-0x18]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x13C0], rax
jmp G_M12913_IG767
;; size=16 bbWeight=1 PerfScore 4.00
G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
call [<unknown method>]
@@ -1375,16 +1375,16 @@ G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x40], rax
cmp gword ptr [rbp-0x40], 0
je SHORT G_M12913_IG06
- mov rcx, gword ptr [rbp-0x40]
+ mov rax, gword ptr [rbp-0x40]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x48], rax
- mov rcx, gword ptr [rbp-0x40]
+ mov rax, gword ptr [rbp-0x40]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
@@ -1425,16 +1425,16 @@ G_M12913_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x58], rax
cmp gword ptr [rbp-0x58], 0
je SHORT G_M12913_IG07
- mov rcx, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x58]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x48], rax
- mov rcx, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x58]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
@@ -1475,16 +1475,16 @@ G_M12913_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x60], rax
cmp gword ptr [rbp-0x60], 0
je SHORT G_M12913_IG08
- mov rcx, gword ptr [rbp-0x60]
+ mov rax, gword ptr [rbp-0x60]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x68], rax
- mov rcx, gword ptr [rbp-0x60]
+ mov rax, gword ptr [rbp-0x60]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
@@ -1519,9 +1519,9 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x78], rax
cmp gword ptr [rbp-0x78], 0
je G_M12913_IG14
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
@@ -1538,47 +1538,45 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp-0x80], rax
cmp gword ptr [rbp-0x80], 0
je SHORT G_M12913_IG09
- mov rcx, gword ptr [rbp-0x80]
- ; gcrRegs +[rcx]
- cmp dword ptr [rcx+0x08], 1
- sete cl
- ; gcrRegs -[rcx]
- movzx rcx, cl
- mov dword ptr [rbp-0x136C], ecx
+ mov rax, gword ptr [rbp-0x80]
+ cmp dword ptr [rax+0x08], 1
+ sete al
+ ; gcrRegs -[rax]
+ movzx rax, al
+ mov dword ptr [rbp-0x136C], eax
jmp SHORT G_M12913_IG10
;; size=134 bbWeight=1 PerfScore 46.25
G_M12913_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- xor ecx, ecx
- mov dword ptr [rbp-0x136C], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x136C], eax
;; size=8 bbWeight=1 PerfScore 1.25
G_M12913_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbp-0x136C], 0
je G_M12913_IG13
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78]
+ ; gcrRegs +[rax]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
- ; gcrRegs -[rcx] +[rax]
+ ; gcrRegs -[rcx]
; gcr arg pop 0
cmp gword ptr [rax+0x10], 0
je G_M12913_IG12
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x88], rax
- mov rcx, gword ptr [rbp-0x88]
- ; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
- cmp gword ptr [rcx+0x10], 0
+ mov rax, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rax+0x10]
+ cmp gword ptr [rax+0x10], 0
jne SHORT G_M12913_IG11
jmp G_M12913_IG15
;; size=82 bbWeight=1 PerfScore 29.00
G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
call [<unknown method>]
@@ -1587,27 +1585,26 @@ G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x90], rax
cmp gword ptr [rbp-0x90], 0
je G_M12913_IG19
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x1388], rax
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x70], rax
- mov rcx, gword ptr [rbp-0x1388]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x48], rcx
+ mov rax, gword ptr [rbp-0x1388]
+ mov gword ptr [rbp-0x48], rax
jmp G_M12913_IG16
;; size=92 bbWeight=1 PerfScore 26.00
G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp+0x18]
; gcrRegs +[rcx]
call [<unknown method>]
@@ -1616,27 +1613,26 @@ G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x90], rax
cmp gword ptr [rbp-0x90], 0
je G_M12913_IG19
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x1380], rax
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x70], rax
- mov rcx, gword ptr [rbp-0x1380]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x48], rcx
+ mov rax, gword ptr [rbp-0x1380]
+ mov gword ptr [rbp-0x48], rax
jmp G_M12913_IG16
...
+2 (+1.28%) : 241273.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -48,10 +48,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
call [<unknown method>]
; byrRegs -[rcx]
mov dword ptr [rbp-0x04], eax
- xor ecx, ecx
- mov dword ptr [rbp-0x08], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.50
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -60,26 +60,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax]
- mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18]
; byrRegs +[rcx]
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x14]
sub ecx, eax
- or ecx, dword ptr [rbp-0x08]
- mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x08]
+ mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C]
inc eax
mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C]
- cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C]
+ cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x08], 0
@@ -91,7 +93,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-27 (-15.98%) : 38374.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
@@ -31,47 +31,47 @@ G_M6520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x28], r9d
;; size=24 bbWeight=1 PerfScore 5.75
G_M6520_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d
- mov dword ptr [rbp-0x08], r8d
- mov r8d, dword ptr [rbp+0x28]
- movzx r8, r8b
- mov dword ptr [rsp+0x20], r8d
- mov r8d, dword ptr [rbp+0x30]
- movzx r8, r8b
- mov dword ptr [rsp+0x28], r8d
- mov r8d, dword ptr [rbp+0x38]
- movzx r8, r8b
- mov dword ptr [rsp+0x30], r8d
- mov r8d, dword ptr [rbp+0x40]
- movzx r8, r8b
- mov dword ptr [rsp+0x38], r8d
- mov r8d, dword ptr [rbp+0x48]
- movzx r8, r8b
- mov dword ptr [rsp+0x40], r8d
- mov r8d, dword ptr [rbp+0x50]
- movzx r8, r8b
- mov dword ptr [rsp+0x48], r8d
- mov r8d, dword ptr [rbp+0x58]
- movzx r8, r8b
- mov dword ptr [rsp+0x50], r8d
- mov r8d, dword ptr [rbp+0x60]
- movzx r8, r8b
- mov dword ptr [rsp+0x58], r8d
- mov r8d, dword ptr [rbp+0x18]
- movzx r8, r8b
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ mov eax, dword ptr [rbp+0x28]
+ movzx rax, al
+ mov dword ptr [rsp+0x20], eax
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rsp+0x30], eax
+ mov eax, dword ptr [rbp+0x40]
+ movzx rax, al
+ mov dword ptr [rsp+0x38], eax
+ mov eax, dword ptr [rbp+0x48]
+ movzx rax, al
+ mov dword ptr [rsp+0x40], eax
+ mov eax, dword ptr [rbp+0x50]
+ movzx rax, al
+ mov dword ptr [rsp+0x48], eax
+ mov eax, dword ptr [rbp+0x58]
+ movzx rax, al
+ mov dword ptr [rsp+0x50], eax
+ mov eax, dword ptr [rbp+0x60]
+ movzx rax, al
+ mov dword ptr [rsp+0x58], eax
+ mov eax, dword ptr [rbp+0x18]
+ movzx r8, al
lea rcx, [rbp-0x08]
mov edx, dword ptr [rbp+0x10]
mov r9d, dword ptr [rbp+0x20]
call [<unknown method>]
mov eax, dword ptr [rbp-0x08]
- ;; size=139 bbWeight=1 PerfScore 27.00
+ ;; size=112 bbWeight=1 PerfScore 27.00
G_M6520_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 169 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
+; Total bytes of code 142, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 142 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
; ============================================================
Unwind Info:
-27 (-15.98%) : 13315.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
@@ -31,47 +31,47 @@ G_M6520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x28], r9d
;; size=24 bbWeight=1 PerfScore 5.75
G_M6520_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d
- mov dword ptr [rbp-0x08], r8d
- mov r8d, dword ptr [rbp+0x28]
- movzx r8, r8b
- mov dword ptr [rsp+0x20], r8d
- mov r8d, dword ptr [rbp+0x30]
- movzx r8, r8b
- mov dword ptr [rsp+0x28], r8d
- mov r8d, dword ptr [rbp+0x38]
- movzx r8, r8b
- mov dword ptr [rsp+0x30], r8d
- mov r8d, dword ptr [rbp+0x40]
- movzx r8, r8b
- mov dword ptr [rsp+0x38], r8d
- mov r8d, dword ptr [rbp+0x48]
- movzx r8, r8b
- mov dword ptr [rsp+0x40], r8d
- mov r8d, dword ptr [rbp+0x50]
- movzx r8, r8b
- mov dword ptr [rsp+0x48], r8d
- mov r8d, dword ptr [rbp+0x58]
- movzx r8, r8b
- mov dword ptr [rsp+0x50], r8d
- mov r8d, dword ptr [rbp+0x60]
- movzx r8, r8b
- mov dword ptr [rsp+0x58], r8d
- mov r8d, dword ptr [rbp+0x18]
- movzx r8, r8b
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ mov eax, dword ptr [rbp+0x28]
+ movzx rax, al
+ mov dword ptr [rsp+0x20], eax
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rsp+0x28], eax
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rsp+0x30], eax
+ mov eax, dword ptr [rbp+0x40]
+ movzx rax, al
+ mov dword ptr [rsp+0x38], eax
+ mov eax, dword ptr [rbp+0x48]
+ movzx rax, al
+ mov dword ptr [rsp+0x40], eax
+ mov eax, dword ptr [rbp+0x50]
+ movzx rax, al
+ mov dword ptr [rsp+0x48], eax
+ mov eax, dword ptr [rbp+0x58]
+ movzx rax, al
+ mov dword ptr [rsp+0x50], eax
+ mov eax, dword ptr [rbp+0x60]
+ movzx rax, al
+ mov dword ptr [rsp+0x58], eax
+ mov eax, dword ptr [rbp+0x18]
+ movzx r8, al
lea rcx, [rbp-0x08]
mov edx, dword ptr [rbp+0x10]
mov r9d, dword ptr [rbp+0x20]
call [<unknown method>]
mov eax, dword ptr [rbp-0x08]
- ;; size=139 bbWeight=1 PerfScore 27.00
+ ;; size=112 bbWeight=1 PerfScore 27.00
G_M6520_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 169 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 142, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 142 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================
Unwind Info:
-27 (-15.98%) : 38375.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
@@ -31,34 +31,34 @@ G_M29974_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x28], r9d
;; size=25 bbWeight=1 PerfScore 5.75
G_M29974_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r8d, dword ptr [rbp+0x30]
- movzx r8, r8b
- mov dword ptr [rsp+0x20], r8d
- mov r8d, dword ptr [rbp+0x38]
- movzx r8, r8b
- mov dword ptr [rsp+0x28], r8d
- xor r8d, r8d
- mov dword ptr [rsp+0x30], r8d
- mov r8d, dword ptr [rbp+0x40]
- movzx r8, r8b
- mov dword ptr [rsp+0x38], r8d
- mov r8d, dword ptr [rbp+0x48]
- movzx r8, r8b
- mov dword ptr [rsp+0x40], r8d
- mov r8d, dword ptr [rbp+0x50]
- movzx r8, r8b
- mov dword ptr [rsp+0x48], r8d
- mov r8d, dword ptr [rbp+0x58]
- movzx r8, r8b
- mov dword ptr [rsp+0x50], r8d
- mov r8d, dword ptr [rbp+0x60]
- movzx r8, r8b
- mov dword ptr [rsp+0x58], r8d
- mov r8d, dword ptr [rbp+0x68]
- movzx r8, r8b
- mov dword ptr [rsp+0x60], r8d
- mov r8d, dword ptr [rbp+0x20]
- movzx r8, r8b
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rsp+0x20], eax
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rsp+0x28], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x30], eax
+ mov eax, dword ptr [rbp+0x40]
+ movzx rax, al
+ mov dword ptr [rsp+0x38], eax
+ mov eax, dword ptr [rbp+0x48]
+ movzx rax, al
+ mov dword ptr [rsp+0x40], eax
+ mov eax, dword ptr [rbp+0x50]
+ movzx rax, al
+ mov dword ptr [rsp+0x48], eax
+ mov eax, dword ptr [rbp+0x58]
+ movzx rax, al
+ mov dword ptr [rsp+0x50], eax
+ mov eax, dword ptr [rbp+0x60]
+ movzx rax, al
+ mov dword ptr [rsp+0x58], eax
+ mov eax, dword ptr [rbp+0x68]
+ movzx rax, al
+ mov dword ptr [rsp+0x60], eax
+ mov eax, dword ptr [rbp+0x20]
+ movzx r8, al
mov rcx, bword ptr [rbp+0x10]
; byrRegs +[rcx]
mov edx, dword ptr [rbp+0x18]
@@ -66,14 +66,14 @@ G_M29974_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; byrRegs -[rcx]
nop
- ;; size=138 bbWeight=1 PerfScore 26.75
+ ;; size=111 bbWeight=1 PerfScore 26.75
G_M29974_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 10, PerfScore 34.25, instruction count 43, allocated bytes for code 169 (MethodHash=c69b8ae9) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
+; Total bytes of code 142, prolog size 10, PerfScore 34.25, instruction count 43, allocated bytes for code 142 (MethodHash=c69b8ae9) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
; ============================================================
Unwind Info:
+12 (+21.43%) : 134095.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -8,40 +8,45 @@
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this
; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx
mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10]
- ; byrRegs +[rcx]
- mov rbx, gword ptr [rcx]
- ; gcrRegs +[rbx]
- mov rcx, qword ptr [rbp+0x18]
- ; byrRegs -[rcx]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x10], rax
+ mov rcx, qword ptr [rbp+0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
+ add rsp, 48
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 146943.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -8,40 +8,45 @@
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this
; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx
mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10]
- ; byrRegs +[rcx]
- mov rbx, gword ptr [rcx]
- ; gcrRegs +[rbx]
- mov rcx, qword ptr [rbp+0x18]
- ; byrRegs -[rcx]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x10], rax
+ mov rcx, qword ptr [rbp+0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
+ add rsp, 48
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+12 (+21.43%) : 11412.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)
@@ -8,40 +8,45 @@
; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this
; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[]
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- push rbx
- sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax
+ mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx
mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10]
- ; byrRegs +[rcx]
- mov rbx, gword ptr [rcx]
- ; gcrRegs +[rbx]
- mov rcx, qword ptr [rbp+0x18]
- ; byrRegs -[rcx]
- call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x10], rax
+ mov rcx, qword ptr [rbp+0x18]
+ call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, gword ptr [rbp-0x10]
+ ; gcrRegs +[rcx]
+ cmp rcx, gword ptr [rax+0x08]
setne al
; byrRegs -[rax]
movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
+ add rsp, 48
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================
Unwind Info:
@@ -49,11 +54,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
librariestestsnotieredcompilation.run.windows.x64.Release.mch
-38 (-4.69%) : 64469.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write105_Item(System.String,System.String,SerializationTypes.NamespaceTypeNameClashContainer,ubyte,ubyte):this (MinOpts)
@@ -66,16 +66,16 @@ G_M31680_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M31680_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
nop
- xor ecx, ecx
+ xor eax, eax
cmp gword ptr [rbp+0x28], 0
- sete cl
- mov dword ptr [rbp-0x04], ecx
+ sete al
+ mov dword ptr [rbp-0x04], eax
cmp dword ptr [rbp-0x04], 0
je SHORT G_M31680_IG06
nop
- mov ecx, dword ptr [rbp+0x30]
- movzx rcx, cl
- mov dword ptr [rbp-0x08], ecx
+ mov eax, dword ptr [rbp+0x30]
+ movzx rax, al
+ mov dword ptr [rbp-0x08], eax
cmp dword ptr [rbp-0x08], 0
je SHORT G_M31680_IG05
mov rcx, gword ptr [rbp+0x10]
@@ -94,12 +94,12 @@ G_M31680_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
jmp G_M31680_IG19
;; size=6 bbWeight=1 PerfScore 2.25
G_M31680_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp+0x38]
- movzx rcx, cl
- test ecx, ecx
- sete cl
- movzx rcx, cl
- mov dword ptr [rbp-0x0C], ecx
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ test eax, eax
+ sete al
+ movzx rax, al
+ mov dword ptr [rbp-0x0C], eax
cmp dword ptr [rbp-0x0C], 0
je G_M31680_IG09
nop
@@ -110,18 +110,16 @@ G_M31680_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x68], rax
- mov rcx, gword ptr [rbp-0x68]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x18], rcx
+ mov rax, gword ptr [rbp-0x68]
+ mov gword ptr [rbp-0x18], rax
mov rcx, 0xD1FFAB1E ; SerializationTypes.NamespaceTypeNameClashContainer
- ; gcrRegs -[rcx]
call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE
; gcr arg pop 0
mov gword ptr [rbp-0x70], rax
- mov rcx, gword ptr [rbp-0x18]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x78], rcx
+ mov rax, gword ptr [rbp-0x18]
+ mov gword ptr [rbp-0x78], rax
mov rcx, gword ptr [rbp-0x70]
+ ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx]
; gcr arg pop 0
@@ -134,9 +132,9 @@ G_M31680_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
mov dword ptr [rbp-0x84], eax
- mov ecx, dword ptr [rbp-0x84]
- movzx rcx, cl
- mov dword ptr [rbp-0x1C], ecx
+ mov eax, dword ptr [rbp-0x84]
+ movzx rax, al
+ mov dword ptr [rbp-0x1C], eax
cmp dword ptr [rbp-0x1C], 0
je SHORT G_M31680_IG07
nop
@@ -164,13 +162,14 @@ G_M31680_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M31680_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xor ecx, ecx
- mov dword ptr [rsp+0x20], ecx
- xor rcx, rcx
- ; gcrRegs +[rcx]
- mov gword ptr [rsp+0x28], rcx
+ xor eax, eax
+ mov dword ptr [rsp+0x20], eax
+ xor rax, rax
+ ; gcrRegs +[rax]
+ mov gword ptr [rsp+0x28], rax
; gcr arg write
mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
mov rdx, gword ptr [rbp+0x18]
; gcrRegs +[rdx]
mov r8, gword ptr [rbp+0x20]
@@ -178,12 +177,12 @@ G_M31680_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r9, gword ptr [rbp+0x28]
; gcrRegs +[r9]
call [<unknown method>]
- ; gcrRegs -[rcx rdx r8-r9]
+ ; gcrRegs -[rax rcx rdx r8-r9]
; gcr arg pop 0
nop
- mov ecx, dword ptr [rbp+0x38]
- movzx rcx, cl
- mov dword ptr [rbp-0x20], ecx
+ mov eax, dword ptr [rbp+0x38]
+ movzx rax, al
+ mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
je SHORT G_M31680_IG10
mov rcx, gword ptr [rbp+0x10]
@@ -206,49 +205,47 @@ G_M31680_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x58], rax
- mov r9, gword ptr [rbp-0x58]
- ; gcrRegs +[r9]
- mov gword ptr [rbp-0x28], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
+ mov rax, gword ptr [rbp-0x58]
+ mov gword ptr [rbp-0x28], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
cmp gword ptr [rbp-0x28], 0
- setne r9b
- mov dword ptr [rbp-0x2C], r9d
+ setne al
+ mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0
je G_M31680_IG14
nop
- xor r9d, r9d
- mov dword ptr [rbp-0x30], r9d
+ xor eax, eax
+ mov dword ptr [rbp-0x30], eax
nop
jmp SHORT G_M31680_IG13
- ;; size=62 bbWeight=1 PerfScore 21.25
+ ;; size=57 bbWeight=1 PerfScore 21.25
G_M31680_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax]
nop
- mov r9, gword ptr [rbp-0x28]
- ; gcrRegs +[r9]
+ mov rax, gword ptr [rbp-0x28]
+ ; gcrRegs +[rax]
mov ecx, dword ptr [rbp-0x30]
- cmp ecx, dword ptr [r9+0x08]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M31680_IG12
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[r9]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=19 bbWeight=1 PerfScore 7.25
-G_M31680_IG12: ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref
- ; gcrRegs +[r9]
+ ;; size=18 bbWeight=1 PerfScore 7.25
+G_M31680_IG12: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rax]
mov edx, ecx
- lea r9, bword ptr [r9+8*rdx+0x10]
- ; gcrRegs -[r9]
- ; byrRegs +[r9]
- mov r9, gword ptr [r9]
- ; gcrRegs +[r9]
- ; byrRegs -[r9]
- mov gword ptr [rbp-0x98], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
- mov dword ptr [rsp+0x20], r9d
- xor r9d, r9d
- mov dword ptr [rsp+0x28], r9d
+ lea rax, bword ptr [rax+8*rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x98], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rsp+0x20], eax
+ xor eax, eax
+ mov dword ptr [rsp+0x28], eax
mov r9, gword ptr [rbp-0x98]
; gcrRegs +[r9]
mov rcx, gword ptr [rbp+0x10]
@@ -262,22 +259,22 @@ G_M31680_IG12: ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byre
; gcr arg pop 0
nop
nop
- mov ecx, dword ptr [rbp-0x30]
- inc ecx
- mov dword ptr [rbp-0x30], ecx
- ;; size=80 bbWeight=1 PerfScore 15.00
-G_M31680_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30]
+ mov eax, dword ptr [rbp-0x30]
+ inc eax
+ mov dword ptr [rbp-0x30], eax
+ ;; size=76 bbWeight=1 PerfScore 15.00
+G_M31680_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ mov eax, dword ptr [rbp-0x30]
mov rcx, gword ptr [rbp-0x28]
; gcrRegs +[rcx]
- cmp r9d, dword ptr [rcx+0x08]
- setl r9b
- movzx r9, r9b
- mov dword ptr [rbp-0x34], r9d
+ cmp eax, dword ptr [rcx+0x08]
+ setl al
+ movzx rax, al
+ mov dword ptr [rbp-0x34], eax
cmp dword ptr [rbp-0x34], 0
- jne G_M31680_IG11
+ jne SHORT G_M31680_IG11
nop
- ;; size=35 bbWeight=1 PerfScore 10.50
+ ;; size=26 bbWeight=1 PerfScore 10.50
G_M31680_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
nop
@@ -289,49 +286,47 @@ G_M31680_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x60], rax
- mov r9, gword ptr [rbp-0x60]
- ; gcrRegs +[r9]
- mov gword ptr [rbp-0x40], r9
- xor r9d, r9d
- ; gcrRegs -[r9]
+ mov rax, gword ptr [rbp-0x60]
+ mov gword ptr [rbp-0x40], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
cmp gword ptr [rbp-0x40], 0
- setne r9b
- mov dword ptr [rbp-0x44], r9d
+ setne al
+ mov dword ptr [rbp-0x44], eax
cmp dword ptr [rbp-0x44], 0
je G_M31680_IG18
nop
...
-5 (-2.35%) : 64834.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
@@ -41,18 +41,18 @@ G_M35358_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[rcx]
; gcr arg pop 0
nop
- xor r8d, r8d
+ xor eax, eax
cmp gword ptr [rbp+0x18], 0
- sete r8b
- mov dword ptr [rbp-0x04], r8d
+ sete al
+ mov dword ptr [rbp-0x04], eax
cmp dword ptr [rbp-0x04], 0
je SHORT G_M35358_IG05
nop
- mov r8, 0xD1FFAB1E ; string handle
- mov r8, gword ptr [r8]
+ mov rax, 0xD1FFAB1E ; string handle
+ mov r8, gword ptr [rax]
; gcrRegs +[r8]
- mov rdx, 0xD1FFAB1E ; string handle
- mov rdx, gword ptr [rdx]
+ mov rax, 0xD1FFAB1E ; string handle
+ mov rdx, gword ptr [rax]
; gcrRegs +[rdx]
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
@@ -62,7 +62,7 @@ G_M35358_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
nop
nop
jmp SHORT G_M35358_IG06
- ;; size=75 bbWeight=1 PerfScore 23.00
+ ;; size=72 bbWeight=1 PerfScore 23.00
G_M35358_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
@@ -78,23 +78,24 @@ G_M35358_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov gword ptr [rbp-0x10], rax
mov dword ptr [rsp+0x20], 1
- xor r9d, r9d
- mov dword ptr [rsp+0x28], r9d
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rsp+0x28], eax
mov r9, gword ptr [rbp-0x10]
; gcrRegs +[r9]
- mov rdx, 0xD1FFAB1E ; string handle
- mov rdx, gword ptr [rdx]
+ mov rax, 0xD1FFAB1E ; string handle
+ mov rdx, gword ptr [rax]
; gcrRegs +[rdx]
- mov r8, 0xD1FFAB1E ; string handle
- mov r8, gword ptr [r8]
+ mov rax, 0xD1FFAB1E ; string handle
+ mov r8, gword ptr [rax]
; gcrRegs +[r8]
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
call <unknown method>
- ; gcrRegs -[rax rcx rdx r8-r9]
+ ; gcrRegs -[rcx rdx r8-r9]
; gcr arg pop 0
nop
- ;; size=90 bbWeight=1 PerfScore 17.50
+ ;; size=88 bbWeight=1 PerfScore 17.50
G_M35358_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
@@ -104,7 +105,7 @@ G_M35358_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 213, prolog size 27, PerfScore 53.00, instruction count 53, allocated bytes for code 213 (MethodHash=ab9475e1) for method Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
+; Total bytes of code 208, prolog size 27, PerfScore 53.00, instruction count 53, allocated bytes for code 208 (MethodHash=ab9475e1) for method Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
; ============================================================
Unwind Info:
-7 (-2.33%) : 284014.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A_Get5755+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
@@ -49,37 +49,37 @@ G_M41965_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
G_M41965_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
nop
- mov rcx, gword ptr [rbp+0x10]
- ; gcrRegs +[rcx]
- mov ecx, dword ptr [rcx+0x4C]
- ; gcrRegs -[rcx]
- mov dword ptr [rbp-0x04], ecx
- mov ecx, dword ptr [rbp-0x04]
- mov dword ptr [rbp-0x18], ecx
+ mov rax, gword ptr [rbp+0x10]
+ ; gcrRegs +[rax]
+ mov eax, dword ptr [rax+0x4C]
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x04], eax
+ mov eax, dword ptr [rbp-0x04]
+ mov dword ptr [rbp-0x18], eax
mov rcx, bword ptr [rbp+0x18]
; byrRegs +[rcx]
call [<unknown method>]
; byrRegs -[rcx]
; gcr arg pop 0
mov dword ptr [rbp-0x1C], eax
- mov r8d, dword ptr [rbp-0x1C]
- add r8d, -6
- cmp dword ptr [rbp-0x18], r8d
- setle r8b
- movzx r8, r8b
- mov dword ptr [rbp-0x08], r8d
+ mov eax, dword ptr [rbp-0x1C]
+ add eax, -6
+ cmp dword ptr [rbp-0x18], eax
+ setle al
+ movzx rax, al
+ mov dword ptr [rbp-0x08], eax
cmp dword ptr [rbp-0x08], 0
je G_M41965_IG08
nop
- mov r8d, dword ptr [rbp-0x04]
- add r8d, 3
+ mov eax, dword ptr [rbp-0x04]
+ lea r8d, [rax+0x03]
lea rdx, [rbp-0x40]
mov rcx, bword ptr [rbp+0x18]
; byrRegs +[rcx]
call [<unknown method>]
; byrRegs -[rcx]
; gcr arg pop 0
- ;; size=88 bbWeight=1 PerfScore 26.00
+ ;; size=81 bbWeight=1 PerfScore 26.25
G_M41965_IG05: ; bbWeight=1, nogc, extend
vmovdqu xmm0, xmmword ptr [rbp-0x40]
vmovdqu xmmword ptr [rbp-0x58], xmm0
@@ -90,46 +90,47 @@ G_M41965_IG06: ; bbWeight=1, isz, extend
call CORINFO_HELP_GETSHARED_GCSTATIC_BASE_DYNAMICCLASS
; byrRegs +[rax]
; gcr arg pop 0
- mov rdx, gword ptr [rax+0x70]
- ; gcrRegs +[rdx]
- mov gword ptr [rbp-0x60], rdx
+ mov rax, gword ptr [rax+0x70]
+ ; gcrRegs +[rax]
+ ; byrRegs -[rax]
+ mov gword ptr [rbp-0x60], rax
mov rdx, gword ptr [rbp-0x60]
+ ; gcrRegs +[rdx]
lea rcx, [rbp-0x58]
call [<unknown method>]
- ; gcrRegs -[rdx]
- ; byrRegs -[rax]
+ ; gcrRegs -[rax rdx]
; gcr arg pop 0
mov dword ptr [rbp-0x44], eax
- mov ecx, dword ptr [rbp-0x44]
- mov dword ptr [rbp-0x0C], ecx
- xor ecx, ecx
+ mov eax, dword ptr [rbp-0x44]
+ mov dword ptr [rbp-0x0C], eax
+ xor eax, eax
cmp dword ptr [rbp-0x0C], 0
- setge cl
- mov dword ptr [rbp-0x10], ecx
+ setge al
+ mov dword ptr [rbp-0x10], eax
cmp dword ptr [rbp-0x10], 0
je SHORT G_M41965_IG07
nop
- mov ecx, dword ptr [rbp-0x04]
- add ecx, dword ptr [rbp-0x0C]
- mov rax, gword ptr [rbp+0x10]
- ; gcrRegs +[rax]
- mov dword ptr [rax+0x4C], ecx
+ mov eax, dword ptr [rbp-0x04]
+ add eax, dword ptr [rbp-0x0C]
+ mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
+ mov dword ptr [rcx+0x4C], eax
mov dword ptr [rbp-0x14], 1
nop
jmp SHORT G_M41965_IG09
;; size=93 bbWeight=1 PerfScore 27.75
G_M41965_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+ ; gcrRegs -[rcx]
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M41965_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp+0x10]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x28], rcx
+ mov rax, gword ptr [rbp+0x10]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x28], rax
mov rcx, bword ptr [rbp+0x18]
- ; gcrRegs -[rcx]
; byrRegs +[rcx]
call [<unknown method>]
+ ; gcrRegs -[rax]
; byrRegs -[rcx]
; gcr arg pop 0
mov dword ptr [rbp-0x2C], eax
@@ -151,7 +152,7 @@ G_M41965_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 301, prolog size 46, PerfScore 87.83, instruction count 80, allocated bytes for code 301 (MethodHash=39fd5c12) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get57_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 294, prolog size 46, PerfScore 88.08, instruction count 80, allocated bytes for code 294 (MethodHash=39fd5c12) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get57_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================
Unwind Info:
+2 (+0.85%) : 178903.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
@@ -44,18 +44,17 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x10], rax
- mov rcx, gword ptr [rbp-0x10]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x08], rcx
- mov rcx, gword ptr [rbp-0x08]
- mov gword ptr [rbp-0x18], rcx
- xor ecx, ecx
- ; gcrRegs -[rcx]
- mov dword ptr [rbp-0x1C], ecx
+ mov rax, gword ptr [rbp-0x10]
+ mov gword ptr [rbp-0x08], rax
+ mov rax, gword ptr [rbp-0x08]
+ mov gword ptr [rbp-0x18], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x1C], eax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
call [<unknown method>]
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x28], rax
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -71,11 +70,12 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rax rcx rdx r8]
; gcr arg pop 0
- mov rcx, 0xD1FFAB1E
- ; gcrRegs +[rcx]
- mov gword ptr [rsp+0x20], rcx
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ mov gword ptr [rsp+0x20], rax
; gcr arg write
mov rcx, gword ptr [rbp-0x28]
+ ; gcrRegs +[rcx]
mov rdx, gword ptr [rbp-0x30]
; gcrRegs +[rdx]
mov r8, 0xD1FFAB1E
@@ -83,10 +83,11 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov r9, 0xD1FFAB1E
; gcrRegs +[r9]
call [<unknown method>]
- ; gcrRegs -[rcx rdx r8-r9]
+ ; gcrRegs -[rax rcx rdx r8-r9]
; gcr arg pop 0
mov dword ptr [rbp-0x34], eax
- mov ecx, dword ptr [rbp-0x1C]
+ mov eax, dword ptr [rbp-0x1C]
+ mov ecx, eax
add ecx, dword ptr [rbp-0x34]
mov r8, gword ptr [rbp+0x10]
; gcrRegs +[r8]
@@ -103,14 +104,14 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
nop
- ;; size=187 bbWeight=1 PerfScore 43.25
+ ;; size=189 bbWeight=1 PerfScore 43.50
G_M35357_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 112
pop rbp
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 28, PerfScore 56.58, instruction count 50, allocated bytes for code 235 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
+; Total bytes of code 237, prolog size 28, PerfScore 56.83, instruction count 51, allocated bytes for code 237 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
; ============================================================
Unwind Info:
+44 (+1.21%) : 13054.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray
1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
@@ -157,14 +157,12 @@ G_M26197_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcr arg pop 0
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp+0x20]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x18], rcx
+ mov rax, gword ptr [rbp+0x20]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x18], rax
nop
mov rcx, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rcx]
call CORINFO_HELP_NEWSFAST
- ; gcrRegs +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x140], rax
mov rcx, gword ptr [rbp-0x140]
@@ -172,28 +170,28 @@ G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rax rcx]
; gcr arg pop 0
- mov rcx, gword ptr [rbp-0x140]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x10], rcx
- xor ecx, ecx
- ; gcrRegs -[rcx]
- mov dword ptr [rbp-0x1C], ecx
+ mov rax, gword ptr [rbp-0x140]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x10], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
+ mov dword ptr [rbp-0x1C], eax
nop
jmp G_M26197_IG71
;; size=66 bbWeight=1 PerfScore 14.00
G_M26197_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [rbp+0x10]
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx]
- cmp qword ptr [rcx+0x158], 0
+ mov rax, qword ptr [rbp+0x10]
+ mov rax, qword ptr [rax+0x38]
+ mov rax, qword ptr [rax]
+ cmp qword ptr [rax+0x158], 0
je SHORT G_M26197_IG07
;; size=21 bbWeight=1 PerfScore 9.00
G_M26197_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [rbp+0x10]
- mov rcx, qword ptr [rcx+0x38]
- mov rcx, qword ptr [rcx]
- mov rcx, qword ptr [rcx+0x158]
- mov qword ptr [rbp-0x150], rcx
+ mov rax, qword ptr [rbp+0x10]
+ mov rax, qword ptr [rax+0x38]
+ mov rax, qword ptr [rax]
+ mov rax, qword ptr [rax+0x158]
+ mov qword ptr [rbp-0x150], rax
jmp SHORT G_M26197_IG08
;; size=27 bbWeight=0.80 PerfScore 8.00
G_M26197_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -214,36 +212,36 @@ G_M26197_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rax rcx]
; gcr arg pop 0
- mov rcx, gword ptr [rbp-0x148]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x28], rcx
+ mov rax, gword ptr [rbp-0x148]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x28], rax
nop
- mov rcx, gword ptr [rbp-0x28]
- mov gword ptr [rbp-0x158], rcx
- mov rcx, gword ptr [rbp+0x28]
- mov eax, dword ptr [rbp-0x1C]
- cmp eax, dword ptr [rcx+0x08]
+ mov rax, gword ptr [rbp-0x28]
+ mov gword ptr [rbp-0x158], rax
+ mov rax, gword ptr [rbp+0x28]
+ mov ecx, dword ptr [rbp-0x1C]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG09
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
; gcr arg pop 0
;; size=72 bbWeight=1 PerfScore 18.25
-G_M26197_IG09: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rcx]
- mov edx, eax
+G_M26197_IG09: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rax]
+ mov edx, ecx
imul rdx, rdx, 64
- lea rcx, bword ptr [rcx+rdx+0x10]
- ; gcrRegs -[rcx]
+ lea rax, bword ptr [rax+rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, rax
; byrRegs +[rcx]
call [<unknown method>]
; gcrRegs +[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rax rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x160], rax
- mov rcx, gword ptr [rbp-0x158]
- ; gcrRegs +[rcx]
- lea rcx, bword ptr [rcx+0x08]
- ; gcrRegs -[rcx]
+ mov rax, gword ptr [rbp-0x158]
+ lea rcx, bword ptr [rax+0x08]
; byrRegs +[rcx]
mov rdx, gword ptr [rbp-0x160]
; gcrRegs +[rdx]
@@ -259,26 +257,26 @@ G_M26197_IG09: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; gcrRegs -[rcx rdx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x168], rax
- mov rcx, gword ptr [rbp+0x28]
- ; gcrRegs +[rcx]
- mov eax, dword ptr [rbp-0x1C]
- ; gcrRegs -[rax]
- cmp eax, dword ptr [rcx+0x08]
+ mov rax, gword ptr [rbp+0x28]
+ mov ecx, dword ptr [rbp-0x1C]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG10
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=93 bbWeight=1 PerfScore 26.00
-G_M26197_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rcx]
- mov edx, eax
+ ;; size=96 bbWeight=1 PerfScore 26.25
+G_M26197_IG10: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rax]
+ mov edx, ecx
imul rdx, rdx, 64
- lea rcx, bword ptr [rcx+rdx+0x10]
- ; gcrRegs -[rcx]
+ lea rax, bword ptr [rax+rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, rax
; byrRegs +[rcx]
call [<unknown method>]
; gcrRegs +[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rax rcx]
; gcr arg pop 0
mov gword ptr [rbp-0x170], rax
mov rcx, gword ptr [rbp-0x168]
@@ -312,14 +310,13 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; gcrRegs -[rdx r8] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x188], rax
- mov rcx, gword ptr [rbp-0x188]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x30], rcx
- xor ecx, ecx
- ; gcrRegs -[rcx]
+ mov rax, gword ptr [rbp-0x188]
+ mov gword ptr [rbp-0x30], rax
+ xor eax, eax
+ ; gcrRegs -[rax]
cmp gword ptr [rbp-0x30], 0
- setne cl
- mov dword ptr [rbp-0x3C], ecx
+ setne al
+ mov dword ptr [rbp-0x3C], eax
cmp dword ptr [rbp-0x3C], 0
je G_M26197_IG25
nop
@@ -327,30 +324,30 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; gcrRegs +[rcx]
cmp dword ptr [rcx], ecx
call <unknown method>
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x358], rax
- mov rcx, gword ptr [rbp-0x358]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x48], rcx
- mov rcx, gword ptr [rbp+0x28]
- mov eax, dword ptr [rbp-0x1C]
- ; gcrRegs -[rax]
- cmp eax, dword ptr [rcx+0x08]
+ mov rax, gword ptr [rbp-0x358]
+ mov gword ptr [rbp-0x48], rax
+ mov rax, gword ptr [rbp+0x28]
+ mov ecx, dword ptr [rbp-0x1C]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG11
call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=218 bbWeight=1 PerfScore 54.75
-G_M26197_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rcx]
- mov edx, eax
+ ;; size=221 bbWeight=1 PerfScore 55.00
+G_M26197_IG11: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rax]
+ mov edx, ecx
imul rdx, rdx, 64
- lea rcx, bword ptr [rcx+rdx+0x10]
- ; gcrRegs -[rcx]
+ lea rax, bword ptr [rax+rdx+0x10]
+ ; gcrRegs -[rax]
+ ; byrRegs +[rax]
+ mov rcx, rax
; byrRegs +[rcx]
call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rax rcx]
; gcr arg pop 0
mov dword ptr [rbp-0x35C], eax
cmp dword ptr [rbp-0x35C], 0
@@ -366,11 +363,9 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov gword ptr [rbp-0x420], rax
- mov rcx, gword ptr [rbp-0x420]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x58], rcx
+ mov rax, gword ptr [rbp-0x420]
+ mov gword ptr [rbp-0x58], rax
lea rcx, [rbp-0x58]
- ; gcrRegs -[rcx]
mov rdx, 0xD1FFAB1E ; System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DiagnosticDescriptor]
call [<unknown method>]
; gcrRegs -[rax]
@@ -378,7 +373,7 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
mov dword ptr [rbp-0x424], eax
cmp dword ptr [rbp-0x424], 1
je SHORT G_M26197_IG13
- ;; size=103 bbWeight=1 PerfScore 30.00
+ ;; size=106 bbWeight=1 PerfScore 30.25
G_M26197_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp-0x48]
; gcrRegs +[rcx]
@@ -391,9 +386,9 @@ G_M26197_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
...
+2 (+1.28%) : 230240.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan
1[ubyte]):ubyte (MinOpts)
@@ -48,10 +48,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
call [<unknown method>]
; byrRegs -[rcx]
mov dword ptr [rbp-0x04], eax
- xor ecx, ecx
- mov dword ptr [rbp-0x08], ecx
- xor ecx, ecx
- mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x08], eax
+ xor eax, eax
+ mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06
;; size=25 bbWeight=1 PerfScore 9.50
G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -60,26 +60,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax]
- mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax]
+ ; byrRegs -[rax]
+ mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18]
; byrRegs +[rcx]
mov edx, dword ptr [rbp-0x0C]
call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax]
; byrRegs -[rax]
mov ecx, dword ptr [rbp-0x14]
sub ecx, eax
- or ecx, dword ptr [rbp-0x08]
- mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx
+ or eax, dword ptr [rbp-0x08]
+ mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C]
inc eax
mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C]
- cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C]
+ cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05
xor eax, eax
cmp dword ptr [rbp-0x08], 0
@@ -91,7 +93,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch
+0 (0.00%) : 34959.dasm - System.Management.Automation.PowerShellAssemblyLoadContext:InitializeTypeCatalog():System.Collections.Generic.Dictionary`2System.String,System.String
@@ -36,17 +36,18 @@ G_M20070_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, 0x1B6B
call [<unknown method>]
; gcrRegs -[rax rcx r8]
- mov rcx, gword ptr [rbp-0x10]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x08], rcx
+ mov rax, gword ptr [rbp-0x10]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x08], rax
mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
mov r8, 0xD1FFAB1E
; gcrRegs +[r8]
cmp dword ptr [rcx], ecx
call [<unknown method>]
- ; gcrRegs -[rcx rdx r8]
+ ; gcrRegs -[rax rcx rdx r8]
mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
+0 (0.00%) : 16384.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -21,8 +21,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp+0x10], rcx
;; size=20 bbWeight=1 PerfScore 4.00
G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x10], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov r8, gword ptr [rbp-0x10]
+6 (+0.00%) : 4521.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
@@ -2481,12 +2481,12 @@ G_M23076_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp+0x18], edx
;; size=72 bbWeight=1 PerfScore 14.08
G_M23076_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp+0x10]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x2A8], rcx
+ mov rax, gword ptr [rbp+0x10]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x2A8], rax
;; size=11 bbWeight=1 PerfScore 2.00
G_M23076_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp-0x2A8]
; gcrRegs +[rcx]
cmp dword ptr [rcx], ecx
@@ -2513,38 +2513,39 @@ G_M23076_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmp dword ptr [rcx], ecx
call [<unknown method>]
; gcrRegs -[rcx r8]
- mov rcx, gword ptr [rbp-0x08]
- ; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
- mov gword ptr [rbp-0x28], rcx
- mov rcx, gword ptr [rbp-0x08]
- vmovdqu ymm0, ymmword ptr [rcx+0x10]
+ mov rax, gword ptr [rbp-0x08]
+ ; gcrRegs +[rax]
+ mov rax, gword ptr [rax+0x08]
+ mov gword ptr [rbp-0x28], rax
+ mov rax, gword ptr [rbp-0x08]
+ vmovdqu ymm0, ymmword ptr [rax+0x10]
vmovdqu ymmword ptr [rbp-0x58], ymm0
- vmovdqu xmm0, xmmword ptr [rcx+0x2C]
+ vmovdqu xmm0, xmmword ptr [rax+0x2C]
vmovdqu xmmword ptr [rbp-0x3C], xmm0
- mov ecx, dword ptr [rbp-0x14]
- ; gcrRegs -[rcx]
- sub ecx, dword ptr [rbp-0x10]
- mov dword ptr [rbp-0x5C], ecx
- mov rcx, gword ptr [rbp-0x2A8]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x68], rcx
+ mov eax, dword ptr [rbp-0x14]
+ ; gcrRegs -[rax]
+ sub eax, dword ptr [rbp-0x10]
+ mov dword ptr [rbp-0x5C], eax
+ mov rax, gword ptr [rbp-0x2A8]
+ ; gcrRegs +[rax]
+ mov gword ptr [rbp-0x68], rax
mov rcx, gword ptr [rbp-0x28]
+ ; gcrRegs +[rcx]
call [<unknown method>]
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
cmp eax, 67
jne SHORT G_M23076_IG05
mov dword ptr [rbp-0x2AC], 1
jmp SHORT G_M23076_IG06
;; size=106 bbWeight=1 PerfScore 38.75
G_M23076_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov dword ptr [rbp-0x2AC], ecx
+ xor eax, eax
+ mov dword ptr [rbp-0x2AC], eax
;; size=8 bbWeight=1 PerfScore 1.25
G_M23076_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x2AC]
- movzx rcx, cl
- mov dword ptr [rbp-0x6C], ecx
+ mov eax, dword ptr [rbp-0x2AC]
+ movzx rax, al
+ mov dword ptr [rbp-0x6C], eax
mov rcx, gword ptr [rbp-0x28]
; gcrRegs +[rcx]
call [<unknown method>]
@@ -2557,45 +2558,44 @@ G_M23076_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rdx] +[rax]
mov gword ptr [rbp-0x78], rax
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78]
+ mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
call [<unknown method>]
; gcrRegs -[rcx]
mov gword ptr [rbp-0x80], rax
cmp gword ptr [rbp-0x80], 0
je SHORT G_M23076_IG07
- mov r8, gword ptr [rbp-0x2A8]
- ; gcrRegs +[r8]
- movzx r8, byte ptr [r8+0x40]
- ; gcrRegs -[r8]
- mov dword ptr [rbp-0x2B0], r8d
- jmp SHORT G_M23076_IG08
- ;; size=97 bbWeight=1 PerfScore 28.75
-G_M23076_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov rax, gword ptr [rbp-0x2A8]
+ movzx rax, byte ptr [rax+0x40]
; gcrRegs -[rax]
- xor r8d, r8d
- mov dword ptr [rbp-0x2B0], r8d
- ;; size=10 bbWeight=1 PerfScore 1.25
+ mov dword ptr [rbp-0x2B0], eax
+ jmp SHORT G_M23076_IG08
+ ;; size=95 bbWeight=1 PerfScore 28.75
+G_M23076_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ mov dword ptr [rbp-0x2B0], eax
+ ;; size=8 bbWeight=1 PerfScore 1.25
G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r8d, dword ptr [rbp-0x2B0]
- movzx r8, r8b
- mov dword ptr [rbp-0x70], r8d
- mov r8, gword ptr [rbp-0x2A8]
- ; gcrRegs +[r8]
- mov r8, gword ptr [r8+0x30]
- mov gword ptr [rbp-0x88], r8
- mov r8, gword ptr [rbp-0x2A8]
- cmp dword ptr [r8+0x38], 0
+ mov eax, dword ptr [rbp-0x2B0]
+ movzx rax, al
+ mov dword ptr [rbp-0x70], eax
+ mov rax, gword ptr [rbp-0x2A8]
+ ; gcrRegs +[rax]
+ mov rax, gword ptr [rax+0x30]
+ mov gword ptr [rbp-0x88], rax
+ mov rax, gword ptr [rbp-0x2A8]
+ cmp dword ptr [rax+0x38], 0
jg G_M23076_IG25
- mov r8, gword ptr [rbp-0x2A8]
- mov r8, gword ptr [r8+0x30]
+ mov rax, gword ptr [rbp-0x2A8]
+ mov r8, gword ptr [rax+0x30]
+ ; gcrRegs +[r8]
mov rcx, gword ptr [rbp-0x2A8]
; gcrRegs +[rcx]
mov rdx, gword ptr [rbp-0x28]
; gcrRegs +[rdx]
call [<unknown method>]
- ; gcrRegs -[rcx rdx r8]
+ ; gcrRegs -[rax rcx rdx r8]
test eax, eax
jne G_M23076_IG26
mov rcx, gword ptr [rbp-0x28]
@@ -2605,14 +2605,14 @@ G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov dword ptr [rbp-0x4D44], eax
cmp dword ptr [rbp-0x4D44], 201
ja SHORT G_M23076_IG09
- mov ecx, dword ptr [rbp-0x4D44]
- mov ecx, ecx
- lea rax, [reloc @RWD00]
- mov eax, dword ptr [rax+4*rcx]
+ mov eax, dword ptr [rbp-0x4D44]
+ mov eax, eax
+ lea rcx, [reloc @RWD00]
+ mov ecx, dword ptr [rcx+4*rax]
lea rdx, G_M23076_IG02
- add rax, rdx
- jmp rax
- ;; size=145 bbWeight=1 PerfScore 35.50
+ add rcx, rdx
+ jmp rcx
+ ;; size=141 bbWeight=1 PerfScore 35.50
G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp-0x28]
; gcrRegs +[rcx]
@@ -2627,10 +2627,10 @@ G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
test rax, rax
je G_M23076_IG40
- mov rcx, gword ptr [rbp-0x88]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x90], rcx
+ mov rax, gword ptr [rbp-0x88]
+ mov gword ptr [rbp-0x90], rax
mov rcx, gword ptr [rbp-0x90]
+ ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx]
mov rcx, rax
@@ -2650,9 +2650,9 @@ G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [CORINFO_HELP_CHKCASTCLASS]
; gcrRegs -[rdx]
mov gword ptr [rbp-0x98], rax
- mov rcx, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x98]
+ mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
mov rdx, gword ptr [rbp-0x28]
; gcrRegs +[rdx]
call [<unknown method>]
@@ -2668,10 +2668,10 @@ G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx] +[rax]
test rax, rax
je G_M23076_IG28
- mov rcx, gword ptr [rbp-0x88]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x90], rcx
+ mov rax, gword ptr [rbp-0x88]
+ mov gword ptr [rbp-0x90], rax
mov rcx, gword ptr [rbp-0x90]
+ ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx]
mov rcx, rax
@@ -2698,35 +2698,35 @@ G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x80], rax
cmp gword ptr [rbp-0x80], 0
je G_M23076_IG40
- mov rcx, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x98]
+ mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
mov rdx, gword ptr [rbp-0x28]
; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rax rcx rdx]
test eax, eax
je G_M23076_IG40
- mov rcx, gword ptr [rbp-0x98]
- ; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
- mov gword ptr [rbp-0xA8], rcx
- mov rcx, gword ptr [rbp-0x28]
- mov gword ptr [rbp-0xA0], rcx
+ mov rax, gword ptr [rbp-0x98]
+ ; gcrRegs +[rax]
+ mov rax, gword ptr [rax+0x10]
+ mov gword ptr [rbp-0xA8], rax
+ mov rax, gword ptr [rbp-0x28]
+ mov gword ptr [rbp-0xA0], rax
jmp G_M23076_IG37
;; size=205 bbWeight=1 PerfScore 50.25
G_M23076_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp-0x88]
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx] +[rax]
test rax, rax
je G_M23076_IG29
- mov rcx, gword ptr [rbp-0x88]
- ; gcrRegs +[rcx]
- mov gword ptr [rbp-0x90], rcx
...
smoke_tests.nativeaot.windows.x64.checked.mch
+0 (0.00%) : 31922.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)
@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movaps xmmword ptr [rbp-0x10], xmm4
;; size=29 bbWeight=1 PerfScore 10.08
G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x08]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
@@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x10]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
@@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x18]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x18]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
@@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x20]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x20]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
+0 (0.00%) : 32290.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)
@@ -22,8 +22,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov gword ptr [rbp+0x10], rcx
;; size=20 bbWeight=1 PerfScore 4.00
G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx
- mov gword ptr [rbp-0x10], rcx
+ xor eax, eax
+ mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov r8, gword ptr [rbp-0x10]
+0 (0.00%) : 9948.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)
@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movaps xmmword ptr [rbp-0x10], xmm4
;; size=29 bbWeight=1 PerfScore 10.08
G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x08]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
@@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x10]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
@@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x18]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x18]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
@@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
;; size=34 bbWeight=0 PerfScore 0.00
G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)]
- mov rcx, gword ptr [rcx+0x20]
+ mov rax, qword ptr [(reloc)]
+ mov rcx, gword ptr [rax+0x20]
; gcrRegs +[rcx]
lea r10, [(reloc)] ; function address
xor rdx, rdx
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.windows.x64.checked.mch |
3 |
0 |
1 |
2 |
-0 |
+2 |
benchmarks.run_pgo.windows.x64.checked.mch |
31,774 |
4,894 |
1,847 |
25,033 |
-19,055 |
+5,555 |
benchmarks.run_tiered.windows.x64.checked.mch |
22,945 |
3,610 |
1,194 |
18,141 |
-16,133 |
+3,833 |
coreclr_tests.run.windows.x64.checked.mch |
264,856 |
38,014 |
23,640 |
203,202 |
-204,845 |
+344,231 |
libraries.crossgen2.windows.x64.checked.mch |
8 |
2 |
1 |
5 |
-4 |
+2 |
libraries.pmi.windows.x64.checked.mch |
2 |
0 |
1 |
1 |
-0 |
+2 |
libraries_tests.run.windows.x64.Release.mch |
324,523 |
35,553 |
10,394 |
278,576 |
-214,099 |
+50,989 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
13,453 |
3,758 |
316 |
9,379 |
-16,692 |
+4,054 |
realworld.run.windows.x64.checked.mch |
3 |
0 |
1 |
2 |
-0 |
+6 |
smoke_tests.nativeaot.windows.x64.checked.mch |
3 |
0 |
0 |
3 |
-0 |
+0 |
|
657,570 |
85,831 |
37,395 |
534,344 |
-470,828 |
+408,674 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.x64.checked.mch |
27,852 |
4 |
27,848 |
234 (0.83%) |
234 (0.83%) |
benchmarks.run_pgo.windows.x64.checked.mch |
101,589 |
49,789 |
51,800 |
129 (0.13%) |
129 (0.13%) |
benchmarks.run_tiered.windows.x64.checked.mch |
54,309 |
36,842 |
17,467 |
76 (0.14%) |
76 (0.14%) |
coreclr_tests.run.windows.x64.checked.mch |
573,543 |
340,982 |
232,561 |
446 (0.08%) |
446 (0.08%) |
libraries.crossgen2.windows.x64.checked.mch |
243,425 |
15 |
243,410 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.windows.x64.checked.mch |
306,292 |
6 |
306,286 |
2,206 (0.72%) |
2,206 (0.72%) |
libraries_tests.run.windows.x64.Release.mch |
672,161 |
479,203 |
192,958 |
1,126 (0.17%) |
1,126 (0.17%) |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
318,317 |
21,885 |
296,432 |
2,194 (0.68%) |
2,194 (0.68%) |
realworld.run.windows.x64.checked.mch |
36,488 |
3 |
36,485 |
402 (1.09%) |
402 (1.09%) |
smoke_tests.nativeaot.windows.x64.checked.mch |
32,409 |
11 |
32,398 |
3 (0.01%) |
3 (0.01%) |
|
2,366,385 |
928,740 |
1,437,645 |
6,816 (0.29%) |
6,816 (0.29%) |
jit-analyze output
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: 8536477 (overridden on cmd)
Total bytes of diff: 8536479 (overridden on cmd)
Total bytes of delta: 2 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
2 : 15566.dasm (1.28 % of base)
1 total files with Code Size differences (0 improved, 1 regressed), 2 unchanged.
Top method regressions (bytes):
2 (1.28 % of base) : 15566.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method regressions (percentages):
2 (1.28 % of base) : 15566.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
1 total methods with Code Size differences (0 improved, 1 regressed).
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: 35464350 (overridden on cmd)
Total bytes of diff: 35450850 (overridden on cmd)
Total bytes of delta: -13500 (-0.04 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
69 : 55625.dasm (3.78 % of base)
57 : 4309.dasm (1.49 % of base)
57 : 3558.dasm (1.49 % of base)
45 : 41866.dasm (1.61 % of base)
45 : 33174.dasm (2.16 % of base)
34 : 50220.dasm (1.03 % of base)
30 : 1100.dasm (8.72 % of base)
28 : 89069.dasm (3.45 % of base)
26 : 49186.dasm (1.87 % of base)
23 : 32899.dasm (2.82 % of base)
23 : 33432.dasm (2.72 % of base)
23 : 32950.dasm (2.42 % of base)
23 : 52566.dasm (3.80 % of base)
23 : 5843.dasm (2.72 % of base)
22 : 17767.dasm (4.63 % of base)
22 : 33689.dasm (8.27 % of base)
22 : 7738.dasm (1.76 % of base)
21 : 52042.dasm (1.41 % of base)
21 : 70664.dasm (1.41 % of base)
21 : 61855.dasm (3.41 % of base)
Top file improvements (bytes):
-227 : 58739.dasm (-0.92 % of base)
-225 : 63539.dasm (-3.56 % of base)
-172 : 13518.dasm (-1.58 % of base)
-119 : 20472.dasm (-11.29 % of base)
-117 : 25221.dasm (-10.68 % of base)
-99 : 47431.dasm (-4.56 % of base)
-99 : 47466.dasm (-4.56 % of base)
-83 : 67493.dasm (-1.24 % of base)
-77 : 61633.dasm (-0.69 % of base)
-77 : 66907.dasm (-0.69 % of base)
-69 : 45925.dasm (-3.63 % of base)
-69 : 45934.dasm (-3.63 % of base)
-68 : 51133.dasm (-5.51 % of base)
-66 : 50221.dasm (-5.35 % of base)
-65 : 61466.dasm (-1.38 % of base)
-65 : 65743.dasm (-1.18 % of base)
-64 : 49387.dasm (-7.91 % of base)
-61 : 61822.dasm (-1.10 % of base)
-61 : 67006.dasm (-0.79 % of base)
-60 : 1149.dasm (-2.40 % of base)
81 total files with Code Size differences (43 improved, 38 regressed), 20 unchanged.
Top method regressions (bytes):
69 (3.78 % of base) : 55625.dasm - System.Security.Cryptography.X509Certificates.ChainPal:.cctor() (Tier0)
57 (1.49 % of base) : 4309.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
57 (1.49 % of base) : 3558.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
45 (1.61 % of base) : 41866.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Instrumented Tier0)
45 (2.16 % of base) : 33174.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
34 (1.03 % of base) : 50220.dasm - Neural:read_data_file():this (Instrumented Tier0)
30 (8.72 % of base) : 1100.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Instrumented Tier0)
28 (3.45 % of base) : 89069.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberIndented(System.ReadOnlySpan`1[ushort],long):this (Tier0)
26 (1.87 % of base) : 49186.dasm - NeuralJagged:Init() (Instrumented Tier0)
23 (2.72 % of base) : 33432.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Instrumented Tier0)
23 (2.72 % of base) : 5843.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Instrumented Tier0)
23 (3.80 % of base) : 52566.dasm - System.Text.Json.Utf8JsonWriter:WriteStringValueIndented(System.DateTime):this (Tier0)
23 (2.42 % of base) : 32950.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.__Canon]:WaitToReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[ubyte]:this (Instrumented Tier0)
23 (2.82 % of base) : 32899.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.__Canon]:WaitToReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[ubyte]:this (Tier0)
22 (4.63 % of base) : 17767.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this (Tier0)
22 (8.27 % of base) : 33689.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
22 (1.76 % of base) : 7738.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
21 (3.41 % of base) : 61855.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionOrSourceMemberMethodSymbol:get_IteratorElementTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier0)
21 (1.41 % of base) : 52042.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Instrumented Tier0)
21 (1.41 % of base) : 70664.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Instrumented Tier0)
Top method improvements (bytes):
-227 (-0.92 % of base) : 58739.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
-225 (-3.56 % of base) : 63539.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
-172 (-1.58 % of base) : 13518.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
-119 (-11.29 % of base) : 20472.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
-117 (-10.68 % of base) : 25221.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
-99 (-4.56 % of base) : 47431.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
-99 (-4.56 % of base) : 47466.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
-83 (-1.24 % of base) : 67493.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Instrumented Tier0)
-77 (-0.69 % of base) : 61633.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
-77 (-0.69 % of base) : 66907.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
-69 (-3.63 % of base) : 45925.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
-69 (-3.63 % of base) : 45934.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
-68 (-5.51 % of base) : 51133.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (Tier0)
-66 (-5.35 % of base) : 50221.dasm - Neural:.cctor() (Tier0)
-65 (-1.18 % of base) : 65743.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
-65 (-1.38 % of base) : 61466.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
-64 (-7.91 % of base) : 49387.dasm - MessagePack.MessagePackBinary:WriteBytes(byref,int,ubyte[],int,int):int (Tier0)
-61 (-0.79 % of base) : 67006.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
-61 (-1.10 % of base) : 61822.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
-60 (-2.40 % of base) : 1149.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Instrumented Tier0)
Top method regressions (percentages):
12 (21.43 % of base) : 64215.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 60127.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
15 (20.00 % of base) : 54635.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
9 (16.36 % of base) : 851.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
18 (12.95 % of base) : 20151.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
11 (9.40 % of base) : 58367.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
30 (8.72 % of base) : 1100.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Instrumented Tier0)
22 (8.27 % of base) : 33689.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
11 (7.97 % of base) : 58371.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
6 (7.32 % of base) : 4711.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
11 (7.14 % of base) : 14016.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
3 (6.25 % of base) : 2832.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Instrumented Tier0)
3 (6.25 % of base) : 1386.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
12 (5.97 % of base) : 50344.dasm - System.Tests.Perf_HashCode:Combine_7():int:this (Instrumented Tier0)
6 (5.83 % of base) : 32734.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[int]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
2 (5.56 % of base) : 2687.dasm - System.Buffers.Utilities:SelectBucketIndex(int):int (Instrumented Tier0)
2 (5.56 % of base) : 777.dasm - System.Buffers.Utilities:SelectBucketIndex(int):int (Tier0)
4 (5.56 % of base) : 14824.dasm - System.String:GetHashCode():int:this (Instrumented Tier0)
4 (5.56 % of base) : 1801.dasm - System.String:GetHashCode():int:this (Tier0)
10 (5.52 % of base) : 52503.dasm - PerfLabTests.LowLevelPerf:IntegerFormatting():System.String:this (Instrumented Tier0)
Top method improvements (percentages):
-33 (-17.28 % of base) : 24937.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-24 (-15.38 % of base) : 60693.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
-119 (-11.29 % of base) : 20472.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
-18 (-11.11 % of base) : 81297.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
-33 (-11.00 % of base) : 50079.dasm - System.Half:RoundPackToHalf(ubyte,short,ushort):ushort (Tier0)
-117 (-10.68 % of base) : 25221.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
-12 (-9.84 % of base) : 22947.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsAllBenchmark():ubyte:this (Tier0)
-12 (-9.84 % of base) : 33302.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:EqualityOperatorBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 17151.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAllBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 24941.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 16346.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:InequalityOperatorBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 16937.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:GreaterThanAnyBenchmark():ubyte:this (Tier0)
-12 (-9.68 % of base) : 35490.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAllBenchmark():ubyte:this (Tier0)
-12 (-9.68 % of base) : 39607.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-12 (-9.52 % of base) : 15913.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-12 (-9.52 % of base) : 17321.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-12 (-9.52 % of base) : 17326.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MultiplyBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-12 (-9.52 % of base) : 16594.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
-12 (-9.52 % of base) : 35549.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
-12 (-9.52 % of base) : 16926.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:XorBenchmark():System.Numerics.Vector`1[ushort]:this (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: 12551598 (overridden on cmd)
Total bytes of diff: 12539298 (overridden on cmd)
Total bytes of delta: -12300 (-0.10 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
69 : 35067.dasm (3.78 % of base)
57 : 3956.dasm (1.64 % of base)
45 : 29568.dasm (2.50 % of base)
45 : 21024.dasm (2.16 % of base)
34 : 33050.dasm (1.07 % of base)
30 : 1034.dasm (11.81 % of base)
28 : 50983.dasm (3.45 % of base)
26 : 32812.dasm (1.95 % of base)
23 : 19836.dasm (2.82 % of base)
23 : 34323.dasm (3.80 % of base)
23 : 4850.dasm (3.11 % of base)
22 : 11549.dasm (4.63 % of base)
22 : 25646.dasm (8.27 % of base)
22 : 6561.dasm (7.77 % of base)
22 : 12803.dasm (3.62 % of base)
21 : 34447.dasm (1.63 % of base)
21 : 39961.dasm (3.41 % of base)
20 : 46760.dasm (2.60 % of base)
20 : 13980.dasm (1.91 % of base)
20 : 6268.dasm (0.78 % of base)
Top file improvements (bytes):
-227 : 36769.dasm (-0.92 % of base)
-225 : 41589.dasm (-3.56 % of base)
-172 : 9031.dasm (-1.58 % of base)
-119 : 14148.dasm (-11.29 % of base)
-117 : 18283.dasm (-10.68 % of base)
-96 : 31362.dasm (-4.53 % of base)
-78 : 19590.dasm (-3.13 % of base)
-74 : 16664.dasm (-1.89 % of base)
-73 : 39716.dasm (-0.83 % of base)
-69 : 1083.dasm (-3.34 % of base)
-68 : 33141.dasm (-5.51 % of base)
-66 : 33051.dasm (-5.35 % of base)
-65 : 39548.dasm (-1.38 % of base)
-64 : 32181.dasm (-7.91 % of base)
-61 : 39927.dasm (-1.10 % of base)
-59 : 52353.dasm (-7.55 % of base)
-57 : 14577.dasm (-5.21 % of base)
-55 : 5332.dasm (-2.81 % of base)
-54 : 30162.dasm (-4.02 % of base)
-54 : 29450.dasm (-2.82 % of base)
81 total files with Code Size differences (44 improved, 37 regressed), 20 unchanged.
Top method regressions (bytes):
69 (3.78 % of base) : 35067.dasm - System.Security.Cryptography.X509Certificates.ChainPal:.cctor() (Tier0)
57 (1.64 % of base) : 3956.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier0)
45 (2.50 % of base) : 29568.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Tier0)
45 (2.16 % of base) : 21024.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
34 (1.07 % of base) : 33050.dasm - Neural:read_data_file():this (Tier0)
30 (11.81 % of base) : 1034.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Tier0)
28 (3.45 % of base) : 50983.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberIndented(System.ReadOnlySpan`1[ushort],long):this (Tier0)
26 (1.95 % of base) : 32812.dasm - NeuralJagged:Init() (Tier0)
23 (3.11 % of base) : 4850.dasm - System.Linq.Lookup`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this (Tier0)
23 (3.80 % of base) : 34323.dasm - System.Text.Json.Utf8JsonWriter:WriteStringValueIndented(System.DateTime):this (Tier0)
23 (2.82 % of base) : 19836.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.__Canon]:WaitToReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[ubyte]:this (Tier0)
22 (3.62 % of base) : 12803.dasm - System.Linq.Lookup`2[int,System.__Canon]:GetGrouping(int,ubyte):System.Linq.Grouping`2[int,System.__Canon]:this (Tier0)
22 (4.63 % of base) : 11549.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this (Tier0)
22 (8.27 % of base) : 25646.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
22 (7.77 % of base) : 6561.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1[int]:get_Task():System.Threading.Tasks.ValueTask`1[int]:this (Tier0)
21 (3.41 % of base) : 39961.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionOrSourceMemberMethodSymbol:get_IteratorElementTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier0)
21 (1.63 % of base) : 34447.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier0)
20 (0.78 % of base) : 6268.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
20 (2.60 % of base) : 46760.dasm - System.Text.Json.Utf8JsonWriter:WritePropertyNameIndented(System.ReadOnlySpan`1[ubyte],ubyte):this (Tier0)
20 (1.91 % of base) : 13980.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (Tier0)
Top method improvements (bytes):
-227 (-0.92 % of base) : 36769.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
-225 (-3.56 % of base) : 41589.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
-172 (-1.58 % of base) : 9031.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
-119 (-11.29 % of base) : 14148.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
-117 (-10.68 % of base) : 18283.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
-96 (-4.53 % of base) : 31362.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Tier0)
-78 (-3.13 % of base) : 19590.dasm - System.Text.Json.JsonReaderHelper:TryUnescape(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte (Tier0)
-74 (-1.89 % of base) : 16664.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (Tier0)
-73 (-0.83 % of base) : 39716.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
-69 (-3.34 % of base) : 1083.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier0)
-68 (-5.51 % of base) : 33141.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (Tier0)
-66 (-5.35 % of base) : 33051.dasm - Neural:.cctor() (Tier0)
-65 (-1.38 % of base) : 39548.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
-64 (-7.91 % of base) : 32181.dasm - MessagePack.MessagePackBinary:WriteBytes(byref,int,ubyte[],int,int):int (Tier0)
-61 (-1.10 % of base) : 39927.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
-59 (-7.55 % of base) : 52353.dasm - HardwareIntrinsics.RayTracer.Packet256Tracer:MinIntersections(HardwareIntrinsics.RayTracer.RayPacket256,HardwareIntrinsics.RayTracer.Scene):HardwareIntrinsics.RayTracer.Intersections:this (Tier0)
-57 (-5.21 % of base) : 14577.dasm - System.Text.Json.Tests.Perf_Reader:ReadReturnBytes():ubyte[]:this (Tier0)
-55 (-2.81 % of base) : 5332.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0)
-54 (-2.82 % of base) : 29450.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Tier0)
-54 (-4.02 % of base) : 30162.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0)
Top method regressions (percentages):
12 (21.43 % of base) : 38122.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
15 (20.00 % of base) : 35053.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
9 (16.36 % of base) : 806.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
18 (12.95 % of base) : 16456.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
30 (11.81 % of base) : 1034.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Tier0)
11 (9.40 % of base) : 36429.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
22 (8.27 % of base) : 25646.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
11 (7.97 % of base) : 36433.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
14 (7.78 % of base) : 52788.dasm - PerfLabTests.LowLevelPerf:NewDelegateClassEmptyStaticFn():this (Tier0)
22 (7.77 % of base) : 6561.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1[int]:get_Task():System.Threading.Tasks.ValueTask`1[int]:this (Tier0)
13 (7.60 % of base) : 16455.dasm - System.Xml.Schema.XsdDateTime:WriteXDigits(System.Span`1[ushort],int,int,int) (Tier0)
6 (7.32 % of base) : 11934.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
11 (7.14 % of base) : 7060.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
12 (6.63 % of base) : 34376.dasm - System.Tests.Perf_HashCode:Combine_8():int:this (Tier0)
10 (6.62 % of base) : 33966.dasm - PerfLabTests.LowLevelPerf:IntegerFormatting():System.String:this (Tier0)
13 (6.28 % of base) : 50219.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier0)
3 (6.25 % of base) : 1333.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
8 (6.06 % of base) : 30742.dasm - System.Tests.Perf_HashCode:Combine_4():int:this (Tier0)
6 (5.83 % of base) : 21541.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[int]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
14 (5.69 % of base) : 54306.dasm - System.Tests.Perf_Array:SetupArrayRetrieve1D():this (Tier0)
Top method improvements (percentages):
-33 (-17.28 % of base) : 18417.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-24 (-15.38 % of base) : 38686.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
-119 (-11.29 % of base) : 14148.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
-18 (-11.11 % of base) : 48180.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
-33 (-11.00 % of base) : 33587.dasm - System.Half:RoundPackToHalf(ubyte,short,ushort):ushort (Tier0)
-117 (-10.68 % of base) : 18283.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
-12 (-9.84 % of base) : 19744.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsAllBenchmark():ubyte:this (Tier0)
-12 (-9.84 % of base) : 20899.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:EqualityOperatorBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 13905.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAllBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 19766.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 12949.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:InequalityOperatorBenchmark():ubyte:this (Tier0)
-12 (-9.76 % of base) : 13883.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:GreaterThanAnyBenchmark():ubyte:this (Tier0)
-12 (-9.68 % of base) : 26182.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAllBenchmark():ubyte:this (Tier0)
-12 (-9.68 % of base) : 28300.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAnyBenchmark():ubyte:this (Tier0)
-12 (-9.52 % of base) : 13945.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
-12 (-9.52 % of base) : 27846.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:BitwiseAndBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-12 (-9.52 % of base) : 12947.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
-12 (-9.52 % of base) : 12942.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MultiplyBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
-12 (-9.52 % of base) : 9375.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
-12 (-9.52 % of base) : 13881.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:XorBenchmark():System.Numerics.Vector`1[ushort]:this (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: 392239828 (overridden on cmd)
Total bytes of diff: 392379214 (overridden on cmd)
Total bytes of delta: 139386 (0.04 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
3477 : 184104.dasm (11.44 % of base)
3477 : 184100.dasm (11.44 % of base)
1294 : 309953.dasm (3.07 % of base)
1278 : 3218.dasm (2.85 % of base)
1248 : 487726.dasm (6.98 % of base)
1183 : 309960.dasm (2.86 % of base)
967 : 309929.dasm (2.34 % of base)
964 : 309864.dasm (2.37 % of base)
964 : 3168.dasm (2.21 % of base)
963 : 3196.dasm (2.19 % of base)
938 : 309642.dasm (1.88 % of base)
938 : 309660.dasm (1.88 % of base)
938 : 2845.dasm (1.84 % of base)
935 : 309656.dasm (1.87 % of base)
935 : 309636.dasm (1.87 % of base)
935 : 309644.dasm (1.87 % of base)
935 : 309648.dasm (1.87 % of base)
935 : 309640.dasm (1.87 % of base)
935 : 309652.dasm (1.87 % of base)
935 : 309664.dasm (1.87 % of base)
Top file improvements (bytes):
-811 : 217008.dasm (-6.83 % of base)
-810 : 216994.dasm (-6.75 % of base)
-810 : 222536.dasm (-6.80 % of base)
-808 : 216975.dasm (-6.89 % of base)
-808 : 216998.dasm (-6.79 % of base)
-808 : 216983.dasm (-6.87 % of base)
-806 : 472700.dasm (-6.89 % of base)
-806 : 472705.dasm (-6.87 % of base)
-806 : 472709.dasm (-6.75 % of base)
-806 : 472711.dasm (-6.78 % of base)
-806 : 472715.dasm (-6.84 % of base)
-806 : 474411.dasm (-6.79 % of base)
-785 : 217003.dasm (-6.42 % of base)
-774 : 472713.dasm (-6.34 % of base)
-718 : 216988.dasm (-5.95 % of base)
-710 : 472707.dasm (-5.88 % of base)
-537 : 227996.dasm (-4.42 % of base)
-511 : 396307.dasm (-1.64 % of base)
-284 : 284973.dasm (-2.27 % of base)
-284 : 284985.dasm (-2.63 % of base)
85 total files with Code Size differences (40 improved, 45 regressed), 20 unchanged.
Top method regressions (bytes):
3477 (11.44 % of base) : 184104.dasm - <Module>:f():int (MinOpts)
3477 (11.44 % of base) : 184100.dasm - <Module>:f():int (MinOpts)
1294 (3.07 % of base) : 309953.dasm - lclfldsub:TestEntryPoint():int (Tier0)
1278 (2.85 % of base) : 3218.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
1248 (6.98 % of base) : 487726.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
1183 (2.86 % of base) : 309960.dasm - lclfldsub:TestEntryPoint():int (Tier0)
967 (2.34 % of base) : 309929.dasm - lclfldmul:TestEntryPoint():int (Tier0)
964 (2.21 % of base) : 3168.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
964 (2.37 % of base) : 309864.dasm - lclfldadd:TestEntryPoint():int (Tier0)
963 (2.19 % of base) : 3196.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
938 (1.84 % of base) : 2845.dasm - Program:TestCase0011() (MinOpts)
938 (1.88 % of base) : 309642.dasm - Program:TestCase0011() (Tier0)
938 (1.88 % of base) : 309660.dasm - Program:TestCase0011() (Tier0)
935 (1.87 % of base) : 309652.dasm - Program:TestCase0001() (Tier0)
935 (1.87 % of base) : 309636.dasm - Program:TestCase0003() (Tier0)
935 (1.87 % of base) : 309656.dasm - Program:TestCase0005() (Tier0)
935 (1.87 % of base) : 309640.dasm - Program:TestCase0007() (Tier0)
935 (1.87 % of base) : 309644.dasm - Program:TestCase0013() (Tier0)
935 (1.87 % of base) : 309664.dasm - Program:TestCase0015() (Tier0)
935 (1.87 % of base) : 309648.dasm - Program:TestCase0017() (Tier0)
Top method improvements (bytes):
-811 (-6.83 % of base) : 217008.dasm - JitTest_huge_u8_huge_il.Test:Main():int (MinOpts)
-810 (-6.75 % of base) : 216994.dasm - JitTest_huge_r4_huge_il.Test:Main():int (MinOpts)
-810 (-6.80 % of base) : 222536.dasm - JitTest_hugedim_arrays_il.Test:Main():int (MinOpts)
-808 (-6.89 % of base) : 216975.dasm - JitTest_huge_b_huge_il.Test:Main():int (MinOpts)
-808 (-6.87 % of base) : 216983.dasm - JitTest_huge_i4_huge_il.Test:Main():int (MinOpts)
-808 (-6.79 % of base) : 216998.dasm - JitTest_huge_r8_huge_il.Test:Main():int (MinOpts)
-806 (-6.89 % of base) : 472700.dasm - JitTest_huge_b_huge_il.Test:Main():int (Instrumented Tier0)
-806 (-6.87 % of base) : 472705.dasm - JitTest_huge_i4_huge_il.Test:Main():int (Instrumented Tier0)
-806 (-6.75 % of base) : 472709.dasm - JitTest_huge_r4_huge_il.Test:Main():int (Instrumented Tier0)
-806 (-6.78 % of base) : 472711.dasm - JitTest_huge_r8_huge_il.Test:Main():int (Instrumented Tier0)
-806 (-6.84 % of base) : 472715.dasm - JitTest_huge_u8_huge_il.Test:Main():int (Instrumented Tier0)
-806 (-6.79 % of base) : 474411.dasm - JitTest_hugedim_arrays_il.Test:Main():int (Instrumented Tier0)
-785 (-6.42 % of base) : 217003.dasm - JitTest_huge_struct_huge_il.Test:Main():int (MinOpts)
-774 (-6.34 % of base) : 472713.dasm - JitTest_huge_struct_huge_il.Test:Main():int (Instrumented Tier0)
-718 (-5.95 % of base) : 216988.dasm - JitTest_huge_objref_huge_il.Test:Main():int (MinOpts)
-710 (-5.88 % of base) : 472707.dasm - JitTest_huge_objref_huge_il.Test:Main():int (Instrumented Tier0)
-537 (-4.42 % of base) : 227996.dasm - JitTest_huge_struct_Arrays_il.Test:Main():int (MinOpts)
-511 (-1.64 % of base) : 396307.dasm - IntelHardwareIntrinsicTest._Avx2.Program+GatherMaskVector256:Test() (Instrumented Tier0)
-284 (-2.27 % of base) : 284973.dasm - HFATest.TestCase:TestEntryPoint():int (MinOpts)
-284 (-2.63 % of base) : 284985.dasm - HFATest.TestCase:TestEntryPoint():int (MinOpts)
Top method regressions (percentages):
12 (44.44 % of base) : 425520.dasm - ModConst:I4_Mod_0(int):int (Tier0)
14 (43.75 % of base) : 490962.dasm - Test_GitHub_22556:Add(Test_GitHub_22556,int):int (Tier0)
14 (43.75 % of base) : 491095.dasm - Test_GitHub_27027:Run(Test_GitHub_27027,int):int (Tier0)
14 (42.42 % of base) : 425534.dasm - ModConst:I8_Mod_0(long):long (Tier0)
12 (21.43 % of base) : 442896.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
12 (19.05 % of base) : 486953.dasm - Runtime_75832:Test(int) (Tier0)
9 (17.65 % of base) : 480499.dasm - System.Collections.Concurrent.ConcurrentDictionaryTypeProps`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:.cctor() (Tier0)
12 (17.39 % of base) : 558315.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
12 (17.39 % of base) : 543447.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
9 (16.36 % of base) : 557113.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
20 (15.62 % of base) : 462906.dasm - TestApp:test_2_3(double):double (Tier0)
20 (15.62 % of base) : 462979.dasm - TestApp:test_2_3(float):float (Tier0)
20 (15.38 % of base) : 462631.dasm - TestApp:test_2_3(double):double (Tier0)
20 (15.38 % of base) : 495193.dasm - TestApp:test_2_3(double):double (Tier0)
20 (15.38 % of base) : 462719.dasm - TestApp:test_2_3(float):float (Tier0)
9 (13.64 % of base) : 437649.dasm - Program:TestRet2():ubyte (Tier0)
9 (13.04 % of base) : 437639.dasm - Program:TestCond3() (Tier0)
18 (12.95 % of base) : 450351.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
104 (12.43 % of base) : 573250.dasm - Sensor:ValueMess1() (Tier0)
23 (11.73 % of base) : 493317.dasm - ILGEN_0x64f58bd0:Method_0x1bb0(int,ulong,float,uint,uint):int (Tier0)
Top method improvements (percentages):
-24 (-15.38 % of base) : 443459.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
-27 (-12.68 % of base) : 491292.dasm - Performance_2700:TestEntryPoint():int (Tier0)
-20 (-12.58 % of base) : 338336.dasm - CompareVectorWithZero:TestEqualityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
-20 (-12.42 % of base) : 338361.dasm - CompareVectorWithZero:TestInequalityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
-14 (-12.07 % of base) : 197485.dasm - (dynamicClass):ABIStress_TailCaller789(ABIStress.S2U,ABIStress.S2P,ABIStress.S4U,int,ABIStress.S2U,ABIStress.S4P,short,ABIStress.S2U,double,long):int (MinOpts)
-54 (-11.95 % of base) : 403442.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractDouble:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403439.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractDouble:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403510.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplySubtractAddDouble:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403374.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddDouble:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403371.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddDouble:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403405.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedDouble:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403425.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedSingle:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403422.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedSingle:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403391.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddSingle:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403473.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractDouble:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403541.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedDouble:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403561.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedSingle:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403558.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedSingle:RunBasicScenario_UnsafeRead():this (Tier0)
-54 (-11.95 % of base) : 403493.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractSingle:RunBasicScenario_Load():this (Tier0)
-54 (-11.95 % of base) : 403490.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractSingle:RunBasicScenario_UnsafeRead():this (Tier0)
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: 39446742 (overridden on cmd)
Total bytes of diff: 39446740 (overridden on cmd)
Total bytes of delta: -2 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
2 : 148392.dasm (1.28 % of base)
Top file improvements (bytes):
-2 : 15396.dasm (-1.79 % of base)
-2 : 15401.dasm (-1.79 % of base)
3 total files with Code Size differences (2 improved, 1 regressed), 5 unchanged.
Top method regressions (bytes):
2 (1.28 % of base) : 148392.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (bytes):
-2 (-1.79 % of base) : 15396.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
-2 (-1.79 % of base) : 15401.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
Top method regressions (percentages):
2 (1.28 % of base) : 148392.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method improvements (percentages):
-2 (-1.79 % of base) : 15396.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
-2 (-1.79 % of base) : 15401.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
3 total methods with Code Size differences (2 improved, 1 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: 60117403 (overridden on cmd)
Total bytes of diff: 60117405 (overridden on cmd)
Total bytes of delta: 2 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
2 : 241273.dasm (1.28 % of base)
1 total files with Code Size differences (0 improved, 1 regressed), 1 unchanged.
Top method regressions (bytes):
2 (1.28 % of base) : 241273.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
Top method regressions (percentages):
2 (1.28 % of base) : 241273.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
1 total methods with Code Size differences (0 improved, 1 regressed).
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: 276943385 (overridden on cmd)
Total bytes of diff: 276780275 (overridden on cmd)
Total bytes of delta: -163110 (-0.06 % of base)
diff is an improvement.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
3397 : 464033.dasm (1.49 % of base)
3397 : 464888.dasm (1.44 % of base)
1248 : 416070.dasm (6.98 % of base)
558 : 72832.dasm (0.92 % of base)
520 : 416654.dasm (4.14 % of base)
504 : 248870.dasm (1.66 % of base)
297 : 348600.dasm (3.64 % of base)
276 : 108667.dasm (1.77 % of base)
276 : 110075.dasm (1.77 % of base)
276 : 110694.dasm (1.77 % of base)
276 : 110004.dasm (1.77 % of base)
276 : 108560.dasm (1.77 % of base)
276 : 110432.dasm (1.77 % of base)
222 : 460194.dasm (3.63 % of base)
194 : 460214.dasm (3.52 % of base)
183 : 67560.dasm (3.42 % of base)
183 : 382154.dasm (2.74 % of base)
183 : 349404.dasm (3.42 % of base)
183 : 359062.dasm (2.74 % of base)
154 : 463082.dasm (2.95 % of base)
Top file improvements (bytes):
-4365 : 174278.dasm (-1.17 % of base)
-1699 : 640470.dasm (-0.54 % of base)
-1582 : 437821.dasm (-1.19 % of base)
-908 : 458591.dasm (-0.96 % of base)
-908 : 480100.dasm (-0.96 % of base)
-806 : 174589.dasm (-0.66 % of base)
-788 : 174416.dasm (-0.66 % of base)
-788 : 174791.dasm (-0.66 % of base)
-701 : 478740.dasm (-1.27 % of base)
-701 : 458950.dasm (-1.27 % of base)
-686 : 459314.dasm (-1.30 % of base)
-686 : 479418.dasm (-1.30 % of base)
-655 : 488580.dasm (-1.18 % of base)
-655 : 457532.dasm (-1.18 % of base)
-639 : 174687.dasm (-0.65 % of base)
-592 : 485576.dasm (-1.01 % of base)
-592 : 458897.dasm (-1.05 % of base)
-592 : 478513.dasm (-1.05 % of base)
-558 : 261113.dasm (-1.19 % of base)
-541 : 635210.dasm (-0.56 % of base)
82 total files with Code Size differences (42 improved, 40 regressed), 20 unchanged.
Top method regressions (bytes):
3397 (1.44 % of base) : 464888.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Instrumented Tier0)
3397 (1.49 % of base) : 464033.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0)
1248 (6.98 % of base) : 416070.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
558 (0.92 % of base) : 72832.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (Tier0)
520 (4.14 % of base) : 416654.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Instrumented Tier0)
504 (1.66 % of base) : 248870.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (Tier0)
297 (3.64 % of base) : 348600.dasm - System.Net.Http.QPack.H3StaticTable:.cctor() (Tier0)
276 (1.77 % of base) : 108667.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 110075.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 110694.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 110004.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 108560.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
276 (1.77 % of base) : 110432.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
222 (3.63 % of base) : 460194.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
194 (3.52 % of base) : 460214.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
183 (3.42 % of base) : 67560.dasm - System.Net.Http.HPack.H2StaticTable:.cctor() (Tier0)
183 (3.42 % of base) : 349404.dasm - System.Net.Http.HPack.H2StaticTable:.cctor() (Tier0)
183 (2.74 % of base) : 382154.dasm - System.Net.Test.Common.Http2LoopbackConnection:.cctor() (Tier0)
183 (2.74 % of base) : 359062.dasm - System.Net.Test.Common.Http2LoopbackConnection:.cctor() (Tier0)
154 (2.95 % of base) : 463082.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
Top method improvements (bytes):
-4365 (-1.17 % of base) : 174278.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<Compare_Primitives_TestData>d__139:MoveNext():ubyte:this (Tier0)
-1699 (-0.54 % of base) : 640470.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-1582 (-1.19 % of base) : 437821.dasm - System.Reflection.Emit.Tests.OpCodesTests+<TestData>d__0:MoveNext():ubyte:this (Tier0)
-908 (-0.96 % of base) : 458591.dasm - System.Tests.UriCreateStringTests+<Scheme_Authority_TestData>d__4:MoveNext():ubyte:this (Tier0)
-908 (-0.96 % of base) : 480100.dasm - System.Tests.UriCreateStringTests+<Scheme_Authority_TestData>d__4:MoveNext():ubyte:this (Tier0)
-806 (-0.66 % of base) : 174589.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<OrObject_TestData>d__90:MoveNext():ubyte:this (Tier0)
-788 (-0.66 % of base) : 174416.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<AndObject_TestData>d__13:MoveNext():ubyte:this (Tier0)
-788 (-0.66 % of base) : 174791.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<XorObject_TestData>d__116:MoveNext():ubyte:this (Tier0)
-701 (-1.27 % of base) : 478740.dasm - System.Tests.ArrayTests+<IndexOf_SZArray_TestData>d__119:MoveNext():ubyte:this (Tier0)
-701 (-1.27 % of base) : 458950.dasm - System.Tests.ArrayTests+<IndexOf_SZArray_TestData>d__119:MoveNext():ubyte:this (Tier0)
-686 (-1.30 % of base) : 459314.dasm - System.Tests.ArrayTests+<LastIndexOf_SZArray_TestData>d__128:MoveNext():ubyte:this (Tier0)
-686 (-1.30 % of base) : 479418.dasm - System.Tests.ArrayTests+<LastIndexOf_SZArray_TestData>d__128:MoveNext():ubyte:this (Tier0)
-655 (-1.18 % of base) : 457532.dasm - System.Tests.StringTests+<Compare_TestData>d__128:MoveNext():ubyte:this (Tier0)
-655 (-1.18 % of base) : 488580.dasm - System.Tests.StringTests+<Compare_TestData>d__27:MoveNext():ubyte:this (Tier0)
-639 (-0.65 % of base) : 174687.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<ModObject_TestData>d__67:MoveNext():ubyte:this (Tier0)
-592 (-1.01 % of base) : 485576.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (Instrumented Tier0)
-592 (-1.05 % of base) : 458897.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (Tier0)
-592 (-1.05 % of base) : 478513.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (Tier0)
-558 (-1.19 % of base) : 261113.dasm - System.Drawing.Primitives.Tests.ColorTests:.cctor() (Tier0)
-541 (-0.56 % of base) : 635210.dasm - System.Text.RegularExpressions.Tests.RegexRustTests+<MatchStartAndEndPositions_MemberData_Cases>d__1:MoveNext():ubyte:this (Instrumented Tier0)
Top method regressions (percentages):
12 (21.43 % of base) : 141609.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 31307.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
12 (21.43 % of base) : 134095.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
12 (21.43 % of base) : 146943.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
12 (21.43 % of base) : 11412.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
12 (20.34 % of base) : 648775.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,int]:.cctor() (Tier0)
15 (20.00 % of base) : 566000.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Instrumented Tier0)
15 (20.00 % of base) : 201723.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
9 (19.15 % of base) : 185942.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionEnumerator_Abstract`2[int,System.__Canon]:.cctor() (Tier0)
12 (18.46 % of base) : 73656.dasm - Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
9 (17.65 % of base) : 12152.dasm - System.Collections.Concurrent.ConcurrentDictionaryTypeProps`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:.cctor() (Tier0)
12 (17.39 % of base) : 648685.dasm - System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
9 (16.36 % of base) : 2858.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
19 (16.10 % of base) : 145570.dasm - Microsoft.CodeAnalysis.Collections.Internal.SegmentedArrayHelper+ValueTypeSegmentHelper`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,Roslyn.Utilities.VoidResult]]:.cctor() (Tier0)
18 (12.95 % of base) : 405780.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Instrumented Tier0)
18 (12.95 % of base) : 179715.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
10 (10.42 % of base) : 17037.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+LazySubstitutedType:GetResolvedAnnotation(ubyte):ubyte:this (Tier0)
10 (9.80 % of base) : 661871.dasm - System.Threading.Tests.BarrierTests+<>c__DisplayClass18_0:<RunBarrierTest7a>b__1(System.Object):this (Tier0)
11 (9.73 % of base) : 127390.dasm - Microsoft.Extensions.Hosting.Internal.HostTests+<>c__DisplayClass51_0:<RegisterCallbacksThatThrow>b__0(System.Object):this (Tier0)
11 (9.40 % of base) : 9616.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
Top method improvements (percentages):
-27 (-15.98 % of base) : 38374.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
-27 (-15.98 % of base) : 13315.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
-27 (-15.98 % of base) : 38375.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
-27 (-15.98 % of base) : 13316.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier0)
-25 (-12.69 % of base) : 111387.dasm - DryIoc.Setup+WrapperSetup:.ctor(int,ubyte,System.Func`2[System.Type,System.Type],System.Func`2[DryIoc.Request,ubyte],ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,int):this (Tier0)
-26 (-12.38 % of base) : 238311.dasm - System.Data.SqlTypes.SqlGuid:.ctor(int,short,short,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier0)
-58 (-12.18 % of base) : 601377.dasm - System.Text.RegularExpressions.Match:BalanceMatch(int):this (Tier0)
-18 (-12.00 % of base) : 232516.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Instrumented Tier0)
-18 (-12.00 % of base) : 232324.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Tier0)
-117 (-11.45 % of base) : 548985.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
-117 (-10.68 % of base) : 130108.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
-13 (-10.57 % of base) : 142726.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
-13 (-10.57 % of base) : 135077.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Tier0)
-13 (-10.57 % of base) : 146712.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Tier0)
-58 (-10.41 % of base) : 485841.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,ubyte[],System.Guid) (Tier0)
-28 (-10.33 % of base) : 78295.dasm - System.Security.Cryptography.X509Certificates.CertificatePal:GetIssuerOrSubject(ubyte,ubyte):System.String:this (Tier0)
-12 (-10.26 % of base) : 385473.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (Tier0)
-12 (-10.26 % of base) : 393259.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (Tier0)
-12 (-10.26 % of base) : 387618.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (Instrumented Tier0)
-12 (-10.26 % of base) : 394030.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (Instrumented 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: 135762558 (overridden on cmd)
Total bytes of diff: 135749920 (overridden on cmd)
Total bytes of delta: -12638 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
3397 : 204673.dasm (1.49 % of base)
44 : 13054.dasm (1.21 % of base)
8 : 306480.dasm (0.18 % of base)
6 : 294075.dasm (0.09 % of base)
5 : 2254.dasm (0.13 % of base)
5 : 292821.dasm (0.52 % of base)
5 : 292826.dasm (0.52 % of base)
5 : 294129.dasm (0.47 % of base)
4 : 303493.dasm (0.31 % of base)
4 : 303496.dasm (0.30 % of base)
4 : 303499.dasm (0.30 % of base)
4 : 306428.dasm (0.59 % of base)
4 : 12197.dasm (0.24 % of base)
3 : 306213.dasm (0.67 % of base)
3 : 306352.dasm (0.68 % of base)
3 : 306452.dasm (0.67 % of base)
3 : 306493.dasm (0.67 % of base)
3 : 306497.dasm (0.67 % of base)
3 : 64852.dasm (0.11 % of base)
3 : 306188.dasm (0.67 % of base)
Top file improvements (bytes):
-4365 : 61294.dasm (-1.17 % of base)
-1699 : 296928.dasm (-0.52 % of base)
-454 : 292406.dasm (-0.31 % of base)
-329 : 63865.dasm (-1.12 % of base)
-328 : 291555.dasm (-0.27 % of base)
-203 : 284962.dasm (-2.18 % of base)
-203 : 284971.dasm (-2.17 % of base)
-114 : 296925.dasm (-0.06 % of base)
-38 : 64469.dasm (-4.69 % of base)
-28 : 63939.dasm (-1.89 % of base)
-23 : 12921.dasm (-0.22 % of base)
-22 : 284959.dasm (-1.91 % of base)
-22 : 284956.dasm (-1.99 % of base)
-18 : 13229.dasm (-0.11 % of base)
-15 : 13055.dasm (-1.10 % of base)
-15 : 4585.dasm (-0.46 % of base)
-15 : 3624.dasm (-0.27 % of base)
-15 : 13212.dasm (-0.11 % of base)
-14 : 3497.dasm (-0.07 % of base)
-14 : 2556.dasm (-0.50 % of base)
69 total files with Code Size differences (37 improved, 32 regressed), 20 unchanged.
Top method regressions (bytes):
3397 (1.49 % of base) : 204673.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
44 (1.21 % of base) : 13054.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
8 (0.18 % of base) : 306480.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get72_67+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
6 (0.09 % of base) : 294075.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get169_25+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
5 (0.13 % of base) : 2254.dasm - Microsoft.CodeAnalysis.Testing.SolutionState:WithProcessedMarkup(int,Microsoft.CodeAnalysis.DiagnosticDescriptor,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DiagnosticDescriptor],System.Collections.Immutable.ImmutableArray`1[System.String],System.String):Microsoft.CodeAnalysis.Testing.SolutionState:this (MinOpts)
5 (0.47 % of base) : 294129.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get235_42+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
5 (0.52 % of base) : 292821.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get530_386+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
5 (0.52 % of base) : 292826.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get531_387+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
4 (0.24 % of base) : 12197.dasm - Microsoft.CodeAnalysis.Testing.DiagnosticResult:ToString():System.String:this (MinOpts)
4 (0.59 % of base) : 306428.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get60_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
4 (0.31 % of base) : 303493.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get921_533+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
4 (0.30 % of base) : 303496.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get922_534+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
4 (0.30 % of base) : 303499.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get923_535+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
3 (0.11 % of base) : 64852.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read105_TypeWithFieldsOrdered(ubyte,ubyte):SerializationTypes.TypeWithFieldsOrdered:this (MinOpts)
3 (0.08 % of base) : 64684.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read32_DefaultValuesSetToNaN(ubyte,ubyte):DefaultValuesSetToNaN:this (MinOpts)
3 (0.30 % of base) : 306444.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get64_59+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
3 (0.68 % of base) : 306352.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_41569EDFFAF99217ED44AE8131C3ECED092758A14BF36968256C256BDC0CF2C1(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.73 % of base) : 292969.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_44AB8176580C296BA200A14D8FDB0F04713003D5378F8A2ADB81DA50F127E332(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.73 % of base) : 292965.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_510286B569F1420FDED9B941BD0A7390FA7316DE4E721E88EA108AB0AA778285(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306188.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_6C2382645B03C0266EB5677959E9219427EE8EA79AC0E1BCFCB694541C1E2E1B(System.ReadOnlySpan`1[ushort]):int (MinOpts)
Top method improvements (bytes):
-4365 (-1.17 % of base) : 61294.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<Compare_Primitives_TestData>d__139:MoveNext():ubyte:this (Tier0-MinOpts)
-1699 (-0.52 % of base) : 296928.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-454 (-0.31 % of base) : 292406.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2764_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
-329 (-1.12 % of base) : 63865.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write1_Object(System.String,System.String,System.Object,ubyte,ubyte):this (MinOpts)
-328 (-0.27 % of base) : 291555.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2756_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
-203 (-2.18 % of base) : 284962.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-203 (-2.17 % of base) : 284971.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-114 (-0.06 % of base) : 296925.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get2209_920+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-38 (-4.69 % of base) : 64469.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write105_Item(System.String,System.String,SerializationTypes.NamespaceTypeNameClashContainer,ubyte,ubyte):this (MinOpts)
-28 (-1.89 % of base) : 63939.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write45_TypeWithGetSetArrayMembers(System.String,System.String,SerializationTypes.TypeWithGetSetArrayMembers,ubyte,ubyte):this (MinOpts)
-23 (-0.22 % of base) : 12921.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:VerifyDiagnosticResults(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Testing.DiagnosticResult[],Microsoft.CodeAnalysis.Testing.IVerifier):this (MinOpts)
-22 (-1.91 % of base) : 284959.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-22 (-1.99 % of base) : 284956.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-18 (-0.11 % of base) : 13229.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1+<FixAllAnalyerDiagnosticsInScopeAsync>d__54[System.__Canon]:MoveNext():this (MinOpts)
-15 (-1.10 % of base) : 13055.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:<FormatDiagnostics>g__AppendLocation|77_0(Microsoft.CodeAnalysis.Testing.DiagnosticLocation,byref) (MinOpts)
-15 (-0.46 % of base) : 4585.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1+<ApplySourceGeneratorsAsync>d__86[System.__Canon]:MoveNext():this (MinOpts)
-15 (-0.27 % of base) : 3624.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1+<VerifySourceGeneratorAsync>d__68[System.__Canon]:MoveNext():this (MinOpts)
-15 (-0.11 % of base) : 13212.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1+<VerifyProjectAsync>d__49[System.__Canon]:MoveNext():this (MinOpts)
-14 (-0.50 % of base) : 2556.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1+<CreateSolutionAsync>d__97[System.__Canon]:MoveNext():this (MinOpts)
-14 (-0.07 % of base) : 3497.dasm - Microsoft.CodeAnalysis.Testing.ReferenceAssemblies+<ResolveCoreAsync>d__50:MoveNext():this (MinOpts)
Top method regressions (percentages):
3397 (1.49 % of base) : 204673.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
2 (1.28 % of base) : 230240.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
44 (1.21 % of base) : 13054.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
2 (0.85 % of base) : 178903.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
3 (0.73 % of base) : 292969.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_44AB8176580C296BA200A14D8FDB0F04713003D5378F8A2ADB81DA50F127E332(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.73 % of base) : 292965.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_510286B569F1420FDED9B941BD0A7390FA7316DE4E721E88EA108AB0AA778285(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.73 % of base) : 292984.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_6E677458999733E5407B5E2317F2B97D87DCAC6EB7CF241D33C03715C60C9875(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.68 % of base) : 306352.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_41569EDFFAF99217ED44AE8131C3ECED092758A14BF36968256C256BDC0CF2C1(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306188.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_6C2382645B03C0266EB5677959E9219427EE8EA79AC0E1BCFCB694541C1E2E1B(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306452.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_79A16370126EBEFD87DBE2244764B0E38D2C7754F3581DAD1A1BB687A87C1CB6(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306497.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_7A8B1C80CDE99D1CBB08D0F471A0F6791ABC9388B5900F1C6B8FA2DEF069760A(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306509.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_840A3E17C0E58C8CEECB87C05AF4EF76C9DB97ACC0B60AD5080F0A2AC35F27E6(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306493.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_9A03B6493A89E517F561393B12E56768B82CCD82506C0BA7304B78E8CAA6B91D(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 306213.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_9BE2A45CE17C9DF3CA7BF217C7D3B3773708E111D804991F112248FA5E0A7CAD(System.ReadOnlySpan`1[ushort]):int (MinOpts)
3 (0.67 % of base) : 295918.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_FD50A1F4B278307219A272B753E627D736BC6ED5306B6F44F648758A381A6773(System.ReadOnlySpan`1[ushort]):int (MinOpts)
2 (0.59 % of base) : 303231.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get787_443+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
2 (0.59 % of base) : 303516.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get928_540+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
4 (0.59 % of base) : 306428.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get60_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
2 (0.58 % of base) : 284890.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
5 (0.52 % of base) : 292821.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get530_386+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
Top method improvements (percentages):
-38 (-4.69 % of base) : 64469.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write105_Item(System.String,System.String,SerializationTypes.NamespaceTypeNameClashContainer,ubyte,ubyte):this (MinOpts)
-5 (-2.35 % of base) : 64834.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
-7 (-2.33 % of base) : 284014.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get57_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.31 % of base) : 284945.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-8 (-2.25 % of base) : 294510.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get473_159+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-8 (-2.19 % of base) : 302280.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get195_130+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-8 (-2.19 % of base) : 295030.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get797_322+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-203 (-2.18 % of base) : 284962.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-203 (-2.17 % of base) : 284971.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.10 % of base) : 299476.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get155_132+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.10 % of base) : 294332.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get360_104+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.10 % of base) : 302907.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get613_334+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-7 (-2.10 % of base) : 293340.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get768_540+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-11 (-2.09 % of base) : 284961.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-3 (-2.08 % of base) : 16303.dasm - Microsoft.CodeAnalysis.Testing.ProjectCollection:get_Item(System.String):Microsoft.CodeAnalysis.Testing.ProjectState:this (MinOpts)
-4 (-2.01 % of base) : 64780.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write169_Item(System.Object):this (MinOpts)
-4 (-2.01 % of base) : 63862.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write183_AttributeTesting(System.Object):this (MinOpts)
-6 (-2.00 % of base) : 285009.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-6 (-2.00 % of base) : 285413.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
-6 (-2.00 % of base) : 285429.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
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: 13729153 (overridden on cmd)
Total bytes of diff: 13729159 (overridden on cmd)
Total bytes of delta: 6 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
6 : 4521.dasm (0.00 % of base)
1 total files with Code Size differences (0 improved, 1 regressed), 2 unchanged.
Top method regressions (bytes):
6 (0.00 % of base) : 4521.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
Top method regressions (percentages):
6 (0.00 % of base) : 4521.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
1 total methods with Code Size differences (0 improved, 1 regressed).
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: 5087013 (overridden on cmd)
Total bytes of diff: 5087013 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 3 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).