Assembly Diffs

linux arm64

Diffs are based on 2,554,585 contexts (1,019,526 MinOpts, 1,535,059 FullOpts).

MISSED contexts: 172 (0.01%)

Overall (+0 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.arm64.Release.mch 381,315,748 +0 0.00%

FullOpts (+0 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.arm64.Release.mch 165,778,652 +0 0.00%

Example diffs

libraries_tests.run.linux.arm64.Release.mch

+0 (0.00%) : 531871.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

@@ -244,17 +244,17 @@ ; V232 tmp225 [V232,T203] ( 2, 0 ) ref -> x1 "argument with side effect" ; V233 tmp226 [V233,T22] ( 3, 1501.82) ref -> x0 "argument with side effect" ; V234 tmp227 [V234,T204] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V235 tmp228 [V235,T135] ( 3, 19.40) ref -> x0 "arr expr" -; V236 tmp229 [V236,T136] ( 3, 19.40) int -> x1 "index expr" -; V237 tmp230 [V237,T205] ( 2, 0 ) ref -> x1 "argument with side effect" -; V238 tmp231 [V238,T113] ( 3, 54.33) ref -> x0 "argument with side effect" -; V239 tmp232 [V239,T114] ( 3, 54.33) ref -> x0 "argument with side effect" -; V240 tmp233 [V240,T115] ( 3, 54.33) ref -> x0 "argument with side effect" -; V241 tmp234 [V241,T116] ( 3, 54.33) ref -> x0 "argument with side effect" -; V242 tmp235 [V242,T117] ( 3, 54.33) ref -> x14 "arr expr" -; V243 tmp236 [V243,T118] ( 3, 54.33) int -> x15 "index expr" -; V244 tmp237 [V244,T206] ( 2, 0 ) ref -> x1 "argument with side effect" -; V245 tmp238 [V245,T207] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V235 tmp228 [V235,T113] ( 3, 54.33) ref -> x0 "argument with side effect" +; V236 tmp229 [V236,T114] ( 3, 54.33) ref -> x0 "argument with side effect" +; V237 tmp230 [V237,T115] ( 3, 54.33) ref -> x0 "argument with side effect" +; V238 tmp231 [V238,T116] ( 3, 54.33) ref -> x0 "argument with side effect" +; V239 tmp232 [V239,T117] ( 3, 54.33) ref -> x14 "arr expr" +; V240 tmp233 [V240,T118] ( 3, 54.33) int -> x15 "index expr" +; V241 tmp234 [V241,T205] ( 2, 0 ) ref -> x1 "argument with side effect" +; V242 tmp235 [V242,T206] ( 2, 0 ) ref -> x1 "argument with side effect" +; V243 tmp236 [V243,T207] ( 2, 0 ) ref -> x1 "argument with side effect" +; V244 tmp237 [V244,T135] ( 3, 19.40) ref -> x0 "arr expr" +; V245 tmp238 [V245,T136] ( 3, 19.40) int -> x1 "index expr"
; V246 tmp239 [V246,T37] ( 3, 844.30) ref -> x0 "argument with side effect" ; V247 tmp240 [V247,T43] ( 3, 609.77) ref -> x0 "arr expr" ; V248 tmp241 [V248,T44] ( 3, 609.77) int -> x1 "index expr" @@ -362,7 +362,7 @@ G_M51225_IG06: ; bbWeight=551.20, gcrefRegs=80000 {x19}, byrefRegs=0000 { G_M51225_IG07: ; bbWeight=250.30, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz sub w0, w0, #1 cmp w0, #6
- bhi G_M51225_IG165
+ bhi G_M51225_IG96
ldr x0, [x19, #0x48] ; gcrRegs +[x0] ldr x1, [x0] @@ -374,7 +374,7 @@ G_M51225_IG07: ; bbWeight=250.30, gcrefRegs=80000 {x19}, byrefRegs=0000 { ;; size=40 bbWeight=250.30 PerfScore 2753.34 G_M51225_IG08: ; bbWeight=250.30, gcrefRegs=80001 {x0 x19}, byrefRegs=0000 {}, byref, isz ldrb w1, [x0, #0x2F]
- cbnz w1, G_M51225_IG160
+ cbnz w1, G_M51225_IG74
ldr x0, [x0, #0x08] ldr x1, [x0] ldr x1, [x1, #0x68] @@ -383,7 +383,7 @@ G_M51225_IG08: ; bbWeight=250.30, gcrefRegs=80001 {x0 x19}, byrefRegs=000 ; gcrRegs -[x0] ; gcr arg pop 0 cmn w0, #1
- beq G_M51225_IG161
+ beq G_M51225_IG92
;; size=36 bbWeight=250.30 PerfScore 4630.61 G_M51225_IG09: ; bbWeight=250.30, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref uxtb w28, w0 @@ -392,11 +392,11 @@ G_M51225_IG10: ; bbWeight=250.30, gcrefRegs=80000 {x19}, byrefRegs=0000 { sxtw w27, w28 sub w22, w28, #1 cmp w22, #8
- beq G_M51225_IG71
+ beq G_M51225_IG98
;; size=16 bbWeight=250.30 PerfScore 625.76 G_M51225_IG11: ; bbWeight=109.59, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w22, #19
- bhi G_M51225_IG164
+ bhi G_M51225_IG95
mov w0, w22 adr x1, [@RWD00] ldr w1, [x1, x0, LSL #2] @@ -446,7 +446,7 @@ G_M51225_IG17: ; bbWeight=457.81, gcrefRegs=84000 {x14 x19}, byrefRegs=00 ldr x14, [x14, #0x08] ldr w12, [x14, #0x08] cmp w15, w12
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x14, x14, #16 ; gcrRegs -[x14] ; byrRegs +[x14] @@ -465,7 +465,7 @@ G_M51225_IG19: ; bbWeight=316.95, gcrefRegs=280002 {x1 x19 x21}, byrefReg movk x0, #0xD1FFAB1E LSL #32 ldr x14, [x21] cmp x14, x0
- bne G_M51225_IG155
+ bne G_M51225_IG87
;; size=24 bbWeight=316.95 PerfScore 1901.67 G_M51225_IG20: ; bbWeight=633.89, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x1] @@ -480,7 +480,7 @@ G_M51225_IG21: ; bbWeight=611.64, gcrefRegs=280000 {x19 x21}, byrefRegs=0 str xzr, [x14] ldr w15, [x21, #0x58] cmp w15, #2
- beq G_M51225_IG156
+ beq G_M51225_IG88
ldr w24, [x21, #0x50] ldr w15, [x21, #0x6C] cmp w24, w15 @@ -491,7 +491,7 @@ G_M51225_IG22: ; bbWeight=458.73, gcrefRegs=280000 {x19 x21}, byrefRegs=8 ; gcrRegs +[x15] ldr w12, [x15, #0x08] cmp w24, w12
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x15, x15, #16 ; gcrRegs -[x15] ; byrRegs +[x15] @@ -503,7 +503,7 @@ G_M51225_IG22: ; bbWeight=458.73, gcrefRegs=280000 {x19 x21}, byrefRegs=8 ldr w12, [x21, #0x50] ldr wip0, [x15, #0x08] cmp w12, wip0
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x15, x15, #16 ; gcrRegs -[x15] ; byrRegs +[x15] @@ -522,7 +522,7 @@ G_M51225_IG23: ; bbWeight=458.73, gcrefRegs=280000 {x19 x21}, byrefRegs=0 sxtw w15, w0 ldr w12, [x14, #0x08] cmp w15, w12
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x14, x14, #16 ; gcrRegs -[x14] ; byrRegs +[x14] @@ -536,7 +536,7 @@ G_M51225_IG23: ; bbWeight=458.73, gcrefRegs=280000 {x19 x21}, byrefRegs=0 ; gcrRegs +[x14] ldr w15, [x14, #0x08] cmp w0, w15
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x14, x14, #16 ; gcrRegs -[x14] ; byrRegs +[x14] @@ -700,7 +700,7 @@ G_M51225_IG38: ; bbWeight=89.85, gcrefRegs=280001 {x0 x19 x21}, byrefRegs ; gcr arg pop 0 ldr w0, [x21, #0x60] cmp w0, #2
- bne G_M51225_IG96
+ bne G_M51225_IG123
;; size=36 bbWeight=89.85 PerfScore 1168.06 G_M51225_IG39: ; bbWeight=68.60, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ldr x1, [x19, #0x38] @@ -752,13 +752,13 @@ G_M51225_IG44: ; bbWeight=89.85, gcrefRegs=280000 {x19 x21}, byrefRegs=00 ldr w3, [x3, #0x08] ; gcrRegs -[x3] cmp w4, w3
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
sub w3, w0, #1 str w3, [x1, #0x18] ldr w1, [x2, #0x08] ; gcrRegs -[x1] cmp w0, w1
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x1, x2, #16 ; byrRegs +[x1] str xzr, [x1, w0, UXTW #3] @@ -768,11 +768,11 @@ G_M51225_IG45: ; bbWeight=89.85, gcrefRegs=280000 {x19 x21}, byrefRegs=00 ; byrRegs -[x1] ldr x1, [x19, #0x50] ; gcrRegs +[x1]
- cbnz x1, G_M51225_IG89
+ cbnz x1, G_M51225_IG116
;; size=8 bbWeight=89.85 PerfScore 359.40 G_M51225_IG46: ; bbWeight=44.93, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref ; gcrRegs -[x1]
- b G_M51225_IG88
+ b G_M51225_IG115
;; size=4 bbWeight=44.93 PerfScore 44.93 G_M51225_IG47: ; bbWeight=2.08, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref ; gcrRegs +[x23] @@ -934,7 +934,7 @@ G_M51225_IG54: ; bbWeight=23.16, gcrefRegs=80000 {x19}, byrefRegs=0000 {} mov w28, wzr ldr w0, [x26, #0x20] cmp w0, #0
- ble G_M51225_IG94
+ ble G_M51225_IG121
;; size=136 bbWeight=23.16 PerfScore 1424.60 G_M51225_IG55: ; bbWeight=185.31, gcrefRegs=4080000 {x19 x26}, byrefRegs=0000 {}, byref, isz ldr x21, [x26, #0x10] @@ -950,7 +950,7 @@ G_M51225_IG55: ; bbWeight=185.31, gcrefRegs=4080000 {x19 x26}, byrefRegs= ; gcrRegs +[x15] ldr w14, [x21, #0x08] cmp w28, w14
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x14, x21, #16 ; byrRegs +[x14] add x14, x14, x28, LSL #3 @@ -963,7 +963,7 @@ G_M51225_IG55: ; bbWeight=185.31, gcrefRegs=4080000 {x19 x26}, byrefRegs= blt G_M51225_IG55 ;; size=68 bbWeight=185.31 PerfScore 5281.43 G_M51225_IG56: ; bbWeight=23.16, gcrefRegs=4080000 {x19 x26}, byrefRegs=0000 {}, byref
- b G_M51225_IG94
+ b G_M51225_IG121
;; size=4 bbWeight=23.16 PerfScore 23.16 G_M51225_IG57: ; bbWeight=2.72, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref ; gcrRegs -[x26] +[x21] @@ -996,7 +996,7 @@ G_M51225_IG59: ; bbWeight=152.91, gcrefRegs=280000 {x19 x21}, byrefRegs=0 G_M51225_IG60: ; bbWeight=152.91, gcrefRegs=280000 {x19 x21}, byrefRegs=804000 {x14 x23}, byref, isz ; byrRegs +[x14 x23] ldrb w15, [x21, #0x70]
- cbz w15, G_M51225_IG157
+ cbz w15, G_M51225_IG89
b G_M51225_IG22 ;; size=12 bbWeight=152.91 PerfScore 764.55 G_M51225_IG61: ; bbWeight=22.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref @@ -1051,7 +1051,7 @@ G_M51225_IG62: ; bbWeight=9.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldr x14, [x14, #0x58] ldr w12, [x14, #0x08] cmp w15, w12
- bhs G_M51225_IG153
+ bhs G_M51225_IG70
add x14, x14, #16 ; gcrRegs -[x14] ; byrRegs +[x14] @@ -1082,7 +1082,7 @@ G_M51225_IG65: ; bbWeight=9.05, gcrefRegs=3088000 {x15 x19 x24 x25}, byre ; byrRegs -[x14] ldr x0, [x25, #0x08] ; gcrRegs +[x0]
- cbz x0, G_M51225_IG162
+ cbz x0, G_M51225_IG93
;; size=16 bbWeight=9.05 PerfScore 49.80 G_M51225_IG66: ; bbWeight=2.26, gcrefRegs=2080000 {x19 x25}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0 x24] @@ -1152,14 +1152,14 @@ G_M51225_IG67: ; bbWeight=2.26, gcrefRegs=12080000 {x19 x25 x28}, byrefRe ; gcrRegs -[x0 x15 x25] ; byrRegs -[x14] ldrsb wzr, [x28]
- tbnz w26, #31, G_M51225_IG169
+ tbnz w26, #31, G_M51225_IG71
ldr x0, [x28, #0x08] ; gcrRegs +[x0] ldr w0, [x0, #0x08] ; gcrRegs -[x0] sub w0, w0, #1 cmp w0, w26
- blt G_M51225_IG171
+ blt G_M51225_IG73
;; size=64 bbWeight=2.26 PerfScore 50.93 G_M51225_IG68: ; bbWeight=2.26, gcrefRegs=10280000 {x19 x21 x28}, byrefRegs=0000 {}, byref ldr x0, [x28, #0x08] @@ -1199,8 +1199,466 @@ G_M51225_IG69: ; bbWeight=9.05, gcrefRegs=2080000 {x19 x25}, byrefRegs=00 ; byrRegs -[x14] b G_M51225_IG66 ;; size=60 bbWeight=9.05 PerfScore 271.64
-G_M51225_IG70: ; bbWeight=80.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x25]
+G_M51225_IG70: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
...

+0 (0.00%) : 665472.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)

@@ -102,9 +102,9 @@ ; V90 tmp67 [V90,T32] ( 3, 0 ) byref -> x1 single-def "Spilling address for field-by-field copy" ; V91 tmp68 [V91,T42] ( 2, 0 ) ref -> x3 single-def "argument with side effect" ; V92 tmp69 [V92,T33] ( 3, 0 ) struct (16) [fp+0x50] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V93 tmp70 [V93,T43] ( 2, 0 ) ref -> x3 single-def "argument with side effect" -; V94 tmp71 [V94,T34] ( 3, 0 ) struct (16) [fp+0x40] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion> -; V95 tmp72 [V95 ] ( 2, 0 ) struct (48) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.InterpolatedStringHandlerData>
+; V93 tmp70 [V93 ] ( 2, 0 ) struct (48) [fp+0x20] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.InterpolatedStringHandlerData> +; V94 tmp71 [V94,T43] ( 2, 0 ) ref -> x3 single-def "argument with side effect" +; V95 tmp72 [V95,T34] ( 3, 0 ) struct (16) [fp+0x10] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion>
; V96 cse0 [V96,T22] ( 3, 0.38) long -> x1 "CSE - conservative" ; V97 cse1 [V97,T10] ( 3, 2.54) int -> x0 "CSE - moderate" ; V98 rat0 [V98,T02] ( 3, 6 ) int -> x0 "ReplaceWithLclVar is creating a new local variable" @@ -456,7 +456,7 @@ G_M49949_IG32: ; bbWeight=0, extend G_M49949_IG33: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, nogc ; gcrRegs -[x0 x21] +[x19-x20] ldp x0, x1, [x19, #0x40]
- stp x0, x1, [fp, #0x40]
+ stp x0, x1, [fp, #0x10]
;; size=8 bbWeight=0 PerfScore 0.00 G_M49949_IG34: ; bbWeight=0, extend ldr x1, [x19, #0x20] @@ -468,7 +468,7 @@ G_M49949_IG34: ; bbWeight=0, extend ; gcrRegs -[x1 x19] +[x0] mov x3, x0 ; gcrRegs +[x3]
- ldp x1, x2, [fp, #0x40] // [V94 tmp71], [V94 tmp71+0x08]
+ ldp x1, x2, [fp, #0x10] // [V95 tmp72], [V95 tmp72+0x08]
; gcrRegs +[x1] mov x0, x20 movz x4, #0xD1FFAB1E // code for <unknown method> @@ -720,13 +720,13 @@ G_M49949_IG56: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M49949_IG57: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, nogc ; gcrRegs +[x19-x20] add x1, fp, #0xD1FFAB1E
- ldp q16, q17, [x1, #0x10] - stp q16, q17, [fp, #0x10] - ldr q16, [x1, #0x30] - str q16, [fp, #0x30]
+ ldp q16, q17, [x1, #0x20] + stp q16, q17, [fp, #0x20] + ldr q16, [x1, #0x40] + str q16, [fp, #0x40]
;; size=20 bbWeight=0 PerfScore 0.00 G_M49949_IG58: ; bbWeight=0, extend
- add x1, fp, #16 // [V95 tmp72]
+ add x1, fp, #32 // [V93 tmp70]
ldr x3, [x19, #0x20] ; gcrRegs +[x3] ldr x3, [x3, #0x08]

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_pgo.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_tiered.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
coreclr_tests.run.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.crossgen2.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.pmi.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries_tests.run.linux.arm64.Release.mch 2 0 0 2 -0 +0 0.0000%
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 0 0 0 0 -0 +0 0.0000%
realworld.run.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
smoke_tests.nativeaot.linux.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
2 0 0 2 -0 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 39,255 4,505 34,750 6 (0.02%) 6 (0.02%)
benchmarks.run_pgo.linux.arm64.checked.mch 149,238 58,069 91,169 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.linux.arm64.checked.mch 60,754 45,746 15,008 4 (0.01%) 4 (0.01%)
coreclr_tests.run.linux.arm64.checked.mch 650,141 400,791 249,350 7 (0.00%) 7 (0.00%)
libraries.crossgen2.linux.arm64.checked.mch 266,541 15 266,526 1 (0.00%) 1 (0.00%)
libraries.pmi.linux.arm64.checked.mch 301,087 6 301,081 14 (0.00%) 14 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 730,259 488,690 241,569 21 (0.00%) 21 (0.00%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 305,156 21,622 283,534 112 (0.04%) 112 (0.04%)
realworld.run.linux.arm64.checked.mch 33,134 75 33,059 2 (0.01%) 2 (0.01%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,020 7 19,013 1 (0.01%) 1 (0.01%)
2,554,585 1,019,526 1,535,059 172 (0.01%) 172 (0.01%)

jit-analyze output

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: 381315748 (overridden on cmd)
Total bytes of diff: 381315748 (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), 2 unchanged.

0 total methods with Code Size differences (0 improved, 0 regressed).



linux x64

Diffs are based on 2,543,224 contexts (988,245 MinOpts, 1,554,979 FullOpts).

MISSED contexts: 177 (0.01%)

Overall (-3 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.x64.Release.mch 329,922,608 -3 +0.16%

FullOpts (-3 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.x64.Release.mch 147,120,622 -3 +0.16%

Example diffs

libraries_tests.run.linux.x64.Release.mch

-3 (-0.06%) : 530245.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

@@ -242,17 +242,17 @@ ; V230 tmp223 [V230,T200] ( 2, 0 ) ref -> rsi "argument with side effect" ; V231 tmp224 [V231,T22] ( 3, 2842.29) ref -> rdi "argument with side effect" ; V232 tmp225 [V232,T201] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V233 tmp226 [V233,T112] ( 3, 35.78) ref -> rdi "arr expr" -; V234 tmp227 [V234,T113] ( 3, 35.78) int -> rax "index expr" -; V235 tmp228 [V235,T202] ( 2, 0 ) ref -> rsi "argument with side effect" -; V236 tmp229 [V236,T99] ( 3, 73.14) ref -> rdi "argument with side effect" -; V237 tmp230 [V237,T100] ( 3, 73.14) ref -> rdi "argument with side effect" -; V238 tmp231 [V238,T101] ( 3, 73.14) ref -> rdi "argument with side effect" -; V239 tmp232 [V239,T102] ( 3, 73.14) ref -> rdi "argument with side effect" -; V240 tmp233 [V240,T103] ( 3, 73.14) ref -> rdi "arr expr" -; V241 tmp234 [V241,T104] ( 3, 73.14) int -> rsi "index expr" -; V242 tmp235 [V242,T203] ( 2, 0 ) ref -> rsi "argument with side effect" -; V243 tmp236 [V243,T204] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V233 tmp226 [V233,T99] ( 3, 73.14) ref -> rdi "argument with side effect" +; V234 tmp227 [V234,T100] ( 3, 73.14) ref -> rdi "argument with side effect" +; V235 tmp228 [V235,T101] ( 3, 73.14) ref -> rdi "argument with side effect" +; V236 tmp229 [V236,T102] ( 3, 73.14) ref -> rdi "argument with side effect" +; V237 tmp230 [V237,T103] ( 3, 73.14) ref -> rdi "arr expr" +; V238 tmp231 [V238,T104] ( 3, 73.14) int -> rsi "index expr" +; V239 tmp232 [V239,T202] ( 2, 0 ) ref -> rsi "argument with side effect" +; V240 tmp233 [V240,T203] ( 2, 0 ) ref -> rsi "argument with side effect" +; V241 tmp234 [V241,T204] ( 2, 0 ) ref -> rsi "argument with side effect" +; V242 tmp235 [V242,T112] ( 3, 35.78) ref -> rdi "arr expr" +; V243 tmp236 [V243,T113] ( 3, 35.78) int -> rax "index expr"
; V244 tmp237 [V244,T33] ( 3, 1589.71) ref -> rdi "argument with side effect" ; V245 tmp238 [V245,T34] ( 3, 1555.16) ref -> rdi "arr expr" ; V246 tmp239 [V246,T35] ( 3, 1555.16) int -> rax "index expr" @@ -324,22 +324,22 @@ G_M51225_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov r13d, dword ptr [r14+0x0C] test r13d, r13d
- jle G_M51225_IG88
+ jle G_M51225_IG81
mov r12, gword ptr [rbx+0x08] ; gcrRegs +[r12] movsxd r13, r13d cmp byte ptr [r12+0x91], 0
- je G_M51225_IG33
+ je G_M51225_IG27
;; size=71 bbWeight=1 PerfScore 14.75 G_M51225_IG03: ; bbWeight=1, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref test r13, r13
- jg G_M51225_IG30
+ jg G_M51225_IG24
;; size=9 bbWeight=1 PerfScore 1.25 G_M51225_IG04: ; bbWeight=0.66, gcrefRegs=5008 {rbx r12 r14}, byrefRegs=0000 {}, byref cmp byte ptr [r12+0x92], 0
- jne G_M51225_IG193
+ jne G_M51225_IG136
cmp r13, -1
- je G_M51225_IG193
+ je G_M51225_IG136
neg r13 ;; size=28 bbWeight=0.66 PerfScore 3.62 G_M51225_IG05: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref @@ -347,7 +347,7 @@ G_M51225_IG05: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, mov qword ptr [rbx+0xA8], r13 mov eax, dword ptr [r14+0x10] test eax, eax
- jg G_M51225_IG89
+ jg G_M51225_IG82
movsxd rcx, eax ;; size=22 bbWeight=1 PerfScore 4.50 G_M51225_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref @@ -363,14 +363,14 @@ G_M51225_IG07: ; bbWeight=1100.38, gcrefRegs=0008 {rbx}, byrefRegs=0000 { G_M51225_IG08: ; bbWeight=473.71, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref dec edi cmp edi, 6
- ja G_M51225_IG192
+ ja G_M51225_IG135
mov rdi, gword ptr [rbx+0x48] ; gcrRegs +[rdi] mov rax, 0xD1FFAB1E ; System.IO.BinaryReader cmp qword ptr [rdi], rax
- jne G_M51225_IG90
+ jne G_M51225_IG83
cmp byte ptr [rdi+0x2F], 0
- jne G_M51225_IG187
+ jne G_M51225_IG130
mov rdi, gword ptr [rdi+0x08] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x68] @@ -378,18 +378,18 @@ G_M51225_IG08: ; bbWeight=473.71, gcrefRegs=0008 {rbx}, byrefRegs=0000 {} ; gcrRegs -[rdi] ; gcr arg pop 0 cmp eax, -1
- je G_M51225_IG188
+ je G_M51225_IG131
movzx r12, al ;; size=71 bbWeight=473.71 PerfScore 10540.14 G_M51225_IG09: ; bbWeight=473.71, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov r14d, r12d lea r13d, [r12-0x01] cmp r13d, 8
- je G_M51225_IG66
+ je G_M51225_IG60
;; size=18 bbWeight=473.71 PerfScore 947.43 G_M51225_IG10: ; bbWeight=208.76, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref cmp r13d, 19
- ja G_M51225_IG191
+ ja G_M51225_IG134
mov edi, r13d lea rax, [reloc @RWD00] mov eax, dword ptr [rax+4*rdi] @@ -404,21 +404,21 @@ G_M51225_IG11: ; bbWeight=626.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {} ; gcrRegs -[rdi] ; gcr arg pop 0 ;; size=9 bbWeight=626.67 PerfScore 2036.67
-G_M51225_IG12: ; bbWeight=1100.38, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M51225_IG12: ; bbWeight=1100.38, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, 12
- je G_M51225_IG28 - ;; size=10 bbWeight=1100.38 PerfScore 1375.48
+ je SHORT G_M51225_IG22 + ;; size=6 bbWeight=1100.38 PerfScore 1375.48
G_M51225_IG13: ; bbWeight=1278.38, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdi, gword ptr [rbx+0x28] ; gcrRegs +[rdi] mov esi, dword ptr [rdi+0x18] test esi, esi
- jl G_M51225_IG134
+ jl G_M51225_IG149
;; size=15 bbWeight=1278.38 PerfScore 6711.50 G_M51225_IG14: ; bbWeight=1250.59, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref mov rdi, gword ptr [rdi+0x08] cmp esi, dword ptr [rdi+0x08]
- jae G_M51225_IG185
+ jae G_M51225_IG121
mov esi, esi mov rsi, gword ptr [rdi+8*rsi+0x10] ; gcrRegs +[rsi] @@ -433,13 +433,13 @@ G_M51225_IG15: ; bbWeight=1278.38, gcrefRegs=0048 {rbx rsi}, byrefRegs=00 G_M51225_IG16: ; bbWeight=639.19, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.Formatters.Binary.ObjectProgress cmp qword ptr [r13], rdi
- jne G_M51225_IG186
+ jne G_M51225_IG129
;; size=20 bbWeight=639.19 PerfScore 2716.56
-G_M51225_IG17: ; bbWeight=1278.38, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M51225_IG17: ; bbWeight=1278.38, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] test r13, r13
- je G_M51225_IG27 - ;; size=9 bbWeight=1278.38 PerfScore 1597.98
+ je SHORT G_M51225_IG21 + ;; size=5 bbWeight=1278.38 PerfScore 1597.98
G_M51225_IG18: ; bbWeight=1235.76, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref lea r14, bword ptr [r13+0x54] ; byrRegs +[r14] @@ -451,129 +451,44 @@ G_M51225_IG18: ; bbWeight=1235.76, gcrefRegs=2008 {rbx r13}, byrefRegs=00 G_M51225_IG19: ; bbWeight=1235.76, gcrefRegs=2008 {rbx r13}, byrefRegs=4080 {rdi r14}, byref mov gword ptr [rdi], rsi cmp dword ptr [r13+0x58], 2
- jne G_M51225_IG46
+ jne G_M51225_IG40
;; size=14 bbWeight=1235.76 PerfScore 6178.81 G_M51225_IG20: ; bbWeight=203.78, gcrefRegs=2008 {rbx r13}, byrefRegs=4080 {rdi r14}, byref
- jmp G_M51225_IG122
+ jmp G_M51225_IG115
;; size=5 bbWeight=203.78 PerfScore 407.55
-G_M51225_IG21: ; bbWeight=0, gcVars=0000000000000000000000000000000000000000000000000000008000000000 {V76}, gcrefRegs=3009 {rax rbx r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[rax r12]
+G_M51225_IG21: ; bbWeight=42.62, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + ; gcrRegs -[r13]
; byrRegs -[rdi r14]
- ; GC ptr vars +{V76} - mov byte ptr [rax+0x92], 1 - cmp gword ptr [rax+0x60], 0 - jne SHORT G_M51225_IG22 - mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.Formatters.Binary.IntSizedArray - call CORINFO_HELP_NEWSFAST - ; gcr arg pop 0 - mov gword ptr [rbp-0x70], rax - ; GC ptr vars +{V80} - mov rdi, rax - ; gcrRegs +[rdi] - call [System.Runtime.Serialization.Formatters.Binary.IntSizedArray:.ctor():this] - ; gcrRegs -[rax rdi] - ; gcr arg pop 0 - mov rax, gword ptr [rbp-0x68] - ; gcrRegs +[rax] - lea rdi, bword ptr [rax+0x60] - ; byrRegs +[rdi] - mov rsi, gword ptr [rbp-0x70] - ; gcrRegs +[rsi] - ; GC ptr vars -{V80} - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rax rsi] - ; byrRegs -[rdi] - mov rcx, qword ptr [rbp-0x40] - ;; size=63 bbWeight=0 PerfScore 0.00 -G_M51225_IG22: ; bbWeight=0, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref, isz - mov rax, gword ptr [rbp-0x68] - ; gcrRegs +[rax] - mov rdi, gword ptr [rax+0x60] - ; gcrRegs +[rdi] - mov esi, ecx - cmp dword ptr [rdi], edi - call [System.Runtime.Serialization.Formatters.Binary.IntSizedArray:get_Item(int):int:this] - ; gcrRegs -[rax rdi] - ; gcr arg pop 0 - cdqe - mov rcx, rax - test rcx, rcx - jne SHORT G_M51225_IG23 - mov rcx, qword ptr [rbp-0x40] - lea rdi, [rcx+D1FFAB1EH] - mov rax, rdi - mov rdi, gword ptr [rbp-0x68] - ; gcrRegs +[rdi] - mov rdi, gword ptr [rdi+0x60] - mov esi, ecx - mov qword ptr [rbp-0x48], rax - mov edx, eax - cmp dword ptr [rdi], edi - ; GC ptr vars -{V76} - call [System.Runtime.Serialization.Formatters.Binary.IntSizedArray:set_Item(int,int):this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - mov rcx, qword ptr [rbp-0x48] - ;; size=70 bbWeight=0 PerfScore 0.00 -G_M51225_IG23: ; bbWeight=0, gcrefRegs=3008 {rbx r12 r13}, byrefRegs=0000 {}, byref - jmp G_M51225_IG100 - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M51225_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - ; gcrRegs -[r12-r13] - mov rdi, rbx - ; gcrRegs +[rdi] - call [System.Runtime.Serialization.Formatters.Binary.BinaryParser:ReadMemberPrimitiveTyped():this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - jmp G_M51225_IG12 - ;; size=14 bbWeight=0 PerfScore 0.00 -G_M51225_IG25: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref - ; gcrRegs -[rbx] +[rsi] - call CORINFO_HELP_CHKCASTCLASS - ; gcrRegs -[rsi] +[rax] - ; gcr arg pop 0 - int3 - ;; size=6 bbWeight=0 PerfScore 0.00 -G_M51225_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - ; gcrRegs -[rax] +[rbx] - mov rdi, rbx - ; gcrRegs +[rdi] - call [System.Runtime.Serialization.Formatters.Binary.BinaryParser:ReadCrossAppDomainMap():this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - jmp G_M51225_IG12
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_pgo.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_tiered.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
coreclr_tests.run.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.crossgen2.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.pmi.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries_tests.run.linux.x64.Release.mch 1 1 0 0 -3 +0 +0.0000%
librariestestsnotieredcompilation.run.linux.x64.Release.mch 0 0 0 0 -0 +0 0.0000%
realworld.run.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
smoke_tests.nativeaot.linux.x64.checked.mch 0 0 0 0 -0 +0 0.0000%
1 1 0 0 -3 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 31,794 2,071 29,723 6 (0.02%) 6 (0.02%)
benchmarks.run_pgo.linux.x64.checked.mch 156,239 58,375 97,864 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.linux.x64.checked.mch 64,164 49,119 15,045 4 (0.01%) 4 (0.01%)
coreclr_tests.run.linux.x64.checked.mch 609,175 362,858 246,317 7 (0.00%) 7 (0.00%)
libraries.crossgen2.linux.x64.checked.mch 266,398 15 266,383 1 (0.00%) 1 (0.00%)
libraries.pmi.linux.x64.checked.mch 302,021 6 302,015 14 (0.00%) 14 (0.00%)
libraries_tests.run.linux.x64.Release.mch 747,051 493,849 253,202 23 (0.00%) 23 (0.00%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,764 21,933 283,831 115 (0.04%) 115 (0.04%)
realworld.run.linux.x64.checked.mch 33,138 9 33,129 2 (0.01%) 2 (0.01%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,480 10 27,470 1 (0.00%) 1 (0.00%)
2,543,224 988,245 1,554,979 177 (0.01%) 177 (0.01%)

jit-analyze output

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: 329922608 (overridden on cmd)
Total bytes of diff: 329922605 (overridden on cmd)
Total bytes of delta: -3 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
          -3 : 530245.dasm (-0.06 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
          -3 (-0.06 % of base) : 530245.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

Top method improvements (percentages):
          -3 (-0.06 % of base) : 530245.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

1 total methods with Code Size differences (1 improved, 0 regressed).



osx arm64

Diffs are based on 2,317,543 contexts (945,402 MinOpts, 1,372,141 FullOpts).

MISSED contexts: 170 (0.01%)

Overall (+12 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.osx.arm64.Release.mch 312,729,720 +12 +0.04%

FullOpts (+12 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.osx.arm64.Release.mch 111,327,984 +12 +0.04%

Example diffs

libraries_tests.run.osx.arm64.Release.mch

+0 (0.00%) : 593123.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)

@@ -102,9 +102,9 @@ ; V90 tmp67 [V90,T37] ( 3, 0 ) byref -> x1 single-def "Spilling address for field-by-field copy" ; V91 tmp68 [V91,T46] ( 2, 0 ) ref -> x3 single-def "argument with side effect" ; V92 tmp69 [V92,T38] ( 3, 0 ) struct (16) [fp+0x50] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V93 tmp70 [V93,T28] ( 2, 0.03) ref -> x3 single-def "argument with side effect" -; V94 tmp71 [V94,T26] ( 3, 0.05) struct (16) [fp+0x40] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion> -; V95 tmp72 [V95 ] ( 2, 0 ) struct (48) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.InterpolatedStringHandlerData>
+; V93 tmp70 [V93 ] ( 2, 0 ) struct (48) [fp+0x20] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.InterpolatedStringHandlerData> +; V94 tmp71 [V94,T28] ( 2, 0.03) ref -> x3 single-def "argument with side effect" +; V95 tmp72 [V95,T26] ( 3, 0.05) struct (16) [fp+0x10] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion>
; V96 cse0 [V96,T10] ( 3, 2.71) int -> x0 "CSE - moderate" ; V97 cse1 [V97,T22] ( 3, 0.26) long -> x22 "CSE - conservative" ; V98 rat0 [V98,T27] ( 3, 0.03) ref -> x1 "Spilling to split statement for tree" @@ -352,7 +352,7 @@ G_M49949_IG23: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000 G_M49949_IG24: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, nogc ; gcrRegs -[x21] ldp x1, x2, [x19, #0x40]
- stp x1, x2, [fp, #0x40]
+ stp x1, x2, [fp, #0x10]
;; size=8 bbWeight=0.01 PerfScore 0.04 G_M49949_IG25: ; bbWeight=0.01, isz, extend ldr x1, [x19, #0x20] @@ -372,7 +372,7 @@ G_M49949_IG26: ; bbWeight=0.00, gcrefRegs=10000A {x1 x3 x20}, byrefRegs=0 ;; size=24 bbWeight=0.00 PerfScore 0.02 G_M49949_IG27: ; bbWeight=0.01, gcrefRegs=100008 {x3 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x1]
- ldp x1, x2, [fp, #0x40] // [V94 tmp71], [V94 tmp71+0x08]
+ ldp x1, x2, [fp, #0x10] // [V95 tmp72], [V95 tmp72+0x08]
; gcrRegs +[x1] mov x0, x20 ; gcrRegs +[x0] @@ -625,13 +625,13 @@ G_M49949_IG49: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M49949_IG50: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, nogc ; gcrRegs +[x19-x20] add x1, fp, #0xD1FFAB1E
- ldp q16, q17, [x1, #0x10] - stp q16, q17, [fp, #0x10] - ldr q16, [x1, #0x30] - str q16, [fp, #0x30]
+ ldp q16, q17, [x1, #0x20] + stp q16, q17, [fp, #0x20] + ldr q16, [x1, #0x40] + str q16, [fp, #0x40]
;; size=20 bbWeight=0 PerfScore 0.00 G_M49949_IG51: ; bbWeight=0, extend
- add x1, fp, #16 // [V95 tmp72]
+ add x1, fp, #32 // [V93 tmp70]
ldr x3, [x19, #0x20] ; gcrRegs +[x3] ldr x3, [x3, #0x08]

+12 (+0.23%) : 457350.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

@@ -39,32 +39,32 @@ ; V27 tmp20 [V27,T148] ( 4, 2 ) long -> x24 "Inline return value spill temp" ; V28 tmp21 [V28,T143] ( 9, 5.31) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.ObjectReader> ; V29 tmp22 [V29,T141] ( 8, 7.31) long -> x24 "Inlining Arg"
-; V30 tmp23 [V30,T198] ( 2, 0 ) long -> x22 "dup spill" -; V31 tmp24 [V31,T179] ( 5, 0 ) long -> x22 "Inline stloc first use temp"
+; V30 tmp23 [V30,T198] ( 2, 0 ) long -> x25 "dup spill" +; V31 tmp24 [V31,T179] ( 5, 0 ) long -> x25 "Inline stloc first use temp"
; V32 tmp25 [V32,T185] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.IntSizedArray> ; V33 tmp26 [V33,T36] ( 3, 704.14) int -> x0 "Inline stloc first use temp" ;* V34 tmp27 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.BinaryAssembly> ; V35 tmp28 [V35,T90] ( 8, 55.42) ref -> x26 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.BinaryAssembly>
-; V36 tmp29 [V36,T117] ( 4, 14.40) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo>
+; V36 tmp29 [V36,T117] ( 4, 14.40) ref -> x28 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo>
;* V37 tmp30 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Runtime.Serialization.Formatters.Binary.SizedArray>
-; V38 tmp31 [V38,T106] ( 8, 21.20) int -> x28 "impAppendStmt"
+; V38 tmp31 [V38,T106] ( 8, 21.20) int -> x21 "impAppendStmt"
;* V39 tmp32 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.BinaryCrossAppDomainAssembly>
-; V40 tmp33 [V40,T98] ( 6, 42.63) ref -> x21 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.BinaryCrossAppDomainAssembly>
+; V40 tmp33 [V40,T98] ( 6, 42.63) ref -> x25 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.BinaryCrossAppDomainAssembly>
; V41 tmp34 [V41,T97] ( 4, 46.89) ref -> x15 "CASTCLASS eval op1" ; V42 tmp35 [V42,T104] ( 3, 25.58) ref -> x15 class-hnd "spilling QMark2" <System.String> ; V43 tmp36 [V43,T186] ( 3, 0 ) ref -> x19 class-hnd exact "Single-def Box Helper" <<unknown class>> ; V44 tmp37 [V44,T191] ( 2, 0 ) ref -> x20 class-hnd exact "impImportAndPushBox" <System.String>
-; V45 tmp38 [V45,T187] ( 3, 0 ) ref -> x21 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V45 tmp38 [V45,T187] ( 3, 0 ) ref -> x27 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V46 tmp39 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.ObjectReader> ;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V48 tmp41 [V48,T137] ( 2, 8.53) ref -> x21 class-hnd exact "dup spill" <System.Runtime.Serialization.Formatters.Binary.SizedArray> -; V49 tmp42 [V49,T129] ( 10, 13.11) ref -> x21 -; V50 tmp43 [V50,T145] ( 5, 3.78) ref -> x21 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.SizedArray>
+; V48 tmp41 [V48,T137] ( 2, 8.53) ref -> x25 class-hnd exact "dup spill" <System.Runtime.Serialization.Formatters.Binary.SizedArray> +; V49 tmp42 [V49,T129] ( 10, 13.11) ref -> x25 +; V50 tmp43 [V50,T145] ( 5, 3.78) ref -> x25 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.SizedArray>
;* V51 tmp44 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.SizedArray> ;* V52 tmp45 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V53 tmp46 [V53,T130] ( 3, 12.70) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.BinaryObjectWithMap> ; V54 tmp47 [V54,T118] ( 3, 13.33) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.BinaryObjectWithMapTyped>
-; V55 tmp48 [V55,T67] ( 4, 268.56) ref -> x28 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ObjectProgress>
+; V55 tmp48 [V55,T67] ( 4, 268.56) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ObjectProgress>
;* V56 tmp49 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> ; V57 tmp50 [V57,T40] ( 2, 525.82) ref -> x25 class-hnd exact "impAppendStmt" <System.Runtime.Serialization.Formatters.Binary.ObjectReader> ; V58 tmp51 [V58,T134] ( 2, 8.78) ref -> x15 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.MemberReference> @@ -76,9 +76,9 @@ ; V64 tmp57 [V64,T48] ( 4, 394.38) ref -> x0 ; V65 tmp58 [V65,T152] ( 3, 0.08) ref -> x0 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> ;* V66 tmp59 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord>
-; V67 tmp60 [V67,T42] ( 2, 525.82) ref -> x22 class-hnd exact "dup spill" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> -; V68 tmp61 [V68,T49] ( 4, 394.38) ref -> x22 -; V69 tmp62 [V69,T153] ( 3, 0.08) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord>
+; V67 tmp60 [V67,T42] ( 2, 525.82) ref -> x28 class-hnd exact "dup spill" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> +; V68 tmp61 [V68,T49] ( 4, 394.38) ref -> x28 +; V69 tmp62 [V69,T153] ( 3, 0.08) ref -> x28 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord>
;* V70 tmp63 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> ; V71 tmp64 [V71,T74] ( 4, 262.91) long -> x25 "Inline return value spill temp" ; V72 tmp65 [V72,T38] ( 9, 698.43) ref -> x26 class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.ObjectReader> @@ -121,11 +121,11 @@ ; V109 tmp102 [V109,T52] ( 4, 394.38) ref -> x1 ; V110 tmp103 [V110,T156] ( 3, 0.08) ref -> x1 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> ;* V111 tmp104 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord>
-; V112 tmp105 [V112,T101] ( 6, 26.31) ref -> x21 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ObjectProgress> -; V113 tmp106 [V113,T107] ( 2, 17.54) ref -> x22 class-hnd exact "impAppendStmt" <System.Runtime.Serialization.Formatters.Binary.ObjectReader>
+; V112 tmp105 [V112,T101] ( 6, 26.31) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Runtime.Serialization.Formatters.Binary.ObjectProgress> +; V113 tmp106 [V113,T107] ( 2, 17.54) ref -> x23 class-hnd exact "impAppendStmt" <System.Runtime.Serialization.Formatters.Binary.ObjectReader>
; V114 tmp107 [V114,T85] ( 2, 70.16) ref -> x15 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.ObjectNull> ; V115 tmp108 [V115,T135] ( 4, 8.77) ref -> x1 class-hnd "Inline return value spill temp" <System.Object>
-; V116 tmp109 [V116,T99] ( 4, 34.70) ref -> x0 class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.SerStack>
+; V116 tmp109 [V116,T99] ( 4, 34.70) ref -> x21 class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.SerStack>
;* V117 tmp110 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> ; V118 tmp111 [V118,T108] ( 2, 17.54) ref -> x0 class-hnd exact "dup spill" <System.Runtime.Serialization.Formatters.Binary.ParseRecord> ; V119 tmp112 [V119,T119] ( 4, 13.16) ref -> x0 @@ -232,23 +232,23 @@ ; V220 tmp213 [V220,T55] ( 4, 351.77) int -> x1 "Inline stloc first use temp" ; V221 tmp214 [V221,T58] ( 2, 351.77) ref -> x2 class-hnd "impAppendStmt" <<unknown class>> ; V222 tmp215 [V222,T105] ( 5, 23.62) ref -> x22 class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.SerStack>
-; V223 tmp216 [V223,T27] ( 7, 1055.37) ref -> x27 class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.SerStack>
+; V223 tmp216 [V223,T27] ( 7, 1055.37) ref -> x28 class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.SerStack>
; V224 tmp217 [V224,T71] ( 3, 263.83) int -> x1 "Inline stloc first use temp" ; V225 tmp218 [V225,T59] ( 2, 351.77) ref -> x0 class-hnd "impAppendStmt" <<unknown class>> ; V226 tmp219 [V226,T192] ( 2, 0 ) ref -> x1 "argument with side effect" ; V227 tmp220 [V227,T21] ( 3, 1408.27) ref -> x0 "argument with side effect" ; V228 tmp221 [V228,T193] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V229 tmp222 [V229,T102] ( 3, 25.74) ref -> x1 "arr expr" -; V230 tmp223 [V230,T103] ( 3, 25.74) int -> x0 "index expr" -; V231 tmp224 [V231,T194] ( 2, 0 ) ref -> x1 "argument with side effect" -; V232 tmp225 [V232,T91] ( 3, 51.15) ref -> x0 "argument with side effect" -; V233 tmp226 [V233,T92] ( 3, 51.15) ref -> x0 "argument with side effect" -; V234 tmp227 [V234,T93] ( 3, 51.15) ref -> x0 "argument with side effect" -; V235 tmp228 [V235,T94] ( 3, 51.15) ref -> x0 "argument with side effect" -; V236 tmp229 [V236,T95] ( 3, 51.15) ref -> x14 "arr expr" -; V237 tmp230 [V237,T96] ( 3, 51.15) int -> x15 "index expr" -; V238 tmp231 [V238,T195] ( 2, 0 ) ref -> x1 "argument with side effect" -; V239 tmp232 [V239,T196] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V229 tmp222 [V229,T91] ( 3, 51.15) ref -> x0 "argument with side effect" +; V230 tmp223 [V230,T92] ( 3, 51.15) ref -> x0 "argument with side effect" +; V231 tmp224 [V231,T93] ( 3, 51.15) ref -> x0 "argument with side effect" +; V232 tmp225 [V232,T94] ( 3, 51.15) ref -> x0 "argument with side effect" +; V233 tmp226 [V233,T95] ( 3, 51.15) ref -> x14 "arr expr" +; V234 tmp227 [V234,T96] ( 3, 51.15) int -> x15 "index expr" +; V235 tmp228 [V235,T194] ( 2, 0 ) ref -> x1 "argument with side effect" +; V236 tmp229 [V236,T195] ( 2, 0 ) ref -> x1 "argument with side effect" +; V237 tmp230 [V237,T196] ( 2, 0 ) ref -> x1 "argument with side effect" +; V238 tmp231 [V238,T102] ( 3, 25.74) ref -> x0 "arr expr" +; V239 tmp232 [V239,T103] ( 3, 25.74) int -> x1 "index expr"
; V240 tmp233 [V240,T31] ( 3, 788.73) ref -> x0 "argument with side effect" ; V241 tmp234 [V241,T33] ( 3, 771.77) ref -> x0 "arr expr" ; V242 tmp235 [V242,T34] ( 3, 771.77) int -> x23 "index expr" @@ -278,9 +278,9 @@ ; V266 cse8 [V266,T146] ( 4, 3 ) int -> x22 "CSE - conservative" ; V267 cse9 [V267,T147] ( 4, 3 ) int -> x25 "CSE - conservative" ; V268 cse10 [V268,T72] ( 3, 263.83) int -> x3 "CSE - moderate"
-; V269 rat0 [V269,T29] ( 4, 920.19) ref -> x28 "replacement local"
+; V269 rat0 [V269,T29] ( 4, 920.19) ref -> x22 "replacement local"
; V270 rat1 [V270,T75] ( 3, 262.91) long -> x0 "CSE for expectedClsNode"
-; V271 rat2 [V271,T100] ( 4, 30.69) ref -> x21 "replacement local"
+; V271 rat2 [V271,T100] ( 4, 30.69) ref -> x22 "replacement local"
; V272 rat3 [V272,T136] ( 3, 8.77) long -> x0 "CSE for expectedClsNode" ; V273 rat4 [V273,T02] ( 4, 4230.40) ref -> x21 "replacement local" ; V274 rat5 [V274,T26] ( 3, 1208.69) long -> x0 "CSE for expectedClsNode" @@ -321,12 +321,12 @@ G_M51225_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 ldr w22, [x21, #0x0C] cmp w22, #0
- ble G_M51225_IG23
+ ble G_M51225_IG137
ldr x23, [x19, #0x08] ; gcrRegs +[x23] sxtw x24, w22 ldrb w0, [x23, #0x91]
- cbz w0, G_M51225_IG32
+ cbz w0, G_M51225_IG29
;; size=76 bbWeight=1 PerfScore 21.50 G_M51225_IG03: ; bbWeight=1, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz cmp x24, #0 @@ -339,9 +339,9 @@ G_M51225_IG04: ; bbWeight=0.35, gcrefRegs=280000 {x19 x21}, byrefRegs=000 G_M51225_IG05: ; bbWeight=0.65, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x23] ldrb w0, [x23, #0x92]
- cbnz w0, G_M51225_IG185
+ cbnz w0, G_M51225_IG181
cmn x24, #1
- beq G_M51225_IG185
+ beq G_M51225_IG181
neg x24, x24 ;; size=20 bbWeight=0.65 PerfScore 3.92 G_M51225_IG06: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz @@ -349,7 +349,7 @@ G_M51225_IG06: ; bbWeight=1, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 { str x24, [x19, #0xA8] ldr w25, [x21, #0x10] cmp w25, #0
- bgt G_M51225_IG24
+ bgt G_M51225_IG138
sxtw x26, w25 ;; size=20 bbWeight=1 PerfScore 6.00 G_M51225_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref @@ -364,7 +364,7 @@ G_M51225_IG08: ; bbWeight=529.31, gcrefRegs=80000 {x19}, byrefRegs=0000 { G_M51225_IG09: ; bbWeight=234.71, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz sub w0, w0, #1 cmp w0, #6
- bhi G_M51225_IG184
+ bhi G_M51225_IG180
ldr x0, [x19, #0x48] ; gcrRegs +[x0] ldr x1, [x0] @@ -372,9 +372,9 @@ G_M51225_IG09: ; bbWeight=234.71, gcrefRegs=80000 {x19}, byrefRegs=0000 { movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 cmp x1, x2
- bne G_M51225_IG25
+ bne G_M51225_IG139
ldrb w1, [x0, #0x2F]
- cbnz w1, G_M51225_IG179
+ cbnz w1, G_M51225_IG175
ldr x0, [x0, #0x08] ldr x1, [x0] ldr x1, [x1, #0x68] @@ -383,18 +383,18 @@ G_M51225_IG09: ; bbWeight=234.71, gcrefRegs=80000 {x19}, byrefRegs=0000 { ; gcrRegs -[x0] ; gcr arg pop 0 cmn w0, #1
- beq G_M51225_IG180
+ beq G_M51225_IG176
uxtb w28, w0 ;; size=80 bbWeight=234.71 PerfScore 7041.37 G_M51225_IG10: ; bbWeight=234.71, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz sxtw w27, w28 sub w22, w28, #1 cmp w22, #8
- beq G_M51225_IG67
+ beq G_M51225_IG63
;; size=16 bbWeight=234.71 PerfScore 586.78 G_M51225_IG11: ; bbWeight=103.26, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w22, #19
- bhi G_M51225_IG183
+ bhi G_M51225_IG179
mov w0, w22 adr x1, [@RWD00] ldr w1, [x1, x0, LSL #2] @@ -415,19 +415,19 @@ G_M51225_IG12: ; bbWeight=297.24, gcrefRegs=80000 {x19}, byrefRegs=0000 { ;; size=24 bbWeight=297.24 PerfScore 1783.44 G_M51225_IG13: ; bbWeight=529.31, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w27, #12
- beq G_M51225_IG30
+ beq G_M51225_IG27
;; size=8 bbWeight=529.31 PerfScore 793.96 G_M51225_IG14: ; bbWeight=604.34, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x14, [x19, #0x28] ; gcrRegs +[x14] ldr w15, [x14, #0x18]
- tbnz w15, #31, G_M51225_IG113
+ tbnz w15, #31, G_M51225_IG111
;; size=12 bbWeight=604.34 PerfScore 4230.40 G_M51225_IG15: ; bbWeight=591.35, gcrefRegs=84000 {x14 x19}, byrefRegs=0000 {}, byref, isz ldr x14, [x14, #0x08] ldr w12, [x14, #0x08] cmp w15, w12
- bhs G_M51225_IG175
+ bhs G_M51225_IG171
add x14, x14, #16 ; gcrRegs -[x14] ; byrRegs +[x14] @@ -446,11 +446,11 @@ G_M51225_IG17: ; bbWeight=302.17, gcrefRegs=280002 {x1 x19 x21}, byrefReg movk x0, #1 LSL #32 ldr x14, [x21] cmp x14, x0
- bne G_M51225_IG178
+ bne G_M51225_IG174
;; size=24 bbWeight=302.17 PerfScore 1813.03 G_M51225_IG18: ; bbWeight=604.34, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x1]
- cbz x21, G_M51225_IG29
+ cbz x21, G_M51225_IG26
;; size=4 bbWeight=604.34 PerfScore 604.34 G_M51225_IG19: ; bbWeight=582.74, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz add x0, x21, #84 @@ -461,10 +461,10 @@ G_M51225_IG19: ; bbWeight=582.74, gcrefRegs=280000 {x19 x21}, byrefRegs=0 str xzr, [x14] ldr w15, [x21, #0x58] cmp w15, #2
- bne G_M51225_IG45
+ bne G_M51225_IG42
;; size=28 bbWeight=582.74 PerfScore 4370.56 G_M51225_IG20: ; bbWeight=127.54, gcrefRegs=280000 {x19 x21}, byrefRegs=4001 {x0 x14}, byref
- b G_M51225_IG97
+ b G_M51225_IG93
;; size=4 bbWeight=127.54 PerfScore 127.54 G_M51225_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -480,57 +480,20 @@ G_M51225_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 ...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_pgo.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_tiered.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
coreclr_tests.run.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.crossgen2.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.pmi.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries_tests.run.osx.arm64.Release.mch 2 0 1 1 -0 +12 +0.0000%
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 0 0 0 0 -0 +0 0.0000%
realworld.run.osx.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
2 0 1 1 -0 +12

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 25,057 4 25,053 6 (0.02%) 6 (0.02%)
benchmarks.run_pgo.osx.arm64.checked.mch 85,009 48,590 36,419 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,576 37,765 10,811 4 (0.01%) 4 (0.01%)
coreclr_tests.run.osx.arm64.checked.mch 606,058 374,208 231,850 10 (0.00%) 10 (0.00%)
libraries.crossgen2.osx.arm64.checked.mch 266,105 15 266,090 1 (0.00%) 1 (0.00%)
libraries.pmi.osx.arm64.checked.mch 321,707 18 321,689 15 (0.00%) 15 (0.00%)
libraries_tests.run.osx.arm64.Release.mch 630,907 463,264 167,643 19 (0.00%) 19 (0.00%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,522 21,535 280,987 111 (0.04%) 111 (0.04%)
realworld.run.osx.arm64.checked.mch 31,602 3 31,599 0 (0.00%) 0 (0.00%)
2,317,543 945,402 1,372,141 170 (0.01%) 170 (0.01%)

jit-analyze output

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: 312729720 (overridden on cmd)
Total bytes of diff: 312729732 (overridden on cmd)
Total bytes of delta: 12 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          12 : 457350.dasm (0.23 % of base)

1 total files with Code Size differences (0 improved, 1 regressed), 1 unchanged.

Top method regressions (bytes):
          12 (0.23 % of base) : 457350.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

Top method regressions (percentages):
          12 (0.23 % of base) : 457350.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryParser:Run():this (Tier1)

1 total methods with Code Size differences (0 improved, 1 regressed).



windows arm64

Diffs are based on 2,402,908 contexts (955,693 MinOpts, 1,447,215 FullOpts).

MISSED contexts: 174 (0.01%)

Overall (+0 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.windows.arm64.Release.mch 328,693,680 +0 0.00%

FullOpts (+0 bytes)

Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.windows.arm64.Release.mch 123,601,008 +0 0.00%

Example diffs

libraries_tests.run.windows.arm64.Release.mch

+0 (0.00%) : 595095.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)

@@ -102,9 +102,9 @@ ; V90 tmp67 [V90,T37] ( 3, 0 ) byref -> x1 single-def "Spilling address for field-by-field copy" ; V91 tmp68 [V91,T46] ( 2, 0 ) ref -> x3 single-def "argument with side effect" ; V92 tmp69 [V92,T38] ( 3, 0 ) struct (16) [fp+0x50] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V93 tmp70 [V93,T28] ( 2, 0.06) ref -> x3 single-def "argument with side effect" -; V94 tmp71 [V94,T26] ( 3, 0.08) struct (16) [fp+0x40] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion> -; V95 tmp72 [V95 ] ( 2, 0 ) struct (48) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.InterpolatedStringHandlerData>
+; V93 tmp70 [V93 ] ( 2, 0 ) struct (48) [fp+0x20] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.InterpolatedStringHandlerData> +; V94 tmp71 [V94,T28] ( 2, 0.06) ref -> x3 single-def "argument with side effect" +; V95 tmp72 [V95,T26] ( 3, 0.08) struct (16) [fp+0x10] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.CSharp.Conversion>
; V96 cse0 [V96,T22] ( 3, 0.18) long -> x1 "CSE - conservative" ; V97 cse1 [V97,T10] ( 3, 2.75) int -> x0 "CSE - moderate" ; V98 rat0 [V98,T27] ( 3, 0.06) ref -> x1 "Spilling to split statement for tree" @@ -358,7 +358,7 @@ G_M49949_IG23: ; bbWeight=0.02, gcrefRegs=380001 {x0 x19 x20 x21}, byrefR G_M49949_IG24: ; bbWeight=0.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, nogc ; gcrRegs -[x21] ldp x1, x2, [x19, #0x40]
- stp x1, x2, [fp, #0x40]
+ stp x1, x2, [fp, #0x10]
;; size=8 bbWeight=0.01 PerfScore 0.07 G_M49949_IG25: ; bbWeight=0.01, isz, extend ldr x1, [x19, #0x20] @@ -378,7 +378,7 @@ G_M49949_IG26: ; bbWeight=0.01, gcrefRegs=10000A {x1 x3 x20}, byrefRegs=0 ;; size=24 bbWeight=0.01 PerfScore 0.04 G_M49949_IG27: ; bbWeight=0.01, gcrefRegs=100008 {x3 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x1]
- ldp x1, x2, [fp, #0x40] // [V94 tmp71], [V94 tmp71+0x08]
+ ldp x1, x2, [fp, #0x10] // [V95 tmp72], [V95 tmp72+0x08]
; gcrRegs +[x1] mov x0, x20 ; gcrRegs +[x0] @@ -631,13 +631,13 @@ G_M49949_IG49: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by G_M49949_IG50: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, nogc ; gcrRegs +[x19-x20] add x1, fp, #0xD1FFAB1E
- ldp q16, q17, [x1, #0x10] - stp q16, q17, [fp, #0x10] - ldr q16, [x1, #0x30] - str q16, [fp, #0x30]
+ ldp q16, q17, [x1, #0x20] + stp q16, q17, [fp, #0x20] + ldr q16, [x1, #0x40] + str q16, [fp, #0x40]
;; size=20 bbWeight=0 PerfScore 0.00 G_M49949_IG51: ; bbWeight=0, extend
- add x1, fp, #16 // [V95 tmp72]
+ add x1, fp, #32 // [V93 tmp70]
ldr x3, [x19, #0x20] ; gcrRegs +[x3] ldr x3, [x3, #0x08]

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes) PerfScore Overall (FullOpts)
benchmarks.run.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_pgo.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
benchmarks.run_tiered.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
coreclr_tests.run.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.crossgen2.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries.pmi.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
libraries_tests.run.windows.arm64.Release.mch 1 0 0 1 -0 +0 0.0000%
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 0 0 0 0 -0 +0 0.0000%
realworld.run.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
smoke_tests.nativeaot.windows.arm64.checked.mch 0 0 0 0 -0 +0 0.0000%
1 0 0 1 -0 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,651 4 24,647 5 (0.02%) 5 (0.02%)
benchmarks.run_pgo.windows.arm64.checked.mch 98,100 48,818 49,282 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,889 37,115 11,774 4 (0.01%) 4 (0.01%)
coreclr_tests.run.windows.arm64.checked.mch 618,707 379,773 238,934 8 (0.00%) 8 (0.00%)
libraries.crossgen2.windows.arm64.checked.mch 276,178 15 276,163 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 310,881 6 310,875 19 (0.01%) 19 (0.01%)
libraries_tests.run.windows.arm64.Release.mch 650,760 468,332 182,428 18 (0.00%) 18 (0.00%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 317,258 21,619 295,639 115 (0.04%) 115 (0.04%)
realworld.run.windows.arm64.checked.mch 33,309 3 33,306 1 (0.00%) 1 (0.00%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,175 8 24,167 0 (0.00%) 0 (0.00%)
2,402,908 955,693 1,447,215 174 (0.01%) 174 (0.01%)

jit-analyze output

libraries_tests.run.windows.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 328693680 (overridden on cmd)
Total bytes of diff: 328693680 (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,572,855 contexts (1,010,991 MinOpts, 1,561,864 FullOpts).

MISSED contexts: 176 (0.01%)

No diffs found.

Details

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 142,220 69,176 73,044 0 (0.00%) 0 (0.00%)
benchmarks.run.windows.x64.checked.mch 28,176 4 28,172 5 (0.02%) 5 (0.02%)
benchmarks.run_pgo.windows.x64.checked.mch 101,966 50,185 51,781 4 (0.00%) 4 (0.00%)
benchmarks.run_tiered.windows.x64.checked.mch 53,057 37,302 15,755 4 (0.01%) 4 (0.01%)
coreclr_tests.run.windows.x64.checked.mch 584,454 348,263 236,191 7 (0.00%) 7 (0.00%)
libraries.crossgen2.windows.x64.checked.mch 275,771 15 275,756 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 314,324 6 314,318 19 (0.01%) 19 (0.01%)
libraries_tests.run.windows.x64.Release.mch 682,663 484,080 198,583 18 (0.00%) 18 (0.00%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 320,777 21,946 298,831 118 (0.04%) 118 (0.04%)
realworld.run.windows.x64.checked.mch 36,922 3 36,919 1 (0.00%) 1 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,525 11 32,514 0 (0.00%) 0 (0.00%)
2,572,855 1,010,991 1,561,864 176 (0.01%) 176 (0.01%)