Assembly Diffs

linux arm64

Diffs are based on 2,507,310 contexts (1,007,092 MinOpts, 1,500,218 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 8 (0.00%)

Overall (+584 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 80,094,172 +60
benchmarks.run_tiered.linux.arm64.checked.mch 24,600,952 +208
coreclr_tests.run.linux.arm64.checked.mch 508,772,940 +172
libraries.crossgen2.linux.arm64.checked.mch 55,844,024 +84
libraries_tests.run.linux.arm64.Release.mch 395,688,768 +60

FullOpts (+584 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 54,159,016 +60
benchmarks.run_tiered.linux.arm64.checked.mch 4,862,296 +208
coreclr_tests.run.linux.arm64.checked.mch 160,584,028 +172
libraries.crossgen2.linux.arm64.checked.mch 55,842,388 +84
libraries_tests.run.linux.arm64.Release.mch 180,556,816 +60

Example diffs

benchmarks.run_pgo.linux.arm64.checked.mch

+60 (+7.61%) : 102735.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

@@ -10,16 +10,16 @@ ; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T13] ( 12, 103.91) ref -> x0 class-hnd single-def <float[][]>
+; V00 arg0 [V00,T13] ( 15, 104.11) ref -> x0 class-hnd single-def <float[][]>
; V01 arg1 [V01,T20] ( 7, 4.63) ref -> x1 class-hnd single-def <int[][]> ; V02 arg2 [V02,T21] ( 3, 3 ) ref -> x2 class-hnd single-def <double[]> ; V03 arg3 [V03,T23] ( 4, 2.21) ref -> x3 class-hnd single-def <JetStream.SampleVarianceUpperTriangularMatrix>
-; V04 arg4 [V04,T22] ( 4, 2.62) int -> x4 single-def
+; V04 arg4 [V04,T22] ( 5, 2.62) int -> x4 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) int -> zero-ref ;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
-; V07 loc2 [V07,T05] ( 20,1698.38) int -> x5 -; V08 loc3 [V08,T28] ( 5, 0.63) ref -> x8 class-hnd <float[]> -; V09 loc4 [V09,T12] ( 12, 108.61) int -> x7
+; V07 loc2 [V07,T05] ( 25,1698.38) int -> x5 +; V08 loc3 [V08,T28] ( 6, 0.63) ref -> x8 class-hnd <float[]> +; V09 loc4 [V09,T12] ( 13, 108.61) int -> x7
;* V10 loc5 [V10 ] ( 0, 0 ) ubyte -> zero-ref ; V11 loc6 [V11,T07] ( 18,1200.10) int -> x6 ; V12 loc7 [V12,T31] ( 4, 199.58) float -> d16 @@ -45,7 +45,7 @@ ; V32 cse2 [V32,T11] ( 5, 296.93) long -> xip0 "CSE - aggressive" ; V33 cse3 [V33,T25] ( 5, 3.00) long -> x15 "CSE - moderate" ; V34 cse4 [V34,T10] ( 16, 300.70) int -> x12 hoist multi-def "CSE - aggressive"
-; V35 cse5 [V35,T14] ( 7, 101.63) int -> x2 hoist "CSE - aggressive"
+; V35 cse5 [V35,T14] ( 9, 101.84) int -> x2 hoist "CSE - aggressive"
; V36 cse6 [V36,T15] ( 6, 101.28) byref -> x9 hoist "CSE - aggressive" ; V37 cse7 [V37,T18] ( 4, 100.00) int -> x10 hoist multi-def "CSE - aggressive" ; V38 cse8 [V38,T16] ( 4, 100.00) byref -> x11 hoist multi-def "CSE - aggressive" @@ -75,18 +75,18 @@ G_M56974_IG02: ; bbWeight=1, gcrefRegs=010F {x0 x1 x2 x3 x8}, byrefRegs=0 ;; size=8 bbWeight=1 PerfScore 3.50 G_M56974_IG03: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref, isz cmp w2, w6
- ble G_M56974_IG12
+ ble G_M56974_IG17
;; size=8 bbWeight=0.21 PerfScore 0.32 G_M56974_IG04: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref, isz
- cbz x1, G_M56974_IG22 - cbz x0, G_M56974_IG22 - tbnz w6, #31, G_M56974_IG22
+ cbz x1, G_M56974_IG26 + cbz x0, G_M56974_IG26 + tbnz w6, #31, G_M56974_IG26
ldr w10, [x1, #0x08] cmp w10, w2
- blt G_M56974_IG22
+ blt G_M56974_IG26
ldr w10, [x0, #0x08] cmp w10, w2
- blt G_M56974_IG22
+ blt G_M56974_IG26
ldr w10, [x8, #0x08] add x11, x8, #16 ; byrRegs +[x11] @@ -97,7 +97,7 @@ G_M56974_IG04: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0 ;; size=56 bbWeight=0.21 PerfScore 4.20 G_M56974_IG05: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz cmp w7, w10
- bhs G_M56974_IG33
+ bhs G_M56974_IG37
ldr s16, [x11, x13] ldr w15, [x14, #0x08] cmp w15, w5 @@ -105,18 +105,45 @@ G_M56974_IG05: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefR ;; size=24 bbWeight=98.79 PerfScore 889.12 G_M56974_IG06: ; bbWeight=395.17, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz cmp w5, w6
- bne G_M56974_IG15
+ bne G_M56974_IG19
;; size=8 bbWeight=395.17 PerfScore 592.75 G_M56974_IG07: ; bbWeight=395.17, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref movi v17.16b, #0
- b G_M56974_IG16
+ b G_M56974_IG20
;; size=8 bbWeight=395.17 PerfScore 592.75 G_M56974_IG08: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref, isz ; gcrRegs -[x8 x14] ; byrRegs -[x11]
+ cbz x0, G_M56974_IG16 + tbnz w5, #31, G_M56974_IG16 + ldr w7, [x0, #0x08] + cmp w7, w2 + blt G_M56974_IG16 + ;; size=20 bbWeight=0.21 PerfScore 1.34 +G_M56974_IG09: ; bbWeight=0.64, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref + b G_M56974_IG11 + ;; size=4 bbWeight=0.64 PerfScore 0.64 +G_M56974_IG10: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref, isz + add x8, x0, #16 + ; byrRegs +[x8] + ldr x8, [x8, w5, UXTW #3] + ; gcrRegs +[x8] + ; byrRegs -[x8] + mov w7, wzr + cmp w4, #0 + bgt G_M56974_IG13 + ;; size=20 bbWeight=0.21 PerfScore 1.15 +G_M56974_IG11: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref, isz + ; gcrRegs -[x8] + add w5, w5, #1 + cmp w2, w5 + ble G_M56974_IG38 + b G_M56974_IG10 + ;; size=16 bbWeight=0.21 PerfScore 0.63 +G_M56974_IG12: ; bbWeight=0.00, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref, isz
ldr w8, [x0, #0x08] cmp w5, w8
- bhs G_M56974_IG33
+ bhs G_M56974_IG37
add x7, x0, #16 ; byrRegs +[x7] ldr x8, [x7, w5, UXTW #3] @@ -124,52 +151,51 @@ G_M56974_IG08: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 mov w7, wzr ; byrRegs -[x7] cmp w4, #0
- bgt G_M56974_IG10 - ;; size=32 bbWeight=0.21 PerfScore 2.11 -G_M56974_IG09: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref, isz - ; gcrRegs -[x8] - add w5, w5, #1 - cmp w2, w5 - ble G_M56974_IG34 - b G_M56974_IG08 - ;; size=16 bbWeight=0.21 PerfScore 0.63 -G_M56974_IG10: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref, isz - ; gcrRegs +[x8]
+ ble G_M56974_IG16 + ;; size=32 bbWeight=0.00 PerfScore 0.02 +G_M56974_IG13: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref, isz
ldr w6, [x1, #0x08] cmp w5, w6
- bhs G_M56974_IG33
+ bhs G_M56974_IG37
ldr x6, [x9, w5, UXTW #3] ; gcrRegs +[x6]
- tbnz w7, #31, G_M56974_IG12
+ tbnz w7, #31, G_M56974_IG17
;; size=20 bbWeight=0.21 PerfScore 1.79
-G_M56974_IG11: ; bbWeight=6.74, gcrefRegs=014B {x0 x1 x3 x6 x8}, byrefRegs=0200 {x9}, byref, isz
+G_M56974_IG14: ; bbWeight=6.74, gcrefRegs=014B {x0 x1 x3 x6 x8}, byrefRegs=0200 {x9}, byref, isz
ldr w6, [x6, #0x08] ; gcrRegs -[x6] cmp w6, w7
- bgt G_M56974_IG14
+ ble G_M56974_IG17
;; size=12 bbWeight=6.74 PerfScore 30.33
-G_M56974_IG12: ; bbWeight=0.41, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref, isz - add w7, w7, #1 - cmp w7, w4 - blt G_M56974_IG10 - ;; size=12 bbWeight=0.41 PerfScore 0.82 -G_M56974_IG13: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref - ; gcrRegs -[x8] - b G_M56974_IG09 - ;; size=4 bbWeight=0.21 PerfScore 0.21 -G_M56974_IG14: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref - ; gcrRegs +[x8]
+G_M56974_IG15: ; bbWeight=0.21, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref
add w6, w5, #1 b G_M56974_IG03 ;; size=8 bbWeight=0.21 PerfScore 0.32
-G_M56974_IG15: ; bbWeight=395.17, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz - ; gcrRegs +[x14]
+G_M56974_IG16: ; bbWeight=0.00, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref, isz + ; gcrRegs -[x8] + add w5, w5, #1 + cmp w2, w5 + ble G_M56974_IG38 + b G_M56974_IG12 + ;; size=16 bbWeight=0.00 PerfScore 0.01 +G_M56974_IG17: ; bbWeight=0.41, gcrefRegs=010B {x0 x1 x3 x8}, byrefRegs=0200 {x9}, byref, isz + ; gcrRegs +[x8] + add w7, w7, #1 + cmp w7, w4 + blt G_M56974_IG13 + ;; size=12 bbWeight=0.41 PerfScore 0.82 +G_M56974_IG18: ; bbWeight=0.21, gcrefRegs=000B {x0 x1 x3}, byrefRegs=0200 {x9}, byref + ; gcrRegs -[x8] + b G_M56974_IG08 + ;; size=4 bbWeight=0.21 PerfScore 0.21 +G_M56974_IG19: ; bbWeight=395.17, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz + ; gcrRegs +[x8 x14]
; byrRegs +[x11] mov x15, x14 ; gcrRegs +[x15] ldr wip0, [x15, #0x08] cmp w5, wip0
- bhs G_M56974_IG33
+ bhs G_M56974_IG37
add x15, x15, #16 ; gcrRegs -[x15] ; byrRegs +[x15] @@ -180,14 +206,14 @@ G_M56974_IG15: ; bbWeight=395.17, gcrefRegs=410B {x0 x1 x3 x8 x14}, byref sub wip0, wip0, #1 ldr w19, [x15, #0x08] cmp wip0, w19
- bhs G_M56974_IG33
+ bhs G_M56974_IG37
add x15, x15, #16 ; gcrRegs -[x15] ; byrRegs +[x15] ldr s17, [x15, wip0, UXTW #2] fcvt d17, s17 ;; size=56 bbWeight=395.17 PerfScore 8100.90
-G_M56974_IG16: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz
+G_M56974_IG20: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz
; byrRegs -[x15] fcvt d16, s16 fadd d16, d16, d17 @@ -195,15 +221,15 @@ G_M56974_IG16: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefR ldr x15, [x9, xip0] ; gcrRegs +[x15] sxtw w19, w12
- tbnz w19, #31, G_M56974_IG21
+ tbnz w19, #31, G_M56974_IG25
;; size=24 bbWeight=98.79 PerfScore 1136.10
-G_M56974_IG17: ; bbWeight=3161.33, gcrefRegs=C10B {x0 x1 x3 x8 x14 x15}, byrefRegs=0A00 {x9 x11}, byref, isz
+G_M56974_IG21: ; bbWeight=3161.33, gcrefRegs=C10B {x0 x1 x3 x8 x14 x15}, byrefRegs=0A00 {x9 x11}, byref, isz
ldr w15, [x15, #0x08] ; gcrRegs -[x15] cmp w15, w19
- ble G_M56974_IG21
+ ble G_M56974_IG25
;; size=12 bbWeight=3161.33 PerfScore 14225.97
-G_M56974_IG18: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz
+G_M56974_IG22: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz
add x15, x0, #16 ; byrRegs +[x15] ldr x15, [x15, xip0] @@ -211,27 +237,27 @@ G_M56974_IG18: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefR ; byrRegs -[x15] ldr w19, [x15, #0x08] cmp w12, w19
- bhs G_M56974_IG33
+ bhs G_M56974_IG37
add x15, x15, #16 ; gcrRegs -[x15] ; byrRegs +[x15] ldr s17, [x15, w12, UXTW #2] fcvt d17, s17 fcmp d17, d16
- bgt G_M56974_IG21
+ bgt G_M56974_IG25
;; size=40 bbWeight=98.79 PerfScore 1630.06
-G_M56974_IG19: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz
+G_M56974_IG23: ; bbWeight=98.79, gcrefRegs=410B {x0 x1 x3 x8 x14}, byrefRegs=0A00 {x9 x11}, byref, isz
; byrRegs -[x15] ...

benchmarks.run_tiered.linux.arm64.checked.mch

+60 (+8.02%) : 50853.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

@@ -9,16 +9,16 @@ ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T08] ( 12, 12.04) ref -> x19 class-hnd single-def <float[][]>
+; V00 arg0 [V00,T08] ( 15, 12.06) ref -> x19 class-hnd single-def <float[][]>
; V01 arg1 [V01,T09] ( 9, 12.04) ref -> x20 class-hnd single-def <int[][]> ; V02 arg2 [V02,T21] ( 3, 3 ) ref -> x23 class-hnd single-def <double[]> ; V03 arg3 [V03,T20] ( 4, 6 ) ref -> x22 class-hnd single-def <JetStream.SampleVarianceUpperTriangularMatrix>
-; V04 arg4 [V04,T10] ( 4, 12 ) int -> x21 single-def
+; V04 arg4 [V04,T10] ( 5, 12 ) int -> x21 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) int -> zero-ref ;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
-; V07 loc2 [V07,T03] ( 12, 38.50) int -> x25 -; V08 loc3 [V08,T16] ( 5, 10 ) ref -> x27 class-hnd <float[]> -; V09 loc4 [V09,T00] ( 12, 56 ) int -> x24
+; V07 loc2 [V07,T03] ( 17, 37.52) int -> x25 +; V08 loc3 [V08,T16] ( 6, 10 ) ref -> x27 class-hnd <float[]> +; V09 loc4 [V09,T00] ( 13, 56 ) int -> x24
;* V10 loc5 [V10 ] ( 0, 0 ) ubyte -> zero-ref ; V11 loc6 [V11,T05] ( 16, 22.58) int -> x26 ;* V12 loc7 [V12 ] ( 0, 0 ) float -> zero-ref @@ -40,7 +40,7 @@ ; V28 cse2 [V28,T15] ( 10, 10 ) long -> x8 multi-def "CSE - moderate" ; V29 cse3 [V29,T14] ( 4, 11.88) long -> x1 "CSE - aggressive" ; V30 cse4 [V30,T22] ( 4, 0.12) long -> x1 "CSE - conservative"
-; V31 cse5 [V31,T07] ( 7, 16 ) int -> x28 "CSE - aggressive"
+; V31 cse5 [V31,T07] ( 9, 17 ) int -> x28 "CSE - aggressive"
; V32 cse6 [V32,T06] ( 14, 18 ) int -> x5 multi-def "CSE - aggressive" ; TEMP_01 double -> [fp+0x10] ; @@ -67,29 +67,58 @@ G_M56974_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ldr w26, [fp, #0x9C] ;; size=60 bbWeight=0.01 PerfScore 0.23 G_M56974_IG02: ; bbWeight=0.01, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref
- b G_M56974_IG11
+ b G_M56974_IG15
;; size=4 bbWeight=0.01 PerfScore 0.01
-G_M56974_IG03: ; bbWeight=2, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG03: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x27]
+ cbz x19, G_M56974_IG08 + tbnz w25, #31, G_M56974_IG08
ldr w0, [x19, #0x08]
- cmp w25, w0 - bhs G_M56974_IG22
+ cmp w0, w28 + blt G_M56974_IG08 + b G_M56974_IG05 + ;; size=24 bbWeight=1 PerfScore 7.50 +G_M56974_IG04: ; bbWeight=1.98, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
add x0, x19, #16 ; byrRegs +[x0] ldr x27, [x0, w25, UXTW #3] ; gcrRegs +[x27] mov w24, wzr cmp w21, #0
- bgt G_M56974_IG06 - ;; size=32 bbWeight=2 PerfScore 20.00 -G_M56974_IG04: ; bbWeight=8, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ bgt G_M56974_IG10 + ;; size=20 bbWeight=1.98 PerfScore 10.89 +G_M56974_IG05: ; bbWeight=7.92, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x27] ; byrRegs -[x0] add w25, w25, #1 cmp w28, w25
- bgt G_M56974_IG03 - ;; size=12 bbWeight=8 PerfScore 16.00 -G_M56974_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ bgt G_M56974_IG04 + ;; size=12 bbWeight=7.92 PerfScore 15.84 +G_M56974_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19-x20 x22-x23] + b G_M56974_IG09 + ;; size=4 bbWeight=1 PerfScore 1.00 +G_M56974_IG07: ; bbWeight=0.02, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x19-x20 x22-x23] + ldr w0, [x19, #0x08] + cmp w25, w0 + bhs G_M56974_IG26 + add x0, x19, #16 + ; byrRegs +[x0] + ldr x27, [x0, w25, UXTW #3] + ; gcrRegs +[x27] + mov w24, wzr + cmp w21, #0 + bgt G_M56974_IG10 + ;; size=32 bbWeight=0.02 PerfScore 0.20 +G_M56974_IG08: ; bbWeight=0.08, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x27] + ; byrRegs -[x0] + add w25, w25, #1 + cmp w28, w25 + bgt G_M56974_IG07 + ;; size=12 bbWeight=0.08 PerfScore 0.16 +G_M56974_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19-x20 x22-x23] ldp x27, x28, [sp, #0x60] ldp x25, x26, [sp, #0x50] @@ -101,55 +130,55 @@ G_M56974_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add sp, sp, #112 ret lr ;; size=36 bbWeight=1 PerfScore 9.50
-G_M56974_IG06: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M56974_IG10: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19-x20 x22-x23 x27] ldr w0, [x20, #0x08] cmp w25, w0
- bhs G_M56974_IG22
+ bhs G_M56974_IG26
add x0, x20, #16 ; byrRegs +[x0] ldr x0, [x0, w25, UXTW #3] ; gcrRegs +[x0] ; byrRegs -[x0]
- tbnz w24, #31, G_M56974_IG08
+ tbnz w24, #31, G_M56974_IG12
;; size=24 bbWeight=2 PerfScore 18.00
-G_M56974_IG07: ; bbWeight=16, gcrefRegs=8D80001 {x0 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG11: ; bbWeight=16, gcrefRegs=8D80001 {x0 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
ldr w0, [x0, #0x08] ; gcrRegs -[x0] cmp w0, w24
- bgt G_M56974_IG10
+ bgt G_M56974_IG14
;; size=12 bbWeight=16 PerfScore 72.00
-G_M56974_IG08: ; bbWeight=8, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG12: ; bbWeight=8, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1 cmp w24, w21
- blt G_M56974_IG06
+ blt G_M56974_IG10
;; size=12 bbWeight=8 PerfScore 16.00
-G_M56974_IG09: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
+G_M56974_IG13: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x27]
- b G_M56974_IG04
+ b G_M56974_IG03
;; size=4 bbWeight=1 PerfScore 1.00
-G_M56974_IG10: ; bbWeight=0.50, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref
+G_M56974_IG14: ; bbWeight=0.50, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref
; gcrRegs +[x27] add w26, w25, #1 ;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M56974_IG11: ; bbWeight=1, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG15: ; bbWeight=1, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
ldr w28, [x23, #0x08] cmp w28, w26
- ble G_M56974_IG08 - cbz x20, G_M56974_IG17 - cbz x19, G_M56974_IG17 - tbnz w26, #31, G_M56974_IG17
+ ble G_M56974_IG12 + cbz x20, G_M56974_IG21 + cbz x19, G_M56974_IG21 + tbnz w26, #31, G_M56974_IG21
ldr w0, [x20, #0x08] cmp w0, w28
- blt G_M56974_IG17
+ blt G_M56974_IG21
ldr w0, [x19, #0x08] cmp w0, w28
- blt G_M56974_IG17
+ blt G_M56974_IG21
;; size=48 bbWeight=1 PerfScore 16.50
-G_M56974_IG12: ; bbWeight=3.96, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG16: ; bbWeight=3.96, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
ldr w0, [x27, #0x08] cmp w24, w0
- bhs G_M56974_IG22
+ bhs G_M56974_IG26
add x0, x27, #16 ; byrRegs +[x0] ldr s16, [x0, w24, UXTW #2] @@ -179,15 +208,15 @@ G_M56974_IG12: ; bbWeight=3.96, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, ; gcrRegs +[x4] add w5, w24, #1 sxtw w6, w5
- tbnz w6, #31, G_M56974_IG15
+ tbnz w6, #31, G_M56974_IG19
;; size=100 bbWeight=3.96 PerfScore 134.64
-G_M56974_IG13: ; bbWeight=15.84, gcrefRegs=8D80018 {x3 x4 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG17: ; bbWeight=15.84, gcrefRegs=8D80018 {x3 x4 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0] ldr w0, [x4, #0x08] cmp w0, w6
- ble G_M56974_IG15
+ ble G_M56974_IG19
;; size=12 bbWeight=15.84 PerfScore 71.28
-G_M56974_IG14: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG18: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x4] add x0, x19, #16 ; byrRegs +[x0] @@ -196,16 +225,16 @@ G_M56974_IG14: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27 ldr w0, [x7, #0x08] ; byrRegs -[x0] cmp w5, w0
- bhs G_M56974_IG22
+ bhs G_M56974_IG26
add x0, x7, #16 ; byrRegs +[x0] ubfiz x8, x5, #2, #32 ldr s16, [x0, x8] fcvt d16, s16 fcmp d16, d8
- ble G_M56974_IG16
+ ble G_M56974_IG20
;; size=44 bbWeight=1.98 PerfScore 34.65
-G_M56974_IG15: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG19: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x7] ; byrRegs -[x0] add x8, x19, #16 @@ -215,7 +244,7 @@ G_M56974_IG15: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27 ; byrRegs -[x8] ldr w0, [x8, #0x08] cmp w5, w0
- bhs G_M56974_IG22
+ bhs G_M56974_IG26
add x0, x8, #16 ; byrRegs +[x0] ubfiz x8, x5, #2, #32 @@ -225,23 +254,23 @@ G_M56974_IG15: ; bbWeight=1.98, gcrefRegs=8D80008 {x3 x19 x20 x22 x23 x27 ldr w0, [x3, #0x08] ; byrRegs -[x0] cmp w5, w0
- bhs G_M56974_IG22
+ bhs G_M56974_IG26
add x0, x3, #16 ; byrRegs +[x0] str w25, [x0, x8] ;; size=56 bbWeight=1.98 PerfScore 38.61
-G_M56974_IG16: ; bbWeight=3.96, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG20: ; bbWeight=3.96, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x3] ; byrRegs -[x0] add w26, w26, #1 cmp w28, w26
- bgt G_M56974_IG12 - b G_M56974_IG08
+ bgt G_M56974_IG16 + b G_M56974_IG12
;; size=16 bbWeight=3.96 PerfScore 11.88
-G_M56974_IG17: ; bbWeight=0.04, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG21: ; bbWeight=0.04, gcrefRegs=8D80000 {x19 x20 x22 x23 x27}, byrefRegs=0000 {}, byref, isz
ldr w0, [x27, #0x08] cmp w24, w0
- bhs G_M56974_IG22
...

+148 (+16.02%) : 35206.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)

@@ -10,44 +10,47 @@ ; Final local variable assignments ; ; V00 arg0 [V00,T16] ( 7, 10.09) ref -> x0 class-hnd single-def <double[][]>
-; V01 arg1 [V01,T13] ( 7, 14.21) ref -> x1 class-hnd single-def <double[]> -; V02 arg2 [V02,T18] ( 9, 9.08) ref -> x20 class-hnd single-def <double[][][]> -; V03 arg3 [V03,T19] ( 9, 9.08) ref -> x21 class-hnd single-def <double[][]> -; V04 arg4 [V04,T12] ( 8, 17 ) int -> x19 single-def -; V05 loc0 [V05,T09] ( 11, 20.08) ref -> x24 class-hnd <double[][]> -; V06 loc1 [V06,T08] ( 10, 20.20) ref -> x23 class-hnd <double[]> -; V07 loc2 [V07,T28] ( 2, 2 ) long -> x27
+; V01 arg1 [V01,T13] ( 9, 14.33) ref -> x1 class-hnd single-def <double[]> +; V02 arg2 [V02,T18] ( 12, 9.10) ref -> x20 class-hnd single-def <double[][][]> +; V03 arg3 [V03,T19] ( 12, 9.10) ref -> x21 class-hnd single-def <double[][]> +; V04 arg4 [V04,T08] ( 12, 20 ) int -> x19 single-def +; V05 loc0 [V05,T10] ( 12, 20.08) ref -> x24 class-hnd <double[][]> +; V06 loc1 [V06,T09] ( 13, 20.32) ref -> x23 class-hnd <double[]> +; V07 loc2 [V07,T28] ( 2, 2 ) long -> x25
; V08 loc3 [V08,T02] ( 14, 94.16) int -> x2
-; V09 loc4 [V09,T06] ( 6, 30 ) int -> x3 -; V10 loc5 [V10,T00] ( 32,127.52) int -> x22
+; V09 loc4 [V09,T07] ( 11, 27.04) int -> x3 +; V10 loc5 [V10,T00] ( 40,127.84) int -> x22
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T33] ( 4, 64 ) double -> d16 "Strict ordering of exceptions for Array store" -; V13 tmp2 [V13,T01] ( 6, 96 ) ref -> x11 class-hnd "Strict ordering of exceptions for Array store" <double[]> -; V14 tmp3 [V14,T34] ( 4, 64 ) double -> d16 "Strict ordering of exceptions for Array store"
+; V12 tmp1 [V12,T36] ( 6, 64.00) double -> d16 "Strict ordering of exceptions for Array store" +; V13 tmp2 [V13,T01] ( 6, 96 ) ref -> x9 class-hnd "Strict ordering of exceptions for Array store" <double[]> +; V14 tmp3 [V14,T37] ( 4, 64 ) double -> d16 "Strict ordering of exceptions for Array store"
;* V15 tmp4 [V15 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ; V16 tmp5 [V16,T20] ( 6, 10 ) ref -> registers class-hnd exact "Inline stloc first use temp" <<unknown class>> ; V17 tmp6 [V17 ] ( 4, 8 ) int -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ;* V18 tmp7 [V18 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V19 tmp8 [V19,T03] ( 5, 64.32) ref -> x13 "arr expr" -; V20 cse0 [V20,T10] ( 4, 20.04) ref -> x10 hoist multi-def "CSE - aggressive" -; V21 cse1 [V21,T31] ( 2, 0.20) ref -> x7 hoist "CSE - conservative" -; V22 cse2 [V22,T07] ( 6, 27.92) ref -> x7 multi-def "CSE - aggressive" -; V23 cse3 [V23,T15] ( 6, 12.12) long -> x6 hoist multi-def "CSE - aggressive" -; V24 cse4 [V24,T04] ( 3, 47.52) long -> x6 "CSE - aggressive" -; V25 cse5 [V25,T05] ( 3, 47.52) long -> x9 "CSE - aggressive"
+; V19 tmp8 [V19,T03] ( 5, 64.32) ref -> x10 "arr expr" +; V20 cse0 [V20,T11] ( 4, 20.04) ref -> x8 hoist multi-def "CSE - aggressive" +; V21 cse1 [V21,T33] ( 2, 0.20) ref -> x5 hoist "CSE - conservative" +; V22 cse2 [V22,T06] ( 6, 27.92) ref -> x5 multi-def "CSE - aggressive" +; V23 cse3 [V23,T15] ( 6, 12.12) long -> x4 hoist multi-def "CSE - aggressive" +; V24 cse4 [V24,T04] ( 3, 47.52) long -> x7 "CSE - aggressive" +; V25 cse5 [V25,T05] ( 3, 47.04) long -> x4 "CSE - aggressive"
; V26 cse6 [V26,T17] ( 3, 11.88) long -> x0 "CSE - aggressive"
-; V27 cse7 [V27,T25] ( 3, 6 ) long -> x2 "CSE - aggressive" -; V28 cse8 [V28,T29] ( 3, 0.48) long -> x6 "CSE - conservative" -; V29 cse9 [V29,T30] ( 3, 0.48) long -> x8 "CSE - conservative" -; V30 cse10 [V30,T32] ( 3, 0.12) long -> x0 "CSE - conservative" -; V31 cse11 [V31,T27] ( 3, 4.05) byref -> x5 hoist "CSE - aggressive" -; V32 cse12 [V32,T14] ( 3, 16.01) byref -> x4 hoist "CSE - aggressive" -; V33 cse13 [V33,T24] ( 4, 8.08) int -> x8 hoist multi-def "CSE - aggressive" -; V34 cse14 [V34,T23] ( 4, 8.08) byref -> x9 hoist multi-def "CSE - aggressive" -; V35 cse15 [V35,T11] ( 4, 20.04) byref -> x2 hoist multi-def "CSE - aggressive" -; V36 cse16 [V36,T26] ( 4, 5.04) long -> x28 hoist multi-def "CSE - aggressive" -; V37 cse17 [V37,T21] ( 6, 9.04) byref -> x25 hoist multi-def "CSE - aggressive" -; V38 cse18 [V38,T22] ( 6, 9.04) byref -> x26 hoist multi-def "CSE - aggressive"
+; V27 cse7 [V27,T25] ( 3, 5.94) long -> x2 "CSE - aggressive" +; V28 cse8 [V28,T29] ( 3, 0.48) long -> x4 "CSE - conservative" +; V29 cse9 [V29,T30] ( 3, 0.48) long -> x6 "CSE - conservative" +; V30 cse10 [V30,T31] ( 3, 0.48) long -> x4 "CSE - conservative" +; V31 cse11 [V31,T34] ( 3, 0.12) long -> x0 "CSE - conservative" +; V32 cse12 [V32,T35] ( 3, 0.06) long -> x2 "CSE - conservative" +; V33 cse13 [V33,T27] ( 3, 4.05) byref -> x26 hoist "CSE - aggressive" +; V34 cse14 [V34,T14] ( 4, 16.01) byref -> x25 hoist "CSE - aggressive" +; V35 cse15 [V35,T24] ( 4, 8.08) int -> x6 hoist multi-def "CSE - aggressive" +; V36 cse16 [V36,T23] ( 4, 8.08) byref -> x7 hoist multi-def "CSE - aggressive" +; V37 cse17 [V37,T12] ( 4, 19.84) byref -> x2 hoist multi-def "CSE - aggressive" +; V38 cse18 [V38,T26] ( 4, 5.04) long -> x26 hoist multi-def "CSE - aggressive" +; V39 cse19 [V39,T21] ( 8, 9.04) byref -> x27 hoist multi-def "CSE - aggressive" +; V40 cse20 [V40,T22] ( 8, 9.04) byref -> x28 hoist multi-def "CSE - aggressive" +; V41 cse21 [V41,T32] ( 2, 0.24) byref -> x2 hoist "CSE - conservative"
; ; Lcl frame size = 16 @@ -71,123 +74,186 @@ G_M9806_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ldr w22, [fp, #0xA4] ;; size=56 bbWeight=0.01 PerfScore 0.22 G_M9806_IG02: ; bbWeight=0.01, gcrefRegs=1B00003 {x0 x1 x20 x21 x23 x24}, byrefRegs=0000 {}, byref
- add x4, x1, #16 - ; byrRegs +[x4] - add x5, x0, #16 - ; byrRegs +[x5] - b G_M9806_IG22 - ;; size=12 bbWeight=0.01 PerfScore 0.02 -G_M9806_IG03: ; bbWeight=2, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=0030 {x4 x5}, byref, isz - ; gcrRegs -[x23-x24] - ldr w2, [x20, #0x08] - cmp w3, w2 - bhs G_M9806_IG30 - add x25, x20, #16
+ add x25, x1, #16
; byrRegs +[x25]
- ubfiz x2, x3, #3, #32 - ldr x24, [x25, x2] - ; gcrRegs +[x24] - ldr w6, [x21, #0x08] - cmp w3, w6 - bhs G_M9806_IG30 - add x26, x21, #16
+ add x26, x0, #16
; byrRegs +[x26]
- ldr x23, [x26, x2]
+ b G_M9806_IG28 + ;; size=12 bbWeight=0.01 PerfScore 0.02 +G_M9806_IG03: ; bbWeight=1, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=6000000 {x25 x26}, byref, isz + ; gcrRegs -[x24] + cbz x20, G_M9806_IG14 + cbz x21, G_M9806_IG14 + orr w2, w3, w19 + tbnz w2, #31, G_M9806_IG14 + ldr w2, [x20, #0x08] + cmp w2, w19 + blt G_M9806_IG14 + ldr w2, [x21, #0x08] + cmp w2, w19 + blt G_M9806_IG14 + b G_M9806_IG05 + ;; size=44 bbWeight=1 PerfScore 13.50 +G_M9806_IG04: ; bbWeight=1.98, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=6000000 {x25 x26}, byref + ; gcrRegs -[x23] + add x27, x20, #16 + ; byrRegs +[x27] + ubfiz x2, x3, #3, #32 + ldr x24, [x27, x2] + ; gcrRegs +[x24] + add x28, x21, #16 + ; byrRegs +[x28] + ldr x23, [x28, x2]
; gcrRegs +[x23] mov w22, wzr
- b G_M9806_IG21 - ;; size=52 bbWeight=2 PerfScore 37.00 -G_M9806_IG04: ; bbWeight=8, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=0030 {x4 x5}, byref, isz
+ b G_M9806_IG27 + ;; size=28 bbWeight=1.98 PerfScore 18.81 +G_M9806_IG05: ; bbWeight=7.92, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=6000000 {x25 x26}, byref, isz
; gcrRegs -[x24]
- ; byrRegs -[x25-x26]
+ ; byrRegs -[x27-x28]
mov w22, wzr
- cbz x1, G_M9806_IG08 - ;; size=8 bbWeight=8 PerfScore 12.00 -G_M9806_IG05: ; bbWeight=4, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=0030 {x4 x5}, byref, isz - cbz x23, G_M9806_IG08
+ cbz x1, G_M9806_IG09 + ;; size=8 bbWeight=7.92 PerfScore 11.88 +G_M9806_IG06: ; bbWeight=3.96, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=6000000 {x25 x26}, byref, isz + cbz x23, G_M9806_IG09
ldr w2, [x1, #0x08] cmp w2, #101
- blt G_M9806_IG08
+ blt G_M9806_IG09
ldr w2, [x23, #0x08] cmp w2, #101
- blt G_M9806_IG08
+ blt G_M9806_IG09
add x2, x23, #16 ; byrRegs +[x2]
- ;; size=32 bbWeight=4 PerfScore 42.00 -G_M9806_IG06: ; bbWeight=15.84, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=0034 {x2 x4 x5}, byref, isz
+ ;; size=32 bbWeight=3.96 PerfScore 41.58 +G_M9806_IG07: ; bbWeight=15.68, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=6000004 {x2 x25 x26}, byref, isz
; gcrRegs -[x23]
- ubfiz x6, x22, #3, #32 - ldr d16, [x4, x6] - str d16, [x2, x6]
+ ubfiz x4, x22, #3, #32 + ldr d16, [x25, x4] + str d16, [x2, x4]
add w22, w22, #1 cmp w22, #101
- blt G_M9806_IG06 - ;; size=24 bbWeight=15.84 PerfScore 110.88 -G_M9806_IG07: ; bbWeight=8, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=0030 {x4 x5}, byref
+ blt G_M9806_IG07 + ;; size=24 bbWeight=15.68 PerfScore 109.77 +G_M9806_IG08: ; bbWeight=7.92, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=6000000 {x25 x26}, byref
; byrRegs -[x2]
- b G_M9806_IG10 - ;; size=4 bbWeight=8 PerfScore 8.00 -G_M9806_IG08: ; bbWeight=0.04, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=0030 {x4 x5}, byref
+ b G_M9806_IG11 + ;; size=4 bbWeight=7.92 PerfScore 7.92 +G_M9806_IG09: ; bbWeight=0.04, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=6000000 {x25 x26}, byref
; gcrRegs +[x23] ldr wzr, [x1, #0x08] add x2, x23, #16 ; byrRegs +[x2] ;; size=8 bbWeight=0.04 PerfScore 0.14
-G_M9806_IG09: ; bbWeight=0.16, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=0034 {x2 x4 x5}, byref, isz - ldr w6, [x1, #0x08] - cmp w22, w6 - bhs G_M9806_IG30 - ubfiz x6, x22, #3, #32 - ldr d16, [x4, x6] - ldr w7, [x23, #0x08] - cmp w22, w7 - bhs G_M9806_IG30 - str d16, [x2, x6]
+G_M9806_IG10: ; bbWeight=0.16, gcrefRegs=B00003 {x0 x1 x20 x21 x23}, byrefRegs=6000004 {x2 x25 x26}, byref, isz + ldr w4, [x1, #0x08] + cmp w22, w4 + bhs G_M9806_IG36 + ubfiz x4, x22, #3, #32 + ldr d16, [x25, x4] + ldr w5, [x23, #0x08] + cmp w22, w5 + bhs G_M9806_IG36 + str d16, [x2, x4]
add w22, w22, #1 cmp w22, #101
- blt G_M9806_IG09 - ;; size=48 bbWeight=0.16 PerfScore 2.56 -G_M9806_IG10: ; bbWeight=8, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=0030 {x4 x5}, byref, isz
+ blt G_M9806_IG10 + ;; size=48 bbWeight=0.16 PerfScore 2.53 +G_M9806_IG11: ; bbWeight=7.92, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz
; gcrRegs -[x23] ; byrRegs -[x2] add w3, w3, #1 cmp w3, w19
- blt G_M9806_IG03 - ;; size=12 bbWeight=8 PerfScore 16.00 -G_M9806_IG11: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ blt G_M9806_IG04 + ;; size=12 bbWeight=7.92 PerfScore 15.84 +G_M9806_IG12: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0-x1]
- ; byrRegs -[x4-x5]
+ ; byrRegs -[x25-x26] + b G_M9806_IG17 + ;; size=4 bbWeight=1 PerfScore 1.00 +G_M9806_IG13: ; bbWeight=0.02, gcrefRegs=300003 {x0 x1 x20 x21}, byrefRegs=6000000 {x25 x26}, byref, isz + ; gcrRegs +[x0-x1] + ; byrRegs +[x25-x26] + ldr w2, [x20, #0x08] + cmp w3, w2 + bhs G_M9806_IG36 + add x27, x20, #16 + ; byrRegs +[x27] + ubfiz x2, x3, #3, #32 + ldr x24, [x27, x2] + ; gcrRegs +[x24] + ldr w4, [x21, #0x08] + cmp w3, w4
...

coreclr_tests.run.linux.arm64.checked.mch

+172 (+47.78%) : 519607.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)

@@ -10,114 +10,180 @@ ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T06] ( 5, 3.54) ref -> x19 class-hnd single-def <System.Collections.Generic.List`1[NamedSet][]> -; V01 loc0 [V01,T07] ( 5, 2.61) int -> x23 -; V02 loc1 [V02,T02] ( 8,123.59) ref -> x22 class-hnd <System.Collections.Generic.List`1[NamedSet]> -; V03 loc2 [V03,T09] ( 2, 1.57) ubyte -> x21 -; V04 loc3 [V04,T03] ( 9, 75.20) int -> x20 -; V05 loc4 [V05,T01] ( 8,130.32) int -> x21
+; V00 arg0 [V00,T06] ( 9, 4.04) ref -> x19 class-hnd single-def <System.Collections.Generic.List`1[NamedSet][]> +; V01 loc0 [V01,T07] ( 10, 2.59) int -> x23 +; V02 loc1 [V02,T02] ( 14,123.59) ref -> x22 class-hnd <System.Collections.Generic.List`1[NamedSet]> +; V03 loc2 [V03,T08] ( 4, 1.57) ubyte -> x20 +; V04 loc3 [V04,T03] ( 18, 75.20) int -> x24 +; V05 loc4 [V05,T01] ( 10,130.32) int -> x21
; V06 loc5 [V06,T00] ( 6,380.48) int -> x20 ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T04] ( 3, 63.57) ref -> x0 class-hnd "Inlining Arg" <<unknown class>> -; V09 tmp2 [V09,T05] ( 3, 63.57) ref -> x0 "arr expr" -; V10 cse0 [V10,T08] ( 3, 1.57) int -> x0 hoist multi-def "CSE - aggressive"
+; V08 tmp1 [V08,T04] ( 6, 63.57) ref -> x26 class-hnd "Inlining Arg" <<unknown class>> +; V09 tmp2 [V09,T05] ( 6, 63.57) ref -> x25 "arr expr"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M3612_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]! - stp x19, x20, [sp, #0x18] - stp x21, x22, [sp, #0x28] - str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x50]! + stp x19, x20, [sp, #0x10] + stp x21, x22, [sp, #0x20] + stp x23, x24, [sp, #0x30] + stp x25, x26, [sp, #0x40]
mov fp, sp
- ldr x19, [fp, #0x78]
+ ldr x19, [fp, #0x88]
; gcrRegs +[x19]
- ldr w23, [fp, #0x74] - ldr x22, [fp, #0x68]
+ ldr w23, [fp, #0x84] + ldr x22, [fp, #0x78]
; gcrRegs +[x22]
- ldp w20, w21, [fp, #0x58] - ;; size=36 bbWeight=1 PerfScore 12.50
+ ldp w20, w21, [fp, #0x68] + ;; size=40 bbWeight=1 PerfScore 13.50
G_M3612_IG02: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- b G_M3612_IG11
+ b G_M3612_IG17
;; size=4 bbWeight=1 PerfScore 1.00
-G_M3612_IG03: ; bbWeight=0.52, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M3612_IG03: ; bbWeight=0.52, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- cmp w23, w0 - bhs G_M3612_IG15
add x0, x19, #16 ; byrRegs +[x0] ldr x22, [x0, w23, UXTW #3] ; gcrRegs +[x22]
- ;; size=16 bbWeight=0.52 PerfScore 2.61
+ ;; size=8 bbWeight=0.52 PerfScore 1.81
G_M3612_IG04: ; bbWeight=0.52, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz ; byrRegs -[x0]
- mov w21, wzr
+ mov w20, wzr
ldr w0, [x22, #0x10]
- sub w20, w0, #2 - tbnz w20, #31, G_M3612_IG06 - ;; size=16 bbWeight=0.52 PerfScore 2.61 -G_M3612_IG05: ; bbWeight=10.59, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+ sub w24, w0, #2 + tbnz w24, #31, G_M3612_IG06 + ;; size=16 bbWeight=0.52 PerfScore 2.58 +G_M3612_IG05: ; bbWeight=10.49, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
ldr w0, [x22, #0x10]
- cmp w20, w0 - bhs G_M3612_IG18 - ldr x0, [x22, #0x08] - ; gcrRegs +[x0] - ldr w1, [x0, #0x08] - cmp w20, w1 - bhs G_M3612_IG15 - add x0, x0, #16 - ; gcrRegs -[x0]
+ cmp w24, w0 + bhs G_M3612_IG24 + ldr x25, [x22, #0x08] + ; gcrRegs +[x25] + ldr w0, [x25, #0x08] + cmp w24, w0 + bhs G_M3612_IG21 + add x0, x25, #16
; byrRegs +[x0]
- ldr x0, [x0, w20, UXTW #3]
+ ldr x0, [x0, w24, UXTW #3]
; gcrRegs +[x0] ; byrRegs -[x0]
- ldr x0, [x0, #0x08] - ldr w1, [x0, #0x28] - ldr w0, [x0, #0x30]
+ ldr x26, [x0, #0x08] + ; gcrRegs +[x26] + ldr w0, [x26, #0x28]
; gcrRegs -[x0]
- sub w0, w1, w0
+ ldr w1, [x26, #0x30] + sub w0, w0, w1
cbz w0, G_M3612_IG04 mov x0, x22 ; gcrRegs +[x0]
- mov w1, w20
+ mov w1, w24
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2
- ; gcrRegs -[x0]
+ ; gcrRegs -[x0 x25-x26]
; gcr arg pop 0
- sub w20, w20, #1 - tbz w20, #31, G_M3612_IG05 - ;; size=92 bbWeight=10.59 PerfScore 360.21 -G_M3612_IG06: ; bbWeight=1.04, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz - cbnz w21, G_M3612_IG04 - ;; size=4 bbWeight=1.04 PerfScore 1.04
+ sub w24, w24, #1 + tbz w24, #31, G_M3612_IG05 + ;; size=92 bbWeight=10.49 PerfScore 356.60 +G_M3612_IG06: ; bbWeight=1.03, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz + cbnz w20, G_M3612_IG04 + ;; size=4 bbWeight=1.03 PerfScore 1.03
G_M3612_IG07: ; bbWeight=0.52, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz ldr w0, [x22, #0x10] sub w21, w0, #2
- tbz w21, #31, G_M3612_IG10 - ;; size=12 bbWeight=0.52 PerfScore 2.35
+ tbz w21, #31, G_M3612_IG16 + ;; size=12 bbWeight=0.52 PerfScore 2.33
G_M3612_IG08: ; bbWeight=0.52, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x22] add w23, w23, #1 ldr w0, [x19, #0x08] cmp w0, w23
- ble G_M3612_IG16
+ ble G_M3612_IG22
b G_M3612_IG03
- ;; size=20 bbWeight=0.52 PerfScore 3.13 -G_M3612_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ;; size=20 bbWeight=0.52 PerfScore 3.10 +G_M3612_IG09: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + cbz x19, G_M3612_IG15 + tbnz w23, #31, G_M3612_IG15
ldr wzr, [x19, #0x08] b G_M3612_IG08
- ;; size=8 bbWeight=0.50 PerfScore 1.98 -G_M3612_IG10: ; bbWeight=9.76, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ;; size=16 bbWeight=0.50 PerfScore 2.97 +G_M3612_IG10: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ldr w0, [x19, #0x08] + cmp w23, w0 + bhs G_M3612_IG21 + add x0, x19, #16 + ; byrRegs +[x0] + ldr x22, [x0, w23, UXTW #3] + ; gcrRegs +[x22] + ;; size=20 bbWeight=0.01 PerfScore 0.04 +G_M3612_IG11: ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz + ; byrRegs -[x0] + mov w20, wzr + ldr w0, [x22, #0x10] + sub w24, w0, #2 + tbnz w24, #31, G_M3612_IG13 + ;; size=16 bbWeight=0.01 PerfScore 0.03 +G_M3612_IG12: ; bbWeight=0.11, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz + ldr w0, [x22, #0x10] + cmp w24, w0 + bhs G_M3612_IG24 + ldr x25, [x22, #0x08] + ; gcrRegs +[x25] + ldr w0, [x25, #0x08] + cmp w24, w0 + bhs G_M3612_IG21 + add x0, x25, #16 + ; byrRegs +[x0] + ldr x0, [x0, w24, UXTW #3] + ; gcrRegs +[x0] + ; byrRegs -[x0] + ldr x26, [x0, #0x08] + ; gcrRegs +[x26] + ldr w0, [x26, #0x28] + ; gcrRegs -[x0] + ldr w1, [x26, #0x30] + sub w0, w0, w1 + cbz w0, G_M3612_IG11 + mov x0, x22 + ; gcrRegs +[x0] + mov w1, w24 + movz x2, #0xD1FFAB1E // code for <unknown method> + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + ldr x2, [x2] + blr x2 + ; gcrRegs -[x0 x25-x26] + ; gcr arg pop 0 + sub w24, w24, #1 + tbz w24, #31, G_M3612_IG12 + ;; size=92 bbWeight=0.11 PerfScore 3.60 +G_M3612_IG13: ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz + cbnz w20, G_M3612_IG11 + ;; size=4 bbWeight=0.01 PerfScore 0.01 +G_M3612_IG14: ; bbWeight=0.01, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz + ldr w0, [x22, #0x10] + sub w21, w0, #2 + tbz w21, #31, G_M3612_IG16 + ;; size=12 bbWeight=0.01 PerfScore 0.02 +G_M3612_IG15: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x22] + add w23, w23, #1 + ldr w0, [x19, #0x08] + cmp w0, w23 + ble G_M3612_IG22 + b G_M3612_IG10 + ;; size=20 bbWeight=0.01 PerfScore 0.03 +G_M3612_IG16: ; bbWeight=9.76, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs +[x22] sub w20, w21, #1 ;; size=4 bbWeight=9.76 PerfScore 4.88
-G_M3612_IG11: ; bbWeight=9.76, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz - tbnz w20, #31, G_M3612_IG13
+G_M3612_IG17: ; bbWeight=9.76, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz + tbnz w20, #31, G_M3612_IG19
;; size=4 bbWeight=9.76 PerfScore 9.76
-G_M3612_IG12: ; bbWeight=90.24, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M3612_IG18: ; bbWeight=90.24, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
mov x0, x22 ; gcrRegs +[x0] mov w1, w20 @@ -129,32 +195,33 @@ G_M3612_IG12: ; bbWeight=90.24, gcrefRegs=480000 {x19 x22}, byrefRegs=000 blr x3 ; gcrRegs -[x0] ; gcr arg pop 0
- cbnz w0, G_M3612_IG17
+ cbnz w0, G_M3612_IG23
sub w20, w20, #1
- tbz w20, #31, G_M3612_IG12
...

libraries.crossgen2.linux.arm64.checked.mch

+84 (+8.47%) : 178155.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)

@@ -12,30 +12,29 @@ ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Microsoft.VisualBasic.CompilerServices.VBBinder> ; V01 arg1 [V01,T16] ( 3, 3 ) ref -> x1 class-hnd single-def <System.Reflection.MethodBase> ; V02 arg2 [V02,T17] ( 3, 3 ) ref -> x19 class-hnd single-def <System.Reflection.MethodBase>
-; V03 loc0 [V03,T19] ( 3, 2 ) ubyte -> x0 -; V04 loc1 [V04,T15] ( 9, 5.58) ref -> x20 class-hnd single-def <<unknown class>>
+; V03 loc0 [V03,T18] ( 3, 2 ) ubyte -> x0 +; V04 loc1 [V04,T11] ( 13, 6.66) ref -> x20 class-hnd single-def <<unknown class>>
; V05 loc2 [V05,T06] ( 13, 9.62) ref -> x19 class-hnd single-def <<unknown class>>
-; V06 loc3 [V06,T00] ( 30, 55.62) int -> x22
+; V06 loc3 [V06,T00] ( 35, 52.16) int -> x22
; V07 loc4 [V07,T01] ( 10, 16 ) ref -> x27 class-hnd <<unknown class>>
-; V08 loc5 [V08,T02] ( 10, 16 ) ref -> x23 class-hnd <<unknown class>>
+; V08 loc5 [V08,T02] ( 10, 16 ) ref -> x26 class-hnd <<unknown class>>
; V09 loc6 [V09,T05] ( 8, 9 ) int -> x21 single-def
-;* V10 loc7 [V10,T23] ( 0, 0 ) int -> zero-ref single-def -; V11 loc8 [V11,T18] ( 3, 5 ) int -> x25 single-def -; V12 loc9 [V12,T12] ( 6, 6 ) int -> x21 single-def
+;* V10 loc7 [V10,T22] ( 0, 0 ) int -> zero-ref single-def +; V11 loc8 [V11,T12] ( 6, 6 ) int -> x24 single-def +; V12 loc9 [V12,T13] ( 6, 6 ) int -> x21 single-def
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V14 tmp1 [V14,T13] ( 3, 6 ) int -> x21 "non-inline candidate call" -; V15 tmp2 [V15,T20] ( 2, 2 ) int -> x22 "non-inline candidate call" -; V16 tmp3 [V16,T21] ( 2, 2 ) int -> x22 "non-inline candidate call" -; V17 tmp4 [V17,T22] ( 2, 2 ) int -> x21 "Inline return value spill temp" -; V18 tmp5 [V18,T14] ( 3, 6 ) int -> x0 "Inlining Arg" -; V19 cse0 [V19,T04] ( 3, 11.88) long -> x23 "CSE - aggressive" -; V20 cse1 [V20,T24] ( 3, 0.12) long -> x23 "CSE - conservative" -; V21 cse2 [V21,T07] ( 6, 9.54) byref -> x24 hoist multi-def "CSE - aggressive" -; V22 cse3 [V22,T11] ( 8, 7.58) int -> x23 multi-def "CSE - aggressive" -; V23 cse4 [V23,T03] ( 8, 12.54) byref -> x28 hoist multi-def "CSE - aggressive" -; V24 cse5 [V24,T08] ( 6, 9.04) long -> x25 hoist multi-def "CSE - aggressive" -; V25 cse6 [V25,T09] ( 6, 9.04) long -> x26 hoist multi-def "CSE - aggressive" -; V26 cse7 [V26,T10] ( 6, 9.04) long -> x26 hoist multi-def "CSE - aggressive"
+; V14 tmp1 [V14,T14] ( 3, 6 ) int -> x21 "non-inline candidate call" +; V15 tmp2 [V15,T19] ( 2, 2 ) int -> x22 "non-inline candidate call" +; V16 tmp3 [V16,T20] ( 2, 2 ) int -> x22 "non-inline candidate call" +; V17 tmp4 [V17,T21] ( 2, 2 ) int -> x21 "Inline return value spill temp" +; V18 tmp5 [V18,T15] ( 3, 6 ) int -> x0 "Inlining Arg" +; V19 cse0 [V19,T04] ( 3, 11.88) long -> x26 "CSE - aggressive" +; V20 cse1 [V20,T23] ( 3, 0.12) long -> x26 "CSE - conservative" +; V21 cse2 [V21,T07] ( 8, 9.58) byref -> x23 hoist multi-def "CSE - aggressive" +; V22 cse3 [V22,T03] ( 8, 12.54) byref -> x28 hoist multi-def "CSE - aggressive" +; V23 cse4 [V23,T09] ( 6, 9.04) long -> x24 hoist multi-def "CSE - aggressive" +; V24 cse5 [V24,T10] ( 6, 9.04) long -> x25 hoist multi-def "CSE - aggressive" +; V25 cse6 [V25,T08] ( 8, 9.08) long -> x25 hoist multi-def "CSE - aggressive"
; ; Lcl frame size = 0 @@ -93,37 +92,37 @@ G_M40132_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, csel w21, w21, w0, le mov w22, wzr tbnz w21, #31, G_M40132_IG14
- ldr w23, [x20, #0x08] - cmp w23, w21
+ ldr w0, [x20, #0x08] + cmp w0, w21
ble G_M40132_IG09 ldr w0, [x19, #0x08] cmp w0, w21 ble G_M40132_IG09
- add x24, x20, #16 - ; byrRegs +[x24]
+ add x23, x20, #16 + ; byrRegs +[x23] + adrp x24, [HIGH RELOC #0xD1FFAB1E] + add x24, x24, [LOW RELOC #0xD1FFAB1E]
adrp x25, [HIGH RELOC #0xD1FFAB1E] add x25, x25, [LOW RELOC #0xD1FFAB1E]
- adrp x26, [HIGH RELOC #0xD1FFAB1E] - add x26, x26, [LOW RELOC #0xD1FFAB1E]
;; size=176 bbWeight=1 PerfScore 50.50
-G_M40132_IG03: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=1000000 {x24}, byref, isz - ubfiz x23, x22, #3, #32 - ldr x0, [x24, x23]
+G_M40132_IG03: ; bbWeight=3.96, gcrefRegs=180000 {x19 x20}, byrefRegs=800000 {x23}, byref, isz + ubfiz x26, x22, #3, #32 + ldr x0, [x23, x26]
; gcrRegs +[x0]
- mov x11, x25
+ mov x11, x24
ldr wzr, [x0] ldr x1, [x11] blr x1 mov x27, x0 ; gcrRegs +[x27]
- mov x11, x26
+ mov x11, x25
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] cbz w0, G_M40132_IG05 ;; size=48 bbWeight=3.96 PerfScore 81.18
-G_M40132_IG04: ; bbWeight=1.98, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=1000000 {x24}, byref
+G_M40132_IG04: ; bbWeight=1.98, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=800000 {x23}, byref
mov x0, x27 ; gcrRegs +[x0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address @@ -134,72 +133,72 @@ G_M40132_IG04: ; bbWeight=1.98, gcrefRegs=8180000 {x19 x20 x27}, byrefReg mov x27, x0 ; gcrRegs +[x27] ;; size=24 bbWeight=1.98 PerfScore 11.88
-G_M40132_IG05: ; bbWeight=3.96, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=1000000 {x24}, byref, isz
+G_M40132_IG05: ; bbWeight=3.96, gcrefRegs=8180000 {x19 x20 x27}, byrefRegs=800000 {x23}, byref, isz
; gcrRegs -[x0] add x28, x19, #16 ; byrRegs +[x28]
- ldr x0, [x28, x23]
+ ldr x0, [x28, x26]
; gcrRegs +[x0]
- mov x11, x25
+ mov x11, x24
ldr wzr, [x0] ldr x1, [x11] blr x1 ; byrRegs -[x28]
- mov x23, x0 - ; gcrRegs +[x23] - mov x11, x26
+ mov x26, x0 + ; gcrRegs +[x26] + mov x11, x25
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] cbz w0, G_M40132_IG07 ;; size=48 bbWeight=3.96 PerfScore 79.20
-G_M40132_IG06: ; bbWeight=1.98, gcrefRegs=8980000 {x19 x20 x23 x27}, byrefRegs=1000000 {x24}, byref - mov x0, x23
+G_M40132_IG06: ; bbWeight=1.98, gcrefRegs=C180000 {x19 x20 x26 x27}, byrefRegs=800000 {x23}, byref + mov x0, x26
; gcrRegs +[x0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- ; gcrRegs -[x23] - mov x23, x0 - ; gcrRegs +[x23]
+ ; gcrRegs -[x26] + mov x26, x0 + ; gcrRegs +[x26]
;; size=24 bbWeight=1.98 PerfScore 11.88
-G_M40132_IG07: ; bbWeight=3.96, gcrefRegs=8980000 {x19 x20 x23 x27}, byrefRegs=1000000 {x24}, byref, isz
+G_M40132_IG07: ; bbWeight=3.96, gcrefRegs=C180000 {x19 x20 x26 x27}, byrefRegs=800000 {x23}, byref, isz
; gcrRegs -[x0]
- cmp x27, x23
+ cmp x27, x26
bne G_M40132_IG15 adds w22, w22, #1
- bvs G_M40132_IG25
+ bvs G_M40132_IG27
cmp w22, w21 ble G_M40132_IG03 ;; size=24 bbWeight=3.96 PerfScore 17.82 G_M40132_IG08: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23 x27] - ; byrRegs -[x24]
+ ; gcrRegs -[x26-x27] + ; byrRegs -[x23]
b G_M40132_IG14 ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M40132_IG09: ; bbWeight=0.04, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ldr w23, [x20, #0x08] - cmp w22, w23 - bhs G_M40132_IG26 - add x24, x20, #16 - ; byrRegs +[x24] - ubfiz x23, x22, #3, #32 - ldr x0, [x24, x23]
+ ldr w0, [x20, #0x08] + cmp w22, w0 + bhs G_M40132_IG28 + add x23, x20, #16 + ; byrRegs +[x23] + ubfiz x26, x22, #3, #32 + ldr x0, [x23, x26]
; gcrRegs +[x0]
- adrp x25, [HIGH RELOC #0xD1FFAB1E] - add x25, x25, [LOW RELOC #0xD1FFAB1E] - mov x11, x25
+ adrp x24, [HIGH RELOC #0xD1FFAB1E] + add x24, x24, [LOW RELOC #0xD1FFAB1E] + mov x11, x24
ldr wzr, [x0] ldr x1, [x11] blr x1
- ; byrRegs -[x24]
+ ; byrRegs -[x23]
mov x27, x0 ; gcrRegs +[x27]
- adrp x26, [HIGH RELOC #0xD1FFAB1E] - add x26, x26, [LOW RELOC #0xD1FFAB1E] - mov x11, x26
+ adrp x25, [HIGH RELOC #0xD1FFAB1E] + add x25, x25, [LOW RELOC #0xD1FFAB1E] + mov x11, x25
ldr wzr, [x0] ldr x1, [x11] blr x1 @@ -221,53 +220,53 @@ G_M40132_IG11: ; bbWeight=0.04, gcrefRegs=8180000 {x19 x20 x27}, byrefReg ; gcrRegs -[x0] ldr w0, [x19, #0x08] cmp w22, w0
- bhs G_M40132_IG26
+ bhs G_M40132_IG28
add x28, x19, #16 ; byrRegs +[x28]
- ldr x0, [x28, x23]
+ ldr x0, [x28, x26]
; gcrRegs +[x0]
- mov x11, x25
+ mov x11, x24
ldr wzr, [x0] ldr x1, [x11] blr x1 ; byrRegs -[x28]
- mov x23, x0 - ; gcrRegs +[x23] - mov x11, x26
+ mov x26, x0 + ; gcrRegs +[x26] + mov x11, x25
ldr wzr, [x0] ldr x1, [x11] blr x1 ; gcrRegs -[x0] cbz w0, G_M40132_IG13 ;; size=60 bbWeight=0.04 PerfScore 0.98
-G_M40132_IG12: ; bbWeight=0.02, gcrefRegs=8980000 {x19 x20 x23 x27}, byrefRegs=0000 {}, byref - mov x0, x23
+G_M40132_IG12: ; bbWeight=0.02, gcrefRegs=C180000 {x19 x20 x26 x27}, byrefRegs=0000 {}, byref + mov x0, x26
; gcrRegs +[x0] adrp x11, [HIGH RELOC #0xD1FFAB1E] add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- ; gcrRegs -[x23] - mov x23, x0 - ; gcrRegs +[x23]
+ ; gcrRegs -[x26] + mov x26, x0 + ; gcrRegs +[x26]
;; size=24 bbWeight=0.02 PerfScore 0.12
-G_M40132_IG13: ; bbWeight=0.04, gcrefRegs=8980000 {x19 x20 x23 x27}, byrefRegs=0000 {}, byref, isz
+G_M40132_IG13: ; bbWeight=0.04, gcrefRegs=C180000 {x19 x20 x26 x27}, byrefRegs=0000 {}, byref, isz
...

libraries_tests.run.linux.arm64.Release.mch

+60 (+2.16%) : 303165.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)

@@ -16,10 +16,10 @@ ; V03 loc0 [V03,T50] ( 8, 300 ) ref -> x21 class-hnd exact <System.Collections.Generic.List`1[ushort]> ;* V04 loc1 [V04 ] ( 0, 0 ) ushort -> zero-ref ;* V05 loc2 [V05 ] ( 0, 0 ) ushort -> zero-ref
-; V06 loc3 [V06,T91] ( 2, 0.07) ref -> x27 class-hnd <int[]> -; V07 loc4 [V07,T89] ( 5, 0.19) int -> x26 -; V08 loc5 [V08,T51] ( 4, 292.93) int -> x22 -; V09 loc6 [V09,T85] ( 8, 16.63) int -> x25
+; V06 loc3 [V06,T90] ( 6, 0.11) ref -> x27 class-hnd <int[]> +; V07 loc4 [V07,T89] ( 10, 0.19) int -> x26 +; V08 loc5 [V08,T51] ( 5, 292.93) int -> x22 +; V09 loc6 [V09,T85] ( 9, 16.63) int -> x25
; V10 loc7 [V10,T53] ( 5, 200 ) ushort -> x23 ; V11 loc8 [V11,T54] ( 4, 197.63) ushort -> x24 ; V12 loc9 [V12,T09] ( 8, 590.52) int -> x20 @@ -28,13 +28,13 @@ ; V15 loc12 [V15,T64] ( 2, 195.26) int -> [fp+0x1FC] spill-single-def tier0-frame ; V16 loc13 [V16,T65] ( 2, 195.26) int -> [fp+0x1F8] spill-single-def tier0-frame ; V17 loc14 [V17 ] ( 83,6346.90) struct (40) [fp+0x1D0] do-not-enreg[XS] addr-exposed ld-addr-op tier0-frame <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V18 loc15 [V18,T94] ( 3, 0 ) ref -> x19 class-hnd <int[]> -; V19 loc16 [V19,T93] ( 5, 0 ) int -> x20 -; V20 loc17 [V20,T92] ( 6, 0 ) ref -> x22 class-hnd exact <System.Globalization.Tests.CompareInfoCompareTests+<>c__DisplayClass11_0>
+; V18 loc15 [V18,T93] ( 3, 0 ) ref -> x19 class-hnd <int[]> +; V19 loc16 [V19,T92] ( 5, 0 ) int -> x20 +; V20 loc17 [V20,T91] ( 6, 0 ) ref -> x22 class-hnd exact <System.Globalization.Tests.CompareInfoCompareTests+<>c__DisplayClass11_0>
;# V21 OutArgs [V21 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V22 tmp1 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Collections.Generic.List`1[ushort]> ;* V23 tmp2 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Globalization.Tests.CompareInfoCompareTests+<>c__DisplayClass11_0>
-; V24 tmp3 [V24,T95] ( 3, 0 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.Func`1[System.Object]>
+; V24 tmp3 [V24,T94] ( 3, 0 ) ref -> x23 class-hnd exact "NewObj constructor temp" <System.Func`1[System.Object]>
;* V25 tmp4 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>> ;* V26 tmp5 [V26 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V27 tmp6 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>> @@ -611,12 +611,11 @@ ;* V598 tmp577 [V598 ] ( 0, 0 ) long -> zero-ref "Cast away GC" ;* V599 tmp578 [V599 ] ( 0, 0 ) long -> zero-ref "Cast away GC" ;* V600 tmp579 [V600 ] ( 0, 0 ) long -> zero-ref "Cast away GC"
-; V601 tmp580 [V601,T97] ( 3, 0 ) struct ( 8) [fp+0x90] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
+; V601 tmp580 [V601,T96] ( 3, 0 ) struct ( 8) [fp+0x90] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
; V602 tmp581 [V602,T86] ( 3, 14.22) ref -> x0 "arr expr"
-; V603 tmp582 [V603,T96] ( 3, 0 ) ref -> x0 "arr expr" -; V604 cse0 [V604,T90] ( 3, 0.11) int -> x1 "CSE - conservative" -; V605 cse1 [V605,T87] ( 4, 7.15) int -> x0 "CSE - conservative" -; V606 cse2 [V606,T20] ( 10, 488.15) ref -> [fp+0x18] multi-def "CSE - moderate"
+; V603 tmp582 [V603,T95] ( 3, 0 ) ref -> x0 "arr expr" +; V604 cse0 [V604,T87] ( 5, 7.15) int -> x0 "CSE - conservative" +; V605 cse1 [V605,T20] ( 10, 488.15) ref -> [fp+0x18] multi-def "CSE - moderate"
; ; Lcl frame size = 224 @@ -646,16 +645,51 @@ G_M28013_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr w20, [fp, #0xD1FFAB1E] ;; size=80 bbWeight=1 PerfScore 28.50 G_M28013_IG02: ; bbWeight=1, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref
- b G_M28013_IG04
+ b G_M28013_IG09
;; size=4 bbWeight=1 PerfScore 1.00
-G_M28013_IG03: ; bbWeight=2.37, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
+G_M28013_IG03: ; bbWeight=0.04, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz + cbz x27, G_M28013_IG22 + tbnz w26, #31, G_M28013_IG22 + ;; size=8 bbWeight=0.04 PerfScore 0.07 +G_M28013_IG04: ; bbWeight=0.07, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref + b G_M28013_IG06 + ;; size=4 bbWeight=0.07 PerfScore 0.07 +G_M28013_IG05: ; bbWeight=0.04, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz + add x1, x27, #16 + ; byrRegs +[x1] + ldr w22, [x1, w26, UXTW #2] + mov w25, wzr + cmp w0, #0 + bgt G_M28013_IG08 + ;; size=20 bbWeight=0.04 PerfScore 0.20 +G_M28013_IG06: ; bbWeight=0.04, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz + ; byrRegs -[x1] + add w26, w26, #1 + ldr w1, [x27, #0x08] + cmp w1, w26 + ble G_M28013_IG42 + b G_M28013_IG05 + ;; size=20 bbWeight=0.04 PerfScore 0.22 +G_M28013_IG07: ; bbWeight=0.00, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz + ldr w1, [x27, #0x08] + cmp w26, w1 + bhs G_M28013_IG23 + add x1, x27, #16 + ; byrRegs +[x1] + ldr w22, [x1, w26, UXTW #2] + mov w25, wzr + cmp w0, #0 + ble G_M28013_IG22 + ;; size=32 bbWeight=0.00 PerfScore 0.00 +G_M28013_IG08: ; bbWeight=2.37, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz + ; byrRegs -[x1]
cmp w25, w0
- bhs G_M28013_IG37
+ bhs G_M28013_IG43
ldr x0, [x21, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w25, w1
- bhs G_M28013_IG17
+ bhs G_M28013_IG23
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -665,20 +699,20 @@ G_M28013_IG03: ; bbWeight=2.37, gcrefRegs=8280000 {x19 x21 x27}, byrefReg uxth w24, w0 sxtw w20, w25 ;; size=44 bbWeight=2.37 PerfScore 33.19
-G_M28013_IG04: ; bbWeight=2.37, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
+G_M28013_IG09: ; bbWeight=2.37, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
ldr w0, [x21, #0x10] cmp w20, w0
- bge G_M28013_IG15
+ bge G_M28013_IG20
;; size=12 bbWeight=2.37 PerfScore 10.67
-G_M28013_IG05: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
+G_M28013_IG10: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
ldr w0, [x21, #0x10] cmp w20, w0
- bhs G_M28013_IG37
+ bhs G_M28013_IG43
ldr x0, [x21, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w20, w1
- bhs G_M28013_IG17
+ bhs G_M28013_IG23
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -769,7 +803,7 @@ G_M28013_IG05: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRe ldr w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldr w1, [fp, #0xD1FFAB1E] // [V17 loc14+0x20] cmp w0, w1
- bhi G_M28013_IG31
+ bhi G_M28013_IG37
ldr x1, [fp, #0xD1FFAB1E] // [V17 loc14+0x18] ; byrRegs +[x1] ubfiz x2, x0, #1, #32 @@ -790,7 +824,7 @@ G_M28013_IG05: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRe ; gcr arg pop 0 ldr w0, [fp, #0xEC] // [V32 tmp11] cmp w0, #15
- blo G_M28013_IG18
+ blo G_M28013_IG24
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -805,15 +839,15 @@ G_M28013_IG05: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRe str w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] str w23, [fp, #0xE8] // [V39 tmp18] ldrb w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x14]
- cbnz w0, G_M28013_IG19
+ cbnz w0, G_M28013_IG25
;; size=396 bbWeight=97.63 PerfScore 11373.81
-G_M28013_IG06: ; bbWeight=97.63, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M28013_IG11: ; bbWeight=97.63, gcVars=00000000000000000000000000000000 {}, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
; byrRegs -[x1] ; GC ptr vars -{V33} ldr w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldr w2, [fp, #0xD1FFAB1E] // [V17 loc14+0x20] cmp w0, w2
- bhi G_M28013_IG31
+ bhi G_M28013_IG37
ldr x2, [fp, #0xD1FFAB1E] // [V17 loc14+0x18] ; byrRegs +[x2] ubfiz x3, x0, #1, #32 @@ -850,8 +884,8 @@ G_M28013_IG06: ; bbWeight=97.63, gcVars=00000000000000000000000000000000 movz x8, #0xD1FFAB1E movk x8, #0xD1FFAB1E LSL #16 movk x8, #0xD1FFAB1E LSL #32
- str x8, [fp, #0x18] // [V606 cse2] - ; GC ptr vars +{V606}
+ str x8, [fp, #0x18] // [V605 cse1] + ; GC ptr vars +{V605}
add x2, x8, #12 ; byrRegs +[x2] ldr x4, [fp, #0xD1FFAB1E] // [V17 loc14] @@ -872,17 +906,17 @@ G_M28013_IG06: ; bbWeight=97.63, gcVars=00000000000000000000000000000000 ; gcrRegs -[x4] ; byrRegs -[x2 x5] ; gcr arg pop 0
- cbz w0, G_M28013_IG20
+ cbz w0, G_M28013_IG26
ldr w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldr w1, [fp, #0xE0] // [V41 tmp20] add w0, w0, w1 str w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ;; size=200 bbWeight=97.63 PerfScore 5516.05
-G_M28013_IG07: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
+G_M28013_IG12: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
ldr w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldr w1, [fp, #0xD1FFAB1E] // [V17 loc14+0x20] cmp w0, w1
- bhi G_M28013_IG31
+ bhi G_M28013_IG37
ldr x1, [fp, #0xD1FFAB1E] // [V17 loc14+0x18] ; byrRegs +[x1] ubfiz x2, x0, #1, #32 @@ -903,7 +937,7 @@ G_M28013_IG07: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRe ; gcr arg pop 0 ldr w0, [fp, #0xD8] // [V115 tmp94] cmp w0, #2
- blo G_M28013_IG21
+ blo G_M28013_IG27
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -915,15 +949,15 @@ G_M28013_IG07: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRe add w0, w0, #2 str w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldrb w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x14]
- cbnz w0, G_M28013_IG22
+ cbnz w0, G_M28013_IG28
;; size=128 bbWeight=97.63 PerfScore 3661.10
-G_M28013_IG08: ; bbWeight=97.63, gcVars=00000000000000000000000000100000 {V606}, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M28013_IG13: ; bbWeight=97.63, gcVars=00000000000000000000000000100000 {V605}, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, gcvars, byref, isz
; byrRegs -[x2] ; GC ptr vars -{V116} ldr w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldr w1, [fp, #0xD1FFAB1E] // [V17 loc14+0x20] cmp w0, w1
- bhi G_M28013_IG31
+ bhi G_M28013_IG37
ldr x1, [fp, #0xD1FFAB1E] // [V17 loc14+0x18] ; byrRegs +[x1] ubfiz x2, x0, #1, #32 @@ -957,7 +991,7 @@ G_M28013_IG08: ; bbWeight=97.63, gcVars=00000000000000000000000000100000 blr x3 ; byrRegs -[x1] ; gcr arg pop 0
- ldr x8, [fp, #0x18] // [V606 cse2]
+ ldr x8, [fp, #0x18] // [V605 cse1]
; gcrRegs +[x8] add x2, x8, #12 ; byrRegs +[x2] @@ -979,17 +1013,17 @@ G_M28013_IG08: ; bbWeight=97.63, gcVars=00000000000000000000000000100000 ; gcrRegs -[x4 x8] ; byrRegs -[x2 x5] ; gcr arg pop 0
- cbz w0, G_M28013_IG23
+ cbz w0, G_M28013_IG29
ldr w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ldr w1, [fp, #0xD0] // [V124 tmp103] add w0, w0, w1 str w0, [fp, #0xD1FFAB1E] // [V17 loc14+0x10] ;; size=188 bbWeight=97.63 PerfScore 5320.80
-G_M28013_IG09: ; bbWeight=97.63, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref, isz
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm64.checked.mch 1 0 1 0 -0 +60
benchmarks.run_tiered.linux.arm64.checked.mch 2 0 2 0 -0 +208
coreclr_tests.run.linux.arm64.checked.mch 1 0 1 0 -0 +172
libraries.crossgen2.linux.arm64.checked.mch 1 0 1 0 -0 +84
libraries.pmi.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.arm64.Release.mch 1 0 1 0 -0 +60
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.arm64.checked.mch 0 0 0 0 -0 +0
6 0 6 0 -0 +584

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,710 2,779 30,931 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch 152,900 61,290 91,610 0 (0.00%) 4 (0.00%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,813 48,019 15,794 0 (0.00%) 1 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 625,273 382,318 242,955 0 (0.00%) 3 (0.00%)
libraries.crossgen2.linux.arm64.checked.mch 234,496 15 234,481 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 295,745 6 295,739 0 (0.00%) 0 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 744,166 490,908 253,258 0 (0.00%) 0 (0.00%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,865 21,599 283,266 0 (0.00%) 0 (0.00%)
realworld.run.linux.arm64.checked.mch 33,309 151 33,158 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,033 7 19,026 0 (0.00%) 0 (0.00%)
2,507,310 1,007,092 1,500,218 0 (0.00%) 8 (0.00%)

jit-analyze output

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

Detail diffs



Top file regressions (bytes):
          60 : 102735.dasm (7.61 % of base)

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

Top method regressions (bytes):
          60 (7.61 % of base) : 102735.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

Top method regressions (percentages):
          60 (7.61 % of base) : 102735.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

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


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

Detail diffs



Top file regressions (bytes):
         148 : 35206.dasm (16.02 % of base)
          60 : 50853.dasm (8.02 % of base)

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

Top method regressions (bytes):
         148 (16.02 % of base) : 35206.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          60 (8.02 % of base) : 50853.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

Top method regressions (percentages):
         148 (16.02 % of base) : 35206.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          60 (8.02 % of base) : 50853.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

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


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

Detail diffs



Top file regressions (bytes):
         172 : 519607.dasm (47.78 % of base)

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

Top method regressions (bytes):
         172 (47.78 % of base) : 519607.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)

Top method regressions (percentages):
         172 (47.78 % of base) : 519607.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)

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


libraries.crossgen2.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55844024 (overridden on cmd)
Total bytes of diff: 55844108 (overridden on cmd)
Total bytes of delta: 84 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          84 : 178155.dasm (8.47 % of base)

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

Top method regressions (bytes):
          84 (8.47 % of base) : 178155.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)

Top method regressions (percentages):
          84 (8.47 % of base) : 178155.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)

1 total methods with Code Size differences (0 improved, 1 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: 395688768 (overridden on cmd)
Total bytes of diff: 395688828 (overridden on cmd)
Total bytes of delta: 60 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          60 : 303165.dasm (2.16 % of base)

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

Top method regressions (bytes):
          60 (2.16 % of base) : 303165.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)

Top method regressions (percentages):
          60 (2.16 % of base) : 303165.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)

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



linux x64

Diffs are based on 2,517,901 contexts (991,070 MinOpts, 1,526,831 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 8 (0.00%)

Overall (+567 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 71,590,553 +51
benchmarks.run_tiered.linux.x64.checked.mch 21,435,525 +218
coreclr_tests.run.linux.x64.checked.mch 403,710,934 +133
libraries.crossgen2.linux.x64.checked.mch 38,727,133 +59
libraries_tests.run.linux.x64.Release.mch 337,107,837 +106

FullOpts (+567 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 47,790,564 +51
benchmarks.run_tiered.linux.x64.checked.mch 3,694,745 +218
coreclr_tests.run.linux.x64.checked.mch 123,956,232 +133
libraries.crossgen2.linux.x64.checked.mch 38,725,935 +59
libraries_tests.run.linux.x64.Release.mch 153,348,144 +106

Example diffs

benchmarks.run_pgo.linux.x64.checked.mch

+51 (+6.85%) : 112826.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

@@ -10,16 +10,16 @@ ; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T12] ( 12, 103.73) ref -> rdi class-hnd single-def <float[][]>
+; V00 arg0 [V00,T12] ( 15, 103.93) ref -> rdi class-hnd single-def <float[][]>
; V01 arg1 [V01,T13] ( 11, 103.73) ref -> rsi class-hnd single-def <int[][]> ; V02 arg2 [V02,T21] ( 3, 2.21) ref -> [rbp+0x60] class-hnd single-def tier0-frame <double[]> ; V03 arg3 [V03,T14] ( 4, 101.79) ref -> rcx class-hnd single-def <JetStream.SampleVarianceUpperTriangularMatrix>
-; V04 arg4 [V04,T20] ( 4, 2.62) int -> r8 single-def
+; V04 arg4 [V04,T20] ( 5, 2.62) int -> r8 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) int -> zero-ref ;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
-; V07 loc2 [V07,T05] ( 20,1698.20) int -> rax -; V08 loc3 [V08,T16] ( 5, 100.21) ref -> r11 class-hnd <float[]> -; V09 loc4 [V09,T11] ( 12, 208.20) int -> r10
+; V07 loc2 [V07,T05] ( 25,1698.20) int -> rax +; V08 loc3 [V08,T16] ( 6, 100.21) ref -> r11 class-hnd <float[]> +; V09 loc4 [V09,T11] ( 13, 208.20) int -> r10
;* V10 loc5 [V10 ] ( 0, 0 ) ubyte -> zero-ref ; V11 loc6 [V11,T07] ( 24,1300.09) int -> r9 ; V12 loc7 [V12,T27] ( 4, 199.58) float -> mm0 @@ -42,7 +42,7 @@ ; V29 tmp14 [V29,T24] ( 6, 0.60) ref -> rdx "arr expr" ; V30 cse0 [V30,T09] ( 6, 598.73) ref -> r13 multi-def "CSE - moderate" ; V31 cse1 [V31,T10] ( 16, 399.56) int -> r12 multi-def "CSE - moderate"
-; V32 cse2 [V32,T15] ( 7, 100.84) int -> rbx "CSE - moderate"
+; V32 cse2 [V32,T15] ( 9, 101.05) int -> rbx "CSE - moderate"
; V33 cse3 [V33,T17] ( 4, 100.00) int -> r15 hoist multi-def "CSE - moderate" ; V34 cse4 [V34,T18] ( 4, 100.00) long -> r14 hoist multi-def "CSE - moderate" ; @@ -79,94 +79,119 @@ G_M56974_IG02: ; bbWeight=0.21, gcrefRegs=08C6 {rcx rdx rsi rdi r11}, byr ; GC ptr vars +{V02} mov ebx, dword ptr [rdx+0x08] cmp ebx, r9d
- jle G_M56974_IG11
+ jle G_M56974_IG16
;; size=16 bbWeight=0.21 PerfScore 0.90 G_M56974_IG03: ; bbWeight=0.21, gcVars=0000000000200000 {V02}, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs -[rdx] test rsi, rsi
- je G_M56974_IG21
+ je G_M56974_IG25
test rdi, rdi
- je G_M56974_IG21
+ je G_M56974_IG25
test r9d, r9d
- jl G_M56974_IG21
+ jl G_M56974_IG25
cmp dword ptr [rsi+0x08], ebx
- jl G_M56974_IG21
+ jl G_M56974_IG25
cmp dword ptr [rdi+0x08], ebx
- jl G_M56974_IG21
+ jl G_M56974_IG25
mov r15d, dword ptr [r11+0x08] mov r14d, r10d ;; size=52 bbWeight=0.21 PerfScore 2.94 G_M56974_IG04: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz cmp r10d, r15d
- jae G_M56974_IG32
+ jae G_M56974_IG36
vmovss xmm0, dword ptr [r11+4*r14+0x10] mov r13, gword ptr [rcx+0x08] ; gcrRegs +[r13] cmp dword ptr [r13+0x08], eax jle SHORT G_M56974_IG06 ;; size=26 bbWeight=98.79 PerfScore 1111.40
-G_M56974_IG05: ; bbWeight=395.16, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG05: ; bbWeight=395.16, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, byrefRegs=0000 {}, byref
cmp eax, r9d
- jne SHORT G_M56974_IG14 - ;; size=5 bbWeight=395.16 PerfScore 493.96
+ jne G_M56974_IG18 + ;; size=9 bbWeight=395.16 PerfScore 493.96
G_M56974_IG06: ; bbWeight=395.16, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref ; gcrRegs -[r13] vxorps xmm1, xmm1, xmm1
- jmp G_M56974_IG15
+ jmp G_M56974_IG19
;; size=9 bbWeight=395.16 PerfScore 922.05 G_M56974_IG07: ; bbWeight=0.21, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[r11]
- cmp eax, dword ptr [rdi+0x08] - jae G_M56974_IG32
+ test rdi, rdi + je SHORT G_M56974_IG15 + test eax, eax + jl SHORT G_M56974_IG15 + cmp dword ptr [rdi+0x08], ebx + jl SHORT G_M56974_IG15 + ;; size=14 bbWeight=0.21 PerfScore 1.34 +G_M56974_IG08: ; bbWeight=0.64, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M56974_IG10 + ;; size=2 bbWeight=0.64 PerfScore 1.29 +G_M56974_IG09: ; bbWeight=0.21, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov r11d, eax mov r11, gword ptr [rdi+8*r11+0x10] ; gcrRegs +[r11] xor r10d, r10d test r8d, r8d
- jg SHORT G_M56974_IG09 - ;; size=25 bbWeight=0.21 PerfScore 1.64 -G_M56974_IG08: ; bbWeight=0.21, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ jg SHORT G_M56974_IG12 + ;; size=16 bbWeight=0.21 PerfScore 0.78 +G_M56974_IG10: ; bbWeight=0.21, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r11] inc eax cmp ebx, eax
- jle G_M56974_IG33 - jmp SHORT G_M56974_IG07 - ;; size=12 bbWeight=0.21 PerfScore 0.74 -G_M56974_IG09: ; bbWeight=0.21, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
+ jle G_M56974_IG37 + jmp SHORT G_M56974_IG09 + ;; size=12 bbWeight=0.21 PerfScore 0.73 +G_M56974_IG11: ; bbWeight=0.00, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz + cmp eax, dword ptr [rdi+0x08] + jae G_M56974_IG36 + mov r11d, eax + mov r11, gword ptr [rdi+8*r11+0x10]
; gcrRegs +[r11]
+ xor r10d, r10d + test r8d, r8d + jle SHORT G_M56974_IG15 + ;; size=25 bbWeight=0.00 PerfScore 0.02 +G_M56974_IG12: ; bbWeight=0.21, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
cmp eax, dword ptr [rsi+0x08]
- jae G_M56974_IG32
+ jae G_M56974_IG36
mov r9d, eax mov r9, gword ptr [rsi+8*r9+0x10] ; gcrRegs +[r9] test r10d, r10d
- jl SHORT G_M56974_IG11
+ jl SHORT G_M56974_IG16
;; size=22 bbWeight=0.21 PerfScore 1.58
-G_M56974_IG10: ; bbWeight=6.75, gcrefRegs=0AC2 {rcx rsi rdi r9 r11}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG13: ; bbWeight=6.75, gcrefRegs=0AC2 {rcx rsi rdi r9 r11}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [r9+0x08], r10d
- jg SHORT G_M56974_IG13
+ jle SHORT G_M56974_IG16
;; size=6 bbWeight=6.75 PerfScore 27.01
-G_M56974_IG11: ; bbWeight=0.41, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG14: ; bbWeight=0.21, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref
; gcrRegs -[r9]
- inc r10d - cmp r10d, r8d - jl SHORT G_M56974_IG09 - ;; size=8 bbWeight=0.41 PerfScore 0.62 -G_M56974_IG12: ; bbWeight=0.21, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r11] - jmp SHORT G_M56974_IG08 - ;; size=2 bbWeight=0.21 PerfScore 0.41 -G_M56974_IG13: ; bbWeight=0.21, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref - ; gcrRegs +[r11]
lea r9d, [rax+0x01] mov rdx, gword ptr [rbp+0x60] ; gcrRegs +[rdx] jmp G_M56974_IG02 ;; size=13 bbWeight=0.21 PerfScore 0.74
-G_M56974_IG14: ; bbWeight=395.16, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, byrefRegs=0000 {}, byref - ; gcrRegs -[rdx] +[r13]
+G_M56974_IG15: ; bbWeight=0.00, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rdx r11] + inc eax + cmp ebx, eax + jle G_M56974_IG37 + jmp SHORT G_M56974_IG11 + ;; size=12 bbWeight=0.00 PerfScore 0.01 +G_M56974_IG16: ; bbWeight=0.41, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r11] + inc r10d + cmp r10d, r8d + jl SHORT G_M56974_IG12 + ;; size=8 bbWeight=0.41 PerfScore 0.62 +G_M56974_IG17: ; bbWeight=0.21, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref + ; gcrRegs -[r11] + jmp G_M56974_IG07 + ;; size=5 bbWeight=0.21 PerfScore 0.41 +G_M56974_IG18: ; bbWeight=395.16, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, byrefRegs=0000 {}, byref + ; gcrRegs +[r11 r13]
cmp eax, dword ptr [r13+0x08]
- jae G_M56974_IG32
+ jae G_M56974_IG36
mov r12d, eax mov r12, gword ptr [r13+8*r12+0x10] ; gcrRegs +[r12] @@ -175,10 +200,10 @@ G_M56974_IG14: ; bbWeight=395.16, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, b sub r13d, eax dec r13d cmp r13d, dword ptr [r12+0x08]
- jae G_M56974_IG32
+ jae G_M56974_IG36
vcvtss2sd xmm1, xmm1, dword ptr [r12+4*r13+0x10] ;; size=45 bbWeight=395.16 PerfScore 7112.96
-G_M56974_IG15: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG19: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r12] vcvtss2sd xmm0, xmm0, xmm0 vaddsd xmm0, xmm0, xmm1 @@ -188,39 +213,39 @@ G_M56974_IG15: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefR lea r12d, [r10+0x01] mov edx, r12d test edx, edx
- jl SHORT G_M56974_IG20
+ jl SHORT G_M56974_IG24
;; size=27 bbWeight=98.79 PerfScore 1111.40
-G_M56974_IG16: ; bbWeight=3161.31, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG20: ; bbWeight=3161.31, gcrefRegs=28C2 {rcx rsi rdi r11 r13}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [r13+0x08], edx
- jle SHORT G_M56974_IG20
+ jle SHORT G_M56974_IG24
;; size=6 bbWeight=3161.31 PerfScore 12645.26
-G_M56974_IG17: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG21: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13] mov edx, r9d mov rdx, gword ptr [rdi+8*rdx+0x10] ; gcrRegs +[rdx] cmp r12d, dword ptr [rdx+0x08]
- jae G_M56974_IG32
+ jae G_M56974_IG36
mov r13d, r12d vcvtss2sd xmm1, xmm1, dword ptr [rdx+4*r13+0x10] vucomisd xmm1, xmm0
- ja SHORT G_M56974_IG20
+ ja SHORT G_M56974_IG24
;; size=34 bbWeight=98.79 PerfScore 1630.05
-G_M56974_IG18: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref
+G_M56974_IG22: ; bbWeight=98.79, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx] inc r9d cmp ebx, r9d jg G_M56974_IG04 ;; size=12 bbWeight=98.79 PerfScore 148.19
-G_M56974_IG19: ; bbWeight=0.41, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref - jmp G_M56974_IG11
+G_M56974_IG23: ; bbWeight=0.41, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref + jmp G_M56974_IG16
;; size=5 bbWeight=0.41 PerfScore 0.82
-G_M56974_IG20: ; bbWeight=0.10, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG24: ; bbWeight=0.10, gcrefRegs=08C2 {rcx rsi rdi r11}, byrefRegs=0000 {}, byref, isz
mov edx, r9d mov rdx, gword ptr [rdi+8*rdx+0x10] ; gcrRegs +[rdx] cmp r12d, dword ptr [rdx+0x08]
- jae G_M56974_IG32
+ jae G_M56974_IG36
...

benchmarks.run_tiered.linux.x64.checked.mch

+44 (+6.45%) : 54552.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

@@ -9,16 +9,16 @@ ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T08] ( 12, 12.04) ref -> rbx class-hnd single-def <float[][]>
+; V00 arg0 [V00,T08] ( 15, 12.06) ref -> rbx class-hnd single-def <float[][]>
; V01 arg1 [V01,T09] ( 9, 12.04) ref -> r15 class-hnd single-def <int[][]> ; V02 arg2 [V02,T19] ( 3, 3 ) ref -> r12 class-hnd single-def <double[]> ; V03 arg3 [V03,T18] ( 4, 6 ) ref -> r13 class-hnd single-def <JetStream.SampleVarianceUpperTriangularMatrix>
-; V04 arg4 [V04,T10] ( 4, 12 ) int -> r14 single-def
+; V04 arg4 [V04,T10] ( 5, 12 ) int -> r14 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) int -> zero-ref ;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
-; V07 loc2 [V07,T03] ( 12, 38.50) int -> [rbp+0x48] tier0-frame -; V08 loc3 [V08,T14] ( 5, 10 ) ref -> [rbp+0x40] class-hnd tier0-frame <float[]> -; V09 loc4 [V09,T00] ( 12, 56 ) int -> [rbp+0x3C] tier0-frame
+; V07 loc2 [V07,T03] ( 17, 37.52) int -> [rbp+0x48] tier0-frame +; V08 loc3 [V08,T14] ( 6, 10 ) ref -> [rbp+0x40] class-hnd tier0-frame <float[]> +; V09 loc4 [V09,T00] ( 13, 56 ) int -> [rbp+0x3C] tier0-frame
;* V10 loc5 [V10 ] ( 0, 0 ) ubyte -> zero-ref ; V11 loc6 [V11,T05] ( 20, 26.58) int -> [rbp+0x34] tier0-frame ;* V12 loc7 [V12 ] ( 0, 0 ) float -> zero-ref @@ -37,7 +37,7 @@ ; V25 tmp10 [V25,T13] ( 6, 12 ) ref -> rax "arr expr" ; V26 cse0 [V26,T20] ( 3, 0.10) ref -> rax "CSE - conservative" ; V27 cse1 [V27,T17] ( 3, 9.90) ref -> rax "CSE - moderate"
-; V28 cse2 [V28,T07] ( 7, 16 ) int -> [rbp-0x2C] spill-single-def "CSE - moderate"
+; V28 cse2 [V28,T07] ( 9, 17 ) int -> [rbp-0x2C] spill-single-def "CSE - moderate"
; V29 cse3 [V29,T06] ( 16, 20 ) int -> r9 multi-def "CSE - moderate" ; TEMP_01 double -> [rbp-0x34] ; @@ -69,27 +69,55 @@ G_M56974_IG01: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr mov edi, dword ptr [rbp+0x3C] mov ecx, dword ptr [rbp+0x34] ;; size=90 bbWeight=0.01 PerfScore 0.28
-G_M56974_IG02: ; bbWeight=0.01, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M56974_IG11 - ;; size=2 bbWeight=0.01 PerfScore 0.02 -G_M56974_IG03: ; bbWeight=2, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG02: ; bbWeight=0.01, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref + jmp G_M56974_IG15 + ;; size=5 bbWeight=0.01 PerfScore 0.02 +G_M56974_IG03: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8]
- cmp eax, dword ptr [rbx+0x08] - jae G_M56974_IG28
+ test rbx, rbx + je SHORT G_M56974_IG08 + test eax, eax + jl SHORT G_M56974_IG08 + cmp dword ptr [rbx+0x08], r9d + jl SHORT G_M56974_IG08 + jmp SHORT G_M56974_IG05 + ;; size=17 bbWeight=1 PerfScore 8.50 +G_M56974_IG04: ; bbWeight=1.98, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
mov edi, eax mov r8, gword ptr [rbx+8*rdi+0x10] ; gcrRegs +[r8] xor edi, edi test r14d, r14d
- jg SHORT G_M56974_IG06 - ;; size=23 bbWeight=2 PerfScore 15.50 -G_M56974_IG04: ; bbWeight=8, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ jg SHORT G_M56974_IG10 + ;; size=14 bbWeight=1.98 PerfScore 7.43 +G_M56974_IG05: ; bbWeight=7.92, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8] inc eax cmp r9d, eax
- jg SHORT G_M56974_IG03 - ;; size=7 bbWeight=8 PerfScore 12.00 -G_M56974_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ jg SHORT G_M56974_IG04 + ;; size=7 bbWeight=7.92 PerfScore 11.88 +G_M56974_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rbx r12-r13 r15] + jmp SHORT G_M56974_IG09 + ;; size=2 bbWeight=1 PerfScore 2.00 +G_M56974_IG07: ; bbWeight=0.02, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rbx r12-r13 r15] + cmp eax, dword ptr [rbx+0x08] + jae G_M56974_IG32 + mov r8d, eax + mov r8, gword ptr [rbx+8*r8+0x10] + ; gcrRegs +[r8] + xor edi, edi + test r14d, r14d + jg SHORT G_M56974_IG10 + ;; size=24 bbWeight=0.02 PerfScore 0.16 +G_M56974_IG08: ; bbWeight=0.08, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r8] + inc eax + cmp r9d, eax + jg SHORT G_M56974_IG07 + ;; size=7 bbWeight=0.08 PerfScore 0.12 +G_M56974_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx r12-r13 r15] add rsp, 184 pop rbx @@ -100,53 +128,53 @@ G_M56974_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, pop rbp ret ;; size=18 bbWeight=1 PerfScore 4.25
-G_M56974_IG06: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M56974_IG10: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx r8 r12-r13 r15] cmp eax, dword ptr [r15+0x08]
- jae G_M56974_IG28
+ jae G_M56974_IG32
mov ecx, eax mov rsi, gword ptr [r15+8*rcx+0x10] ; gcrRegs +[rsi] test edi, edi
- jl SHORT G_M56974_IG08
+ jl SHORT G_M56974_IG12
;; size=21 bbWeight=2 PerfScore 15.00
-G_M56974_IG07: ; bbWeight=16, gcrefRegs=B148 {rbx rsi r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG11: ; bbWeight=16, gcrefRegs=B148 {rbx rsi r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rsi+0x08], edi
- jg SHORT G_M56974_IG10
+ jg SHORT G_M56974_IG14
;; size=5 bbWeight=16 PerfScore 64.00
-G_M56974_IG08: ; bbWeight=8, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG12: ; bbWeight=8, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] inc edi cmp edi, r14d
- jl SHORT G_M56974_IG06
+ jl SHORT G_M56974_IG10
;; size=7 bbWeight=8 PerfScore 12.00
-G_M56974_IG09: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG13: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8]
- jmp SHORT G_M56974_IG04
+ jmp SHORT G_M56974_IG03
;; size=2 bbWeight=1 PerfScore 2.00
-G_M56974_IG10: ; bbWeight=0.50, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M56974_IG14: ; bbWeight=0.50, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r8] lea ecx, [rax+0x01] ;; size=3 bbWeight=0.50 PerfScore 0.25
-G_M56974_IG11: ; bbWeight=1, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG15: ; bbWeight=1, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
mov r9d, dword ptr [r12+0x08] mov dword ptr [rbp-0x2C], r9d cmp r9d, ecx
- jle SHORT G_M56974_IG08
+ jle SHORT G_M56974_IG12
test r15, r15
- je G_M56974_IG22
+ je G_M56974_IG26
test rbx, rbx
- je G_M56974_IG21
+ je G_M56974_IG25
test ecx, ecx
- jl G_M56974_IG20
+ jl G_M56974_IG24
cmp dword ptr [r15+0x08], r9d
- jl G_M56974_IG19
+ jl G_M56974_IG23
cmp dword ptr [rbx+0x08], r9d
- jl G_M56974_IG22
+ jl G_M56974_IG26
;; size=60 bbWeight=1 PerfScore 16.00
-G_M56974_IG12: ; bbWeight=3.96, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG16: ; bbWeight=3.96, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byrefRegs=0000 {}, byref, isz
cmp edi, dword ptr [r8+0x08]
- jae G_M56974_IG28
+ jae G_M56974_IG32
mov dword ptr [rbp+0x3C], edi mov esi, edi mov gword ptr [rbp+0x40], r8 @@ -174,79 +202,79 @@ G_M56974_IG12: ; bbWeight=3.96, gcrefRegs=B108 {rbx r8 r12 r13 r15}, byre lea r9d, [r8+0x01] mov r10d, r9d test r10d, r10d
- jl SHORT G_M56974_IG15
+ jl SHORT G_M56974_IG19
;; size=86 bbWeight=3.96 PerfScore 136.62
-G_M56974_IG13: ; bbWeight=15.84, gcrefRegs=B00B {rax rcx rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG17: ; bbWeight=15.84, gcrefRegs=B00B {rax rcx rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rcx+0x08], r10d
- jle SHORT G_M56974_IG15
+ jle SHORT G_M56974_IG19
;; size=6 bbWeight=15.84 PerfScore 63.36
-G_M56974_IG14: ; bbWeight=1.98, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG18: ; bbWeight=1.98, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx] mov esi, edi mov r11, gword ptr [rbx+8*rsi+0x10] ; gcrRegs +[r11] cmp r9d, dword ptr [r11+0x08]
- jae G_M56974_IG28
+ jae G_M56974_IG32
mov esi, r9d vcvtss2sd xmm1, xmm1, dword ptr [r11+4*rsi+0x10] vucomisd xmm1, xmm0
- jbe SHORT G_M56974_IG18
+ jbe SHORT G_M56974_IG22
;; size=33 bbWeight=1.98 PerfScore 32.67
-G_M56974_IG15: ; bbWeight=1.98, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M56974_IG19: ; bbWeight=1.98, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r11] mov esi, edi mov rdx, gword ptr [rbx+8*rsi+0x10] ; gcrRegs +[rdx] cmp r9d, dword ptr [rdx+0x08]
- jae G_M56974_IG28
+ jae G_M56974_IG32
mov esi, r9d vcvtsd2ss xmm0, xmm0, xmm0 vmovss dword ptr [rdx+4*rsi+0x10], xmm0 cmp r9d, dword ptr [rax+0x08]
- jae G_M56974_IG28
+ jae G_M56974_IG32
mov esi, r9d mov ecx, dword ptr [rbp+0x48] mov dword ptr [rax+4*rsi+0x10], ecx ;; size=50 bbWeight=1.98 PerfScore 37.12
-G_M56974_IG16: ; bbWeight=3.96, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG20: ; bbWeight=3.96, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax rdx] inc edi cmp dword ptr [rbp-0x2C], edi
- jg SHORT G_M56974_IG17
+ jg SHORT G_M56974_IG21
mov eax, ecx mov edi, r8d mov r8, gword ptr [rbp+0x40] ; gcrRegs +[r8] mov r9d, dword ptr [rbp-0x2C]
- jmp G_M56974_IG08
+ jmp G_M56974_IG12
;; size=25 bbWeight=3.96 PerfScore 30.69
-G_M56974_IG17: ; bbWeight=1.98, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M56974_IG21: ; bbWeight=1.98, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r8] mov eax, ecx mov ecx, edi mov edi, r8d mov r8, gword ptr [rbp+0x40] ; gcrRegs +[r8]
- jmp G_M56974_IG12
+ jmp G_M56974_IG16
;; size=16 bbWeight=1.98 PerfScore 7.42
-G_M56974_IG18: ; bbWeight=0.99, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M56974_IG22: ; bbWeight=0.99, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r8] mov ecx, dword ptr [rbp+0x48]
- jmp SHORT G_M56974_IG16
...

coreclr_tests.run.linux.x64.checked.mch

+133 (+48.90%) : 290999.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)

@@ -10,17 +10,16 @@ ; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ;
-; V00 arg0 [V00,T06] ( 4, 3.04) ref -> rbx class-hnd single-def <System.Collections.Generic.List`1[NamedSet][]> -; V01 loc0 [V01,T07] ( 5, 2.59) int -> r12 -; V02 loc1 [V02,T02] ( 8,123.42) ref -> r13 class-hnd <System.Collections.Generic.List`1[NamedSet]> -; V03 loc2 [V03,T08] ( 2, 1.56) ubyte -> r14 -; V04 loc3 [V04,T03] ( 9, 74.67) int -> r15 -; V05 loc4 [V05,T01] ( 8,130.10) int -> r14
+; V00 arg0 [V00,T06] ( 8, 3.53) ref -> rbx class-hnd single-def <System.Collections.Generic.List`1[NamedSet][]> +; V01 loc0 [V01,T07] ( 10, 2.57) int -> r12 +; V02 loc1 [V02,T02] ( 14,123.42) ref -> r13 class-hnd <System.Collections.Generic.List`1[NamedSet]> +; V03 loc2 [V03,T08] ( 4, 1.56) ubyte -> r15 +; V04 loc3 [V04,T03] ( 18, 74.67) int -> r14 +; V05 loc4 [V05,T01] ( 10,130.10) int -> r14
; V06 loc5 [V06,T00] ( 6,380.62) int -> r15 ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T04] ( 3, 63.11) ref -> rdi class-hnd "Inlining Arg" <<unknown class>> -; V09 tmp2 [V09,T05] ( 3, 63.11) ref -> rdi "arr expr" -; V10 cse0 [V10,T09] ( 3, 1.56) int -> rdi "CSE - moderate"
+; V08 tmp1 [V08,T04] ( 6, 63.11) ref -> rcx class-hnd "Inlining Arg" <<unknown class>> +; V09 tmp2 [V09,T05] ( 6, 63.11) ref -> rax "arr expr"
; ; Lcl frame size = 8 @@ -42,70 +41,132 @@ G_M3612_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov r14d, dword ptr [rbp+0x24] mov r15d, dword ptr [rbp+0x20] ;; size=71 bbWeight=1 PerfScore 18.75
-G_M3612_IG02: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M3612_IG10 - ;; size=2 bbWeight=1 PerfScore 2.00 -G_M3612_IG03: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M3612_IG02: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref + jmp G_M3612_IG17 + ;; size=5 bbWeight=1 PerfScore 2.00 +G_M3612_IG03: ; bbWeight=0.51, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
- cmp r12d, edi - jae G_M3612_IG14
mov edi, r12d mov r13, gword ptr [rbx+8*rdi+0x10] ; gcrRegs +[r13]
- ;; size=17 bbWeight=0.52 PerfScore 1.81 -G_M3612_IG04: ; bbWeight=0.52, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz - xor r14d, r14d - mov r15d, dword ptr [r13+0x10] - add r15d, -2 - js SHORT G_M3612_IG06 - ;; size=13 bbWeight=0.52 PerfScore 1.81 -G_M3612_IG05: ; bbWeight=10.52, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz - cmp r15d, dword ptr [r13+0x10] - jae G_M3612_IG18 - mov rdi, gword ptr [r13+0x08] - ; gcrRegs +[rdi] - cmp r15d, dword ptr [rdi+0x08] - jae SHORT G_M3612_IG14 - mov esi, r15d - mov rdi, gword ptr [rdi+8*rsi+0x10] - mov rdi, gword ptr [rdi+0x08] - mov esi, dword ptr [rdi+0x28] - sub esi, dword ptr [rdi+0x30] - je SHORT G_M3612_IG04 - mov rdi, r13 - mov esi, r15d - call [<unknown method>] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - dec r15d - jns SHORT G_M3612_IG05 - ;; size=57 bbWeight=10.52 PerfScore 262.96 -G_M3612_IG06: ; bbWeight=1.04, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz - test r14d, r14d - jne SHORT G_M3612_IG04 - ;; size=5 bbWeight=1.04 PerfScore 1.30 -G_M3612_IG07: ; bbWeight=0.52, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+ ;; size=8 bbWeight=0.51 PerfScore 1.15 +G_M3612_IG04: ; bbWeight=0.51, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + xor r15d, r15d
mov r14d, dword ptr [r13+0x10] add r14d, -2
- jns SHORT G_M3612_IG09 - ;; size=10 bbWeight=0.52 PerfScore 1.68 -G_M3612_IG08: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ js SHORT G_M3612_IG06 + ;; size=13 bbWeight=0.51 PerfScore 1.80 +G_M3612_IG05: ; bbWeight=10.41, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + cmp r14d, dword ptr [r13+0x10] + jae G_M3612_IG25 + mov rax, gword ptr [r13+0x08] + ; gcrRegs +[rax] + cmp r14d, dword ptr [rax+0x08] + jae G_M3612_IG21 + mov edi, r14d + mov rdi, gword ptr [rax+8*rdi+0x10] + ; gcrRegs +[rdi] + mov rcx, gword ptr [rdi+0x08] + ; gcrRegs +[rcx] + mov edi, dword ptr [rcx+0x28] + ; gcrRegs -[rdi] + sub edi, dword ptr [rcx+0x30] + je SHORT G_M3612_IG04 + mov rdi, r13 + ; gcrRegs +[rdi] + mov esi, r14d + call [<unknown method>] + ; gcrRegs -[rax rcx rdi] + ; gcr arg pop 0 + dec r14d + jns SHORT G_M3612_IG05 + ;; size=61 bbWeight=10.41 PerfScore 260.33 +G_M3612_IG06: ; bbWeight=1.03, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + test r15d, r15d + jne SHORT G_M3612_IG04 + ;; size=5 bbWeight=1.03 PerfScore 1.28 +G_M3612_IG07: ; bbWeight=0.51, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref + mov r14d, dword ptr [r13+0x10] + add r14d, -2 + jns G_M3612_IG16 + ;; size=14 bbWeight=0.51 PerfScore 1.67 +G_M3612_IG08: ; bbWeight=0.51, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13] inc r12d
- mov edi, dword ptr [rbx+0x08] - cmp edi, r12d - jle SHORT G_M3612_IG15
+ cmp dword ptr [rbx+0x08], r12d + jle G_M3612_IG22
jmp SHORT G_M3612_IG03
- ;; size=13 bbWeight=0.52 PerfScore 2.85 -G_M3612_IG09: ; bbWeight=9.69, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+ ;; size=15 bbWeight=0.51 PerfScore 3.21 +G_M3612_IG09: ; bbWeight=0.49, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + test rbx, rbx + je SHORT G_M3612_IG15 + test r12d, r12d + jl SHORT G_M3612_IG15 + jmp SHORT G_M3612_IG08 + ;; size=12 bbWeight=0.49 PerfScore 2.21 +G_M3612_IG10: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + cmp r12d, dword ptr [rbx+0x08] + jae G_M3612_IG21 + mov edi, r12d + mov r13, gword ptr [rbx+8*rdi+0x10] + ; gcrRegs +[r13] + ;; size=18 bbWeight=0.01 PerfScore 0.03 +G_M3612_IG11: ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + xor r15d, r15d + mov r14d, dword ptr [r13+0x10] + add r14d, -2 + js SHORT G_M3612_IG13 + ;; size=13 bbWeight=0.01 PerfScore 0.02 +G_M3612_IG12: ; bbWeight=0.11, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + cmp r14d, dword ptr [r13+0x10] + jae G_M3612_IG25 + mov rax, gword ptr [r13+0x08] + ; gcrRegs +[rax] + cmp r14d, dword ptr [rax+0x08] + jae SHORT G_M3612_IG21 + mov edi, r14d + mov rdi, gword ptr [rax+8*rdi+0x10] + ; gcrRegs +[rdi] + mov rcx, gword ptr [rdi+0x08] + ; gcrRegs +[rcx] + mov edi, dword ptr [rcx+0x28] + ; gcrRegs -[rdi] + sub edi, dword ptr [rcx+0x30] + je SHORT G_M3612_IG11 + mov rdi, r13 + ; gcrRegs +[rdi] + mov esi, r14d + call [<unknown method>] + ; gcrRegs -[rax rcx rdi] + ; gcr arg pop 0 + dec r14d + jns SHORT G_M3612_IG12 + ;; size=57 bbWeight=0.11 PerfScore 2.63 +G_M3612_IG13: ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + test r15d, r15d + jne SHORT G_M3612_IG11 + ;; size=5 bbWeight=0.01 PerfScore 0.01 +G_M3612_IG14: ; bbWeight=0.01, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + mov r14d, dword ptr [r13+0x10] + add r14d, -2 + jns SHORT G_M3612_IG16 + ;; size=10 bbWeight=0.01 PerfScore 0.02 +G_M3612_IG15: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r13] + inc r12d + cmp dword ptr [rbx+0x08], r12d + jle SHORT G_M3612_IG22 + jmp SHORT G_M3612_IG10 + ;; size=11 bbWeight=0.01 PerfScore 0.03 +G_M3612_IG16: ; bbWeight=9.69, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs +[r13] lea r15d, [r14-0x01] ;; size=4 bbWeight=9.69 PerfScore 4.84
-G_M3612_IG10: ; bbWeight=9.69, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M3612_IG17: ; bbWeight=9.69, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
test r15d, r15d
- jl SHORT G_M3612_IG12
+ jl SHORT G_M3612_IG19
;; size=5 bbWeight=9.69 PerfScore 12.11
-G_M3612_IG11: ; bbWeight=90.31, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M3612_IG18: ; bbWeight=90.31, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
mov rdi, r13 ; gcrRegs +[rdi] mov esi, r15d @@ -114,27 +175,27 @@ G_M3612_IG11: ; bbWeight=90.31, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 ; gcrRegs -[rdi] ; gcr arg pop 0 test eax, eax
- jne SHORT G_M3612_IG17
+ jne SHORT G_M3612_IG24
dec r15d
- jns SHORT G_M3612_IG11
+ jns SHORT G_M3612_IG18
;; size=24 bbWeight=90.31 PerfScore 564.44
-G_M3612_IG12: ; bbWeight=9.69, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M3612_IG19: ; bbWeight=9.69, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
dec r14d
- jns SHORT G_M3612_IG09
+ jns SHORT G_M3612_IG16
;; size=5 bbWeight=9.69 PerfScore 12.11
-G_M3612_IG13: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M3612_IG20: ; bbWeight=0.49, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
- jmp SHORT G_M3612_IG08 - ;; size=2 bbWeight=0.52 PerfScore 1.04 -G_M3612_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp G_M3612_IG09 + ;; size=5 bbWeight=0.49 PerfScore 0.98 +G_M3612_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M3612_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M3612_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop ;; size=1 bbWeight=0 PerfScore 0.00
-G_M3612_IG16: ; bbWeight=0, epilog, nogc, extend
+G_M3612_IG23: ; bbWeight=0, epilog, nogc, extend
add rsp, 120 pop rbx pop r12 @@ -144,7 +205,7 @@ G_M3612_IG16: ; bbWeight=0, epilog, nogc, extend pop rbp ret ...

libraries.crossgen2.linux.x64.checked.mch

+59 (+7.86%) : 201269.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)

@@ -12,24 +12,23 @@ ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <Microsoft.VisualBasic.CompilerServices.VBBinder> ; V01 arg1 [V01,T11] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Reflection.MethodBase> ; V02 arg2 [V02,T12] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Reflection.MethodBase>
-; V03 loc0 [V03,T14] ( 3, 2 ) ubyte -> rax -; V04 loc1 [V04,T04] ( 9, 12.04) ref -> r15 class-hnd single-def <<unknown class>> -; V05 loc2 [V05,T03] ( 13, 13.08) ref -> rbx class-hnd single-def <<unknown class>> -; V06 loc3 [V06,T00] ( 31, 55.66) int -> r13
+; V03 loc0 [V03,T13] ( 3, 2 ) ubyte -> rax +; V04 loc1 [V04,T03] ( 13, 13.08) ref -> r15 class-hnd single-def <<unknown class>> +; V05 loc2 [V05,T04] ( 13, 13.08) ref -> rbx class-hnd single-def <<unknown class>> +; V06 loc3 [V06,T00] ( 36, 52.20) int -> r13
; V07 loc4 [V07,T01] ( 10, 16 ) ref -> [rbp-0x30] class-hnd <<unknown class>> ; V08 loc5 [V08,T02] ( 10, 16 ) ref -> [rbp-0x38] class-hnd <<unknown class>> ; V09 loc6 [V09,T06] ( 8, 9 ) int -> r14 single-def
-;* V10 loc7 [V10,T18] ( 0, 0 ) int -> zero-ref single-def -; V11 loc8 [V11,T13] ( 3, 5 ) int -> r14 single-def
+;* V10 loc7 [V10,T17] ( 0, 0 ) int -> zero-ref single-def +; V11 loc8 [V11,T07] ( 6, 6 ) int -> r14 single-def
; V12 loc9 [V12,T08] ( 6, 6 ) int -> r14 single-def ;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V14 tmp1 [V14,T09] ( 3, 6 ) int -> r14 "non-inline candidate call"
-; V15 tmp2 [V15,T15] ( 2, 2 ) int -> r13 "non-inline candidate call" -; V16 tmp3 [V16,T16] ( 2, 2 ) int -> r13 "non-inline candidate call" -; V17 tmp4 [V17,T17] ( 2, 2 ) int -> r14 "Inline return value spill temp"
+; V15 tmp2 [V15,T14] ( 2, 2 ) int -> r13 "non-inline candidate call" +; V16 tmp3 [V16,T15] ( 2, 2 ) int -> r13 "non-inline candidate call" +; V17 tmp4 [V17,T16] ( 2, 2 ) int -> r14 "Inline return value spill temp"
; V18 tmp5 [V18,T10] ( 3, 6 ) int -> rax "Inlining Arg"
-; V19 cse0 [V19,T07] ( 8, 7.58) int -> r12 multi-def "CSE - aggressive" -; V20 cse1 [V20,T05] ( 3, 11.88) long -> r12 "CSE - aggressive"
+; V19 cse0 [V19,T05] ( 3, 11.88) long -> r12 "CSE - aggressive"
; ; Lcl frame size = 24 @@ -83,12 +82,11 @@ G_M40132_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, xor r13d, r13d test r14d, r14d jl G_M40132_IG14
- mov r12d, dword ptr [r15+0x08] - cmp r12d, r14d
+ cmp dword ptr [r15+0x08], r14d
jle G_M40132_IG09 cmp dword ptr [rbx+0x08], r14d jle G_M40132_IG09
- ;; size=115 bbWeight=1 PerfScore 37.50
+ ;; size=112 bbWeight=1 PerfScore 38.25
G_M40132_IG03: ; bbWeight=3.96, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov r12d, r13d mov rdi, gword ptr [r15+8*r12+0x10] @@ -153,7 +151,7 @@ G_M40132_IG07: ; bbWeight=3.96, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0 cmp rax, r12 jne G_M40132_IG15 add r13d, 1
- jo G_M40132_IG24
+ jo G_M40132_IG27
cmp r13d, r14d jle G_M40132_IG03 ;; size=32 bbWeight=3.96 PerfScore 18.81 @@ -163,9 +161,8 @@ G_M40132_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800 jmp G_M40132_IG14 ;; size=5 bbWeight=0.50 PerfScore 1.00 G_M40132_IG09: ; bbWeight=0.04, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- mov r12d, dword ptr [r15+0x08] - cmp r13d, r12d - jae G_M40132_IG25
+ cmp r13d, dword ptr [r15+0x08] + jae G_M40132_IG28
mov edi, r13d mov rdi, gword ptr [r15+8*rdi+0x10] ; gcrRegs +[rdi] @@ -183,7 +180,7 @@ G_M40132_IG09: ; bbWeight=0.04, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rax rdi] test eax, eax je SHORT G_M40132_IG11
- ;; size=55 bbWeight=0.04 PerfScore 0.81
+ ;; size=52 bbWeight=0.04 PerfScore 0.84
G_M40132_IG10: ; bbWeight=0.02, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref mov rdi, r12 ; gcrRegs +[rdi] @@ -196,7 +193,7 @@ G_M40132_IG10: ; bbWeight=0.02, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0 G_M40132_IG11: ; bbWeight=0.04, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[rax] cmp r13d, dword ptr [rbx+0x08]
- jae G_M40132_IG25
+ jae G_M40132_IG28
mov edi, r13d mov rdi, gword ptr [rbx+8*rdi+0x10] ; gcrRegs +[rdi] @@ -232,18 +229,18 @@ G_M40132_IG13: ; bbWeight=0.04, gcVars=0000000000000004 {V08}, gcrefRegs= cmp r12, gword ptr [rbp-0x38] jne SHORT G_M40132_IG15 add r13d, 1
- jo G_M40132_IG24
+ jo G_M40132_IG27
cmp r13d, r14d jle G_M40132_IG09 ;; size=25 bbWeight=0.04 PerfScore 0.22 G_M40132_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz ; gcrRegs -[r12] ; GC ptr vars -{V08}
- mov r12d, dword ptr [r15+0x08] - cmp r12d, dword ptr [rbx+0x08] - jle SHORT G_M40132_IG18
+ mov edi, dword ptr [r15+0x08] + cmp edi, dword ptr [rbx+0x08] + jle G_M40132_IG21
add r14d, 1
- jo G_M40132_IG24
+ jo G_M40132_IG27
mov r13d, r14d mov rdi, rbx ; gcrRegs +[rdi] @@ -253,18 +250,23 @@ G_M40132_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800 ; gcrRegs -[rbx rdi] mov r14d, eax cmp r13d, r14d
- jg G_M40132_IG22
+ jg G_M40132_IG25
jmp SHORT G_M40132_IG16
- ;; size=52 bbWeight=0.50 PerfScore 7.50
+ ;; size=55 bbWeight=0.50 PerfScore 7.50
G_M40132_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[r15] xor eax, eax
- jmp G_M40132_IG23
+ jmp G_M40132_IG26
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M40132_IG16: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M40132_IG16: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r15]
- cmp r13d, r12d - jae G_M40132_IG25
+ mov edi, r13d + or edi, r14d + jl SHORT G_M40132_IG19 + cmp dword ptr [r15+0x08], r14d + jle SHORT G_M40132_IG19 + ;; size=14 bbWeight=0.50 PerfScore 2.75 +G_M40132_IG17: ; bbWeight=3.96, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
mov edi, r13d mov rdi, gword ptr [r15+8*rdi+0x10] ; gcrRegs +[rdi] @@ -275,21 +277,44 @@ G_M40132_IG16: ; bbWeight=4, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr test eax, eax je SHORT G_M40132_IG15 add r13d, 1
- jo G_M40132_IG24
+ jo G_M40132_IG27
cmp r13d, r14d
- jle SHORT G_M40132_IG16 - ;; size=48 bbWeight=4 PerfScore 55.00 -G_M40132_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jle SHORT G_M40132_IG17 + ;; size=39 bbWeight=3.96 PerfScore 49.50 +G_M40132_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
- jmp G_M40132_IG22
+ jmp G_M40132_IG25
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M40132_IG18: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M40132_IG19: ; bbWeight=0.04, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r15] + cmp r13d, dword ptr [r15+0x08] + jae G_M40132_IG28 + mov edi, r13d + mov rdi, gword ptr [r15+8*rdi+0x10] + ; gcrRegs +[rdi] + lea r11, [(reloc)] + cmp dword ptr [rdi], edi + call [r11]<unknown method> + ; gcrRegs -[rdi] + test eax, eax + je SHORT G_M40132_IG15 + add r13d, 1 + jo G_M40132_IG27 + cmp r13d, r14d + jle SHORT G_M40132_IG19 + ;; size=49 bbWeight=0.04 PerfScore 0.66 +G_M40132_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[r15] + jmp G_M40132_IG25 + ;; size=5 bbWeight=0.50 PerfScore 1.00 +G_M40132_IG21: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r15]
- cmp dword ptr [rbx+0x08], r12d - jle G_M40132_IG22
+ mov edi, dword ptr [rbx+0x08] + cmp edi, dword ptr [r15+0x08] + jle G_M40132_IG25
mov r13d, r14d add r13d, 1
- jo G_M40132_IG24
+ jo G_M40132_IG27
mov rdi, r15 ; gcrRegs +[rdi] lea r11, [(reloc)] ; function address @@ -298,14 +323,14 @@ G_M40132_IG18: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rdi r15] mov r14d, eax cmp r13d, r14d
- jg SHORT G_M40132_IG22
+ jg SHORT G_M40132_IG25
mov edi, r13d or edi, r14d
- jl SHORT G_M40132_IG21
+ jl SHORT G_M40132_IG24
cmp dword ptr [rbx+0x08], r14d
- jle SHORT G_M40132_IG21 - ;; size=60 bbWeight=0.50 PerfScore 8.25 -G_M40132_IG19: ; bbWeight=3.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jle SHORT G_M40132_IG24 + ;; size=63 bbWeight=0.50 PerfScore 9.25 +G_M40132_IG22: ; bbWeight=3.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov edi, r13d mov rdi, gword ptr [rbx+8*rdi+0x10] ; gcrRegs +[rdi] @@ -316,18 +341,18 @@ G_M40132_IG19: ; bbWeight=3.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, test eax, eax je G_M40132_IG15 add r13d, 1
- jo SHORT G_M40132_IG24
+ jo SHORT G_M40132_IG27
cmp r13d, r14d
- jle SHORT G_M40132_IG19
+ jle SHORT G_M40132_IG22
;; size=39 bbWeight=3.96 PerfScore 49.50
-G_M40132_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M40132_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx]
- jmp SHORT G_M40132_IG22
+ jmp SHORT G_M40132_IG25
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M40132_IG21: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M40132_IG24: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx] cmp r13d, dword ptr [rbx+0x08]
- jae SHORT G_M40132_IG25
+ jae SHORT G_M40132_IG28
mov edi, r13d mov rdi, gword ptr [rbx+8*rdi+0x10] ; gcrRegs +[rdi] @@ -338,15 +363,15 @@ G_M40132_IG21: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, test eax, eax je G_M40132_IG15 add r13d, 1
- jo SHORT G_M40132_IG24
+ jo SHORT G_M40132_IG27
cmp r13d, r14d
- jle SHORT G_M40132_IG21
...

libraries_tests.run.linux.x64.Release.mch

-20 (-1.38%) : 316001.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser1[ubyte]](System.ReadOnlySpan1[ushort],int,byref):int (Instrumented Tier1)

@@ -9,82 +9,82 @@ ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V01 arg1 [V01,T09] ( 5, 4 ) int -> r14 single-def -; V02 arg2 [V02,T11] ( 5, 3.50) byref -> r13 single-def -; V03 loc0 [V03,T00] ( 28, 83.50) int -> r12 -; V04 loc1 [V04,T01] ( 22, 42 ) int -> [rbp-0x2C] -; V05 loc2 [V05,T24] ( 3, 1.50) ubyte -> [rbp-0x30] -; V06 loc3 [V06,T04] ( 7, 17.50) ubyte -> [rbp-0x34] -; V07 loc4 [V07,T15] ( 4, 2.50) int -> r14 -; V08 loc5 [V08,T14] ( 3, 3 ) ubyte -> r12
+; V01 arg1 [V01,T05] ( 5, 4 ) int -> r14 single-def +; V02 arg2 [V02,T07] ( 5, 3.50) byref -> r13 single-def +; V03 loc0 [V03,T00] ( 28, 69.50) int -> r12 +; V04 loc1 [V04,T01] ( 22, 33.25) int -> [rbp-0x2C] +; V05 loc2 [V05,T21] ( 3, 1.50) ubyte -> [rbp-0x30] +; V06 loc3 [V06,T10] ( 7, 3.50) ubyte -> [rbp-0x34] +; V07 loc4 [V07,T12] ( 4, 2.50) int -> r14 +; V08 loc5 [V08,T11] ( 3, 3 ) ubyte -> r12
;* V09 loc6 [V09 ] ( 0, 0 ) ubyte -> zero-ref ; V10 loc7 [V10 ] ( 9, 6.50) struct (24) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Diagnostics.Debug+AssertInterpolatedStringHandler>
-; V11 loc8 [V11,T25] ( 3, 1.50) ubyte -> rcx ld-addr-op -; V12 loc9 [V12,T05] ( 4, 12.50) int -> [rbp-0x54]
+; V11 loc8 [V11,T22] ( 3, 1.50) ubyte -> rcx ld-addr-op +;* V12 loc9 [V12,T37] ( 0, 0 ) int -> zero-ref
;* V13 loc10 [V13 ] ( 0, 0 ) int -> zero-ref
-; V14 loc11 [V14,T10] ( 3, 6 ) int -> rdi
+; V14 loc11 [V14,T06] ( 3, 6 ) int -> rdi
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V16 tmp1 [V16 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Diagnostics.Debug+AssertInterpolatedStringHandler> ; V17 tmp2 [V17,T40] ( 3, 0 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.StringBuilder> ;* V18 tmp3 [V18 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.StringBuilder+AppendInterpolatedStringHandler>
-; V19 tmp4 [V19,T12] ( 5, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder> -; V20 tmp5 [V20,T21] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>> -; V21 tmp6 [V21,T26] ( 3, 1.50) int -> rcx "Inline stloc first use temp" -; V22 tmp7 [V22,T17] ( 3, 2 ) byref -> rsi single-def "Inlining Arg" -; V23 tmp8 [V23,T35] ( 2, 1 ) byref -> rax single-def "Inline stloc first use temp"
+; V19 tmp4 [V19,T08] ( 5, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder> +; V20 tmp5 [V20,T18] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>> +; V21 tmp6 [V21,T23] ( 3, 1.50) int -> rcx "Inline stloc first use temp" +; V22 tmp7 [V22,T14] ( 3, 2 ) byref -> rsi single-def "Inlining Arg" +; V23 tmp8 [V23,T33] ( 2, 1 ) byref -> rax single-def "Inline stloc first use temp"
;* V24 tmp9 [V24 ] ( 0, 0 ) long -> zero-ref "spilling arg"
-; V25 tmp10 [V25,T13] ( 5, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder> -; V26 tmp11 [V26,T22] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>> -; V27 tmp12 [V27,T27] ( 3, 1.50) int -> rcx "Inline stloc first use temp" -; V28 tmp13 [V28,T18] ( 3, 2 ) byref -> rsi single-def "Inlining Arg" -; V29 tmp14 [V29,T36] ( 2, 1 ) byref -> rax single-def "Inline stloc first use temp"
+; V25 tmp10 [V25,T09] ( 5, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder> +; V26 tmp11 [V26,T19] ( 3, 1.50) ref -> rax class-hnd single-def "Inline stloc first use temp" <<unknown class>> +; V27 tmp12 [V27,T24] ( 3, 1.50) int -> rcx "Inline stloc first use temp" +; V28 tmp13 [V28,T15] ( 3, 2 ) byref -> rsi single-def "Inlining Arg" +; V29 tmp14 [V29,T34] ( 2, 1 ) byref -> rax single-def "Inline stloc first use temp"
;* V30 tmp15 [V30 ] ( 0, 0 ) long -> zero-ref "spilling arg" ;* V31 tmp16 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" <System.String>
-; V32 tmp17 [V32,T16] ( 5, 2 ) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" <System.Text.StringBuilder> -; V33 tmp18 [V33,T33] ( 3, 1 ) ref -> rdi
+; V32 tmp17 [V32,T13] ( 5, 2 ) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" <System.Text.StringBuilder> +; V33 tmp18 [V33,T31] ( 3, 1 ) ref -> rdi
;* V34 tmp19 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String> ;* V35 tmp20 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg" ;* V36 tmp21 [V36,T38] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V37 tmp22 [V37 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V38 tmp23 [V38,T19] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V39 tmp24 [V39,T28] ( 3, 1.50) long -> rdi "Inline stloc first use temp"
+;* V38 tmp23 [V38,T16] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V39 tmp24 [V39,T25] ( 3, 1.50) long -> rdi "Inline stloc first use temp"
;* V40 tmp25 [V40 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V41 tmp26 [V41 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V42 tmp27 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V43 tmp28 [V43,T29] ( 3, 1.50) long -> rdi "Inline stloc first use temp"
+; V43 tmp28 [V43,T26] ( 3, 1.50) long -> rdi "Inline stloc first use temp"
;* V44 tmp29 [V44 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V45 tmp30 [V45 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V46 tmp31 [V46,T34] ( 3, 1 ) int -> rax "Inline return value spill temp"
+; V46 tmp31 [V46,T32] ( 3, 1 ) int -> rax "Inline return value spill temp"
;* V47 tmp32 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]> ;* V48 tmp33 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> ;* V49 tmp34 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V50 tmp35 [V50,T37] ( 2, 1 ) ubyte -> rdx ld-addr-op "Inline ldloca(s) first use temp"
+; V50 tmp35 [V50,T35] ( 2, 1 ) ubyte -> rdx ld-addr-op "Inline ldloca(s) first use temp"
;* V51 tmp36 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V52 tmp37 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V53 tmp38 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V54 tmp39 [V54 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V55 tmp40 [V55,T07] ( 4, 10 ) int -> [rbp-0x58] "Inline return value spill temp"
+; V55 tmp40 [V55,T30] ( 4, 1.25) int -> [rbp-0x54] "Inline return value spill temp"
;* V56 tmp41 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]> ;* V57 tmp42 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> ;* V58 tmp43 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V59 tmp44 [V59,T08] ( 2, 8 ) ubyte -> rdi ld-addr-op "Inline ldloca(s) first use temp"
+; V59 tmp44 [V59,T36] ( 2, 1 ) ubyte -> rdi ld-addr-op "Inline ldloca(s) first use temp"
;* V60 tmp45 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V61 tmp46 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V62 tmp47 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V63 tmp48 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V64 tmp49 [V64 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V65 tmp50 [V65,T30] ( 3, 1.50) long -> rdi "Inline stloc first use temp"
+; V65 tmp50 [V65,T27] ( 3, 1.50) long -> rdi "Inline stloc first use temp"
;* V66 tmp51 [V66 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V67 tmp52 [V67 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V68 tmp53 [V68 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V69 tmp54 [V69,T06] ( 3, 12 ) long -> rdi "Inline stloc first use temp"
+; V69 tmp54 [V69,T04] ( 3, 12 ) long -> rdi "Inline stloc first use temp"
;* V70 tmp55 [V70 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V71 tmp56 [V71 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V72 tmp57 [V72,T39] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V73 tmp58 [V73 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V74 tmp59 [V74,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V75 tmp60 [V75,T03] ( 9, 20.50) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP -; V76 tmp61 [V76,T02] ( 11, 25.50) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp59 [V74,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V75 tmp60 [V75,T03] ( 9, 17 ) byref -> r15 single-def "field V00._reference (fldOffset=0x0)" P-INDEP +; V76 tmp61 [V76,T02] ( 11, 22 ) int -> rbx single-def "field V00._length (fldOffset=0x8)" P-INDEP
;* V77 tmp62 [V77 ] ( 0, 0 ) ref -> zero-ref single-def "field V18._stringBuilder (fldOffset=0x0)" P-INDEP ;* V78 tmp63 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "field V18._provider (fldOffset=0x8)" P-INDEP ;* V79 tmp64 [V79 ] ( 0, 0 ) ubyte -> zero-ref "field V18._hasCustomFormatter (fldOffset=0x10)" P-INDEP @@ -100,11 +100,11 @@ ;* V89 tmp74 [V89 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP ;* V90 tmp75 [V90 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP ;* V91 tmp76 [V91 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
-; V92 tmp77 [V92,T23] ( 3, 1.50) ref -> rax "V16.[000..008)"
+; V92 tmp77 [V92,T20] ( 3, 1.50) ref -> rax "V16.[000..008)"
;* V93 tmp78 [V93 ] ( 0, 0 ) ref -> zero-ref "V16.[008..016)" ;* V94 tmp79 [V94 ] ( 0, 0 ) ubyte -> zero-ref "V16.[016..017)"
-; V95 cse0 [V95,T31] ( 3, 1.50) int -> rdx "CSE - conservative" -; V96 cse1 [V96,T32] ( 3, 1.50) int -> rdx "CSE - conservative"
+; V95 cse0 [V95,T28] ( 3, 1.50) int -> rdx "CSE - conservative" +; V96 cse1 [V96,T29] ( 3, 1.50) int -> rdx "CSE - conservative"
; ; Lcl frame size = 56 @@ -134,7 +134,7 @@ G_M42207_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, test r14d, -516 sete r12b test r12d, r12d
- je G_M42207_IG58
+ je G_M42207_IG57
;; size=23 bbWeight=1 PerfScore 2.75 G_M42207_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref xor rax, rax @@ -164,7 +164,7 @@ G_M42207_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r1 mov ecx, dword ptr [rdi+0x18] lea edx, [rcx+0x18] cmp dword ptr [rax+0x08], edx
- jb G_M42207_IG59
+ jb G_M42207_IG58
movsxd rcx, ecx lea rax, bword ptr [rax+2*rcx+0x10] ; gcrRegs -[rax] @@ -191,7 +191,7 @@ G_M42207_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r1 mov ecx, dword ptr [rdi+0x18] lea edx, [rcx+0x07] cmp dword ptr [rax+0x08], edx
- jb G_M42207_IG60
+ jb G_M42207_IG59
movsxd rcx, ecx lea rax, bword ptr [rax+2*rcx+0x10] ; gcrRegs -[rax] @@ -208,7 +208,7 @@ G_M42207_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, mov rdi, gword ptr [rbp-0x50] ; gcrRegs +[rdi] test rdi, rdi
- jne G_M42207_IG61
+ jne G_M42207_IG60
;; size=13 bbWeight=1 PerfScore 2.25 G_M42207_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref ; gcrRegs -[rdi] @@ -231,7 +231,7 @@ G_M42207_IG10: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=A000 {r13 ;; size=16 bbWeight=0.50 PerfScore 1.62 G_M42207_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref test ebx, ebx
- je G_M42207_IG44
+ je G_M42207_IG43
;; size=8 bbWeight=1 PerfScore 1.25 G_M42207_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref, isz xor r12d, r12d @@ -296,7 +296,7 @@ G_M42207_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r1 G_M42207_IG19: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref, isz inc r12d cmp r12d, ebx
- jae G_M42207_IG41
+ jae G_M42207_IG40
mov eax, r12d movzx rax, word ptr [r15+2*rax] cmp eax, 48 @@ -315,7 +315,7 @@ G_M42207_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r1 shlx rsi, rsi, rdi add rdi, -64 and rdi, rsi
- jge G_M42207_IG46
+ jge G_M42207_IG45
;; size=34 bbWeight=0.50 PerfScore 1.88 G_M42207_IG22: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref mov rdi, 0xD1FFAB1E @@ -325,7 +325,7 @@ G_M42207_IG22: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r1 ;; size=18 bbWeight=0.25 PerfScore 0.56 G_M42207_IG23: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref cmp eax, 256
- jge G_M42207_IG62
+ jge G_M42207_IG61
mov edi, eax mov rax, 0xD1FFAB1E ; static handle movzx rax, byte ptr [rdi+rax] @@ -334,42 +334,40 @@ G_M42207_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r1 movzx rdx, al mov dword ptr [rbp-0x34], edx inc r12d
- xor edx, edx - mov dword ptr [rbp-0x54], edx
jmp SHORT G_M42207_IG27
- ;; size=16 bbWeight=0.50 PerfScore 2.38
+ ;; size=11 bbWeight=0.50 PerfScore 1.75
G_M42207_IG25: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref ; byrRegs -[r15] mov rdi, 0xD1FFAB1E call CORINFO_HELP_COUNTPROFILE32 ; gcr arg pop 0
- jmp G_M42207_IG44
+ jmp G_M42207_IG43
;; size=20 bbWeight=0.25 PerfScore 0.81 G_M42207_IG26: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref mov rdi, 0xD1FFAB1E call CORINFO_HELP_COUNTPROFILE32 ; gcr arg pop 0
- jmp G_M42207_IG44
+ jmp G_M42207_IG43
;; size=20 bbWeight=0.25 PerfScore 0.81
-G_M42207_IG27: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref
+G_M42207_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref
; byrRegs +[r15] cmp r12d, ebx
- jae G_M42207_IG38
+ jae G_M42207_IG37
mov edi, r12d movzx rdi, word ptr [r15+2*rdi]
- mov esi, edi - cmp esi, 256 - jge G_M42207_IG63 - ;; size=31 bbWeight=4 PerfScore 20.00 -G_M42207_IG28: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref - mov edi, esi - mov r8, 0xD1FFAB1E ; static handle - movzx r8, byte ptr [rdi+r8] - ;; size=17 bbWeight=2 PerfScore 5.00 -G_M42207_IG29: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=A000 {r13 r15}, byref, isz - mov dword ptr [rbp-0x58], r8d - cmp r8d, 15 - ja G_M42207_IG37
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.x64.checked.mch 1 0 1 0 -0 +51
benchmarks.run_tiered.linux.x64.checked.mch 2 0 2 0 -0 +218
coreclr_tests.run.linux.x64.checked.mch 1 0 1 0 -0 +133
libraries.crossgen2.linux.x64.checked.mch 1 0 1 0 -0 +59
libraries.pmi.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.x64.Release.mch 2 1 1 0 -20 +126
librariestestsnotieredcompilation.run.linux.x64.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.x64.checked.mch 0 0 0 0 -0 +0
7 1 6 0 -20 +587

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 36,217 3,549 32,668 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.x64.checked.mch 160,323 63,207 97,116 0 (0.00%) 4 (0.00%)
benchmarks.run_tiered.linux.x64.checked.mch 65,385 50,236 15,149 0 (0.00%) 1 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 599,010 355,942 243,068 0 (0.00%) 3 (0.00%)
libraries.crossgen2.linux.x64.checked.mch 234,329 15 234,314 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 296,931 6 296,925 0 (0.00%) 0 (0.00%)
libraries_tests.run.linux.x64.Release.mch 759,766 496,184 263,582 0 (0.00%) 0 (0.00%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,443 21,912 283,531 0 (0.00%) 0 (0.00%)
realworld.run.linux.x64.checked.mch 33,083 9 33,074 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,414 10 27,404 0 (0.00%) 0 (0.00%)
2,517,901 991,070 1,526,831 0 (0.00%) 8 (0.00%)

jit-analyze output

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

Detail diffs



Top file regressions (bytes):
          51 : 112826.dasm (6.85 % of base)

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

Top method regressions (bytes):
          51 (6.85 % of base) : 112826.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

Top method regressions (percentages):
          51 (6.85 % of base) : 112826.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

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


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

Detail diffs



Top file regressions (bytes):
         174 : 38622.dasm (20.59 % of base)
          44 : 54552.dasm (6.45 % of base)

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

Top method regressions (bytes):
         174 (20.59 % of base) : 38622.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          44 (6.45 % of base) : 54552.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

Top method regressions (percentages):
         174 (20.59 % of base) : 38622.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier1-OSR)
          44 (6.45 % of base) : 54552.dasm - JetStream.Statistics:findOptimalSegmentationInternal(float[][],int[][],double[],JetStream.SampleVarianceUpperTriangularMatrix,int) (Tier1-OSR)

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


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

Detail diffs



Top file regressions (bytes):
         133 : 290999.dasm (48.90 % of base)

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

Top method regressions (bytes):
         133 (48.90 % of base) : 290999.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)

Top method regressions (percentages):
         133 (48.90 % of base) : 290999.dasm - Runtime_88091:Problem(System.Collections.Generic.List`1[NamedSet][]) (Tier1-OSR)

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


libraries.crossgen2.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38727133 (overridden on cmd)
Total bytes of diff: 38727192 (overridden on cmd)
Total bytes of delta: 59 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          59 : 201269.dasm (7.86 % of base)

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

Top method regressions (bytes):
          59 (7.86 % of base) : 201269.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)

Top method regressions (percentages):
          59 (7.86 % of base) : 201269.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)

1 total methods with Code Size differences (0 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: 337107837 (overridden on cmd)
Total bytes of diff: 337107943 (overridden on cmd)
Total bytes of delta: 106 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         126 : 326348.dasm (6.92 % of base)

Top file improvements (bytes):
         -20 : 316001.dasm (-1.38 % of base)

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

Top method regressions (bytes):
         126 (6.92 % of base) : 326348.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)

Top method improvements (bytes):
         -20 (-1.38 % of base) : 316001.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (Instrumented Tier1)

Top method regressions (percentages):
         126 (6.92 % of base) : 326348.dasm - System.Globalization.Tests.CompareInfoCompareTests:TestHiraganaAndKatakana(int[],int[]):this (Tier1-OSR)

Top method improvements (percentages):
         -20 (-1.38 % of base) : 316001.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (Instrumented Tier1)

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