Assembly Diffs
osx arm64
Diffs are based on 2,029,386 contexts (927,368 MinOpts, 1,102,018 FullOpts).
MISSED contexts: 109 (0.01%)
Overall (-264 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
34,533,064 |
-20 |
coreclr_tests.run.osx.arm64.checked.mch |
483,586,020 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
313,700,576 |
-244 |
FullOpts (-264 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
18,159,716 |
-20 |
coreclr_tests.run.osx.arm64.checked.mch |
153,413,252 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
111,962,988 |
-244 |
Example diffs
benchmarks.run_pgo.osx.arm64.checked.mch
-4 (-1.08%) : 59855.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%) : 57938.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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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]
...
coreclr_tests.run.osx.arm64.checked.mch
+0 (0.00%) : 333381.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, #1 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:
+0 (0.00%) : 485434.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, #1 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, #1 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, #1 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%) : 336800.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, #1 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:
libraries_tests.run.osx.arm64.Release.mch
-4 (-1.18%) : 92313.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
@@ -43,19 +43,19 @@ G_M8081_IG03: ; bbWeight=1.02, 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]
ldapur w0, [x0, #0x34]
; gcrRegs -[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=56 bbWeight=1.02 PerfScore 24.58
G_M8081_IG04: ; bbWeight=1.02, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21, #0x28]
@@ -64,7 +64,7 @@ G_M8081_IG04: ; bbWeight=1.02, 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]
@@ -79,22 +79,33 @@ G_M8081_IG05: ; bbWeight=1.02, 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.02 PerfScore 6.15
G_M8081_IG06: ; bbWeight=1.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.02 PerfScore 1.54
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.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
@@ -106,41 +117,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]
@@ -152,7 +148,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]
@@ -165,7 +161,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, #1 LSL #32
@@ -175,7 +171,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 340, prolog size 20, PerfScore 61.45, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 336, prolog size 20, PerfScore 60.95, instruction count 84, allocated bytes for code 336 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================
Unwind Info:
@@ -186,7 +182,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 340 (0x000154)
+ Function Length : 84 (0x00054) Actual length = 336 (0x000150)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.18%) : 117645.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
@@ -43,19 +43,19 @@ G_M8081_IG03: ; bbWeight=1.02, 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]
ldapur w0, [x0, #0x34]
; gcrRegs -[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=56 bbWeight=1.02 PerfScore 24.60
G_M8081_IG04: ; bbWeight=1.02, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21, #0x28]
@@ -64,7 +64,7 @@ G_M8081_IG04: ; bbWeight=1.02, 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]
@@ -79,22 +79,33 @@ G_M8081_IG05: ; bbWeight=1.02, 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.02 PerfScore 6.15
G_M8081_IG06: ; bbWeight=1.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.02 PerfScore 1.54
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.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
@@ -106,41 +117,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]
@@ -152,7 +148,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]
@@ -165,7 +161,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, #1 LSL #32
@@ -175,7 +171,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 340, prolog size 20, PerfScore 61.48, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 336, prolog size 20, PerfScore 60.98, instruction count 84, allocated bytes for code 336 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================
Unwind Info:
@@ -186,7 +182,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 340 (0x000154)
+ Function Length : 84 (0x00054) Actual length = 336 (0x000150)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.18%) : 166241.dasm - Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
@@ -43,19 +43,19 @@ G_M8081_IG03: ; bbWeight=1.02, 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]
ldapur w0, [x0, #0x34]
; gcrRegs -[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=56 bbWeight=1.02 PerfScore 24.59
G_M8081_IG04: ; bbWeight=1.02, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21, #0x28]
@@ -64,7 +64,7 @@ G_M8081_IG04: ; bbWeight=1.02, 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]
@@ -79,22 +79,33 @@ G_M8081_IG05: ; bbWeight=1.02, 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.02 PerfScore 6.15
G_M8081_IG06: ; bbWeight=1.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w0, #10
- beq G_M8081_IG12
+ beq G_M8081_IG09
;; size=8 bbWeight=1.02 PerfScore 1.54
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.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
@@ -106,41 +117,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]
@@ -152,7 +148,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]
@@ -165,7 +161,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, #1 LSL #32
@@ -175,7 +171,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 340, prolog size 20, PerfScore 61.47, instruction count 85, allocated bytes for code 340 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
+Total bytes of code 336, prolog size 20, PerfScore 60.97, instruction count 84, allocated bytes for code 336 (MethodHash=e2a4e06e) for method Xunit.JsonBuffer:ReadNextChar():int:this (Tier1)
; ============================================================
Unwind Info:
@@ -186,7 +182,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 340 (0x000154)
+ Function Length : 84 (0x00054) Actual length = 336 (0x000150)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.38%) : 373385.dasm - System.Uri:CreateUriInfo(ulong):this (Tier1)
@@ -18,10 +18,10 @@
; V06 loc4 [V06,T04] ( 7, 7 ) long -> x0
; V07 loc5 [V07,T39] ( 2, 0.00) int -> x24
; V08 loc6 [V08,T35] ( 2, 0.00) int -> x0
-; V09 loc7 [V09,T20] ( 4, 0.47) long -> x23
+; V09 loc7 [V09,T20] ( 4, 0.47) long -> x0
; V10 loc8 [V10 ] ( 3, 0.56) byref -> [fp+0x18] must-init pinned
-; V11 loc9 [V11,T23] ( 8, 0.28) int -> x4
-; V12 loc10 [V12,T24] ( 3, 0.20) int -> x0
+; V11 loc9 [V11,T23] ( 8, 0.28) int -> x1
+; V12 loc10 [V12,T24] ( 3, 0.20) int -> x2
;* V13 loc11 [V13 ] ( 0, 0 ) long -> zero-ref
; V14 loc12 [V14,T08] ( 3, 3 ) long -> x3
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -30,10 +30,10 @@
; V18 tmp3 [V18,T27] ( 3, 0.06) 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,T21] ( 3, 0.37) long -> x23
+; V21 tmp6 [V21,T21] ( 3, 0.37) long -> x0
; V22 tmp7 [V22,T25] ( 2, 0.12) int -> x25 "dup spill"
;* V23 tmp8 [V23 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V24 tmp9 [V24,T41] ( 3, 0 ) byref -> x3 "dup spill"
+; V24 tmp9 [V24,T41] ( 3, 0 ) byref -> x0 "dup spill"
;* V25 tmp10 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.UriParser>
;* V26 tmp11 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.UriParser>
;* V27 tmp12 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.UriParser>
@@ -50,7 +50,7 @@
; V38 tmp23 [V38,T32] ( 3, 0.00) ref -> x0 "arr expr"
;* V39 tmp24 [V39,T40] ( 0, 0 ) ref -> zero-ref "arr expr"
; V40 tmp25 [V40,T26] ( 3, 0.00) ref -> x23 "arr expr"
-; V41 tmp26 [V41,T17] ( 2, 0.74) long -> x23 "Cast away GC"
+; V41 tmp26 [V41,T17] ( 2, 0.74) long -> x0 "Cast away GC"
; V42 cse0 [V42,T33] ( 3, 0.00) int -> x1 "CSE - conservative"
; V43 cse1 [V43,T37] ( 3, 0.00) int -> x0 "CSE - conservative"
; V44 cse2 [V44,T12] ( 3, 2.21) int -> x0 "CSE - aggressive"
@@ -95,7 +95,7 @@ G_M10115_IG02: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
;; size=40 bbWeight=1 PerfScore 14.00
G_M10115_IG03: ; bbWeight=1.00, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
mov w22, wzr
- tbnz w19, #29, G_M10115_IG40
+ tbnz w19, #29, G_M10115_IG50
;; size=8 bbWeight=1.00 PerfScore 1.50
G_M10115_IG04: ; bbWeight=1.00, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
ldr x0, [x20, #0x18]
@@ -111,16 +111,16 @@ G_M10115_IG05: ; bbWeight=1.01, gcrefRegs=300000 {x20 x21}, byrefRegs=000
; gcrRegs +[x0]
ldr w24, [x0, #0x08]
cmp w23, w24
- bhs G_M10115_IG61
+ bhs G_M10115_IG62
add x26, x0, #12
; byrRegs +[x26]
ldrh w0, [x26, w23, UXTW #2]
; gcrRegs -[x0]
cmp w0, #58
- bne G_M10115_IG49
+ bne G_M10115_IG48
;; size=40 bbWeight=1.01 PerfScore 13.66
G_M10115_IG06: ; bbWeight=1.00, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
- tbnz w19, #20, G_M10115_IG25
+ tbnz w19, #20, G_M10115_IG14
;; size=4 bbWeight=1.00 PerfScore 1.00
G_M10115_IG07: ; bbWeight=1.00, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x26]
@@ -129,12 +129,12 @@ G_M10115_IG07: ; bbWeight=1.00, gcrefRegs=300000 {x20 x21}, byrefRegs=000
ldr w0, [x0, #0x14]
; gcrRegs -[x0]
cmn w0, #1
- bne G_M10115_IG30
+ bne G_M10115_IG33
;; size=16 bbWeight=1.00 PerfScore 7.51
G_M10115_IG08: ; bbWeight=1.00, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
and w0, w19, #0xD1FFAB1E
cmp w0, #112, LSL #12
- bne G_M10115_IG15
+ bne G_M10115_IG16
;; size=12 bbWeight=1.00 PerfScore 2.00
G_M10115_IG09: ; bbWeight=0.74, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
strh w19, [x21, #0x3A]
@@ -150,7 +150,7 @@ G_M10115_IG10: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {
orr x19, x19, #0xD1FFAB1E
add x0, x20, #32
; byrRegs +[x0]
- cbz x0, G_M10115_IG62
+ cbz x0, G_M10115_IG63
mov x1, x21
; gcrRegs +[x1]
mov x2, xzr
@@ -185,27 +185,36 @@ G_M10115_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10115_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, gcvars, byref, isz
; byrRegs +[x1]
mov x0, x3
- tbz w0, #30, G_M10115_IG11
- ;; size=8 bbWeight=1 PerfScore 1.50
-G_M10115_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x1]
- b G_M10115_IG12
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M10115_IG15: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ tbnz w0, #30, G_M10115_IG12
+ b G_M10115_IG11
+ ;; size=12 bbWeight=1 PerfScore 2.50
+G_M10115_IG14: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
; gcrRegs +[x20-x21]
- tbnz w19, #27, G_M10115_IG09
+ ; byrRegs -[x1] +[x26]
+ cmp w25, w24
+ bhs G_M10115_IG62
+ ldrh w0, [x26, w25, UXTW #2]
+ cmp w0, #92
+ beq G_M10115_IG49
+ ;; size=20 bbWeight=0.27 PerfScore 1.60
+G_M10115_IG15: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref
+ b G_M10115_IG26
;; size=4 bbWeight=0.27 PerfScore 0.27
G_M10115_IG16: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[x26]
+ tbnz w19, #27, G_M10115_IG09
+ ;; size=4 bbWeight=0.27 PerfScore 0.27
+G_M10115_IG17: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
strh w25, [x21, #0x3A]
ldr w0, [x20, #0x28]
and w0, w0, #0xD1FFAB1E
cmp w0, #80, LSL #12
- beq G_M10115_IG59
+ beq G_M10115_IG58
;; size=20 bbWeight=0.27 PerfScore 1.60
-G_M10115_IG17: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- tbnz w19, #21, G_M10115_IG46
- ;; size=4 bbWeight=0.27 PerfScore 0.27
G_M10115_IG18: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ tbnz w19, #21, G_M10115_IG43
+ ;; size=4 bbWeight=0.27 PerfScore 0.27
+G_M10115_IG19: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
strh w25, [x21, #0x3C]
uxth w25, w19
and x19, x19, #0xD1FFAB1E
@@ -214,55 +223,47 @@ G_M10115_IG18: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=000
csel x19, x19, x0, eq
strh w25, [x21, #0x40]
mov w3, wzr
- tbnz x19, #33, G_M10115_IG31
+ tbnz x19, #33, G_M10115_IG34
;; size=36 bbWeight=0.27 PerfScore 1.60
-G_M10115_IG19: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG20: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldrh w0, [x21, #0x46]
cmp w25, w0
bge G_M10115_IG10
;; size=12 bbWeight=0.27 PerfScore 1.20
-G_M10115_IG20: ; bbWeight=0.19, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG21: ; bbWeight=0.19, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x4, [x20, #0x10]
; gcrRegs +[x4]
- cbz x4, G_M10115_IG60
+ cbz x4, G_M10115_IG61
;; size=8 bbWeight=0.19 PerfScore 0.74
-G_M10115_IG21: ; bbWeight=0.19, gcrefRegs=300010 {x4 x20 x21}, byrefRegs=0000 {}, byref, isz
- cbz x4, G_M10115_IG58
+G_M10115_IG22: ; bbWeight=0.19, gcrefRegs=300010 {x4 x20 x21}, byrefRegs=0000 {}, byref, isz
+ cbz x4, G_M10115_IG54
;; size=4 bbWeight=0.19 PerfScore 0.19
-G_M10115_IG22: ; bbWeight=0.19, gcrefRegs=300010 {x4 x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG23: ; bbWeight=0.19, gcrefRegs=300010 {x4 x20 x21}, byrefRegs=0000 {}, byref
add x0, x4, #12
; byrRegs +[x0]
str x0, [fp, #0x18] // [V10 loc8]
- ldr x23, [fp, #0x18] // [V10 loc8]
- ; byrRegs +[x23]
+ ldr x0, [fp, #0x18] // [V10 loc8]
;; size=12 bbWeight=0.19 PerfScore 0.65
-G_M10115_IG23: ; bbWeight=0.19, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M10115_IG24: ; bbWeight=0.19, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x4]
- ; byrRegs -[x0 x23]
- ldrh w0, [x23, w25, SXTW #2]
- cmp w0, #58
- beq G_M10115_IG32
+ ; byrRegs -[x0]
+ ldrh w1, [x0, w25, SXTW #2]
+ cmp w1, #58
+ beq G_M10115_IG35
;; size=12 bbWeight=0.19 PerfScore 0.83
-G_M10115_IG24: ; bbWeight=0.19, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG25: ; bbWeight=0.19, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
str xzr, [fp, #0x18] // [V10 loc8]
b G_M10115_IG10
;; size=8 bbWeight=0.19 PerfScore 0.37
-G_M10115_IG25: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
- ; byrRegs +[x26]
- cmp w25, w24
- bhs G_M10115_IG61
- ldrh w0, [x26, w25, UXTW #2]
- cmp w0, #92
- beq G_M10115_IG29
- ;; size=20 bbWeight=0.27 PerfScore 1.60
G_M10115_IG26: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
+ ; byrRegs +[x26]
add w0, w25, #1
cmp w0, w24
- bhs G_M10115_IG61
+ bhs G_M10115_IG62
add w0, w25, #1
ldrh w0, [x26, w0, UXTW #2]
cmp w0, #92
- beq G_M10115_IG29
+ beq G_M10115_IG49
;; size=28 bbWeight=0.27 PerfScore 1.86
G_M10115_IG27: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
add w25, w25, #2
@@ -271,92 +272,154 @@ G_M10115_IG27: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=400
;; size=12 bbWeight=0.27 PerfScore 0.53
G_M10115_IG28: ; bbWeight=0.00, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref
uxth w0, w19
- b G_M10115_IG54
+ ;; size=4 bbWeight=0.00 PerfScore 0.00
+G_M10115_IG29: ; bbWeight=0.00, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
+ cmp w25, w0
+ bge G_M10115_IG07
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M10115_IG29: ; bbWeight=0.00, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref
- mov w22, #1
- b G_M10115_IG27
+G_M10115_IG30: ; bbWeight=0.00, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
+ cmp w25, w24
+ bhs G_M10115_IG62
+ ldrh w1, [x26, w25, UXTW #2]
+ cmp w1, #47
+ beq G_M10115_IG55
+ ;; size=20 bbWeight=0.00 PerfScore 0.00
+G_M10115_IG31: ; bbWeight=0.00, gcrefRegs=300000 {x20 x21}, byrefRegs=4000000 {x26}, byref, isz
+ cmp w1, #92
+ beq G_M10115_IG55
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M10115_IG30: ; bbWeight=0.26, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M10115_IG32: ; bbWeight=0.00, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; byrRegs -[x26]
- ldr x0, [x20, #0x18]
- ; gcrRegs +[x0]
- ldrh w0, [x0, #0x14]
- ; gcrRegs -[x0]
+ b G_M10115_IG07
+ ;; size=4 bbWeight=0.00 PerfScore 0.00
+G_M10115_IG33: ; bbWeight=0.26, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+ ldr x1, [x20, #0x18]
+ ; gcrRegs +[x1]
+ ldrh w0, [x1, #0x14]
strh w0, [x21, #0x3E]
b G_M10115_IG08
...
+4 (+0.46%) : 562789.dasm - System.Buffers.Text.Base64:DecodeWithWhiteSpaceBlockwise(System.ReadOnlySpan1[ubyte],System.Span
1[ubyte],byref,byref,ubyte):int (Tier1)
@@ -77,7 +77,7 @@
; V65 tmp48 [V65,T32] ( 2, 0 ) byref -> x26 "field V44._reference (fldOffset=0x0)" P-INDEP
; V66 tmp49 [V66,T33] ( 2, 0 ) int -> x27 "field V44._length (fldOffset=0x8)" P-INDEP
; V67 tmp50 [V67,T07] ( 5, 7 ) byref -> x22 "V00.[000..008)"
-; V68 tmp51 [V68,T02] ( 10, 12 ) int -> x23 "V00.[008..012)"
+; V68 tmp51 [V68,T02] ( 11, 12 ) 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, 12 ) int -> x0 "CSE - aggressive"
; V71 cse1 [V71,T17] ( 3, 3 ) int -> x25 "CSE - aggressive"
@@ -244,13 +244,13 @@ G_M35087_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=28 bbWeight=1 PerfScore 7.00
G_M35087_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=1580000 {x19 x20 x22 x24}, gcvars, byref, isz
; byrRegs +[x19-x20 x22 x24]
- cbnz w23, G_M35087_IG03
+ cbz w23, G_M35087_IG11
;; size=4 bbWeight=1 PerfScore 1.00
-G_M35087_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19-x20 x22 x24]
- b G_M35087_IG11
+G_M35087_IG14: ; 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_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x19-x20 x22 x24]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -318,8 +318,9 @@ G_M35087_IG22: ; 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_IG13
- ;; size=80 bbWeight=0 PerfScore 0.00
+ cbnz w23, G_M35087_IG03
+ b G_M35087_IG11
+ ;; size=84 bbWeight=0 PerfScore 0.00
G_M35087_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=580000 {x19 x20 x22}, byref
; byrRegs -[x24 x26]
mov w0, wzr
@@ -388,7 +389,7 @@ G_M35087_IG28: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-Total bytes of code 876, prolog size 68, PerfScore 147.50, instruction count 219, allocated bytes for code 876 (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 880, prolog size 68, PerfScore 147.50, instruction count 220, allocated bytes for code 880 (MethodHash=91d476f0) for method System.Buffers.Text.Base64:DecodeWithWhiteSpaceBlockwise(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,byref,ubyte):int (Tier1)
; ============================================================
Unwind Info:
@@ -399,7 +400,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 219 (0x000db) Actual length = 876 (0x00036c)
+ Function Length : 220 (0x000dc) Actual length = 880 (0x000370)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.53%) : 326839.dasm - System.IPv6AddressHelper:InternalIsValid(ulong,int,byref,ubyte):ubyte (Tier1)
@@ -21,19 +21,19 @@
; V09 loc5 [V09,T05] ( 5, 21.38) ubyte -> x26
; V10 loc6 [V10,T11] ( 3, 1.15) int -> x27
; V11 loc7 [V11 ] ( 21,111.08) int -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op
-; V12 loc8 [V12,T14] ( 3, 0.54) int -> x1
-; V13 loc9 [V13,T07] ( 7, 5.00) ushort -> x28
+; V12 loc8 [V12,T14] ( 3, 0.54) int -> x25
+; V13 loc9 [V13,T07] ( 7, 5.00) ushort -> x2
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V15 tmp1 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 tmp2 [V16,T13] ( 3, 0.92) int -> x0 "dup spill"
; V17 tmp3 [V17,T16] ( 2, 0 ) int -> x5
;* V18 tmp4 [V18 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V19 tmp5 [V19,T00] ( 3, 62.77) long -> x2 "Inline stloc first use temp"
+; V19 tmp5 [V19,T00] ( 3, 62.77) long -> x0 "Inline stloc first use temp"
;* V20 tmp6 [V20 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V21 tmp7 [V21 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V22 tmp8 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp9 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V24 cse0 [V24,T15] ( 3, 0.38) int -> x0 "CSE - conservative"
+; V24 cse0 [V24,T15] ( 3, 0.38) int -> x28 "CSE - conservative"
;
; Lcl frame size = 16
@@ -59,41 +59,41 @@ G_M23448_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
mov w25, wzr
mov w26, #1
mov w27, #1
- ldrh w2, [x19, w21, SXTW #2]
- cmp w2, #58
+ ldrh w0, [x19, w21, SXTW #2]
+ cmp w0, #58
beq G_M23448_IG05
;; size=40 bbWeight=1 PerfScore 8.00
G_M23448_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
str w21, [fp, #0x18] // [V11 loc7]
- ldr w2, [fp, #0x18] // [V11 loc7]
- ldr w0, [x20]
- cmp w2, w0
- bge G_M23448_IG22
+ ldr w0, [fp, #0x18] // [V11 loc7]
+ ldr w2, [x20]
+ cmp w0, w2
+ bge G_M23448_IG19
;; size=20 bbWeight=1 PerfScore 7.50
G_M23448_IG04: ; bbWeight=20.92, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbnz w25, G_M23448_IG09
- ldr w2, [fp, #0x18] // [V11 loc7]
- ldrh w2, [x19, w2, SXTW #2]
- sub w2, w2, #48
- mov w2, w2
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #32
- movk x0, #0xD1FFAB1E LSL #48
- lsl x0, x0, x2
- sub x2, x2, #64
- and x2, x0, x2
- tbz x2, #63, G_M23448_IG11
+ ldr w0, [fp, #0x18] // [V11 loc7]
+ ldrh w0, [x19, w0, SXTW #2]
+ sub w0, w0, #48
+ mov w0, w0
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #32
+ movk x2, #0xD1FFAB1E LSL #48
+ lsl x2, x2, x0
+ sub x0, x0, #64
+ and x0, x2, x0
+ tbz x0, #63, G_M23448_IG11
b G_M23448_IG10
;; size=52 bbWeight=20.92 PerfScore 251.08
G_M23448_IG05: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- add w2, w21, #1
- ldr w0, [x20]
- cmp w2, w0
- bge G_M23448_IG19
- add w2, w21, #1
- ldrh w2, [x19, w2, SXTW #2]
- cmp w2, #58
- bne G_M23448_IG19
+ add w0, w21, #1
+ ldr w2, [x20]
+ cmp w0, w2
+ bge G_M23448_IG17
+ add w0, w21, #1
+ ldrh w0, [x19, w0, SXTW #2]
+ cmp w0, #58
+ bne G_M23448_IG17
b G_M23448_IG03
;; size=36 bbWeight=0.08 PerfScore 0.85
G_M23448_IG06: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
@@ -104,18 +104,18 @@ G_M23448_IG07: ; bbWeight=21.38, gcrefRegs=0000 {}, byrefRegs=100000 {x20
add w0, w0, #1
str w0, [fp, #0x18] // [V11 loc7]
ldr w0, [fp, #0x18] // [V11 loc7]
- ldr w1, [x20]
- cmp w0, w1
+ ldr w2, [x20]
+ cmp w0, w2
blt G_M23448_IG04
;; size=28 bbWeight=21.38 PerfScore 213.85
G_M23448_IG08: ; bbWeight=0.46, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
- b G_M23448_IG22
+ b G_M23448_IG19
;; size=4 bbWeight=0.46 PerfScore 0.46
G_M23448_IG09: ; bbWeight=20.92, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- ldr w2, [fp, #0x18] // [V11 loc7]
- ldrh w2, [x19, w2, SXTW #2]
- sub w2, w2, #48
- cmp w2, #9
+ ldr w0, [fp, #0x18] // [V11 loc7]
+ ldrh w0, [x19, w0, SXTW #2]
+ sub w0, w0, #48
+ cmp w0, #9
bhi G_M23448_IG11
;; size=20 bbWeight=20.92 PerfScore 146.46
G_M23448_IG10: ; bbWeight=19.77, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
@@ -125,40 +125,88 @@ G_M23448_IG10: ; bbWeight=19.77, gcrefRegs=0000 {}, byrefRegs=100000 {x20
;; size=12 bbWeight=19.77 PerfScore 39.54
G_M23448_IG11: ; bbWeight=1.15, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cmp w5, #4
- bgt G_M23448_IG19
+ bgt G_M23448_IG17
;; size=8 bbWeight=1.15 PerfScore 1.73
G_M23448_IG12: ; bbWeight=1.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- cbnz w5, G_M23448_IG25
+ cbnz w5, G_M23448_IG30
;; size=4 bbWeight=1.08 PerfScore 1.08
G_M23448_IG13: ; bbWeight=1.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- ldr w2, [fp, #0x18] // [V11 loc7]
- ldrh w28, [x19, w2, SXTW #2]
- cmp w28, #46
- bls G_M23448_IG17
+ ldr w0, [fp, #0x18] // [V11 loc7]
+ ldrh w2, [x19, w0, SXTW #2]
+ cmp w2, #46
+ bls G_M23448_IG24
;; size=16 bbWeight=1.08 PerfScore 7.00
G_M23448_IG14: ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- cmp w28, #47
- beq G_M23448_IG34
- cmp w28, #58
- beq G_M23448_IG29
+ cmp w2, #47
+ beq G_M23448_IG35
+ cmp w2, #58
+ beq G_M23448_IG22
;; size=16 bbWeight=0.92 PerfScore 2.77
G_M23448_IG15: ; bbWeight=0.77, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- cmp w28, #93
- beq G_M23448_IG21
+ cmp w2, #93
+ bne G_M23448_IG17
;; size=8 bbWeight=0.77 PerfScore 1.15
-G_M23448_IG16: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M23448_IG16: ; bbWeight=0.46, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref
+ ldr w21, [fp, #0x18] // [V11 loc7]
+ ldr w0, [x20]
+ str w0, [fp, #0x18] // [V11 loc7]
+ b G_M23448_IG07
+ ;; size=16 bbWeight=0.46 PerfScore 3.23
+G_M23448_IG17: ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[x20]
- b G_M23448_IG19
- ;; size=4 bbWeight=0.38 PerfScore 0.38
-G_M23448_IG17: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ mov w0, wzr
+ ;; size=4 bbWeight=0.92 PerfScore 0.46
+G_M23448_IG18: ; bbWeight=0.92, epilog, nogc, extend
+ ldp x27, x28, [sp, #0x60]
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x70
+ ret lr
+ ;; size=28 bbWeight=0.92 PerfScore 6.46
+G_M23448_IG19: ; bbWeight=0.46, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref, isz
; byrRegs +[x20]
- cmp w28, #37
+ cbnz w25, G_M23448_IG33
+ ;; size=4 bbWeight=0.46 PerfScore 0.46
+G_M23448_IG20: ; bbWeight=0.46, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ cmp w25, #0
+ cset x0, ne
+ add w25, w0, #8
+ cbnz w26, G_M23448_IG17
+ ;; size=16 bbWeight=0.46 PerfScore 1.15
+G_M23448_IG21: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ cmp w5, #4
+ bgt G_M23448_IG17
+ cbz w24, G_M23448_IG34
+ cmp w23, w25
+ bge G_M23448_IG17
+ b G_M23448_IG31
+ ;; size=24 bbWeight=0.08 PerfScore 0.38
+G_M23448_IG22: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ ldr w5, [fp, #0x18] // [V11 loc7]
+ cmp w5, #0
+ ble G_M23448_IG29
+ ldr w0, [fp, #0x18] // [V11 loc7]
+ sub w0, w0, #1
+ ldrh w0, [x19, w0, SXTW #2]
+ cmp w0, #58
+ bne G_M23448_IG29
+ ;; size=32 bbWeight=0.15 PerfScore 1.62
+G_M23448_IG23: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ cbnz w24, G_M23448_IG17
+ mov w24, #1
+ mov w26, wzr
+ b G_M23448_IG06
+ ;; size=16 bbWeight=0.08 PerfScore 0.23
+G_M23448_IG24: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ cmp w2, #37
beq G_M23448_IG26
;; size=8 bbWeight=0.15 PerfScore 0.23
-G_M23448_IG18: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
- cmp w28, #46
- bne G_M23448_IG19
- cbnz w6, G_M23448_IG19
+G_M23448_IG25: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
+ cmp w2, #46
+ bne G_M23448_IG17
+ cbnz w6, G_M23448_IG17
ldr w2, [x20]
str w2, [fp, #0x18] // [V11 loc7]
add x2, fp, #24 // [V11 loc7]
@@ -172,101 +220,49 @@ G_M23448_IG18: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=100000 {x20}
ldr x5, [x5]
blr x5
; gcr arg pop 0
- cbnz w0, G_M23448_IG35
- ;; size=64 bbWeight=0.08 PerfScore 1.19
-G_M23448_IG19: ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x20]
- mov w0, wzr
- ;; size=4 bbWeight=0.92 PerfScore 0.46
-G_M23448_IG20: ; bbWeight=0.92, epilog, nogc, extend
- ldp x27, x28, [sp, #0x60]
- ldp x25, x26, [sp, #0x50]
- ldp x23, x24, [sp, #0x40]
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldp fp, lr, [sp], #0x70
- ret lr
- ;; size=28 bbWeight=0.92 PerfScore 6.46
-G_M23448_IG21: ; bbWeight=0.46, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, gcvars, byref
- ; byrRegs +[x20]
- ldr w21, [fp, #0x18] // [V11 loc7]
- ldr w0, [x20]
...
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
benchmarks.run_pgo.osx.arm64.checked.mch |
2 |
2 |
0 |
0 |
-20 |
+0 |
benchmarks.run_tiered.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
coreclr_tests.run.osx.arm64.checked.mch |
3 |
0 |
0 |
3 |
-0 |
+0 |
libraries.crossgen2.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries.pmi.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
63 |
53 |
3 |
7 |
-256 |
+12 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
realworld.run.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
68 |
55 |
3 |
10 |
-276 |
+12 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.osx.arm64.checked.mch |
24,861 |
5 |
24,856 |
0 (0.00%) |
0 (0.00%) |
benchmarks.run_pgo.osx.arm64.checked.mch |
84,163 |
48,254 |
35,909 |
13 (0.02%) |
13 (0.02%) |
benchmarks.run_tiered.osx.arm64.checked.mch |
48,057 |
37,339 |
10,718 |
0 (0.00%) |
0 (0.00%) |
coreclr_tests.run.osx.arm64.checked.mch |
584,881 |
356,502 |
228,379 |
7 (0.00%) |
7 (0.00%) |
libraries.crossgen2.osx.arm64.checked.mch |
1,881 |
0 |
1,881 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.osx.arm64.checked.mch |
316,291 |
18 |
316,273 |
3 (0.00%) |
3 (0.00%) |
libraries_tests.run.osx.arm64.Release.mch |
634,566 |
463,650 |
170,916 |
83 (0.01%) |
83 (0.01%) |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
303,144 |
21,597 |
281,547 |
2 (0.00%) |
2 (0.00%) |
realworld.run.osx.arm64.checked.mch |
31,542 |
3 |
31,539 |
1 (0.00%) |
1 (0.00%) |
|
2,029,386 |
927,368 |
1,102,018 |
109 (0.01%) |
109 (0.01%) |
jit-analyze output
benchmarks.run_pgo.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34533064 (overridden on cmd)
Total bytes of diff: 34533044 (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.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 483586020 (overridden on cmd)
Total bytes of diff: 483586020 (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.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 313700576 (overridden on cmd)
Total bytes of diff: 313700332 (overridden on cmd)
Total bytes of delta: -244 (-0.00 % of base)
relative diff is a regression.
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 49 unchanged.