Assembly Diffs

linux arm64

Diffs are based on 2,259,470 contexts (1,008,044 MinOpts, 1,251,426 FullOpts).

MISSED contexts: 159 (0.01%)

Overall (-624 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 79,903,244 -8
coreclr_tests.run.linux.arm64.checked.mch 509,740,232 +0
libraries_tests.run.linux.arm64.Release.mch 400,018,960 -616

FullOpts (-624 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 54,354,872 -8
coreclr_tests.run.linux.arm64.checked.mch 160,832,376 +0
libraries_tests.run.linux.arm64.Release.mch 183,280,056 -616

Example diffs

benchmarks.run_pgo.linux.arm64.checked.mch

-4 (-1.08%) : 96115.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -54,7 +54,7 @@ G_M4144_IG02: ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by add w7, w6, w7 sub w7, w7, #1 ldr w9, [x1, #0x10]
- b G_M4144_IG10
+ b G_M4144_IG08
;; size=24 bbWeight=1 PerfScore 11.00 G_M4144_IG03: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref ldr w4, [x1, #0x1C] @@ -64,51 +64,43 @@ G_M4144_IG03: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, G_M4144_IG04: ; bbWeight=1.00, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz add w5, w5, #1 cmp w4, w5
- bge G_M4144_IG07
+ blt G_M4144_IG14
;; size=12 bbWeight=1.00 PerfScore 2.00
-G_M4144_IG05: ; bbWeight=0.05, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref - b G_M4144_IG15 - ;; size=4 bbWeight=0.05 PerfScore 0.05 -G_M4144_IG06: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz - ldr w5, [x1, #0x1C] - cmp w4, w5 - blt G_M4144_IG15 - ;; size=12 bbWeight=0.10 PerfScore 0.45 -G_M4144_IG07: ; bbWeight=0.91, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG05: ; bbWeight=0.91, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
ldr w10, [x1, #0x20] cmp w3, w10 blt G_M4144_IG04 ;; size=12 bbWeight=0.91 PerfScore 4.10
-G_M4144_IG08: ; bbWeight=0.46, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG06: ; bbWeight=0.46, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
mov w4, w10 ;; size=4 bbWeight=0.46 PerfScore 0.23
-G_M4144_IG09: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG07: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
sxtw w3, w6 ;; size=4 bbWeight=9.10 PerfScore 4.55
-G_M4144_IG10: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG08: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
cmp w7, w3
- blt G_M4144_IG13
+ blt G_M4144_IG11
;; size=8 bbWeight=9.10 PerfScore 13.65
-G_M4144_IG11: ; bbWeight=8.27, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG09: ; bbWeight=8.27, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
ldr w10, [x2, #0x1C] sub w10, w5, w10 ldr w11, [x2, #0x10] ;; size=12 bbWeight=8.27 PerfScore 53.76
-G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG10: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
sxtw w13, w10 cmp w13, w11
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
ldr w14, [x2, #0x14] ldr w12, [x2, #0x20] sub w12, w4, w12 cmp w12, w14
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w13, w13, w14, w12 ldr w14, [x2, #0x18] ldr w12, [x2, #0x24] sub w12, w3, w12 cmp w12, w14
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w13, w13, w14, w12 ubfiz x13, x13, #2, #32 add x13, x13, #40 @@ -116,17 +108,17 @@ G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {} sub w14, w5, w14 ldp w12, w15, [x1, #0x10] cmp w14, w12
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
ldr w12, [x1, #0x20] sub w12, w4, w12 cmp w12, w15
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w14, w14, w15, w12 ldr w12, [x1, #0x18] ldr w15, [x1, #0x24] sub w15, w3, w15 cmp w15, w12
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w14, w14, w12, w15 ubfiz x14, x14, #2, #32 add x14, x14, #40 @@ -134,24 +126,29 @@ G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {} str w14, [x2, x13] add w3, w3, #1 cmp w7, w3
- bge G_M4144_IG12
+ bge G_M4144_IG10
;; size=160 bbWeight=90.90 PerfScore 5090.46
-G_M4144_IG13: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG11: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
add w4, w4, #1 ldr w3, [x1, #0x20] add w3, w3, w8 sub w3, w3, #1 cmp w3, w4
- bge G_M4144_IG09
+ bge G_M4144_IG07
;; size=24 bbWeight=9.10 PerfScore 54.59
-G_M4144_IG14: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG12: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
b G_M4144_IG03 ;; size=4 bbWeight=0.82 PerfScore 0.82
-G_M4144_IG15: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG13: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz + ldr w5, [x1, #0x1C] + cmp w4, w5 + bge G_M4144_IG05 + ;; size=12 bbWeight=0.10 PerfScore 0.45 +G_M4144_IG14: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
sub w0, w0, #1
- cbnz w0, G_M4144_IG06
+ cbnz w0, G_M4144_IG13
;; size=8 bbWeight=0.10 PerfScore 0.15
-G_M4144_IG16: ; bbWeight=0, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG15: ; bbWeight=0, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
mov x0, x1 ; gcrRegs +[x0] mov x1, x2 @@ -164,18 +161,18 @@ G_M4144_IG16: ; bbWeight=0, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by ; gcrRegs -[x0-x1] ; gcr arg pop 0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M4144_IG17: ; bbWeight=0, epilog, nogc, extend
+G_M4144_IG16: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 add sp, sp, #80 ret lr ;; size=12 bbWeight=0 PerfScore 0.00
-G_M4144_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M4144_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00
-Total bytes of code 372, prolog size 24, PerfScore 5249.58, instruction count 93, allocated bytes for code 372 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
+Total bytes of code 368, prolog size 24, PerfScore 5249.53, instruction count 92, allocated bytes for code 368 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
; ============================================================ Unwind Info: @@ -186,7 +183,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 93 (0x0005d) Actual length = 372 (0x000174)
+ Function Length : 92 (0x0005c) Actual length = 368 (0x000170)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-0.28%) : 88519.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindExpressionInternal(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

@@ -139,7 +139,7 @@ ; V127 tmp121 [V127,T121] ( 2, 0 ) ref -> x1 class-hnd single-def "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.QualifiedNameSyntax> ;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V129 tmp123 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-; V130 tmp124 [V130,T09] ( 41, 1.33) ref -> x0 "Single return block return value"
+; V130 tmp124 [V130,T09] ( 42, 1.33) ref -> x0 "Single return block return value"
; V131 tmp125 [V131,T122] ( 2, 0 ) ref -> x1 single-def "argument with side effect" ; V132 tmp126 [V132,T123] ( 2, 0 ) ref -> x1 single-def "argument with side effect" ; V133 tmp127 [V133,T124] ( 2, 0 ) ref -> x2 single-def "argument with side effect" @@ -282,7 +282,7 @@ G_M29879_IG09: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00 ; gcrRegs -[x0] +[x19-x21] mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158
+ bne G_M29879_IG157
b G_M29879_IG137 ;; size=16 bbWeight=0 PerfScore 0.00 G_M29879_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz @@ -291,8 +291,8 @@ G_M29879_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00 beq G_M29879_IG79 mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158 - b G_M29879_IG149
+ bne G_M29879_IG157 + b G_M29879_IG148
;; size=28 bbWeight=0 PerfScore 0.00 G_M29879_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E @@ -312,16 +312,16 @@ G_M29879_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00 G_M29879_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158 - b G_M29879_IG155
+ bne G_M29879_IG157 + b G_M29879_IG154
;; size=16 bbWeight=0 PerfScore 0.00 G_M29879_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w24, w1
- beq G_M29879_IG145
+ beq G_M29879_IG144
mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158
+ bne G_M29879_IG157
b G_M29879_IG130 ;; size=28 bbWeight=0 PerfScore 0.00 G_M29879_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref @@ -2291,24 +2291,19 @@ G_M29879_IG138: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3]
- ;; size=28 bbWeight=0 PerfScore 0.00 -G_M29879_IG139: ; bbWeight=0, epilog, nogc, extend - ldr x25, [sp, #0x78] - ldp x23, x24, [sp, #0x68] - ldp x21, x22, [sp, #0x58] - ldp x19, x20, [sp, #0x48] - ldp fp, lr, [sp], #0x80 - br x3
+ blr x3 + ; gcrRegs -[x1-x2 x19-x21]
; gcr arg pop 0
- ;; size=24 bbWeight=0 PerfScore 0.00 -G_M29879_IG140: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[x0-x2]
+ b G_M29879_IG07 + ;; size=36 bbWeight=0 PerfScore 0.00 +G_M29879_IG139: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] +[x19-x21]
ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG141
+ beq G_M29879_IG140
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2317,7 +2312,7 @@ G_M29879_IG140: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_unix #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG141: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG140: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] @@ -2330,7 +2325,7 @@ G_M29879_IG141: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG142: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG141: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2339,7 +2334,7 @@ G_M29879_IG142: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG143: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG142: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x2] mov x0, x20 ; gcrRegs +[x0] @@ -2352,7 +2347,7 @@ G_M29879_IG143: ; bbWeight=0, gcVars=000000000000000000000000000000000000 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG144: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG143: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2361,7 +2356,7 @@ G_M29879_IG144: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG145: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG144: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x2] mov x0, x20 ; gcrRegs +[x0] @@ -2374,7 +2369,7 @@ G_M29879_IG145: ; bbWeight=0, gcVars=000000000000000000000000000000000000 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG146: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG145: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2383,7 +2378,7 @@ G_M29879_IG146: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG147: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG146: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x2] mov x0, x20 ; gcrRegs +[x0] @@ -2396,7 +2391,7 @@ G_M29879_IG147: ; bbWeight=0, gcVars=000000000000000000000000000000000000 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG148: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG147: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2405,14 +2400,14 @@ G_M29879_IG148: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG149: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG148: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0-x2] ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG150
+ beq G_M29879_IG149
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2421,7 +2416,7 @@ G_M29879_IG149: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_unix #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG150: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG149: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] @@ -2434,7 +2429,7 @@ G_M29879_IG150: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG151: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG150: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2443,14 +2438,14 @@ G_M29879_IG151: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG152: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG151: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0-x2] ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG153
+ beq G_M29879_IG152
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2459,7 +2454,7 @@ G_M29879_IG152: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_unix #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG153: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG152: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] @@ -2472,7 +2467,7 @@ G_M29879_IG153: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG154: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG153: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2481,14 +2476,14 @@ G_M29879_IG154: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG155: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG154: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0-x2] ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG156
+ beq G_M29879_IG155
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2497,7 +2492,7 @@ G_M29879_IG155: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_unix #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG156: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG155: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] ...

+12 (+1.06%) : 111691.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d__23[ubyte]:MoveNext():this (Tier1)

@@ -12,22 +12,22 @@ ; V00 this [V00,T08] ( 25, 29.57) byref -> [fp+0x18] this EH-live single-def ; V01 loc0 [V01,T19] ( 2, 2 ) int -> x1 single-def ; V02 loc1 [V02,T01] ( 13, 50.64) ref -> x19 class-hnd single-def <System.Buffers.Tests.RentReturnArrayPoolTests`1[ubyte]>
-; V03 loc2 [V03,T07] ( 7, 32.00) int -> x21
+; V03 loc2 [V03,T07] ( 7, 32.00) int -> x22
; V04 loc3 [V04 ] ( 4, 3.93) struct ( 8) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter> ;* V05 loc4 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Runtime.CompilerServices.YieldAwaitable>
-; V06 loc5 [V06,T06] ( 9, 41.09) int -> x23
+; V06 loc5 [V06,T06] ( 9, 41.09) int -> x20
;* V07 loc6 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 loc7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>> ;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V10 tmp1 [V10 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V11 tmp2 [V11,T11] ( 2, 31.01) ref -> x22 class-hnd "impAppendStmt" <<unknown class>>
+; V11 tmp2 [V11,T11] ( 2, 31.01) ref -> x24 class-hnd "impAppendStmt" <<unknown class>>
; V12 tmp3 [V12,T27] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>> ; V13 tmp4 [V13,T17] ( 3, 15.51) ref -> x2 "guarded devirt return temp"
-; V14 tmp5 [V14,T04] ( 5, 46.52) ref -> x0 "guarded devirt arg temp"
+; V14 tmp5 [V14,T04] ( 5, 46.52) ref -> x2 "guarded devirt arg temp"
; V15 tmp6 [V15,T10] ( 3, 31.01) int -> x1 "guarded devirt arg temp" ;* V16 tmp7 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Buffers.ConfigurableArrayPool`1[ubyte]>
-; V17 tmp8 [V17,T02] ( 7, 46.99) ref -> x24 "guarded devirt arg temp" -; V18 tmp9 [V18,T00] ( 7, 62.39) ref -> x25 "guarded devirt arg temp"
+; V17 tmp8 [V17,T02] ( 7, 46.99) ref -> x21 "guarded devirt arg temp" +; V18 tmp9 [V18,T00] ( 7, 62.39) ref -> x22 "guarded devirt arg temp"
;* V19 tmp10 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Buffers.ConfigurableArrayPool`1[ubyte]> ; V20 tmp11 [V20,T21] ( 4, 0 ) ref -> x1 class-hnd "Inlining Arg" <ubyte[]> ;* V21 tmp12 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]> @@ -37,12 +37,12 @@ ;* V25 tmp16 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V26 tmp17 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V27 tmp18 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V28 tmp19 [V28,T09] ( 4, 31.07) int -> x0 "Inline stloc first use temp" -; V29 tmp20 [V29,T16] ( 3, 15.66) ubyte -> x27 "Inline stloc first use temp" -; V30 tmp21 [V30,T15] ( 4, 15.66) ref -> x28 class-hnd exact "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource> -; V31 tmp22 [V31,T25] ( 3, 0 ) int -> x25 "Inline stloc first use temp" -; V32 tmp23 [V32,T28] ( 2, 0 ) int -> x21 "impAppendStmt" -; V33 tmp24 [V33,T29] ( 2, 0 ) int -> x26 "impAppendStmt"
+; V28 tmp19 [V28,T09] ( 4, 31.07) int -> x1 "Inline stloc first use temp" +; V29 tmp20 [V29,T16] ( 3, 15.66) ubyte -> x24 "Inline stloc first use temp" +; V30 tmp21 [V30,T15] ( 4, 15.66) ref -> x25 class-hnd exact "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource> +; V31 tmp22 [V31,T25] ( 3, 0 ) int -> x22 "Inline stloc first use temp" +; V32 tmp23 [V32,T28] ( 2, 0 ) int -> x26 "impAppendStmt" +; V33 tmp24 [V33,T29] ( 2, 0 ) int -> x23 "impAppendStmt"
;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V35 tmp26 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V36 tmp27 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" @@ -52,32 +52,31 @@ ; V40 tmp31 [V40,T22] ( 3, 0 ) byref -> x0 "field V22._reference (fldOffset=0x0)" P-INDEP ; V41 tmp32 [V41,T26] ( 3, 0 ) int -> x2 "field V22._length (fldOffset=0x8)" P-INDEP ; V42 tmp33 [V42,T23] ( 3, 0 ) ref -> x1 "arr expr"
-; V43 tmp34 [V43,T24] ( 3, 0 ) ref -> x0 "arr expr" -; V44 tmp35 [V44,T03] ( 3, 46.99) ref -> x0 "arr expr" -; V45 tmp36 [V45,T05] ( 3, 46.20) ref -> x1 "arr expr" -; V46 tmp37 [V46,T12] ( 2, 30.80) ref -> x0 "argument with side effect"
+; V43 tmp34 [V43,T24] ( 3, 0 ) ref -> x1 "arr expr" +; V44 tmp35 [V44,T03] ( 3, 46.99) ref -> x1 "arr expr" +; V45 tmp36 [V45,T05] ( 3, 46.20) ref -> x2 "arr expr" +; V46 tmp37 [V46,T12] ( 2, 30.80) ref -> x1 "argument with side effect"
; V47 tmp38 [V47,T31] ( 2, 0 ) int -> x3 "argument with side effect" ; V48 tmp39 [V48,T18] ( 2, 3.94) ref -> x1 "argument with side effect" ; V49 PSPSym [V49,T20] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
-; V50 cse0 [V50,T14] ( 3, 23.36) ref -> x1 "CSE - aggressive" -; V51 cse1 [V51,T13] ( 5, 23.50) int -> x26 "CSE - aggressive"
+; V50 cse0 [V50,T14] ( 3, 23.36) ref -> x2 "CSE - aggressive" +; V51 cse1 [V51,T13] ( 5, 23.50) int -> x23 "CSE - aggressive"
; ; Lcl frame size = 32 G_M15237_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x80]!
+ stp fp, lr, [sp, #-0x70]!
stp x19, x20, [sp, #0x30] stp x21, x22, [sp, #0x40] stp x23, x24, [sp, #0x50] stp x25, x26, [sp, #0x60]
- stp x27, x28, [sp, #0x70]
mov fp, sp str xzr, [fp, #0x20] // [V04 loc3]
- add x1, sp, #128
+ add x1, sp, #112
str x1, [fp, #0x28] // [V49 PSPSym] str x0, [fp, #0x18] // [V00 this] ; GC ptr vars +{V00}
- ;; size=44 bbWeight=1 PerfScore 10.00
+ ;; size=40 bbWeight=1 PerfScore 9.00
G_M15237_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, gcvars, byref ; byrRegs +[x0] ldr w1, [x0, #0x10] @@ -86,7 +85,7 @@ G_M15237_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=000 ;; size=8 bbWeight=1 PerfScore 6.00 G_M15237_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ; byrRegs -[x0]
- cbnz w1, G_M15237_IG14
+ cbnz w1, G_M15237_IG19
;; size=4 bbWeight=1 PerfScore 1.00 G_M15237_IG04: ; bbWeight=0.98, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [fp, #0x18] // [V00 this] @@ -96,72 +95,74 @@ G_M15237_IG04: ; bbWeight=0.98, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, strb wzr, [x0, #0x20] movn w1, #0 str w1, [x0, #0x10]
- mov x20, x0 - ; byrRegs +[x20] - ;; size=28 bbWeight=0.98 PerfScore 8.80 -G_M15237_IG05: ; bbWeight=0.96, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz - ; byrRegs -[x0] - ldr x0, [x19, #0x10] - ; gcrRegs +[x0] - ldr w0, [x0, #0x08] - ; gcrRegs -[x0] - sub w23, w0, #1 - tbnz w23, #31, G_M15237_IG12
+ ;; size=24 bbWeight=0.98 PerfScore 8.31 +G_M15237_IG05: ; bbWeight=0.96, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz + ldr x1, [x19, #0x10] + ; gcrRegs +[x1] + ldr w1, [x1, #0x08] + ; gcrRegs -[x1] + sub w20, w1, #1 + tbnz w20, #31, G_M15237_IG12
;; size=16 bbWeight=0.96 PerfScore 7.24
-G_M15237_IG06: ; bbWeight=7.83, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz - ldrb w0, [x19, #0x1C] - cbnz w0, G_M15237_IG24 - ;; size=8 bbWeight=7.83 PerfScore 31.33 -G_M15237_IG07: ; bbWeight=7.83, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz - ldr x24, [x20, #0x08] - ; gcrRegs +[x24] - ldr x0, [x19, #0x10] - ; gcrRegs +[x0] - ldr w1, [x0, #0x08] - cmp w23, w1 - bhs G_M15237_IG21 - add x0, x0, #16 - ; gcrRegs -[x0] - ; byrRegs +[x0] - ldr x25, [x0, w23, UXTW #3] - ; gcrRegs +[x25] - ldr x0, [x24]
+G_M15237_IG06: ; bbWeight=7.83, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- movz x1, #0xD1FFAB1E - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - cmp x0, x1 - bne G_M15237_IG26 - ;; size=52 bbWeight=7.83 PerfScore 156.64 -G_M15237_IG08: ; bbWeight=7.83, gcrefRegs=3080000 {x19 x24 x25}, byrefRegs=100000 {x20}, byref, isz - cbz x25, G_M15237_IG27 - ldr w26, [x25, #0x08] - cbz w26, G_M15237_IG11 - sub w0, w26, #1 - orr w0, w0, #15 - clz w0, w0 - eor w0, w0, #31 - sub w0, w0, #3 - ldr x1, [x24, #0x08]
+ ldr x0, [fp, #0x18] // [V00 this] + ; byrRegs +[x0] + ldrb w1, [x19, #0x1C] + cbnz w1, G_M15237_IG26 + ;; size=12 bbWeight=7.83 PerfScore 46.99 +G_M15237_IG07: ; bbWeight=7.83, gcrefRegs=80000 {x19}, byrefRegs=0001 {x0}, byref, isz + ldr x21, [x0, #0x08] + ; gcrRegs +[x21] + ldr x1, [x19, #0x10]
; gcrRegs +[x1] ldr w2, [x1, #0x08]
- cmp w2, w0 - cset x27, gt - cbz w27, G_M15237_IG10 - ;; size=52 bbWeight=7.83 PerfScore 121.39 -G_M15237_IG09: ; bbWeight=7.70, gcrefRegs=3080002 {x1 x19 x24 x25}, byrefRegs=100000 {x20}, byref, isz - ldr w2, [x1, #0x08] - cmp w0, w2 - bhs G_M15237_IG21
+ cmp w20, w2 + bhs G_M15237_IG22
add x1, x1, #16 ; gcrRegs -[x1] ; byrRegs +[x1]
- ldr x0, [x1, w0, UXTW #3] - ; gcrRegs +[x0] - mov x1, x25 - ; gcrRegs +[x1]
+ ldr x22, [x1, w20, UXTW #3] + ; gcrRegs +[x22] + ldr x1, [x21]
; byrRegs -[x1]
+ movz x2, #0xD1FFAB1E + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + cmp x1, x2 + bne G_M15237_IG28 + ;; size=52 bbWeight=7.83 PerfScore 156.64 +G_M15237_IG08: ; bbWeight=7.83, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref, isz + ; byrRegs -[x0] + cbz x22, G_M15237_IG29 + ldr w23, [x22, #0x08] + cbz w23, G_M15237_IG11 + sub w1, w23, #1 + orr w1, w1, #15 + clz w1, w1 + eor w1, w1, #31 + sub w1, w1, #3 + ldr x2, [x21, #0x08] + ; gcrRegs +[x2] + ldr w3, [x2, #0x08] + cmp w3, w1 + cset x24, gt + cbz w24, G_M15237_IG10 + ;; size=52 bbWeight=7.83 PerfScore 121.39 +G_M15237_IG09: ; bbWeight=7.70, gcrefRegs=680004 {x2 x19 x21 x22}, byrefRegs=0000 {}, byref, isz + ldr w3, [x2, #0x08] + cmp w1, w3 + bhs G_M15237_IG22 + add x2, x2, #16 + ; gcrRegs -[x2] + ; byrRegs +[x2] + ldr x1, [x2, w1, UXTW #3] + ; gcrRegs +[x1] + mov x0, x1 + ; gcrRegs +[x0] + mov x1, x22
movz x2, #0xD1FFAB1E // code for <unknown method>
+ ; byrRegs -[x2]
movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] @@ -169,38 +170,127 @@ G_M15237_IG09: ; bbWeight=7.70, gcrefRegs=3080002 {x1 x19 x24 x25}, byref blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- ;; size=48 bbWeight=7.70 PerfScore 130.91 -G_M15237_IG10: ; bbWeight=7.83, gcrefRegs=3080000 {x19 x24 x25}, byrefRegs=100000 {x20}, byref, isz - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - ldr x28, [x0] - ; gcrRegs +[x28] - ldrb w0, [x28, #0x9D] - cbnz w0, G_M15237_IG25
+ ;; size=52 bbWeight=7.70 PerfScore 134.76 +G_M15237_IG10: ; bbWeight=7.83, gcrefRegs=680000 {x19 x21 x22}, byrefRegs=0000 {}, byref, isz + movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x25, [x1]
...

coreclr_tests.run.linux.arm64.checked.mch

+0 (0.00%) : 29461.dasm - Simple2ArrayTest:Main():int (Tier1-OSR)

@@ -52,7 +52,7 @@ G_M25584_IG05: ; bbWeight=9.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldr w20, [fp, #0x90] // [V05 loc5] ldr w21, [fp, #0xAC] // [V00 loc0] cmp w20, w21
- bge G_M25584_IG12
+ bge G_M25584_IG11
;; size=16 bbWeight=9.10 PerfScore 50.04 G_M25584_IG06: ; bbWeight=8.27, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldp w23, w22, [fp, #0x98] // [V03 loc3], [V02 loc2] @@ -85,27 +85,29 @@ G_M25584_IG09: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, cmp w23, w21 blt G_M25584_IG03 ;; size=12 bbWeight=1.00 PerfScore 2.00
-G_M25584_IG10: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - add w22, w22, #1 - cmp w22, w21 - bge G_M25584_IG13 - mov w23, wzr - cmp w21, #0 - bgt G_M25584_IG03 - ;; size=24 bbWeight=0.10 PerfScore 0.40 -G_M25584_IG11: ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - b G_M25584_IG10 - ;; size=4 bbWeight=0.04 PerfScore 0.04 -G_M25584_IG12: ; bbWeight=4.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M25584_IG10: ; bbWeight=0.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + b G_M25584_IG13 + ;; size=4 bbWeight=0.09 PerfScore 0.09 +G_M25584_IG11: ; bbWeight=4.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldp w23, w22, [fp, #0x98] // [V03 loc3], [V02 loc2] ldr w24, [fp, #0x94] // [V04 loc4] b G_M25584_IG08 ;; size=12 bbWeight=4.55 PerfScore 22.75
-G_M25584_IG13: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M25584_IG12: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + mov w23, wzr + cmp w21, #0 + bgt G_M25584_IG03 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25584_IG13: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + add w22, w22, #1 + cmp w22, w21 + blt G_M25584_IG12 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25584_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w22, wzr
- b G_M25584_IG25
+ b G_M25584_IG26
;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25584_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -118,7 +120,7 @@ G_M25584_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov w0, #1 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M25584_IG15: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG16: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -127,24 +129,24 @@ G_M25584_IG15: ; bbWeight=0, epilog, nogc, extend add sp, sp, #96 ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-G_M25584_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M25584_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov w23, wzr
- b G_M25584_IG24 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M25584_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - mov w24, wzr - b G_M25584_IG23
+ b G_M25584_IG25
;; size=8 bbWeight=0 PerfScore 0.00 G_M25584_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w20, wzr - b G_M25584_IG22
+ mov w24, wzr + b G_M25584_IG24
;; size=8 bbWeight=0 PerfScore 0.00 G_M25584_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w25, wzr - b G_M25584_IG21
+ mov w20, wzr + b G_M25584_IG23
;; size=8 bbWeight=0 PerfScore 0.00 G_M25584_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ mov w25, wzr + b G_M25584_IG22 + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M25584_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19 ; gcrRegs +[x0] mov w1, w22 @@ -159,29 +161,29 @@ G_M25584_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add w25, w25, #1 str x26, [fp, #0x80] // [V07 loc7] ;; size=40 bbWeight=0 PerfScore 0.00
-G_M25584_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w25, w20
- blt G_M25584_IG20
+ blt G_M25584_IG21
add w20, w20, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w20, w24
- blt G_M25584_IG19
+ blt G_M25584_IG20
add w24, w24, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w24, w23
- blt G_M25584_IG18
+ blt G_M25584_IG19
add w23, w23, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w23, w22
- blt G_M25584_IG17
+ blt G_M25584_IG18
add w22, w22, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w22, w21
- blt G_M25584_IG16
+ blt G_M25584_IG17
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Simple2_Array_Test:test(int[,,,]):int @@ -192,12 +194,12 @@ G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0 x19] ; gcr arg pop 0 cmp w0, #4
- bne G_M25584_IG14
+ bne G_M25584_IG15
movz x0, #0xD1FFAB1E movk x0, #3 LSL #16 ldr x26, [fp, #0x80] // [V07 loc7] cmp x26, x0
- bne G_M25584_IG14
+ bne G_M25584_IG15
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -209,7 +211,7 @@ G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov w0, #100 ;; size=96 bbWeight=0 PerfScore 0.00
-G_M25584_IG26: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG27: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -219,7 +221,7 @@ G_M25584_IG26: ; bbWeight=0, epilog, nogc, extend ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-Total bytes of code 512, prolog size 28, PerfScore 883.53, instruction count 128, allocated bytes for code 512 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
+Total bytes of code 512, prolog size 28, PerfScore 883.57, instruction count 128, allocated bytes for code 512 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
; ============================================================ Unwind Info:

+0 (0.00%) : 294057.dasm - JitTestlcsmixedlcs_cs.LCS:TestEntryPoint():int (Tier1-OSR)

@@ -101,7 +101,7 @@ ; ; Lcl frame size = 48
-G_M23463_IG01: ; bbWeight=1, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M23463_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x90]! stp x19, x20, [sp, #0x40] stp x21, x22, [sp, #0x50] @@ -152,11 +152,11 @@ G_M23463_IG05: ; bbWeight=2.38, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b ldp w2, w6, [x21, #0x10] sxtw w27, w2 cmp w5, w27
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w2, [x21, #0x1C] sub w7, w4, w2 cmp w7, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w2, w5, w6, w7 ubfiz x2, x2, #3, #32 add x2, x2, #32 @@ -168,11 +168,11 @@ G_M23463_IG05: ; bbWeight=2.38, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b sub w8, w0, w5 ldp w0, w5, [x2, #0x10] cmp w8, w0
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w0, [x2, #0x1C] sub w9, w1, w0 cmp w9, w5
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w0, w8, w5, w9 ubfiz x0, x0, #3, #32 add x0, x0, #32 @@ -203,10 +203,10 @@ G_M23463_IG05: ; bbWeight=2.38, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b stp w5, w4, [fp, #0x24] // [V31 tmp23], [V30 tmp22] ldp w2, w0, [x20, #0x20] cmp w25, #6
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w1, [x20, #0x28] cmp w25, #7
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w6, [x20, #0x2C] stp w2, w0, [fp, #0x30] // [V12 tmp4], [V12 tmp4+0x04] stp w1, w6, [fp, #0x38] // [V12 tmp4+0x08], [V12 tmp4+0x0c] @@ -239,10 +239,10 @@ G_M23463_IG06: ; bbWeight=14.29, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, ;; size=4 bbWeight=14.29 PerfScore 14.29 G_M23463_IG07: ; bbWeight=14.29, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz cmp w24, #5
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w2, [x19, #0x24] cmp w25, #5
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w0, [x20, #0x24] cmp w2, w0 bge G_M23463_IG10 @@ -255,12 +255,12 @@ G_M23463_IG09: ; bbWeight=85.71, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, ldp w3, w4, [x19, #0x10] sub w5, w3, w27 cmp w5, w28
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w6, [x21, #0x14] ldr w2, [x21, #0x1C] sub w7, w4, w2 cmp w7, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w2, w5, w6, w7 ubfiz x2, x2, #3, #32 add x2, x2, #32 @@ -271,31 +271,31 @@ G_M23463_IG09: ; bbWeight=85.71, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, sub w0, w8, w0 ldp w1, w3, [x2, #0x10] cmp w0, w1
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w1, [x2, #0x1C] sub w1, w9, w1 cmp w1, w3
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w0, w0, w3, w1 ubfiz x0, x0, #3, #32 add x0, x0, #32 ldr x2, [x2, x0] ldp w0, w1, [x19, #0x20] cmp w25, #6
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w3, [x20, #0x28] cmp w25, #7
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w4, [x20, #0x2C] ldr w5, [x2, #0x18] sub w0, w0, w5 ldp w5, w6, [x2, #0x10] cmp w0, w5
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w5, [x2, #0x1C] sub w1, w1, w5 cmp w1, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w0, w0, w6, w1 ubfiz x0, x0, #3, #32 add x0, x0, #32 @@ -361,9 +361,9 @@ G_M23463_IG13: ; bbWeight=0.56, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b cmp w0, w2 blt G_M23463_IG12 ;; size=28 bbWeight=0.56 PerfScore 5.30
-G_M23463_IG14: ; bbWeight=0.05, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=18000000 {x27 x28}, byref
+G_M23463_IG14: ; bbWeight=0.08, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=18000000 {x27 x28}, byref
b G_M23463_IG17
- ;; size=4 bbWeight=0.05 PerfScore 0.05
+ ;; size=4 bbWeight=0.08 PerfScore 0.08
G_M23463_IG15: ; bbWeight=0.39, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=10000000 {x28}, byref ; byrRegs -[x27] add x27, x19, #24 @@ -377,11 +377,11 @@ G_M23463_IG16: ; bbWeight=0.09, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b sub w2, w2, w4 ldp w4, w6, [x21, #0x10] cmp w2, w4
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w4, [x21, #0x1C] sub w4, w0, w4 cmp w4, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w2, w2, w6, w4 ubfiz x2, x2, #3, #32 add x2, x2, #32 @@ -443,38 +443,14 @@ G_M23463_IG20: ; bbWeight=0.02, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b ldr w0, [x20, #0x10] ; byrRegs -[x0] cmp w1, w0
- bge G_M23463_IG22
+ bge G_M23463_IG27
b G_M23463_IG19 ;; size=32 bbWeight=0.02 PerfScore 0.23
-G_M23463_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19-x23]
+G_M23463_IG21: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x19 x22]
; byrRegs -[x3 x27-x28]
- bl CORINFO_HELP_RNGCHKFAIL - ; gcr arg pop 0 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M23463_IG22: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefRegs=0000 {}, byref - ; gcrRegs +[x20-x23] - mov x0, x22 - ; gcrRegs +[x0] - mov x1, x21 - ; gcrRegs +[x1] - mov x2, x23 - ; gcrRegs +[x2] - mov x3, x20 - ; gcrRegs +[x3] - movz x4, #0xD1FFAB1E // code for JitTest_lcsmixed_lcs_cs.LCS:findLCS(int[,,,][,,,],int[,][,][,][,],ushort[][],int[]) - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x3 x22] - ; gcr arg pop 0 - mov w1, wzr - b G_M23463_IG24 - ;; size=44 bbWeight=0 PerfScore 0.00 -G_M23463_IG23: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
cmp w1, w25
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
add x0, x20, #16 ; byrRegs +[x0] ubfiz x2, x1, #2, #32 @@ -484,13 +460,13 @@ G_M23463_IG23: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 str w2, [x0] add w1, w1, #1 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M23463_IG24: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M23463_IG22: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0] cmp w1, #8
- blt G_M23463_IG23
+ blt G_M23463_IG21
ldr w1, [x23, #0x08] cmp w1, #0
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr x1, [x23, #0x10] ; gcrRegs +[x1] mov x0, x21 @@ -517,7 +493,7 @@ G_M23463_IG24: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 blr x2 ; gcrRegs -[x1] ; gcr arg pop 0
- cbz w0, G_M23463_IG26
+ cbz w0, G_M23463_IG24
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -529,7 +505,7 @@ G_M23463_IG24: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 ; gcr arg pop 0 mov w0, #100 ;; size=128 bbWeight=0 PerfScore 0.00
-G_M23463_IG25: ; bbWeight=0, epilog, nogc, extend
+G_M23463_IG23: ; bbWeight=0, epilog, nogc, extend
ldp x27, x28, [sp, #0x80] ldp x25, x26, [sp, #0x70] ldp x23, x24, [sp, #0x60] @@ -539,7 +515,7 @@ G_M23463_IG25: ; bbWeight=0, epilog, nogc, extend add sp, sp, #0xD1FFAB1E ret lr ;; size=32 bbWeight=0 PerfScore 0.00
-G_M23463_IG26: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23463_IG24: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -551,7 +527,7 @@ G_M23463_IG26: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, ; gcr arg pop 0 mov w0, wzr ;; size=36 bbWeight=0 PerfScore 0.00
-G_M23463_IG27: ; bbWeight=0, epilog, nogc, extend
+G_M23463_IG25: ; bbWeight=0, epilog, nogc, extend
ldp x27, x28, [sp, #0x80] ldp x25, x26, [sp, #0x70] ldp x23, x24, [sp, #0x60] @@ -561,8 +537,32 @@ G_M23463_IG27: ; bbWeight=0, epilog, nogc, extend add sp, sp, #0xD1FFAB1E ret lr ;; size=32 bbWeight=0 PerfScore 0.00
+G_M23463_IG26: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + bl CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M23463_IG27: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x20-x23] + mov x0, x22 + ; gcrRegs +[x0]
...

+0 (0.00%) : 25540.dasm - Simple2ArrayTest:TestEntryPoint():int (Tier1-OSR)

@@ -82,22 +82,24 @@ G_M25589_IG09: ; bbWeight=1.00, gcrefRegs=1000000 {x24}, byrefRegs=0000 { cmp w22, w21 blt G_M25589_IG03 ;; size=12 bbWeight=1.00 PerfScore 2.00
-G_M25589_IG10: ; bbWeight=0.10, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz - add w23, w23, #1 - cmp w23, w21 - bge G_M25589_IG12
+G_M25589_IG10: ; bbWeight=0.09, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref + b G_M25589_IG12 + ;; size=4 bbWeight=0.09 PerfScore 0.09 +G_M25589_IG11: ; bbWeight=0.10, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
mov w22, wzr cmp w21, #0 bgt G_M25589_IG03
- ;; size=24 bbWeight=0.10 PerfScore 0.40 -G_M25589_IG11: ; bbWeight=0.04, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref - b G_M25589_IG10 - ;; size=4 bbWeight=0.04 PerfScore 0.04 -G_M25589_IG12: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
+ ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25589_IG12: ; bbWeight=0.10, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz + add w23, w23, #1 + cmp w23, w21 + blt G_M25589_IG11 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25589_IG13: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
mov w23, wzr
- b G_M25589_IG24
+ b G_M25589_IG25
;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25589_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x24] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -110,7 +112,7 @@ G_M25589_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov w0, #1 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M25589_IG14: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG15: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -119,24 +121,24 @@ G_M25589_IG14: ; bbWeight=0, epilog, nogc, extend add sp, sp, #96 ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-G_M25589_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
+G_M25589_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x24] mov w22, wzr
- b G_M25589_IG23 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M25589_IG16: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref - mov w20, wzr - b G_M25589_IG22
+ b G_M25589_IG24
;; size=8 bbWeight=0 PerfScore 0.00 G_M25589_IG17: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
- mov w19, wzr - b G_M25589_IG21
+ mov w20, wzr + b G_M25589_IG23
;; size=8 bbWeight=0 PerfScore 0.00 G_M25589_IG18: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
- mov w26, wzr - b G_M25589_IG20
+ mov w19, wzr + b G_M25589_IG22
;; size=8 bbWeight=0 PerfScore 0.00 G_M25589_IG19: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
+ mov w26, wzr + b G_M25589_IG21 + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M25589_IG20: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
mov x0, x24 ; gcrRegs +[x0] mov w1, w23 @@ -149,33 +151,33 @@ G_M25589_IG19: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, add x25, x25, w0, SXTW add w26, w26, #1 ;; size=32 bbWeight=0 PerfScore 0.00
-G_M25589_IG20: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG21: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w26, w19
- blt G_M25589_IG19
+ blt G_M25589_IG20
add w19, w19, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG21: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG22: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w19, w20
- blt G_M25589_IG18
+ blt G_M25589_IG19
add w20, w20, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG22: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG23: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w20, w22
- blt G_M25589_IG17
+ blt G_M25589_IG18
add w22, w22, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG23: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG24: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w22, w23
- blt G_M25589_IG16
+ blt G_M25589_IG17
add w23, w23, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG24: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG25: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w23, w21
- blt G_M25589_IG15
+ blt G_M25589_IG16
movz x0, #0xD1FFAB1E movk x0, #3 LSL #16 cmp x25, x0
- bne G_M25589_IG13
+ bne G_M25589_IG14
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -188,7 +190,7 @@ G_M25589_IG24: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, ; gcr arg pop 0 mov w0, #100 ;; size=60 bbWeight=0 PerfScore 0.00
-G_M25589_IG25: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG26: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -198,7 +200,7 @@ G_M25589_IG25: ; bbWeight=0, epilog, nogc, extend ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-Total bytes of code 444, prolog size 44, PerfScore 772.00, instruction count 111, allocated bytes for code 444 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
+Total bytes of code 444, prolog size 44, PerfScore 772.05, instruction count 111, allocated bytes for code 444 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
; ============================================================ Unwind Info:

libraries_tests.run.linux.arm64.Release.mch

-8 (-1.18%) : 250299.dasm - System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (Tier1)

@@ -55,7 +55,7 @@ G_M63357_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ;; size=12 bbWeight=1 PerfScore 6.50 G_M63357_IG04: ; bbWeight=2, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz cmp w21, w24
- bhs G_M63357_IG25
+ bhs G_M63357_IG20
ldrh w2, [x25, w21, UXTW #2] sub w1, w2, #9 cmp w1, #4 @@ -69,28 +69,9 @@ G_M63357_IG04: ; bbWeight=2, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=20 ;; size=48 bbWeight=2 PerfScore 25.00 G_M63357_IG05: ; bbWeight=1.92, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz cmp w2, #32
- beq G_M63357_IG12
+ beq G_M63357_IG10
;; size=8 bbWeight=1.92 PerfScore 2.89
-G_M63357_IG06: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs -[x23] - ; byrRegs -[x25] - b G_M63357_IG08 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M63357_IG07: ; bbWeight=0.08, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref - ; gcrRegs +[x23] - ; byrRegs +[x25] - add w21, w21, #1 - add x2, x19, #0xD1FFAB1E - ; byrRegs +[x2] - ldr w1, [x2] - add w1, w1, #1 - str w1, [x2] - sub w2, w21, #1 - ; byrRegs -[x2] - str w2, [x19, #0xD1FFAB1E] - b G_M63357_IG04 - ;; size=32 bbWeight=0.08 PerfScore 0.61 -G_M63357_IG08: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M63357_IG06: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x23] ; byrRegs -[x25] ldr w2, [x19, #0xD1FFAB1E] @@ -99,19 +80,19 @@ G_M63357_IG08: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldr w2, [x19, #0xD1FFAB1E] sub w24, w21, w2 cmp w24, #0
- ble G_M63357_IG10 - cbnz x20, G_M63357_IG13
+ ble G_M63357_IG08 + cbnz x20, G_M63357_IG11
;; size=32 bbWeight=1 PerfScore 10.50
-G_M63357_IG09: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M63357_IG07: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] str w21, [x19, #0xD1FFAB1E] add w22, w22, w24 ;; size=8 bbWeight=1 PerfScore 1.50
-G_M63357_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M63357_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov w0, w22 ;; size=4 bbWeight=1 PerfScore 0.50
-G_M63357_IG11: ; bbWeight=1, epilog, nogc, extend
+G_M63357_IG09: ; bbWeight=1, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -119,13 +100,13 @@ G_M63357_IG11: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x50 ret lr ;; size=24 bbWeight=1 PerfScore 6.00
-G_M63357_IG12: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, gcvars, byref
+G_M63357_IG10: ; bbWeight=0.92, gcVars=0000000000000000 {}, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, gcvars, byref
; gcrRegs +[x19-x20 x23] ; byrRegs +[x25] add w21, w21, #1 b G_M63357_IG04 ;; size=8 bbWeight=0.92 PerfScore 1.39
-G_M63357_IG13: ; bbWeight=0.16, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M63357_IG11: ; bbWeight=0.16, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] ; byrRegs -[x25] ldr w2, [x19, #0xD1FFAB1E] @@ -141,25 +122,37 @@ G_M63357_IG13: ; bbWeight=0.16, gcrefRegs=180000 {x19 x20}, byrefRegs=000 blr x4 ; gcrRegs -[x1 x20] ; gcr arg pop 0
- b G_M63357_IG09
+ b G_M63357_IG07
;; size=40 bbWeight=0.16 PerfScore 2.10
-G_M63357_IG14: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz
+G_M63357_IG12: ; bbWeight=0.08, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
; gcrRegs -[x0] +[x20 x23] ; byrRegs +[x25]
+ add w21, w21, #1 + add x2, x19, #0xD1FFAB1E + ; byrRegs +[x2] + ldr w1, [x2] + add w1, w1, #1 + str w1, [x2] + sub w2, w21, #1 + ; byrRegs -[x2] + str w2, [x19, #0xD1FFAB1E] + b G_M63357_IG04 + ;; size=32 bbWeight=0.08 PerfScore 0.61 +G_M63357_IG13: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz
add w2, w21, #1 cmp w2, w24
- bhs G_M63357_IG25
+ bhs G_M63357_IG20
add w2, w21, #1 ldrh w2, [x25, w2, UXTW #2] cmp w2, #10
- bne G_M63357_IG17
+ bne G_M63357_IG16
ldr w2, [x19, #0xD1FFAB1E] sub w26, w21, w2
- cbz x20, G_M63357_IG16
+ cbz x20, G_M63357_IG15
ldrb w2, [x19, #0xD1FFAB1E]
- cbnz w2, G_M63357_IG16
+ cbnz w2, G_M63357_IG15
cmp w26, #0
- ble G_M63357_IG15
+ ble G_M63357_IG14
ldr w2, [x19, #0xD1FFAB1E] mov x0, x20 ; gcrRegs +[x0] @@ -175,33 +168,33 @@ G_M63357_IG14: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=20 ; gcr arg pop 0 add w22, w22, w26 ;; size=96 bbWeight=0 PerfScore 0.00
-G_M63357_IG15: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
+G_M63357_IG14: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
; gcrRegs -[x0] add w0, w21, #1 str w0, [x19, #0xD1FFAB1E] ;; size=8 bbWeight=0 PerfScore 0.00
-G_M63357_IG16: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
+G_M63357_IG15: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
add w21, w21, #2
- b G_M63357_IG20
+ b G_M63357_IG19
;; size=8 bbWeight=0 PerfScore 0.00
-G_M63357_IG17: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz
+G_M63357_IG16: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz
add w0, w21, #1 ldr w1, [x19, #0xD1FFAB1E] cmp w0, w1
- blt G_M63357_IG18
+ blt G_M63357_IG17
ldrb w0, [x19, #0xD1FFAB1E] cbz w0, G_M63357_IG21 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M63357_IG18: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz
+G_M63357_IG17: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref, isz
ldrb w0, [x19, #0xD1FFAB1E]
- cbnz w0, G_M63357_IG19
+ cbnz w0, G_M63357_IG18
mov w0, #10 strh w0, [x25, w21, UXTW #2] ;; size=16 bbWeight=0 PerfScore 0.00
-G_M63357_IG19: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
+G_M63357_IG18: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
add w21, w21, #1 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M63357_IG20: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
+G_M63357_IG19: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=2000000 {x25}, byref
mov x0, x19 ; gcrRegs +[x0] mov w1, w21 @@ -214,9 +207,14 @@ G_M63357_IG20: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=20 ; gcr arg pop 0 b G_M63357_IG04 ;; size=32 bbWeight=0 PerfScore 0.00
-G_M63357_IG21: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x23]
+G_M63357_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19-x20 x23]
; byrRegs -[x25]
+ bl CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M63357_IG21: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x19-x20]
ldr w2, [x19, #0xD1FFAB1E] sub w23, w21, w2 cmp w23, #0 @@ -255,13 +253,13 @@ G_M63357_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldr w0, [x19, #0xD1FFAB1E] ldr w1, [x19, #0xD1FFAB1E] sub w0, w0, w1
- cbz w0, G_M63357_IG10
+ cbz w0, G_M63357_IG08
ldr x0, [x19, #0xD1FFAB1E] ; gcrRegs +[x0] ldr w1, [x19, #0xD1FFAB1E] ldr w2, [x0, #0x08] cmp w1, w2
- bhs G_M63357_IG25
+ bhs G_M63357_IG20
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -297,20 +295,14 @@ G_M63357_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldr w21, [x19, #0xD1FFAB1E] b G_M63357_IG03 ;; size=8 bbWeight=0 PerfScore 0.00
-G_M63357_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19-x20] - bl CORINFO_HELP_RNGCHKFAIL - ; gcr arg pop 0 - brk_unix #0 - ;; size=8 bbWeight=0 PerfScore 0.00 -RWD00 dd G_M63357_IG12 - G_M63357_IG02 - dd G_M63357_IG07 - G_M63357_IG02 - dd G_M63357_IG08 - G_M63357_IG02 - dd G_M63357_IG08 - G_M63357_IG02 - dd G_M63357_IG14 - G_M63357_IG02
+RWD00 dd G_M63357_IG10 - G_M63357_IG02 + dd G_M63357_IG12 - G_M63357_IG02 + dd G_M63357_IG06 - G_M63357_IG02 + dd G_M63357_IG06 - G_M63357_IG02 + dd G_M63357_IG13 - G_M63357_IG02
-Total bytes of code 680, prolog size 32, PerfScore 67.48, instruction count 170, allocated bytes for code 680 (MethodHash=d8500882) for method System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (Tier1)
+Total bytes of code 672, prolog size 32, PerfScore 66.98, instruction count 168, allocated bytes for code 672 (MethodHash=d8500882) for method System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (Tier1)
; ============================================================ Unwind Info: @@ -321,7 +313,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 170 (0x000aa) Actual length = 680 (0x0002a8)
+ Function Length : 168 (0x000a8) Actual length = 672 (0x0002a0)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-1.16%) : 465.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -43,9 +43,9 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs +[x21] ldr x0, [x21] cmp x0, x20
- bne G_M8081_IG16
+ bne G_M8081_IG15
ldrb w0, [x21, #0x4C]
- cbnz w0, G_M8081_IG17
+ cbnz w0, G_M8081_IG16
ldr x0, [x21, #0x30] ; gcrRegs +[x0] add x0, x0, #52 @@ -55,10 +55,10 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; byrRegs -[x0] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M8081_IG18
+ beq G_M8081_IG17
ldp w0, w1, [x21, #0x38] cmp w0, w1
- beq G_M8081_IG09
+ beq G_M8081_IG10
;; size=60 bbWeight=1.04 PerfScore 25.52 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ldr x0, [x21, #0x28] @@ -67,7 +67,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 sxtw w2, w1 ldr w3, [x0, #0x08] cmp w2, w3
- bhs G_M8081_IG15
+ bhs G_M8081_IG14
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -82,22 +82,33 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, add w1, w1, #1 str w1, [x19, #0x24] cmn w0, #1
- beq G_M8081_IG13
+ beq G_M8081_IG12
;; size=20 bbWeight=1.04 PerfScore 6.25 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.04 PerfScore 1.56 G_M8081_IG07: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #13 beq G_M8081_IG03 ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- b G_M8081_IG11 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x19 x21]
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 5.00 +G_M8081_IG09: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + str wzr, [x19, #0x24] + ldr w0, [x19, #0x20] + add w0, w0, #1 + str w0, [x19, #0x20] + b G_M8081_IG03 + ;; size=20 bbWeight=0.04 PerfScore 0.26 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x21]
mov x0, x21 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for System.IO.StreamReader:ReadBuffer():int:this @@ -109,41 +120,26 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 ; gcr arg pop 0 cbnz w0, G_M8081_IG04 ;; size=28 bbWeight=0.00 PerfScore 0.01
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] movn w0, #0 b G_M8081_IG05 ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=1.00 PerfScore 5.00 -G_M8081_IG12: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[x19] - str wzr, [x19, #0x24] - ldr w0, [x19, #0x20] - add w0, w0, #1 - str w0, [x19, #0x20] - b G_M8081_IG03 - ;; size=20 bbWeight=0.04 PerfScore 0.26 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movn w0, #0 ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] mov x0, x21 ; gcrRegs +[x0] @@ -155,7 +151,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {} ; gcr arg pop 0 b G_M8081_IG05 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -168,7 +164,7 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by ; gcr arg pop 0 brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.IO.StreamReader:ThrowAsyncIOInProgress() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -178,7 +174,7 @@ G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-Total bytes of code 344, prolog size 20, PerfScore 63.01, instruction count 86, allocated bytes for code 344 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 340, prolog size 20, PerfScore 62.51, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info: @@ -189,7 +185,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 86 (0x00056) Actual length = 344 (0x000158)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-1.16%) : 68725.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -43,9 +43,9 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs +[x21] ldr x0, [x21] cmp x0, x20
- bne G_M8081_IG16
+ bne G_M8081_IG15
ldrb w0, [x21, #0x4C]
- cbnz w0, G_M8081_IG17
+ cbnz w0, G_M8081_IG16
ldr x0, [x21, #0x30] ; gcrRegs +[x0] add x0, x0, #52 @@ -55,10 +55,10 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; byrRegs -[x0] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M8081_IG18
+ beq G_M8081_IG17
ldp w0, w1, [x21, #0x38] cmp w0, w1
- beq G_M8081_IG09
+ beq G_M8081_IG10
;; size=60 bbWeight=1.04 PerfScore 25.42 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ldr x0, [x21, #0x28] @@ -67,7 +67,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 sxtw w2, w1 ldr w3, [x0, #0x08] cmp w2, w3
- bhs G_M8081_IG15
+ bhs G_M8081_IG14
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -82,22 +82,33 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, add w1, w1, #1 str w1, [x19, #0x24] cmn w0, #1
- beq G_M8081_IG13
+ beq G_M8081_IG12
;; size=20 bbWeight=1.04 PerfScore 6.22 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.04 PerfScore 1.56 G_M8081_IG07: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #13 beq G_M8081_IG03 ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- b G_M8081_IG11 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x19 x21]
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 5.00 +G_M8081_IG09: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + str wzr, [x19, #0x24] + ldr w0, [x19, #0x20] + add w0, w0, #1 + str w0, [x19, #0x20] + b G_M8081_IG03 + ;; size=20 bbWeight=0.04 PerfScore 0.24 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x21]
mov x0, x21 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for System.IO.StreamReader:ReadBuffer():int:this @@ -109,41 +120,26 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 ; gcr arg pop 0 cbnz w0, G_M8081_IG04 ;; size=28 bbWeight=0.00 PerfScore 0.01
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] movn w0, #0 b G_M8081_IG05 ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=1.00 PerfScore 5.00 -G_M8081_IG12: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[x19] - str wzr, [x19, #0x24] - ldr w0, [x19, #0x20] - add w0, w0, #1 - str w0, [x19, #0x20] - b G_M8081_IG03 - ;; size=20 bbWeight=0.04 PerfScore 0.24 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movn w0, #0 ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] mov x0, x21 ; gcrRegs +[x0] @@ -155,7 +151,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {} ; gcr arg pop 0 b G_M8081_IG05 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -168,7 +164,7 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by ; gcr arg pop 0 brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.IO.StreamReader:ThrowAsyncIOInProgress() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -178,7 +174,7 @@ G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-Total bytes of code 344, prolog size 20, PerfScore 62.75, instruction count 86, allocated bytes for code 344 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 340, prolog size 20, PerfScore 62.25, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info: @@ -189,7 +185,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 86 (0x00056) Actual length = 344 (0x000158)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+0 (0.00%) : 577516.dasm - System.Uri:CreateUriInfo(ulong):this (Tier1)

@@ -90,7 +90,7 @@ G_M10115_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b ldr w0, [x20, #0x28] tbnz w0, #24, G_M10115_IG13 mov w22, wzr
- tbnz w19, #29, G_M10115_IG27
+ tbnz w19, #29, G_M10115_IG26
ldr x0, [x20, #0x18] ; gcrRegs +[x0] ldr x0, [x0, #0x08] @@ -106,30 +106,30 @@ G_M10115_IG03: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 { ; gcrRegs +[x0] ldr w26, [x0, #0x08] cmp w23, w26
- bhs G_M10115_IG26
+ bhs G_M10115_IG25
add x27, x0, #12 ; byrRegs +[x27] ldrh w0, [x27, w23, UXTW #2] ; gcrRegs -[x0] cmp w0, #58
- bne G_M10115_IG32
+ bne G_M10115_IG31
tbz w19, #20, G_M10115_IG05 cmp w24, w26
- bhs G_M10115_IG26
+ bhs G_M10115_IG25
ldrh w0, [x27, w24, UXTW #2] cmp w0, #92
- beq G_M10115_IG33
+ beq G_M10115_IG32
add w0, w24, #1 cmp w0, w26
- bhs G_M10115_IG26
+ bhs G_M10115_IG25
ldrh w0, [x27, w0, UXTW #2] cmp w0, #92
- beq G_M10115_IG33
+ beq G_M10115_IG32
;; size=92 bbWeight=1 PerfScore 27.50 G_M10115_IG04: ; bbWeight=1, gcrefRegs=2300000 {x20 x21 x25}, byrefRegs=8000000 {x27}, byref, isz add w24, w24, #2 tst w19, #0xD1FFAB1E
- bne G_M10115_IG34
+ bne G_M10115_IG33
;; size=12 bbWeight=1 PerfScore 2.00 G_M10115_IG05: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x25] @@ -145,14 +145,14 @@ G_M10115_IG05: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 { G_M10115_IG06: ; bbWeight=1, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz and w0, w19, #0xD1FFAB1E cmp w0, #112, LSL #12
- beq G_M10115_IG37 - tbnz w19, #27, G_M10115_IG37
+ beq G_M10115_IG36 + tbnz w19, #27, G_M10115_IG36
strh w24, [x21, #0x3A] ldr w0, [x20, #0x28] and w0, w0, #0xD1FFAB1E cmp w0, #80, LSL #12
- beq G_M10115_IG38 - tbnz w19, #21, G_M10115_IG40
+ beq G_M10115_IG37 + tbnz w19, #21, G_M10115_IG39
;; size=40 bbWeight=1 PerfScore 10.00 G_M10115_IG07: ; bbWeight=1, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz strh w24, [x21, #0x3C] @@ -163,7 +163,7 @@ G_M10115_IG07: ; bbWeight=1, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 csel x19, x19, x0, eq strh w24, [x21, #0x40] mov w3, wzr
- tbnz x19, #33, G_M10115_IG23
+ tbnz x19, #33, G_M10115_IG22
;; size=36 bbWeight=1 PerfScore 6.00 G_M10115_IG08: ; bbWeight=1, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz ldrh w28, [x21, #0x46] @@ -179,7 +179,7 @@ G_M10115_IG09: ; bbWeight=0.60, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs ; gcrRegs +[x0] ;; size=4 bbWeight=0.60 PerfScore 1.80 G_M10115_IG10: ; bbWeight=1, gcrefRegs=B00001 {x0 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
- cbz x0, G_M10115_IG41
+ cbz x0, G_M10115_IG40
add x0, x0, #12 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -190,7 +190,7 @@ G_M10115_IG11: ; bbWeight=1, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 ; byrRegs -[x0] ldrh w1, [x0, w24, SXTW #2] cmp w1, #58
- beq G_M10115_IG18
+ beq G_M10115_IG17
;; size=12 bbWeight=1 PerfScore 4.50 G_M10115_IG12: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs -[x23] @@ -200,7 +200,7 @@ G_M10115_IG13: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 { orr x19, x19, #0xD1FFAB1E add x0, x20, #32 ; byrRegs +[x0]
- cbz x0, G_M10115_IG25
+ cbz x0, G_M10115_IG24
mov x1, x21 ; gcrRegs +[x1] mov x2, xzr @@ -236,22 +236,20 @@ G_M10115_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M10115_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, gcvars, byref, isz ; byrRegs +[x1] mov x0, x3
- tbz w0, #30, G_M10115_IG14 - ;; size=8 bbWeight=1 PerfScore 1.50 -G_M10115_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[x1] - b G_M10115_IG15 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M10115_IG18: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+ tbnz w0, #30, G_M10115_IG15 + b G_M10115_IG14 + ;; size=12 bbWeight=1 PerfScore 2.50 +G_M10115_IG17: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x20-x21 x23]
+ ; byrRegs -[x1]
mov w4, wzr add w24, w24, #1 cmp w24, w28
- bge G_M10115_IG20
+ bge G_M10115_IG19
ldrh w4, [x0, w24, SXTW #2] sub w4, w4, #48 cmp w4, #9
- bhi G_M10115_IG20
+ bhi G_M10115_IG19
mov w3, #1 mov x1, #0xD1FFAB1E orr x1, x19, x1 @@ -259,35 +257,35 @@ G_M10115_IG18: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs csel x19, x19, x1, ne add w24, w24, #1 cmp w24, w28
- bge G_M10115_IG20
+ bge G_M10115_IG19
;; size=64 bbWeight=0.17 PerfScore 2.00
-G_M10115_IG19: ; bbWeight=0.33, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG18: ; bbWeight=0.33, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
ldrh w1, [x0, w24, SXTW #2] sub w1, w1, #48 cmp w1, #9
- bhi G_M10115_IG20
+ bhi G_M10115_IG19
mov w2, #10 madd w4, w4, w2, w1 add w24, w24, #1 cmp w24, w28
- blt G_M10115_IG19
+ blt G_M10115_IG18
;; size=36 bbWeight=0.33 PerfScore 3.17
-G_M10115_IG20: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz - cbz w3, G_M10115_IG21
+G_M10115_IG19: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz + cbz w3, G_M10115_IG20
ldr w0, [x23, #0x14] cmp w0, w4
- bne G_M10115_IG24
+ bne G_M10115_IG23
;; size=16 bbWeight=0.17 PerfScore 0.92
-G_M10115_IG21: ; bbWeight=0.17, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG20: ; bbWeight=0.17, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] mov x0, #0xD1FFAB1E orr x19, x19, x0 ;; size=8 bbWeight=0.17 PerfScore 0.17
-G_M10115_IG22: ; bbWeight=0.17, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG21: ; bbWeight=0.17, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
strh w24, [x21, #0x40] b G_M10115_IG12 ;; size=8 bbWeight=0.17 PerfScore 0.33
-G_M10115_IG23: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref
+G_M10115_IG22: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs +[x23] ldr x0, [x20, #0x10] ; gcrRegs +[x0] @@ -296,13 +294,13 @@ G_M10115_IG23: ; bbWeight=0.17, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs strh w0, [x21, #0x46] b G_M10115_IG08 ;; size=16 bbWeight=0.17 PerfScore 1.33
-G_M10115_IG24: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG23: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] strh w4, [x21, #0x3E] orr x19, x19, #0xD1FFAB1E
- b G_M10115_IG22
+ b G_M10115_IG21
;; size=12 bbWeight=0 PerfScore 0.00
-G_M10115_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10115_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20-x21] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowNullReferenceException() movk x0, #0xD1FFAB1E LSL #16 @@ -312,16 +310,16 @@ G_M10115_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M10115_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M10115_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M10115_IG27: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG26: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x20-x21] mov w24, wzr
- b G_M10115_IG29
+ b G_M10115_IG28
;; size=8 bbWeight=0 PerfScore 0.00
-G_M10115_IG28: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG27: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
add w24, w24, #1 add x0, x21, #56 ; byrRegs +[x0] @@ -329,13 +327,13 @@ G_M10115_IG28: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 { add w1, w1, #1 strh w1, [x0] ;; size=20 bbWeight=0 PerfScore 0.00
-G_M10115_IG29: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG28: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0] ldr x0, [x20, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w24, w1
- bhs G_M10115_IG26
+ bhs G_M10115_IG25
add x0, x0, #12 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -347,45 +345,45 @@ G_M10115_IG29: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 { ldr x1, [x1] blr x1 ; gcr arg pop 0
- cbnz w0, G_M10115_IG28
+ cbnz w0, G_M10115_IG27
tbz w19, #28, G_M10115_IG05 add w24, w24, #2 uxth w0, w19
- b G_M10115_IG31
+ b G_M10115_IG30
;; size=64 bbWeight=0 PerfScore 0.00
-G_M10115_IG30: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG29: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
add w24, w24, #1 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M10115_IG31: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG30: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
...

+4 (+0.46%) : 651789.dasm - System.Buffers.Text.Base64:DecodeWithWhiteSpaceBlockwise(System.ReadOnlySpan1[ubyte],System.Span1[ubyte],byref,byref,ubyte):int (Tier1)

@@ -77,7 +77,7 @@ ; V65 tmp48 [V65,T33] ( 2, 0 ) byref -> x26 "field V44._reference (fldOffset=0x0)" P-INDEP ; V66 tmp49 [V66,T34] ( 2, 0 ) int -> x27 "field V44._length (fldOffset=0x8)" P-INDEP ; V67 tmp50 [V67,T07] ( 5, 6.25) byref -> x22 "V00.[000..008)"
-; V68 tmp51 [V68,T02] ( 10, 11.25) int -> x23 "V00.[008..012)"
+; V68 tmp51 [V68,T02] ( 11, 11.25) int -> x23 "V00.[008..012)"
; V69 GsCookie [V69 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[X] addr-exposed "GSSecurityCookie" ; V70 cse0 [V70,T04] ( 3, 9.75) int -> x0 "CSE - aggressive" ; V71 cse1 [V71,T19] ( 3, 3 ) int -> x25 "CSE - moderate" @@ -271,14 +271,12 @@ G_M35087_IG18: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=1580000 {x19 b G_M35087_IG10 ;; size=12 bbWeight=0.25 PerfScore 0.62 G_M35087_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1580000 {x19 x20 x22 x24}, byref, isz
- cbnz w23, G_M35087_IG03
+ cbz w23, G_M35087_IG13
;; size=4 bbWeight=1 PerfScore 1.00
-G_M35087_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[x19-x20 x22 x24] - b G_M35087_IG13
+G_M35087_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=1580000 {x19 x20 x22 x24}, byref + b G_M35087_IG03
;; size=4 bbWeight=0.50 PerfScore 0.50 G_M35087_IG21: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=1580000 {x19 x20 x22 x24}, byref
- ; byrRegs +[x19-x20 x22 x24]
cmp w26, #4 cset x0, eq b G_M35087_IG09 @@ -392,10 +390,11 @@ G_M35087_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=1580000 {x19 x2 ; gcr arg pop 0 str x26, [fp, #0x20] // [V01 arg1] str w27, [fp, #0x28] // [V01 arg1+0x08]
- b G_M35087_IG19 - ;; size=80 bbWeight=0 PerfScore 0.00
+ cbnz w23, G_M35087_IG03 + b G_M35087_IG13 + ;; size=84 bbWeight=0 PerfScore 0.00
-Total bytes of code 868, prolog size 68, PerfScore 146.38, instruction count 217, allocated bytes for code 868 (MethodHash=91d476f0) for method System.Buffers.Text.Base64:DecodeWithWhiteSpaceBlockwise(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (Tier1)
+Total bytes of code 872, prolog size 68, PerfScore 146.38, instruction count 218, allocated bytes for code 872 (MethodHash=91d476f0) for method System.Buffers.Text.Base64:DecodeWithWhiteSpaceBlockwise(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (Tier1)
; ============================================================ Unwind Info: @@ -406,7 +405,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 217 (0x000d9) Actual length = 868 (0x000364)
+ Function Length : 218 (0x000da) Actual length = 872 (0x000368)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+1.56%) : 553964.dasm - System.Uri:CreateUriInfo(ulong):this (Tier1)

@@ -16,10 +16,10 @@ ; V04 loc2 [V04,T14] ( 5, 2.05) ubyte -> x22 ; V05 loc3 [V05,T27] ( 3, 0.78) ubyte -> x3 ; V06 loc4 [V06,T04] ( 7, 7 ) long -> x0
-; V07 loc5 [V07,T38] ( 2, 0.15) int -> x0 -; V08 loc6 [V08,T30] ( 2, 0.58) int -> x2
+; V07 loc5 [V07,T38] ( 2, 0.15) int -> x24 +; V08 loc6 [V08,T30] ( 2, 0.58) int -> x23
; V09 loc7 [V09,T22] ( 4, 1.16) long -> x0
-; V10 loc8 [V10 ] ( 3, 1.51) byref -> [fp+0x18] must-init pinned
+; V10 loc8 [V10 ] ( 3, 1.51) byref -> [fp+0x10] must-init pinned
; V11 loc9 [V11,T31] ( 8, 0.54) int -> x1 ; V12 loc10 [V12,T35] ( 3, 0.31) int -> x2 ;* V13 loc11 [V13 ] ( 0, 0 ) long -> zero-ref @@ -27,11 +27,11 @@ ;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Uri+UriInfo> ; V17 tmp2 [V17,T05] ( 4, 6.86) int -> x23 "impSpillLclRefs"
-; V18 tmp3 [V18,T40] ( 3, 0.09) byref -> x1 "dup spill"
+; V18 tmp3 [V18,T40] ( 3, 0.09) byref -> x0 "dup spill"
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String> ;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref single-def ; V21 tmp6 [V21,T23] ( 3, 1.01) long -> x0
-; V22 tmp7 [V22,T37] ( 2, 0.21) int -> x24 "dup spill"
+; V22 tmp7 [V22,T37] ( 2, 0.21) int -> x26 "dup spill"
;* V23 tmp8 [V23 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ; V24 tmp9 [V24,T41] ( 3, 0 ) byref -> x0 "dup spill" ;* V25 tmp10 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.UriParser> @@ -47,35 +47,37 @@ ;* V35 tmp20 [V35,T32] ( 0, 0 ) ref -> zero-ref "arr expr" ;* V36 tmp21 [V36,T34] ( 0, 0 ) ref -> zero-ref "arr expr" ; V37 tmp22 [V37,T24] ( 3, 0.95) ref -> x0 "arr expr"
-; V38 tmp23 [V38,T33] ( 3, 0.50) ref -> x1 "arr expr"
+; V38 tmp23 [V38,T33] ( 3, 0.50) ref -> x0 "arr expr"
;* V39 tmp24 [V39,T39] ( 0, 0 ) ref -> zero-ref "arr expr" ; V40 tmp25 [V40,T18] ( 3, 0.46) ref -> x0 "arr expr" ; V41 tmp26 [V41,T16] ( 2, 2.02) long -> x0 "Cast away GC"
-; V42 cse0 [V42,T28] ( 3, 0.69) int -> x3 "CSE - conservative" -; V43 cse1 [V43,T36] ( 3, 0.24) int -> x1 "CSE - conservative" -; V44 cse2 [V44,T29] ( 3, 0.62) int -> x0 "CSE - conservative"
+; V42 cse0 [V42,T28] ( 3, 0.69) int -> x27 "CSE - conservative" +; V43 cse1 [V43,T36] ( 3, 0.24) int -> x25 "CSE - conservative" +; V44 cse2 [V44,T29] ( 3, 0.62) int -> x1 "CSE - conservative"
; V45 cse3 [V45,T08] ( 2, 1.71) ref -> x0 "CSE - aggressive" ; V46 cse4 [V46,T19] ( 4, 1.16) ref -> x0 multi-def "CSE - moderate"
-; V47 cse5 [V47,T10] ( 5, 3.57) int -> x1 "CSE - aggressive" -; V48 cse6 [V48,T09] ( 5, 3.57) byref -> x0 "CSE - aggressive"
+; V47 cse5 [V47,T10] ( 5, 3.57) int -> x25 "CSE - aggressive" +; V48 cse6 [V48,T09] ( 5, 3.57) byref -> x24 "CSE - aggressive"
; V49 cse7 [V49,T17] ( 2, 2 ) byref -> x1 hoist "CSE - moderate"
-; V50 cse8 [V50,T13] ( 3, 2.39) int -> x2 "CSE - moderate" -; V51 cse9 [V51,T26] ( 3, 0.86) int -> x1 "CSE - conservative" -; V52 cse10 [V52,T25] ( 3, 0.86) byref -> x0 "CSE - conservative"
+; V50 cse8 [V50,T13] ( 3, 2.39) int -> x0 "CSE - moderate" +; V51 cse9 [V51,T26] ( 3, 0.86) int -> x27 "CSE - conservative" +; V52 cse10 [V52,T25] ( 3, 0.86) byref -> x23 "CSE - conservative"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M10115_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x20] - stp x21, x22, [sp, #0x30] - stp x23, x24, [sp, #0x40]
+ stp fp, lr, [sp, #-0x60]! + stp x19, x20, [sp, #0x18] + stp x21, x22, [sp, #0x28] + stp x23, x24, [sp, #0x38] + stp x25, x26, [sp, #0x48] + str x27, [sp, #0x58]
mov fp, sp
- str xzr, [fp, #0x18] // [V10 loc8]
+ str xzr, [fp, #0x10] // [V10 loc8]
mov x20, x0 ; gcrRegs +[x20] mov x19, x1
- ;; size=32 bbWeight=1 PerfScore 6.50
+ ;; size=40 bbWeight=1 PerfScore 8.50
G_M10115_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -92,7 +94,7 @@ G_M10115_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b ldr w0, [x20, #0x28] tbnz w0, #24, G_M10115_IG22 mov w22, wzr
- tbnz w19, #29, G_M10115_IG43
+ tbnz w19, #29, G_M10115_IG36
;; size=48 bbWeight=1 PerfScore 15.50 G_M10115_IG03: ; bbWeight=0.84, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref ldr x0, [x20, #0x18] @@ -103,44 +105,44 @@ G_M10115_IG03: ; bbWeight=0.84, gcrefRegs=300000 {x20 x21}, byrefRegs=000 G_M10115_IG04: ; bbWeight=0.86, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] add w0, w23, #1
- sxtw w24, w0
+ sxtw w26, w0
ldr x0, [x20, #0x08] ; gcrRegs +[x0]
- ldr w1, [x0, #0x08] - cmp w23, w1 - bhs G_M10115_IG57 - add x0, x0, #12
+ ldr w25, [x0, #0x08] + cmp w23, w25 + bhs G_M10115_IG56 + add x24, x0, #12 + ; byrRegs +[x24] + ldrh w0, [x24, w23, UXTW #2]
; gcrRegs -[x0]
- ; byrRegs +[x0] - ldrh w2, [x0, w23, UXTW #2] - cmp w2, #58 - bne G_M10115_IG54
+ cmp w0, #58 + bne G_M10115_IG53
;; size=40 bbWeight=0.86 PerfScore 11.57
-G_M10115_IG05: ; bbWeight=0.84, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz
+G_M10115_IG05: ; bbWeight=0.84, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz
tbz w19, #20, G_M10115_IG09 ;; size=4 bbWeight=0.84 PerfScore 0.84
-G_M10115_IG06: ; bbWeight=0.81, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz - cmp w24, w1 - bhs G_M10115_IG57 - ldrh w2, [x0, w24, UXTW #2] - cmp w2, #92 - beq G_M10115_IG55
+G_M10115_IG06: ; bbWeight=0.81, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz + cmp w26, w25 + bhs G_M10115_IG56 + ldrh w0, [x24, w26, UXTW #2] + cmp w0, #92 + beq G_M10115_IG54
;; size=20 bbWeight=0.81 PerfScore 4.83
-G_M10115_IG07: ; bbWeight=0.80, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz - add w2, w24, #1 - cmp w2, w1 - bhs G_M10115_IG57 - ldrh w2, [x0, w2, UXTW #2] - cmp w2, #92 - beq G_M10115_IG55
+G_M10115_IG07: ; bbWeight=0.80, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz + add w0, w26, #1 + cmp w0, w25 + bhs G_M10115_IG56 + ldrh w0, [x24, w0, UXTW #2] + cmp w0, #92 + beq G_M10115_IG54
;; size=24 bbWeight=0.80 PerfScore 5.18
-G_M10115_IG08: ; bbWeight=0.81, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz - add w24, w24, #2
+G_M10115_IG08: ; bbWeight=0.81, gcrefRegs=300000 {x20 x21}, byrefRegs=1000000 {x24}, byref, isz + add w26, w26, #2
tst w19, #0xD1FFAB1E
- bne G_M10115_IG41
+ bne G_M10115_IG34
;; size=12 bbWeight=0.81 PerfScore 1.61 G_M10115_IG09: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x0]
+ ; byrRegs -[x24]
ldr x0, [x20, #0x18] ; gcrRegs +[x0] ldr w0, [x0, #0x14] @@ -158,35 +160,35 @@ G_M10115_IG10: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000 G_M10115_IG11: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz and w0, w19, #0xD1FFAB1E cmp w0, #112, LSL #12
- beq G_M10115_IG42
+ beq G_M10115_IG35
;; size=12 bbWeight=1 PerfScore 2.00 G_M10115_IG12: ; bbWeight=0.98, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- tbnz w19, #27, G_M10115_IG42
+ tbnz w19, #27, G_M10115_IG35
;; size=4 bbWeight=0.98 PerfScore 0.98 G_M10115_IG13: ; bbWeight=0.79, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- strh w24, [x21, #0x3A]
+ strh w26, [x21, #0x3A]
ldr w0, [x20, #0x28] and w0, w0, #0xD1FFAB1E cmp w0, #80, LSL #12
- beq G_M10115_IG51
+ beq G_M10115_IG44
;; size=20 bbWeight=0.79 PerfScore 4.77 G_M10115_IG14: ; bbWeight=0.67, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- tbnz w19, #21, G_M10115_IG33
+ tbnz w19, #21, G_M10115_IG26
;; size=4 bbWeight=0.67 PerfScore 0.67 G_M10115_IG15: ; bbWeight=0.67, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- strh w24, [x21, #0x3C] - uxth w24, w19
+ strh w26, [x21, #0x3C] + uxth w26, w19
and x19, x19, #0xD1FFAB1E orr x0, x19, #1 cmp w22, #0 csel x19, x19, x0, eq
- strh w24, [x21, #0x40]
+ strh w26, [x21, #0x40]
mov w3, wzr
- tbnz x19, #33, G_M10115_IG52
+ tbnz x19, #33, G_M10115_IG51
;; size=36 bbWeight=0.67 PerfScore 4.02 G_M10115_IG16: ; bbWeight=0.67, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ldrh w0, [x21, #0x46]
- cmp w24, w0
+ cmp w26, w0
bge G_M10115_IG22 ;; size=12 bbWeight=0.67 PerfScore 3.01 G_M10115_IG17: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz @@ -200,27 +202,27 @@ G_M10115_IG18: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=000 ; gcrRegs +[x0] ;; size=4 bbWeight=0.50 PerfScore 1.51 G_M10115_IG19: ; bbWeight=0.50, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
- cbz x0, G_M10115_IG59
+ cbz x0, G_M10115_IG58
add x0, x0, #12 ; gcrRegs -[x0] ; byrRegs +[x0]
- str x0, [fp, #0x18] // [V10 loc8] - ldr x0, [fp, #0x18] // [V10 loc8]
+ str x0, [fp, #0x10] // [V10 loc8] + ldr x0, [fp, #0x10] // [V10 loc8]
;; size=16 bbWeight=0.50 PerfScore 2.27 G_M10115_IG20: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ; byrRegs -[x0]
- ldrh w1, [x0, w24, SXTW #2]
+ ldrh w1, [x0, w26, SXTW #2]
cmp w1, #58
- beq G_M10115_IG27
+ beq G_M10115_IG45
;; size=12 bbWeight=0.50 PerfScore 2.27 G_M10115_IG21: ; bbWeight=0.50, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x18] // [V10 loc8]
+ str xzr, [fp, #0x10] // [V10 loc8]
;; size=4 bbWeight=0.50 PerfScore 0.50 G_M10115_IG22: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz orr x19, x19, #0xD1FFAB1E add x0, x20, #32 ; byrRegs +[x0]
- cbz x0, G_M10115_IG60
+ cbz x0, G_M10115_IG59
mov x1, x21 ; gcrRegs +[x1] mov x2, xzr @@ -245,149 +247,98 @@ G_M10115_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byre ;; size=24 bbWeight=1 PerfScore 6.00 G_M10115_IG24: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; byrRegs -[x1]
- ldp x23, x24, [sp, #0x40] - ldp x21, x22, [sp, #0x30]
...

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 3 2 1 0 -20 +12
benchmarks.run_tiered.linux.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm64.checked.mch 3 0 0 3 -0 +0
libraries.crossgen2.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.arm64.Release.mch 169 147 2 20 -636 +20
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
175 149 3 23 -656 +32

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 32,435 2,362 30,073 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch 152,737 60,751 91,986 14 (0.01%) 14 (0.01%)
benchmarks.run_tiered.linux.arm64.checked.mch 60,787 45,077 15,710 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 626,684 383,548 243,136 12 (0.00%) 12 (0.00%)
libraries.crossgen2.linux.arm64.checked.mch 1,936 0 1,936 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 295,687 6 295,681 3 (0.00%) 3 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 750,983 494,543 256,440 128 (0.02%) 128 (0.02%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,826 21,600 283,226 2 (0.00%) 2 (0.00%)
realworld.run.linux.arm64.checked.mch 33,343 157 33,186 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch 52 0 52 0 (0.00%) 0 (0.00%)
2,259,470 1,008,044 1,251,426 159 (0.01%) 159 (0.01%)

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

Detail diffs



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

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


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

Detail diffs



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

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


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

Detail diffs



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



linux x64

Diffs are based on 2,249,703 contexts (981,298 MinOpts, 1,268,405 FullOpts).

MISSED contexts: 134 (0.01%)

Overall (-904 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 69,144,788 +0
coreclr_tests.run.linux.x64.checked.mch 403,316,719 +0
libraries_tests.run.linux.x64.Release.mch 348,249,945 -904

FullOpts (-904 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 47,802,743 +0
coreclr_tests.run.linux.x64.checked.mch 123,825,558 +0
libraries_tests.run.linux.x64.Release.mch 164,494,781 -904

Example diffs

benchmarks.run_pgo.linux.x64.checked.mch

+0 (0.00%) : 132816.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -63,107 +63,101 @@ G_M4144_IG02: ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, mov r11d, dword ptr [rsi+0x14] mov ebx, dword ptr [rsi+0x10] mov dword ptr [rbp-0x2C], ebx
- jmp SHORT G_M4144_IG10
+ jmp SHORT G_M4144_IG07
;; size=25 bbWeight=1 PerfScore 12.00 G_M4144_IG03: ; bbWeight=0.82, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref mov ecx, dword ptr [rsi+0x1C] mov ebx, dword ptr [rbp-0x2C] lea edi, [rcx+rbx-0x01] ;; size=10 bbWeight=0.82 PerfScore 3.28
-G_M4144_IG04: ; bbWeight=1.00, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG04: ; bbWeight=1.00, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
inc r8d cmp edi, r8d
- jge SHORT G_M4144_IG08 - ;; size=8 bbWeight=1.00 PerfScore 1.50 -G_M4144_IG05: ; bbWeight=0.05, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref - jmp G_M4144_IG15 - ;; size=5 bbWeight=0.05 PerfScore 0.10 -G_M4144_IG06: ; bbWeight=0.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref - mov eax, dword ptr [rsi+0x1C] - cmp edi, eax - mov dword ptr [rbp+0x44], r8d - jl G_M4144_IG15 - ;; size=15 bbWeight=0.10 PerfScore 0.42 -G_M4144_IG07: ; bbWeight=0.05, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref - mov r8d, eax - ;; size=3 bbWeight=0.05 PerfScore 0.01 -G_M4144_IG08: ; bbWeight=0.91, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
+ jl G_M4144_IG13 + ;; size=12 bbWeight=1.00 PerfScore 1.50 +G_M4144_IG05: ; bbWeight=0.91, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
mov ecx, dword ptr [rsi+0x20] mov eax, dword ptr [rsi+0x20] lea eax, [rax+r11-0x01] cmp eax, ecx jl SHORT G_M4144_IG04 ;; size=15 bbWeight=0.91 PerfScore 5.69
-G_M4144_IG09: ; bbWeight=9.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+G_M4144_IG06: ; bbWeight=9.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
mov eax, r9d ;; size=3 bbWeight=9.10 PerfScore 2.27
-G_M4144_IG10: ; bbWeight=9.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+G_M4144_IG07: ; bbWeight=9.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
cmp r10d, eax
- jl G_M4144_IG13
+ jl G_M4144_IG10
;; size=9 bbWeight=9.10 PerfScore 11.37
-G_M4144_IG11: ; bbWeight=8.27, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+G_M4144_IG08: ; bbWeight=8.27, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
mov r15d, r8d sub r15d, dword ptr [rdx+0x1C] mov r14d, dword ptr [rdx+0x10] ;; size=11 bbWeight=8.27 PerfScore 43.42
-G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG09: ; bbWeight=90.90, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
mov r13d, r15d cmp r13d, r14d
- jae G_M4144_IG18
+ jae G_M4144_IG17
mov r12d, dword ptr [rdx+0x14] imul r13d, r12d mov ebx, ecx sub ebx, dword ptr [rdx+0x20] cmp ebx, r12d
- jae G_M4144_IG18
+ jae G_M4144_IG17
add ebx, r13d mov r13d, dword ptr [rdx+0x18] imul ebx, r13d mov r12d, eax sub r12d, dword ptr [rdx+0x24] cmp r12d, r13d
- jae G_M4144_IG18
+ jae G_M4144_IG17
add ebx, r12d mov r13d, r8d sub r13d, dword ptr [rsi+0x1C] cmp r13d, dword ptr [rsi+0x10]
- jae G_M4144_IG18
+ jae G_M4144_IG17
mov r12d, dword ptr [rsi+0x14] imul r13d, r12d mov edi, ecx sub edi, dword ptr [rsi+0x20] cmp edi, r12d
- jae SHORT G_M4144_IG18
+ jae G_M4144_IG17
add edi, r13d mov r13d, dword ptr [rsi+0x18] imul edi, r13d mov r12d, eax sub r12d, dword ptr [rsi+0x24] cmp r12d, r13d
- jae SHORT G_M4144_IG18
+ jae SHORT G_M4144_IG17
add edi, r12d mov edi, dword ptr [rsi+4*rdi+0x28] mov dword ptr [rdx+4*rbx+0x28], edi inc eax cmp r10d, eax
- jge G_M4144_IG12 - ;; size=144 bbWeight=90.90 PerfScore 4385.97 -G_M4144_IG13: ; bbWeight=9.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+ jge G_M4144_IG09 + ;; size=148 bbWeight=90.90 PerfScore 4385.97 +G_M4144_IG10: ; bbWeight=9.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
inc ecx mov eax, dword ptr [rsi+0x20] lea edi, [rax+r11-0x01] cmp edi, ecx
- jge G_M4144_IG09
+ jge G_M4144_IG06
;; size=18 bbWeight=9.10 PerfScore 40.95
-G_M4144_IG14: ; bbWeight=0.82, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+G_M4144_IG11: ; bbWeight=0.82, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
jmp G_M4144_IG03 ;; size=5 bbWeight=0.82 PerfScore 1.64
-G_M4144_IG15: ; bbWeight=0.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+G_M4144_IG12: ; bbWeight=0.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz + mov eax, dword ptr [rsi+0x1C] + cmp edi, eax + mov dword ptr [rbp+0x44], r8d + jge SHORT G_M4144_IG16 + ;; size=11 bbWeight=0.10 PerfScore 0.42 +G_M4144_IG13: ; bbWeight=0.10, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
mov r8d, dword ptr [rbp+0x44] dec r8d
- jne G_M4144_IG06 - ;; size=13 bbWeight=0.10 PerfScore 0.22 -G_M4144_IG16: ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
+ jne SHORT G_M4144_IG12 + ;; size=9 bbWeight=0.10 PerfScore 0.22 +G_M4144_IG14: ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
mov rdi, rsi ; gcrRegs +[rdi] mov rsi, rdx @@ -172,7 +166,7 @@ G_M4144_IG16: ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, ; gcr arg pop 0 nop ;; size=13 bbWeight=0 PerfScore 0.00
-G_M4144_IG17: ; bbWeight=0, epilog, nogc, extend
+G_M4144_IG15: ; bbWeight=0, epilog, nogc, extend
add rsp, 120 pop rbx pop r12 @@ -182,7 +176,13 @@ G_M4144_IG17: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00
-G_M4144_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M4144_IG16: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[rdx rsi] + mov r8d, eax + jmp G_M4144_IG05 + ;; size=8 bbWeight=0.05 PerfScore 0.11 +G_M4144_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[rdx rsi]
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 int3

coreclr_tests.run.linux.x64.checked.mch

+0 (0.00%) : 320579.dasm - Simple2ArrayTest:TestEntryPoint():int (Tier1-OSR)

@@ -60,7 +60,7 @@ G_M25589_IG04: ; bbWeight=9.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr G_M25589_IG05: ; bbWeight=9.10, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz ; GC ptr vars -{V01 V06} cmp ebx, r14d
- jge SHORT G_M25589_IG13
+ jge SHORT G_M25589_IG12
;; size=5 bbWeight=9.10 PerfScore 11.37 G_M25589_IG06: ; bbWeight=8.27, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref mov r11d, r12d @@ -85,7 +85,7 @@ G_M25589_IG07: ; bbWeight=90.90, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, inc ebx cmp ebx, r14d mov r11d, dword ptr [rbp-0x2C]
- jl SHORT G_M25589_IG12
+ jl SHORT G_M25589_IG11
;; size=42 bbWeight=90.90 PerfScore 727.21 G_M25589_IG08: ; bbWeight=9.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz inc r15d @@ -97,34 +97,36 @@ G_M25589_IG09: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr cmp r13d, r14d jl SHORT G_M25589_IG03 ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M25589_IG10: ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - inc r12d - cmp r12d, r14d - jge SHORT G_M25589_IG14 - xor r13d, r13d - test r14d, r14d - jg SHORT G_M25589_IG03 - ;; size=16 bbWeight=0.10 PerfScore 0.30 -G_M25589_IG11: ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M25589_IG10 - ;; size=2 bbWeight=0.04 PerfScore 0.09 -G_M25589_IG12: ; bbWeight=45.45, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG10: ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M25589_IG14 + ;; size=2 bbWeight=0.09 PerfScore 0.18 +G_M25589_IG11: ; bbWeight=45.45, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rbp+0x58] ; gcrRegs +[rax] jmp SHORT G_M25589_IG07 ;; size=6 bbWeight=45.45 PerfScore 136.35
-G_M25589_IG13: ; bbWeight=4.55, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M25589_IG12: ; bbWeight=4.55, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V01} mov gword ptr [rbp+0x58], rax ; GC ptr vars +{V01} jmp SHORT G_M25589_IG08 ;; size=6 bbWeight=4.55 PerfScore 13.65
-G_M25589_IG14: ; bbWeight=0, gcVars=0000000000000040 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M25589_IG13: ; bbWeight=0.10, gcVars=0000000000000040 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rax]
+ xor r13d, r13d + test r14d, r14d + jg SHORT G_M25589_IG03 + ;; size=8 bbWeight=0.10 PerfScore 0.15 +G_M25589_IG14: ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + inc r12d + cmp r12d, r14d + jl SHORT G_M25589_IG13 + ;; size=8 bbWeight=0.10 PerfScore 0.15 +G_M25589_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor r12d, r12d
- jmp G_M25589_IG26
+ jmp G_M25589_IG27
;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M25589_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V01} mov rdi, 0xD1FFAB1E ; gcrRegs +[rdi] @@ -133,7 +135,7 @@ G_M25589_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 mov eax, 1 ;; size=21 bbWeight=0 PerfScore 0.00
-G_M25589_IG16: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG17: ; bbWeight=0, epilog, nogc, extend
add rsp, 152 pop rbx pop r12 @@ -143,24 +145,24 @@ G_M25589_IG16: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=18 bbWeight=0 PerfScore 0.00
-G_M25589_IG17: ; bbWeight=0, gcVars=0000000000000040 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M25589_IG18: ; bbWeight=0, gcVars=0000000000000040 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars +{V01 V06} xor r13d, r13d
- jmp SHORT G_M25589_IG25 - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M25589_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - xor r15d, r15d - jmp SHORT G_M25589_IG24
+ jmp SHORT G_M25589_IG26
;; size=5 bbWeight=0 PerfScore 0.00 G_M25589_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ xor r15d, r15d + jmp SHORT G_M25589_IG25 + ;; size=5 bbWeight=0 PerfScore 0.00 +G_M25589_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ebx, ebx
+ jmp SHORT G_M25589_IG24 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M25589_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + xor eax, eax
jmp SHORT G_M25589_IG23 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M25589_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - xor eax, eax - jmp SHORT G_M25589_IG22 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M25589_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25589_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbp+0x58] ; gcrRegs +[rdi] mov esi, r12d @@ -178,32 +180,32 @@ G_M25589_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref inc eax mov qword ptr [rbp+0x38], rdi ;; size=43 bbWeight=0 PerfScore 0.00
-G_M25589_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbp+0x44], eax cmp eax, ebx
- jl SHORT G_M25589_IG21
+ jl SHORT G_M25589_IG22
inc ebx ;; size=9 bbWeight=0 PerfScore 0.00
-G_M25589_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp ebx, r15d
- jl SHORT G_M25589_IG20
+ jl SHORT G_M25589_IG21
inc r15d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp r15d, r13d
- jl SHORT G_M25589_IG19
+ jl SHORT G_M25589_IG20
inc r13d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp r13d, r12d
- jl SHORT G_M25589_IG18
+ jl SHORT G_M25589_IG19
inc r12d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG27: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp r12d, r14d
- jl SHORT G_M25589_IG17
+ jl SHORT G_M25589_IG18
cmp qword ptr [rbp+0x38], 0x3022B
- jne G_M25589_IG15
+ jne G_M25589_IG16
mov rdi, 0xD1FFAB1E ; gcrRegs +[rdi] ; GC ptr vars -{V01 V06} @@ -212,7 +214,7 @@ G_M25589_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcr arg pop 0 mov eax, 100 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M25589_IG27: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG28: ; bbWeight=0, epilog, nogc, extend
add rsp, 152 pop rbx pop r12 @@ -223,7 +225,7 @@ G_M25589_IG27: ; bbWeight=0, epilog, nogc, extend ret ;; size=18 bbWeight=0 PerfScore 0.00
-Total bytes of code 400, prolog size 77, PerfScore 983.03, instruction count 119, allocated bytes for code 400 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
+Total bytes of code 400, prolog size 77, PerfScore 983.12, instruction count 119, allocated bytes for code 400 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
; ============================================================ Unwind Info:

+0 (0.00%) : 324279.dasm - Simple2ArrayTest:Main():int (Tier1-OSR)

@@ -58,7 +58,7 @@ G_M25584_IG05: ; bbWeight=9.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov r15d, dword ptr [rbp+0x48] mov r14d, dword ptr [rbp+0x64] cmp r15d, r14d
- jge SHORT G_M25584_IG13
+ jge SHORT G_M25584_IG12
;; size=13 bbWeight=9.10 PerfScore 29.57 G_M25584_IG06: ; bbWeight=8.27, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov r13d, dword ptr [rbp+0x54] @@ -85,7 +85,7 @@ G_M25584_IG07: ; bbWeight=90.90, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, inc r15d cmp r15d, r14d mov eax, dword ptr [rbp-0x2C]
- jl SHORT G_M25584_IG12
+ jl SHORT G_M25584_IG11
;; size=42 bbWeight=90.90 PerfScore 727.21 G_M25584_IG08: ; bbWeight=9.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz mov r15d, dword ptr [rbp+0x4C] @@ -98,31 +98,33 @@ G_M25584_IG09: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, cmp r12d, r14d jl G_M25584_IG03 ;; size=12 bbWeight=1.00 PerfScore 1.50
-G_M25584_IG10: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - inc r13d - cmp r13d, r14d - jge SHORT G_M25584_IG14 - xor r12d, r12d - test r14d, r14d - jg G_M25584_IG03 - ;; size=20 bbWeight=0.10 PerfScore 0.30 -G_M25584_IG11: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M25584_IG10 - ;; size=2 bbWeight=0.04 PerfScore 0.09 -G_M25584_IG12: ; bbWeight=45.45, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG10: ; bbWeight=0.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M25584_IG14 + ;; size=2 bbWeight=0.09 PerfScore 0.18 +G_M25584_IG11: ; bbWeight=45.45, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r10d, dword ptr [rbp+0x4C] jmp SHORT G_M25584_IG07 ;; size=6 bbWeight=45.45 PerfScore 136.35
-G_M25584_IG13: ; bbWeight=4.55, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG12: ; bbWeight=4.55, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r12d, dword ptr [rbp+0x50] mov r13d, dword ptr [rbp+0x54] jmp SHORT G_M25584_IG08 ;; size=10 bbWeight=4.55 PerfScore 18.20
-G_M25584_IG14: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M25584_IG13: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + xor r12d, r12d + test r14d, r14d + jg G_M25584_IG03 + ;; size=12 bbWeight=0.10 PerfScore 0.15 +G_M25584_IG14: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + inc r13d + cmp r13d, r14d + jl SHORT G_M25584_IG13 + ;; size=8 bbWeight=0.10 PerfScore 0.15 +G_M25584_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
xor r13d, r13d
- jmp G_M25584_IG26
+ jmp G_M25584_IG27
;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25584_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov rdi, 0xD1FFAB1E ; gcrRegs +[rdi] @@ -131,7 +133,7 @@ G_M25584_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov eax, 1 ;; size=21 bbWeight=0 PerfScore 0.00
-G_M25584_IG16: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG17: ; bbWeight=0, epilog, nogc, extend
add rsp, 152 pop rbx pop r12 @@ -141,24 +143,24 @@ G_M25584_IG16: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=18 bbWeight=0 PerfScore 0.00
-G_M25584_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M25584_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx] xor r12d, r12d
- jmp SHORT G_M25584_IG25 - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M25584_IG18: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - xor r15d, r15d - jmp SHORT G_M25584_IG24
+ jmp SHORT G_M25584_IG26
;; size=5 bbWeight=0 PerfScore 0.00 G_M25584_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- xor eax, eax - jmp SHORT G_M25584_IG23 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M25584_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - xor r9d, r9d - jmp SHORT G_M25584_IG22
+ xor r15d, r15d + jmp SHORT G_M25584_IG25
;; size=5 bbWeight=0 PerfScore 0.00
-G_M25584_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M25584_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + xor eax, eax + jmp SHORT G_M25584_IG24 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M25584_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + xor r9d, r9d + jmp SHORT G_M25584_IG23 + ;; size=5 bbWeight=0 PerfScore 0.00 +G_M25584_IG22: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx ; gcrRegs +[rdi] mov esi, r13d @@ -177,39 +179,39 @@ G_M25584_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov qword ptr [rbp+0x38], rax mov eax, dword ptr [rbp+0x48] ;; size=47 bbWeight=0 PerfScore 0.00
-G_M25584_IG22: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbp+0x44], r9d cmp r9d, eax
- jl SHORT G_M25584_IG21
+ jl SHORT G_M25584_IG22
inc eax ;; size=11 bbWeight=0 PerfScore 0.00
-G_M25584_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp eax, r15d
- jl SHORT G_M25584_IG20
+ jl SHORT G_M25584_IG21
inc r15d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r15d, r12d
- jl SHORT G_M25584_IG19
+ jl SHORT G_M25584_IG20
inc r12d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r12d, r13d
- jl SHORT G_M25584_IG18
+ jl SHORT G_M25584_IG19
inc r13d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r13d, r14d
- jl SHORT G_M25584_IG17
+ jl SHORT G_M25584_IG18
mov rdi, rbx ; gcrRegs +[rdi] call [Simple2_Array_Test:test(int[,,,]):int] ; gcrRegs -[rbx rdi] ; gcr arg pop 0 cmp eax, 4
- jne G_M25584_IG15
+ jne G_M25584_IG16
cmp qword ptr [rbp+0x38], 0x3022B
- jne G_M25584_IG15
+ jne G_M25584_IG16
mov rdi, 0xD1FFAB1E ; gcrRegs +[rdi] call [<unknown method>] @@ -217,7 +219,7 @@ G_M25584_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov eax, 100 ;; size=58 bbWeight=0 PerfScore 0.00
-G_M25584_IG27: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG28: ; bbWeight=0, epilog, nogc, extend
add rsp, 152 pop rbx pop r12 @@ -228,7 +230,7 @@ G_M25584_IG27: ; bbWeight=0, epilog, nogc, extend ret ;; size=18 bbWeight=0 PerfScore 0.00
-Total bytes of code 458, prolog size 58, PerfScore 1068.36, instruction count 131, allocated bytes for code 458 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
+Total bytes of code 458, prolog size 58, PerfScore 1068.45, instruction count 131, allocated bytes for code 458 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
; ============================================================ Unwind Info:

libraries_tests.run.linux.x64.Release.mch

-5 (-2.28%) : 71061.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -42,17 +42,17 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b mov r14, gword ptr [rbx+0x18] ; gcrRegs +[r14] cmp qword ptr [r14], r15
- jne G_M8081_IG16
+ jne G_M8081_IG15
cmp byte ptr [r14+0x4C], 0
- jne G_M8081_IG17
+ jne G_M8081_IG16
mov rdi, gword ptr [r14+0x30] ; gcrRegs +[rdi] test dword ptr [rdi+0x34], 0xD1FFAB1E
- je G_M8081_IG18
+ je G_M8081_IG17
mov edi, dword ptr [r14+0x38] ; gcrRegs -[rdi] cmp edi, dword ptr [r14+0x3C]
- je SHORT G_M8081_IG09
+ je SHORT G_M8081_IG10
;; size=51 bbWeight=1.04 PerfScore 22.97 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [r14+0x28] @@ -60,7 +60,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 { mov edi, dword ptr [r14+0x38] mov ecx, edi cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M8081_IG15
+ jae SHORT G_M8081_IG14
movzx rax, word ptr [rax+2*rcx+0x10] ; gcrRegs -[rax] inc edi @@ -70,36 +70,17 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b ; gcrRegs -[r14] inc dword ptr [rbx+0x24] cmp eax, -1
- je SHORT G_M8081_IG13
+ je SHORT G_M8081_IG12
;; size=8 bbWeight=1.04 PerfScore 4.44 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 10
- je SHORT G_M8081_IG12
+ je SHORT G_M8081_IG09
;; size=5 bbWeight=1.04 PerfScore 1.30 G_M8081_IG07: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 13 je SHORT G_M8081_IG03 ;; size=5 bbWeight=1.00 PerfScore 1.25
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[rbx] - jmp SHORT G_M8081_IG11 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx r14] - mov rdi, r14 - ; gcrRegs +[rdi] - call [System.IO.StreamReader:ReadBuffer():int:this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - test eax, eax - jne SHORT G_M8081_IG04 - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r14] - mov eax, -1 - jmp SHORT G_M8081_IG05 - ;; size=7 bbWeight=0.00 PerfScore 0.00 -G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx] add rsp, 8 pop rbx @@ -108,18 +89,33 @@ G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre pop rbp ret ;; size=11 bbWeight=1.00 PerfScore 3.25
-G_M8081_IG12: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG09: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx] xor eax, eax mov dword ptr [rbx+0x24], eax inc dword ptr [rbx+0x20]
- jmp G_M8081_IG03 - ;; size=13 bbWeight=0.04 PerfScore 0.27 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M8081_IG03 + ;; size=10 bbWeight=0.04 PerfScore 0.27 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r14] + mov rdi, r14 + ; gcrRegs +[rdi] + call [System.IO.StreamReader:ReadBuffer():int:this] + ; gcrRegs -[rdi] + ; gcr arg pop 0 + test eax, eax + jne SHORT G_M8081_IG04 + ;; size=13 bbWeight=0.00 PerfScore 0.00 +G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r14] + mov eax, -1 + jmp SHORT G_M8081_IG05 + ;; size=7 bbWeight=0.00 PerfScore 0.00 +G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, -1 ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
add rsp, 8 pop rbx pop r14 @@ -127,11 +123,11 @@ G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend pop rbp ret ;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov rdi, r14 ; gcrRegs +[rdi] @@ -142,7 +138,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp SHORT G_M8081_IG05 ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[r14] mov rdi, r14 ; gcrRegs +[rdi] @@ -151,13 +147,13 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byre ; gcr arg pop 0 int3 ;; size=10 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.IO.StreamReader:ThrowAsyncIOInProgress()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-Total bytes of code 219, prolog size 15, PerfScore 52.75, instruction count 69, allocated bytes for code 219 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 214, prolog size 15, PerfScore 51.75, instruction count 68, allocated bytes for code 214 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info:

-5 (-2.28%) : 73577.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -42,17 +42,17 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b mov r14, gword ptr [rbx+0x18] ; gcrRegs +[r14] cmp qword ptr [r14], r15
- jne G_M8081_IG16
+ jne G_M8081_IG15
cmp byte ptr [r14+0x4C], 0
- jne G_M8081_IG17
+ jne G_M8081_IG16
mov rdi, gword ptr [r14+0x30] ; gcrRegs +[rdi] test dword ptr [rdi+0x34], 0xD1FFAB1E
- je G_M8081_IG18
+ je G_M8081_IG17
mov edi, dword ptr [r14+0x38] ; gcrRegs -[rdi] cmp edi, dword ptr [r14+0x3C]
- je SHORT G_M8081_IG09
+ je SHORT G_M8081_IG10
;; size=51 bbWeight=1.04 PerfScore 22.99 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [r14+0x28] @@ -60,7 +60,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 { mov edi, dword ptr [r14+0x38] mov ecx, edi cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M8081_IG15
+ jae SHORT G_M8081_IG14
movzx rax, word ptr [rax+2*rcx+0x10] ; gcrRegs -[rax] inc edi @@ -70,36 +70,17 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b ; gcrRegs -[r14] inc dword ptr [rbx+0x24] cmp eax, -1
- je SHORT G_M8081_IG13
+ je SHORT G_M8081_IG12
;; size=8 bbWeight=1.04 PerfScore 4.44 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 10
- je SHORT G_M8081_IG12
+ je SHORT G_M8081_IG09
;; size=5 bbWeight=1.04 PerfScore 1.31 G_M8081_IG07: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 13 je SHORT G_M8081_IG03 ;; size=5 bbWeight=1.00 PerfScore 1.25
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[rbx] - jmp SHORT G_M8081_IG11 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx r14] - mov rdi, r14 - ; gcrRegs +[rdi] - call [System.IO.StreamReader:ReadBuffer():int:this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - test eax, eax - jne SHORT G_M8081_IG04 - ;; size=13 bbWeight=0.00 PerfScore 0.01 -G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r14] - mov eax, -1 - jmp SHORT G_M8081_IG05 - ;; size=7 bbWeight=0.00 PerfScore 0.00 -G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx] add rsp, 8 pop rbx @@ -108,18 +89,33 @@ G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre pop rbp ret ;; size=11 bbWeight=1.00 PerfScore 3.25
-G_M8081_IG12: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG09: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx] xor eax, eax mov dword ptr [rbx+0x24], eax inc dword ptr [rbx+0x20]
- jmp G_M8081_IG03 - ;; size=13 bbWeight=0.04 PerfScore 0.28 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M8081_IG03 + ;; size=10 bbWeight=0.04 PerfScore 0.28 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r14] + mov rdi, r14 + ; gcrRegs +[rdi] + call [System.IO.StreamReader:ReadBuffer():int:this] + ; gcrRegs -[rdi] + ; gcr arg pop 0 + test eax, eax + jne SHORT G_M8081_IG04 + ;; size=13 bbWeight=0.00 PerfScore 0.01 +G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r14] + mov eax, -1 + jmp SHORT G_M8081_IG05 + ;; size=7 bbWeight=0.00 PerfScore 0.00 +G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, -1 ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
add rsp, 8 pop rbx pop r14 @@ -127,11 +123,11 @@ G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend pop rbp ret ;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov rdi, r14 ; gcrRegs +[rdi] @@ -142,7 +138,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp SHORT G_M8081_IG05 ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[r14] mov rdi, r14 ; gcrRegs +[rdi] @@ -151,13 +147,13 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byre ; gcr arg pop 0 int3 ;; size=10 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.IO.StreamReader:ThrowAsyncIOInProgress()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-Total bytes of code 219, prolog size 15, PerfScore 52.81, instruction count 69, allocated bytes for code 219 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 214, prolog size 15, PerfScore 51.81, instruction count 68, allocated bytes for code 214 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info:

-5 (-2.28%) : 75401.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -42,17 +42,17 @@ G_M8081_IG03: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b mov r14, gword ptr [rbx+0x18] ; gcrRegs +[r14] cmp qword ptr [r14], r15
- jne G_M8081_IG16
+ jne G_M8081_IG15
cmp byte ptr [r14+0x4C], 0
- jne G_M8081_IG17
+ jne G_M8081_IG16
mov rdi, gword ptr [r14+0x30] ; gcrRegs +[rdi] test dword ptr [rdi+0x34], 0xD1FFAB1E
- je G_M8081_IG18
+ je G_M8081_IG17
mov edi, dword ptr [r14+0x38] ; gcrRegs -[rdi] cmp edi, dword ptr [r14+0x3C]
- je SHORT G_M8081_IG09
+ je SHORT G_M8081_IG10
;; size=51 bbWeight=1.05 PerfScore 22.99 G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [r14+0x28] @@ -60,7 +60,7 @@ G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 { mov edi, dword ptr [r14+0x38] mov ecx, edi cmp ecx, dword ptr [rax+0x08]
- jae SHORT G_M8081_IG15
+ jae SHORT G_M8081_IG14
movzx rax, word ptr [rax+2*rcx+0x10] ; gcrRegs -[rax] inc edi @@ -70,36 +70,17 @@ G_M8081_IG05: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b ; gcrRegs -[r14] inc dword ptr [rbx+0x24] cmp eax, -1
- je SHORT G_M8081_IG13
+ je SHORT G_M8081_IG12
;; size=8 bbWeight=1.05 PerfScore 4.44 G_M8081_IG06: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 10
- je SHORT G_M8081_IG12
+ je SHORT G_M8081_IG09
;; size=5 bbWeight=1.05 PerfScore 1.31 G_M8081_IG07: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 13 je SHORT G_M8081_IG03 ;; size=5 bbWeight=1.00 PerfScore 1.25
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[rbx] - jmp SHORT G_M8081_IG11 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx r14] - mov rdi, r14 - ; gcrRegs +[rdi] - call [System.IO.StreamReader:ReadBuffer():int:this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - test eax, eax - jne SHORT G_M8081_IG04 - ;; size=13 bbWeight=0.00 PerfScore 0.00 -G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r14] - mov eax, -1 - jmp SHORT G_M8081_IG05 - ;; size=7 bbWeight=0.00 PerfScore 0.00 -G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx] add rsp, 8 pop rbx @@ -108,18 +89,33 @@ G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre pop rbp ret ;; size=11 bbWeight=1.00 PerfScore 3.25
-G_M8081_IG12: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG09: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx] xor eax, eax mov dword ptr [rbx+0x24], eax inc dword ptr [rbx+0x20]
- jmp G_M8081_IG03 - ;; size=13 bbWeight=0.04 PerfScore 0.28 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M8081_IG03 + ;; size=10 bbWeight=0.04 PerfScore 0.28 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r14] + mov rdi, r14 + ; gcrRegs +[rdi] + call [System.IO.StreamReader:ReadBuffer():int:this] + ; gcrRegs -[rdi] + ; gcr arg pop 0 + test eax, eax + jne SHORT G_M8081_IG04 + ;; size=13 bbWeight=0.00 PerfScore 0.00 +G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r14] + mov eax, -1 + jmp SHORT G_M8081_IG05 + ;; size=7 bbWeight=0.00 PerfScore 0.00 +G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, -1 ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
add rsp, 8 pop rbx pop r14 @@ -127,11 +123,11 @@ G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend pop rbp ret ;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov rdi, r14 ; gcrRegs +[rdi] @@ -142,7 +138,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp SHORT G_M8081_IG05 ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[r14] mov rdi, r14 ; gcrRegs +[rdi] @@ -151,13 +147,13 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byre ; gcr arg pop 0 int3 ;; size=10 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.IO.StreamReader:ThrowAsyncIOInProgress()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-Total bytes of code 219, prolog size 15, PerfScore 52.82, instruction count 69, allocated bytes for code 219 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 214, prolog size 15, PerfScore 51.82, instruction count 68, allocated bytes for code 214 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info:

+25 (+1.55%) : 720912.dasm - System.Text.RegularExpressions.Regex:RunAllMatchesWithCallback[System.ValueTuple6[System.__Canon,System.__Canon,System.Text.StructListBuilder1[int],System.ReadOnlyMemory1[ushort],int,int]](System.String,System.ReadOnlySpan1[ushort],int,byref,System.Text.RegularExpressions.MatchCallback1[System.ValueTuple6[System.Canon,System.Canon,System.Text.StructListBuilder1[int],System.ReadOnlyMemory1[ushort],int,int]],int,ubyte):this (Tier1)

@@ -13,7 +13,7 @@ ;* V01 TypeCtx [V01 ] ( 0, 0 ) long -> zero-ref single-def ; V02 arg1 [V02,T47] ( 4, 66.09) ref -> [rbp-0x48] class-hnd single-def <System.String> ;* V03 arg2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-; V04 arg3 [V04,T11] ( 9, 371.38) int -> registers
+; V04 arg3 [V04,T11] ( 10, 371.38) int -> registers
; V05 arg4 [V05,T06] ( 7, 641.82) byref -> rbx single-def ; V06 arg5 [V06,T20] ( 3, 275.07) ref -> r13 class-hnd single-def <System.Text.RegularExpressions.MatchCallback`1[System.ValueTuple`6[System.__Canon,System.__Canon,System.Text.StructListBuilder`1[int],System.ReadOnlyMemory`1[ushort],int,int]]> ; V07 arg6 [V07,T38] ( 2, 155.54) int -> r12 single-def @@ -21,12 +21,12 @@ ; V09 loc0 [V09,T00] ( 47,2557.88) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Text.RegularExpressions.RegexRunner> ; V10 loc1 [V10,T35] ( 4, 185.18) int -> [rbp-0x2C] ;* V11 loc2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Text.RegularExpressions.Match>
-; V12 loc3 [V12,T56] ( 3, 0.58) int -> rdx -; V13 loc4 [V13,T57] ( 3, 0.56) int -> rax
+; V12 loc3 [V12,T56] ( 4, 0.58) int -> rax +; V13 loc4 [V13,T57] ( 3, 0.56) int -> rsi
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V15 tmp1 [V15,T49] ( 2, 4 ) ref -> rsi class-hnd single-def "dup spill" <System.__Canon> ; V16 tmp2 [V16,T48] ( 6, 5.50) ref -> [rbp-0x58]
-; V17 tmp3 [V17,T15] ( 2, 365.85) int -> rsi "dup spill"
+; V17 tmp3 [V17,T15] ( 2, 365.85) int -> rdi "dup spill"
; V18 tmp4 [V18,T36] ( 2, 183.38) int -> rax "guarded devirt return temp" ;* V19 tmp5 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <System.Text.RegularExpressions.RegexReplacement+<>c> ; V20 tmp6 [V20,T55] ( 3, 0.99) ref -> rsi "guarded devirt return temp" @@ -34,13 +34,13 @@ ;* V22 tmp8 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.CompiledRegexRunnerFactory> ;* V23 tmp9 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]> ; V24 tmp10 [V24,T12] ( 8, 369.04) ref -> r15 class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Match>
-; V25 tmp11 [V25,T53] ( 2, 1.31) int -> r15 "dup spill" -; V26 tmp12 [V26,T51] ( 7, 2.26) int -> r15 "Inline stloc first use temp" -; V27 tmp13 [V27,T52] ( 4, 1.31) int -> [rbp-0x30] "Inline stloc first use temp"
+; V25 tmp11 [V25,T53] ( 2, 1.31) int -> rax "dup spill" +; V26 tmp12 [V26,T51] ( 7, 2.26) int -> [rbp-0x30] "Inline stloc first use temp" +; V27 tmp13 [V27,T52] ( 4, 1.31) int -> [rbp-0x34] "Inline stloc first use temp"
;* V28 tmp14 [V28 ] ( 0, 0 ) ref -> zero-ref ; V29 tmp15 [V29,T01] ( 14,1747.19) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Match> ;* V30 tmp16 [V30 ] ( 0, 0 ) ref -> zero-ref
-; V31 tmp17 [V31,T42] ( 3, 124.22) ref -> r15
+; V31 tmp17 [V31,T42] ( 3, 124.22) ref -> rsi
; V32 tmp18 [V32,T58] ( 4, 0.49) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.MatchSparse> ;* V33 tmp19 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.CompiledRegexRunner> ; V34 tmp20 [V34,T59] ( 2, 0.25) ref -> r8 class-hnd "Inlining Arg" <System.Text.RegularExpressions.Regex> @@ -65,49 +65,49 @@ ;* V53 tmp39 [V53 ] ( 0, 0 ) int -> zero-ref ;* V54 tmp40 [V54 ] ( 0, 0 ) int -> zero-ref ; V55 tmp41 [V55,T31] ( 2, 249.60) ref -> [rbp-0x88] class-hnd exact spill-single-def "Inlining Arg" <int[]>
-; V56 tmp42 [V56,T44] ( 2, 122.76) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
+; V56 tmp42 [V56,T44] ( 2, 122.76) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V57 tmp43 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V58 tmp44 [V58,T37] ( 4, 181.01) ref -> rsi class-hnd "Inline stloc first use temp" <int[]> -; V59 tmp45 [V59,T22] ( 5, 269.95) int -> rdi "Inline stloc first use temp" -; V60 tmp46 [V60,T43] ( 3, 122.76) ref -> rsi class-hnd "dup spill" <System.Text.RegularExpressions.GroupCollection>
+; V58 tmp44 [V58,T37] ( 4, 181.01) ref -> rdi class-hnd "Inline stloc first use temp" <int[]> +; V59 tmp45 [V59,T22] ( 5, 269.95) int -> rax "Inline stloc first use temp" +; V60 tmp46 [V60,T43] ( 3, 122.76) ref -> registers class-hnd "dup spill" <System.Text.RegularExpressions.GroupCollection>
;* V61 tmp47 [V61 ] ( 0, 0 ) ref -> zero-ref
-; V62 tmp48 [V62,T05] ( 8, 643.11) ref -> r15 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Match>
+; V62 tmp48 [V62,T05] ( 8, 643.11) ref -> [rbp-0x90] class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Match>
;* V63 tmp49 [V63 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V64 tmp50 [V64,T02] ( 15, 907.27) ref -> r15 class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Match>
+; V64 tmp50 [V64,T02] ( 15, 907.27) ref -> [rbp-0x98] class-hnd spill-single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Match>
;* V65 tmp51 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <int[]>
-; V66 tmp52 [V66,T26] ( 2, 252.36) int -> rdx "Inlining Arg"
+; V66 tmp52 [V66,T26] ( 2, 252.36) int -> rdi "Inlining Arg"
;* V67 tmp53 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V68 tmp54 [V68,T25] ( 4, 252.36) ref -> rax class-hnd "Inline stloc first use temp" <int[]> -; V69 tmp55 [V69,T27] ( 2, 252.36) int -> rdx "Inlining Arg" -; V70 tmp56 [V70,T28] ( 2, 252.36) int -> rax "Inlining Arg" -; V71 tmp57 [V71,T03] ( 5, 733.51) byref -> rsi "impAppendStmt"
+; V68 tmp54 [V68,T25] ( 4, 252.36) ref -> rdi class-hnd "Inline stloc first use temp" <int[]> +; V69 tmp55 [V69,T27] ( 2, 252.36) int -> rcx "Inlining Arg" +; V70 tmp56 [V70,T28] ( 2, 252.36) int -> rdi "Inlining Arg" +; V71 tmp57 [V71,T03] ( 5, 733.51) byref -> rdi "impAppendStmt"
;* V72 tmp58 [V72 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ; V73 tmp59 [V73,T08] ( 3, 550.14) byref -> rsi "dup spill"
-; V74 tmp60 [V74,T21] ( 3, 275.07) int -> rdx "Inline stloc first use temp" -; V75 tmp61 [V75,T04] ( 5, 733.51) byref -> rsi "Inlining Arg" -; V76 tmp62 [V76,T23] ( 3, 261.71) ref -> rdx class-hnd "Inline stloc first use temp" <int[]>
+; V74 tmp60 [V74,T21] ( 3, 275.07) int -> rdi "Inline stloc first use temp" +; V75 tmp61 [V75,T04] ( 5, 733.51) byref -> rdi "Inlining Arg" +; V76 tmp62 [V76,T23] ( 3, 261.71) ref -> rax class-hnd "Inline stloc first use temp" <int[]>
; V77 tmp63 [V77,T16] ( 4, 340.05) int -> r8 "Inline stloc first use temp"
-; V78 tmp64 [V78,T13] ( 3, 366.76) int -> rax "Inlining Arg" -; V79 tmp65 [V79,T24] ( 3, 261.71) ref -> rdx class-hnd "Inline stloc first use temp" <int[]>
+; V78 tmp64 [V78,T13] ( 3, 366.76) int -> rsi "Inlining Arg" +; V79 tmp65 [V79,T24] ( 3, 261.71) ref -> rax class-hnd "Inline stloc first use temp" <int[]>
; V80 tmp66 [V80,T17] ( 4, 340.05) int -> r8 "Inline stloc first use temp"
-; V81 tmp67 [V81,T14] ( 3, 366.76) int -> rax "Inlining Arg" -; V82 tmp68 [V82,T46] ( 2, 93.45) byref -> [rbp-0x90] single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V81 tmp67 [V81,T14] ( 3, 366.76) int -> rsi "Inlining Arg" +; V82 tmp68 [V82,T46] ( 2, 93.45) byref -> [rbp-0xA0] single-def "field V03._reference (fldOffset=0x0)" P-INDEP
; V83 tmp69 [V83,T18] ( 7, 279.33) int -> r14 single-def "field V03._length (fldOffset=0x8)" P-INDEP ;* V84 tmp70 [V84 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP ;* V85 tmp71 [V85 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP ;* V86 tmp72 [V86 ] ( 0, 0 ) byref -> zero-ref "field V63._reference (fldOffset=0x0)" P-INDEP ;* V87 tmp73 [V87 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
-; V88 tmp74 [V88,T07] ( 3, 554.68) ref -> rsi "arr expr"
+; V88 tmp74 [V88,T07] ( 3, 554.68) ref -> rdi "arr expr"
;* V89 tmp75 [V89,T41] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V90 tmp76 [V90,T09] ( 3, 378.54) ref -> rax "arr expr" -; V91 PSPSym [V91,T54] ( 1, 1 ) long -> [rbp-0xA0] do-not-enreg[V] "PSPSym" -; V92 cse0 [V92,T34] ( 3, 247.98) int -> [rbp-0x34] spill-single-def "CSE - moderate"
+; V90 tmp76 [V90,T09] ( 3, 378.54) ref -> rdi "arr expr" +; V91 PSPSym [V91,T54] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym" +; V92 cse0 [V92,T34] ( 3, 247.98) int -> [rbp-0x38] spill-single-def "CSE - moderate"
; V93 cse1 [V93,T32] ( 7, 249.02) ref -> r15 "CSE - moderate"
-; V94 cse2 [V94,T19] ( 3, 277.01) ref -> r15 "CSE - moderate" -; V95 cse3 [V95,T33] ( 2, 184.89) ref -> rsi "CSE - moderate" -; V96 cse4 [V96,T40] ( 2, 126.18) int -> rdx "CSE - moderate"
+; V94 cse2 [V94,T19] ( 3, 277.01) ref -> rdi "CSE - moderate" +; V95 cse3 [V95,T33] ( 2, 184.89) ref -> rdi "CSE - moderate" +; V96 cse4 [V96,T40] ( 2, 126.18) int -> rcx "CSE - moderate"
;
-; Lcl frame size = 120
+; Lcl frame size = 136
G_M29863_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG push rbp @@ -116,14 +116,14 @@ G_M29863_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { push r13 push r12 push rbx
- sub rsp, 120 - lea rbp, [rsp+0xA0] - mov qword ptr [rbp-0xA0], rsp
+ sub rsp, 136 + lea rbp, [rsp+0xB0] + mov qword ptr [rbp-0xB0], rsp
mov gword ptr [rbp-0x40], rdi ; GC ptr vars +{V00} mov gword ptr [rbp-0x48], rdx ; GC ptr vars +{V02}
- mov bword ptr [rbp-0x90], rcx
+ mov bword ptr [rbp-0xA0], rcx
; GC ptr vars +{V82} mov r14d, r8d mov r15d, r9d @@ -132,7 +132,7 @@ G_M29863_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov r13, gword ptr [rbp+0x18] ; gcrRegs +[r13] mov r12d, dword ptr [rbp+0x20]
- ;; size=62 bbWeight=1 PerfScore 14.25
+ ;; size=65 bbWeight=1 PerfScore 14.25
G_M29863_IG02: ; bbWeight=1, gcVars=0000E00000000000 {V00 V02 V82}, gcrefRegs=2080 {rdi r13}, byrefRegs=0008 {rbx}, gcvars, byref, isz ; gcrRegs +[rdi] cmp byte ptr [rdi], dil @@ -226,38 +226,36 @@ G_M29863_IG08: ; bbWeight=1, gcVars=0000600000000001 {V00 V09 V82}, gcref mov dword ptr [rbp-0x2C], r15d ;; size=42 bbWeight=1 PerfScore 11.75 G_M29863_IG09: ; bbWeight=92.45, gcrefRegs=2000 {r13}, byrefRegs=0008 {rbx}, byref
- mov rdi, gword ptr [rbp-0x50] - ; gcrRegs +[rdi] - mov dword ptr [rdi+0x60], r12d - lea rdi, bword ptr [rdi+0x30] - ; gcrRegs -[rdi]
+ mov rsi, gword ptr [rbp-0x50] + ; gcrRegs +[rsi] + mov dword ptr [rsi+0x60], r12d + lea rdi, bword ptr [rsi+0x30]
; byrRegs +[rdi] mov rsi, gword ptr [rbp-0x40]
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF ; gcrRegs -[rsi] ; byrRegs -[rdi]
- mov rdi, gword ptr [rbp-0x50] - ; gcrRegs +[rdi] - mov dword ptr [rdi+0x48], r15d - xor eax, eax - mov dword ptr [rdi+0x40], eax - mov dword ptr [rdi+0x44], r14d - mov dword ptr [rdi+0x4C], r15d - mov r15, gword ptr [rdi+0x28]
+ mov rsi, gword ptr [rbp-0x50] + ; gcrRegs +[rsi] + mov dword ptr [rsi+0x48], r15d + xor edi, edi + mov dword ptr [rsi+0x40], edi + mov dword ptr [rsi+0x44], r14d + mov dword ptr [rsi+0x4C], r15d + mov r15, gword ptr [rsi+0x28]
; gcrRegs +[r15] test r15, r15
- jne G_M29863_IG38
+ jne G_M29863_IG33
;; size=55 bbWeight=92.45 PerfScore 1201.80
-G_M29863_IG10: ; bbWeight=62.02, gcrefRegs=2080 {rdi r13}, byrefRegs=0008 {rbx}, byref
+G_M29863_IG10: ; bbWeight=62.02, gcrefRegs=2040 {rsi r13}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[r15]
- mov r15, gword ptr [rdi+0x30]
+ mov r15, gword ptr [rsi+0x30]
; gcrRegs +[r15] cmp gword ptr [r15+0x18], 0 jne G_M29863_IG14 ;; size=15 bbWeight=62.02 PerfScore 372.12 G_M29863_IG11: ; bbWeight=62.40, gcrefRegs=A000 {r13 r15}, byrefRegs=0008 {rbx}, byref
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rsi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.Match call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] @@ -268,71 +266,66 @@ G_M29863_IG11: ; bbWeight=62.40, gcrefRegs=A000 {r13 r15}, byrefRegs=0008 ; GC ptr vars +{V40} mov r15d, dword ptr [r15+0x44] ; gcrRegs -[r15]
- mov rdi, gword ptr [rbp-0x50] - ; gcrRegs +[rdi] - mov rdx, gword ptr [rdi+0x08]
+ mov rcx, gword ptr [rbp-0x50] + ; gcrRegs +[rcx] + mov rdx, gword ptr [rcx+0x08]
; gcrRegs +[rdx] mov gword ptr [rbp-0x78], rdx ; GC ptr vars +{V39} mov rdi, 0xD1FFAB1E ; int[]
- ; gcrRegs -[rdi]
mov esi, 2 call CORINFO_HELP_NEWARR_1_VC
- ; gcrRegs -[rdx]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0 mov gword ptr [rbp-0x88], rax ; GC ptr vars +{V55}
- mov rcx, gword ptr [rbp-0x60] - ; gcrRegs +[rcx] - lea rdi, bword ptr [rcx+0x08]
+ mov rsi, gword ptr [rbp-0x60] + ; gcrRegs +[rsi] + lea rdi, bword ptr [rsi+0x08]
; byrRegs +[rdi] mov rsi, gword ptr [rbp-0x78]
- ; gcrRegs +[rsi]
; GC ptr vars -{V29 V39} call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rcx rsi] - ; byrRegs -[rdi] - xor edi, edi - mov rax, gword ptr [rbp-0x60] - ; gcrRegs +[rax] - mov qword ptr [rax+0x10], rdi - lea rdi, bword ptr [rax+0x18] - ; byrRegs +[rdi] - mov rsi, gword ptr [rbp-0x88] - ; gcrRegs +[rsi] - ; GC ptr vars -{V55} +{V29} - call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi] ; byrRegs -[rdi] xor edi, edi ...

+9 (+1.72%) : 56108.dasm - System.Xml.XmlTextReaderImpl:EatWhitespaces(System.Text.StringBuilder):int:this (Tier1)

@@ -53,7 +53,7 @@ G_M63357_IG03: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, ;; size=7 bbWeight=1 PerfScore 2.00 G_M63357_IG04: ; bbWeight=1.75, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz cmp r14d, dword ptr [r12+0x08]
- jae G_M63357_IG19
+ jae G_M63357_IG21
mov edx, r14d movzx rdx, word ptr [r12+2*rdx+0x10] lea esi, [rdx-0x09] @@ -68,38 +68,23 @@ G_M63357_IG04: ; bbWeight=1.75, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0 ;; size=52 bbWeight=1.75 PerfScore 24.50 G_M63357_IG05: ; bbWeight=1.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz cmp edx, 32
- je SHORT G_M63357_IG14
+ je SHORT G_M63357_IG12
;; size=5 bbWeight=1.50 PerfScore 1.88
-G_M63357_IG06: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r12] - jmp SHORT G_M63357_IG08 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M63357_IG07: ; bbWeight=0.25, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[r12] - inc r14d - lea rdx, bword ptr [rbx+0x1E0] - ; byrRegs +[rdx] - inc dword ptr [rdx] - lea edx, [r14-0x01] - ; byrRegs -[rdx] - mov dword ptr [rbx+0x1E4], edx - jmp SHORT G_M63357_IG04 - ;; size=24 bbWeight=0.25 PerfScore 1.81 -G_M63357_IG08: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M63357_IG06: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r12] cmp r14d, dword ptr [rbx+0x1D4]
- je SHORT G_M63357_IG15
+ je G_M63357_IG22
mov edx, dword ptr [rbx+0x1D0] mov r12d, r14d sub r12d, edx test r12d, r12d
- jle SHORT G_M63357_IG12 - ;; size=26 bbWeight=1 PerfScore 7.75 -G_M63357_IG09: ; bbWeight=0.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ jle SHORT G_M63357_IG10 + ;; size=30 bbWeight=1 PerfScore 7.75 +G_M63357_IG07: ; bbWeight=0.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
test r15, r15
- je SHORT G_M63357_IG11
+ je SHORT G_M63357_IG09
;; size=5 bbWeight=0.75 PerfScore 0.94
-G_M63357_IG10: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M63357_IG08: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbx+0x188] ; gcrRegs +[rsi] mov rdi, r15 @@ -109,16 +94,16 @@ G_M63357_IG10: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi rdi r15] +[rax] ; gcr arg pop 0 ;; size=19 bbWeight=0.50 PerfScore 2.75
-G_M63357_IG11: ; bbWeight=0.75, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M63357_IG09: ; bbWeight=0.75, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] mov dword ptr [rbx+0x1D0], r14d add r13d, r12d ;; size=10 bbWeight=0.75 PerfScore 0.94
-G_M63357_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M63357_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, r13d ;; size=3 bbWeight=1 PerfScore 0.25
-G_M63357_IG13: ; bbWeight=1, epilog, nogc, extend
+G_M63357_IG11: ; bbWeight=1, epilog, nogc, extend
add rsp, 8 pop rbx pop r12 @@ -128,20 +113,96 @@ G_M63357_IG13: ; bbWeight=1, epilog, nogc, extend pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25
-G_M63357_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M63357_IG12: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx r12 r15] inc r14d jmp G_M63357_IG04 ;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M63357_IG15: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r12]
+G_M63357_IG13: ; bbWeight=0.25, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref + inc r14d + lea rdx, bword ptr [rbx+0x1E0] + ; byrRegs +[rdx] + inc dword ptr [rdx] + lea edx, [r14-0x01] + ; byrRegs -[rdx] + mov dword ptr [rbx+0x1E4], edx + jmp G_M63357_IG04 + ;; size=27 bbWeight=0.25 PerfScore 1.81 +G_M63357_IG14: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz + lea edx, [r14+0x01] + cmp edx, dword ptr [r12+0x08] + jae G_M63357_IG21 + lea edx, [r14+0x01] + cmp word ptr [r12+2*rdx+0x10], 10 + jne SHORT G_M63357_IG17 + mov edx, dword ptr [rbx+0x1D0] + mov eax, r14d + sub eax, edx + mov dword ptr [rbp-0x2C], eax + test r15, r15 + je SHORT G_M63357_IG16 + cmp byte ptr [rbx+0x1EF], 0 + jne SHORT G_M63357_IG16 + test eax, eax + jle SHORT G_M63357_IG15 + mov rdi, r15 + ; gcrRegs +[rdi] + mov rsi, r12 + ; gcrRegs +[rsi] + mov ecx, eax + call [System.Text.StringBuilder:Append(ushort[],int,int):System.Text.StringBuilder:this] + ; gcrRegs -[rsi rdi] +[rax] + ; gcr arg pop 0 + add r13d, dword ptr [rbp-0x2C] + ;; size=78 bbWeight=0 PerfScore 0.00 +G_M63357_IG15: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax] + lea edi, [r14+0x01] + mov dword ptr [rbx+0x1D0], edi + ;; size=10 bbWeight=0 PerfScore 0.00 +G_M63357_IG16: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz + add r14d, 2 + jmp SHORT G_M63357_IG20 + ;; size=6 bbWeight=0 PerfScore 0.00 +G_M63357_IG17: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz + lea edi, [r14+0x01] + cmp edi, dword ptr [rbx+0x1D4] + jl SHORT G_M63357_IG18 + cmp byte ptr [rbx+0x1ED], 0 + je SHORT G_M63357_IG22 + ;; size=21 bbWeight=0 PerfScore 0.00 +G_M63357_IG18: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz + cmp byte ptr [rbx+0x1EF], 0 + jne SHORT G_M63357_IG19 + mov edi, r14d + mov word ptr [r12+2*rdi+0x10], 10 + ;; size=20 bbWeight=0 PerfScore 0.00 +G_M63357_IG19: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref + inc r14d + ;; size=3 bbWeight=0 PerfScore 0.00 +G_M63357_IG20: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref + mov rdi, rbx + ; gcrRegs +[rdi] + mov esi, r14d + call [System.Xml.XmlTextReaderImpl:OnNewLine(int):this] + ; gcrRegs -[rdi] + ; gcr arg pop 0 + jmp G_M63357_IG04 + ;; size=17 bbWeight=0 PerfScore 0.00 +G_M63357_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[rbx r12 r15] + call CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=5 bbWeight=0 PerfScore 0.00 +G_M63357_IG22: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rbx r15]
mov edx, dword ptr [rbx+0x1D0] mov r12d, r14d sub r12d, edx test r12d, r12d
- jle SHORT G_M63357_IG17
+ jle SHORT G_M63357_IG24
test r15, r15
- je SHORT G_M63357_IG16
+ je SHORT G_M63357_IG23
mov rsi, gword ptr [rbx+0x188] ; gcrRegs +[rsi] mov rdi, r15 @@ -151,29 +212,29 @@ G_M63357_IG15: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, ; gcrRegs -[rsi rdi] +[rax] ; gcr arg pop 0 ;; size=41 bbWeight=0 PerfScore 0.00
-G_M63357_IG16: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M63357_IG23: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] mov dword ptr [rbx+0x1D0], r14d add r13d, r12d ;; size=10 bbWeight=0 PerfScore 0.00
-G_M63357_IG17: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M63357_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rdi, rbx ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 test eax, eax
- jne SHORT G_M63357_IG18
+ jne SHORT G_M63357_IG25
mov edi, dword ptr [rbx+0x1D4] sub edi, dword ptr [rbx+0x1D0]
- je SHORT G_M63357_IG12
+ je G_M63357_IG10
mov rdi, gword ptr [rbx+0x188] ; gcrRegs +[rdi] mov eax, dword ptr [rbx+0x1D0] cmp eax, dword ptr [rdi+0x08]
- jae SHORT G_M63357_IG19
+ jae SHORT G_M63357_IG21
cmp word ptr [rdi+2*rax+0x10], 13
- je SHORT G_M63357_IG18
+ je SHORT G_M63357_IG25
mov rdi, 0xD1FFAB1E call [<unknown method>] ; gcrRegs -[rdi] +[rax] @@ -187,86 +248,19 @@ G_M63357_IG17: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, call [System.Xml.XmlTextReaderImpl:Throw(System.String,System.String):this] ; gcrRegs -[rax rdx rsi rdi] ; gcr arg pop 0
- ;; size=91 bbWeight=0 PerfScore 0.00 -G_M63357_IG18: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ;; size=95 bbWeight=0 PerfScore 0.00 +G_M63357_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rbx+0x1D0] jmp G_M63357_IG03 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M63357_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[rbx r15] - call CORINFO_HELP_RNGCHKFAIL - ; gcr arg pop 0 - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M63357_IG20: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx r12 r15] - lea edx, [r14+0x01] - cmp edx, dword ptr [r12+0x08] - jae SHORT G_M63357_IG19 - lea edx, [r14+0x01] - cmp word ptr [r12+2*rdx+0x10], 10 - jne SHORT G_M63357_IG23 - mov edx, dword ptr [rbx+0x1D0] - mov eax, r14d - sub eax, edx - mov dword ptr [rbp-0x2C], eax - test r15, r15 - je SHORT G_M63357_IG22 - cmp byte ptr [rbx+0x1EF], 0 - jne SHORT G_M63357_IG22 - test eax, eax - jle SHORT G_M63357_IG21 - mov rdi, r15 - ; gcrRegs +[rdi]
...

+10 (+2.19%) : 700912.dasm - System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (Tier1)

@@ -93,7 +93,7 @@ G_M23943_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M23943_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref movzx r14, di cmp r14d, 256
- jb G_M23943_IG11
+ jb G_M23943_IG23
;; size=17 bbWeight=1 PerfScore 1.50 G_M23943_IG03: ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref mov edi, r14d @@ -120,30 +120,30 @@ G_M23943_IG03: ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, G_M23943_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref xor r12d, r12d test ebx, ebx
- jle G_M23943_IG18
+ jle G_M23943_IG14
;; size=11 bbWeight=1 PerfScore 1.50 G_M23943_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref cmp r12d, ebx
- jae G_M23943_IG29
+ jae G_M23943_IG28
mov edi, r12d movzx rdi, word ptr [r15+2*rdi] movsx rax, di test eax, eax
- jne G_M23943_IG20
+ jne G_M23943_IG16
;; size=29 bbWeight=1 PerfScore 5.00
-G_M23943_IG06: ; bbWeight=0.57, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
+G_M23943_IG06: ; bbWeight=0.57, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov rax, r15 ; byrRegs +[rax] mov edi, ebx inc r12d cmp r12d, edi
- jae G_M23943_IG29
+ jae G_M23943_IG28
mov edi, r12d movzx rdi, word ptr [rax+2*rdi] movsx rdi, di test edi, edi
- jle SHORT G_M23943_IG15 - ;; size=32 bbWeight=0.57 PerfScore 3.29
+ jle G_M23943_IG20 + ;; size=36 bbWeight=0.57 PerfScore 3.29
G_M23943_IG07: ; bbWeight=0.55, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref ; byrRegs -[rax] xor eax, eax @@ -157,7 +157,7 @@ G_M23943_IG08: ; bbWeight=4.05, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, movzx rax, al inc r12d cmp r12d, ebx
- jae G_M23943_IG29
+ jae G_M23943_IG28
mov edi, r12d movzx rdi, word ptr [r15+2*rdi] movsx rdi, di @@ -168,100 +168,11 @@ G_M23943_IG09: ; bbWeight=0.57, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, test eax, eax je SHORT G_M23943_IG13 ;; size=4 bbWeight=0.57 PerfScore 0.72
-G_M23943_IG10: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[r15] - jmp G_M23943_IG25 - ;; size=5 bbWeight=0.19 PerfScore 0.39 -G_M23943_IG11: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref - ; byrRegs +[r15] - mov edi, r14d - call [System.Char:GetLatin1UnicodeCategory(ushort):int] - ; gcr arg pop 0 - mov r13d, eax - jmp G_M23943_IG04 - ;; size=17 bbWeight=0.08 PerfScore 0.44 -G_M23943_IG12: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz - mov edi, eax - neg edi - dec edi - cmp edi, r13d - jne SHORT G_M23943_IG25 - ;; size=11 bbWeight=0.05 PerfScore 0.10 -G_M23943_IG13: ; bbWeight=1.61, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref - inc r12d - cmp r12d, ebx - jl G_M23943_IG05 - ;; size=12 bbWeight=1.61 PerfScore 2.42 -G_M23943_IG14: ; bbWeight=0.61, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ; byrRegs -[r15] - jmp SHORT G_M23943_IG18 - ;; size=2 bbWeight=0.61 PerfScore 1.23 -G_M23943_IG15: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref - ; byrRegs +[r15] - mov eax, 1 - ;; size=5 bbWeight=0.02 PerfScore 0.01 -G_M23943_IG16: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz - neg edi - dec edi - cmp edi, r13d - setne dil - movzx rdi, dil - and eax, edi - inc r12d - cmp r12d, ebx - jae SHORT G_M23943_IG29 - mov edi, r12d - movzx rdi, word ptr [r15+2*rdi] - movsx rdi, di - test edi, edi - jne SHORT G_M23943_IG16 - ;; size=41 bbWeight=0.20 PerfScore 1.47 -G_M23943_IG17: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz - jmp SHORT G_M23943_IG09 - ;; size=2 bbWeight=0.02 PerfScore 0.05 -G_M23943_IG18: ; bbWeight=0.61, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[r15] - xor eax, eax - ;; size=2 bbWeight=0.61 PerfScore 0.15 -G_M23943_IG19: ; bbWeight=0.61, epilog, nogc, extend - add rsp, 8 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=0.61 PerfScore 2.61 -G_M23943_IG20: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, gcvars, byref, isz - ; byrRegs +[r15] - test eax, eax - jle SHORT G_M23943_IG24 - ;; size=4 bbWeight=0.43 PerfScore 0.53 -G_M23943_IG21: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz - cmp eax, 100 - je SHORT G_M23943_IG27 - ;; size=5 bbWeight=0.38 PerfScore 0.47 -G_M23943_IG22: ; bbWeight=0.37, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz - dec eax - cmp r13d, eax - jne SHORT G_M23943_IG13 - ;; size=7 bbWeight=0.37 PerfScore 0.56 -G_M23943_IG23: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ; byrRegs -[r15] - jmp SHORT G_M23943_IG25 - ;; size=2 bbWeight=0.19 PerfScore 0.37 -G_M23943_IG24: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz - ; byrRegs +[r15] - cmp eax, -100 - je SHORT G_M23943_IG30 - jmp SHORT G_M23943_IG12 - ;; size=7 bbWeight=0.05 PerfScore 0.16 -G_M23943_IG25: ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23943_IG10: ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[r15] mov eax, 1 ;; size=5 bbWeight=0.39 PerfScore 0.10
-G_M23943_IG26: ; bbWeight=0.39, epilog, nogc, extend
+G_M23943_IG11: ; bbWeight=0.39, epilog, nogc, extend
add rsp, 8 pop rbx pop r12 @@ -271,33 +182,114 @@ G_M23943_IG26: ; bbWeight=0.39, epilog, nogc, extend pop rbp ret ;; size=15 bbWeight=0.39 PerfScore 1.64
-G_M23943_IG27: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, gcvars, byref
+G_M23943_IG12: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, gcvars, byref, isz
; byrRegs +[r15]
+ mov edi, eax + neg edi + dec edi + cmp edi, r13d + jne SHORT G_M23943_IG10 + ;; size=11 bbWeight=0.05 PerfScore 0.10 +G_M23943_IG13: ; bbWeight=1.61, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref + inc r12d + cmp r12d, ebx + jl G_M23943_IG05 + ;; size=12 bbWeight=1.61 PerfScore 2.42 +G_M23943_IG14: ; bbWeight=0.61, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; byrRegs -[r15] + xor eax, eax + ;; size=2 bbWeight=0.61 PerfScore 0.15 +G_M23943_IG15: ; bbWeight=0.61, epilog, nogc, extend + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.61 PerfScore 2.61 +G_M23943_IG16: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, gcvars, byref, isz + ; byrRegs +[r15] + test eax, eax + jle SHORT G_M23943_IG24 + ;; size=4 bbWeight=0.43 PerfScore 0.53 +G_M23943_IG17: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz + cmp eax, 100 + je SHORT G_M23943_IG25 + ;; size=5 bbWeight=0.38 PerfScore 0.47 +G_M23943_IG18: ; bbWeight=0.37, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz + dec eax + cmp r13d, eax + jne SHORT G_M23943_IG13 + ;; size=7 bbWeight=0.37 PerfScore 0.56 +G_M23943_IG19: ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + ; byrRegs -[r15] + jmp SHORT G_M23943_IG10 + ;; size=2 bbWeight=0.04 PerfScore 0.09 +G_M23943_IG20: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref + ; byrRegs +[r15] + mov eax, 1 + ;; size=5 bbWeight=0.02 PerfScore 0.01 +G_M23943_IG21: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz + neg edi + dec edi + cmp edi, r13d + setne dil + movzx rdi, dil + and eax, edi + inc r12d + cmp r12d, ebx + jae SHORT G_M23943_IG28 + mov edi, r12d + movzx rdi, word ptr [r15+2*rdi] + movsx rdi, di + test edi, edi + jne SHORT G_M23943_IG21 + ;; size=41 bbWeight=0.20 PerfScore 1.47 +G_M23943_IG22: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref + jmp G_M23943_IG09 + ;; size=5 bbWeight=0.02 PerfScore 0.05 +G_M23943_IG23: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref + mov edi, r14d + call [System.Char:GetLatin1UnicodeCategory(ushort):int] + ; gcr arg pop 0 + mov r13d, eax + jmp G_M23943_IG04 + ;; size=17 bbWeight=0.08 PerfScore 0.44 +G_M23943_IG24: ; bbWeight=0.05, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz + cmp eax, -100 + je SHORT G_M23943_IG27 + jmp G_M23943_IG12 + ;; size=10 bbWeight=0.05 PerfScore 0.16 +G_M23943_IG25: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref
mov edi, r14d call [System.Char:IsWhiteSpace(ushort):ubyte] ; gcr arg pop 0 test eax, eax je G_M23943_IG13 ...

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 0 1 -0 +0
benchmarks.run_tiered.linux.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.x64.checked.mch 2 0 0 2 -0 +0
libraries.crossgen2.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.x64.Release.mch 206 183 7 16 -975 +71
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
209 183 7 19 -975 +71

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 34,975 3,135 31,840 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.x64.checked.mch 156,554 60,225 96,329 13 (0.01%) 13 (0.01%)
benchmarks.run_tiered.linux.x64.checked.mch 56,298 42,308 13,990 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 598,040 355,280 242,760 10 (0.00%) 10 (0.00%)
libraries.crossgen2.linux.x64.checked.mch 1,930 0 1,930 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 296,878 6 296,872 0 (0.00%) 0 (0.00%)
libraries_tests.run.linux.x64.Release.mch 766,353 498,383 267,970 111 (0.01%) 111 (0.01%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,396 21,912 283,484 0 (0.00%) 0 (0.00%)
realworld.run.linux.x64.checked.mch 33,215 49 33,166 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.x64.checked.mch 64 0 64 0 (0.00%) 0 (0.00%)
2,249,703 981,298 1,268,405 134 (0.01%) 134 (0.01%)

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

Detail diffs



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

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


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

Detail diffs



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

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


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

Detail diffs



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



windows arm64

Diffs are based on 2,070,850 contexts (937,853 MinOpts, 1,132,997 FullOpts).

MISSED contexts: 139 (0.01%)

Overall (-672 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 46,609,220 -20
coreclr_tests.run.windows.arm64.checked.mch 496,298,628 +0
libraries_tests.run.windows.arm64.Release.mch 326,696,628 -652

FullOpts (-672 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 30,351,028 -20
coreclr_tests.run.windows.arm64.checked.mch 156,624,224 +0
libraries_tests.run.windows.arm64.Release.mch 123,222,780 -652

Example diffs

benchmarks.run_pgo.windows.arm64.checked.mch

-4 (-1.08%) : 66126.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -54,7 +54,7 @@ G_M4144_IG02: ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by add w7, w6, w7 sub w7, w7, #1 ldr w9, [x1, #0x10]
- b G_M4144_IG10
+ b G_M4144_IG08
;; size=24 bbWeight=1 PerfScore 11.00 G_M4144_IG03: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref ldr w4, [x1, #0x1C] @@ -64,51 +64,43 @@ G_M4144_IG03: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, G_M4144_IG04: ; bbWeight=1.00, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz add w5, w5, #1 cmp w4, w5
- bge G_M4144_IG07
+ blt G_M4144_IG14
;; size=12 bbWeight=1.00 PerfScore 2.00
-G_M4144_IG05: ; bbWeight=0.05, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref - b G_M4144_IG15 - ;; size=4 bbWeight=0.05 PerfScore 0.05 -G_M4144_IG06: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz - ldr w5, [x1, #0x1C] - cmp w4, w5 - blt G_M4144_IG15 - ;; size=12 bbWeight=0.10 PerfScore 0.45 -G_M4144_IG07: ; bbWeight=0.91, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG05: ; bbWeight=0.91, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
ldr w10, [x1, #0x20] cmp w3, w10 blt G_M4144_IG04 ;; size=12 bbWeight=0.91 PerfScore 4.10
-G_M4144_IG08: ; bbWeight=0.46, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG06: ; bbWeight=0.46, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
mov w4, w10 ;; size=4 bbWeight=0.46 PerfScore 0.23
-G_M4144_IG09: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG07: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
sxtw w3, w6 ;; size=4 bbWeight=9.10 PerfScore 4.55
-G_M4144_IG10: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG08: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
cmp w7, w3
- blt G_M4144_IG13
+ blt G_M4144_IG11
;; size=8 bbWeight=9.10 PerfScore 13.65
-G_M4144_IG11: ; bbWeight=8.27, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG09: ; bbWeight=8.27, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
ldr w10, [x2, #0x1C] sub w10, w5, w10 ldr w11, [x2, #0x10] ;; size=12 bbWeight=8.27 PerfScore 53.76
-G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG10: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
sxtw w13, w10 cmp w13, w11
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
ldr w14, [x2, #0x14] ldr w12, [x2, #0x20] sub w12, w4, w12 cmp w12, w14
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w13, w13, w14, w12 ldr w14, [x2, #0x18] ldr w12, [x2, #0x24] sub w12, w3, w12 cmp w12, w14
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w13, w13, w14, w12 ubfiz x13, x13, #2, #32 add x13, x13, #40 @@ -116,17 +108,17 @@ G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {} sub w14, w5, w14 ldp w12, w15, [x1, #0x10] cmp w14, w12
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
ldr w12, [x1, #0x20] sub w12, w4, w12 cmp w12, w15
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w14, w14, w15, w12 ldr w12, [x1, #0x18] ldr w15, [x1, #0x24] sub w15, w3, w15 cmp w15, w12
- bhs G_M4144_IG18
+ bhs G_M4144_IG17
madd w14, w14, w12, w15 ubfiz x14, x14, #2, #32 add x14, x14, #40 @@ -134,24 +126,29 @@ G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {} str w14, [x2, x13] add w3, w3, #1 cmp w7, w3
- bge G_M4144_IG12
+ bge G_M4144_IG10
;; size=160 bbWeight=90.90 PerfScore 5090.46
-G_M4144_IG13: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG11: ; bbWeight=9.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
add w4, w4, #1 ldr w3, [x1, #0x20] add w3, w3, w8 sub w3, w3, #1 cmp w3, w4
- bge G_M4144_IG09
+ bge G_M4144_IG07
;; size=24 bbWeight=9.10 PerfScore 54.59
-G_M4144_IG14: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG12: ; bbWeight=0.82, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
b G_M4144_IG03 ;; size=4 bbWeight=0.82 PerfScore 0.82
-G_M4144_IG15: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG13: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz + ldr w5, [x1, #0x1C] + cmp w4, w5 + bge G_M4144_IG05 + ;; size=12 bbWeight=0.10 PerfScore 0.45 +G_M4144_IG14: ; bbWeight=0.10, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref, isz
sub w0, w0, #1
- cbnz w0, G_M4144_IG06
+ cbnz w0, G_M4144_IG13
;; size=8 bbWeight=0.10 PerfScore 0.15
-G_M4144_IG16: ; bbWeight=0, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
+G_M4144_IG15: ; bbWeight=0, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, byref
mov x0, x1 ; gcrRegs +[x0] mov x1, x2 @@ -164,18 +161,18 @@ G_M4144_IG16: ; bbWeight=0, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, by ; gcrRegs -[x0-x1] ; gcr arg pop 0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M4144_IG17: ; bbWeight=0, epilog, nogc, extend
+G_M4144_IG16: ; bbWeight=0, epilog, nogc, extend
ldp fp, lr, [sp], #0x10 add sp, sp, #80 ret lr ;; size=12 bbWeight=0 PerfScore 0.00
-G_M4144_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M4144_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 brk_windows #0 ;; size=8 bbWeight=0 PerfScore 0.00
-Total bytes of code 372, prolog size 24, PerfScore 5249.58, instruction count 93, allocated bytes for code 372 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
+Total bytes of code 368, prolog size 24, PerfScore 5249.53, instruction count 92, allocated bytes for code 368 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
; ============================================================ Unwind Info: @@ -186,7 +183,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 93 (0x0005d) Actual length = 372 (0x000174)
+ Function Length : 92 (0x0005c) Actual length = 368 (0x000170)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-0.28%) : 63201.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindExpressionInternal(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

@@ -139,7 +139,7 @@ ; V127 tmp121 [V127,T121] ( 2, 0 ) ref -> x1 class-hnd single-def "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.QualifiedNameSyntax> ;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V129 tmp123 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-; V130 tmp124 [V130,T09] ( 41, 1.33) ref -> x0 "Single return block return value"
+; V130 tmp124 [V130,T09] ( 42, 1.33) ref -> x0 "Single return block return value"
; V131 tmp125 [V131,T122] ( 2, 0 ) ref -> x1 single-def "argument with side effect" ; V132 tmp126 [V132,T123] ( 2, 0 ) ref -> x1 single-def "argument with side effect" ; V133 tmp127 [V133,T124] ( 2, 0 ) ref -> x2 single-def "argument with side effect" @@ -282,7 +282,7 @@ G_M29879_IG09: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00 ; gcrRegs -[x0] +[x19-x21] mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158
+ bne G_M29879_IG157
b G_M29879_IG137 ;; size=16 bbWeight=0 PerfScore 0.00 G_M29879_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz @@ -291,8 +291,8 @@ G_M29879_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00 beq G_M29879_IG79 mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158 - b G_M29879_IG149
+ bne G_M29879_IG157 + b G_M29879_IG148
;; size=28 bbWeight=0 PerfScore 0.00 G_M29879_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E @@ -312,16 +312,16 @@ G_M29879_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00 G_M29879_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158 - b G_M29879_IG155
+ bne G_M29879_IG157 + b G_M29879_IG154
;; size=16 bbWeight=0 PerfScore 0.00 G_M29879_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #0xD1FFAB1E cmp w24, w1
- beq G_M29879_IG145
+ beq G_M29879_IG144
mov w1, #0xD1FFAB1E cmp w24, w1
- bne G_M29879_IG158
+ bne G_M29879_IG157
b G_M29879_IG130 ;; size=28 bbWeight=0 PerfScore 0.00 G_M29879_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref @@ -2291,24 +2291,19 @@ G_M29879_IG138: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3]
- ;; size=28 bbWeight=0 PerfScore 0.00 -G_M29879_IG139: ; bbWeight=0, epilog, nogc, extend - ldr x25, [sp, #0x78] - ldp x23, x24, [sp, #0x68] - ldp x21, x22, [sp, #0x58] - ldp x19, x20, [sp, #0x48] - ldp fp, lr, [sp], #0x80 - br x3
+ blr x3 + ; gcrRegs -[x1-x2 x19-x21]
; gcr arg pop 0
- ;; size=24 bbWeight=0 PerfScore 0.00 -G_M29879_IG140: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[x0-x2]
+ b G_M29879_IG07 + ;; size=36 bbWeight=0 PerfScore 0.00 +G_M29879_IG139: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] +[x19-x21]
ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG141
+ beq G_M29879_IG140
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2317,7 +2312,7 @@ G_M29879_IG140: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_windows #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG141: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG140: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] @@ -2330,7 +2325,7 @@ G_M29879_IG141: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG142: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG141: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2339,7 +2334,7 @@ G_M29879_IG142: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG143: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG142: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x2] mov x0, x20 ; gcrRegs +[x0] @@ -2352,7 +2347,7 @@ G_M29879_IG143: ; bbWeight=0, gcVars=000000000000000000000000000000000000 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG144: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG143: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2361,7 +2356,7 @@ G_M29879_IG144: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG145: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG144: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x2] mov x0, x20 ; gcrRegs +[x0] @@ -2374,7 +2369,7 @@ G_M29879_IG145: ; bbWeight=0, gcVars=000000000000000000000000000000000000 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG146: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG145: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2383,7 +2378,7 @@ G_M29879_IG146: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG147: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG146: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0-x2] mov x0, x20 ; gcrRegs +[x0] @@ -2396,7 +2391,7 @@ G_M29879_IG147: ; bbWeight=0, gcVars=000000000000000000000000000000000000 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG148: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG147: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2405,14 +2400,14 @@ G_M29879_IG148: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG149: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG148: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0-x2] ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG150
+ beq G_M29879_IG149
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2421,7 +2416,7 @@ G_M29879_IG149: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_windows #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG150: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG149: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] @@ -2434,7 +2429,7 @@ G_M29879_IG150: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG151: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG150: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2443,14 +2438,14 @@ G_M29879_IG151: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG152: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG151: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0-x2] ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG153
+ beq G_M29879_IG152
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2459,7 +2454,7 @@ G_M29879_IG152: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_windows #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG153: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG152: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] @@ -2472,7 +2467,7 @@ G_M29879_IG153: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ;; size=28 bbWeight=0 PerfScore 0.00
-G_M29879_IG154: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG153: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x78] ldp x23, x24, [sp, #0x68] ldp x21, x22, [sp, #0x58] @@ -2481,14 +2476,14 @@ G_M29879_IG154: ; bbWeight=0, epilog, nogc, extend br x3 ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG155: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG154: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0-x2] ldr x0, [x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M29879_IG156
+ beq G_M29879_IG155
mov x0, x1 mov x1, x19 ; gcrRegs +[x1] @@ -2497,7 +2492,7 @@ G_M29879_IG155: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 brk_windows #0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M29879_IG156: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M29879_IG155: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0] +[x19-x21] mov x1, x19 ; gcrRegs +[x1] ...

coreclr_tests.run.windows.arm64.checked.mch

+0 (0.00%) : 31175.dasm - Simple2ArrayTest:Main():int (Tier1-OSR)

@@ -52,7 +52,7 @@ G_M25584_IG05: ; bbWeight=9.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldr w20, [fp, #0x90] // [V05 loc5] ldr w21, [fp, #0xAC] // [V00 loc0] cmp w20, w21
- bge G_M25584_IG12
+ bge G_M25584_IG11
;; size=16 bbWeight=9.10 PerfScore 50.04 G_M25584_IG06: ; bbWeight=8.27, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldp w23, w22, [fp, #0x98] // [V03 loc3], [V02 loc2] @@ -85,27 +85,29 @@ G_M25584_IG09: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, cmp w23, w21 blt G_M25584_IG03 ;; size=12 bbWeight=1.00 PerfScore 2.00
-G_M25584_IG10: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz - add w22, w22, #1 - cmp w22, w21 - bge G_M25584_IG13 - mov w23, wzr - cmp w21, #0 - bgt G_M25584_IG03 - ;; size=24 bbWeight=0.10 PerfScore 0.40 -G_M25584_IG11: ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - b G_M25584_IG10 - ;; size=4 bbWeight=0.04 PerfScore 0.04 -G_M25584_IG12: ; bbWeight=4.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M25584_IG10: ; bbWeight=0.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + b G_M25584_IG13 + ;; size=4 bbWeight=0.09 PerfScore 0.09 +G_M25584_IG11: ; bbWeight=4.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldp w23, w22, [fp, #0x98] // [V03 loc3], [V02 loc2] ldr w24, [fp, #0x94] // [V04 loc4] b G_M25584_IG08 ;; size=12 bbWeight=4.55 PerfScore 22.75
-G_M25584_IG13: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M25584_IG12: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + mov w23, wzr + cmp w21, #0 + bgt G_M25584_IG03 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25584_IG13: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + add w22, w22, #1 + cmp w22, w21 + blt G_M25584_IG12 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25584_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w22, wzr
- b G_M25584_IG25
+ b G_M25584_IG26
;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25584_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -118,7 +120,7 @@ G_M25584_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov w0, #1 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M25584_IG15: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG16: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -127,24 +129,24 @@ G_M25584_IG15: ; bbWeight=0, epilog, nogc, extend add sp, sp, #96 ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-G_M25584_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+G_M25584_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov w23, wzr
- b G_M25584_IG24 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M25584_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - mov w24, wzr - b G_M25584_IG23
+ b G_M25584_IG25
;; size=8 bbWeight=0 PerfScore 0.00 G_M25584_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w20, wzr - b G_M25584_IG22
+ mov w24, wzr + b G_M25584_IG24
;; size=8 bbWeight=0 PerfScore 0.00 G_M25584_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w25, wzr - b G_M25584_IG21
+ mov w20, wzr + b G_M25584_IG23
;; size=8 bbWeight=0 PerfScore 0.00 G_M25584_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ mov w25, wzr + b G_M25584_IG22 + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M25584_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19 ; gcrRegs +[x0] mov w1, w22 @@ -159,29 +161,29 @@ G_M25584_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add w25, w25, #1 str x26, [fp, #0x80] // [V07 loc7] ;; size=40 bbWeight=0 PerfScore 0.00
-G_M25584_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w25, w20
- blt G_M25584_IG20
+ blt G_M25584_IG21
add w20, w20, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w20, w24
- blt G_M25584_IG19
+ blt G_M25584_IG20
add w24, w24, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w24, w23
- blt G_M25584_IG18
+ blt G_M25584_IG19
add w23, w23, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w23, w22
- blt G_M25584_IG17
+ blt G_M25584_IG18
add w22, w22, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w22, w21
- blt G_M25584_IG16
+ blt G_M25584_IG17
mov x0, x19 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for Simple2_Array_Test:test(int[,,,]):int @@ -192,12 +194,12 @@ G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs -[x0 x19] ; gcr arg pop 0 cmp w0, #4
- bne G_M25584_IG14
+ bne G_M25584_IG15
movz x0, #0xD1FFAB1E movk x0, #3 LSL #16 ldr x26, [fp, #0x80] // [V07 loc7] cmp x26, x0
- bne G_M25584_IG14
+ bne G_M25584_IG15
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -209,7 +211,7 @@ G_M25584_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov w0, #100 ;; size=96 bbWeight=0 PerfScore 0.00
-G_M25584_IG26: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG27: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -219,7 +221,7 @@ G_M25584_IG26: ; bbWeight=0, epilog, nogc, extend ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-Total bytes of code 512, prolog size 28, PerfScore 883.53, instruction count 128, allocated bytes for code 512 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
+Total bytes of code 512, prolog size 28, PerfScore 883.57, instruction count 128, allocated bytes for code 512 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
; ============================================================ Unwind Info:

+0 (0.00%) : 286051.dasm - JitTestlcsmixedlcs_cs.LCS:TestEntryPoint():int (Tier1-OSR)

@@ -101,7 +101,7 @@ ; ; Lcl frame size = 48
-G_M23463_IG01: ; bbWeight=1, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M23463_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x90]! stp x19, x20, [sp, #0x40] stp x21, x22, [sp, #0x50] @@ -152,11 +152,11 @@ G_M23463_IG05: ; bbWeight=2.38, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b ldp w2, w6, [x21, #0x10] sxtw w27, w2 cmp w5, w27
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w2, [x21, #0x1C] sub w7, w4, w2 cmp w7, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w2, w5, w6, w7 ubfiz x2, x2, #3, #32 add x2, x2, #32 @@ -168,11 +168,11 @@ G_M23463_IG05: ; bbWeight=2.38, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b sub w8, w0, w5 ldp w0, w5, [x2, #0x10] cmp w8, w0
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w0, [x2, #0x1C] sub w9, w1, w0 cmp w9, w5
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w0, w8, w5, w9 ubfiz x0, x0, #3, #32 add x0, x0, #32 @@ -203,10 +203,10 @@ G_M23463_IG05: ; bbWeight=2.38, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b stp w5, w4, [fp, #0x24] // [V31 tmp23], [V30 tmp22] ldp w2, w0, [x20, #0x20] cmp w25, #6
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w1, [x20, #0x28] cmp w25, #7
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w6, [x20, #0x2C] stp w2, w0, [fp, #0x30] // [V12 tmp4], [V12 tmp4+0x04] stp w1, w6, [fp, #0x38] // [V12 tmp4+0x08], [V12 tmp4+0x0c] @@ -239,10 +239,10 @@ G_M23463_IG06: ; bbWeight=14.29, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, ;; size=4 bbWeight=14.29 PerfScore 14.29 G_M23463_IG07: ; bbWeight=14.29, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=0000 {}, byref, isz cmp w24, #5
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w2, [x19, #0x24] cmp w25, #5
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w0, [x20, #0x24] cmp w2, w0 bge G_M23463_IG10 @@ -255,12 +255,12 @@ G_M23463_IG09: ; bbWeight=85.71, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, ldp w3, w4, [x19, #0x10] sub w5, w3, w27 cmp w5, w28
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w6, [x21, #0x14] ldr w2, [x21, #0x1C] sub w7, w4, w2 cmp w7, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w2, w5, w6, w7 ubfiz x2, x2, #3, #32 add x2, x2, #32 @@ -271,31 +271,31 @@ G_M23463_IG09: ; bbWeight=85.71, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, sub w0, w8, w0 ldp w1, w3, [x2, #0x10] cmp w0, w1
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w1, [x2, #0x1C] sub w1, w9, w1 cmp w1, w3
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w0, w0, w3, w1 ubfiz x0, x0, #3, #32 add x0, x0, #32 ldr x2, [x2, x0] ldp w0, w1, [x19, #0x20] cmp w25, #6
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w3, [x20, #0x28] cmp w25, #7
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr w4, [x20, #0x2C] ldr w5, [x2, #0x18] sub w0, w0, w5 ldp w5, w6, [x2, #0x10] cmp w0, w5
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w5, [x2, #0x1C] sub w1, w1, w5 cmp w1, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w0, w0, w6, w1 ubfiz x0, x0, #3, #32 add x0, x0, #32 @@ -361,9 +361,9 @@ G_M23463_IG13: ; bbWeight=0.56, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b cmp w0, w2 blt G_M23463_IG12 ;; size=28 bbWeight=0.56 PerfScore 5.30
-G_M23463_IG14: ; bbWeight=0.05, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=18000000 {x27 x28}, byref
+G_M23463_IG14: ; bbWeight=0.08, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=18000000 {x27 x28}, byref
b G_M23463_IG17
- ;; size=4 bbWeight=0.05 PerfScore 0.05
+ ;; size=4 bbWeight=0.08 PerfScore 0.08
G_M23463_IG15: ; bbWeight=0.39, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, byrefRegs=10000000 {x28}, byref ; byrRegs -[x27] add x27, x19, #24 @@ -377,11 +377,11 @@ G_M23463_IG16: ; bbWeight=0.09, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b sub w2, w2, w4 ldp w4, w6, [x21, #0x10] cmp w2, w4
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
ldr w4, [x21, #0x1C] sub w4, w0, w4 cmp w4, w6
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
madd w2, w2, w6, w4 ubfiz x2, x2, #3, #32 add x2, x2, #32 @@ -443,38 +443,14 @@ G_M23463_IG20: ; bbWeight=0.02, gcrefRegs=F80000 {x19 x20 x21 x22 x23}, b ldr w0, [x20, #0x10] ; byrRegs -[x0] cmp w1, w0
- bge G_M23463_IG22
+ bge G_M23463_IG27
b G_M23463_IG19 ;; size=32 bbWeight=0.02 PerfScore 0.23
-G_M23463_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19-x23]
+G_M23463_IG21: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x19 x22]
; byrRegs -[x3 x27-x28]
- bl CORINFO_HELP_RNGCHKFAIL - ; gcr arg pop 0 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M23463_IG22: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefRegs=0000 {}, byref - ; gcrRegs +[x20-x23] - mov x0, x22 - ; gcrRegs +[x0] - mov x1, x21 - ; gcrRegs +[x1] - mov x2, x23 - ; gcrRegs +[x2] - mov x3, x20 - ; gcrRegs +[x3] - movz x4, #0xD1FFAB1E // code for JitTest_lcsmixed_lcs_cs.LCS:findLCS(int[,,,][,,,],int[,][,][,][,],ushort[][],int[]) - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x3 x22] - ; gcr arg pop 0 - mov w1, wzr - b G_M23463_IG24 - ;; size=44 bbWeight=0 PerfScore 0.00 -G_M23463_IG23: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
cmp w1, w25
- bhs G_M23463_IG21
+ bhs G_M23463_IG26
add x0, x20, #16 ; byrRegs +[x0] ubfiz x2, x1, #2, #32 @@ -484,13 +460,13 @@ G_M23463_IG23: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 str w2, [x0] add w1, w1, #1 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M23463_IG24: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
+G_M23463_IG22: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0] cmp w1, #8
- blt G_M23463_IG23
+ blt G_M23463_IG21
ldr w1, [x23, #0x08] cmp w1, #0
- bls G_M23463_IG21
+ bls G_M23463_IG26
ldr x1, [x23, #0x10] ; gcrRegs +[x1] mov x0, x21 @@ -517,7 +493,7 @@ G_M23463_IG24: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 blr x2 ; gcrRegs -[x1] ; gcr arg pop 0
- cbz w0, G_M23463_IG26
+ cbz w0, G_M23463_IG24
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -529,7 +505,7 @@ G_M23463_IG24: ; bbWeight=0, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=00 ; gcr arg pop 0 mov w0, #100 ;; size=128 bbWeight=0 PerfScore 0.00
-G_M23463_IG25: ; bbWeight=0, epilog, nogc, extend
+G_M23463_IG23: ; bbWeight=0, epilog, nogc, extend
ldp x27, x28, [sp, #0x80] ldp x25, x26, [sp, #0x70] ldp x23, x24, [sp, #0x60] @@ -539,7 +515,7 @@ G_M23463_IG25: ; bbWeight=0, epilog, nogc, extend add sp, sp, #0xD1FFAB1E ret lr ;; size=32 bbWeight=0 PerfScore 0.00
-G_M23463_IG26: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M23463_IG24: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -551,7 +527,7 @@ G_M23463_IG26: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, ; gcr arg pop 0 mov w0, wzr ;; size=36 bbWeight=0 PerfScore 0.00
-G_M23463_IG27: ; bbWeight=0, epilog, nogc, extend
+G_M23463_IG25: ; bbWeight=0, epilog, nogc, extend
ldp x27, x28, [sp, #0x80] ldp x25, x26, [sp, #0x70] ldp x23, x24, [sp, #0x60] @@ -561,8 +537,32 @@ G_M23463_IG27: ; bbWeight=0, epilog, nogc, extend add sp, sp, #0xD1FFAB1E ret lr ;; size=32 bbWeight=0 PerfScore 0.00
+G_M23463_IG26: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + bl CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M23463_IG27: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefRegs=0000 {}, byref + ; gcrRegs +[x20-x23] + mov x0, x22 + ; gcrRegs +[x0]
...

+0 (0.00%) : 27440.dasm - Simple2ArrayTest:TestEntryPoint():int (Tier1-OSR)

@@ -82,22 +82,24 @@ G_M25589_IG09: ; bbWeight=1.00, gcrefRegs=1000000 {x24}, byrefRegs=0000 { cmp w22, w21 blt G_M25589_IG03 ;; size=12 bbWeight=1.00 PerfScore 2.00
-G_M25589_IG10: ; bbWeight=0.10, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz - add w23, w23, #1 - cmp w23, w21 - bge G_M25589_IG12
+G_M25589_IG10: ; bbWeight=0.09, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref + b G_M25589_IG12 + ;; size=4 bbWeight=0.09 PerfScore 0.09 +G_M25589_IG11: ; bbWeight=0.10, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
mov w22, wzr cmp w21, #0 bgt G_M25589_IG03
- ;; size=24 bbWeight=0.10 PerfScore 0.40 -G_M25589_IG11: ; bbWeight=0.04, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref - b G_M25589_IG10 - ;; size=4 bbWeight=0.04 PerfScore 0.04 -G_M25589_IG12: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
+ ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25589_IG12: ; bbWeight=0.10, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz + add w23, w23, #1 + cmp w23, w21 + blt G_M25589_IG11 + ;; size=12 bbWeight=0.10 PerfScore 0.20 +G_M25589_IG13: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
mov w23, wzr
- b G_M25589_IG24
+ b G_M25589_IG25
;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25589_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x24] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -110,7 +112,7 @@ G_M25589_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov w0, #1 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M25589_IG14: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG15: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -119,24 +121,24 @@ G_M25589_IG14: ; bbWeight=0, epilog, nogc, extend add sp, sp, #96 ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-G_M25589_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
+G_M25589_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x24] mov w22, wzr
- b G_M25589_IG23 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M25589_IG16: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref - mov w20, wzr - b G_M25589_IG22
+ b G_M25589_IG24
;; size=8 bbWeight=0 PerfScore 0.00 G_M25589_IG17: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
- mov w19, wzr - b G_M25589_IG21
+ mov w20, wzr + b G_M25589_IG23
;; size=8 bbWeight=0 PerfScore 0.00 G_M25589_IG18: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
- mov w26, wzr - b G_M25589_IG20
+ mov w19, wzr + b G_M25589_IG22
;; size=8 bbWeight=0 PerfScore 0.00 G_M25589_IG19: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
+ mov w26, wzr + b G_M25589_IG21 + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M25589_IG20: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
mov x0, x24 ; gcrRegs +[x0] mov w1, w23 @@ -149,33 +151,33 @@ G_M25589_IG19: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, add x25, x25, w0, SXTW add w26, w26, #1 ;; size=32 bbWeight=0 PerfScore 0.00
-G_M25589_IG20: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG21: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w26, w19
- blt G_M25589_IG19
+ blt G_M25589_IG20
add w19, w19, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG21: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG22: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w19, w20
- blt G_M25589_IG18
+ blt G_M25589_IG19
add w20, w20, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG22: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG23: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w20, w22
- blt G_M25589_IG17
+ blt G_M25589_IG18
add w22, w22, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG23: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG24: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w22, w23
- blt G_M25589_IG16
+ blt G_M25589_IG17
add w23, w23, #1 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25589_IG24: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG25: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
cmp w23, w21
- blt G_M25589_IG15
+ blt G_M25589_IG16
movz x0, #0xD1FFAB1E movk x0, #3 LSL #16 cmp x25, x0
- bne G_M25589_IG13
+ bne G_M25589_IG14
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -188,7 +190,7 @@ G_M25589_IG24: ; bbWeight=0, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, ; gcr arg pop 0 mov w0, #100 ;; size=60 bbWeight=0 PerfScore 0.00
-G_M25589_IG25: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG26: ; bbWeight=0, epilog, nogc, extend
ldp x25, x26, [sp, #0x40] ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] @@ -198,7 +200,7 @@ G_M25589_IG25: ; bbWeight=0, epilog, nogc, extend ret lr ;; size=28 bbWeight=0 PerfScore 0.00
-Total bytes of code 444, prolog size 44, PerfScore 772.00, instruction count 111, allocated bytes for code 444 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
+Total bytes of code 444, prolog size 44, PerfScore 772.05, instruction count 111, allocated bytes for code 444 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
; ============================================================ Unwind Info:

libraries_tests.run.windows.arm64.Release.mch

-4 (-1.16%) : 65509.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -43,9 +43,9 @@ G_M8081_IG03: ; bbWeight=1.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs +[x21] ldr x0, [x21] cmp x0, x20
- bne G_M8081_IG16
+ bne G_M8081_IG15
ldrb w0, [x21, #0x4C]
- cbnz w0, G_M8081_IG17
+ cbnz w0, G_M8081_IG16
ldr x0, [x21, #0x30] ; gcrRegs +[x0] add x0, x0, #52 @@ -55,10 +55,10 @@ G_M8081_IG03: ; bbWeight=1.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; byrRegs -[x0] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M8081_IG18
+ beq G_M8081_IG17
ldp w0, w1, [x21, #0x38] cmp w0, w1
- beq G_M8081_IG09
+ beq G_M8081_IG10
;; size=60 bbWeight=1.05 PerfScore 25.60 G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ldr x0, [x21, #0x28] @@ -67,7 +67,7 @@ G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 sxtw w2, w1 ldr w3, [x0, #0x08] cmp w2, w3
- bhs G_M8081_IG15
+ bhs G_M8081_IG14
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -82,22 +82,33 @@ G_M8081_IG05: ; bbWeight=1.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, add w1, w1, #1 str w1, [x19, #0x24] cmn w0, #1
- beq G_M8081_IG13
+ beq G_M8081_IG12
;; size=20 bbWeight=1.05 PerfScore 6.27 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.04 PerfScore 1.57 G_M8081_IG07: ; bbWeight=1.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #13 beq G_M8081_IG03 ;; size=8 bbWeight=1.02 PerfScore 1.53
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- b G_M8081_IG11 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x19 x21]
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 5.00 +G_M8081_IG09: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + str wzr, [x19, #0x24] + ldr w0, [x19, #0x20] + add w0, w0, #1 + str w0, [x19, #0x20] + b G_M8081_IG03 + ;; size=20 bbWeight=0.02 PerfScore 0.15 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x21]
mov x0, x21 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for System.IO.StreamReader:ReadBuffer():int:this @@ -109,41 +120,26 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 ; gcr arg pop 0 cbnz w0, G_M8081_IG04 ;; size=28 bbWeight=0.00 PerfScore 0.01
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] movn w0, #0 b G_M8081_IG05 ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=1.00 PerfScore 5.00 -G_M8081_IG12: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[x19] - str wzr, [x19, #0x24] - ldr w0, [x19, #0x20] - add w0, w0, #1 - str w0, [x19, #0x20] - b G_M8081_IG03 - ;; size=20 bbWeight=0.02 PerfScore 0.15 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movn w0, #0 ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] mov x0, x21 ; gcrRegs +[x0] @@ -155,7 +151,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {} ; gcr arg pop 0 b G_M8081_IG05 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -168,7 +164,7 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by ; gcr arg pop 0 brk_windows #0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.IO.StreamReader:ThrowAsyncIOInProgress() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -178,7 +174,7 @@ G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_windows #0 ;; size=24 bbWeight=0 PerfScore 0.00
-Total bytes of code 344, prolog size 20, PerfScore 63.10, instruction count 86, allocated bytes for code 344 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 340, prolog size 20, PerfScore 62.60, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info: @@ -189,7 +185,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 86 (0x00056) Actual length = 344 (0x000158)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-1.16%) : 88749.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -43,9 +43,9 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs +[x21] ldr x0, [x21] cmp x0, x20
- bne G_M8081_IG16
+ bne G_M8081_IG15
ldrb w0, [x21, #0x4C]
- cbnz w0, G_M8081_IG17
+ cbnz w0, G_M8081_IG16
ldr x0, [x21, #0x30] ; gcrRegs +[x0] add x0, x0, #52 @@ -55,10 +55,10 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; byrRegs -[x0] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M8081_IG18
+ beq G_M8081_IG17
ldp w0, w1, [x21, #0x38] cmp w0, w1
- beq G_M8081_IG09
+ beq G_M8081_IG10
;; size=60 bbWeight=1.04 PerfScore 25.60 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ldr x0, [x21, #0x28] @@ -67,7 +67,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 sxtw w2, w1 ldr w3, [x0, #0x08] cmp w2, w3
- bhs G_M8081_IG15
+ bhs G_M8081_IG14
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -82,22 +82,33 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, add w1, w1, #1 str w1, [x19, #0x24] cmn w0, #1
- beq G_M8081_IG13
+ beq G_M8081_IG12
;; size=20 bbWeight=1.04 PerfScore 6.27 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.04 PerfScore 1.57 G_M8081_IG07: ; bbWeight=1.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #13 beq G_M8081_IG03 ;; size=8 bbWeight=1.02 PerfScore 1.53
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- b G_M8081_IG11 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M8081_IG09: ; bbWeight=0.02, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x19 x21]
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 5.00 +G_M8081_IG09: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + str wzr, [x19, #0x24] + ldr w0, [x19, #0x20] + add w0, w0, #1 + str w0, [x19, #0x20] + b G_M8081_IG03 + ;; size=20 bbWeight=0.02 PerfScore 0.15 +G_M8081_IG10: ; bbWeight=0.02, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x21]
mov x0, x21 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for System.IO.StreamReader:ReadBuffer():int:this @@ -109,41 +120,26 @@ G_M8081_IG09: ; bbWeight=0.02, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 ; gcr arg pop 0 cbnz w0, G_M8081_IG04 ;; size=28 bbWeight=0.02 PerfScore 0.11
-G_M8081_IG10: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M8081_IG11: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] movn w0, #0 b G_M8081_IG05 ;; size=8 bbWeight=0.01 PerfScore 0.01
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=1.00 PerfScore 5.00 -G_M8081_IG12: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[x19] - str wzr, [x19, #0x24] - ldr w0, [x19, #0x20] - add w0, w0, #1 - str w0, [x19, #0x20] - b G_M8081_IG03 - ;; size=20 bbWeight=0.02 PerfScore 0.15 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movn w0, #0 ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] mov x0, x21 ; gcrRegs +[x0] @@ -155,7 +151,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {} ; gcr arg pop 0 b G_M8081_IG05 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -168,7 +164,7 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by ; gcr arg pop 0 brk_windows #0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.IO.StreamReader:ThrowAsyncIOInProgress() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -178,7 +174,7 @@ G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_windows #0 ;; size=24 bbWeight=0 PerfScore 0.00
-Total bytes of code 344, prolog size 20, PerfScore 63.19, instruction count 86, allocated bytes for code 344 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 340, prolog size 20, PerfScore 62.69, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info: @@ -189,7 +185,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 86 (0x00056) Actual length = 344 (0x000158)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-1.16%) : 89173.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -43,9 +43,9 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcrRegs +[x21] ldr x0, [x21] cmp x0, x20
- bne G_M8081_IG16
+ bne G_M8081_IG15
ldrb w0, [x21, #0x4C]
- cbnz w0, G_M8081_IG17
+ cbnz w0, G_M8081_IG16
ldr x0, [x21, #0x30] ; gcrRegs +[x0] add x0, x0, #52 @@ -55,10 +55,10 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; byrRegs -[x0] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M8081_IG18
+ beq G_M8081_IG17
ldp w0, w1, [x21, #0x38] cmp w0, w1
- beq G_M8081_IG09
+ beq G_M8081_IG10
;; size=60 bbWeight=1.04 PerfScore 25.59 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz ldr x0, [x21, #0x28] @@ -67,7 +67,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 sxtw w2, w1 ldr w3, [x0, #0x08] cmp w2, w3
- bhs G_M8081_IG15
+ bhs G_M8081_IG14
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -82,22 +82,33 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, add w1, w1, #1 str w1, [x19, #0x24] cmn w0, #1
- beq G_M8081_IG13
+ beq G_M8081_IG12
;; size=20 bbWeight=1.04 PerfScore 6.27 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.04 PerfScore 1.57 G_M8081_IG07: ; bbWeight=1.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w0, #13 beq G_M8081_IG03 ;; size=8 bbWeight=1.02 PerfScore 1.53
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x19]
- b G_M8081_IG11 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x19 x21]
+ ldr x21, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=1.00 PerfScore 5.00 +G_M8081_IG09: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19] + str wzr, [x19, #0x24] + ldr w0, [x19, #0x20] + add w0, w0, #1 + str w0, [x19, #0x20] + b G_M8081_IG03 + ;; size=20 bbWeight=0.02 PerfScore 0.14 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[x21]
mov x0, x21 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for System.IO.StreamReader:ReadBuffer():int:this @@ -109,41 +120,26 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 ; gcr arg pop 0 cbnz w0, G_M8081_IG04 ;; size=28 bbWeight=0.00 PerfScore 0.01
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] movn w0, #0 b G_M8081_IG05 ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=1.00 PerfScore 5.00 -G_M8081_IG12: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[x19] - str wzr, [x19, #0x24] - ldr w0, [x19, #0x20] - add w0, w0, #1 - str w0, [x19, #0x20] - b G_M8081_IG03 - ;; size=20 bbWeight=0.02 PerfScore 0.14 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] movn w0, #0 ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
ldr x21, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x30 ret lr ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] mov x0, x21 ; gcrRegs +[x0] @@ -155,7 +151,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {} ; gcr arg pop 0 b G_M8081_IG05 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x21] mov x0, x21 ; gcrRegs +[x0] @@ -168,7 +164,7 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, by ; gcr arg pop 0 brk_windows #0 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E // code for System.IO.StreamReader:ThrowAsyncIOInProgress() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -178,7 +174,7 @@ G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref brk_windows #0 ;; size=24 bbWeight=0 PerfScore 0.00
-Total bytes of code 344, prolog size 20, PerfScore 63.06, instruction count 86, allocated bytes for code 344 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 340, prolog size 20, PerfScore 62.56, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info: @@ -189,7 +185,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 86 (0x00056) Actual length = 344 (0x000158)
+ Function Length : 85 (0x00055) Actual length = 340 (0x000154)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+0 (0.00%) : 445824.dasm - System.Globalization.CompareInfo:StartsWithOrdinalHelper(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],int,ulong):ubyte:this (Tier1)

@@ -97,7 +97,7 @@ G_M16885_IG02: ; bbWeight=1, gcrefRegs=200000 {x21}, byrefRegs=1800000 {x blr x1 ; gcr arg pop 0 ldrb w0, [x21, #0x2C]
- cbz w0, G_M16885_IG22
+ cbz w0, G_M16885_IG21
tst w22, #4 cset x0, eq ;; size=68 bbWeight=1 PerfScore 17.50 @@ -125,14 +125,14 @@ G_M16885_IG04: ; bbWeight=1.00, gcrefRegs=200000 {x21}, byrefRegs=0000 {} mov w7, #128 cmp w5, #128 ccmp w6, w7, z, lt
- bge G_M16885_IG20
+ bge G_M16885_IG19
movz x7, #0xD1FFAB1E movk x7, #0xD1FFAB1E LSL #16 movk x7, #0xD1FFAB1E LSL #32 ldrb w8, [x7, w5, UXTW #2]
- cbnz w8, G_M16885_IG20
+ cbnz w8, G_M16885_IG19
ldrb w7, [x7, w6, UXTW #2]
- cbnz w7, G_M16885_IG20
+ cbnz w7, G_M16885_IG19
cmp w5, w6 beq G_M16885_IG10 ;; size=60 bbWeight=1.00 PerfScore 19.48 @@ -146,14 +146,14 @@ G_M16885_IG05: ; bbWeight=0.74, gcrefRegs=200000 {x21}, byrefRegs=0000 {} G_M16885_IG06: ; bbWeight=0.63, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz ldrh w0, [x2, #0x02] cmp w0, #128
- bge G_M16885_IG20
+ bge G_M16885_IG19
;; size=12 bbWeight=0.63 PerfScore 2.85 G_M16885_IG07: ; bbWeight=0.74, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz ubfiz x0, x19, #1, #32 add x0, x1, x0 sub x0, x0, #2 cmp x0, x4
- bhi G_M16885_IG18
+ bhi G_M16885_IG17
;; size=20 bbWeight=0.74 PerfScore 2.58 G_M16885_IG08: ; bbWeight=0.74, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -183,16 +183,16 @@ G_M16885_IG12: ; bbWeight=0.26, gcrefRegs=200000 {x21}, byrefRegs=0000 {} ble G_M16885_IG13 ldrh w0, [x2] cmp w0, #128
- bge G_M16885_IG20
+ bge G_M16885_IG19
movz x7, #0xD1FFAB1E movk x7, #0xD1FFAB1E LSL #16 movk x7, #0xD1FFAB1E LSL #32 ldrb w0, [x7, w0, UXTW #2]
- cbnz w0, G_M16885_IG20
+ cbnz w0, G_M16885_IG19
;; size=40 bbWeight=0.26 PerfScore 2.96 G_M16885_IG13: ; bbWeight=0.26, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x21]
- cbnz x25, G_M16885_IG19
+ cbnz x25, G_M16885_IG18
;; size=4 bbWeight=0.26 PerfScore 0.26 G_M16885_IG14: ; bbWeight=0.26, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #1 @@ -209,30 +209,26 @@ G_M16885_IG16: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=200 ; gcrRegs +[x21] ldrh w2, [x4] cmp w2, #128
- bge G_M16885_IG20
+ bge G_M16885_IG19
movz x7, #0xD1FFAB1E movk x7, #0xD1FFAB1E LSL #16 movk x7, #0xD1FFAB1E LSL #32 ldrb w4, [x7, w2, UXTW #2]
- cbnz w4, G_M16885_IG20 - ;; size=32 bbWeight=0.01 PerfScore 0.06 -G_M16885_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[x21]
+ cbnz w4, G_M16885_IG19
b G_M16885_IG08
- ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M16885_IG18: ; bbWeight=0.01, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x21]
+ ;; size=36 bbWeight=0.01 PerfScore 0.06 +G_M16885_IG17: ; bbWeight=0.01, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref, isz
ldrh w0, [x4, #0x02] cmp w0, #128
- bge G_M16885_IG20
+ bge G_M16885_IG19
b G_M16885_IG08 ;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M16885_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M16885_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] str w19, [x25] b G_M16885_IG14 ;; size=8 bbWeight=0 PerfScore 0.00
-G_M16885_IG20: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M16885_IG19: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21] ldr x0, [x21, #0x20] mov w2, w19 @@ -247,7 +243,7 @@ G_M16885_IG20: ; bbWeight=0, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, b ; gcrRegs -[x21] ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M16885_IG21: ; bbWeight=0, epilog, nogc, extend
+G_M16885_IG20: ; bbWeight=0, epilog, nogc, extend
ldr x25, [sp, #0x58] ldp x23, x24, [sp, #0x48] ldp x21, x22, [sp, #0x38] @@ -255,14 +251,14 @@ G_M16885_IG21: ; bbWeight=0, epilog, nogc, extend ldp fp, lr, [sp], #0x60 ret lr ;; size=24 bbWeight=0 PerfScore 0.00
-G_M16885_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=200000 {x21}, byrefRegs=1800000 {x23 x24}, gcvars, byref
+G_M16885_IG21: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=200000 {x21}, byrefRegs=1800000 {x23 x24}, gcvars, byref
; gcrRegs +[x21] ; byrRegs +[x23-x24] mov w0, wzr b G_M16885_IG03 ;; size=8 bbWeight=0 PerfScore 0.00
-Total bytes of code 548, prolog size 56, PerfScore 80.80, instruction count 137, allocated bytes for code 548 (MethodHash=20c8be0a) for method System.Globalization.CompareInfo:StartsWithOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong):ubyte:this (Tier1)
+Total bytes of code 548, prolog size 56, PerfScore 80.81, instruction count 137, allocated bytes for code 548 (MethodHash=20c8be0a) for method System.Globalization.CompareInfo:StartsWithOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong):ubyte:this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 615500.dasm - System.Text.RegularExpressions.RegexParser:ScanOptions():this (Tier1)

@@ -95,14 +95,12 @@ G_M27765_IG12: ; bbWeight=1.18, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b ldr w3, [x3, #0x08] ; gcrRegs -[x3] cmp w2, w3
- blt G_M27765_IG03
+ bge G_M27765_IG10
;; size=32 bbWeight=1.18 PerfScore 17.66
-G_M27765_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[x0] - b G_M27765_IG10
+G_M27765_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref + b G_M27765_IG03
;; size=4 bbWeight=0.50 PerfScore 0.50 G_M27765_IG14: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
- ; byrRegs +[x0]
cbz w1, G_M27765_IG11 ;; size=4 bbWeight=0.15 PerfScore 0.15 G_M27765_IG15: ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref

+16 (+1.56%) : 482255.dasm - System.Uri:CreateUriInfo(ulong):this (Tier1)

@@ -17,9 +17,9 @@ ; V05 loc3 [V05,T27] ( 3, 0.81) ubyte -> x3 ; V06 loc4 [V06,T04] ( 7, 7 ) long -> x0 ; V07 loc5 [V07,T38] ( 2, 0.22) int -> x0
-; V08 loc6 [V08,T31] ( 2, 0.58) int -> x2
+; V08 loc6 [V08,T31] ( 2, 0.58) int -> x23
; V09 loc7 [V09,T22] ( 4, 1.17) long -> x0
-; V10 loc8 [V10 ] ( 3, 1.53) byref -> [fp+0x18] must-init pinned
+; V10 loc8 [V10 ] ( 3, 1.53) byref -> [fp+0x10] must-init pinned
; V11 loc9 [V11,T32] ( 8, 0.53) int -> x1 ; V12 loc10 [V12,T37] ( 3, 0.30) int -> x2 ;* V13 loc11 [V13 ] ( 0, 0 ) long -> zero-ref @@ -27,7 +27,7 @@ ;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Uri+UriInfo> ; V17 tmp2 [V17,T05] ( 4, 6.75) int -> x23 "impSpillLclRefs"
-; V18 tmp3 [V18,T41] ( 3, 0.09) byref -> x1 "dup spill"
+; V18 tmp3 [V18,T41] ( 3, 0.09) byref -> x0 "dup spill"
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String> ;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref single-def ; V21 tmp6 [V21,T24] ( 3, 1.02) long -> x0 @@ -51,32 +51,34 @@ ;* V39 tmp24 [V39,T39] ( 0, 0 ) ref -> zero-ref "arr expr" ; V40 tmp25 [V40,T18] ( 3, 0.46) ref -> x0 "arr expr" ; V41 tmp26 [V41,T16] ( 2, 2.04) long -> x0 "Cast away GC"
-; V42 cse0 [V42,T29] ( 3, 0.70) int -> x3 "CSE - conservative"
+; V42 cse0 [V42,T29] ( 3, 0.70) int -> x27 "CSE - conservative"
; V43 cse1 [V43,T36] ( 3, 0.35) int -> x1 "CSE - conservative"
-; V44 cse2 [V44,T30] ( 3, 0.61) int -> x0 "CSE - conservative"
+; V44 cse2 [V44,T30] ( 3, 0.61) int -> x1 "CSE - conservative"
; V45 cse3 [V45,T08] ( 2, 1.69) ref -> x0 "CSE - aggressive" ; V46 cse4 [V46,T19] ( 4, 1.02) ref -> x0 multi-def "CSE - moderate" ; V47 cse5 [V47,T35] ( 2, 0.24) ref -> x1 "CSE - conservative"
-; V48 cse6 [V48,T10] ( 5, 3.53) int -> x1 "CSE - aggressive" -; V49 cse7 [V49,T09] ( 5, 3.53) byref -> x0 "CSE - aggressive"
+; V48 cse6 [V48,T10] ( 5, 3.53) int -> x25 "CSE - aggressive" +; V49 cse7 [V49,T09] ( 5, 3.53) byref -> x26 "CSE - aggressive"
; V50 cse8 [V50,T17] ( 2, 2 ) byref -> x1 hoist "CSE - moderate"
-; V51 cse9 [V51,T13] ( 3, 2.35) int -> x2 "CSE - moderate" -; V52 cse10 [V52,T26] ( 3, 0.85) int -> x1 "CSE - conservative" -; V53 cse11 [V53,T25] ( 3, 0.85) byref -> x0 "CSE - conservative"
+; V51 cse9 [V51,T13] ( 3, 2.35) int -> x0 "CSE - moderate" +; V52 cse10 [V52,T26] ( 3, 0.85) int -> x27 "CSE - conservative" +; V53 cse11 [V53,T25] ( 3, 0.85) byref -> x23 "CSE - conservative"
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M10115_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x20] - stp x21, x22, [sp, #0x30] - stp x23, x24, [sp, #0x40]
+ stp fp, lr, [sp, #-0x60]! + stp x19, x20, [sp, #0x18] + stp x21, x22, [sp, #0x28] + stp x23, x24, [sp, #0x38] + stp x25, x26, [sp, #0x48] + str x27, [sp, #0x58]
mov fp, sp
- str xzr, [fp, #0x18] // [V10 loc8]
+ str xzr, [fp, #0x10] // [V10 loc8]
mov x20, x0 ; gcrRegs +[x20] mov x19, x1
- ;; size=32 bbWeight=1 PerfScore 6.50
+ ;; size=40 bbWeight=1 PerfScore 8.50
G_M10115_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -93,7 +95,7 @@ G_M10115_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b ldr w0, [x20, #0x28] tbnz w0, #24, G_M10115_IG22 mov w22, wzr
- tbnz w19, #29, G_M10115_IG43
+ tbnz w19, #29, G_M10115_IG36
;; size=48 bbWeight=1 PerfScore 15.50 G_M10115_IG03: ; bbWeight=0.83, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref ldr x0, [x20, #0x18] @@ -107,41 +109,41 @@ G_M10115_IG04: ; bbWeight=0.84, gcrefRegs=300000 {x20 x21}, byrefRegs=000 sxtw w24, w0 ldr x0, [x20, #0x08] ; gcrRegs +[x0]
- ldr w1, [x0, #0x08] - cmp w23, w1 - bhs G_M10115_IG57 - add x0, x0, #12
+ ldr w25, [x0, #0x08] + cmp w23, w25 + bhs G_M10115_IG56 + add x26, x0, #12 + ; byrRegs +[x26] + ldrh w0, [x26, w23, UXTW #2]
; gcrRegs -[x0]
- ; byrRegs +[x0] - ldrh w2, [x0, w23, UXTW #2] - cmp w2, #58 - bne G_M10115_IG54
+ cmp w0, #58 + bne G_M10115_IG53
;; size=40 bbWeight=0.84 PerfScore 11.39
-G_M10115_IG05: ; bbWeight=0.83, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz
+G_M10115_IG05: ; bbWeight=0.83, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
tbz w19, #20, G_M10115_IG09 ;; size=4 bbWeight=0.83 PerfScore 0.83
-G_M10115_IG06: ; bbWeight=0.79, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz - cmp w24, w1 - bhs G_M10115_IG57 - ldrh w2, [x0, w24, UXTW #2] - cmp w2, #92 - beq G_M10115_IG55
+G_M10115_IG06: ; bbWeight=0.79, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz + cmp w24, w25 + bhs G_M10115_IG56 + ldrh w0, [x26, w24, UXTW #2] + cmp w0, #92 + beq G_M10115_IG54
;; size=20 bbWeight=0.79 PerfScore 4.76
-G_M10115_IG07: ; bbWeight=0.78, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz - add w2, w24, #1 - cmp w2, w1 - bhs G_M10115_IG57 - ldrh w2, [x0, w2, UXTW #2] - cmp w2, #92 - beq G_M10115_IG55
+G_M10115_IG07: ; bbWeight=0.78, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz + add w0, w24, #1 + cmp w0, w25 + bhs G_M10115_IG56 + ldrh w0, [x26, w0, UXTW #2] + cmp w0, #92 + beq G_M10115_IG54
;; size=24 bbWeight=0.78 PerfScore 5.10
-G_M10115_IG08: ; bbWeight=0.79, gcrefRegs=300000 {x20 x21}, byrefRegs=0001 {x0}, byref, isz
+G_M10115_IG08: ; bbWeight=0.79, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
add w24, w24, #2 tst w19, #0xD1FFAB1E
- bne G_M10115_IG41
+ bne G_M10115_IG34
;; size=12 bbWeight=0.79 PerfScore 1.59 G_M10115_IG09: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x0]
+ ; byrRegs -[x26]
ldr x0, [x20, #0x18] ; gcrRegs +[x0] ldr w0, [x0, #0x14] @@ -159,20 +161,20 @@ G_M10115_IG10: ; bbWeight=0.49, gcrefRegs=300000 {x20 x21}, byrefRegs=000 G_M10115_IG11: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz and w0, w19, #0xD1FFAB1E cmp w0, #112, LSL #12
- beq G_M10115_IG42
+ beq G_M10115_IG35
;; size=12 bbWeight=1 PerfScore 2.00 G_M10115_IG12: ; bbWeight=0.98, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- tbnz w19, #27, G_M10115_IG42
+ tbnz w19, #27, G_M10115_IG35
;; size=4 bbWeight=0.98 PerfScore 0.98 G_M10115_IG13: ; bbWeight=0.80, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz strh w24, [x21, #0x3A] ldr w0, [x20, #0x28] and w0, w0, #0xD1FFAB1E cmp w0, #80, LSL #12
- beq G_M10115_IG51
+ beq G_M10115_IG50
;; size=20 bbWeight=0.80 PerfScore 4.79 G_M10115_IG14: ; bbWeight=0.70, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- tbnz w19, #21, G_M10115_IG33
+ tbnz w19, #21, G_M10115_IG26
;; size=4 bbWeight=0.70 PerfScore 0.70 G_M10115_IG15: ; bbWeight=0.70, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz strh w24, [x21, #0x3C] @@ -183,7 +185,7 @@ G_M10115_IG15: ; bbWeight=0.70, gcrefRegs=300000 {x20 x21}, byrefRegs=000 csel x19, x19, x0, eq strh w24, [x21, #0x40] mov w3, wzr
- tbnz x19, #33, G_M10115_IG52
+ tbnz x19, #33, G_M10115_IG51
;; size=36 bbWeight=0.70 PerfScore 4.21 G_M10115_IG16: ; bbWeight=0.70, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ldrh w0, [x21, #0x46] @@ -201,27 +203,27 @@ G_M10115_IG18: ; bbWeight=0.43, gcrefRegs=300000 {x20 x21}, byrefRegs=000 ; gcrRegs +[x0] ;; size=4 bbWeight=0.43 PerfScore 1.29 G_M10115_IG19: ; bbWeight=0.51, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref, isz
- cbz x0, G_M10115_IG59
+ cbz x0, G_M10115_IG58
add x0, x0, #12 ; gcrRegs -[x0] ; byrRegs +[x0]
- str x0, [fp, #0x18] // [V10 loc8] - ldr x0, [fp, #0x18] // [V10 loc8]
+ str x0, [fp, #0x10] // [V10 loc8] + ldr x0, [fp, #0x10] // [V10 loc8]
;; size=16 bbWeight=0.51 PerfScore 2.30 G_M10115_IG20: ; bbWeight=0.51, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz ; byrRegs -[x0] ldrh w1, [x0, w24, SXTW #2] cmp w1, #58
- beq G_M10115_IG27
+ beq G_M10115_IG44
;; size=12 bbWeight=0.51 PerfScore 2.30 G_M10115_IG21: ; bbWeight=0.51, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x18] // [V10 loc8]
+ str xzr, [fp, #0x10] // [V10 loc8]
;; size=4 bbWeight=0.51 PerfScore 0.51 G_M10115_IG22: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz orr x19, x19, #0xD1FFAB1E add x0, x20, #32 ; byrRegs +[x0]
- cbz x0, G_M10115_IG60
+ cbz x0, G_M10115_IG59
mov x1, x21 ; gcrRegs +[x1] mov x2, xzr @@ -246,149 +248,98 @@ G_M10115_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byre ;; size=24 bbWeight=1 PerfScore 6.00 G_M10115_IG24: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc ; byrRegs -[x1]
- ldp x23, x24, [sp, #0x40] - ldp x21, x22, [sp, #0x30] - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x50
+ ldr x27, [sp, #0x58] + ldp x25, x26, [sp, #0x48] + ldp x23, x24, [sp, #0x38] + ldp x21, x22, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x60
ret lr
- ;; size=20 bbWeight=1 PerfScore 5.00
+ ;; size=28 bbWeight=1 PerfScore 8.00
G_M10115_IG25: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, gcvars, byref, isz ; byrRegs +[x1] mov x0, x3
- tbz w0, #30, G_M10115_IG23 - ;; size=8 bbWeight=1 PerfScore 1.50 -G_M10115_IG26: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[x1] - b G_M10115_IG24 - ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M10115_IG27: ; bbWeight=0.05, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ tbnz w0, #30, G_M10115_IG24 + b G_M10115_IG23 + ;; size=12 bbWeight=1 PerfScore 2.50 +G_M10115_IG26: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x20-x21]
- mov w1, wzr - add w24, w24, #1 - ldrh w2, [x21, #0x46] - cmp w24, w2
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.arm64.checked.mch 2 2 0 0 -20 +0
benchmarks.run_tiered.windows.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.arm64.checked.mch 3 0 0 3 -0 +0
libraries.crossgen2.windows.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.arm64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.windows.arm64.Release.mch 167 156 1 10 -668 +16
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 0 0 0 0 -0 +0
realworld.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 0 0 0 0 -0 +0
172 158 1 13 -688 +16

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,455 4 24,451 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.arm64.checked.mch 97,527 48,627 48,900 13 (0.01%) 13 (0.01%)
benchmarks.run_tiered.windows.arm64.checked.mch 49,174 36,718 12,456 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch 595,172 362,437 232,735 11 (0.00%) 11 (0.00%)
libraries.crossgen2.windows.arm64.checked.mch 2,130 0 2,130 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 305,519 6 305,513 3 (0.00%) 3 (0.00%)
libraries_tests.run.windows.arm64.Release.mch 646,533 468,460 178,073 107 (0.02%) 107 (0.02%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 317,022 21,598 295,424 4 (0.00%) 4 (0.00%)
realworld.run.windows.arm64.checked.mch 33,241 3 33,238 1 (0.00%) 1 (0.00%)
smoke_tests.nativeaot.windows.arm64.checked.mch 77 0 77 0 (0.00%) 0 (0.00%)
2,070,850 937,853 1,132,997 139 (0.01%) 139 (0.01%)

jit-analyze output

benchmarks.run_pgo.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 46609220 (overridden on cmd)
Total bytes of diff: 46609200 (overridden on cmd)
Total bytes of delta: -20 (-0.00 % of base)
    relative diff is a regression.

Detail diffs



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

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


coreclr_tests.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 496298628 (overridden on cmd)
Total bytes of diff: 496298628 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
    relative diff is a regression.

Detail diffs



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

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


libraries_tests.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 326696628 (overridden on cmd)
Total bytes of diff: 326695976 (overridden on cmd)
Total bytes of delta: -652 (-0.00 % of base)
    relative diff is a regression.

Detail diffs



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



windows x64

Diffs are based on 2,098,526 contexts (926,221 MinOpts, 1,172,305 FullOpts).

MISSED contexts: 138 (0.01%)

Overall (-366 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch 35,778,033 -23
coreclr_tests.run.windows.x64.checked.mch 392,964,649 +0
libraries_tests.run.windows.x64.Release.mch 278,843,071 -343

FullOpts (-366 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.x64.checked.mch 21,745,952 -23
coreclr_tests.run.windows.x64.checked.mch 120,242,671 +0
libraries_tests.run.windows.x64.Release.mch 106,668,455 -343

Example diffs

benchmarks.run_pgo.windows.x64.checked.mch

-5 (-1.19%) : 89428.dasm - Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)

@@ -64,103 +64,100 @@ G_M4144_IG02: ; bbWeight=1, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, b mov esi, dword ptr [rdx+0x14] mov edi, dword ptr [rdx+0x10] mov dword ptr [rsp+0x24], edi
- jmp SHORT G_M4144_IG10
+ jmp SHORT G_M4144_IG08
;; size=24 bbWeight=1 PerfScore 12.00 G_M4144_IG03: ; bbWeight=0.82, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref mov r10d, dword ptr [rdx+0x1C] mov edi, dword ptr [rsp+0x24] lea r10d, [r10+rdi-0x01] ;; size=13 bbWeight=0.82 PerfScore 3.28
-G_M4144_IG04: ; bbWeight=1.00, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG04: ; bbWeight=1.00, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
inc r9d cmp r10d, r9d
- jge SHORT G_M4144_IG07 - ;; size=8 bbWeight=1.00 PerfScore 1.50 -G_M4144_IG05: ; bbWeight=0.05, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref - jmp G_M4144_IG15 - ;; size=5 bbWeight=0.05 PerfScore 0.10 -G_M4144_IG06: ; bbWeight=0.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref - mov r9d, dword ptr [rdx+0x1C] - cmp r10d, r9d - jl G_M4144_IG15 - ;; size=13 bbWeight=0.10 PerfScore 0.32 -G_M4144_IG07: ; bbWeight=0.91, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+ jl G_M4144_IG14 + ;; size=12 bbWeight=1.00 PerfScore 1.50 +G_M4144_IG05: ; bbWeight=0.91, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
mov ebp, dword ptr [rdx+0x20] cmp eax, ebp jl SHORT G_M4144_IG04 ;; size=7 bbWeight=0.91 PerfScore 2.96
-G_M4144_IG08: ; bbWeight=0.46, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG06: ; bbWeight=0.46, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
mov r10d, ebp ;; size=3 bbWeight=0.46 PerfScore 0.11
-G_M4144_IG09: ; bbWeight=9.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG07: ; bbWeight=9.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
mov eax, r11d ;; size=3 bbWeight=9.10 PerfScore 2.27
-G_M4144_IG10: ; bbWeight=9.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG08: ; bbWeight=9.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
cmp ebx, eax
- jl G_M4144_IG13
+ jl G_M4144_IG11
;; size=8 bbWeight=9.10 PerfScore 11.37
-G_M4144_IG11: ; bbWeight=8.27, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG09: ; bbWeight=8.27, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
mov ebp, r9d sub ebp, dword ptr [r8+0x1C] mov r14d, dword ptr [r8+0x10] ;; size=11 bbWeight=8.27 PerfScore 43.42
-G_M4144_IG12: ; bbWeight=90.90, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
+G_M4144_IG10: ; bbWeight=90.90, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
mov r15d, ebp cmp r15d, r14d
- jae G_M4144_IG18
+ jae G_M4144_IG17
mov r13d, dword ptr [r8+0x14] imul r15d, r13d mov r12d, r10d sub r12d, dword ptr [r8+0x20] cmp r12d, r13d
- jae G_M4144_IG18
+ jae G_M4144_IG17
add r15d, r12d mov r13d, dword ptr [r8+0x18] imul r15d, r13d mov r12d, eax sub r12d, dword ptr [r8+0x24] cmp r12d, r13d
- jae G_M4144_IG18
+ jae G_M4144_IG17
add r15d, r12d mov r13d, r9d sub r13d, dword ptr [rdx+0x1C] cmp r13d, dword ptr [rdx+0x10]
- jae G_M4144_IG18
+ jae G_M4144_IG17
mov r12d, dword ptr [rdx+0x14] imul r13d, r12d mov edi, r10d sub edi, dword ptr [rdx+0x20] cmp edi, r12d
- jae SHORT G_M4144_IG18
+ jae SHORT G_M4144_IG17
add edi, r13d mov r13d, dword ptr [rdx+0x18] imul edi, r13d mov r12d, eax sub r12d, dword ptr [rdx+0x24] cmp r12d, r13d
- jae SHORT G_M4144_IG18
+ jae SHORT G_M4144_IG17
add edi, r12d mov edi, dword ptr [rdx+4*rdi+0x28] mov dword ptr [r8+4*r15+0x28], edi inc eax cmp ebx, eax
- jge G_M4144_IG12
+ jge G_M4144_IG10
;; size=147 bbWeight=90.90 PerfScore 4385.97
-G_M4144_IG13: ; bbWeight=9.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG11: ; bbWeight=9.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
inc r10d mov eax, dword ptr [rdx+0x20] lea eax, [rax+rsi-0x01] cmp eax, r10d
- jge G_M4144_IG09
+ jge G_M4144_IG07
;; size=19 bbWeight=9.10 PerfScore 40.95
-G_M4144_IG14: ; bbWeight=0.82, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG12: ; bbWeight=0.82, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
jmp G_M4144_IG03 ;; size=5 bbWeight=0.82 PerfScore 1.64
-G_M4144_IG15: ; bbWeight=0.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+G_M4144_IG13: ; bbWeight=0.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref + mov r9d, dword ptr [rdx+0x1C] + cmp r10d, r9d + jge G_M4144_IG05 + ;; size=13 bbWeight=0.10 PerfScore 0.32 +G_M4144_IG14: ; bbWeight=0.10, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref, isz
dec ecx
- jne G_M4144_IG06 - ;; size=8 bbWeight=0.10 PerfScore 0.12 -G_M4144_IG16: ; bbWeight=0, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+ jne SHORT G_M4144_IG13 + ;; size=4 bbWeight=0.10 PerfScore 0.12 +G_M4144_IG15: ; bbWeight=0, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
mov rcx, rdx ; gcrRegs +[rcx] mov rdx, r8 @@ -169,7 +166,7 @@ G_M4144_IG16: ; bbWeight=0, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, b ; gcr arg pop 0 nop ;; size=13 bbWeight=0 PerfScore 0.00
-G_M4144_IG17: ; bbWeight=0, epilog, nogc, extend
+G_M4144_IG16: ; bbWeight=0, epilog, nogc, extend
add rsp, 184 pop rbx pop rsi @@ -181,13 +178,13 @@ G_M4144_IG17: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=20 bbWeight=0 PerfScore 0.00
-G_M4144_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M4144_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 int3 ;; size=6 bbWeight=0 PerfScore 0.00
-Total bytes of code 419, prolog size 106, PerfScore 4525.28, instruction count 105, allocated bytes for code 419 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
+Total bytes of code 414, prolog size 106, PerfScore 4525.18, instruction count 104, allocated bytes for code 414 (MethodHash=aa90efcf) for method Benchstone.MDBenchI.MDGeneralArray:Bench(int,int[,,],int[,,]):ubyte (Tier1-OSR)
; ============================================================ Unwind Info:

-11 (-1.19%) : 6002.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d__23[ubyte]:MoveNext():this (Tier1)

@@ -98,7 +98,7 @@ G_M15237_IG02: ; bbWeight=1, gcVars=0000000000010000 {V00}, gcrefRegs=000 ;; size=6 bbWeight=1 PerfScore 4.00 G_M15237_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0002 {rcx}, byref test edx, edx
- jne G_M15237_IG17
+ jne G_M15237_IG23
mov dl, byte ptr [rcx+0x20] mov byte ptr [rbp-0x40], dl mov byte ptr [rcx+0x20], 0 @@ -121,7 +121,7 @@ G_M15237_IG05: ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov rdx, gword ptr [rbx+0x10] ; gcrRegs +[rdx] cmp esi, dword ptr [rdx+0x08]
- jae G_M15237_IG19
+ jae G_M15237_IG17
mov eax, esi mov rdx, gword ptr [rdx+8*rax+0x10] xor eax, eax @@ -141,16 +141,16 @@ G_M15237_IG07: ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0002 {rcx}, mov rdx, gword ptr [rbx+0x10] ; gcrRegs +[rdx] cmp esi, dword ptr [rdx+0x08]
- jae G_M15237_IG19
+ jae G_M15237_IG17
mov eax, esi mov r15, gword ptr [rdx+8*rax+0x10] ; gcrRegs +[r15] mov rdx, 0xD1FFAB1E ; System.Buffers.ConfigurableArrayPool`1[ubyte] ; gcrRegs -[rdx] cmp qword ptr [r14], rdx
- jne G_M15237_IG22
+ jne G_M15237_IG20
test r15, r15
- je G_M15237_IG23
+ je G_M15237_IG21
mov edi, dword ptr [r15+0x08] test edi, edi je SHORT G_M15237_IG09 @@ -167,7 +167,7 @@ G_M15237_IG07: ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0002 {rcx}, test r13d, r13d je SHORT G_M15237_IG08 cmp edx, dword ptr [rax+0x08]
- jae G_M15237_IG19
+ jae G_M15237_IG17
mov rdx, gword ptr [rax+8*rdx+0x10] ; gcrRegs +[rdx] mov rcx, rdx @@ -184,7 +184,7 @@ G_M15237_IG08: ; bbWeight=8, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 mov r12, gword ptr [rdx] ; gcrRegs +[r12] cmp byte ptr [r12+0x9D], 0
- jne G_M15237_IG21
+ jne G_M15237_IG19
;; size=28 bbWeight=8 PerfScore 50.00 G_M15237_IG09: ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; gcrRegs -[r12 r14-r15] @@ -217,7 +217,7 @@ G_M15237_IG12: ; bbWeight=8.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov edx, dword ptr [rbx+0x18] mov r8, 0xD1FFAB1E ; System.Buffers.ConfigurableArrayPool`1[ubyte] cmp qword ptr [rax], r8
- jne G_M15237_IG18
+ jne G_M15237_IG24
mov rcx, rax ; gcrRegs +[rcx] ; byrRegs -[rcx] @@ -239,11 +239,11 @@ G_M15237_IG13: ; bbWeight=8.01, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0 mov rcx, gword ptr [rbx+0x10] ; gcrRegs +[rcx] cmp r15d, dword ptr [rcx+0x08]
- jae G_M15237_IG19
+ jae G_M15237_IG17
mov edx, r15d mov rcx, gword ptr [rcx+8*rdx+0x10] test rcx, rcx
- je G_M15237_IG24
+ je G_M15237_IG22
lea rax, bword ptr [rcx+0x10] ; byrRegs +[rax] mov r12d, dword ptr [rcx+0x08] @@ -255,13 +255,13 @@ G_M15237_IG14: ; bbWeight=8.01, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax test rdx, rdx je SHORT G_M15237_IG15 cmp rdx, 768
- jbe G_M15237_IG20
+ jbe SHORT G_M15237_IG18
mov rcx, rax ; byrRegs +[rcx] call [<unknown method>] ; byrRegs -[rax rcx] ; gcr arg pop 0
- ;; size=34 bbWeight=8.01 PerfScore 56.07
+ ;; size=30 bbWeight=8.01 PerfScore 56.07
G_M15237_IG15: ; bbWeight=8.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref inc r15d mov rdx, gword ptr [rbx+0x10] @@ -294,50 +294,11 @@ G_M15237_IG16: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp G_M15237_IG26 ;; size=58 bbWeight=1.00 PerfScore 18.52
-G_M15237_IG17: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref - ; gcrRegs +[rbx] - mov rcx, rbx - ; gcrRegs +[rcx] - call [System.Buffers.Tests.RentReturnArrayPoolTests`1[ubyte]:get_Pool():System.Buffers.ArrayPool`1[ubyte]:this] - ; gcrRegs -[rcx] +[rax] - ; gcr arg pop 0 - mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - lea rcx, bword ptr [rcx+0x08] - mov rdx, rax - ; gcrRegs +[rdx] - call CORINFO_HELP_CHECKED_ASSIGN_REF - ; gcrRegs -[rax rdx] - ; byrRegs -[rcx] - xor ecx, ecx - mov rax, bword ptr [rbp+0x10] - ; byrRegs +[rax] - mov dword ptr [rax+0x14], ecx - cmp dword ptr [rax+0x14], 0x186A0 - mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - jge G_M15237_IG25 - jmp G_M15237_IG11 - ;; size=56 bbWeight=0 PerfScore 0.00 -G_M15237_IG18: ; bbWeight=0, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref - ; gcrRegs +[rax r13] - ; byrRegs -[rax rcx] - mov rcx, rax - ; gcrRegs +[rcx] - mov rax, qword ptr [rax] - ; gcrRegs -[rax] - mov rax, qword ptr [rax+0x48] - call [rax+0x20]<unknown method> - ; gcrRegs -[rcx] +[rax] - ; gcr arg pop 0 - jmp G_M15237_IG13 - ;; size=18 bbWeight=0 PerfScore 0.00 -G_M15237_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; gcrRegs -[rax rbx r13]
+G_M15237_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M15237_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref
+G_M15237_IG18: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, byref, isz
; gcrRegs +[rbx] ; byrRegs +[rax] xor edx, edx @@ -347,9 +308,9 @@ G_M15237_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0001 {rax}, call CORINFO_HELP_MEMSET ; byrRegs -[rax rcx] ; gcr arg pop 0
- jmp G_M15237_IG15 - ;; size=19 bbWeight=0 PerfScore 0.00 -G_M15237_IG21: ; bbWeight=0, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M15237_IG15 + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M15237_IG19: ; bbWeight=0, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r12 r14-r15] mov rcx, r15 ; gcrRegs +[rcx] @@ -394,7 +355,7 @@ G_M15237_IG21: ; bbWeight=0, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs= ; gcr arg pop 0 jmp G_M15237_IG09 ;; size=106 bbWeight=0 PerfScore 0.00
-G_M15237_IG22: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M15237_IG20: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r14-r15] mov rcx, r14 ; gcrRegs +[rcx] @@ -408,7 +369,7 @@ G_M15237_IG22: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 ; gcr arg pop 0 jmp G_M15237_IG09 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M15237_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15237_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov ecx, 0xAB8 mov rdx, 0xD1FFAB1E @@ -422,16 +383,54 @@ G_M15237_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 int3 ;; size=30 bbWeight=0 PerfScore 0.00
-G_M15237_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M15237_IG22: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx] xor rax, rax ; byrRegs +[rax] xor r12d, r12d jmp G_M15237_IG14 ;; size=10 bbWeight=0 PerfScore 0.00
+G_M15237_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + ; byrRegs -[rax] + mov rcx, rbx + ; gcrRegs +[rcx] + call [System.Buffers.Tests.RentReturnArrayPoolTests`1[ubyte]:get_Pool():System.Buffers.ArrayPool`1[ubyte]:this] + ; gcrRegs -[rcx] +[rax] + ; gcr arg pop 0 + mov rcx, bword ptr [rbp+0x10] + ; byrRegs +[rcx] + lea rcx, bword ptr [rcx+0x08] + mov rdx, rax + ; gcrRegs +[rdx] + call CORINFO_HELP_CHECKED_ASSIGN_REF + ; gcrRegs -[rax rdx] + ; byrRegs -[rcx] + xor ecx, ecx + mov rax, bword ptr [rbp+0x10] + ; byrRegs +[rax] + mov dword ptr [rax+0x14], ecx + cmp dword ptr [rax+0x14], 0x186A0 + mov rcx, bword ptr [rbp+0x10] + ; byrRegs +[rcx] + jge SHORT G_M15237_IG25 + jmp G_M15237_IG11 + ;; size=52 bbWeight=0 PerfScore 0.00 +G_M15237_IG24: ; bbWeight=0, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref + ; gcrRegs +[rax r13] + ; byrRegs -[rax rcx] + mov rcx, rax + ; gcrRegs +[rcx] + mov rax, qword ptr [rax] + ; gcrRegs -[rax] + mov rax, qword ptr [rax+0x48] + call [rax+0x20]<unknown method> + ; gcrRegs -[rcx] +[rax] + ; gcr arg pop 0 + jmp G_M15237_IG13 + ;; size=18 bbWeight=0 PerfScore 0.00
G_M15237_IG25: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
- ; gcrRegs -[rbx] - ; byrRegs -[rax] +[rcx]
+ ; gcrRegs -[rax rbx r13] + ; byrRegs +[rcx]
mov dword ptr [rcx+0x10], -2 xor rax, rax ; gcrRegs +[rax] @@ -502,7 +501,7 @@ G_M15237_IG30: ; bbWeight=0, funclet epilog, nogc, extend ret ;; size=17 bbWeight=0 PerfScore 0.00
-Total bytes of code 928, prolog size 38, PerfScore 18718658.27, instruction count 249, allocated bytes for code 928 (MethodHash=5e45c47a) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<MultipleSerial>d__23[ubyte]:MoveNext():this (Tier1)
+Total bytes of code 917, prolog size 38, PerfScore 18718658.27, instruction count 249, allocated bytes for code 917 (MethodHash=5e45c47a) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<MultipleSerial>d__23[ubyte]:MoveNext():this (Tier1)
; ============================================================ Unwind Info:

-7 (-0.20%) : 69590.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindExpressionInternal(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

@@ -139,7 +139,7 @@ ; V127 tmp121 [V127,T121] ( 2, 0 ) ref -> rdx class-hnd single-def "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.QualifiedNameSyntax> ;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V129 tmp123 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-; V130 tmp124 [V130,T08] ( 41, 1.33) ref -> rax "Single return block return value"
+; V130 tmp124 [V130,T08] ( 42, 1.33) ref -> rax "Single return block return value"
; V131 tmp125 [V131,T122] ( 2, 0 ) ref -> rdx single-def "argument with side effect" ; V132 tmp126 [V132,T123] ( 2, 0 ) ref -> rdx single-def "argument with side effect" ; V133 tmp127 [V133,T124] ( 2, 0 ) ref -> r8 single-def "argument with side effect" @@ -264,15 +264,15 @@ G_M29879_IG09: ; bbWeight=0, gcVars=0000000000000000000000000000000000000 G_M29879_IG10: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref ; gcrRegs -[rax] +[rbx rsi rdi] cmp r14d, 0x22DE
- jne G_M29879_IG160
+ jne G_M29879_IG159
jmp G_M29879_IG139 ;; size=18 bbWeight=0 PerfScore 0.00 G_M29879_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref cmp r14d, 0x2341 je G_M29879_IG80 cmp r14d, 0x2350
- jne G_M29879_IG160 - jmp G_M29879_IG151
+ jne G_M29879_IG159 + jmp G_M29879_IG150
;; size=31 bbWeight=0 PerfScore 0.00 G_M29879_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz cmp r14d, 0x2365 @@ -289,14 +289,14 @@ G_M29879_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 ;; size=47 bbWeight=0 PerfScore 0.00 G_M29879_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref cmp r14d, 0x2365
- jne G_M29879_IG160 - jmp G_M29879_IG157
+ jne G_M29879_IG159 + jmp G_M29879_IG156
;; size=18 bbWeight=0 PerfScore 0.00 G_M29879_IG14: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref cmp r14d, 0x2373
- je G_M29879_IG147
+ je G_M29879_IG146
cmp r14d, 0x2374
- jne G_M29879_IG160
+ jne G_M29879_IG159
jmp G_M29879_IG132 ;; size=31 bbWeight=0 PerfScore 0.00 G_M29879_IG15: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref @@ -1859,23 +1859,16 @@ G_M29879_IG140: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000 ; gcrRegs +[rcx] mov r8, rdi ; gcrRegs +[r8]
- ;; size=9 bbWeight=0 PerfScore 0.00 -G_M29879_IG141: ; bbWeight=0, epilog, nogc, extend - add rsp, 104 - pop rbx - pop rbp - pop rsi - pop rdi - pop r14 - pop r15 - tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindTupleExpression(Microsoft.CodeAnalysis.CSharp.Syntax.TupleExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this]
+ call [Microsoft.CodeAnalysis.CSharp.Binder:BindTupleExpression(Microsoft.CodeAnalysis.CSharp.Syntax.TupleExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] + ; gcrRegs -[rcx rdx rbx rsi rdi r8] +[rax]
; gcr arg pop 0
- ;; size=18 bbWeight=0 PerfScore 0.00 -G_M29879_IG142: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[rcx rdx r8]
+ jmp G_M29879_IG07 + ;; size=20 bbWeight=0 PerfScore 0.00 +G_M29879_IG141: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rax] +[rbx rsi rdi]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.ThrowExpressionSyntax cmp qword ptr [rbx], rcx
- je SHORT G_M29879_IG143
+ je SHORT G_M29879_IG142
mov rdx, rbx ; gcrRegs +[rdx] call CORINFO_HELP_CHKCASTCLASS_SPECIAL @@ -1883,7 +1876,7 @@ G_M29879_IG142: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 int3 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG143: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M29879_IG142: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rbx rsi rdi] mov rdx, rbx ; gcrRegs +[rdx] @@ -1892,7 +1885,7 @@ G_M29879_IG143: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG144: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG143: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -1903,7 +1896,7 @@ G_M29879_IG144: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindThrowExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ThrowExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29879_IG145: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG144: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx r8] mov rcx, rsi ; gcrRegs +[rcx] @@ -1912,7 +1905,7 @@ G_M29879_IG145: ; bbWeight=0, gcVars=000000000000000000000000000000000000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG146: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG145: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -1923,7 +1916,7 @@ G_M29879_IG146: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindRefType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29879_IG147: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG146: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx r8] mov rcx, rsi ; gcrRegs +[rcx] @@ -1932,7 +1925,7 @@ G_M29879_IG147: ; bbWeight=0, gcVars=000000000000000000000000000000000000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG148: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG147: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -1943,7 +1936,7 @@ G_M29879_IG148: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindScopedType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29879_IG149: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M29879_IG148: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx r8] mov rcx, rsi ; gcrRegs +[rcx] @@ -1952,7 +1945,7 @@ G_M29879_IG149: ; bbWeight=0, gcVars=000000000000000000000000000000000000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG150: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG149: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -1963,11 +1956,11 @@ G_M29879_IG150: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindRefExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29879_IG151: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG150: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx rdx r8] mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.DeclarationExpressionSyntax cmp qword ptr [rbx], rcx
- je SHORT G_M29879_IG152
+ je SHORT G_M29879_IG151
mov rdx, rbx ; gcrRegs +[rdx] call CORINFO_HELP_CHKCASTCLASS_SPECIAL @@ -1975,7 +1968,7 @@ G_M29879_IG151: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 int3 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG152: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M29879_IG151: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rbx rsi rdi] mov rdx, rbx ; gcrRegs +[rdx] @@ -1984,7 +1977,7 @@ G_M29879_IG152: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG153: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG152: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -1995,11 +1988,11 @@ G_M29879_IG153: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindDeclarationExpressionAsError(Microsoft.CodeAnalysis.CSharp.Syntax.DeclarationExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29879_IG154: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG153: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx rdx r8] mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.PostfixUnaryExpressionSyntax cmp qword ptr [rbx], rcx
- je SHORT G_M29879_IG155
+ je SHORT G_M29879_IG154
mov rdx, rbx ; gcrRegs +[rdx] call CORINFO_HELP_CHKCASTCLASS_SPECIAL @@ -2007,7 +2000,7 @@ G_M29879_IG154: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 int3 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG155: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M29879_IG154: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rbx rsi rdi] mov rdx, rbx ; gcrRegs +[rdx] @@ -2016,7 +2009,7 @@ G_M29879_IG155: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG156: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG155: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -2027,11 +2020,11 @@ G_M29879_IG156: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindSuppressNullableWarningExpression(Microsoft.CodeAnalysis.CSharp.Syntax.PostfixUnaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00
-G_M29879_IG157: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29879_IG156: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx rdx r8] mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.WithExpressionSyntax cmp qword ptr [rbx], rcx
- je SHORT G_M29879_IG158
+ je SHORT G_M29879_IG157
mov rdx, rbx ; gcrRegs +[rdx] call CORINFO_HELP_CHKCASTCLASS_SPECIAL @@ -2039,7 +2032,7 @@ G_M29879_IG157: ; bbWeight=0, gcVars=000000000000000000000000000000000000 ; gcr arg pop 0 int3 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M29879_IG158: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M29879_IG157: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rbx rsi rdi] mov rdx, rbx ; gcrRegs +[rdx] @@ -2048,7 +2041,7 @@ G_M29879_IG158: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000 mov r8, rdi ; gcrRegs +[r8] ;; size=9 bbWeight=0 PerfScore 0.00
-G_M29879_IG159: ; bbWeight=0, epilog, nogc, extend
+G_M29879_IG158: ; bbWeight=0, epilog, nogc, extend
add rsp, 104 pop rbx pop rbp @@ -2059,7 +2052,7 @@ G_M29879_IG159: ; bbWeight=0, epilog, nogc, extend tail.jmp [Microsoft.CodeAnalysis.CSharp.Binder:BindWithExpression(Microsoft.CodeAnalysis.CSharp.Syntax.WithExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this] ; gcr arg pop 0 ;; size=18 bbWeight=0 PerfScore 0.00 ...

coreclr_tests.run.windows.x64.checked.mch

+0 (0.00%) : 328290.dasm - Simple2ArrayTest:Main():int (Tier1-OSR)

@@ -56,7 +56,7 @@ G_M25584_IG05: ; bbWeight=9.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov esi, dword ptr [rsp+0xE8] mov edi, dword ptr [rsp+0x104] cmp esi, edi
- jge SHORT G_M25584_IG12
+ jge SHORT G_M25584_IG11
;; size=18 bbWeight=9.10 PerfScore 29.57 G_M25584_IG06: ; bbWeight=8.27, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov ebp, dword ptr [rsp+0xF4] @@ -93,28 +93,30 @@ G_M25584_IG09: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, cmp r14d, edi jl G_M25584_IG03 ;; size=12 bbWeight=1.00 PerfScore 1.50
-G_M25584_IG10: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - inc ebp - cmp ebp, edi - jge SHORT G_M25584_IG13 - xor r14d, r14d - test edi, edi - jg G_M25584_IG03 - ;; size=17 bbWeight=0.10 PerfScore 0.30 -G_M25584_IG11: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M25584_IG10 - ;; size=2 bbWeight=0.04 PerfScore 0.09 -G_M25584_IG12: ; bbWeight=4.55, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG10: ; bbWeight=0.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M25584_IG13 + ;; size=2 bbWeight=0.09 PerfScore 0.18 +G_M25584_IG11: ; bbWeight=4.55, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov ebp, dword ptr [rsp+0xF4] mov r13d, dword ptr [rsp+0xEC] mov r14d, dword ptr [rsp+0xF0] jmp SHORT G_M25584_IG08 ;; size=25 bbWeight=4.55 PerfScore 22.75
-G_M25584_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M25584_IG12: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + xor r14d, r14d + test edi, edi + jg G_M25584_IG03 + ;; size=11 bbWeight=0.10 PerfScore 0.15 +G_M25584_IG13: ; bbWeight=0.10, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + inc ebp + cmp ebp, edi + jl SHORT G_M25584_IG12 + ;; size=6 bbWeight=0.10 PerfScore 0.15 +G_M25584_IG14: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
xor ebp, ebp
- jmp G_M25584_IG25
+ jmp G_M25584_IG26
;; size=7 bbWeight=0 PerfScore 0.00
-G_M25584_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25584_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov rcx, 0xD1FFAB1E ; gcrRegs +[rcx] @@ -123,7 +125,7 @@ G_M25584_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov eax, 1 ;; size=21 bbWeight=0 PerfScore 0.00
-G_M25584_IG15: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG16: ; bbWeight=0, epilog, nogc, extend
add rsp, 264 pop rbx pop rsi @@ -135,24 +137,24 @@ G_M25584_IG15: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=20 bbWeight=0 PerfScore 0.00
-G_M25584_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M25584_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx] xor r14d, r14d
- jmp SHORT G_M25584_IG24 - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M25584_IG17: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - xor r13d, r13d - jmp SHORT G_M25584_IG23
+ jmp SHORT G_M25584_IG25
;; size=5 bbWeight=0 PerfScore 0.00 G_M25584_IG18: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- xor esi, esi - jmp SHORT G_M25584_IG22 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M25584_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - xor r15d, r15d - jmp SHORT G_M25584_IG21
+ xor r13d, r13d + jmp SHORT G_M25584_IG24
;; size=5 bbWeight=0 PerfScore 0.00
-G_M25584_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M25584_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + xor esi, esi + jmp SHORT G_M25584_IG23 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M25584_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + xor r15d, r15d + jmp SHORT G_M25584_IG22 + ;; size=5 bbWeight=0 PerfScore 0.00 +G_M25584_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x20], esi mov rcx, rbx ; gcrRegs +[rcx] @@ -168,38 +170,38 @@ G_M25584_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr inc r15d mov qword ptr [rsp+0xD8], r12 ;; size=45 bbWeight=0 PerfScore 0.00
-G_M25584_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG22: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r15d, esi
- jl SHORT G_M25584_IG20
+ jl SHORT G_M25584_IG21
inc esi ;; size=7 bbWeight=0 PerfScore 0.00
-G_M25584_IG22: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp esi, r13d
- jl SHORT G_M25584_IG19
+ jl SHORT G_M25584_IG20
inc r13d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r13d, r14d
- jl SHORT G_M25584_IG18
+ jl SHORT G_M25584_IG19
inc r14d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25584_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, ebp
- jl SHORT G_M25584_IG17
+ jl SHORT G_M25584_IG18
inc ebp ;; size=7 bbWeight=0 PerfScore 0.00
-G_M25584_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M25584_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp ebp, edi
- jl SHORT G_M25584_IG16
+ jl SHORT G_M25584_IG17
mov rcx, rbx ; gcrRegs +[rcx] call [Simple2_Array_Test:test(int[,,,]):int] ; gcrRegs -[rcx rbx] ; gcr arg pop 0 cmp eax, 4
- jne G_M25584_IG14
+ jne G_M25584_IG15
cmp qword ptr [rsp+0xD8], 0x3022B
- jne G_M25584_IG14
+ jne G_M25584_IG15
mov rcx, 0xD1FFAB1E ; gcrRegs +[rcx] call [<unknown method>] @@ -207,7 +209,7 @@ G_M25584_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov eax, 100 ;; size=61 bbWeight=0 PerfScore 0.00
-G_M25584_IG26: ; bbWeight=0, epilog, nogc, extend
+G_M25584_IG27: ; bbWeight=0, epilog, nogc, extend
add rsp, 264 pop rbx pop rsi @@ -220,7 +222,7 @@ G_M25584_IG26: ; bbWeight=0, epilog, nogc, extend ret ;; size=20 bbWeight=0 PerfScore 0.00
-Total bytes of code 499, prolog size 68, PerfScore 892.69, instruction count 125, allocated bytes for code 499 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
+Total bytes of code 499, prolog size 68, PerfScore 892.78, instruction count 125, allocated bytes for code 499 (MethodHash=75279c0f) for method Simple2_Array_Test:Main():int (Tier1-OSR)
; ============================================================ Unwind Info:

+0 (0.00%) : 324875.dasm - Simple2ArrayTest:TestEntryPoint():int (Tier1-OSR)

@@ -89,22 +89,24 @@ G_M25589_IG09: ; bbWeight=1.00, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, cmp ebp, edi jl SHORT G_M25589_IG03 ;; size=6 bbWeight=1.00 PerfScore 1.50
-G_M25589_IG10: ; bbWeight=0.10, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz - inc r14d - cmp r14d, edi - jge SHORT G_M25589_IG12
+G_M25589_IG10: ; bbWeight=0.09, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M25589_IG12 + ;; size=2 bbWeight=0.09 PerfScore 0.18 +G_M25589_IG11: ; bbWeight=0.10, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
xor ebp, ebp test edi, edi jg SHORT G_M25589_IG03
- ;; size=14 bbWeight=0.10 PerfScore 0.30 -G_M25589_IG11: ; bbWeight=0.04, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M25589_IG10 - ;; size=2 bbWeight=0.04 PerfScore 0.09 -G_M25589_IG12: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=6 bbWeight=0.10 PerfScore 0.15 +G_M25589_IG12: ; bbWeight=0.10, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz + inc r14d + cmp r14d, edi + jl SHORT G_M25589_IG11 + ;; size=8 bbWeight=0.10 PerfScore 0.15 +G_M25589_IG13: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
xor r14d, r14d
- jmp SHORT G_M25589_IG24
+ jmp SHORT G_M25589_IG25
;; size=5 bbWeight=0 PerfScore 0.00
-G_M25589_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25589_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r15] mov rcx, 0xD1FFAB1E ; gcrRegs +[rcx] @@ -113,7 +115,7 @@ G_M25589_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov eax, 1 ;; size=21 bbWeight=0 PerfScore 0.00
-G_M25589_IG14: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG15: ; bbWeight=0, epilog, nogc, extend
add rsp, 264 pop rbx pop rsi @@ -125,24 +127,24 @@ G_M25589_IG14: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=20 bbWeight=0 PerfScore 0.00
-G_M25589_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M25589_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[r15] xor ebp, ebp
- jmp SHORT G_M25589_IG23 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M25589_IG16: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz - xor esi, esi - jmp SHORT G_M25589_IG22
+ jmp SHORT G_M25589_IG24
;; size=4 bbWeight=0 PerfScore 0.00 G_M25589_IG17: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
- xor ebx, ebx - jmp SHORT G_M25589_IG21
+ xor esi, esi + jmp SHORT G_M25589_IG23
;; size=4 bbWeight=0 PerfScore 0.00 G_M25589_IG18: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+ xor ebx, ebx + jmp SHORT G_M25589_IG22 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M25589_IG19: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
xor r12d, r12d
- jmp SHORT G_M25589_IG20
+ jmp SHORT G_M25589_IG21
;; size=5 bbWeight=0 PerfScore 0.00
-G_M25589_IG19: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M25589_IG20: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x20], ebx mov rcx, r15 ; gcrRegs +[rcx] @@ -156,31 +158,31 @@ G_M25589_IG19: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr add r13, rcx inc r12d ;; size=30 bbWeight=0 PerfScore 0.00
-G_M25589_IG20: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG21: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp r12d, ebx
- jl SHORT G_M25589_IG19
+ jl SHORT G_M25589_IG20
inc ebx ;; size=7 bbWeight=0 PerfScore 0.00
-G_M25589_IG21: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG22: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp ebx, esi
- jl SHORT G_M25589_IG18
+ jl SHORT G_M25589_IG19
inc esi ;; size=6 bbWeight=0 PerfScore 0.00
-G_M25589_IG22: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG23: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp esi, ebp
- jl SHORT G_M25589_IG17
+ jl SHORT G_M25589_IG18
inc ebp ;; size=6 bbWeight=0 PerfScore 0.00
-G_M25589_IG23: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG24: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp ebp, r14d
- jl SHORT G_M25589_IG16
+ jl SHORT G_M25589_IG17
inc r14d ;; size=8 bbWeight=0 PerfScore 0.00
-G_M25589_IG24: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M25589_IG25: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp r14d, edi
- jl SHORT G_M25589_IG15
+ jl SHORT G_M25589_IG16
cmp r13, 0x3022B
- jne G_M25589_IG13
+ jne G_M25589_IG14
mov rcx, 0xD1FFAB1E ; gcrRegs +[rcx] call [<unknown method>] @@ -188,7 +190,7 @@ G_M25589_IG24: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov eax, 100 ;; size=39 bbWeight=0 PerfScore 0.00
-G_M25589_IG25: ; bbWeight=0, epilog, nogc, extend
+G_M25589_IG26: ; bbWeight=0, epilog, nogc, extend
add rsp, 264 pop rbx pop rsi @@ -201,7 +203,7 @@ G_M25589_IG25: ; bbWeight=0, epilog, nogc, extend ret ;; size=20 bbWeight=0 PerfScore 0.00
-Total bytes of code 381, prolog size 112, PerfScore 793.44, instruction count 111, allocated bytes for code 381 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
+Total bytes of code 381, prolog size 112, PerfScore 793.53, instruction count 111, allocated bytes for code 381 (MethodHash=b6269c0a) for method Simple2_Array_Test:TestEntryPoint():int (Tier1-OSR)
; ============================================================ Unwind Info:

libraries_tests.run.windows.x64.Release.mch

-5 (-2.46%) : 6889.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -40,17 +40,17 @@ G_M8081_IG03: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp qword ptr [rdi], rsi
- jne G_M8081_IG16
+ jne G_M8081_IG15
cmp byte ptr [rdi+0x4C], 0
- jne G_M8081_IG17
+ jne G_M8081_IG16
mov rcx, gword ptr [rdi+0x30] ; gcrRegs +[rcx] test dword ptr [rcx+0x34], 0xD1FFAB1E
- je G_M8081_IG18
+ je G_M8081_IG17
mov ecx, dword ptr [rdi+0x38] ; gcrRegs -[rcx] cmp ecx, dword ptr [rdi+0x3C]
- je SHORT G_M8081_IG09
+ je SHORT G_M8081_IG10
;; size=48 bbWeight=1.05 PerfScore 23.03 G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rdi+0x28] @@ -58,7 +58,7 @@ G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 { mov ecx, dword ptr [rdi+0x38] mov edx, ecx cmp edx, dword ptr [rax+0x08]
- jae SHORT G_M8081_IG15
+ jae SHORT G_M8081_IG14
movzx rax, word ptr [rax+2*rdx+0x10] ; gcrRegs -[rax] inc ecx @@ -68,22 +68,33 @@ G_M8081_IG05: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b ; gcrRegs -[rdi] inc dword ptr [rbx+0x24] cmp eax, -1
- je SHORT G_M8081_IG13
+ je SHORT G_M8081_IG12
;; size=8 bbWeight=1.05 PerfScore 4.45 G_M8081_IG06: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 10
- je SHORT G_M8081_IG12
+ je SHORT G_M8081_IG09
;; size=5 bbWeight=1.05 PerfScore 1.31 G_M8081_IG07: ; bbWeight=1.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 13 je SHORT G_M8081_IG03 ;; size=5 bbWeight=1.02 PerfScore 1.28
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx]
- jmp SHORT G_M8081_IG11 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx rdi]
+ add rsp, 32 + pop rbx + pop rsi + pop rdi + ret + ;; size=8 bbWeight=1.00 PerfScore 2.75 +G_M8081_IG09: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[rbx] + xor eax, eax + mov dword ptr [rbx+0x24], eax + inc dword ptr [rbx+0x20] + jmp SHORT G_M8081_IG03 + ;; size=10 bbWeight=0.02 PerfScore 0.15 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rdi]
mov rcx, rdi ; gcrRegs +[rcx] call [System.IO.StreamReader:ReadBuffer():int:this] @@ -92,42 +103,27 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 { test eax, eax jne SHORT G_M8081_IG04 ;; size=13 bbWeight=0.00 PerfScore 0.01
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] mov eax, -1 jmp SHORT G_M8081_IG05 ;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx] - add rsp, 32 - pop rbx - pop rsi - pop rdi - ret - ;; size=8 bbWeight=1.00 PerfScore 2.75 -G_M8081_IG12: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx] - xor eax, eax - mov dword ptr [rbx+0x24], eax - inc dword ptr [rbx+0x20] - jmp G_M8081_IG03 - ;; size=13 bbWeight=0.02 PerfScore 0.15 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, -1 ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
add rsp, 32 pop rbx pop rsi pop rdi ret ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi] mov rcx, rdi ; gcrRegs +[rcx] @@ -138,7 +134,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp SHORT G_M8081_IG05 ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[rdi] mov rcx, rdi ; gcrRegs +[rcx] @@ -147,13 +143,13 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byre ; gcr arg pop 0 int3 ;; size=10 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.IO.StreamReader:ThrowAsyncIOInProgress()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-Total bytes of code 203, prolog size 10, PerfScore 49.93, instruction count 65, allocated bytes for code 203 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 198, prolog size 10, PerfScore 48.93, instruction count 64, allocated bytes for code 198 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info:

-5 (-2.46%) : 138589.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -40,17 +40,17 @@ G_M8081_IG03: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp qword ptr [rdi], rsi
- jne G_M8081_IG16
+ jne G_M8081_IG15
cmp byte ptr [rdi+0x4C], 0
- jne G_M8081_IG17
+ jne G_M8081_IG16
mov rcx, gword ptr [rdi+0x30] ; gcrRegs +[rcx] test dword ptr [rcx+0x34], 0xD1FFAB1E
- je G_M8081_IG18
+ je G_M8081_IG17
mov ecx, dword ptr [rdi+0x38] ; gcrRegs -[rcx] cmp ecx, dword ptr [rdi+0x3C]
- je SHORT G_M8081_IG09
+ je SHORT G_M8081_IG10
;; size=48 bbWeight=1.05 PerfScore 23.03 G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rdi+0x28] @@ -58,7 +58,7 @@ G_M8081_IG04: ; bbWeight=1.05, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 { mov ecx, dword ptr [rdi+0x38] mov edx, ecx cmp edx, dword ptr [rax+0x08]
- jae SHORT G_M8081_IG15
+ jae SHORT G_M8081_IG14
movzx rax, word ptr [rax+2*rdx+0x10] ; gcrRegs -[rax] inc ecx @@ -68,22 +68,33 @@ G_M8081_IG05: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b ; gcrRegs -[rdi] inc dword ptr [rbx+0x24] cmp eax, -1
- je SHORT G_M8081_IG13
+ je SHORT G_M8081_IG12
;; size=8 bbWeight=1.05 PerfScore 4.45 G_M8081_IG06: ; bbWeight=1.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 10
- je SHORT G_M8081_IG12
+ je SHORT G_M8081_IG09
;; size=5 bbWeight=1.05 PerfScore 1.31 G_M8081_IG07: ; bbWeight=1.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 13 je SHORT G_M8081_IG03 ;; size=5 bbWeight=1.02 PerfScore 1.28
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx]
- jmp SHORT G_M8081_IG11 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx rdi]
+ add rsp, 32 + pop rbx + pop rsi + pop rdi + ret + ;; size=8 bbWeight=1.00 PerfScore 2.75 +G_M8081_IG09: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[rbx] + xor eax, eax + mov dword ptr [rbx+0x24], eax + inc dword ptr [rbx+0x20] + jmp SHORT G_M8081_IG03 + ;; size=10 bbWeight=0.02 PerfScore 0.15 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rdi]
mov rcx, rdi ; gcrRegs +[rcx] call [System.IO.StreamReader:ReadBuffer():int:this] @@ -92,42 +103,27 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 { test eax, eax jne SHORT G_M8081_IG04 ;; size=13 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] mov eax, -1 jmp SHORT G_M8081_IG05 ;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx] - add rsp, 32 - pop rbx - pop rsi - pop rdi - ret - ;; size=8 bbWeight=1.00 PerfScore 2.75 -G_M8081_IG12: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx] - xor eax, eax - mov dword ptr [rbx+0x24], eax - inc dword ptr [rbx+0x20] - jmp G_M8081_IG03 - ;; size=13 bbWeight=0.02 PerfScore 0.15 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, -1 ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
add rsp, 32 pop rbx pop rsi pop rdi ret ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi] mov rcx, rdi ; gcrRegs +[rcx] @@ -138,7 +134,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp SHORT G_M8081_IG05 ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[rdi] mov rcx, rdi ; gcrRegs +[rcx] @@ -147,13 +143,13 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byre ; gcr arg pop 0 int3 ;; size=10 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.IO.StreamReader:ThrowAsyncIOInProgress()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-Total bytes of code 203, prolog size 10, PerfScore 49.94, instruction count 65, allocated bytes for code 203 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 198, prolog size 10, PerfScore 48.94, instruction count 64, allocated bytes for code 198 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info:

-5 (-2.46%) : 217917.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)

@@ -40,17 +40,17 @@ G_M8081_IG03: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp qword ptr [rdi], rsi
- jne G_M8081_IG16
+ jne G_M8081_IG15
cmp byte ptr [rdi+0x4C], 0
- jne G_M8081_IG17
+ jne G_M8081_IG16
mov rcx, gword ptr [rdi+0x30] ; gcrRegs +[rcx] test dword ptr [rcx+0x34], 0xD1FFAB1E
- je G_M8081_IG18
+ je G_M8081_IG17
mov ecx, dword ptr [rdi+0x38] ; gcrRegs -[rcx] cmp ecx, dword ptr [rdi+0x3C]
- je SHORT G_M8081_IG09
+ je SHORT G_M8081_IG10
;; size=48 bbWeight=1.04 PerfScore 22.99 G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rdi+0x28] @@ -58,7 +58,7 @@ G_M8081_IG04: ; bbWeight=1.04, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 { mov ecx, dword ptr [rdi+0x38] mov edx, ecx cmp edx, dword ptr [rax+0x08]
- jae SHORT G_M8081_IG15
+ jae SHORT G_M8081_IG14
movzx rax, word ptr [rax+2*rdx+0x10] ; gcrRegs -[rax] inc ecx @@ -68,22 +68,33 @@ G_M8081_IG05: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b ; gcrRegs -[rdi] inc dword ptr [rbx+0x24] cmp eax, -1
- je SHORT G_M8081_IG13
+ je SHORT G_M8081_IG12
;; size=8 bbWeight=1.04 PerfScore 4.44 G_M8081_IG06: ; bbWeight=1.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 10
- je SHORT G_M8081_IG12
+ je SHORT G_M8081_IG09
;; size=5 bbWeight=1.04 PerfScore 1.31 G_M8081_IG07: ; bbWeight=1.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz cmp eax, 13 je SHORT G_M8081_IG03 ;; size=5 bbWeight=1.02 PerfScore 1.28
-G_M8081_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx]
- jmp SHORT G_M8081_IG11 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rbx rdi]
+ add rsp, 32 + pop rbx + pop rsi + pop rdi + ret + ;; size=8 bbWeight=1.00 PerfScore 2.75 +G_M8081_IG09: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[rbx] + xor eax, eax + mov dword ptr [rbx+0x24], eax + inc dword ptr [rbx+0x20] + jmp SHORT G_M8081_IG03 + ;; size=10 bbWeight=0.02 PerfScore 0.14 +G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rdi]
mov rcx, rdi ; gcrRegs +[rcx] call [System.IO.StreamReader:ReadBuffer():int:this] @@ -92,42 +103,27 @@ G_M8081_IG09: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 { test eax, eax jne SHORT G_M8081_IG04 ;; size=13 bbWeight=0.00 PerfScore 0.01
-G_M8081_IG10: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG11: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] mov eax, -1 jmp SHORT G_M8081_IG05 ;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx] - add rsp, 32 - pop rbx - pop rsi - pop rdi - ret - ;; size=8 bbWeight=1.00 PerfScore 2.75 -G_M8081_IG12: ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx] - xor eax, eax - mov dword ptr [rbx+0x24], eax - inc dword ptr [rbx+0x20] - jmp G_M8081_IG03 - ;; size=13 bbWeight=0.02 PerfScore 0.14 -G_M8081_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG12: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov eax, -1 ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG14: ; bbWeight=0.00, epilog, nogc, extend
+G_M8081_IG13: ; bbWeight=0.00, epilog, nogc, extend
add rsp, 32 pop rbx pop rsi pop rdi ret ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M8081_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8081_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M8081_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M8081_IG15: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi] mov rcx, rdi ; gcrRegs +[rcx] @@ -138,7 +134,7 @@ G_M8081_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp SHORT G_M8081_IG05 ;; size=15 bbWeight=0 PerfScore 0.00
-G_M8081_IG17: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+G_M8081_IG16: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[rdi] mov rcx, rdi ; gcrRegs +[rcx] @@ -147,13 +143,13 @@ G_M8081_IG17: ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byre ; gcr arg pop 0 int3 ;; size=10 bbWeight=0 PerfScore 0.00
-G_M8081_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8081_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [System.IO.StreamReader:ThrowAsyncIOInProgress()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-Total bytes of code 203, prolog size 10, PerfScore 49.84, instruction count 65, allocated bytes for code 203 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 198, prolog size 10, PerfScore 48.84, instruction count 64, allocated bytes for code 198 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 610036.dasm - System.Text.RegularExpressions.RegexParser:ScanOptions():this (Tier1)

@@ -84,15 +84,13 @@ G_M27765_IG12: ; bbWeight=1.27, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, mov r8, gword ptr [rcx+0x28] ; gcrRegs +[r8] cmp edx, dword ptr [r8+0x08]
- jl SHORT G_M27765_IG03
+ jge SHORT G_M27765_IG10
;; size=16 bbWeight=1.27 PerfScore 13.92
-G_M27765_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M27765_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; gcrRegs -[r8]
- ; byrRegs -[rcx] - jmp SHORT G_M27765_IG10
+ jmp SHORT G_M27765_IG03
;; size=2 bbWeight=0.50 PerfScore 1.00 G_M27765_IG14: ; bbWeight=0.22, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
- ; byrRegs +[rcx]
test eax, eax je SHORT G_M27765_IG11 ;; size=4 bbWeight=0.22 PerfScore 0.27

+3 (+0.70%) : 338365.dasm - System.SpanTests.ReadOnlySpanTests:StartsWithNoMatch_Byte() (Tier1-OSR)

@@ -22,7 +22,7 @@ ; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V10 tmp1 [V10,T01] ( 4,381.63) int -> r8 "dup spill" ; V11 tmp2 [V11,T12] ( 2, 18.33) int -> rcx "Strict ordering of exceptions for Array store"
-; V12 tmp3 [V12,T16] ( 4, 9.17) ubyte -> rbp "Inline return value spill temp"
+; V12 tmp3 [V12,T16] ( 3, 9.17) ubyte -> rbp "Inline return value spill temp"
;* V13 tmp4 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]> ;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V15 tmp6 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]> @@ -50,12 +50,12 @@ ;* V37 tmp28 [V37 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP ;* V38 tmp29 [V38 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP ;* V39 tmp30 [V39,T19] ( 0, 0 ) ubyte -> zero-ref "field V25.hasValue (fldOffset=0x0)" P-INDEP
-; V40 tmp31 [V40,T14] ( 5, 9.17) ubyte -> rbp "field V25.value (fldOffset=0x1)" P-INDEP
+; V40 tmp31 [V40,T17] ( 3, 9.17) ubyte -> rbp "field V25.value (fldOffset=0x1)" P-INDEP
;* V41 tmp32 [V41 ] ( 0, 0 ) ubyte -> zero-ref "field V26.hasValue (fldOffset=0x0)" P-INDEP ;* V42 tmp33 [V42 ] ( 0, 0 ) ubyte -> zero-ref "field V26.value (fldOffset=0x1)" P-INDEP
-; V43 tmp34 [V43,T15] ( 4, 9.17) byref -> rcx "V04.[000..008)"
+; V43 tmp34 [V43,T14] ( 4, 9.17) byref -> rcx "V04.[000..008)"
; V44 tmp35 [V44,T18] ( 3, 9.17) int -> r14 "V04.[008..012)"
-; V45 tmp36 [V45,T17] ( 3, 9.17) byref -> rdx "V05.[000..008)"
+; V45 tmp36 [V45,T15] ( 3, 9.17) byref -> rdx "V05.[000..008)"
; V46 tmp37 [V46,T13] ( 3, 13.75) int -> rbp "V05.[008..012)" ; V47 tmp38 [V47,T23] ( 3, 0 ) struct ( 8) [rsp+0x28] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]> ; V48 cse0 [V48,T03] ( 3,283.36) int -> rcx "CSE - aggressive" @@ -136,7 +136,7 @@ G_M49300_IG07: ; bbWeight=94.45, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 G_M49300_IG08: ; bbWeight=4.58, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref mov ebp, dword ptr [rdx+0x08] cmp edi, ebp
- jae G_M49300_IG20
+ jae G_M49300_IG21
mov ecx, edi movzx rcx, byte ptr [rdx+rcx+0x10] inc ecx @@ -144,7 +144,7 @@ G_M49300_IG08: ; bbWeight=4.58, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 mov r8d, edi mov byte ptr [rdx+r8+0x10], cl test rsi, rsi
- je G_M49300_IG21
+ je G_M49300_IG22
lea rcx, bword ptr [rsi+0x10] ; byrRegs +[rcx] mov r14d, dword ptr [rsi+0x08] @@ -155,7 +155,7 @@ G_M49300_IG09: ; bbWeight=4.58, gcrefRegs=0004 {rdx}, byrefRegs=0002 {rcx ; gcrRegs -[rdx] ; byrRegs +[rdx] cmp ebp, r14d
- jg G_M49300_IG23
+ jg G_M49300_IG24
;; size=13 bbWeight=4.58 PerfScore 6.88 G_M49300_IG10: ; bbWeight=4.58, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz mov r8d, ebp @@ -174,7 +174,7 @@ G_M49300_IG12: ; bbWeight=0.30, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; byrRegs -[rdx] inc ebx cmp ebx, 32
- jge SHORT G_M49300_IG22
+ jge SHORT G_M49300_IG23
jmp G_M49300_IG03 ;; size=12 bbWeight=0.30 PerfScore 1.03 G_M49300_IG13: ; bbWeight=0.04, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref @@ -185,11 +185,11 @@ G_M49300_IG14: ; bbWeight=0.95, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 lea ecx, [rax+0x01] movzx r8, cl cmp eax, ebp
- jae SHORT G_M49300_IG20
+ jae SHORT G_M49300_IG21
mov r10d, eax mov byte ptr [rdx+r10+0x10], r8b cmp eax, dword ptr [rsi+0x08]
- jae SHORT G_M49300_IG20
+ jae SHORT G_M49300_IG21
mov eax, eax mov byte ptr [rsi+rax+0x10], r8b mov eax, ecx @@ -209,43 +209,17 @@ G_M49300_IG16: ; bbWeight=2.29, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rd ;; size=8 bbWeight=2.29 PerfScore 7.45 G_M49300_IG17: ; bbWeight=4.58, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz test ebp, ebp
- jne SHORT G_M49300_IG24
+ jne SHORT G_M49300_IG20
;; size=4 bbWeight=4.58 PerfScore 5.73 G_M49300_IG18: ; bbWeight=4.59, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref inc edi cmp edi, ebx jl G_M49300_IG04 ;; size=10 bbWeight=4.59 PerfScore 6.89
-G_M49300_IG19: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M49300_IG19: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
jmp SHORT G_M49300_IG12
- ;; size=2 bbWeight=0.15 PerfScore 0.30
+ ;; size=2 bbWeight=0.27 PerfScore 0.54
G_M49300_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- call CORINFO_HELP_RNGCHKFAIL - ; gcr arg pop 0 - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M49300_IG21: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rdx] - xor rcx, rcx - ; byrRegs +[rcx] - xor r14d, r14d - jmp SHORT G_M49300_IG09 - ;; size=7 bbWeight=0 PerfScore 0.00 -G_M49300_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rdx] - ; byrRegs -[rcx] - add rsp, 272 - pop rbx - pop rsi - pop rdi - pop r14 - pop rbp - ret - ;; size=14 bbWeight=0 PerfScore 0.00 -G_M49300_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz - xor ebp, ebp - je SHORT G_M49300_IG18 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M49300_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov byte ptr [rsp+0x28], 1 mov byte ptr [rsp+0x29], bpl movzx rdx, word ptr [rsp+0x28] @@ -261,8 +235,34 @@ G_M49300_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 int3 ;; size=32 bbWeight=0 PerfScore 0.00
+G_M49300_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + call CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=5 bbWeight=0 PerfScore 0.00 +G_M49300_IG22: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref + ; gcrRegs +[rdx] + xor rcx, rcx + ; byrRegs +[rcx] + xor r14d, r14d + jmp G_M49300_IG09 + ;; size=10 bbWeight=0 PerfScore 0.00 +G_M49300_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ; gcrRegs -[rdx] + ; byrRegs -[rcx] + add rsp, 272 + pop rbx + pop rsi + pop rdi + pop r14 + pop rbp + ret + ;; size=14 bbWeight=0 PerfScore 0.00 +G_M49300_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz + xor ebp, ebp + jmp SHORT G_M49300_IG17 + ;; size=4 bbWeight=0 PerfScore 0.00
-Total bytes of code 427, prolog size 73, PerfScore 629.05, instruction count 117, allocated bytes for code 427 (MethodHash=51353f6b) for method System.SpanTests.ReadOnlySpanTests:StartsWithNoMatch_Byte() (Tier1-OSR)
+Total bytes of code 430, prolog size 73, PerfScore 629.29, instruction count 117, allocated bytes for code 430 (MethodHash=51353f6b) for method System.SpanTests.ReadOnlySpanTests:StartsWithNoMatch_Byte() (Tier1-OSR)
; ============================================================ Unwind Info:

+15 (+1.42%) : 498969.dasm - System.Uri:CreateUriInfo(ulong):this (Tier1)

@@ -14,10 +14,10 @@ ; V02 loc0 [V02,T03] ( 22, 7.80) ref -> rdi class-hnd exact single-def <System.Uri+UriInfo> ; V03 loc1 [V03,T01] ( 52, 16.97) int -> r14 ; V04 loc2 [V04,T16] ( 5, 2.08) ubyte -> rbp
-; V05 loc3 [V05,T26] ( 3, 0.81) ubyte -> r15
+; V05 loc3 [V05,T26] ( 3, 0.81) ubyte -> r10
; V06 loc4 [V06,T04] ( 7, 7 ) long -> [rsp+0x30] ; V07 loc5 [V07,T36] ( 2, 0.22) int -> rcx
-; V08 loc6 [V08,T30] ( 2, 0.58) int -> rcx
+; V08 loc6 [V08,T30] ( 2, 0.58) int -> r12
; V09 loc7 [V09,T21] ( 4, 1.17) long -> rcx ; V10 loc8 [V10 ] ( 3, 1.53) byref -> [rsp+0x28] must-init pinned ; V11 loc9 [V11,T31] ( 8, 0.53) int -> rdx @@ -27,7 +27,7 @@ ; V15 OutArgs [V15 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Uri+UriInfo> ; V17 tmp2 [V17,T05] ( 4, 6.75) int -> rcx "impSpillLclRefs"
-; V18 tmp3 [V18,T39] ( 3, 0.09) byref -> rdx "dup spill"
+; V18 tmp3 [V18,T39] ( 3, 0.09) byref -> rcx "dup spill"
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String> ;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref single-def ; V21 tmp6 [V21,T24] ( 3, 1.02) long -> rcx @@ -41,32 +41,34 @@ ; V29 tmp14 [V29,T14] ( 5, 2.55) ref -> rcx ;* V30 tmp15 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.UriParser> ; V31 tmp16 [V31,T06] ( 3, 6 ) byref -> rcx single-def "Inlining Arg"
-; V32 tmp17 [V32,T07] ( 3, 5.06) ref -> r8 "arr expr"
+; V32 tmp17 [V32,T07] ( 3, 5.06) ref -> rdx "arr expr"
; V33 tmp18 [V33,T11] ( 2, 3.17) ref -> rcx single-def "arr expr" ; V34 tmp19 [V34,T12] ( 2, 3.14) ref -> rcx single-def "arr expr"
-; V35 tmp20 [V35,T22] ( 2, 1.05) ref -> r8 "arr expr"
+; V35 tmp20 [V35,T22] ( 2, 1.05) ref -> rcx "arr expr"
;* V36 tmp21 [V36,T32] ( 0, 0 ) ref -> zero-ref "arr expr" ; V37 tmp22 [V37,T23] ( 3, 1.03) ref -> rcx "arr expr" ; V38 tmp23 [V38,T27] ( 3, 0.72) ref -> rdx "arr expr" ;* V39 tmp24 [V39,T37] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V40 tmp25 [V40,T10] ( 5, 3.23) ref -> rdx "arr expr"
+; V40 tmp25 [V40,T10] ( 5, 3.23) ref -> rax "arr expr"
; V41 tmp26 [V41,T18] ( 2, 2.04) long -> rcx "Cast away GC"
-; V42 cse0 [V42,T28] ( 3, 0.70) int -> r8 "CSE - conservative"
+; V42 cse0 [V42,T28] ( 3, 0.70) int -> rax "CSE - conservative"
; V43 cse1 [V43,T34] ( 3, 0.35) int -> rdx "CSE - conservative"
-; V44 cse2 [V44,T29] ( 3, 0.61) int -> rax "CSE - conservative" -; V45 cse3 [V45,T08] ( 5, 3.53) ref -> rdx "CSE - moderate" -; V46 cse4 [V46,T20] ( 5, 1.86) ref -> rcx multi-def "CSE - moderate"
+; V44 cse2 [V44,T29] ( 3, 0.61) int -> rcx "CSE - conservative" +; V45 cse3 [V45,T08] ( 5, 3.53) ref -> r15 "CSE - moderate" +; V46 cse4 [V46,T20] ( 5, 1.86) ref -> r15 multi-def "CSE - moderate"
; V47 cse5 [V47,T33] ( 2, 0.24) ref -> rdx "CSE - conservative"
-; V48 cse6 [V48,T09] ( 5, 3.53) int -> rax "CSE - moderate"
+; V48 cse6 [V48,T09] ( 5, 3.53) int -> r13 "CSE - moderate"
; V49 cse7 [V49,T19] ( 2, 2 ) byref -> rsi hoist "CSE - moderate"
-; V50 cse8 [V50,T15] ( 3, 2.35) int -> r8 "CSE - moderate" -; V51 cse9 [V51,T25] ( 3, 0.85) int -> r8 "CSE - conservative"
+; V50 cse8 [V50,T15] ( 3, 2.35) int -> rdx "CSE - moderate" +; V51 cse9 [V51,T25] ( 3, 0.85) int -> r13 "CSE - conservative"
; ; Lcl frame size = 56 G_M10115_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push r15 push r14
+ push r13 + push r12
push rdi push rsi push rbp @@ -77,7 +79,7 @@ G_M10115_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rsi, rcx ; gcrRegs +[rsi] mov rbx, rdx
- ;; size=25 bbWeight=1 PerfScore 8.00
+ ;; size=29 bbWeight=1 PerfScore 10.00
G_M10115_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E ; System.Uri+UriInfo call CORINFO_HELP_NEWSFAST @@ -94,7 +96,7 @@ G_M10115_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr jne G_M10115_IG22 xor ebp, ebp test ebx, 0xD1FFAB1E
- jne G_M10115_IG43
+ jne G_M10115_IG36
;; size=56 bbWeight=1 PerfScore 12.00 G_M10115_IG03: ; bbWeight=0.83, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref ; gcrRegs -[rax] @@ -107,48 +109,48 @@ G_M10115_IG04: ; bbWeight=0.84, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 ; gcrRegs -[rcx] mov ecx, r14d lea r14d, [rcx+0x01]
- mov rdx, gword ptr [rsi+0x08]
+ mov r15, gword ptr [rsi+0x08] + ; gcrRegs +[r15] + mov rdx, r15
; gcrRegs +[rdx]
- mov r8, rdx - ; gcrRegs +[r8] - mov eax, dword ptr [r8+0x08] - cmp ecx, eax - jae G_M10115_IG55 - cmp word ptr [r8+2*rcx+0x0C], 58 - jne G_M10115_IG52
+ mov r13d, dword ptr [rdx+0x08] + cmp ecx, r13d + jae G_M10115_IG54 + cmp word ptr [rdx+2*rcx+0x0C], 58 + jne G_M10115_IG51
;; size=39 bbWeight=0.84 PerfScore 8.65
-G_M10115_IG05: ; bbWeight=0.83, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r8]
+G_M10115_IG05: ; bbWeight=0.83, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rdx]
test ebx, 0xD1FFAB1E je SHORT G_M10115_IG09 ;; size=8 bbWeight=0.83 PerfScore 1.04
-G_M10115_IG06: ; bbWeight=0.79, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref - mov rcx, rdx
+G_M10115_IG06: ; bbWeight=0.79, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref + mov rcx, r15
; gcrRegs +[rcx]
- cmp r14d, eax - jae G_M10115_IG55 - mov r8d, r14d - cmp word ptr [rcx+2*r8+0x0C], 92 - je G_M10115_IG53 - ;; size=28 bbWeight=0.79 PerfScore 4.56 -G_M10115_IG07: ; bbWeight=0.78, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref
+ cmp r14d, r13d + jae G_M10115_IG54 + mov edx, r14d + cmp word ptr [rcx+2*rdx+0x0C], 92 + je G_M10115_IG52 + ;; size=27 bbWeight=0.79 PerfScore 4.56 +G_M10115_IG07: ; bbWeight=0.78, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
- mov rcx, rdx
+ mov rcx, r15
; gcrRegs +[rcx]
- lea r8d, [r14+0x01] - cmp r8d, eax - jae G_M10115_IG55 - cmp word ptr [rcx+2*r8+0x0C], 92 - je G_M10115_IG53 - ;; size=29 bbWeight=0.78 PerfScore 4.71 -G_M10115_IG08: ; bbWeight=0.79, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref
+ lea edx, [r14+0x01] + cmp edx, r13d + jae G_M10115_IG54 + cmp word ptr [rcx+2*rdx+0x0C], 92 + je G_M10115_IG52 + ;; size=28 bbWeight=0.78 PerfScore 4.71 +G_M10115_IG08: ; bbWeight=0.79, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx] add r14d, 2 test ebx, 0xD1FFAB1E
- jne G_M10115_IG41
+ jne G_M10115_IG34
;; size=16 bbWeight=0.79 PerfScore 1.19 G_M10115_IG09: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdx]
+ ; gcrRegs -[r15]
mov rcx, gword ptr [rsi+0x18] ; gcrRegs +[rcx] cmp dword ptr [rcx+0x14], -1 @@ -166,22 +168,22 @@ G_M10115_IG11: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, mov ecx, ebx and ecx, 0xD1FFAB1E cmp ecx, 0xD1FFAB1E
- je G_M10115_IG42
+ je G_M10115_IG35
;; size=20 bbWeight=1 PerfScore 1.75 G_M10115_IG12: ; bbWeight=0.98, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref test ebx, 0xD1FFAB1E
- jne G_M10115_IG42
+ jne G_M10115_IG35
;; size=12 bbWeight=0.98 PerfScore 1.22 G_M10115_IG13: ; bbWeight=0.80, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref mov word ptr [rdi+0x3A], r14w mov ecx, dword ptr [rsi+0x28] and ecx, 0xD1FFAB1E cmp ecx, 0xD1FFAB1E
- je G_M10115_IG49
+ je G_M10115_IG48
;; size=26 bbWeight=0.80 PerfScore 3.59 G_M10115_IG14: ; bbWeight=0.70, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref test ebx, 0xD1FFAB1E
- jne G_M10115_IG33
+ jne G_M10115_IG26
;; size=12 bbWeight=0.70 PerfScore 0.88 G_M10115_IG15: ; bbWeight=0.70, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref mov word ptr [rdi+0x3C], r14w @@ -192,10 +194,10 @@ G_M10115_IG15: ; bbWeight=0.70, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 test ebp, ebp cmovne rbx, rcx mov word ptr [rdi+0x40], r14w
- xor r15d, r15d
+ xor r10d, r10d
mov rcx, 0xD1FFAB1E test rbx, rcx
- jne G_M10115_IG50
+ jne G_M10115_IG49
;; size=56 bbWeight=0.70 PerfScore 3.68 G_M10115_IG16: ; bbWeight=0.70, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz movzx rcx, word ptr [rdi+0x46] @@ -210,24 +212,27 @@ G_M10115_IG17: ; bbWeight=0.51, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 ;; size=9 bbWeight=0.51 PerfScore 1.66 G_M10115_IG18: ; bbWeight=0.51, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx]
- mov rcx, gword ptr [rsi+0x08]
+ mov r15, gword ptr [rsi+0x08] + ; gcrRegs +[r15] + mov rcx, r15
; gcrRegs +[rcx]
- ;; size=4 bbWeight=0.51 PerfScore 1.02
+ ;; size=7 bbWeight=0.51 PerfScore 1.15
G_M10115_IG19: ; bbWeight=0.51, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r15]
test rcx, rcx
- je G_M10115_IG57
+ je G_M10115_IG56
add rcx, 12 ; gcrRegs -[rcx] ; byrRegs +[rcx] mov bword ptr [rsp+0x28], rcx mov rcx, bword ptr [rsp+0x28] ;; size=23 bbWeight=0.51 PerfScore 1.79
-G_M10115_IG20: ; bbWeight=0.51, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG20: ; bbWeight=0.51, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
; byrRegs -[rcx] movsxd rdx, r14d cmp word ptr [rcx+2*rdx], 58
- je SHORT G_M10115_IG27 - ;; size=10 bbWeight=0.51 PerfScore 2.17
+ je G_M10115_IG42 + ;; size=14 bbWeight=0.51 PerfScore 2.17
G_M10115_IG21: ; bbWeight=0.51, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref xor ecx, ecx mov bword ptr [rsp+0x28], rcx @@ -237,7 +242,7 @@ G_M10115_IG22: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, lea rcx, bword ptr [rsi+0x20] ; byrRegs +[rcx] test rcx, rcx
- je G_M10115_IG58
+ je G_M10115_IG57
mov rdx, rdi ; gcrRegs +[rdx] xor r8, r8 @@ -272,142 +277,89 @@ G_M10115_IG24: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, pop rbp pop rsi pop rdi ...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.x64.checked.mch 3 3 0 0 -23 +0
benchmarks.run_tiered.windows.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.x64.checked.mch 2 0 0 2 -0 +0
libraries.crossgen2.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.windows.x64.Release.mch 82 71 2 9 -361 +18
librariestestsnotieredcompilation.run.windows.x64.Release.mch 0 0 0 0 -0 +0
realworld.run.windows.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.windows.x64.checked.mch 0 0 0 0 -0 +0
87 74 2 11 -384 +18

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 27,917 4 27,913 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 102,635 50,161 52,474 19 (0.02%) 19 (0.02%)
benchmarks.run_tiered.windows.x64.checked.mch 54,333 36,871 17,462 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 573,722 341,128 232,594 8 (0.00%) 8 (0.00%)
libraries.crossgen2.windows.x64.checked.mch 2,104 0 2,104 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 309,148 6 309,142 0 (0.00%) 0 (0.00%)
libraries_tests.run.windows.x64.Release.mch 671,224 476,124 195,100 111 (0.02%) 111 (0.02%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 320,489 21,924 298,565 0 (0.00%) 0 (0.00%)
realworld.run.windows.x64.checked.mch 36,887 3 36,884 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 67 0 67 0 (0.00%) 0 (0.00%)
2,098,526 926,221 1,172,305 138 (0.01%) 138 (0.01%)

jit-analyze output

benchmarks.run_pgo.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 35778033 (overridden on cmd)
Total bytes of diff: 35778010 (overridden on cmd)
Total bytes of delta: -23 (-0.00 % of base)
    relative diff is a regression.

Detail diffs



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

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


coreclr_tests.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 392964649 (overridden on cmd)
Total bytes of diff: 392964649 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
    relative diff is a regression.

Detail diffs



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

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


libraries_tests.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 278843071 (overridden on cmd)
Total bytes of diff: 278842728 (overridden on cmd)
Total bytes of delta: -343 (-0.00 % of base)
    relative diff is a regression.

Detail diffs



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