Diffs are based on 2,501,661 contexts (1,003,806 MinOpts, 1,497,855 FullOpts).
MISSED contexts: base: 3,546 (0.14%), diff: 3,556 (0.14%)
Overall (+1,884 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch
80,912,504
-64
coreclr_tests.run.linux.arm64.checked.mch
509,947,608
+260
libraries.pmi.linux.arm64.checked.mch
75,989,468
+168
libraries_tests.run.linux.arm64.Release.mch
381,322,764
+1,596
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
162,528,980
-76
FullOpts (+1,884 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch
55,976,044
-64
coreclr_tests.run.linux.arm64.checked.mch
160,722,552
+260
libraries.pmi.linux.arm64.checked.mch
75,869,484
+168
libraries_tests.run.linux.arm64.Release.mch
166,025,624
+1,596
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
149,047,768
-76
Example diffs
benchmarks.run_pgo.linux.arm64.checked.mch
-24 (-1.09%) : 85323.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
@@ -52,7 +52,7 @@
;* V40 tmp30 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
;* V41 tmp31 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
; V42 tmp32 [V42 ] ( 5, 2 ) struct ( 8) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder>
-; V43 tmp33 [V43,T34] ( 3, 2 ) int -> registers "impAppendStmt"
+; V43 tmp33 [V43,T34] ( 3, 2 ) int -> x28 "impAppendStmt"
;* V44 tmp34 [V44 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Reflection.Metadata.Ecma335.SignatureTypeEncoder>
;* V45 tmp35 [V45 ] ( 0, 0 ) struct ( 8) zero-ref "non-inline candidate call" <System.Reflection.Metadata.Ecma335.CustomModifiersEncoder>
;* V46 tmp36 [V46 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
@@ -66,11 +66,11 @@
;* V54 tmp44 [V54 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V55 tmp45 [V55 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V56 tmp46 [V56 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.SignatureTypeEncoder>
-; V57 tmp47 [V57,T87] ( 4, 0 ) ref -> x22 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-; V58 tmp48 [V58,T91] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
+; V57 tmp47 [V57,T86] ( 4, 0 ) ref -> x22 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+; V58 tmp48 [V58,T90] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
;* V59 tmp49 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V60 tmp50 [V60,T88] ( 4, 0 ) ref -> x22 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-; V61 tmp51 [V61,T92] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
+; V60 tmp50 [V60,T87] ( 4, 0 ) ref -> x22 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+; V61 tmp51 [V61,T91] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
;* V62 tmp52 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
; V63 tmp53 [V63,T35] ( 2, 2 ) ref -> x28 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
; V64 tmp54 [V64,T31] ( 4, 2 ) int -> x3 "Inline stloc first use temp"
@@ -173,8 +173,8 @@
;* V161 tmp151 [V161 ] ( 0, 0 ) ref -> zero-ref "field V41.array (fldOffset=0x0)" P-INDEP
; V162 tmp152 [V162 ] ( 5, 1 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V42.<Builder>k__BackingField (fldOffset=0x0)" P-DEP
;* V163 tmp153 [V163 ] ( 0, 0 ) ref -> zero-ref "field V44.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-; V164 tmp154 [V164,T93] ( 2, 0 ) ref -> x22 "field V45.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-; V165 tmp155 [V165,T94] ( 2, 0 ) ref -> x2 "field V46.array (fldOffset=0x0)" P-INDEP
+; V164 tmp154 [V164,T92] ( 2, 0 ) ref -> x22 "field V45.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
+; V165 tmp155 [V165,T93] ( 2, 0 ) ref -> x2 "field V46.array (fldOffset=0x0)" P-INDEP
; V166 tmp156 [V166,T57] ( 3, 1 ) ref -> x28 "field V47.array (fldOffset=0x0)" P-INDEP
; V167 tmp157 [V167,T64] ( 2, 1 ) ref -> x28 "field V56.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
; V168 tmp158 [V168,T30] ( 7, 2 ) int -> x26 single-def "field V65._value (fldOffset=0x0)" P-INDEP
@@ -224,12 +224,12 @@
;* V212 tmp202 [V212 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
;* V213 tmp203 [V213 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
;* V214 tmp204 [V214 ] ( 0, 0 ) ref -> zero-ref "field V118.array (fldOffset=0x0)" P-INDEP
-; V215 tmp205 [V215,T95] ( 2, 0 ) ref -> x1 "field V122.array (fldOffset=0x0)" P-INDEP
+; V215 tmp205 [V215,T94] ( 2, 0 ) ref -> x1 "field V122.array (fldOffset=0x0)" P-INDEP
; V216 tmp206 [V216,T69] ( 2, 1 ) int -> x26 single-def "field V140._rowId (fldOffset=0x0)" P-INDEP
; V217 tmp207 [V217,T22] ( 3, 3 ) ref -> x1 single-def "arr expr"
; V218 tmp208 [V218,T23] ( 3, 3 ) ref -> x0 single-def "arr expr"
-; V219 tmp209 [V219,T89] ( 3, 0 ) ref -> x1 "arr expr"
-; V220 tmp210 [V220,T90] ( 3, 0 ) ref -> x11 "arr expr"
+; V219 tmp209 [V219,T88] ( 3, 0 ) ref -> x1 "arr expr"
+; V220 tmp210 [V220,T89] ( 3, 0 ) ref -> x11 "arr expr"
; V221 cse0 [V221,T47] ( 3, 1.50) int -> x2 "CSE - moderate"
; V222 cse1 [V222,T48] ( 3, 1.50) int -> x0 "CSE - moderate"
; V223 cse2 [V223,T16] ( 2, 3.10) int -> x2 hoist "CSE - moderate"
@@ -239,7 +239,6 @@
; V227 cse6 [V227,T15] ( 5, 3.50) int -> x21 "CSE - moderate"
; V228 cse7 [V228,T32] ( 4, 2 ) long -> x26 "CSE - moderate"
; V229 cse8 [V229,T33] ( 4, 2 ) long -> x27 "CSE - moderate"
-; V230 cse9 [V230,T86] ( 11, 0 ) long -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 16
@@ -267,17 +266,16 @@ G_M099_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, b
G_M099_IG03: ; bbWeight=0, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
mov x0, x1
; gcrRegs +[x0]
- movz x20, #0xD1FFAB1E // code for <unknown method>
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- mov x11, x20
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11]
; gcrRegs -[x1]
blr x1
; gcr arg pop 0
mov x20, x0
; gcrRegs +[x20]
- ;; size=32 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M099_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w21, [x20, #0x08]
@@ -775,17 +773,15 @@ G_M099_IG53: ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
; byrRegs -[x0]
mov x0, x25
; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E
+ movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
- mov x28, x11
- add x11, x28, #40
ldr x1, [x11]
blr x1
; gcr arg pop 0
mov x28, x0
; gcrRegs +[x28]
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M099_IG54: ; bbWeight=0.50, gcrefRegs=12980000 {x19 x20 x23 x25 x28}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x28, #0x08]
@@ -805,10 +801,9 @@ G_M099_IG55: ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
mov x22, x0
; gcrRegs +[x22]
mov x0, x25
- movz x28, #0xD1FFAB1E
- movk x28, #0xD1FFAB1E LSL #16
- movk x28, #0xD1FFAB1E LSL #32
- add x11, x28, #40
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11]
blr x1
; gcr arg pop 0
@@ -824,7 +819,7 @@ G_M099_IG55: ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
blr x3
; gcrRegs -[x0-x2 x22]
; gcr arg pop 0
- ;; size=88 bbWeight=0 PerfScore 0.00
+ ;; size=84 bbWeight=0 PerfScore 0.00
G_M099_IG56: ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref, isz
cmp x26, x27
beq G_M099_IG58
@@ -832,17 +827,16 @@ G_M099_IG56: ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefR
G_M099_IG57: ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref
mov x0, x25
; gcrRegs +[x0]
- movz x28, #0xD1FFAB1E
- movk x28, #0xD1FFAB1E LSL #16
- movk x28, #0xD1FFAB1E LSL #32
- add x11, x28, #48
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11]
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w22, w0
+ sxtw w28, w0
b G_M099_IG82
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
G_M099_IG58: ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x25, #0x28]
and w28, w0, #1
@@ -903,18 +897,16 @@ G_M099_IG62: ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefR
G_M099_IG63: ; bbWeight=0, gcrefRegs=12980000 {x19 x20 x23 x25 x28}, byrefRegs=0000 {}, byref
mov x0, x25
; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E
+ movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #0xD1FFAB1E LSL #32
- mov x22, x11
- add x11, x22, #64
ldr x1, [x11]
blr x1
; gcrRegs -[x25]
; gcr arg pop 0
mov x2, x0
; gcrRegs +[x2]
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M099_IG64: ; bbWeight=0.50, gcrefRegs=10980004 {x2 x19 x20 x23 x28}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
mov x0, x19
@@ -1109,16 +1101,17 @@ G_M099_IG82: ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
; gcrRegs +[x25]
mov x0, x25
; gcrRegs +[x0]
- add x11, x28, #56
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x1, [x11]
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
sxtw w4, w0
tst w4, #255
- mov w28, w22
beq G_M099_IG60
- ;; size=32 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M099_IG83: ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref, isz
ldr x22, [fp, #0x18] // [V162 tmp152]
; gcrRegs +[x22]
@@ -1186,7 +1179,7 @@ G_M099_IG85: ; bbWeight=0, gcrefRegs=800000 {x23}, byrefRegs=0001 {x0}, b
b G_M099_IG77
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2204, prolog size 36, PerfScore 265.75, instruction count 551, allocated bytes for code 2204 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
+Total bytes of code 2180, prolog size 36, PerfScore 265.75, instruction count 545, allocated bytes for code 2180 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
; ============================================================
Unwind Info:
@@ -1197,7 +1190,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 551 (0x00227) Actual length = 2204 (0x00089c)
+ Function Length : 545 (0x00221) Actual length = 2180 (0x000884)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-0.36%) : 144959.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)@@ -22,16 +22,16 @@
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V12 tmp3 [V12,T50] ( 2, 0.38) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V13 tmp4 [V13,T71] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V13 tmp4 [V13,T70] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V14 tmp5 [V14,T48] ( 3, 0.43) ref -> x24
; V15 tmp6 [V15,T45] ( 2, 0.51) ref -> x26 class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V16 tmp7 [V16,T28] ( 4, 1.03) long -> x1 "spilling ret_expr"
-; V17 tmp8 [V17,T70] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V17 tmp8 [V17,T69] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V18 tmp9 [V18 ] ( 0, 0 ) long -> zero-ref "guarded devirt return temp"
; V19 tmp10 [V19,T29] ( 3, 1.03) ref -> x0 single-def "guarded devirt arg temp"
; V20 tmp11 [V20,T30] ( 3, 1.03) long -> x2 "guarded devirt arg temp"
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-; V22 tmp13 [V22,T74] ( 2, 0 ) int -> x0 "guarded devirt return temp"
+; V22 tmp13 [V22,T73] ( 2, 0 ) int -> x0 "guarded devirt return temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
;* V24 tmp15 [V24,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25,T00] ( 11, 15.41) ref -> x24 class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
; V29 tmp20 [V29,T23] ( 12, 2.15) byref -> registers "Inline stloc first use temp"
; V30 tmp21 [V30,T25] ( 4, 2.02) byref -> x24 "Inline stloc first use temp"
; V31 tmp22 [V31,T26] ( 4, 1.88) ref -> x25 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V32 tmp23 [V32,T64] ( 5, 0 ) int -> x27 "Inline stloc first use temp"
-; V33 tmp24 [V33,T62] ( 6, 0 ) int -> x28 "Inline stloc first use temp"
-; V34 tmp25 [V34,T65] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V35 tmp26 [V35,T67] ( 4, 0 ) int -> [fp+0x54] "Inline stloc first use temp"
+; V32 tmp23 [V32,T63] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
+; V33 tmp24 [V33,T62] ( 6, 0 ) int -> x27 "Inline stloc first use temp"
+; V34 tmp25 [V34,T64] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V35 tmp26 [V35,T66] ( 4, 0 ) int -> x28 "Inline stloc first use temp"
; V36 tmp27 [V36,T10] ( 5, 4.45) int -> x25 "Inline stloc first use temp"
; V37 tmp28 [V37,T08] ( 6, 5.76) int -> x0 "Inline stloc first use temp"
; V38 tmp29 [V38,T21] ( 3, 2.56) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
;* V50 tmp41 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V52 tmp43 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V53 tmp44 [V53,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V53 tmp44 [V53,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V64 tmp55 [V64,T66] ( 4, 0 ) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V65 tmp56 [V65,T68] ( 4, 0 ) int -> [fp+0x50] spill-single-def "Inlining Arg"
-; V66 tmp57 [V66,T76] ( 2, 0 ) long -> [fp+0x48] spill-single-def "Inlining Arg"
-; V67 tmp58 [V67,T69] ( 4, 0 ) int -> [fp+0x44] spill-single-def "Inline stloc first use temp"
+; V64 tmp55 [V64,T65] ( 4, 0 ) ref -> x27 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp56 [V65,T67] ( 4, 0 ) int -> x28 "Inlining Arg"
+; V66 tmp57 [V66,T75] ( 2, 0 ) long -> [fp+0x50] spill-single-def "Inlining Arg"
+; V67 tmp58 [V67,T68] ( 4, 0 ) int -> [fp+0x4C] spill-single-def "Inline stloc first use temp"
;* V68 tmp59 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V69 tmp60 [V69,T31] ( 2, 1.03) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V70 tmp61 [V70,T40] ( 4, 0.79) ref -> x24
; V71 tmp62 [V71,T44] ( 3, 0.55) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V73 tmp64 [V73,T77] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V73 tmp64 [V73,T76] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V74 tmp65 [V74,T22] ( 4, 2.34) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V75 tmp66 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V76 tmp67 [V76,T42] ( 2, 0.71) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -97,7 +97,7 @@
; V85 tmp76 [V85,T61] ( 2, 0.01) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V87 tmp78 [V87,T51] ( 2, 0.38) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V88 tmp79 [V88,T72] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V88 tmp79 [V88,T71] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V89 tmp80 [V89,T07] ( 3, 5.85) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
;* V90 tmp81 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -116,19 +116,18 @@
; V104 tmp95 [V104,T58] ( 4, 0.08) ref -> x8 "field V51.Item1 (fldOffset=0x0)" P-INDEP
; V105 tmp96 [V105,T56] ( 2, 0.13) long -> x9 "field V51.Item2 (fldOffset=0x8)" P-INDEP
; V106 tmp97 [V106,T57] ( 2, 0.13) int -> x10 "field V51.Item3 (fldOffset=0x10)" P-INDEP
-; V107 tmp98 [V107 ] ( 8, 7.81) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99 [V108,T78] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101 [V110,T79] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V107 tmp98 [V107 ] ( 8, 7.81) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99 [V108,T77] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101 [V110,T78] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V111 tmp102 [V111,T52] ( 2, 0.34) ref -> x24 single-def "argument with side effect"
; V112 tmp103 [V112,T53] ( 2, 0.34) ref -> x2 single-def "argument with side effect"
-; V113 tmp104 [V113,T73] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V113 tmp104 [V113,T72] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V114 tmp105 [V114,T13] ( 2, 3.90) ref -> x0 single-def "argument with side effect"
; V115 cse0 [V115,T41] ( 3, 0.77) ref -> x0 "CSE - conservative"
; V116 cse1 [V116,T17] ( 3, 3.20) int -> x5 hoist "CSE - aggressive"
; V117 cse2 [V117,T19] ( 8, 2.93) ref -> x1 multi-def "CSE - moderate"
-; V118 cse3 [V118,T63] ( 6, 0 ) long -> registers multi-def "CSE - conservative"
-; V119 rat0 [V119,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
+; V118 rat0 [V118,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 96
@@ -140,18 +139,19 @@ G_M61086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp x25, x26, [sp, #0xA0]
stp x27, x28, [sp, #0xB0]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x40]
+ str xzr, [x9, #0x50]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
; gcrRegs +[x19]
mov x21, x2
mov w22, w3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.50
G_M61086_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09: ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
;; size=24 bbWeight=0 PerfScore 0.00
G_M61086_IG10: ; bbWeight=0, nogc, extend
ldp x0, x1, [fp, #0x58]
- stp x0, x1, [fp, #0x28]
+ stp x0, x1, [fp, #0x30]
ldr x0, [fp, #0x68]
- str x0, [fp, #0x38]
+ str x0, [fp, #0x40]
;; size=16 bbWeight=0 PerfScore 0.00
G_M61086_IG11: ; bbWeight=0, isz, extend
mov x0, x25
; gcrRegs +[x0]
- add x1, fp, #40 // [V107 tmp98]
- movz x26, #0xD1FFAB1E // code for <unknown method>
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- mov x11, x26
+ add x1, fp, #48 // [V107 tmp98]
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w27, w0
- ldr x28, [x24, #0x08]
- ; gcrRegs +[x28]
- ldr w1, [x28, #0x08]
- str w1, [fp, #0x50] // [V65 tmp56]
- ldr x2, [x24, #0x30]
- str x2, [fp, #0x48] // [V66 tmp57]
+ sxtw w26, w0
+ ldr x27, [x24, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x27, #0x08]
+ ldr x1, [x24, #0x30]
+ str x1, [fp, #0x50] // [V66 tmp57]
mov w0, #1
- movz x3, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- mov w0, w27
- ldr x2, [fp, #0x48] // [V66 tmp57]
- mul x0, x2, x0
+ mov w0, w26
+ ldr x1, [fp, #0x50] // [V66 tmp57]
+ mul x0, x1, x0
lsr x0, x0, #32
add x0, x0, #1
- ldr w1, [fp, #0x50] // [V65 tmp56]
- mov w2, w1
- mul x0, x0, x2
- lsr x2, x0, #32
- str w2, [fp, #0x44] // [V67 tmp58]
- cmp w1, #0
+ mov w1, w28
+ mul x0, x0, x1
+ lsr x1, x0, #32
+ str w1, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, #0
beq G_M61086_IG54
- udiv w0, w27, w1
- msub w0, w0, w1, w27
- cmp w0, w2
+ udiv w0, w26, w28
+ msub w0, w0, w28, w26
+ cmp w0, w1
cset x0, eq
- movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- ldr w0, [x28, #0x08]
- ldr w2, [fp, #0x44] // [V67 tmp58]
- cmp w2, w0
+ ldr w0, [x27, #0x08]
+ ldr w28, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, w0
bhs G_M61086_IG53
- add x0, x28, #16
+ add x0, x27, #16
; byrRegs +[x0]
- ldr w28, [x0, w2, UXTW #2]
- ; gcrRegs -[x28]
+ ldr w27, [x0, w28, UXTW #2]
+ ; gcrRegs -[x27]
ldr x24, [x24, #0x10]
- mov w3, wzr
- sub w28, w28, #1
+ mov w28, wzr
+ sub w27, w27, #1
b G_M61086_IG55
- ;; size=204 bbWeight=0 PerfScore 0.00
+ ;; size=192 bbWeight=0 PerfScore 0.00
G_M61086_IG12: ; bbWeight=0.94, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28: ; bbWeight=0.98, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
ldr x0, [x19, #0x90]
; gcrRegs +[x0]
ldrsb wzr, [x0]
- stp x20, x21, [fp, #0x28] // [V107 tmp98], [V107 tmp98+0x08]
- str w22, [fp, #0x38] // [V107 tmp98+0x10]
- add x1, fp, #40 // [V107 tmp98]
+ stp x20, x21, [fp, #0x30] // [V107 tmp98], [V107 tmp98+0x08]
+ str w22, [fp, #0x40] // [V107 tmp98+0x10]
+ add x1, fp, #48 // [V107 tmp98]
mov x2, x24
; gcrRegs +[x2]
...
-8 (-0.36%) : 141492.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)@@ -22,16 +22,16 @@
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V12 tmp3 [V12,T50] ( 2, 0.37) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V13 tmp4 [V13,T70] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V13 tmp4 [V13,T69] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V14 tmp5 [V14,T48] ( 3, 0.41) ref -> x24
; V15 tmp6 [V15,T45] ( 2, 0.52) ref -> x26 class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V16 tmp7 [V16,T28] ( 4, 1.05) long -> x1 "spilling ret_expr"
-; V17 tmp8 [V17,T69] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V17 tmp8 [V17,T68] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V18 tmp9 [V18 ] ( 0, 0 ) long -> zero-ref "guarded devirt return temp"
; V19 tmp10 [V19,T29] ( 3, 1.05) ref -> x0 single-def "guarded devirt arg temp"
; V20 tmp11 [V20,T30] ( 3, 1.05) long -> x2 "guarded devirt arg temp"
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-; V22 tmp13 [V22,T74] ( 2, 0 ) int -> x0 "guarded devirt return temp"
+; V22 tmp13 [V22,T73] ( 2, 0 ) int -> x0 "guarded devirt return temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
;* V24 tmp15 [V24,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25,T00] ( 11, 15.51) ref -> x24 class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
; V29 tmp20 [V29,T23] ( 12, 2.19) byref -> registers "Inline stloc first use temp"
; V30 tmp21 [V30,T25] ( 4, 2.03) byref -> x24 "Inline stloc first use temp"
; V31 tmp22 [V31,T26] ( 4, 1.90) ref -> x25 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V32 tmp23 [V32,T63] ( 5, 0 ) int -> x27 "Inline stloc first use temp"
-; V33 tmp24 [V33,T61] ( 6, 0 ) int -> x28 "Inline stloc first use temp"
-; V34 tmp25 [V34,T64] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V35 tmp26 [V35,T66] ( 4, 0 ) int -> [fp+0x54] "Inline stloc first use temp"
+; V32 tmp23 [V32,T62] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
+; V33 tmp24 [V33,T61] ( 6, 0 ) int -> x27 "Inline stloc first use temp"
+; V34 tmp25 [V34,T63] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V35 tmp26 [V35,T65] ( 4, 0 ) int -> x28 "Inline stloc first use temp"
; V36 tmp27 [V36,T10] ( 5, 4.50) int -> x25 "Inline stloc first use temp"
; V37 tmp28 [V37,T07] ( 6, 5.85) int -> x0 "Inline stloc first use temp"
; V38 tmp29 [V38,T21] ( 3, 2.60) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
;* V50 tmp41 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V52 tmp43 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V53 tmp44 [V53,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V53 tmp44 [V53,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V64 tmp55 [V64,T65] ( 4, 0 ) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V65 tmp56 [V65,T67] ( 4, 0 ) int -> [fp+0x50] spill-single-def "Inlining Arg"
-; V66 tmp57 [V66,T76] ( 2, 0 ) long -> [fp+0x48] spill-single-def "Inlining Arg"
-; V67 tmp58 [V67,T68] ( 4, 0 ) int -> [fp+0x44] spill-single-def "Inline stloc first use temp"
+; V64 tmp55 [V64,T64] ( 4, 0 ) ref -> x27 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp56 [V65,T66] ( 4, 0 ) int -> x28 "Inlining Arg"
+; V66 tmp57 [V66,T75] ( 2, 0 ) long -> [fp+0x50] spill-single-def "Inlining Arg"
+; V67 tmp58 [V67,T67] ( 4, 0 ) int -> [fp+0x4C] spill-single-def "Inline stloc first use temp"
;* V68 tmp59 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V69 tmp60 [V69,T31] ( 2, 1.05) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V70 tmp61 [V70,T40] ( 4, 0.80) ref -> x24
; V71 tmp62 [V71,T44] ( 3, 0.55) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V73 tmp64 [V73,T77] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V73 tmp64 [V73,T76] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V74 tmp65 [V74,T22] ( 4, 2.34) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V75 tmp66 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V76 tmp67 [V76,T42] ( 2, 0.74) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -94,10 +94,10 @@
; V82 tmp73 [V82,T49] ( 2, 0.41) ubyte -> x0 "Inline return value spill temp"
; V83 tmp74 [V83,T27] ( 3, 1.23) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V84 tmp75 [V84 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V85 tmp76 [V85,T71] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V85 tmp76 [V85,T70] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V87 tmp78 [V87,T51] ( 2, 0.37) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V88 tmp79 [V88,T72] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V88 tmp79 [V88,T71] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V89 tmp80 [V89,T08] ( 3, 5.82) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
;* V90 tmp81 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -116,19 +116,18 @@
; V104 tmp95 [V104,T54] ( 4, 0.07) ref -> x8 "field V51.Item1 (fldOffset=0x0)" P-INDEP
; V105 tmp96 [V105,T58] ( 2, 0.05) long -> x9 "field V51.Item2 (fldOffset=0x8)" P-INDEP
; V106 tmp97 [V106,T59] ( 2, 0.05) int -> x10 "field V51.Item3 (fldOffset=0x10)" P-INDEP
-; V107 tmp98 [V107 ] ( 8, 7.77) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99 [V108,T78] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101 [V110,T79] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V107 tmp98 [V107 ] ( 8, 7.77) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99 [V108,T77] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101 [V110,T78] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V111 tmp102 [V111,T52] ( 2, 0.37) ref -> x24 single-def "argument with side effect"
; V112 tmp103 [V112,T53] ( 2, 0.37) ref -> x2 single-def "argument with side effect"
-; V113 tmp104 [V113,T73] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V113 tmp104 [V113,T72] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V114 tmp105 [V114,T13] ( 2, 3.88) ref -> x0 single-def "argument with side effect"
; V115 cse0 [V115,T41] ( 3, 0.79) ref -> x0 "CSE - conservative"
; V116 cse1 [V116,T17] ( 3, 3.25) int -> x5 hoist "CSE - aggressive"
; V117 cse2 [V117,T20] ( 8, 2.91) ref -> x1 multi-def "CSE - moderate"
-; V118 cse3 [V118,T62] ( 6, 0 ) long -> registers multi-def "CSE - conservative"
-; V119 rat0 [V119,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
+; V118 rat0 [V118,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 96
@@ -140,18 +139,19 @@ G_M61086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp x25, x26, [sp, #0xA0]
stp x27, x28, [sp, #0xB0]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x40]
+ str xzr, [x9, #0x50]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
; gcrRegs +[x19]
mov x21, x2
mov w22, w3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.50
G_M61086_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09: ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
;; size=24 bbWeight=0 PerfScore 0.00
G_M61086_IG10: ; bbWeight=0, nogc, extend
ldp x0, x1, [fp, #0x58]
- stp x0, x1, [fp, #0x28]
+ stp x0, x1, [fp, #0x30]
ldr x0, [fp, #0x68]
- str x0, [fp, #0x38]
+ str x0, [fp, #0x40]
;; size=16 bbWeight=0 PerfScore 0.00
G_M61086_IG11: ; bbWeight=0, isz, extend
mov x0, x25
; gcrRegs +[x0]
- add x1, fp, #40 // [V107 tmp98]
- movz x26, #0xD1FFAB1E // code for <unknown method>
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- mov x11, x26
+ add x1, fp, #48 // [V107 tmp98]
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w27, w0
- ldr x28, [x24, #0x08]
- ; gcrRegs +[x28]
- ldr w1, [x28, #0x08]
- str w1, [fp, #0x50] // [V65 tmp56]
- ldr x2, [x24, #0x30]
- str x2, [fp, #0x48] // [V66 tmp57]
+ sxtw w26, w0
+ ldr x27, [x24, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x27, #0x08]
+ ldr x1, [x24, #0x30]
+ str x1, [fp, #0x50] // [V66 tmp57]
mov w0, #1
- movz x3, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- mov w0, w27
- ldr x2, [fp, #0x48] // [V66 tmp57]
- mul x0, x2, x0
+ mov w0, w26
+ ldr x1, [fp, #0x50] // [V66 tmp57]
+ mul x0, x1, x0
lsr x0, x0, #32
add x0, x0, #1
- ldr w1, [fp, #0x50] // [V65 tmp56]
- mov w2, w1
- mul x0, x0, x2
- lsr x2, x0, #32
- str w2, [fp, #0x44] // [V67 tmp58]
- cmp w1, #0
+ mov w1, w28
+ mul x0, x0, x1
+ lsr x1, x0, #32
+ str w1, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, #0
beq G_M61086_IG53
- udiv w0, w27, w1
- msub w0, w0, w1, w27
- cmp w0, w2
+ udiv w0, w26, w28
+ msub w0, w0, w28, w26
+ cmp w0, w1
cset x0, eq
- movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- ldr w0, [x28, #0x08]
- ldr w2, [fp, #0x44] // [V67 tmp58]
- cmp w2, w0
+ ldr w0, [x27, #0x08]
+ ldr w28, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, w0
bhs G_M61086_IG52
- add x0, x28, #16
+ add x0, x27, #16
; byrRegs +[x0]
- ldr w28, [x0, w2, UXTW #2]
- ; gcrRegs -[x28]
+ ldr w27, [x0, w28, UXTW #2]
+ ; gcrRegs -[x27]
ldr x24, [x24, #0x10]
- mov w3, wzr
- sub w28, w28, #1
+ mov w28, wzr
+ sub w27, w27, #1
b G_M61086_IG54
- ;; size=204 bbWeight=0 PerfScore 0.00
+ ;; size=192 bbWeight=0 PerfScore 0.00
G_M61086_IG12: ; bbWeight=0.95, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28: ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
ldr x0, [x19, #0x90]
; gcrRegs +[x0]
ldrsb wzr, [x0]
- stp x20, x21, [fp, #0x28] // [V107 tmp98], [V107 tmp98+0x08]
- str w22, [fp, #0x38] // [V107 tmp98+0x10]
- add x1, fp, #40 // [V107 tmp98]
+ stp x20, x21, [fp, #0x30] // [V107 tmp98], [V107 tmp98+0x08]
...
+8 (+0.88%) : 120371.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
@@ -12,57 +12,56 @@
; V00 this [V00,T03] ( 11, 4.96) ref -> x19 this class-hnd single-def <System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]>
; V01 arg1 [V01,T02] ( 9, 5.01) struct (16) [fp+0x10] do-not-enreg[SFA] multireg-arg ld-addr-op single-def <BenchmarksGame.ByteString>
; V02 loc0 [V02,T00] ( 13, 7.80) byref -> x24
-; V03 loc1 [V03,T15] ( 3, 2.00) byref -> x0
-; V04 loc2 [V04,T16] ( 4, 1.95) ref -> x23 class-hnd single-def <<unknown class>>
+; V03 loc1 [V03,T16] ( 3, 2.00) byref -> x0
+; V04 loc2 [V04,T17] ( 4, 1.95) ref -> x23 class-hnd single-def <<unknown class>>
; V05 loc3 [V05,T21] ( 5, 1.30) int -> x25
; V06 loc4 [V06,T11] ( 6, 2.94) int -> x0
-; V07 loc5 [V07,T22] ( 3, 1.30) ref -> x1 class-hnd exact single-def <<unknown class>>
-; V08 loc6 [V08,T23] ( 4, 1.02) int -> x2
-; V09 loc7 [V09,T29] ( 5, 0.03) int -> x26
-; V10 loc8 [V10,T28] ( 6, 0.04) int -> x0
-; V11 loc9 [V11,T33] ( 3, 0.02) ref -> x20 class-hnd exact single-def <<unknown class>>
-; V12 loc10 [V12,T30] ( 4, 0.03) int -> x21
+; V07 loc5 [V07,T12] ( 5, 2.94) ref -> x1 class-hnd exact single-def <<unknown class>>
+; V08 loc6 [V08,T22] ( 4, 1.02) int -> x2
+; V09 loc7 [V09,T28] ( 5, 0.03) int -> x26
+; V10 loc8 [V10,T27] ( 6, 0.04) int -> x0
+; V11 loc9 [V11,T32] ( 3, 0.02) ref -> x20 class-hnd exact single-def <<unknown class>>
+; V12 loc10 [V12,T29] ( 4, 0.03) int -> x21
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V15 tmp2 [V15,T41] ( 3, 0 ) int -> x25 "Inline return value spill temp"
-; V16 tmp3 [V16,T19] ( 6, 1.68) int -> x25 "Inline stloc first use temp"
-; V17 tmp4 [V17,T37] ( 7, 0 ) int -> x0 "Inline stloc first use temp"
+; V15 tmp2 [V15,T40] ( 3, 0 ) int -> x25 "Inline return value spill temp"
+; V16 tmp3 [V16,T20] ( 6, 1.68) int -> x25 "Inline stloc first use temp"
+; V17 tmp4 [V17,T36] ( 7, 0 ) int -> x0 "Inline stloc first use temp"
;* V18 tmp5 [V18 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V19 tmp6 [V19,T38] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V20 tmp7 [V20,T39] ( 4, 0 ) int -> x0 "Inlining Arg"
-; V21 tmp8 [V21,T42] ( 2, 0 ) long -> x1 "Inlining Arg"
-; V22 tmp9 [V22,T40] ( 4, 0 ) int -> x23 "Inline stloc first use temp"
+; V19 tmp6 [V19,T37] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V20 tmp7 [V20,T38] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V21 tmp8 [V21,T41] ( 2, 0 ) long -> x1 "Inlining Arg"
+; V22 tmp9 [V22,T39] ( 4, 0 ) int -> x23 "Inline stloc first use temp"
;* V23 tmp10 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp11 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp12 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp13 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V27 tmp14 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <BenchmarksGame.ByteString>
;* V28 tmp15 [V28 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <BenchmarksGame.ByteString>
-;* V29 tmp16 [V29,T24] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V30 tmp17 [V30,T01] ( 6, 7.54) int -> x6 "Inline stloc first use temp"
+;* V29 tmp16 [V29,T23] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V30 tmp17 [V30,T01] ( 6, 7.54) int -> x5 "Inline stloc first use temp"
;* V31 tmp18 [V31 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V32 tmp19 [V32,T34] ( 3, 0.02) ref -> x22 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V33 tmp20 [V33,T27] ( 4, 0.06) int -> x20 "Inlining Arg"
-; V34 tmp21 [V34,T32] ( 2, 0.03) long -> x24 "Inlining Arg"
-; V35 tmp22 [V35,T31] ( 4, 0.03) int -> x25 "Inline stloc first use temp"
-; V36 tmp23 [V36,T14] ( 3, 2.08) ref -> x0 "field V27.Array (fldOffset=0x0)" P-INDEP
-; V37 tmp24 [V37,T12] ( 2, 2.28) int -> x4 "field V27.Start (fldOffset=0x8)" P-INDEP
-; V38 tmp25 [V38,T07] ( 4, 4.21) int -> x5 "field V27.Length (fldOffset=0xc)" P-INDEP
-;* V39 tmp26 [V39,T25] ( 0, 0 ) ref -> zero-ref "field V28.Array (fldOffset=0x0)" P-INDEP
-;* V40 tmp27 [V40,T26] ( 0, 0 ) int -> zero-ref "field V28.Start (fldOffset=0x8)" P-INDEP
+; V32 tmp19 [V32,T33] ( 3, 0.02) ref -> x22 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V33 tmp20 [V33,T26] ( 4, 0.06) int -> x20 "Inlining Arg"
+; V34 tmp21 [V34,T31] ( 2, 0.03) long -> x24 "Inlining Arg"
+; V35 tmp22 [V35,T30] ( 4, 0.03) int -> x25 "Inline stloc first use temp"
+; V36 tmp23 [V36,T15] ( 3, 2.08) ref -> x0 "field V27.Array (fldOffset=0x0)" P-INDEP
+; V37 tmp24 [V37,T13] ( 2, 2.28) int -> x3 "field V27.Start (fldOffset=0x8)" P-INDEP
+; V38 tmp25 [V38,T07] ( 4, 4.21) int -> x4 "field V27.Length (fldOffset=0xc)" P-INDEP
+;* V39 tmp26 [V39,T24] ( 0, 0 ) ref -> zero-ref "field V28.Array (fldOffset=0x0)" P-INDEP
+;* V40 tmp27 [V40,T25] ( 0, 0 ) int -> zero-ref "field V28.Start (fldOffset=0x8)" P-INDEP
;* V41 tmp28 [V41 ] ( 0, 0 ) int -> zero-ref "field V28.Length (fldOffset=0xc)" P-INDEP
; V42 tmp29 [V42,T04] ( 7, 5.15) ref -> x20 single-def "V01.[000..008)"
; V43 tmp30 [V43,T06] ( 7, 4.60) int -> x21 "V01.[008..012)"
; V44 tmp31 [V44,T05] ( 8, 5.57) int -> x22 "V01.[012..016)"
-; V45 tmp32 [V45,T13] ( 3, 2.13) int -> x0 "index expr"
-; V46 cse0 [V46,T35] ( 3, 0.02) int -> x22 "CSE - conservative"
-; V47 cse1 [V47,T36] ( 3, 0.02) int -> x21 "CSE - conservative"
-; V48 cse2 [V48,T20] ( 3, 1.64) int -> x3 hoist "CSE - moderate"
-; V49 cse3 [V49,T08] ( 6, 4.15) byref -> registers hoist multi-def "CSE - aggressive"
-; V50 cse4 [V50,T18] ( 2, 1.87) int -> x7 hoist "CSE - moderate"
-; V51 cse5 [V51,T17] ( 2, 1.87) byref -> x0 hoist "CSE - moderate"
-; V52 cse6 [V52,T09] ( 3, 3.94) int -> x9 "CSE - aggressive"
-; V53 cse7 [V53,T10] ( 3, 3.94) int -> x10 "CSE - aggressive"
+; V45 tmp32 [V45,T14] ( 3, 2.13) int -> x0 "index expr"
+; V46 cse0 [V46,T34] ( 3, 0.02) int -> x22 "CSE - conservative"
+; V47 cse1 [V47,T35] ( 3, 0.02) int -> x21 "CSE - conservative"
+; V48 cse2 [V48,T08] ( 6, 4.15) byref -> registers hoist multi-def "CSE - aggressive"
+; V49 cse3 [V49,T19] ( 2, 1.87) int -> x6 hoist "CSE - moderate"
+; V50 cse4 [V50,T18] ( 2, 1.87) byref -> x0 hoist "CSE - moderate"
+; V51 cse5 [V51,T09] ( 3, 3.94) int -> x8 "CSE - aggressive"
+; V52 cse6 [V52,T10] ( 3, 3.94) int -> x9 "CSE - aggressive"
;
; Lcl frame size = 16
@@ -175,13 +174,14 @@ G_M43450_IG10: ; bbWeight=0, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0
; gcrRegs +[x1]
mov w2, wzr
sub w0, w0, #1
- ldr w3, [x1, #0x08]
+ ldr wzr, [x1, #0x08]
;; size=36 bbWeight=0 PerfScore 0.00
G_M43450_IG11: ; bbWeight=1.30, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x24]
+ ldr w3, [x1, #0x08]
cmp w3, w0
bls G_M43450_IG28
- ;; size=8 bbWeight=1.30 PerfScore 1.95
+ ;; size=12 bbWeight=1.30 PerfScore 5.86
G_M43450_IG12: ; bbWeight=1.30, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
ubfiz x0, x0, #5, #32
add x0, x0, #16
@@ -194,11 +194,11 @@ G_M43450_IG12: ; bbWeight=1.30, gcrefRegs=100002 {x1 x20}, byrefRegs=0000
G_M43450_IG13: ; bbWeight=0.96, gcrefRegs=100002 {x1 x20}, byrefRegs=1000000 {x24}, byref, isz
ldr x0, [x24, #0x10]
; gcrRegs +[x0]
- ldp w4, w5, [x24, #0x18]
- cmp w5, w22
+ ldp w3, w4, [x24, #0x18]
+ cmp w4, w22
bne G_M43450_IG23
- mov w6, wzr
- cmp w5, #0
+ mov w5, wzr
+ cmp w4, #0
ble G_M43450_IG21
;; size=28 bbWeight=0.96 PerfScore 9.16
G_M43450_IG14: ; bbWeight=0.56, gcrefRegs=100003 {x0 x1 x20}, byrefRegs=1000000 {x24}, byref
@@ -239,32 +239,32 @@ G_M43450_IG18: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=100000
;; size=12 bbWeight=0 PerfScore 0.00
G_M43450_IG19: ; bbWeight=0.56, gcrefRegs=100003 {x0 x1 x20}, byrefRegs=1000000 {x24}, byref
; gcrRegs -[x19] +[x0-x1]
- ldr w7, [x0, #0x08]
+ ldr w6, [x0, #0x08]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- add x8, x20, #16
- ; byrRegs +[x8]
+ add x7, x20, #16
+ ; byrRegs +[x7]
;; size=12 bbWeight=0.56 PerfScore 2.22
-G_M43450_IG20: ; bbWeight=1.31, gcrefRegs=100002 {x1 x20}, byrefRegs=1000101 {x0 x8 x24}, byref, isz
- add w9, w4, w6
- cmp w9, w7
+G_M43450_IG20: ; bbWeight=1.31, gcrefRegs=100002 {x1 x20}, byrefRegs=1000081 {x0 x7 x24}, byref, isz
+ add w8, w3, w5
+ cmp w8, w6
bhs G_M43450_IG29
- ldrb w9, [x0, w9, UXTW #2]
- add w10, w21, w6
- ldr w11, [x20, #0x08]
- cmp w10, w11
- bhs G_M43450_IG29
- ldrb w10, [x8, w10, UXTW #2]
+ ldrb w8, [x0, w8, UXTW #2]
+ add w9, w21, w5
+ ldr w10, [x20, #0x08]
cmp w9, w10
+ bhs G_M43450_IG29
+ ldrb w9, [x7, w9, UXTW #2]
+ cmp w8, w9
bne G_M43450_IG23
- add w6, w6, #1
- cmp w6, w5
+ add w5, w5, #1
+ cmp w5, w4
blt G_M43450_IG20
;; size=56 bbWeight=1.31 PerfScore 21.69
G_M43450_IG21: ; bbWeight=0.97, gcrefRegs=0000 {}, byrefRegs=1000000 {x24}, byref
; gcrRegs -[x1 x20]
- ; byrRegs -[x0 x8]
+ ; byrRegs -[x0 x7]
ldrsb wzr, [x24]
mov x0, x24
; byrRegs +[x0]
@@ -283,10 +283,11 @@ G_M43450_IG23: ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=100
; byrRegs -[x0] +[x24]
ldr w0, [x24, #0x0C]
add w2, w2, #1
+ ldr w3, [x1, #0x08]
cmp w3, w2
blo G_M43450_IG31
b G_M43450_IG11
- ;; size=20 bbWeight=0.34 PerfScore 2.03
+ ;; size=24 bbWeight=0.34 PerfScore 3.05
G_M43450_IG24: ; bbWeight=0.01, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1 x20] +[x19 x23]
; byrRegs -[x24]
@@ -413,7 +414,7 @@ G_M43450_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 908, prolog size 32, PerfScore 94.36, instruction count 227, allocated bytes for code 908 (MethodHash=c88c5645) for method System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
+Total bytes of code 916, prolog size 32, PerfScore 99.29, instruction count 229, allocated bytes for code 916 (MethodHash=c88c5645) for method System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
; ============================================================
Unwind Info:
@@ -424,7 +425,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 227 (0x000e3) Actual length = 908 (0x00038c)
+ Function Length : 229 (0x000e5) Actual length = 916 (0x000394)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+1.42%) : 129003.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet
1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String@@ -19,17 +19,17 @@
; V07 loc2 [V07,T18] ( 5, 3 ) ref -> x0 class-hnd <System.Buffers.SearchValues`1[System.String]>
; V08 loc3 [V08,T19] ( 3, 2.96) int -> x2
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T44] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V11 tmp2 [V11,T45] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V10 tmp1 [V10,T43] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V11 tmp2 [V11,T44] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-; V14 tmp5 [V14,T47] ( 3, 0 ) ref -> x20
-; V15 tmp6 [V15,T46] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V14 tmp5 [V14,T46] ( 3, 0 ) ref -> x20
+; V15 tmp6 [V15,T45] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V16 tmp7 [V16,T28] ( 6, 1.10) ref -> x0 class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V18 tmp9 [V18,T48] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V19 tmp10 [V19,T49] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V20 tmp11 [V20,T50] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V18 tmp9 [V18,T47] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V19 tmp10 [V19,T48] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V20 tmp11 [V20,T49] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V21 tmp12 [V21,T04] ( 10, 10.95) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V23 tmp14 [V23,T09] ( 16, 6.10) int -> registers ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
;* V72 tmp63 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp66 [V75,T54] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V76 tmp67 [V76,T56] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
-; V77 tmp68 [V77,T58] ( 2, 0 ) int -> x0 "Inline return value spill temp"
+; V75 tmp66 [V75,T53] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V76 tmp67 [V76,T55] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
+; V77 tmp68 [V77,T57] ( 2, 0 ) int -> x0 "Inline return value spill temp"
; V78 tmp69 [V78 ] ( 2, 0 ) ushort -> [fp+0x24] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V79 tmp70 [V79 ] ( 2, 0 ) ushort -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V80 tmp71 [V80 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -107,8 +107,8 @@
;* V95 tmp86 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V96 tmp87 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V97 tmp88 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V98 tmp89 [V98,T59] ( 2, 0 ) ushort -> x1 "Inlining Arg"
-; V99 tmp90 [V99,T60] ( 2, 0 ) ushort -> x2 "Inlining Arg"
+; V98 tmp89 [V98,T58] ( 2, 0 ) ushort -> x1 "Inlining Arg"
+; V99 tmp90 [V99,T59] ( 2, 0 ) ushort -> x2 "Inlining Arg"
;* V100 tmp91 [V100 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V101 tmp92 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V102 tmp93 [V102 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -123,17 +123,17 @@
;* V111 tmp102 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V112 tmp103 [V112,T37] ( 6, 0.82) ref -> x0 class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V113 tmp104 [V113 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V114 tmp105 [V114,T51] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V115 tmp106 [V115,T52] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V116 tmp107 [V116,T53] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V114 tmp105 [V114,T50] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V115 tmp106 [V115,T51] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V116 tmp107 [V116,T52] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V117 tmp108 [V117,T22] ( 3, 2.46) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V118 tmp109 [V118 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V119 tmp110 [V119 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V120 tmp111 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V121 tmp112 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V122 tmp113 [V122,T55] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V123 tmp114 [V123,T57] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
-; V124 tmp115 [V124,T61] ( 2, 0 ) int -> x0 "Inline return value spill temp"
+; V122 tmp113 [V122,T54] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V123 tmp114 [V123,T56] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
+; V124 tmp115 [V124,T60] ( 2, 0 ) int -> x0 "Inline return value spill temp"
; V125 tmp116 [V125 ] ( 2, 0 ) ushort -> [fp+0x1C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V126 tmp117 [V126 ] ( 2, 0 ) ushort -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V127 tmp118 [V127 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -154,8 +154,8 @@
;* V142 tmp133 [V142 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V143 tmp134 [V143 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V145 tmp136 [V145,T62] ( 2, 0 ) ushort -> x1 "Inlining Arg"
-; V146 tmp137 [V146,T63] ( 2, 0 ) ushort -> x2 "Inlining Arg"
+; V145 tmp136 [V145,T61] ( 2, 0 ) ushort -> x1 "Inlining Arg"
+; V146 tmp137 [V146,T62] ( 2, 0 ) ushort -> x2 "Inlining Arg"
;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V148 tmp139 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V149 tmp140 [V149 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -238,7 +238,6 @@
;* V226 tmp217 [V226 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
;* V227 tmp218 [V227 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
; V228 cse0 [V228,T08] ( 13, 6.28) int -> x22 "CSE - aggressive"
-; V229 cse1 [V229,T43] ( 9, 0 ) ref -> x1 multi-def "CSE - conservative"
;
; Lcl frame size = 24
@@ -471,37 +470,37 @@ G_M46798_IG34: ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
cbnz w24, G_M46798_IG36
;; size=4 bbWeight=0.55 PerfScore 0.55
G_M46798_IG35: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=44 bbWeight=0 PerfScore 0.00
G_M46798_IG36: ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
cmp w24, w25
bne G_M46798_IG38
;; size=8 bbWeight=0.55 PerfScore 0.82
G_M46798_IG37: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=44 bbWeight=0 PerfScore 0.00
G_M46798_IG38: ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
cmp w25, #0
ccmp w25, w24, z, gt
@@ -815,20 +814,20 @@ G_M46798_IG55: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=4 bbWeight=0 PerfScore 0.00
G_M46798_IG56: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20 x23]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M46798_IG42
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M46798_IG57: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
movz x0, #0xD1FFAB1E
@@ -945,7 +944,7 @@ G_M46798_IG60: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
RWD00 dd 7F7FFFFFh ; 3.40282e+38
-; Total bytes of code 1692, prolog size 36, PerfScore 180.15, instruction count 423, allocated bytes for code 1692 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1716, prolog size 36, PerfScore 180.15, instruction count 429, allocated bytes for code 1716 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
; ============================================================
Unwind Info:
@@ -956,7 +955,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 423 (0x001a7) Actual length = 1692 (0x00069c)
+ Function Length : 429 (0x001ad) Actual length = 1716 (0x0006b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+3.08%) : 86635.dasm - System.Runtime.CompilerServices.ConditionalWeakTable
2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable2[System.Canon,System.Canon]):this (Tier1)@@ -19,9 +19,8 @@
;* V07 tmp4 [V07,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V08 tmp5 [V08,T00] ( 3, 48 ) ref -> x2 "arr expr"
; V09 cse0 [V09,T02] ( 4, 18 ) ref -> x1 "CSE - aggressive"
-; V10 cse1 [V10,T09] ( 3, 0 ) ref -> x1 "CSE - aggressive"
-; V11 rat0 [V11,T06] ( 3, 4.40) long -> x0 "Spilling to split statement for tree"
-; V12 rat1 [V12,T05] ( 3, 5.60) long -> x1 "fgMakeTemp is creating a new local variable"
+; V10 rat0 [V10,T06] ( 3, 4.40) long -> x0 "Spilling to split statement for tree"
+; V11 rat1 [V11,T05] ( 3, 5.60) long -> x1 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 16
@@ -128,22 +127,22 @@ G_M9941_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {
;; size=4 bbWeight=0 PerfScore 0.00
G_M9941_IG11: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x20]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M9941_IG03
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
-; Total bytes of code 260, prolog size 24, PerfScore 137.90, instruction count 65, allocated bytes for code 260 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
+Total bytes of code 268, prolog size 24, PerfScore 137.90, instruction count 67, allocated bytes for code 268 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
; ============================================================
Unwind Info:
@@ -154,7 +153,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 65 (0x00041) Actual length = 260 (0x000104)
+ Function Length : 67 (0x00043) Actual length = 268 (0x00010c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.linux.arm64.checked.mch
-4 (-1.20%) : 312998.dasm - Runtime71611:Cloned(Runtime71611+I,int[],int[],int,int):int (Tier1)
@@ -9,21 +9,20 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T09] ( 6, 3.36) ref -> x22 class-hnd single-def <Runtime_71611+I>
-; V01 arg1 [V01,T06] ( 7, 4.06) ref -> x21 class-hnd single-def <int[]>
-; V02 arg2 [V02,T04] ( 8, 6.33) ref -> x20 class-hnd single-def <int[]>
-; V03 arg3 [V03,T10] ( 3, 3 ) int -> x3 single-def
+; V00 arg0 [V00,T08] ( 6, 3.36) ref -> x22 class-hnd single-def <Runtime_71611+I>
+; V01 arg1 [V01,T05] ( 7, 4.06) ref -> x21 class-hnd single-def <int[]>
+; V02 arg2 [V02,T03] ( 8, 6.33) ref -> x20 class-hnd single-def <int[]>
+; V03 arg3 [V03,T09] ( 3, 3 ) int -> x3 single-def
; V04 arg4 [V04,T02] ( 8, 8 ) int -> x19 single-def
-; V05 loc0 [V05,T05] ( 6, 8 ) int -> x23
-; V06 loc1 [V06,T00] ( 14, 14.70) int -> x24
+; V05 loc0 [V05,T04] ( 6, 8 ) int -> x23
+; V06 loc1 [V06,T00] ( 15, 17.67) int -> x24
;* V07 loc2 [V07 ] ( 0, 0 ) int -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T07] ( 6, 6 ) int -> x2
-; V10 tmp2 [V10,T08] ( 5, 6 ) int -> x25 "guarded devirt return temp"
+; V09 tmp1 [V09,T06] ( 6, 6 ) int -> x2
+; V10 tmp2 [V10,T07] ( 5, 6 ) int -> x25 "guarded devirt return temp"
; V11 tmp3 [V11,T01] ( 5, 12 ) int -> x1 "guarded devirt arg temp"
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Runtime_71611+Add>
-; V13 cse0 [V13,T03] ( 3, 8.91) long -> x1 "CSE - aggressive"
-; V14 cse1 [V14,T11] ( 4, 3.70) byref -> x0 hoist multi-def "CSE - aggressive"
+; V13 cse0 [V13,T10] ( 4, 3.70) byref -> x0 hoist multi-def "CSE - aggressive"
;
; Lcl frame size = 8
@@ -79,16 +78,15 @@ G_M39013_IG06: ; bbWeight=2.97, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
; gcrRegs -[x21-x22]
add x2, x20, #16
; byrRegs +[x2]
- ubfiz x1, x24, #2, #32
- ldr w2, [x2, x1]
+ ldr w2, [x2, w24, UXTW #2]
; byrRegs -[x2]
- ldr w1, [x0, x1]
+ ldr w1, [x0, w24, UXTW #2]
add w25, w1, w2
add w23, w23, w25
add w24, w24, #1
cmp w24, w19
blt G_M39013_IG06
- ;; size=36 bbWeight=2.97 PerfScore 31.18
+ ;; size=32 bbWeight=2.97 PerfScore 28.21
G_M39013_IG07: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
; byrRegs -[x0]
@@ -164,7 +162,7 @@ G_M39013_IG16: ; bbWeight=0, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=00
b G_M39013_IG09
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 332, prolog size 40, PerfScore 63.30, instruction count 83, allocated bytes for code 332 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
+Total bytes of code 328, prolog size 40, PerfScore 60.33, instruction count 82, allocated bytes for code 328 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
; ============================================================
Unwind Info:
@@ -175,7 +173,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 83 (0x00053) Actual length = 332 (0x00014c)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.20%) : 570531.dasm - Runtime71611:Cloned(Runtime71611+I,int[],int[],int,int):int (Tier1)
@@ -9,21 +9,20 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T09] ( 6, 3.36) ref -> x22 class-hnd single-def <Runtime_71611+I>
-; V01 arg1 [V01,T06] ( 7, 4.06) ref -> x21 class-hnd single-def <int[]>
-; V02 arg2 [V02,T04] ( 8, 6.33) ref -> x20 class-hnd single-def <int[]>
-; V03 arg3 [V03,T10] ( 3, 3 ) int -> x3 single-def
+; V00 arg0 [V00,T08] ( 6, 3.36) ref -> x22 class-hnd single-def <Runtime_71611+I>
+; V01 arg1 [V01,T05] ( 7, 4.06) ref -> x21 class-hnd single-def <int[]>
+; V02 arg2 [V02,T03] ( 8, 6.33) ref -> x20 class-hnd single-def <int[]>
+; V03 arg3 [V03,T09] ( 3, 3 ) int -> x3 single-def
; V04 arg4 [V04,T02] ( 8, 8 ) int -> x19 single-def
-; V05 loc0 [V05,T05] ( 6, 8 ) int -> x23
-; V06 loc1 [V06,T00] ( 14, 14.70) int -> x24
+; V05 loc0 [V05,T04] ( 6, 8 ) int -> x23
+; V06 loc1 [V06,T00] ( 15, 17.67) int -> x24
;* V07 loc2 [V07 ] ( 0, 0 ) int -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T07] ( 6, 6 ) int -> x2
-; V10 tmp2 [V10,T08] ( 5, 6 ) int -> x25 "guarded devirt return temp"
+; V09 tmp1 [V09,T06] ( 6, 6 ) int -> x2
+; V10 tmp2 [V10,T07] ( 5, 6 ) int -> x25 "guarded devirt return temp"
; V11 tmp3 [V11,T01] ( 5, 12 ) int -> x1 "guarded devirt arg temp"
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Runtime_71611+Add>
-; V13 cse0 [V13,T03] ( 3, 8.91) long -> x1 "CSE - aggressive"
-; V14 cse1 [V14,T11] ( 4, 3.70) byref -> x0 hoist multi-def "CSE - aggressive"
+; V13 cse0 [V13,T10] ( 4, 3.70) byref -> x0 hoist multi-def "CSE - aggressive"
;
; Lcl frame size = 8
@@ -79,16 +78,15 @@ G_M39013_IG06: ; bbWeight=2.97, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
; gcrRegs -[x21-x22]
add x2, x20, #16
; byrRegs +[x2]
- ubfiz x1, x24, #2, #32
- ldr w2, [x2, x1]
+ ldr w2, [x2, w24, UXTW #2]
; byrRegs -[x2]
- ldr w1, [x0, x1]
+ ldr w1, [x0, w24, UXTW #2]
add w25, w1, w2
add w23, w23, w25
add w24, w24, #1
cmp w24, w19
blt G_M39013_IG06
- ;; size=36 bbWeight=2.97 PerfScore 31.18
+ ;; size=32 bbWeight=2.97 PerfScore 28.21
G_M39013_IG07: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
; byrRegs -[x0]
@@ -164,7 +162,7 @@ G_M39013_IG16: ; bbWeight=0, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=00
b G_M39013_IG09
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 332, prolog size 40, PerfScore 63.30, instruction count 83, allocated bytes for code 332 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
+Total bytes of code 328, prolog size 40, PerfScore 60.33, instruction count 82, allocated bytes for code 328 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
; ============================================================
Unwind Info:
@@ -175,7 +173,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 83 (0x00053) Actual length = 332 (0x00014c)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-1.15%) : 271378.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
@@ -42,12 +42,12 @@
; V30 tmp28 [V30,T13] ( 4, 1.21) ref -> x1
;* V31 tmp29 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V32 tmp30 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
-; V33 tmp31 [V33,T21] ( 5, 0.43) ref -> x1
+; V33 tmp31 [V33,T19] ( 6, 0.64) ref -> x1
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V36 tmp34 [V36,T22] ( 2, 0.43) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
-; V37 tmp35 [V37,T24] ( 4, 0.32) ref -> x1
-;* V38 tmp36 [V38,T19] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V36 tmp34 [V36,T25] ( 2, 0.43) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
+; V37 tmp35 [V37,T22] ( 5, 0.54) ref -> x1
+;* V38 tmp36 [V38,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V39 tmp37 [V39,T08] ( 3, 1.71) ref -> x1 class-hnd "Inline return value spill temp" <System.String>
; V40 tmp38 [V40,T05] ( 8, 4.43) ref -> x0 class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
;* V41 tmp39 [V41 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -57,18 +57,17 @@
; V45 tmp43 [V45,T14] ( 4, 1.21) ref -> x1
;* V46 tmp44 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V47 tmp45 [V47 ] ( 0, 0 ) ref -> zero-ref single-def
-; V48 tmp46 [V48,T25] ( 4, 0.32) ref -> x1
+; V48 tmp46 [V48,T23] ( 5, 0.54) ref -> x1
; V49 tmp47 [V49,T27] ( 3, 0.32) ref -> x1 class-hnd single-def "Inline stloc first use temp" <System.String>
;* V50 tmp48 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V51 tmp49 [V51,T23] ( 2, 0.43) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
-; V52 tmp50 [V52,T26] ( 4, 0.32) ref -> x1
-;* V53 tmp51 [V53,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V51 tmp49 [V51,T26] ( 2, 0.43) ref -> x1 class-hnd exact single-def "dup spill" <System.String>
+; V52 tmp50 [V52,T24] ( 5, 0.54) ref -> x1
+;* V53 tmp51 [V53,T21] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp52 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref "Single return block return value"
-; V56 tmp54 [V56,T30] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V57 tmp55 [V57,T31] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V58 cse0 [V58,T29] ( 8, 0 ) ref -> x1 multi-def "CSE - moderate"
-; V59 cse1 [V59,T10] ( 3, 1.52) int -> x2 "CSE - moderate"
+; V56 tmp54 [V56,T29] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V57 tmp55 [V57,T30] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V58 cse0 [V58,T10] ( 3, 1.52) int -> x2 "CSE - moderate"
;
; Lcl frame size = 0
@@ -140,10 +139,10 @@ G_M25213_IG09: ; bbWeight=0.68, gcVars=0000000000000000 {}, gcrefRegs=180
beq G_M25213_IG13
;; size=16 bbWeight=0.68 PerfScore 5.13
G_M25213_IG10: ; bbWeight=0.43, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- cbz x21, G_M25213_IG51
+ cbz x21, G_M25213_IG43
;; size=4 bbWeight=0.43 PerfScore 0.43
G_M25213_IG11: ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
- b G_M25213_IG42
+ b G_M25213_IG38
;; size=4 bbWeight=0.42 PerfScore 0.42
G_M25213_IG12: ; bbWeight=0.68, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
add x0, x21, #12
@@ -160,7 +159,7 @@ G_M25213_IG12: ; bbWeight=0.68, gcrefRegs=780000 {x19 x20 x21 x22}, byref
; gcrRegs -[x21-x22]
; byrRegs -[x0-x1]
; gcr arg pop 0
- cbz w0, G_M25213_IG51
+ cbz w0, G_M25213_IG43
;; size=40 bbWeight=0.68 PerfScore 6.16
G_M25213_IG13: ; bbWeight=0.68, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x30]
@@ -188,17 +187,17 @@ G_M25213_IG16: ; bbWeight=0.01, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRe
;; size=12 bbWeight=0.01 PerfScore 0.03
G_M25213_IG17: ; bbWeight=0.15, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- cbnz x1, G_M25213_IG51
+ cbnz x1, G_M25213_IG43
b G_M25213_IG19
;; size=8 bbWeight=0.15 PerfScore 0.29
G_M25213_IG18: ; bbWeight=0.16, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
- cbz w0, G_M25213_IG51
+ cbz w0, G_M25213_IG43
;; size=4 bbWeight=0.16 PerfScore 0.16
G_M25213_IG19: ; bbWeight=0.63, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x20]
; gcrRegs +[x0]
- cbz x0, G_M25213_IG37
+ cbz x0, G_M25213_IG33
;; size=8 bbWeight=0.63 PerfScore 2.53
G_M25213_IG20: ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x14, [x0]
@@ -234,11 +233,11 @@ G_M25213_IG24: ; bbWeight=0.95, epilog, nogc, extend
;; size=16 bbWeight=0.95 PerfScore 3.79
G_M25213_IG25: ; bbWeight=0.63, gcVars=0000000000000000 {}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1 x19-x20]
- cbz x1, G_M25213_IG37
+ cbz x1, G_M25213_IG33
;; size=4 bbWeight=0.63 PerfScore 0.63
G_M25213_IG26: ; bbWeight=0.45, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
ldr w14, [x1, #0x08]
- cbz w14, G_M25213_IG37
+ cbz w14, G_M25213_IG33
;; size=8 bbWeight=0.45 PerfScore 1.80
G_M25213_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
@@ -291,34 +290,22 @@ G_M25213_IG30: ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=
; gcrRegs -[x1]
ldr x1, [x0, #0x48]
; gcrRegs +[x1]
- cbnz x1, G_M25213_IG36
+ cbnz x1, G_M25213_IG32
;; size=8 bbWeight=0.37 PerfScore 1.47
-G_M25213_IG31: ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG31: ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x1, [x14, #0x18]
; gcrRegs +[x1]
- cbnz x1, G_M25213_IG33
- ;; size=12 bbWeight=0.11 PerfScore 0.75
-G_M25213_IG32: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1 x14]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG33: ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x1]
- cbnz x1, G_M25213_IG35
- ;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M25213_IG34: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG35: ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x1]
+ movz x14, #0xD1FFAB1E
+ ; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x1, #0
+ csel x1, x1, x14, ne
+ cmp x1, #0
+ csel x1, x1, x14, ne
add x14, x0, #72
; byrRegs +[x14]
mov x15, x1
@@ -326,25 +313,25 @@ G_M25213_IG35: ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRe
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.11 PerfScore 0.21
-G_M25213_IG36: ; bbWeight=0.37, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
+ ;; size=48 bbWeight=0.11 PerfScore 1.23
+G_M25213_IG32: ; bbWeight=0.37, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
b G_M25213_IG25
;; size=4 bbWeight=0.37 PerfScore 0.37
-G_M25213_IG37: ; bbWeight=0.63, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG33: ; bbWeight=0.63, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
ldr x0, [x20, #0x20]
; gcrRegs +[x0]
cbz x0, G_M25213_IG23
;; size=8 bbWeight=0.63 PerfScore 2.53
-G_M25213_IG38: ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG34: ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x14, [x0]
movz x15, #0xD1FFAB1E
movk x15, #0xD1FFAB1E LSL #16
movk x15, #0xD1FFAB1E LSL #32
cmp x14, x15
- beq G_M25213_IG44
+ beq G_M25213_IG40
;; size=24 bbWeight=0.37 PerfScore 2.21
-G_M25213_IG39: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M25213_IG35: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
@@ -353,58 +340,46 @@ G_M25213_IG39: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000
mov x1, x0
; gcrRegs +[x1]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M25213_IG40: ; bbWeight=0.63, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG36: ; bbWeight=0.63, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cbz x1, G_M25213_IG23
;; size=4 bbWeight=0.63 PerfScore 0.63
-G_M25213_IG41: ; bbWeight=0.45, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG37: ; bbWeight=0.45, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
ldr w0, [x1, #0x08]
cbz w0, G_M25213_IG23
b G_M25213_IG27
;; size=12 bbWeight=0.45 PerfScore 2.26
-G_M25213_IG42: ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG38: ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1] +[x21-x22]
- cbz x22, G_M25213_IG51
+ cbz x22, G_M25213_IG43
;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M25213_IG43: ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG39: ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr w2, [x21, #0x08]
ldr w1, [x22, #0x08]
cmp w2, w1
beq G_M25213_IG12
- b G_M25213_IG51
+ b G_M25213_IG43
;; size=20 bbWeight=0.42 PerfScore 3.55
-G_M25213_IG44: ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG40: ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x21-x22] +[x0]
ldr x1, [x0, #0x48]
; gcrRegs +[x1]
- cbnz x1, G_M25213_IG50
+ cbnz x1, G_M25213_IG42
;; size=8 bbWeight=0.37 PerfScore 1.47
-G_M25213_IG45: ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG41: ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x1, [x14, #0x18]
; gcrRegs +[x1]
- cbnz x1, G_M25213_IG47
- ;; size=12 bbWeight=0.11 PerfScore 0.75
-G_M25213_IG46: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1 x14]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG47: ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x1]
- cbnz x1, G_M25213_IG49
- ;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M25213_IG48: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG49: ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x1]
+ movz x14, #0xD1FFAB1E
+ ; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x1, #0
+ csel x1, x1, x14, ne
+ cmp x1, #0
+ csel x1, x1, x14, ne
...
+32 (+2.02%) : 530195.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T20] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T26] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T27] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T23] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T29] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.53) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V103 cse3 [V103,T20] ( 12, 0 ) ref -> x1 multi-def "CSE - moderate"
;
; Lcl frame size = 40
@@ -409,19 +408,19 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG30
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG33
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG34
movz x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG38
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG43
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG44
movz x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1588, prolog size 48, PerfScore 291.42, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.42, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 397 (0x0018d) Actual length = 1588 (0x000634)
+ Function Length : 405 (0x00195) Actual length = 1620 (0x000654)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+2.11%) : 312739.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
@@ -8,25 +8,23 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 10, 3.65) ref -> x20 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T04] ( 10, 3.65) ref -> x20 this class-hnd single-def <System.RuntimeType>
; V01 arg1 [V01,T02] ( 11, 11.33) ref -> x19 class-hnd single-def <System.Type>
-; V02 loc0 [V02,T07] ( 4, 0.60) ref -> x0 class-hnd exact <System.RuntimeType>
-; V03 loc1 [V03,T08] ( 3, 0 ) ref -> x0 class-hnd single-def <System.Type[]>
-; V04 loc2 [V04,T01] ( 5, 18.80) int -> x20
+; V02 loc0 [V02,T06] ( 4, 0.60) ref -> x0 class-hnd exact <System.RuntimeType>
+; V03 loc1 [V03,T03] ( 4, 10 ) ref -> x20 class-hnd single-def <System.Type[]>
+; V04 loc2 [V04,T01] ( 5, 18.80) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T06] ( 2, 0.96) ref -> x0 single-def "CASTCLASS eval op1"
+; V06 tmp1 [V06,T05] ( 2, 0.96) ref -> x0 single-def "CASTCLASS eval op1"
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Single return block return value"
; V09 tmp4 [V09,T00] ( 3, 33.60) ref -> x0 "argument with side effect"
-; V10 cse0 [V10,T04] ( 2, 5.60) byref -> x22 hoist "CSE - aggressive"
-; V11 cse1 [V11,T05] ( 3, 4.40) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M35267_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
mov fp, sp
mov x20, x0
; gcrRegs +[x20]
@@ -63,8 +61,8 @@ G_M35267_IG06: ; bbWeight=0, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
; gcrRegs +[x1]
;; size=4 bbWeight=0 PerfScore 0.00
G_M35267_IG07: ; bbWeight=0, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
b <unknown method>
;; size=16 bbWeight=0 PerfScore 0.00
@@ -114,8 +112,8 @@ G_M35267_IG09: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr x2, [x2]
;; size=80 bbWeight=0 PerfScore 0.00
G_M35267_IG10: ; bbWeight=0, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
br x2
;; size=16 bbWeight=0 PerfScore 0.00
@@ -135,17 +133,20 @@ G_M35267_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
ldr x1, [x1]
blr x1
; gcrRegs -[x20]
- mov w20, wzr
- ldr w21, [x0, #0x08]
- cmp w21, #0
- ble G_M35267_IG14
- add x22, x0, #16
- ; byrRegs +[x22]
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
+ mov x20, x0
+ ; gcrRegs +[x20]
+ mov w21, wzr
+ ldr w0, [x20, #0x08]
; gcrRegs -[x0]
- ldr x0, [x22, w20, UXTW #3]
+ cmp w0, #0
+ ble G_M35267_IG14
+ ;; size=60 bbWeight=0 PerfScore 0.00
+G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ add x0, x20, #16
+ ; byrRegs +[x0]
+ ldr x0, [x0, w21, UXTW #3]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
mov x1, x19
; gcrRegs +[x1]
ldr x2, [x0]
@@ -154,34 +155,34 @@ G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {
blr x2
; gcrRegs -[x0-x1]
cbz w0, G_M35267_IG16
- ;; size=28 bbWeight=5.60 PerfScore 81.20
-G_M35267_IG13: ; bbWeight=4.40, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
- add w20, w20, #1
- cmp w21, w20
+ ;; size=32 bbWeight=5.60 PerfScore 84.00
+G_M35267_IG13: ; bbWeight=4.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ add w21, w21, #1
+ ldr w0, [x20, #0x08]
+ cmp w0, w21
bgt G_M35267_IG12
- ;; size=12 bbWeight=4.40 PerfScore 8.80
+ ;; size=16 bbWeight=4.40 PerfScore 22.00
G_M35267_IG14: ; bbWeight=2.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- ; byrRegs -[x22]
+ ; gcrRegs -[x19-x20]
mov w0, #1
;; size=4 bbWeight=2.36 PerfScore 1.18
G_M35267_IG15: ; bbWeight=2.36, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=2.36 PerfScore 9.44
+ ;; size=16 bbWeight=2.36 PerfScore 11.80
G_M35267_IG16: ; bbWeight=30.24, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=30.24 PerfScore 15.12
G_M35267_IG17: ; bbWeight=30.24, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=30.24 PerfScore 120.96
+ ;; size=16 bbWeight=30.24 PerfScore 151.20
-; Total bytes of code 380, prolog size 16, PerfScore 253.26, instruction count 95, allocated bytes for code 380 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 388, prolog size 16, PerfScore 301.86, instruction count 97, allocated bytes for code 388 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -192,7 +193,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
+ Function Length : 97 (0x00061) Actual length = 388 (0x000184)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -209,10 +210,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
+16 (+4.26%) : 312791.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)
@@ -29,22 +29,21 @@
;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp17 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V21 tmp19 [V21,T11] ( 3, 0 ) ubyte -> x1 "Inline return value spill temp"
+; V21 tmp19 [V21,T10] ( 3, 0 ) ubyte -> x1 "Inline return value spill temp"
; V22 tmp20 [V22,T04] ( 9, 76.80) int -> x20 "Inline stloc first use temp"
; V23 tmp21 [V23 ] ( 2, 76.80) simd8 -> [fp+0x18] HFA(simd8) do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
; V24 tmp22 [V24 ] ( 2, 76.80) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-; V25 tmp23 [V25,T14] ( 2, 0 ) float -> d8 "impAppendStmt"
-; V26 tmp24 [V26,T12] ( 3, 0 ) int -> x0
+; V25 tmp23 [V25,T13] ( 2, 0 ) float -> d8 "impAppendStmt"
+; V26 tmp24 [V26,T11] ( 3, 0 ) int -> x0
;* V27 tmp25 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp27 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) float -> zero-ref "Inline return value spill temp"
-; V31 tmp29 [V31,T13] ( 3, 0 ) int -> x0
+; V31 tmp29 [V31,T12] ( 3, 0 ) int -> x0
;* V32 tmp30 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp33 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V36 cse0 [V36,T10] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
;
; Lcl frame size = 72
@@ -112,19 +111,19 @@ G_M21877_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M21877_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M21877_IG07
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M21877_IG07: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add x0, fp, #24 // [V23 tmp21]
; byrRegs +[x0]
@@ -140,19 +139,19 @@ G_M21877_IG08: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M21877_IG09: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M21877_IG10
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M21877_IG10: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add x0, fp, #16 // [V24 tmp22]
; byrRegs +[x0]
@@ -195,7 +194,7 @@ G_M21877_IG16: ; bbWeight=0, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 376, prolog size 20, PerfScore 29793.45, instruction count 94, allocated bytes for code 376 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 392, prolog size 20, PerfScore 29793.45, instruction count 98, allocated bytes for code 392 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
; ============================================================
Unwind Info:
@@ -206,7 +205,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 94 (0x0005e) Actual length = 376 (0x000178)
+ Function Length : 98 (0x00062) Actual length = 392 (0x000188)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.linux.arm64.checked.mch
+4 (+0.40%) : 4458.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
@@ -10,31 +10,31 @@
;
; V00 this [V00,T09] ( 8, 5 ) ref -> x20 this class-hnd single-def <System.Buffers.SharedArrayPool`1[short]>
; V01 arg1 [V01,T08] ( 8, 6 ) ref -> x19 class-hnd single-def <short[]>
-; V02 arg2 [V02,T12] ( 3, 2.50) ubyte -> x21 single-def
+; V02 arg2 [V02,T11] ( 3, 2.50) ubyte -> x21 single-def
; V03 loc0 [V03,T10] ( 8, 5 ) int -> x23
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-; V05 loc2 [V05,T22] ( 4, 2.50) ubyte -> x25
-; V06 loc3 [V06,T25] ( 3, 2 ) ubyte -> x26
-; V07 loc4 [V07,T16] ( 4, 3 ) ref -> x27 class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-; V08 loc5 [V08,T23] ( 4, 2 ) byref -> x0 single-def
-; V09 loc6 [V09,T18] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Array>
+; V05 loc2 [V05,T21] ( 4, 2.50) ubyte -> x25
+; V06 loc3 [V06,T24] ( 3, 2 ) ubyte -> x26
+; V07 loc4 [V07,T15] ( 4, 3 ) ref -> x27 class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+; V08 loc5 [V08,T22] ( 4, 2 ) byref -> x0 single-def
+; V09 loc6 [V09,T17] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Array>
;* V10 loc7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Buffers.SharedArrayPoolPartitions>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T15] ( 2, 4 ) ref -> x24 class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-; V13 tmp2 [V13,T14] ( 5, 4 ) ref -> x24
-; V14 tmp3 [V14,T28] ( 2, 2 ) int -> x24 "impAppendStmt"
-; V15 tmp4 [V15,T29] ( 2, 2 ) int -> x21 "impAppendStmt"
-; V16 tmp5 [V16,T30] ( 2, 2 ) int -> x26 "impAppendStmt"
-; V17 tmp6 [V17,T31] ( 2, 2 ) int -> x22 "impAppendStmt"
+; V12 tmp1 [V12,T14] ( 2, 4 ) ref -> x24 class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+; V13 tmp2 [V13,T13] ( 5, 4 ) ref -> x24
+; V14 tmp3 [V14,T27] ( 2, 2 ) int -> x24 "impAppendStmt"
+; V15 tmp4 [V15,T28] ( 2, 2 ) int -> x21 "impAppendStmt"
+; V16 tmp5 [V16,T29] ( 2, 2 ) int -> x26 "impAppendStmt"
+; V17 tmp6 [V17,T30] ( 2, 2 ) int -> x22 "impAppendStmt"
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
;* V19 tmp8 [V19 ] ( 0, 0 ) int -> zero-ref
;* V20 tmp9 [V20 ] ( 0, 0 ) int -> zero-ref
-; V21 tmp10 [V21,T39] ( 2, 1 ) int -> x3
+; V21 tmp10 [V21,T38] ( 2, 1 ) int -> x3
;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
;* V23 tmp12 [V23 ] ( 0, 0 ) int -> zero-ref
;* V24 tmp13 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp14 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp15 [V26,T34] ( 3, 1.50) int -> x4
+; V26 tmp15 [V26,T33] ( 3, 1.50) int -> x4
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
;* V28 tmp17 [V28 ] ( 0, 0 ) int -> zero-ref
;* V29 tmp18 [V29 ] ( 0, 0 ) int -> zero-ref
@@ -45,44 +45,43 @@
;* V34 tmp23 [V34 ] ( 0, 0 ) int -> zero-ref
;* V35 tmp24 [V35 ] ( 0, 0 ) int -> zero-ref
;* V36 tmp25 [V36 ] ( 0, 0 ) int -> zero-ref
-; V37 tmp26 [V37,T35] ( 3, 1.50) int -> x5
-; V38 tmp27 [V38,T32] ( 2, 2 ) int -> x21 "impAppendStmt"
+; V37 tmp26 [V37,T34] ( 3, 1.50) int -> x5
+; V38 tmp27 [V38,T31] ( 2, 2 ) int -> x21 "impAppendStmt"
;* V39 tmp28 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-; V40 tmp29 [V40,T27] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-; V41 tmp30 [V41,T24] ( 4, 2 ) ref -> x2
-; V42 tmp31 [V42,T43] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V40 tmp29 [V40,T26] ( 2, 2 ) ref -> x2 class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+; V41 tmp30 [V41,T23] ( 4, 2 ) ref -> x2
+; V42 tmp31 [V42,T42] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V43 tmp32 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V44 tmp33 [V44 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V45 tmp34 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V46 tmp35 [V46,T36] ( 3, 1.50) int -> x27 "Inline stloc first use temp"
-; V47 tmp36 [V47,T37] ( 3, 1.50) ubyte -> x26 "Inline return value spill temp"
-; V48 tmp37 [V48,T11] ( 3, 4.50) ref -> x24 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+; V46 tmp35 [V46,T35] ( 3, 1.50) int -> x27 "Inline stloc first use temp"
+; V47 tmp36 [V47,T36] ( 3, 1.50) ubyte -> x26 "Inline return value spill temp"
+; V48 tmp37 [V48,T02] ( 6, 16.50) ref -> x24 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
; V49 tmp38 [V49,T01] ( 7, 22 ) int -> x26 "Inline stloc first use temp"
; V50 tmp39 [V50,T05] ( 4, 12 ) int -> x27 "Inline stloc first use temp"
-; V51 tmp40 [V51,T02] ( 2, 16 ) int -> x26 "dup spill"
+; V51 tmp40 [V51,T03] ( 2, 16 ) int -> x26 "dup spill"
;* V52 tmp41 [V52 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V53 tmp42 [V53,T42] ( 4, 0 ) int -> x26 "Inline return value spill temp"
-; V54 tmp43 [V54,T17] ( 4, 3 ) int -> x27 "dup spill"
+; V53 tmp42 [V53,T41] ( 4, 0 ) int -> x26 "Inline return value spill temp"
+; V54 tmp43 [V54,T16] ( 4, 3 ) int -> x27 "dup spill"
;* V55 tmp44 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V57 tmp46 [V57,T07] ( 3, 10 ) ubyte -> [fp+0x1C] "Inline stloc first use temp"
-; V58 tmp47 [V58,T00] ( 8, 56 ) ref -> [fp+0x10] class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V58 tmp47 [V58,T00] ( 8, 56 ) ref -> x28 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
; V59 tmp48 [V59,T06] ( 3, 10 ) ref -> x14 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V60 tmp49 [V60,T03] ( 5, 14 ) int -> x0 "Inline stloc first use temp"
-; V61 tmp50 [V61,T33] ( 2, 2 ) int -> x4 "Inlining Arg"
-;* V62 tmp51 [V62,T40] ( 0, 0 ) ref -> zero-ref single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V63 tmp52 [V63,T41] ( 0, 0 ) int -> zero-ref "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-; V64 tmp53 [V64,T19] ( 3, 3 ) ref -> x0 single-def "arr expr"
+; V60 tmp49 [V60,T04] ( 5, 14 ) int -> x0 "Inline stloc first use temp"
+; V61 tmp50 [V61,T32] ( 2, 2 ) int -> x4 "Inlining Arg"
+;* V62 tmp51 [V62,T39] ( 0, 0 ) ref -> zero-ref single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V63 tmp52 [V63,T40] ( 0, 0 ) int -> zero-ref "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+; V64 tmp53 [V64,T18] ( 3, 3 ) ref -> x0 single-def "arr expr"
;* V65 tmp54 [V65 ] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
-; V66 tmp55 [V66,T44] ( 3, 0 ) int -> x0 "fgMakeTemp is creating a new local variable"
-; V67 tmp56 [V67,T45] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V68 tmp57 [V68,T46] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V69 cse0 [V69,T38] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V70 cse1 [V70,T04] ( 5, 12 ) int -> x28 "CSE - aggressive"
-; V71 cse2 [V71,T13] ( 6, 4 ) int -> x22 "CSE - moderate"
-; V72 rat0 [V72,T26] ( 3, 2 ) long -> x0 "TLS field access"
-; V73 rat1 [V73,T20] ( 3, 3 ) long -> x0 "TLS access"
-; V74 rat2 [V74,T21] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
+; V66 tmp55 [V66,T43] ( 3, 0 ) int -> x0 "fgMakeTemp is creating a new local variable"
+; V67 tmp56 [V67,T44] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V68 tmp57 [V68,T45] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V69 cse0 [V69,T37] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V70 cse1 [V70,T12] ( 6, 4 ) int -> x22 "CSE - moderate"
+; V71 rat0 [V71,T25] ( 3, 2 ) long -> x0 "TLS field access"
+; V72 rat1 [V72,T19] ( 3, 3 ) long -> x0 "TLS access"
+; V73 rat2 [V73,T20] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
;
; Lcl frame size = 16
@@ -259,41 +258,38 @@ G_M62415_IG11: ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
udiv w1, w26, w0
msub w26, w1, w0, w26
mov w27, wzr
- ldr w28, [x24, #0x08]
- cmp w28, #0
+ ldr w0, [x24, #0x08]
+ cmp w0, #0
ble G_M62415_IG18
;; size=68 bbWeight=0 PerfScore 0.00
G_M62415_IG12: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
- cmp w26, w28
+ ldr w0, [x24, #0x08]
+ cmp w26, w0
bhs G_M62415_IG28
add x0, x24, #16
; byrRegs +[x0]
- ldr x1, [x0, w26, UXTW #3]
- ; gcrRegs +[x1]
- str x1, [fp, #0x10] // [V58 tmp47]
- ; GC ptr vars +{V58}
- ldrsb wzr, [x1]
+ ldr x28, [x0, w26, UXTW #3]
+ ; gcrRegs +[x28]
+ ldrsb wzr, [x28]
str wzr, [fp, #0x1C] // [V57 tmp46]
- mov x0, x1
+ mov x0, x28
; gcrRegs +[x0]
; byrRegs -[x0]
bl <unknown method>
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
; gcr arg pop 0
- ldr x1, [fp, #0x10] // [V58 tmp47]
- ; gcrRegs +[x1]
- ldr x14, [x1, #0x08]
+ ldr x14, [x28, #0x08]
; gcrRegs +[x14]
- ldr w0, [x1, #0x14]
+ ldr w0, [x28, #0x14]
ldr w15, [x14, #0x08]
cmp w15, w0
bls G_M62415_IG15
- ;; size=60 bbWeight=4 PerfScore 96.00
-G_M62415_IG13: ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
+ ;; size=56 bbWeight=4 PerfScore 96.00
+G_M62415_IG13: ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
cbnz w0, G_M62415_IG14
- str wzr, [x1, #0x18]
+ str wzr, [x28, #0x18]
;; size=8 bbWeight=2 PerfScore 4.00
-G_M62415_IG14: ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M62415_IG14: ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref
add x14, x14, #16
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -304,31 +300,32 @@ G_M62415_IG14: ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24},
; gcrRegs -[x15]
; byrRegs -[x14]
add w0, w0, #1
- str w0, [x1, #0x14]
- mov w2, #1
- str w2, [fp, #0x1C] // [V57 tmp46]
+ str w0, [x28, #0x14]
+ mov w1, #1
+ str w1, [fp, #0x1C] // [V57 tmp46]
;; size=32 bbWeight=2 PerfScore 12.00
-G_M62415_IG15: ; bbWeight=4, gcrefRegs=1380002 {x1 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
- mov x0, x1
+G_M62415_IG15: ; bbWeight=4, gcrefRegs=11380000 {x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
+ mov x0, x28
; gcrRegs +[x0]
- ; GC ptr vars -{V58}
bl <unknown method>
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0 x28]
; gcr arg pop 0
- ldr w2, [fp, #0x1C] // [V57 tmp46]
- cbnz w2, G_M62415_IG19
+ ldr w28, [fp, #0x1C] // [V57 tmp46]
+ cbnz w28, G_M62415_IG19
add w26, w26, #1
- cmp w28, w26
+ ldr w0, [x24, #0x08]
+ cmp w0, w26
bne G_M62415_IG17
- ;; size=28 bbWeight=4 PerfScore 26.00
+ ;; size=32 bbWeight=4 PerfScore 38.00
G_M62415_IG16: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
mov w26, wzr
;; size=4 bbWeight=2 PerfScore 1.00
G_M62415_IG17: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
add w27, w27, #1
- cmp w28, w27
+ ldr w0, [x24, #0x08]
+ cmp w0, w27
bgt G_M62415_IG12
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 20.00
G_M62415_IG18: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21 x24]
mov w26, wzr
@@ -496,7 +493,7 @@ G_M62415_IG31: ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
b G_M62415_IG08
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1004, prolog size 40, PerfScore 244.50, instruction count 251, allocated bytes for code 1004 (MethodHash=23430c30) for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
+Total bytes of code 1008, prolog size 40, PerfScore 268.50, instruction count 252, allocated bytes for code 1008 (MethodHash=23430c30) for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -507,7 +504,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 251 (0x000fb) Actual length = 1004 (0x0003ec)
+ Function Length : 252 (0x000fc) Actual length = 1008 (0x0003f0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.40%) : 4457.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
@@ -13,14 +13,14 @@
; V02 loc0 [V02,T15] ( 8, 4.50) ref -> x21 class-hnd exact single-def <<unknown class>>
; V03 loc1 [V03,T10] ( 14, 7 ) ref -> x23 class-hnd <short[]>
; V04 loc2 [V04,T14] ( 9, 5 ) int -> x22
-; V05 loc3 [V05,T17] ( 5, 3.50) ref -> x0 class-hnd exact single-def <<unknown class>>
-; V06 loc4 [V06,T32] ( 3, 1.50) ref -> x0 class-hnd exact single-def <<unknown class>>
-; V07 loc5 [V07,T33] ( 3, 1.50) ref -> x0 class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-; V08 loc6 [V08,T35] ( 3, 1.50) int -> x24
+; V05 loc3 [V05,T16] ( 5, 3.50) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V06 loc4 [V06,T31] ( 3, 1.50) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V07 loc5 [V07,T32] ( 3, 1.50) ref -> x0 class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+; V08 loc6 [V08,T34] ( 3, 1.50) int -> x24
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T22] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V11 tmp2 [V11,T23] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V12 tmp3 [V12,T24] ( 2, 2 ) int -> x3 "impAppendStmt"
+; V10 tmp1 [V10,T21] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V11 tmp2 [V11,T22] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V12 tmp3 [V12,T23] ( 2, 2 ) int -> x3 "impAppendStmt"
;* V13 tmp4 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
@@ -31,67 +31,65 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp14 [V23,T39] ( 2, 1 ) int -> x5
+; V23 tmp14 [V23,T38] ( 2, 1 ) int -> x5
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <short[]>
-; V25 tmp16 [V25,T25] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V26 tmp17 [V26,T26] ( 2, 2 ) int -> x24 "impAppendStmt"
+; V25 tmp16 [V25,T24] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V26 tmp17 [V26,T25] ( 2, 2 ) int -> x24 "impAppendStmt"
;* V27 tmp18 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <short[]>
-; V28 tmp19 [V28,T27] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V29 tmp20 [V29,T28] ( 2, 2 ) int -> x24 "impAppendStmt"
+; V28 tmp19 [V28,T26] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V29 tmp20 [V29,T27] ( 2, 2 ) int -> x24 "impAppendStmt"
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V32 tmp23 [V32,T34] ( 3, 1.50) ref -> x23 class-hnd "Inline return value spill temp" <System.Array>
-; V33 tmp24 [V33,T16] ( 3, 4.50) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+; V32 tmp23 [V32,T33] ( 3, 1.50) ref -> x23 class-hnd "Inline return value spill temp" <System.Array>
+; V33 tmp24 [V33,T02] ( 7, 16.50) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
; V34 tmp25 [V34,T01] ( 7, 22 ) int -> x20 "Inline stloc first use temp"
; V35 tmp26 [V35,T04] ( 4, 12 ) int -> x24 "Inline stloc first use temp"
;* V36 tmp27 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
;* V37 tmp28 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Array>
-; V38 tmp29 [V38,T02] ( 2, 16 ) int -> x20 "dup spill"
+; V38 tmp29 [V38,T03] ( 2, 16 ) int -> x20 "dup spill"
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V40 tmp31 [V40,T42] ( 4, 0 ) int -> x20 "Inline return value spill temp"
-; V41 tmp32 [V41,T18] ( 4, 3 ) int -> x24 "dup spill"
+; V40 tmp31 [V40,T41] ( 4, 0 ) int -> x20 "Inline return value spill temp"
+; V41 tmp32 [V41,T17] ( 4, 3 ) int -> x24 "dup spill"
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp34 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V44 tmp35 [V44,T06] ( 4, 10.50) ref -> x27 class-hnd "Inline stloc first use temp" <System.Array>
-; V45 tmp36 [V45,T00] ( 7, 52 ) ref -> x26 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V44 tmp35 [V44,T06] ( 4, 10.50) ref -> x26 class-hnd "Inline stloc first use temp" <System.Array>
+; V45 tmp36 [V45,T00] ( 7, 52 ) ref -> x25 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
; V46 tmp37 [V46,T07] ( 3, 10 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
; V47 tmp38 [V47,T05] ( 4, 12 ) int -> x1 "Inline stloc first use temp"
-; V48 tmp39 [V48,T36] ( 3, 1.50) int -> x20 "Inline stloc first use temp"
+; V48 tmp39 [V48,T35] ( 3, 1.50) int -> x20 "Inline stloc first use temp"
;* V49 tmp40 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <short[]>
;* V50 tmp41 [V50 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <short[]>
-; V52 tmp43 [V52,T44] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V52 tmp43 [V52,T43] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
;* V53 tmp44 [V53 ] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
-; V54 tmp45 [V54,T43] ( 3, 0 ) int -> x0 "fgMakeTemp is creating a new local variable"
-; V55 tmp46 [V55,T29] ( 2, 2 ) int -> x3 "argument with side effect"
-; V56 tmp47 [V56,T30] ( 2, 2 ) int -> x3 "argument with side effect"
-; V57 tmp48 [V57,T31] ( 2, 2 ) int -> x3 "argument with side effect"
-; V58 cse0 [V58,T37] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V59 cse1 [V59,T38] ( 3, 1.50) long -> x1 "CSE - moderate"
-; V60 cse2 [V60,T40] ( 2, 1 ) int -> x1 "CSE - moderate"
+; V54 tmp45 [V54,T42] ( 3, 0 ) int -> x0 "fgMakeTemp is creating a new local variable"
+; V55 tmp46 [V55,T28] ( 2, 2 ) int -> x3 "argument with side effect"
+; V56 tmp47 [V56,T29] ( 2, 2 ) int -> x3 "argument with side effect"
+; V57 tmp48 [V57,T30] ( 2, 2 ) int -> x3 "argument with side effect"
+; V58 cse0 [V58,T36] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V59 cse1 [V59,T37] ( 3, 1.50) long -> x1 "CSE - moderate"
+; V60 cse2 [V60,T39] ( 2, 1 ) int -> x1 "CSE - moderate"
; V61 cse3 [V61,T13] ( 3, 6 ) long -> x2 "CSE - aggressive"
-; V62 cse4 [V62,T03] ( 5, 12 ) int -> x25 "CSE - aggressive"
-; V63 cse5 [V63,T08] ( 2, 8 ) int -> x2 "CSE - aggressive"
-; V64 cse6 [V64,T12] ( 3, 6 ) byref -> x0 "CSE - aggressive"
-; V65 cse7 [V65,T41] ( 2, 1 ) int -> x1 "CSE - moderate"
-; V66 rat0 [V66,T21] ( 3, 2 ) long -> x0 "TLS field access"
-; V67 rat1 [V67,T19] ( 3, 3 ) long -> x0 "TLS access"
-; V68 rat2 [V68,T20] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
+; V62 cse4 [V62,T08] ( 2, 8 ) int -> x2 "CSE - aggressive"
+; V63 cse5 [V63,T12] ( 3, 6 ) byref -> x0 "CSE - aggressive"
+; V64 cse6 [V64,T40] ( 2, 1 ) int -> x1 "CSE - moderate"
+; V65 rat0 [V65,T20] ( 3, 2 ) long -> x0 "TLS field access"
+; V66 rat1 [V66,T18] ( 3, 3 ) long -> x0 "TLS access"
+; V67 rat2 [V67,T19] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M58514_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- 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]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
+ stp x23, x24, [sp, #0x30]
+ stp x25, x26, [sp, #0x40]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
mov w20, w1
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M58514_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -160,14 +158,13 @@ G_M58514_IG04: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
; gcrRegs +[x0]
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M58514_IG05: ; bbWeight=0.50, epilog, nogc, extend
- 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
+ ldp x25, x26, [sp, #0x40]
+ ldp x23, x24, [sp, #0x30]
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M58514_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0 x23] +[x19 x21]
ldr x0, [x19, #0x10]
@@ -229,79 +226,83 @@ G_M58514_IG10: ; bbWeight=0, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=00
udiv w1, w20, w0
msub w20, w1, w0, w20
mov w24, wzr
- ldr w25, [x23, #0x08]
- cmp w25, #0
+ ldr w0, [x23, #0x08]
+ cmp w0, #0
ble G_M58514_IG16
- ;; size=68 bbWeight=0 PerfScore 0.00
+ ldr wzr, [x23, #0x08]
+ ;; size=72 bbWeight=0 PerfScore 0.00
G_M58514_IG11: ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
- cmp w20, w25
+ ldr w0, [x23, #0x08]
+ cmp w20, w0
bhs G_M58514_IG25
add x0, x23, #16
; byrRegs +[x0]
- ldr x26, [x0, w20, UXTW #3]
+ ldr x25, [x0, w20, UXTW #3]
+ ; gcrRegs +[x25]
+ ldrsb wzr, [x25]
+ mov x26, xzr
; gcrRegs +[x26]
- ldrsb wzr, [x26]
- mov x27, xzr
- ; gcrRegs +[x27]
- mov x0, x26
+ mov x0, x25
; gcrRegs +[x0]
; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x26, #0x08]
+ ldr x0, [x25, #0x08]
; gcrRegs +[x0]
- ldr w1, [x26, #0x14]
+ ldr w1, [x25, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M58514_IG13
- ;; size=56 bbWeight=4 PerfScore 84.00
-G_M58514_IG12: ; bbWeight=2, gcrefRegs=4A80001 {x0 x19 x21 x23 x26}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x27]
+ ;; size=60 bbWeight=4 PerfScore 96.00
+G_M58514_IG12: ; bbWeight=2, gcrefRegs=2A80001 {x0 x19 x21 x23 x25}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x26]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x27, [x0, x2]
- ; gcrRegs +[x27]
+ ldr x26, [x0, x2]
+ ; gcrRegs +[x26]
str xzr, [x0, x2]
- str w1, [x26, #0x14]
+ str w1, [x25, #0x14]
;; size=20 bbWeight=2 PerfScore 13.00
-G_M58514_IG13: ; bbWeight=4, gcrefRegs=CA80000 {x19 x21 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M58514_IG13: ; bbWeight=4, gcrefRegs=6A80000 {x19 x21 x23 x25 x26}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x26
+ mov x0, x25
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x26]
+ ; gcrRegs -[x0 x25]
; gcr arg pop 0
- cbnz x27, G_M58514_IG17
+ cbnz x26, G_M58514_IG17
add w20, w20, #1
- cmp w25, w20
+ ldr w0, [x23, #0x08]
+ cmp w0, w20
bne G_M58514_IG15
- ;; size=24 bbWeight=4 PerfScore 18.00
+ ;; size=28 bbWeight=4 PerfScore 30.00
G_M58514_IG14: ; bbWeight=2, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x27]
+ ; gcrRegs -[x26]
mov w20, wzr
;; size=4 bbWeight=2 PerfScore 1.00
G_M58514_IG15: ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1
- cmp w25, w24
+ ldr w0, [x23, #0x08]
+ cmp w0, w24
bgt G_M58514_IG11
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 20.00
G_M58514_IG16: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
mov x23, xzr
; gcrRegs +[x23]
b G_M58514_IG18
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M58514_IG17: ; bbWeight=0.50, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x27]
- mov x23, x27
+G_M58514_IG17: ; bbWeight=0.50, gcrefRegs=4280000 {x19 x21 x26}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23] +[x26]
...
+12 (+0.55%) : 155338.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 33, 79 ) byref -> [fp+0x10] this EH-live single-def
-; V01 loc0 [V01,T45] ( 3, 3 ) int -> x1 single-def
+; V01 loc0 [V01,T44] ( 3, 3 ) int -> x1 single-def
; V02 loc1 [V02,T10] ( 9, 12 ) ref -> x19 class-hnd single-def <<unknown class>>
; V03 loc2 [V03 ] ( 7, 7 ) struct ( 8) [fp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter`1[System.Threading.Tasks.Task]>
; V04 loc3 [V04 ] ( 10, 45.00) struct (16) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
@@ -21,7 +21,7 @@
;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
; V11 tmp4 [V11,T23] ( 3, 6 ) ref -> x24 class-hnd exact single-def "dup spill" <System.Object[]>
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impSpillLclRefs" <Microsoft.Build.Framework.BuildEventContext>
-; V13 tmp6 [V13,T33] ( 2, 4 ) ref -> x21 class-hnd exact single-def "impSpillLclRefs" <<unknown class>>
+; V13 tmp6 [V13,T32] ( 2, 4 ) ref -> x21 class-hnd exact single-def "impSpillLclRefs" <<unknown class>>
; V14 tmp7 [V14,T24] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
; V15 tmp8 [V15,T25] ( 3, 6 ) ref -> x22 class-hnd exact single-def "dup spill" <System.Object[]>
; V16 tmp9 [V16,T26] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
@@ -29,16 +29,16 @@
; V18 tmp11 [V18,T28] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
;* V19 tmp12 [V19 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V20 tmp13 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V21 tmp14 [V21,T34] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
-; V22 tmp15 [V22,T65] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V21 tmp14 [V21,T33] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
+; V22 tmp15 [V22,T64] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V23 tmp16 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V24 tmp17 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V25 tmp18 [V25,T46] ( 2, 2 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V25 tmp18 [V25,T45] ( 2, 2 ) ref -> x2 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V26 tmp19 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V27 tmp20 [V27,T35] ( 2, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.TimeProvider>
+; V27 tmp20 [V27,T34] ( 2, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.TimeProvider>
;* V28 tmp21 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V29 tmp22 [V29,T29] ( 3, 6 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V30 tmp23 [V30,T51] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V29 tmp22 [V29,T29] ( 3, 6 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V30 tmp23 [V30,T50] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V32 tmp25 [V32 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V33 tmp26 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -78,13 +78,13 @@
;* V67 tmp60 [V67 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter`1[System.Threading.Tasks.Task]>
;* V68 tmp61 [V68 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V69 tmp62 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V70 tmp63 [V70,T36] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
+; V70 tmp63 [V70,T35] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
;* V71 tmp64 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V72 tmp65 [V72 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V73 tmp66 [V73 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V74 tmp67 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V75 tmp68 [V75,T31] ( 3, 4.00) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
-; V76 tmp69 [V76,T37] ( 2, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
+; V76 tmp69 [V76,T36] ( 2, 4 ) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
;* V77 tmp70 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V78 tmp71 [V78,T15] ( 4, 8 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Diagnostics.Process>
; V79 tmp72 [V79,T01] ( 5, 40 ) ref -> x21 class-hnd "Inlining Arg" <System.Diagnostics.Process>
@@ -95,7 +95,7 @@
; V84 tmp77 [V84,T04] ( 3, 24 ) ref -> x0 class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V85 tmp78 [V85 ] ( 0, 0 ) ref -> zero-ref
; V86 tmp79 [V86,T18] ( 2, 8 ) ref -> x0
-;* V87 tmp80 [V87,T41] ( 0, 0 ) int -> zero-ref
+;* V87 tmp80 [V87,T40] ( 0, 0 ) int -> zero-ref
;* V88 tmp81 [V88 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
;* V89 tmp82 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
;* V90 tmp83 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -104,7 +104,7 @@
;* V93 tmp86 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V94 tmp87 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V95 tmp88 [V95 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V96 tmp89 [V96,T42] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V96 tmp89 [V96,T41] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V97 tmp90 [V97,T09] ( 2, 16.00) ref -> x14 class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V98 tmp91 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V99 tmp92 [V99 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -119,25 +119,25 @@
; V108 tmp101 [V108,T17] ( 4, 8 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Diagnostics.Process>
; V109 tmp102 [V109,T21] ( 4, 6 ) byref -> x14 single-def "Inlining Arg"
;* V110 tmp103 [V110 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
-; V111 tmp104 [V111,T53] ( 8, 0.04) ref -> x20 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
+; V111 tmp104 [V111,T52] ( 8, 0.04) ref -> x20 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V112 tmp105 [V112 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
-; V113 tmp106 [V113,T54] ( 6, 0.04) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
+; V113 tmp106 [V113,T53] ( 6, 0.04) ref -> x19 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
;* V114 tmp107 [V114 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V115 tmp108 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V116 tmp109 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
-; V117 tmp110 [V117,T57] ( 2, 0.01) int -> x21 "Inlining Arg"
-;* V118 tmp111 [V118,T63] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V117 tmp110 [V117,T56] ( 2, 0.01) int -> x21 "Inlining Arg"
+;* V118 tmp111 [V118,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V119 tmp112 [V119 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V120 tmp113 [V120,T61] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V121 tmp114 [V121,T60] ( 3, 0.01) ref -> x21 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
-; V122 tmp115 [V122,T64] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
-; V123 tmp116 [V123,T56] ( 5, 0.02) int -> x0 single-def "Inline stloc first use temp"
+;* V120 tmp113 [V120,T60] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V121 tmp114 [V121,T59] ( 3, 0.01) ref -> x21 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
+; V122 tmp115 [V122,T63] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V123 tmp116 [V123,T55] ( 5, 0.02) int -> x0 single-def "Inline stloc first use temp"
; V124 tmp117 [V124 ] ( 7, 7 ) ref -> [fp+0x28] do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
; V125 tmp118 [V125 ] ( 6, 25.00) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V126 tmp119 [V126 ] ( 6, 25 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
;* V127 tmp120 [V127 ] ( 0, 0 ) ref -> zero-ref single-def "field V23._source (fldOffset=0x0)" P-INDEP
;* V128 tmp121 [V128 ] ( 0, 0 ) ref -> zero-ref single-def "field V24._source (fldOffset=0x0)" P-INDEP
-;* V129 tmp122 [V129,T50] ( 0, 0 ) ref -> zero-ref single-def "field V26._source (fldOffset=0x0)" P-INDEP
+;* V129 tmp122 [V129,T49] ( 0, 0 ) ref -> zero-ref single-def "field V26._source (fldOffset=0x0)" P-INDEP
;* V130 tmp123 [V130 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V32._source (fldOffset=0x0)" P-DEP
;* V131 tmp124 [V131 ] ( 0, 0 ) ref -> zero-ref single-def "field V40._node (fldOffset=0x0)" P-DEP
;* V132 tmp125 [V132 ] ( 0, 0 ) long -> zero-ref single-def "field V40._id (fldOffset=0x8)" P-DEP
@@ -145,26 +145,25 @@
;* V134 tmp127 [V134 ] ( 0, 0 ) long -> zero-ref "field V58._id (fldOffset=0x8)" P-DEP
;* V135 tmp128 [V135 ] ( 0, 0 ) ref -> zero-ref single-def "field V59._node (fldOffset=0x0)" P-INDEP
;* V136 tmp129 [V136 ] ( 0, 0 ) long -> zero-ref single-def "field V59._id (fldOffset=0x8)" P-INDEP
-; V137 tmp130 [V137,T47] ( 2, 2 ) ref -> x0 single-def "field V67.m_task (fldOffset=0x0)" P-INDEP
+; V137 tmp130 [V137,T46] ( 2, 2 ) ref -> x0 single-def "field V67.m_task (fldOffset=0x0)" P-INDEP
;* V138 tmp131 [V138 ] ( 0, 0 ) ref -> zero-ref "field V82._source (fldOffset=0x0)" P-INDEP
-;* V139 tmp132 [V139,T40] ( 0, 0 ) ref -> zero-ref "field V83._source (fldOffset=0x0)" P-INDEP
+;* V139 tmp132 [V139,T39] ( 0, 0 ) ref -> zero-ref "field V83._source (fldOffset=0x0)" P-INDEP
; V140 tmp133 [V140,T19] ( 2, 8 ) ref -> x0 "field V89.m_task (fldOffset=0x0)" P-INDEP
-;* V141 tmp134 [V141,T43] ( 0, 0 ) int -> zero-ref "field V89.m_options (fldOffset=0x8)" P-INDEP
+;* V141 tmp134 [V141,T42] ( 0, 0 ) int -> zero-ref "field V89.m_options (fldOffset=0x8)" P-INDEP
; V142 tmp135 [V142,T08] ( 2, 16 ) ref -> x1 "argument with side effect"
-; V143 tmp136 [V143,T38] ( 2, 16 ) ref -> x1 "argument with side effect"
-; V144 tmp137 [V144,T39] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
-; V145 PSPSym [V145,T52] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
-; V146 cse0 [V146,T58] ( 3, 0.01) ref -> x19 "CSE - conservative"
-; V147 cse1 [V147,T59] ( 3, 0.01) int -> x1 "CSE - conservative"
-; V148 cse2 [V148,T55] ( 5, 0.02) byref -> x19 "CSE - conservative"
-; V149 cse3 [V149,T48] ( 2, 2 ) ref -> x1 multi-def "CSE - aggressive"
-; V150 cse4 [V150,T32] ( 4, 4 ) long -> x22 "CSE - moderate"
-; V151 cse5 [V151,T14] ( 6, 10.01) long -> registers multi-def "CSE - aggressive"
-; V152 cse6 [V152,T11] ( 8, 12 ) long -> registers multi-def "CSE - aggressive"
-; V153 cse7 [V153,T44] ( 3, 3 ) byref -> x1 "CSE - moderate"
-; V154 rat0 [V154,T49] ( 2, 2 ) long -> x21 "Spilling to split statement for tree"
-; V155 rat1 [V155,T20] ( 2, 8 ) long -> x0 "Spilling to split statement for tree"
-; V156 rat2 [V156,T62] ( 2, 0.01) long -> x0 "Spilling to split statement for tree"
+; V143 tmp136 [V143,T37] ( 2, 16 ) ref -> x1 "argument with side effect"
+; V144 tmp137 [V144,T38] ( 2, 4 ) ref -> x2 single-def "argument with side effect"
+; V145 PSPSym [V145,T51] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V146 cse0 [V146,T57] ( 3, 0.01) ref -> x19 "CSE - conservative"
+; V147 cse1 [V147,T58] ( 3, 0.01) int -> x1 "CSE - conservative"
+; V148 cse2 [V148,T54] ( 5, 0.02) byref -> x19 "CSE - conservative"
+; V149 cse3 [V149,T47] ( 2, 2 ) ref -> x1 multi-def "CSE - aggressive"
+; V150 cse4 [V150,T14] ( 6, 10.01) long -> registers multi-def "CSE - aggressive"
+; V151 cse5 [V151,T11] ( 8, 12 ) long -> registers multi-def "CSE - aggressive"
+; V152 cse6 [V152,T43] ( 3, 3 ) byref -> x1 "CSE - moderate"
+; V153 rat0 [V153,T48] ( 2, 2 ) long -> x21 "Spilling to split statement for tree"
+; V154 rat1 [V154,T20] ( 2, 8 ) long -> x0 "Spilling to split statement for tree"
+; V155 rat2 [V155,T61] ( 2, 0.01) long -> x0 "Spilling to split statement for tree"
;
; Lcl frame size = 40
@@ -213,15 +212,14 @@ G_M16468_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movk x21, #0xD1FFAB1E LSL #32
ldr x21, [x21]
; gcrRegs +[x21]
- movz x22, #0xD1FFAB1E
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- mov x0, x22
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x23, x0
- ; gcrRegs +[x23]
+ mov x22, x0
+ ; gcrRegs +[x22]
mov x2, x21
; gcrRegs +[x2]
mov w1, #100
@@ -232,17 +230,19 @@ G_M16468_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
blr x3
; gcrRegs -[x0 x2 x21]
; gcr arg pop 0
- mov x2, x23
+ mov x2, x22
; gcrRegs +[x2]
mov x1, x20
; gcrRegs +[x1]
- add x0, x22, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for System.Threading.Tasks.Task:WhenAny[System.__Canon](System.__Canon,System.__Canon):System.Threading.Tasks.Task`1[System.__Canon]
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ; gcrRegs -[x1-x2 x20 x23] +[x0]
+ ; gcrRegs -[x1-x2 x20 x22] +[x0]
; gcr arg pop 0
ldrsb wzr, [x0]
str x0, [fp, #0x28] // [V124 tmp117]
@@ -280,8 +280,10 @@ G_M16468_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
mov x2, x0
; gcrRegs +[x2]
add x1, fp, #40 // [V03 loc2]
- add x0, x22, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x3, #0xD1FFAB1E // code for <unknown method>
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
@@ -290,7 +292,7 @@ G_M16468_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x2]
; gcr arg pop 0
b G_M16468_IG41
- ;; size=212 bbWeight=1 PerfScore 53.50
+ ;; size=224 bbWeight=1 PerfScore 55.00
G_M16468_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
ldr x0, [fp, #0x10] // [V00 this]
@@ -1031,7 +1033,7 @@ G_M16468_IG48: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2196, prolog size 44, PerfScore 834.18, instruction count 549, allocated bytes for code 2196 (MethodHash=362fbfab) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
+Total bytes of code 2208, prolog size 44, PerfScore 835.68, instruction count 552, allocated bytes for code 2208 (MethodHash=362fbfab) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1042,7 +1044,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 525 (0x0020d) Actual length = 2100 (0x000834)
+ Function Length : 528 (0x00210) Actual length = 2112 (0x000840)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+2.09%) : 207875.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T02] ( 4, 12.50) ref -> x24 class-hnd <System.Xml.XmlDictionaryString>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T15] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T14] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T13] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V10 tmp3 [V10,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T16] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V13 tmp6 [V13,T18] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V12 tmp5 [V12,T15] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V13 tmp6 [V13,T17] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T19] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V19 tmp12 [V19,T18] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T14] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V21 tmp14 [V21,T13] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T17] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V24 tmp17 [V24,T20] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V23 tmp16 [V23,T16] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V24 tmp17 [V24,T19] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T24] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T21] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V30 tmp23 [V30,T20] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V31 tmp24 [V31,T00] ( 5, 27.05) ref -> x2 class-hnd exact "Inlining Arg" <System.String>
; V32 tmp25 [V32,T11] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V33 tmp26 [V33,T04] ( 2, 8 ) byref -> x0 "impAppendStmt"
@@ -59,11 +59,10 @@
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V51 tmp44 [V51,T22] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V52 cse0 [V52,T12] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
-; V53 cse1 [V53,T10] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
-; V54 cse2 [V54,T07] ( 3, 6 ) int -> x23 "CSE - aggressive"
-; V55 cse3 [V55,T08] ( 3, 5.52) int -> x1 "CSE - aggressive"
+; V51 tmp44 [V51,T21] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V52 cse0 [V52,T10] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
+; V53 cse1 [V53,T07] ( 3, 6 ) int -> x23 "CSE - aggressive"
+; V54 cse2 [V54,T08] ( 3, 5.52) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -221,19 +220,19 @@ G_M28309_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M28309_IG16
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M28309_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #8
blo G_M28309_IG17
@@ -293,19 +292,19 @@ G_M28309_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M28309_IG21
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M28309_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M28309_IG22
movz x0, #0xD1FFAB1E
@@ -367,7 +366,7 @@ G_M28309_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 764, prolog size 44, PerfScore 110.97, instruction count 191, allocated bytes for code 764 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 780, prolog size 44, PerfScore 110.97, instruction count 195, allocated bytes for code 780 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -378,7 +377,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 191 (0x000bf) Actual length = 764 (0x0002fc)
+ Function Length : 195 (0x000c3) Actual length = 780 (0x00030c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+2.12%) : 207874.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T01] ( 6, 16.26) ref -> x24 class-hnd exact <System.String>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T14] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T13] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V10 tmp3 [V10,T11] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T15] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V13 tmp6 [V13,T17] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V12 tmp5 [V12,T14] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V13 tmp6 [V13,T16] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T18] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V19 tmp12 [V19,T17] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T13] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V21 tmp14 [V21,T12] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T16] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V24 tmp17 [V24,T19] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V23 tmp16 [V23,T15] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V24 tmp17 [V24,T18] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T20] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V30 tmp23 [V30,T19] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V31 tmp24 [V31,T10] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V32 tmp25 [V32,T03] ( 2, 8 ) byref -> x0 "impAppendStmt"
;* V33 tmp26 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -58,11 +58,10 @@
;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V50 tmp43 [V50,T21] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V51 cse0 [V51,T11] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
-; V52 cse1 [V52,T09] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
-; V53 cse2 [V53,T06] ( 3, 6 ) int -> x23 "CSE - aggressive"
-; V54 cse3 [V54,T07] ( 3, 5.52) int -> x2 "CSE - aggressive"
+; V50 tmp43 [V50,T20] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V51 cse0 [V51,T09] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
+; V52 cse1 [V52,T06] ( 3, 6 ) int -> x23 "CSE - aggressive"
+; V53 cse2 [V53,T07] ( 3, 5.52) int -> x2 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -214,19 +213,19 @@ G_M58179_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M58179_IG15
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M58179_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #8
blo G_M58179_IG16
@@ -286,19 +285,19 @@ G_M58179_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M58179_IG20
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M58179_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M58179_IG21
movz x0, #0xD1FFAB1E
@@ -360,7 +359,7 @@ G_M58179_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 756, prolog size 44, PerfScore 95.96, instruction count 189, allocated bytes for code 756 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 772, prolog size 44, PerfScore 95.96, instruction count 193, allocated bytes for code 772 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -371,7 +370,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 189 (0x000bd) Actual length = 756 (0x0002f4)
+ Function Length : 193 (0x000c1) Actual length = 772 (0x000304)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.49%) : 4464.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
@@ -10,40 +10,38 @@
;
; V00 this [V00,T14] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T18] ( 3, 1 ) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V02 loc1 [V02,T02] ( 7, 17 ) ref -> x19 class-hnd exact single-def <<unknown class>>
; V03 loc2 [V03,T01] ( 7, 22 ) int -> x20
; V04 loc3 [V04,T04] ( 4, 12 ) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
-; V07 tmp2 [V07,T02] ( 2, 16 ) int -> x20 "dup spill"
+; V07 tmp2 [V07,T03] ( 2, 16 ) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T19] ( 4, 0 ) int -> x21 "Inline return value spill temp"
+; V09 tmp4 [V09,T17] ( 4, 0 ) int -> x21 "Inline return value spill temp"
; V10 tmp5 [V10,T09] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T06] ( 4, 10.50) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T00] ( 7, 52 ) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V13 tmp8 [V13,T06] ( 4, 10.50) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T00] ( 7, 52 ) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
; V15 tmp10 [V15,T07] ( 3, 10 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
; V16 tmp11 [V16,T05] ( 4, 12 ) int -> x1 "Inline stloc first use temp"
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "fgMakeTemp is creating a new local variable"
-; V18 tmp13 [V18,T20] ( 3, 0 ) int -> x0 "fgMakeTemp is creating a new local variable"
-; V19 cse0 [V19,T17] ( 3, 3 ) long -> x0 "CSE - aggressive"
+; V18 tmp13 [V18,T18] ( 3, 0 ) int -> x0 "fgMakeTemp is creating a new local variable"
+; V19 cse0 [V19,T16] ( 3, 3 ) long -> x0 "CSE - aggressive"
; V20 cse1 [V20,T11] ( 3, 6 ) long -> x2 "CSE - aggressive"
-; V21 cse2 [V21,T03] ( 5, 12 ) int -> x22 "CSE - aggressive"
-; V22 cse3 [V22,T16] ( 2, 4 ) byref -> x19 hoist "CSE - aggressive"
-; V23 cse4 [V23,T08] ( 2, 8 ) int -> x2 "CSE - aggressive"
-; V24 cse5 [V24,T10] ( 3, 6 ) byref -> x0 "CSE - aggressive"
-; V25 rat0 [V25,T15] ( 3, 4 ) long -> x0 "TLS field access"
-; V26 rat1 [V26,T12] ( 3, 6 ) long -> x0 "TLS access"
-; V27 rat2 [V27,T13] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V21 cse2 [V21,T08] ( 2, 8 ) int -> x2 "CSE - aggressive"
+; V22 cse3 [V22,T10] ( 3, 6 ) byref -> x0 "CSE - aggressive"
+; V23 rat0 [V23,T15] ( 3, 4 ) long -> x0 "TLS field access"
+; V24 rat1 [V24,T12] ( 3, 6 ) long -> x0 "TLS access"
+; V25 rat2 [V25,T13] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -95,91 +93,95 @@ G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
udiv w1, w21, w0
msub w20, w1, w0, w21
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG12
- add x19, x19, #16
- ; gcrRegs -[x19]
- ; byrRegs +[x19]
+ ldr wzr, [x19, #0x08]
;; size=72 bbWeight=0 PerfScore 0.00
-G_M10734_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w20, w22
+G_M10734_IG07: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG16
- ldr x23, [x19, w20, UXTW #3]
+ add x0, x19, #16
+ ; byrRegs +[x0]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
+ ; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M10734_IG09
- ;; size=52 bbWeight=4 PerfScore 82.00
-G_M10734_IG08: ; bbWeight=2, gcrefRegs=800001 {x0 x23}, byrefRegs=80000 {x19}, byref
- ; gcrRegs -[x24]
+ ;; size=60 bbWeight=4 PerfScore 96.00
+G_M10734_IG08: ; bbWeight=2, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
- ; gcrRegs +[x24]
+ ldr x23, [x0, x2]
+ ; gcrRegs +[x23]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
+ str w1, [x22, #0x14]
;; size=20 bbWeight=2 PerfScore 13.00
-G_M10734_IG09: ; bbWeight=4, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG09: ; bbWeight=4, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG14
+ cbnz x23, G_M10734_IG14
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG11
- ;; size=24 bbWeight=4 PerfScore 18.00
-G_M10734_IG10: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- ; gcrRegs -[x24]
+ ;; size=28 bbWeight=4 PerfScore 30.00
+G_M10734_IG10: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23]
mov w20, wzr
;; size=4 bbWeight=2 PerfScore 1.00
-G_M10734_IG11: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG11: ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 20.00
G_M10734_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M10734_IG13: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M10734_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M10734_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M10734_IG15: ; bbWeight=0.50, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ ;; size=20 bbWeight=0.50 PerfScore 3.00
G_M10734_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -195,7 +197,7 @@ G_M10734_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 356, prolog size 20, PerfScore 153.50, instruction count 89, allocated bytes for code 356 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
+Total bytes of code 372, prolog size 20, PerfScore 192.50, instruction count 93, allocated bytes for code 372 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
; ============================================================
Unwind Info:
@@ -206,7 +208,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 89 (0x00059) Actual length = 356 (0x000164)
+ Function Length : 93 (0x0005d) Actual length = 372 (0x000174)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -217,10 +219,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
libraries_tests.run.linux.arm64.Release.mch
-28 (-2.68%) : 406353.dasm - System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this (Tier1)
@@ -26,35 +26,35 @@
; V14 tmp12 [V14,T13] ( 4, 3 ) ref -> x22
;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
-; V17 tmp15 [V17,T25] ( 5, 0 ) ref -> x22
+; V17 tmp15 [V17,T24] ( 6, 0 ) ref -> x22
;* V18 tmp16 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V20 tmp18 [V20,T34] ( 2, 0 ) ref -> x22 class-hnd exact single-def "dup spill" <System.String>
-; V21 tmp19 [V21,T29] ( 4, 0 ) ref -> x22
+; V20 tmp18 [V20,T33] ( 2, 0 ) ref -> x22 class-hnd exact single-def "dup spill" <System.String>
+; V21 tmp19 [V21,T28] ( 5, 0 ) ref -> x22
; V22 tmp20 [V22,T10] ( 2, 4 ) ref -> x23 class-hnd exact single-def "dup spill" <System.String>
; V23 tmp21 [V23,T14] ( 4, 3 ) ref -> x23
;* V24 tmp22 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp24 [V26,T26] ( 5, 0 ) ref -> x23
+; V26 tmp24 [V26,T25] ( 6, 0 ) ref -> x23
;* V27 tmp25 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V28 tmp26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V29 tmp27 [V29,T35] ( 2, 0 ) ref -> x23 class-hnd exact single-def "dup spill" <System.String>
-; V30 tmp28 [V30,T30] ( 4, 0 ) ref -> x23
+; V29 tmp27 [V29,T34] ( 2, 0 ) ref -> x23 class-hnd exact single-def "dup spill" <System.String>
+; V30 tmp28 [V30,T29] ( 5, 0 ) ref -> x23
; V31 tmp29 [V31,T15] ( 2, 2 ) ubyte -> x0 "Inline return value spill temp"
; V32 tmp30 [V32,T11] ( 2, 4 ) byref -> x0 single-def "impAppendStmt"
; V33 tmp31 [V33,T17] ( 2, 2 ) ref -> x24 class-hnd exact single-def "dup spill" <System.String>
; V34 tmp32 [V34,T20] ( 4, 1.50) ref -> x24
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V36 tmp34 [V36 ] ( 0, 0 ) ref -> zero-ref single-def
-; V37 tmp35 [V37,T27] ( 5, 0 ) ref -> x24
+; V37 tmp35 [V37,T26] ( 6, 0 ) ref -> x24
;* V38 tmp36 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V39 tmp37 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V40 tmp38 [V40,T36] ( 2, 0 ) ref -> x24 class-hnd exact single-def "dup spill" <System.String>
-; V41 tmp39 [V41,T31] ( 4, 0 ) ref -> x24
+; V40 tmp38 [V40,T35] ( 2, 0 ) ref -> x24 class-hnd exact single-def "dup spill" <System.String>
+; V41 tmp39 [V41,T30] ( 5, 0 ) ref -> x24
;* V42 tmp40 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V43 tmp41 [V43,T00] ( 5, 13 ) int -> x25 "Inline stloc first use temp"
; V44 tmp42 [V44,T05] ( 6, 5.50) ushort -> x27 "Inline stloc first use temp"
-; V45 tmp43 [V45,T33] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V45 tmp43 [V45,T32] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V46 tmp44 [V46,T23] ( 3, 1 ) int -> x28
;* V47 tmp45 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V48 tmp46 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -67,11 +67,11 @@
; V55 tmp53 [V55,T21] ( 4, 1.50) ref -> x2
;* V56 tmp54 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V57 tmp55 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
-; V58 tmp56 [V58,T28] ( 5, 0 ) ref -> x2
+; V58 tmp56 [V58,T27] ( 6, 0 ) ref -> x2
;* V59 tmp57 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V60 tmp58 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V61 tmp59 [V61,T37] ( 2, 0 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V62 tmp60 [V62,T32] ( 4, 0 ) ref -> x2
+; V61 tmp59 [V61,T36] ( 2, 0 ) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V62 tmp60 [V62,T31] ( 5, 0 ) ref -> x2
;* V63 tmp61 [V63 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
;* V64 tmp62 [V64 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V65 tmp63 [V65 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
@@ -84,12 +84,11 @@
;* V72 tmp70 [V72 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
;* V73 tmp71 [V73 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
;* V74 tmp72 [V74 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V75 tmp73 [V75,T38] ( 2, 0 ) ref -> x0 "argument with side effect"
-; V76 tmp74 [V76,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V75 tmp73 [V75,T37] ( 2, 0 ) ref -> x0 "argument with side effect"
+; V76 tmp74 [V76,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
; V77 cse0 [V77,T07] ( 3, 5 ) int -> x26 "CSE - aggressive"
-; V78 cse1 [V78,T24] ( 16, 0 ) ref -> registers multi-def "CSE - moderate"
-; V79 cse2 [V79,T12] ( 4, 3.79) int -> x24 "CSE - moderate"
-; V80 cse3 [V80,T08] ( 5, 4 ) long -> x21 "CSE - aggressive"
+; V78 cse1 [V78,T12] ( 4, 3.79) int -> x24 "CSE - moderate"
+; V79 cse2 [V79,T08] ( 5, 4 ) long -> x21 "CSE - aggressive"
;
; Lcl frame size = 0
@@ -112,33 +111,25 @@ G_M51875_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
cmp x0, x21
- bne G_M51875_IG35
+ bne G_M51875_IG29
ldr x22, [x19, #0x48]
; gcrRegs +[x22]
- cbnz x22, G_M51875_IG06
+ cbnz x22, G_M51875_IG04
;; size=32 bbWeight=1 PerfScore 10.00
-G_M51875_IG03: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG03: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
ldr x14, [x19, #0x30]
; gcrRegs +[x14]
ldr x22, [x14, #0x18]
; gcrRegs +[x22]
- cbnz x22, G_M51875_IG04
- movz x22, #0xD1FFAB1E
- ; gcrRegs -[x22]
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=24 bbWeight=0 PerfScore 0.00
-G_M51875_IG04: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x14] +[x22]
- cbnz x22, G_M51875_IG05
- movz x22, #0xD1FFAB1E
- ; gcrRegs -[x22]
- movk x22, #0xD1FFAB1E LSL #16
- movk x22, #0xD1FFAB1E LSL #32
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M51875_IG05: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x22]
+ movz x14, #0xD1FFAB1E
+ ; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x22, #0
+ csel x22, x22, x14, ne
+ cmp x22, #0
+ csel x22, x22, x14, ne
add x14, x19, #72
; byrRegs +[x14]
mov x15, x22
@@ -146,8 +137,8 @@ G_M51875_IG05: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG06: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0 PerfScore 0.00
+G_M51875_IG04: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E // code for <unknown method>
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -157,32 +148,25 @@ G_M51875_IG06: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
; gcr arg pop 0
ldr x1, [x0]
cmp x1, x21
- bne G_M51875_IG36
+ bne G_M51875_IG30
ldr x23, [x0, #0x48]
; gcrRegs +[x23]
- cbnz x23, G_M51875_IG10
+ cbnz x23, G_M51875_IG06
;; size=40 bbWeight=1 PerfScore 14.00
-G_M51875_IG07: ; bbWeight=0, gcrefRegs=580001 {x0 x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG05: ; bbWeight=0, gcrefRegs=580001 {x0 x19 x20 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x23, [x14, #0x18]
; gcrRegs +[x23]
- cbnz x23, G_M51875_IG08
movz x14, #0xD1FFAB1E
; gcrRegs -[x14]
movk x14, #0xD1FFAB1E LSL #16
movk x14, #0xD1FFAB1E LSL #32
- mov x23, x14
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M51875_IG08: ; bbWeight=0, gcrefRegs=D80001 {x0 x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
- cbnz x23, G_M51875_IG09
- movz x14, #0xD1FFAB1E
- movk x14, #0xD1FFAB1E LSL #16
- movk x14, #0xD1FFAB1E LSL #32
- mov x23, x14
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M51875_IG09: ; bbWeight=0, gcrefRegs=D80001 {x0 x19 x20 x22 x23}, byrefRegs=0000 {}, byref
+ cmp x23, #0
+ csel x23, x23, x14, ne
+ cmp x23, #0
+ csel x23, x23, x14, ne
add x14, x0, #72
; byrRegs +[x14]
mov x15, x23
@@ -190,20 +174,20 @@ G_M51875_IG09: ; bbWeight=0, gcrefRegs=D80001 {x0 x19 x20 x22 x23}, byref
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG10: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0 PerfScore 0.00
+G_M51875_IG06: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
cmp x22, x23
- beq G_M51875_IG13
+ beq G_M51875_IG09
;; size=8 bbWeight=1 PerfScore 1.50
-G_M51875_IG11: ; bbWeight=0.89, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
- cbz x22, G_M51875_IG25
- cbz x23, G_M51875_IG25
+G_M51875_IG07: ; bbWeight=0.89, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+ cbz x22, G_M51875_IG21
+ cbz x23, G_M51875_IG21
ldr w24, [x22, #0x08]
ldr w0, [x23, #0x08]
cmp w24, w0
- bne G_M51875_IG25
+ bne G_M51875_IG21
;; size=24 bbWeight=0.89 PerfScore 8.48
-G_M51875_IG12: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG08: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
mov w0, #1
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
@@ -241,9 +225,9 @@ G_M51875_IG12: ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefReg
; gcrRegs -[x22-x23]
; byrRegs -[x0-x1]
; gcr arg pop 0
- cbz w0, G_M51875_IG25
+ cbz w0, G_M51875_IG21
;; size=120 bbWeight=1 PerfScore 30.50
-G_M51875_IG13: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M51875_IG09: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
@@ -258,7 +242,7 @@ G_M51875_IG13: ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
; gcrRegs -[x20]
; gcr arg pop 0
;; size=36 bbWeight=0.50 PerfScore 5.00
-G_M51875_IG14: ; bbWeight=0.50, epilog, nogc, extend
+G_M51875_IG10: ; bbWeight=0.50, epilog, nogc, extend
ldp x27, x28, [sp, #0x50]
ldp x25, x26, [sp, #0x40]
ldp x23, x24, [sp, #0x30]
@@ -267,7 +251,7 @@ G_M51875_IG14: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x60
ret lr
;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M51875_IG15: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, gcvars, byref
+G_M51875_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x19-x20 x24]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -275,32 +259,32 @@ G_M51875_IG15: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=118
ldrb w0, [x0, w27, UXTW #2]
and w28, w0, #31
;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M51875_IG16: ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG12: ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
mov w0, #1
lsl w0, w0, w28
mov w2, #0xD1FFAB1E
tst w0, w2
- bne G_M51875_IG18
+ bne G_M51875_IG14
;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M51875_IG17: ; bbWeight=2, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG13: ; bbWeight=2, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
mov w0, #95
cmp w27, #45
...
-4 (-1.45%) : 91179.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
@@ -40,7 +40,6 @@
;* V28 tmp26 [V28 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V14.array (fldOffset=0x0)" P-DEP
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref "field V15.array (fldOffset=0x0)" P-INDEP
;* V30 tmp28 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V23.array (fldOffset=0x0)" P-INDEP
-; V31 cse0 [V31,T10] ( 2, 0 ) long -> x0 "CSE - conservative"
;
; Lcl frame size = 0
@@ -108,7 +107,6 @@ G_M22152_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- add x0, x0, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
mov x20, x0
@@ -136,7 +134,7 @@ G_M22152_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M22152_IG03
- ;; size=100 bbWeight=0 PerfScore 0.00
+ ;; size=96 bbWeight=0 PerfScore 0.00
G_M22152_IG08: ; bbWeight=0, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] +[x1]
ldr x0, [x20, #0x08]
@@ -160,7 +158,7 @@ G_M22152_IG09: ; bbWeight=0, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
b G_M22152_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 276, prolog size 16, PerfScore 31.00, instruction count 69, allocated bytes for code 276 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
+Total bytes of code 272, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 272 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
; ============================================================
Unwind Info:
@@ -171,7 +169,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 69 (0x00045) Actual length = 276 (0x000114)
+ Function Length : 68 (0x00044) Actual length = 272 (0x000110)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-0.97%) : 370512.dasm - System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]:Return(System.Buffers.AhoCorasickNode[],ubyte):this (Instrumented Tier1)
@@ -11,7 +11,7 @@
; V00 this [V00,T09] ( 8, 5 ) ref -> x20 this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]>
; V01 arg1 [V01,T06] ( 11, 7.50) ref -> x19 class-hnd single-def <System.Buffers.AhoCorasickNode[]>
; V02 arg2 [V02,T12] ( 3, 2.50) ubyte -> x21 single-def
-; V03 loc0 [V03,T10] ( 8, 5 ) int -> x23
+; V03 loc0 [V03,T11] ( 8, 5 ) int -> x23
;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
; V05 loc2 [V05,T22] ( 4, 2.50) ubyte -> x25
; V06 loc3 [V06,T25] ( 3, 2 ) ubyte -> x26
@@ -29,12 +29,12 @@
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
;* V19 tmp8 [V19 ] ( 0, 0 ) int -> zero-ref
;* V20 tmp9 [V20 ] ( 0, 0 ) int -> zero-ref
-; V21 tmp10 [V21,T42] ( 2, 1 ) int -> x27
+; V21 tmp10 [V21,T42] ( 2, 1 ) int -> x28
;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref
;* V23 tmp12 [V23 ] ( 0, 0 ) int -> zero-ref
;* V24 tmp13 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp14 [V25 ] ( 0, 0 ) int -> zero-ref
-; V26 tmp15 [V26,T35] ( 3, 1.50) int -> x28
+; V26 tmp15 [V26,T35] ( 3, 1.50) int -> x23
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
;* V28 tmp17 [V28 ] ( 0, 0 ) int -> zero-ref
;* V29 tmp18 [V29 ] ( 0, 0 ) int -> zero-ref
@@ -58,19 +58,19 @@
;* V47 tmp36 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V48 tmp37 [V48,T37] ( 3, 1.50) int -> x27 "Inline stloc first use temp"
; V49 tmp38 [V49,T38] ( 3, 1.50) ubyte -> x26 "Inline return value spill temp"
-; V50 tmp39 [V50,T11] ( 3, 4.50) ref -> x24 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+; V50 tmp39 [V50,T02] ( 6, 16.50) ref -> x24 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
; V51 tmp40 [V51,T01] ( 7, 22 ) int -> x26 "Inline stloc first use temp"
; V52 tmp41 [V52,T05] ( 4, 12 ) int -> x27 "Inline stloc first use temp"
-; V53 tmp42 [V53,T02] ( 2, 16 ) int -> x26 "dup spill"
+; V53 tmp42 [V53,T03] ( 2, 16 ) int -> x26 "dup spill"
;* V54 tmp43 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
; V55 tmp44 [V55,T48] ( 3, 0 ) int -> x0 "Inline return value spill temp"
; V56 tmp45 [V56,T17] ( 4, 3 ) int -> x26 "dup spill"
;* V57 tmp46 [V57 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V58 tmp47 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V59 tmp48 [V59,T08] ( 3, 10 ) ubyte -> [fp+0x1C] "Inline stloc first use temp"
-; V60 tmp49 [V60,T00] ( 8, 56 ) ref -> [fp+0x10] class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V60 tmp49 [V60,T00] ( 8, 56 ) ref -> x28 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
; V61 tmp50 [V61,T07] ( 3, 10 ) ref -> x14 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V62 tmp51 [V62,T03] ( 5, 14 ) int -> x0 "Inline stloc first use temp"
+; V62 tmp51 [V62,T04] ( 5, 14 ) int -> x0 "Inline stloc first use temp"
; V63 tmp52 [V63,T33] ( 2, 2 ) int -> x4 "Inlining Arg"
;* V64 tmp53 [V64,T45] ( 0, 0 ) ref -> zero-ref single-def "field V39.Array (fldOffset=0x0)" P-INDEP
;* V65 tmp54 [V65,T46] ( 0, 0 ) int -> zero-ref "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
@@ -83,8 +83,8 @@
;* V72 cse1 [V72,T34] ( 0, 0 ) ref -> zero-ref "CSE - moderate"
; V73 cse2 [V73,T39] ( 3, 1.50) long -> x0 "CSE - moderate"
; V74 cse3 [V74,T40] ( 3, 1.50) long -> x21 "CSE - moderate"
-; V75 cse4 [V75,T04] ( 5, 12 ) int -> x28 "CSE - aggressive"
-; V76 cse5 [V76,T13] ( 6, 4 ) int -> x22 "CSE - moderate"
+; V75 cse4 [V75,T13] ( 6, 4 ) int -> x22 "CSE - moderate"
+; V76 cse5 [V76,T10] ( 14, 5.50) long -> x27 multi-def "CSE - aggressive"
; V77 rat0 [V77,T26] ( 3, 2 ) long -> x0 "TLS field access"
; V78 rat1 [V78,T20] ( 3, 3 ) long -> x0 "TLS access"
; V79 rat2 [V79,T21] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
@@ -270,41 +270,38 @@ G_M31247_IG10: ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
G_M31247_IG11: ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
and w26, w0, #1
mov w27, wzr
- ldr w28, [x24, #0x08]
- cmp w28, #0
+ ldr w0, [x24, #0x08]
+ cmp w0, #0
ble G_M31247_IG18
;; size=20 bbWeight=0 PerfScore 0.00
G_M31247_IG12: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
- cmp w26, w28
+ ldr w0, [x24, #0x08]
+ cmp w26, w0
bhs G_M31247_IG31
add x0, x24, #16
; byrRegs +[x0]
- ldr x1, [x0, w26, UXTW #3]
- ; gcrRegs +[x1]
- str x1, [fp, #0x10] // [V60 tmp49]
- ; GC ptr vars +{V60}
- ldrsb wzr, [x1]
+ ldr x28, [x0, w26, UXTW #3]
+ ; gcrRegs +[x28]
+ ldrsb wzr, [x28]
str wzr, [fp, #0x1C] // [V59 tmp48]
- mov x0, x1
+ mov x0, x28
; gcrRegs +[x0]
; byrRegs -[x0]
bl <unknown method>
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
; gcr arg pop 0
- ldr x1, [fp, #0x10] // [V60 tmp49]
- ; gcrRegs +[x1]
- ldr x14, [x1, #0x08]
+ ldr x14, [x28, #0x08]
; gcrRegs +[x14]
- ldr w0, [x1, #0x14]
+ ldr w0, [x28, #0x14]
ldr w15, [x14, #0x08]
cmp w15, w0
bls G_M31247_IG15
- ;; size=60 bbWeight=4 PerfScore 96.00
-G_M31247_IG13: ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
+ ;; size=56 bbWeight=4 PerfScore 96.00
+G_M31247_IG13: ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
cbnz w0, G_M31247_IG14
- str wzr, [x1, #0x18]
+ str wzr, [x28, #0x18]
;; size=8 bbWeight=2 PerfScore 4.00
-G_M31247_IG14: ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M31247_IG14: ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref
add x14, x14, #16
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -315,31 +312,32 @@ G_M31247_IG14: ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24},
; gcrRegs -[x15]
; byrRegs -[x14]
add w0, w0, #1
- str w0, [x1, #0x14]
- mov w2, #1
- str w2, [fp, #0x1C] // [V59 tmp48]
+ str w0, [x28, #0x14]
+ mov w1, #1
+ str w1, [fp, #0x1C] // [V59 tmp48]
;; size=32 bbWeight=2 PerfScore 12.00
-G_M31247_IG15: ; bbWeight=4, gcrefRegs=1380002 {x1 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
- mov x0, x1
+G_M31247_IG15: ; bbWeight=4, gcrefRegs=11380000 {x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
+ mov x0, x28
; gcrRegs +[x0]
- ; GC ptr vars -{V60}
bl <unknown method>
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0 x28]
; gcr arg pop 0
- ldr w2, [fp, #0x1C] // [V59 tmp48]
- cbnz w2, G_M31247_IG19
+ ldr w28, [fp, #0x1C] // [V59 tmp48]
+ cbnz w28, G_M31247_IG19
add w26, w26, #1
- cmp w28, w26
+ ldr w0, [x24, #0x08]
+ cmp w0, w26
bne G_M31247_IG17
- ;; size=28 bbWeight=4 PerfScore 26.00
+ ;; size=32 bbWeight=4 PerfScore 38.00
G_M31247_IG16: ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
mov w26, wzr
;; size=4 bbWeight=2 PerfScore 1.00
G_M31247_IG17: ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
add w27, w27, #1
- cmp w28, w27
+ ldr w0, [x24, #0x08]
+ cmp w0, w27
bgt G_M31247_IG12
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 20.00
G_M31247_IG18: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21 x24]
mov w26, wzr
@@ -400,9 +398,10 @@ G_M31247_IG21: ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
bne G_M31247_IG22
mov x0, x19
; gcrRegs +[x0]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
+ movz x27, #0xD1FFAB1E
+ movk x27, #0xD1FFAB1E LSL #16
+ movk x27, #0xD1FFAB1E LSL #32
+ mov x1, x27
bl CORINFO_HELP_CLASSPROFILE32
; gcrRegs -[x0]
; gcr arg pop 0
@@ -418,76 +417,70 @@ G_M31247_IG21: ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
bl <unknown method>
; gcrRegs -[x0 x20]
; gcr arg pop 0
- sxtw w27, w0
+ sxtw w28, w0
cbnz w25, G_M31247_IG25
- movn w28, #0
+ movn w23, #0
b G_M31247_IG26
- ;; size=172 bbWeight=0.50 PerfScore 21.00
+ ;; size=176 bbWeight=0.50 PerfScore 21.25
G_M31247_IG22: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x24]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x27, #0xD1FFAB1E
+ movk x27, #0xD1FFAB1E LSL #16
+ movk x27, #0xD1FFAB1E LSL #32
+ add x0, x27, #0xD1FFAB1E
bl CORINFO_HELP_COUNTPROFILE32
; gcr arg pop 0
b G_M31247_IG29
- ;; size=20 bbWeight=0.25 PerfScore 0.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.00
G_M31247_IG23: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x27, #0xD1FFAB1E
+ movk x27, #0xD1FFAB1E LSL #16
+ movk x27, #0xD1FFAB1E LSL #32
+ add x0, x27, #0xD1FFAB1E
bl CORINFO_HELP_COUNTPROFILE32
; gcr arg pop 0
b G_M31247_IG29
- ;; size=20 bbWeight=0.25 PerfScore 0.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.00
G_M31247_IG24: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ movz x27, #0xD1FFAB1E
+ movk x27, #0xD1FFAB1E LSL #16
+ movk x27, #0xD1FFAB1E LSL #32
+ add x0, x27, #0xD1FFAB1E
bl CORINFO_HELP_COUNTPROFILE32
; gcr arg pop 0
b G_M31247_IG20
- ;; size=20 bbWeight=0.25 PerfScore 0.88
+ ;; size=24 bbWeight=0.25 PerfScore 1.00
G_M31247_IG25: ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20] +[x24]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x27, #0xD1FFAB1E
bl CORINFO_HELP_COUNTPROFILE32
; gcr arg pop 0
- sxtw w28, w23
b G_M31247_IG27
- ;; size=24 bbWeight=0.50 PerfScore 2.00
+ ;; size=12 bbWeight=0.50 PerfScore 1.25
G_M31247_IG26: ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
mov w26, #1
b G_M31247_IG28
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M31247_IG27: ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
+ add x0, x27, #0xD1FFAB1E
...
+16 (+5.33%) : 502265.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
@@ -11,37 +11,36 @@
;
; V00 this [V00,T04] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T16] ( 3, 2.05) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V03 loc2 [V03,T13] ( 7, 2.34) int -> x20
-; V04 loc3 [V04,T08] ( 4, 3.21) int -> x21
+; V02 loc1 [V02,T05] ( 7, 4.24) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V03 loc2 [V03,T14] ( 7, 2.34) int -> x20
+; V04 loc3 [V04,T09] ( 4, 3.21) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
-; V07 tmp2 [V07,T17] ( 2, 0.28) int -> x20 "dup spill"
+; V07 tmp2 [V07,T16] ( 2, 0.28) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T18] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V09 tmp4 [V09,T17] ( 3, 0 ) int -> x0 "Inline return value spill temp"
; V10 tmp5 [V10,T01] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T06] ( 4, 4.08) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T00] ( 7, 14.62) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V15 tmp10 [V15,T09] ( 3, 3.10) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V16 tmp11 [V16,T05] ( 4, 4.11) int -> x1 "Inline stloc first use temp"
-; V17 cse0 [V17,T12] ( 3, 3 ) long -> x0 "CSE - aggressive"
-; V18 cse1 [V18,T11] ( 3, 3.01) long -> x2 "CSE - aggressive"
-; V19 cse2 [V19,T14] ( 5, 2.19) int -> x22 "CSE - aggressive"
-; V20 cse3 [V20,T15] ( 2, 2.10) int -> x2 "CSE - aggressive"
-; V21 cse4 [V21,T10] ( 3, 3.01) byref -> x0 "CSE - aggressive"
-; V22 rat0 [V22,T07] ( 3, 4 ) long -> x0 "TLS field access"
-; V23 rat1 [V23,T02] ( 3, 6 ) long -> x0 "TLS access"
-; V24 rat2 [V24,T03] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V13 tmp8 [V13,T07] ( 4, 4.08) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T00] ( 7, 14.62) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V15 tmp10 [V15,T10] ( 3, 3.10) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V16 tmp11 [V16,T06] ( 4, 4.11) int -> x1 "Inline stloc first use temp"
+; V17 cse0 [V17,T13] ( 3, 3 ) long -> x0 "CSE - aggressive"
+; V18 cse1 [V18,T12] ( 3, 3.01) long -> x2 "CSE - aggressive"
+; V19 cse2 [V19,T15] ( 2, 2.10) int -> x2 "CSE - aggressive"
+; V20 cse3 [V20,T11] ( 3, 3.01) byref -> x0 "CSE - aggressive"
+; V21 rat0 [V21,T08] ( 3, 4 ) long -> x0 "TLS field access"
+; V22 rat1 [V22,T02] ( 3, 6 ) long -> x0 "TLS access"
+; V23 rat2 [V23,T03] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -79,93 +78,97 @@ G_M10734_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
and w20, w0, #1
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG13
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ldr wzr, [x19, #0x08]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M10734_IG07: ; bbWeight=1.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- cmp w20, w22
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG17
add x0, x19, #16
; byrRegs +[x0]
- ldr x23, [x0, w20, UXTW #3]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M10734_IG09
- ;; size=56 bbWeight=1.05 PerfScore 22.07
-G_M10734_IG08: ; bbWeight=1.00, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x24]
+ ;; size=60 bbWeight=1.05 PerfScore 25.22
+G_M10734_IG08: ; bbWeight=1.00, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
- ; gcrRegs +[x24]
+ ldr x23, [x0, x2]
+ ; gcrRegs +[x23]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
+ str w1, [x22, #0x14]
;; size=20 bbWeight=1.00 PerfScore 6.51
-G_M10734_IG09: ; bbWeight=1.05, gcrefRegs=1880000 {x19 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M10734_IG09: ; bbWeight=1.05, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG15
+ cbnz x23, G_M10734_IG15
;; size=12 bbWeight=1.05 PerfScore 2.63
G_M10734_IG10: ; bbWeight=0.07, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x24]
+ ; gcrRegs -[x23]
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG12
- ;; size=12 bbWeight=0.07 PerfScore 0.14
+ ;; size=16 bbWeight=0.07 PerfScore 0.35
G_M10734_IG11: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.03 PerfScore 0.01
G_M10734_IG12: ; bbWeight=1.07, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=1.07 PerfScore 2.14
+ ;; size=16 bbWeight=1.07 PerfScore 5.35
G_M10734_IG13: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0.02 PerfScore 0.01
G_M10734_IG14: ; bbWeight=0.02, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.02 PerfScore 0.10
-G_M10734_IG15: ; bbWeight=0.98, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+ ;; size=20 bbWeight=0.02 PerfScore 0.11
+G_M10734_IG15: ; bbWeight=0.98, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0.98 PerfScore 0.49
G_M10734_IG16: ; bbWeight=0.98, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.98 PerfScore 4.90
+ ;; size=20 bbWeight=0.98 PerfScore 5.89
G_M10734_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -177,7 +180,7 @@ G_M10734_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 300, prolog size 20, PerfScore 65.00, instruction count 75, allocated bytes for code 300 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 316, prolog size 20, PerfScore 72.58, instruction count 79, allocated bytes for code 316 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
; ============================================================
Unwind Info:
@@ -188,7 +191,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
+ Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -199,10 +202,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
+16 (+5.33%) : 569314.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
@@ -11,37 +11,36 @@
;
; V00 this [V00,T04] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T14] ( 3, 2.11) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V03 loc2 [V03,T09] ( 7, 3 ) int -> x20
-; V04 loc3 [V04,T07] ( 4, 3.67) int -> x21
+; V02 loc1 [V02,T05] ( 7, 4.67) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V03 loc2 [V03,T10] ( 7, 3 ) int -> x20
+; V04 loc3 [V04,T08] ( 4, 3.67) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
-; V07 tmp2 [V07,T17] ( 2, 0.89) int -> x20 "dup spill"
+; V07 tmp2 [V07,T16] ( 2, 0.89) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T18] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V09 tmp4 [V09,T17] ( 3, 0 ) int -> x0 "Inline return value spill temp"
; V10 tmp5 [V10,T01] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T06] ( 4, 3.67) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T00] ( 7, 14.44) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V15 tmp10 [V15,T11] ( 3, 2.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V16 tmp11 [V16,T08] ( 4, 3.33) int -> x1 "Inline stloc first use temp"
-; V17 cse0 [V17,T10] ( 3, 3 ) long -> x0 "CSE - aggressive"
-; V18 cse1 [V18,T16] ( 3, 1.67) long -> x2 "CSE - moderate"
-; V19 cse2 [V19,T12] ( 5, 2.56) int -> x22 "CSE - aggressive"
-; V20 cse3 [V20,T13] ( 2, 2.22) int -> x2 "CSE - aggressive"
-; V21 cse4 [V21,T15] ( 3, 1.67) byref -> x0 "CSE - moderate"
-; V22 rat0 [V22,T05] ( 3, 4 ) long -> x0 "TLS field access"
-; V23 rat1 [V23,T02] ( 3, 6 ) long -> x0 "TLS access"
-; V24 rat2 [V24,T03] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V13 tmp8 [V13,T07] ( 4, 3.67) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T00] ( 7, 14.44) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V15 tmp10 [V15,T12] ( 3, 2.78) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V16 tmp11 [V16,T09] ( 4, 3.33) int -> x1 "Inline stloc first use temp"
+; V17 cse0 [V17,T11] ( 3, 3 ) long -> x0 "CSE - aggressive"
+; V18 cse1 [V18,T15] ( 3, 1.67) long -> x2 "CSE - moderate"
+; V19 cse2 [V19,T13] ( 2, 2.22) int -> x2 "CSE - aggressive"
+; V20 cse3 [V20,T14] ( 3, 1.67) byref -> x0 "CSE - moderate"
+; V21 rat0 [V21,T06] ( 3, 4 ) long -> x0 "TLS field access"
+; V22 rat1 [V22,T02] ( 3, 6 ) long -> x0 "TLS access"
+; V23 rat2 [V23,T03] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -79,93 +78,97 @@ G_M10734_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
and w20, w0, #1
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG13
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ldr wzr, [x19, #0x08]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M10734_IG07: ; bbWeight=1.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- cmp w20, w22
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG17
add x0, x19, #16
; byrRegs +[x0]
- ldr x23, [x0, w20, UXTW #3]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M10734_IG09
- ;; size=56 bbWeight=1.11 PerfScore 23.33
-G_M10734_IG08: ; bbWeight=0.56, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x24]
+ ;; size=60 bbWeight=1.11 PerfScore 26.67
+G_M10734_IG08: ; bbWeight=0.56, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
- ; gcrRegs +[x24]
+ ldr x23, [x0, x2]
+ ; gcrRegs +[x23]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
+ str w1, [x22, #0x14]
;; size=20 bbWeight=0.56 PerfScore 3.61
-G_M10734_IG09: ; bbWeight=1.11, gcrefRegs=1880000 {x19 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M10734_IG09: ; bbWeight=1.11, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG15
+ cbnz x23, G_M10734_IG15
;; size=12 bbWeight=1.11 PerfScore 2.78
G_M10734_IG10: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x24]
+ ; gcrRegs -[x23]
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG12
- ;; size=12 bbWeight=0.22 PerfScore 0.44
+ ;; size=16 bbWeight=0.22 PerfScore 1.11
G_M10734_IG11: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.11 PerfScore 0.06
G_M10734_IG12: ; bbWeight=1.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=1.22 PerfScore 2.44
+ ;; size=16 bbWeight=1.22 PerfScore 6.11
G_M10734_IG13: ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0.11 PerfScore 0.06
G_M10734_IG14: ; bbWeight=0.11, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.11 PerfScore 0.56
-G_M10734_IG15: ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+ ;; size=20 bbWeight=0.11 PerfScore 0.67
+G_M10734_IG15: ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0.89 PerfScore 0.44
G_M10734_IG16: ; bbWeight=0.89, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.89 PerfScore 4.44
+ ;; size=20 bbWeight=0.89 PerfScore 5.33
G_M10734_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -177,7 +180,7 @@ G_M10734_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 300, prolog size 20, PerfScore 64.17, instruction count 75, allocated bytes for code 300 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 316, prolog size 20, PerfScore 72.83, instruction count 79, allocated bytes for code 316 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
; ============================================================
Unwind Info:
@@ -188,7 +191,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
+ Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -199,10 +202,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
+16 (+5.33%) : 551304.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
@@ -11,38 +11,36 @@
;
; V00 this [V00,T03] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T06] ( 3, 1 ) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V02 loc1 [V02,T06] ( 7, 1 ) ref -> x19 class-hnd exact single-def <<unknown class>>
; V03 loc2 [V03,T08] ( 7, 0 ) int -> x20
-; V04 loc3 [V04,T11] ( 4, 0 ) int -> x21
+; V04 loc3 [V04,T10] ( 4, 0 ) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
-; V07 tmp2 [V07,T18] ( 2, 0 ) int -> x20 "dup spill"
+; V07 tmp2 [V07,T16] ( 2, 0 ) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T15] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V09 tmp4 [V09,T14] ( 3, 0 ) int -> x0 "Inline return value spill temp"
; V10 tmp5 [V10,T00] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T10] ( 4, 0 ) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T07] ( 7, 0 ) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V15 tmp10 [V15,T13] ( 3, 0 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V16 tmp11 [V16,T12] ( 4, 0 ) int -> x1 "Inline stloc first use temp"
+; V13 tmp8 [V13,T09] ( 4, 0 ) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T07] ( 7, 0 ) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V15 tmp10 [V15,T12] ( 3, 0 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V16 tmp11 [V16,T11] ( 4, 0 ) int -> x1 "Inline stloc first use temp"
; V17 cse0 [V17,T05] ( 3, 3 ) long -> x0 "CSE - aggressive"
-; V18 cse1 [V18,T16] ( 3, 0 ) long -> x2 "CSE - aggressive"
-; V19 cse2 [V19,T19] ( 2, 0 ) int -> x2 "CSE - aggressive"
-; V20 cse3 [V20,T09] ( 5, 0 ) int -> x22 "CSE - moderate"
-; V21 cse4 [V21,T17] ( 2, 0 ) byref -> x19 hoist "CSE - moderate"
-; V22 cse5 [V22,T14] ( 3, 0 ) byref -> x0 "CSE - aggressive"
-; V23 rat0 [V23,T04] ( 3, 4 ) long -> x0 "TLS field access"
-; V24 rat1 [V24,T01] ( 3, 6 ) long -> x0 "TLS access"
-; V25 rat2 [V25,T02] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V18 cse1 [V18,T15] ( 3, 0 ) long -> x2 "CSE - aggressive"
+; V19 cse2 [V19,T17] ( 2, 0 ) int -> x2 "CSE - aggressive"
+; V20 cse3 [V20,T13] ( 3, 0 ) byref -> x0 "CSE - aggressive"
+; V21 rat0 [V21,T04] ( 3, 4 ) long -> x0 "TLS field access"
+; V22 rat1 [V22,T01] ( 3, 6 ) long -> x0 "TLS access"
+; V23 rat2 [V23,T02] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -80,29 +78,31 @@ G_M10734_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
and w20, w0, #1
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG10
- add x19, x19, #16
- ; gcrRegs -[x19]
- ; byrRegs +[x19]
+ ldr wzr, [x19, #0x08]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w20, w22
+G_M10734_IG07: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG14
- ldr x23, [x19, w20, UXTW #3]
+ add x0, x19, #16
+ ; byrRegs +[x0]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
+ ; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -111,54 +111,56 @@ G_M10734_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
+ ldr x23, [x0, x2]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
- ;; size=72 bbWeight=0 PerfScore 0.00
-G_M10734_IG08: ; bbWeight=0, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+ str w1, [x22, #0x14]
+ ;; size=80 bbWeight=0 PerfScore 0.00
+G_M10734_IG08: ; bbWeight=0, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG12
+ cbnz x23, G_M10734_IG12
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG09
mov w20, wzr
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M10734_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ; gcrRegs -[x24]
+ ;; size=32 bbWeight=0 PerfScore 0.00
+G_M10734_IG09: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x23]
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M10734_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0 PerfScore 0.00
G_M10734_IG11: ; bbWeight=0, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-G_M10734_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+G_M10734_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0 PerfScore 0.00
G_M10734_IG13: ; bbWeight=0, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
G_M10734_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -170,7 +172,7 @@ G_M10734_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 300, prolog size 20, PerfScore 26.00, instruction count 75, allocated bytes for code 300 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 316, prolog size 20, PerfScore 26.00, instruction count 79, allocated bytes for code 316 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
; ============================================================
Unwind Info:
@@ -181,7 +183,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
+ Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -192,10 +194,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
-4 (-2.94%) : 143786.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:
@@ -35,24 +35,24 @@
;* V24 tmp23 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V26 tmp25 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26 [V27,T07] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V28 tmp27 [V28,T03] ( 2, 2 ) int -> x2 "Inline stloc first use temp"
+;* V27 tmp26 [V27,T06] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V28 tmp27 [V28,T03] ( 3, 3 ) int -> x1 "Inline stloc first use temp"
;* V29 tmp28 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V30 tmp29 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V31 tmp30 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V32 tmp31 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp32 [V33 ] ( 0, 0 ) int -> zero-ref "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33 [V34,T08] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33 [V34,T07] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
;* V35 tmp34 [V35 ] ( 0, 0 ) int -> zero-ref "field V05._value (fldOffset=0x0)" P-INDEP
;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36 [V37,T09] ( 0, 0 ) int -> zero-ref "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36 [V37,T08] ( 0, 0 ) int -> zero-ref "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp38 [V39 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V41 tmp40 [V41 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V43 tmp42 [V43 ] ( 0, 0 ) int -> zero-ref "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43 [V44,T10] ( 0, 0 ) int -> zero-ref "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43 [V44,T09] ( 0, 0 ) int -> zero-ref "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "field V11.Item1 (fldOffset=0x0)" P-INDEP
;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "field V11.Item2 (fldOffset=0x4)" P-INDEP
;* V47 tmp46 [V47 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,9 +67,8 @@
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "field V21._value (fldOffset=0x0)" P-INDEP
;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "field V22._value (fldOffset=0x0)" P-INDEP
;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "field V26.Item1 (fldOffset=0x0)" P-INDEP
-; V59 tmp58 [V59,T05] ( 2, 2 ) int -> x1 "field V26.Item2 (fldOffset=0x4)" P-INDEP
-; V60 cse0 [V60,T04] ( 3, 3 ) int -> x1 "CSE - moderate"
-; V61 cse1 [V61,T06] ( 3, 1.50) ref -> x1 "CSE - moderate"
+; V59 tmp58 [V59,T04] ( 2, 2 ) int -> x1 "field V26.Item2 (fldOffset=0x4)" P-INDEP
+; V60 cse0 [V60,T05] ( 3, 1.50) ref -> x1 "CSE - moderate"
;
; Lcl frame size = 0
@@ -84,11 +83,10 @@ G_M60991_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
sxtw w1, w0
- sxtw w2, w1
- cmp w2, w0
+ cmp w1, w0
bhi G_M60991_IG06
tbz w1, #31, G_M60991_IG04
- ;; size=32 bbWeight=1 PerfScore 10.50
+ ;; size=28 bbWeight=1 PerfScore 10.00
G_M60991_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -124,7 +122,7 @@ G_M60991_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 8, PerfScore 17.75, instruction count 34, allocated bytes for code 136 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 132, prolog size 8, PerfScore 17.25, instruction count 33, allocated bytes for code 132 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
; ============================================================
Unwind Info:
@@ -135,7 +133,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.38%) : 302852.dasm - CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:
@@ -37,7 +37,6 @@
;* V26 tmp25 [V26 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._source (fldOffset=0x0)" P-INDEP
;* V27 tmp26 [V27 ] ( 0, 0 ) ref -> zero-ref single-def "field V18._source (fldOffset=0x0)" P-INDEP
;* V28 tmp27 [V28 ] ( 0, 0 ) ref -> zero-ref single-def "field V19.m_task (fldOffset=0x0)" P-INDEP
-; V29 cse0 [V29,T03] ( 2, 0 ) long -> x1 "CSE - conservative"
;
; Lcl frame size = 80
@@ -82,21 +81,20 @@ G_M33644_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- add x1, x1, #0xD1FFAB1E
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
; gcrRegs +[x0]
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M33644_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x0]
ldp fp, lr, [sp], #0x60
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 168, prolog size 28, PerfScore 29.50, instruction count 42, allocated bytes for code 168 (MethodHash=8e347c93) for method CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:<ArgumentValidation>b__0_0():this (FullOpts)
+Total bytes of code 164, prolog size 28, PerfScore 29.50, instruction count 41, allocated bytes for code 164 (MethodHash=8e347c93) for method CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:<ArgumentValidation>b__0_0():this (FullOpts)
; ============================================================
Unwind Info:
@@ -107,7 +105,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 42 (0x0002a) Actual length = 168 (0x0000a8)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-1.04%) : 299650.dasm - System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 39, 33 ) ref -> [fp+0x10] this class-hnd EH-live single-def <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
-; V01 loc0 [V01,T24] ( 2, 2 ) int -> x1 single-def
+; V01 loc0 [V01,T23] ( 2, 2 ) int -> x1 single-def
; V02 loc1 [V02 ] ( 6, 6 ) struct ( 8) [fp+0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
; V03 loc2 [V03 ] ( 6, 6 ) ref -> [fp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
; V04 loc3 [V04 ] ( 6, 6 ) struct ( 8) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
@@ -17,7 +17,7 @@
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V09 tmp2 [V09,T32] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V09 tmp2 [V09,T31] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V10 tmp3 [V10 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V11 tmp4 [V11 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -27,15 +27,15 @@
;* V16 tmp9 [V16 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V17 tmp10 [V17 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V19 tmp12 [V19,T33] ( 2, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V19 tmp12 [V19,T32] ( 2, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V20 tmp13 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V21 tmp14 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V22 tmp15 [V22,T18] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V22 tmp15 [V22,T17] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V23 tmp16 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V24 tmp17 [V24,T09] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V24 tmp17 [V24,T08] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V25 tmp18 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V26 tmp19 [V26,T03] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V27 tmp20 [V27,T28] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V26 tmp19 [V26,T02] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V27 tmp20 [V27,T27] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V29 tmp22 [V29 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -73,19 +73,19 @@
;* V62 tmp55 [V62 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V63 tmp56 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V64 tmp57 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V65 tmp58 [V65,T10] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V65 tmp58 [V65,T09] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V66 tmp59 [V66 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V67 tmp60 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V68 tmp61 [V68 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V69 tmp62 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V70 tmp63 [V70 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V71 tmp64 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V72 tmp65 [V72,T19] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V72 tmp65 [V72,T18] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V73 tmp66 [V73 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V74 tmp67 [V74,T11] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V74 tmp67 [V74,T10] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V75 tmp68 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V76 tmp69 [V76,T04] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V77 tmp70 [V77,T29] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V76 tmp69 [V76,T03] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V77 tmp70 [V77,T28] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V78 tmp71 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V79 tmp72 [V79 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V80 tmp73 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -122,19 +122,19 @@
;* V111 tmp104 [V111 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V112 tmp105 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V113 tmp106 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V114 tmp107 [V114,T12] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V114 tmp107 [V114,T11] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V115 tmp108 [V115 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V116 tmp109 [V116 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V117 tmp110 [V117 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V118 tmp111 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V119 tmp112 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V120 tmp113 [V120 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V121 tmp114 [V121,T20] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V121 tmp114 [V121,T19] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V122 tmp115 [V122 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V123 tmp116 [V123,T13] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V123 tmp116 [V123,T12] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V124 tmp117 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V125 tmp118 [V125,T05] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V126 tmp119 [V126,T30] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V125 tmp118 [V125,T04] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V126 tmp119 [V126,T29] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V127 tmp120 [V127 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V128 tmp121 [V128 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V129 tmp122 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -171,19 +171,19 @@
;* V160 tmp153 [V160 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V161 tmp154 [V161 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V162 tmp155 [V162 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V163 tmp156 [V163,T14] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V163 tmp156 [V163,T13] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V164 tmp157 [V164 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V165 tmp158 [V165 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V166 tmp159 [V166 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V167 tmp160 [V167 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V168 tmp161 [V168,T06] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
-; V169 tmp162 [V169,T07] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V168 tmp161 [V168,T05] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V169 tmp162 [V169,T06] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
; V170 tmp163 [V170 ] ( 6, 6 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V02.m_task (fldOffset=0x0)" P-DEP
; V171 tmp164 [V171 ] ( 6, 6 ) ref -> [fp+0x20] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V172 tmp165 [V172 ] ( 6, 4 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V05.m_task (fldOffset=0x0)" P-DEP
;* V173 tmp166 [V173 ] ( 0, 0 ) ref -> zero-ref single-def "field V20._source (fldOffset=0x0)" P-INDEP
;* V174 tmp167 [V174 ] ( 0, 0 ) ref -> zero-ref single-def "field V21._source (fldOffset=0x0)" P-INDEP
-;* V175 tmp168 [V175,T25] ( 0, 0 ) ref -> zero-ref single-def "field V23._source (fldOffset=0x0)" P-INDEP
+;* V175 tmp168 [V175,T24] ( 0, 0 ) ref -> zero-ref single-def "field V23._source (fldOffset=0x0)" P-INDEP
;* V176 tmp169 [V176 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V29._source (fldOffset=0x0)" P-DEP
;* V177 tmp170 [V177 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._node (fldOffset=0x0)" P-DEP
;* V178 tmp171 [V178 ] ( 0, 0 ) long -> zero-ref single-def "field V36._id (fldOffset=0x8)" P-DEP
@@ -191,10 +191,10 @@
;* V180 tmp173 [V180 ] ( 0, 0 ) long -> zero-ref "field V54._id (fldOffset=0x8)" P-DEP
;* V181 tmp174 [V181 ] ( 0, 0 ) ref -> zero-ref single-def "field V55._node (fldOffset=0x0)" P-INDEP
;* V182 tmp175 [V182 ] ( 0, 0 ) long -> zero-ref single-def "field V55._id (fldOffset=0x8)" P-INDEP
-; V183 tmp176 [V183,T21] ( 2, 2 ) ref -> x20 single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
+; V183 tmp176 [V183,T20] ( 2, 2 ) ref -> x20 single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
;* V184 tmp177 [V184 ] ( 0, 0 ) ref -> zero-ref single-def "field V70._source (fldOffset=0x0)" P-INDEP
;* V185 tmp178 [V185 ] ( 0, 0 ) ref -> zero-ref single-def "field V71._source (fldOffset=0x0)" P-INDEP
-;* V186 tmp179 [V186,T26] ( 0, 0 ) ref -> zero-ref single-def "field V73._source (fldOffset=0x0)" P-INDEP
+;* V186 tmp179 [V186,T25] ( 0, 0 ) ref -> zero-ref single-def "field V73._source (fldOffset=0x0)" P-INDEP
;* V187 tmp180 [V187 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V79._source (fldOffset=0x0)" P-DEP
;* V188 tmp181 [V188 ] ( 0, 0 ) ref -> zero-ref single-def "field V85._node (fldOffset=0x0)" P-DEP
;* V189 tmp182 [V189 ] ( 0, 0 ) long -> zero-ref single-def "field V85._id (fldOffset=0x8)" P-DEP
@@ -202,10 +202,10 @@
;* V191 tmp184 [V191 ] ( 0, 0 ) long -> zero-ref "field V103._id (fldOffset=0x8)" P-DEP
;* V192 tmp185 [V192 ] ( 0, 0 ) ref -> zero-ref single-def "field V104._node (fldOffset=0x0)" P-INDEP
;* V193 tmp186 [V193 ] ( 0, 0 ) long -> zero-ref single-def "field V104._id (fldOffset=0x8)" P-INDEP
-; V194 tmp187 [V194,T22] ( 2, 2 ) ref -> x20 single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
+; V194 tmp187 [V194,T21] ( 2, 2 ) ref -> x20 single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
;* V195 tmp188 [V195 ] ( 0, 0 ) ref -> zero-ref single-def "field V119._source (fldOffset=0x0)" P-INDEP
;* V196 tmp189 [V196 ] ( 0, 0 ) ref -> zero-ref single-def "field V120._source (fldOffset=0x0)" P-INDEP
-;* V197 tmp190 [V197,T27] ( 0, 0 ) ref -> zero-ref single-def "field V122._source (fldOffset=0x0)" P-INDEP
+;* V197 tmp190 [V197,T26] ( 0, 0 ) ref -> zero-ref single-def "field V122._source (fldOffset=0x0)" P-INDEP
;* V198 tmp191 [V198 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V128._source (fldOffset=0x0)" P-DEP
;* V199 tmp192 [V199 ] ( 0, 0 ) ref -> zero-ref single-def "field V134._node (fldOffset=0x0)" P-DEP
;* V200 tmp193 [V200 ] ( 0, 0 ) long -> zero-ref single-def "field V134._id (fldOffset=0x8)" P-DEP
@@ -213,14 +213,13 @@
;* V202 tmp195 [V202 ] ( 0, 0 ) long -> zero-ref "field V152._id (fldOffset=0x8)" P-DEP
;* V203 tmp196 [V203 ] ( 0, 0 ) ref -> zero-ref single-def "field V153._node (fldOffset=0x0)" P-INDEP
;* V204 tmp197 [V204 ] ( 0, 0 ) long -> zero-ref single-def "field V153._id (fldOffset=0x8)" P-INDEP
-; V205 tmp198 [V205,T23] ( 2, 2 ) ref -> x20 single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
-; V206 tmp199 [V206,T15] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V207 tmp200 [V207,T16] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V208 tmp201 [V208,T17] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V209 PSPSym [V209,T31] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
+; V205 tmp198 [V205,T22] ( 2, 2 ) ref -> x20 single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
+; V206 tmp199 [V206,T14] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V207 tmp200 [V207,T15] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V208 tmp201 [V208,T16] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V209 PSPSym [V209,T30] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V210 cse0 [V210,T01] ( 6, 6 ) long -> x19 multi-def "CSE - aggressive"
-; V211 cse1 [V211,T02] ( 6, 6 ) long -> x1 multi-def "CSE - moderate"
-; V212 rat0 [V212,T08] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V211 rat0 [V211,T07] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 48
@@ -260,11 +259,10 @@ G_M44969_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -329,7 +327,7 @@ G_M44969_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcrRegs -[x1]
; gcr arg pop 0
b G_M44969_IG16
- ;; size=208 bbWeight=1 PerfScore 51.50
+ ;; size=204 bbWeight=1 PerfScore 51.00
G_M44969_IG05: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
ldr x1, [x0, #0x48]
@@ -366,11 +364,10 @@ G_M44969_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -435,7 +432,7 @@ G_M44969_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcrRegs -[x1]
; gcr arg pop 0
b G_M44969_IG16
- ;; size=212 bbWeight=1 PerfScore 52.00
+ ;; size=208 bbWeight=1 PerfScore 51.50
G_M44969_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x0]
ldr x1, [x0, #0x48]
@@ -474,11 +471,10 @@ G_M44969_IG10: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -543,7 +539,7 @@ G_M44969_IG10: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcrRegs -[x1]
; gcr arg pop 0
b G_M44969_IG16
- ;; size=212 bbWeight=1 PerfScore 52.00
+ ;; size=208 bbWeight=1 PerfScore 51.50
G_M44969_IG11: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x0]
ldr x1, [x0, #0x48]
@@ -697,7 +693,7 @@ RWD00 dd G_M44969_IG10 - G_M44969_IG02
dd G_M44969_IG11 - G_M44969_IG02
-; Total bytes of code 1152, prolog size 32, PerfScore 240.50, instruction count 288, allocated bytes for code 1152 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
+Total bytes of code 1140, prolog size 32, PerfScore 239.00, instruction count 285, allocated bytes for code 1140 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -708,7 +704,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 263 (0x00107) Actual length = 1052 (0x00041c)
+ Function Length : 260 (0x00104) Actual length = 1040 (0x000410)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+0.49%) : 298814.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
@@ -8,11 +8,11 @@
; 27 inlinees with PGO data; 93 single block inlinees; 16 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 61, 56 ) ref -> [fp+0x18] this class-hnd EH-live single-def <System.Threading.Tasks.Tests.Status.TaskStatusTest>
-; V01 loc0 [V01,T43] ( 3, 3 ) ubyte -> [fp+0x64] do-not-enreg[M] EH-live
+; V00 this [V00,T00] ( 61, 56 ) ref -> [fp+0x10] this class-hnd EH-live single-def <System.Threading.Tasks.Tests.Status.TaskStatusTest>
+; V01 loc0 [V01,T43] ( 3, 3 ) ubyte -> [fp+0x5C] do-not-enreg[M] EH-live
; V02 loc1 [V02,T44] ( 3, 3 ) int -> x1 single-def
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Threading.Tasks.Tests.Status.CancelWaitingToRunTaskScheduler>
-; V04 loc3 [V04,T40] ( 3, 3 ) ref -> x26 class-hnd exact single-def <System.Threading.CancellationTokenSource>
+; V04 loc3 [V04,T40] ( 3, 3 ) ref -> x27 class-hnd exact single-def <System.Threading.CancellationTokenSource>
;* V05 loc4 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
; V07 loc6 [V07,T91] ( 2, 0 ) int -> x19 ld-addr-op single-def
@@ -20,8 +20,8 @@
;* V09 loc8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.AggregateException>
; V10 loc9 [V10,T39] ( 4, 3 ) ref -> x19 class-hnd single-def <System.AggregateException>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T16] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Action>
-; V13 tmp2 [V13,T17] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V12 tmp1 [V12,T15] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Action>
+; V13 tmp2 [V13,T16] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V14 tmp3 [V14 ] ( 0, 0 ) struct ( 8) zero-ref single-def "spilled call-like call argument" <System.Threading.CancellationToken>
;* V15 tmp4 [V15 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V16 tmp5 [V16,T63] ( 3, 0 ) ref -> x20 class-hnd exact single-def "Single-def Box Helper" <System.Threading.Tasks.TaskStatus>
@@ -34,7 +34,7 @@
; V23 tmp12 [V23,T68] ( 3, 0 ) ref -> x19 class-hnd exact single-def "Single-def Box Helper" <System.Threading.Tasks.TaskStatus>
; V24 tmp13 [V24,T60] ( 5, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <System.AggregateException>
; V25 tmp14 [V25,T69] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <System.Threading.Tasks.TaskStatus>
-; V26 tmp15 [V26,T15] ( 4, 6 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.CancelWaitingToRunTaskScheduler>
+; V26 tmp15 [V26,T14] ( 4, 6 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.CancelWaitingToRunTaskScheduler>
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Threading.CancellationTokenSource>
; V28 tmp17 [V28,T32] ( 2, 4 ) ref -> x19 class-hnd exact single-def "dup spill" <System.Action>
;* V29 tmp18 [V29,T53] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impSpillLclRefs" <System.Threading.Tasks.TaskFactory>
@@ -43,29 +43,29 @@
; V32 tmp21 [V32,T31] ( 4, 4 ) ref -> x19
;* V33 tmp22 [V33 ] ( 0, 0 ) struct ( 8) zero-ref single-def "spilled call-like call argument" <System.Threading.CancellationToken>
; V34 tmp23 [V34,T62] ( 4, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-; V35 tmp24 [V35,T09] ( 4, 8 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Action>
-; V36 tmp25 [V36,T18] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.StatusTestException>
-; V37 tmp26 [V37,T14] ( 5, 6 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.TaskCompletionSource`1[int]>
+; V35 tmp24 [V35,T08] ( 4, 8 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Action>
+; V36 tmp25 [V36,T17] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.StatusTestException>
+; V37 tmp26 [V37,T13] ( 5, 6 ) ref -> x20 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.TaskCompletionSource`1[int]>
; V38 tmp27 [V38,T61] ( 5, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <System.AggregateException>
-; V39 tmp28 [V39,T19] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[int]>
-; V40 tmp29 [V40,T20] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
-; V41 tmp30 [V41,T21] ( 3, 6 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
+; V39 tmp28 [V39,T18] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[int]>
+; V40 tmp29 [V40,T19] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
+; V41 tmp30 [V41,T20] ( 3, 6 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
;* V42 tmp31 [V42 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
;* V43 tmp32 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V44 tmp33 [V44,T45] ( 3, 3 ) ubyte -> x23 "Inline stloc first use temp"
-; V45 tmp34 [V45,T03] ( 11, 17.08) ref -> x22 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-; V46 tmp35 [V46,T47] ( 3, 2 ) ref -> x24 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
+; V45 tmp34 [V45,T05] ( 8, 11.08) ref -> x22 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
+; V46 tmp35 [V46,T47] ( 3, 2 ) ref -> x25 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
; V47 tmp36 [V47,T54] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V48 tmp37 [V48,T29] ( 5, 5.00) int -> x1 single-def "Inline stloc first use temp"
; V49 tmp38 [V49,T46] ( 3, 2.54) ref -> x1 class-hnd single-def "Inline stloc first use temp" <System.Object>
-; V50 tmp39 [V50,T22] ( 3, 6.00) byref -> x1 single-def "Inlining Arg"
+; V50 tmp39 [V50,T21] ( 3, 6.00) byref -> x1 single-def "Inlining Arg"
; V51 tmp40 [V51,T33] ( 2, 4.00) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Object>
; V52 tmp41 [V52,T52] ( 2, 2 ) ubyte -> x0 single-def "Inline stloc first use temp"
;* V53 tmp42 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
;* V54 tmp43 [V54 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V55 tmp44 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V56 tmp45 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
-; V57 tmp46 [V57,T10] ( 4, 8 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V57 tmp46 [V57,T09] ( 4, 8 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
;* V58 tmp47 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
; V59 tmp48 [V59,T30] ( 3, 4.00) ref -> x1 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V60 tmp49 [V60 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
@@ -74,19 +74,19 @@
;* V63 tmp52 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V64 tmp53 [V64,T06] ( 5, 10 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V65 tmp54 [V65 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V66 tmp55 [V66,T23] ( 3, 6 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V66 tmp55 [V66,T22] ( 3, 6 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
; V67 tmp56 [V67,T34] ( 2, 4 ) ref -> x1 class-hnd single-def "dup spill" <System.Threading.Tasks.TaskScheduler>
; V68 tmp57 [V68,T38] ( 4, 3.99) ref -> x1
-; V69 tmp58 [V69,T24] ( 3, 6 ) ref -> x2 class-hnd single-def "Inlining Arg" <System.Threading.ManualResetEventSlim>
+; V69 tmp58 [V69,T23] ( 3, 6 ) ref -> x2 class-hnd single-def "Inlining Arg" <System.Threading.ManualResetEventSlim>
;* V70 tmp59 [V70 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken>
;* V71 tmp60 [V71 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V72 tmp61 [V72 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V73 tmp62 [V73 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V74 tmp63 [V74,T48] ( 2, 2 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V75 tmp64 [V75 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V76 tmp65 [V76,T35] ( 2, 4 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V76 tmp65 [V76,T35] ( 2, 4 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V77 tmp66 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V78 tmp67 [V78,T25] ( 3, 6 ) ref -> x26 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V78 tmp67 [V78,T24] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V79 tmp68 [V79,T57] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V80 tmp69 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V81 tmp70 [V81 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
@@ -123,12 +123,12 @@
;* V112 tmp101 [V112 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V113 tmp102 [V113 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V114 tmp103 [V114 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V115 tmp104 [V115,T04] ( 2, 16 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V115 tmp104 [V115,T03] ( 2, 16 ) ref -> x0 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V116 tmp105 [V116 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
; V117 tmp106 [V117,T02] ( 2, 32 ) ref -> x19 class-hnd exact "Inlining Arg" <<unknown class>>
;* V118 tmp107 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V119 tmp108 [V119,T01] ( 3, 48 ) ref -> x20 class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V120 tmp109 [V120,T12] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V119 tmp108 [V119,T01] ( 3, 48 ) ref -> x26 class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V120 tmp109 [V120,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V121 tmp110 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V122 tmp111 [V122 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V123 tmp112 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -165,12 +165,12 @@
;* V154 tmp143 [V154 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V155 tmp144 [V155 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V156 tmp145 [V156 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V157 tmp146 [V157 ] ( 2, 0 ) ref -> [fp+0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+; V157 tmp146 [V157 ] ( 2, 0 ) ref -> [fp+0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V158 tmp147 [V158 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
;* V159 tmp148 [V159 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V160 tmp149 [V160,T26] ( 3, 6 ) byref -> x1 single-def "Inlining Arg"
+; V160 tmp149 [V160,T25] ( 3, 6 ) byref -> x1 single-def "Inlining Arg"
; V161 tmp150 [V161,T70] ( 3, 0 ) byref -> x19 single-def "Inlining Arg"
-; V162 tmp151 [V162 ] ( 4, 0 ) struct (16) [fp+0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
+; V162 tmp151 [V162 ] ( 4, 0 ) struct (16) [fp+0x40] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
;* V163 tmp152 [V163 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V164 tmp153 [V164 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V165 tmp154 [V165 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
@@ -178,9 +178,9 @@
;* V167 tmp156 [V167 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V168 tmp157 [V168 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
;* V169 tmp158 [V169 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V170 tmp159 [V170,T27] ( 3, 6 ) byref -> x1 single-def "Inlining Arg"
+; V170 tmp159 [V170,T26] ( 3, 6 ) byref -> x1 single-def "Inlining Arg"
; V171 tmp160 [V171,T71] ( 3, 0 ) byref -> x19 single-def "Inlining Arg"
-; V172 tmp161 [V172 ] ( 4, 0 ) struct (16) [fp+0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
+; V172 tmp161 [V172 ] ( 4, 0 ) struct (16) [fp+0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
;* V173 tmp162 [V173 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V174 tmp163 [V174 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V175 tmp164 [V175 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
@@ -188,11 +188,11 @@
;* V177 tmp166 [V177 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V178 tmp167 [V178 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
;* V179 tmp168 [V179 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V180 tmp169 [V180,T28] ( 3, 6 ) byref -> x1 single-def "Inlining Arg"
+; V180 tmp169 [V180,T27] ( 3, 6 ) byref -> x1 single-def "Inlining Arg"
;* V181 tmp170 [V181 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
; V182 tmp171 [V182,T72] ( 3, 0 ) byref -> x19 single-def "Inlining Arg"
; V183 tmp172 [V183,T74] ( 2, 0 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
-; V184 tmp173 [V184 ] ( 4, 0 ) struct (16) [fp+0x28] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
+; V184 tmp173 [V184 ] ( 4, 0 ) struct (16) [fp+0x20] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
;* V185 tmp174 [V185 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V186 tmp175 [V186 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
;* V187 tmp176 [V187 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
@@ -208,7 +208,7 @@
; V197 tmp186 [V197,T36] ( 2, 4 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Exception>
;* V198 tmp187 [V198 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.AggregateException>
; V199 tmp188 [V199,T73] ( 3, 0 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Exception>
-; V200 tmp189 [V200 ] ( 2, 0 ) ref -> [fp+0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+; V200 tmp189 [V200 ] ( 2, 0 ) ref -> [fp+0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V201 tmp190 [V201 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
;* V202 tmp191 [V202 ] ( 0, 0 ) ref -> zero-ref single-def "field V05.m_task (fldOffset=0x0)" P-INDEP
; V203 tmp192 [V203,T49] ( 2, 2 ) ref -> x4 "field V14._source (fldOffset=0x0)" P-INDEP
@@ -228,7 +228,7 @@
;* V217 tmp206 [V217 ] ( 0, 0 ) long -> zero-ref single-def "field V106._id (fldOffset=0x8)" P-INDEP
;* V218 tmp207 [V218 ] ( 0, 0 ) ref -> zero-ref "field V113._source (fldOffset=0x0)" P-INDEP
;* V219 tmp208 [V219 ] ( 0, 0 ) ref -> zero-ref "field V114._source (fldOffset=0x0)" P-INDEP
-;* V220 tmp209 [V220,T11] ( 0, 0 ) ref -> zero-ref "field V116._source (fldOffset=0x0)" P-INDEP
+;* V220 tmp209 [V220,T10] ( 0, 0 ) ref -> zero-ref "field V116._source (fldOffset=0x0)" P-INDEP
;* V221 tmp210 [V221 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V122._source (fldOffset=0x0)" P-DEP
;* V222 tmp211 [V222 ] ( 0, 0 ) ref -> zero-ref "field V129._node (fldOffset=0x0)" P-DEP
;* V223 tmp212 [V223 ] ( 0, 0 ) long -> zero-ref "field V129._id (fldOffset=0x8)" P-DEP
@@ -266,34 +266,35 @@
; V255 tmp244 [V255,T88] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V256 tmp245 [V256,T89] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V257 tmp246 [V257,T90] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-; V258 PSPSym [V258,T58] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[V] "PSPSym"
+; V258 PSPSym [V258,T58] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[V] "PSPSym"
;* V259 cse0 [V259,T59] ( 0, 0 ) long -> zero-ref "CSE - moderate"
-; V260 cse1 [V260,T07] ( 3, 10 ) ref -> x21 "CSE - moderate"
+; V260 cse1 [V260,T07] ( 3, 10 ) ref -> x25 "CSE - moderate"
; V261 cse2 [V261,T41] ( 3, 3 ) ref -> x1 "CSE - conservative"
; V262 cse3 [V262,T42] ( 3, 3 ) ref -> x1 "CSE - conservative"
-; V263 cse4 [V263,T13] ( 6, 5.98) long -> x24 multi-def "CSE - aggressive"
+; V263 cse4 [V263,T12] ( 6, 5.98) long -> x24 multi-def "CSE - aggressive"
; V264 cse5 [V264,T51] ( 2, 2 ) ref -> x1 "CSE - moderate"
-; V265 cse6 [V265,T05] ( 25, 15 ) byref -> registers multi-def "CSE - aggressive"
-; V266 cse7 [V266,T08] ( 3, 10 ) long -> x25 "CSE - moderate"
+; V265 cse6 [V265,T04] ( 25, 15 ) byref -> registers multi-def "CSE - aggressive"
+; V266 cse7 [V266,T28] ( 5, 5.00) byref -> x24 "CSE - moderate"
;
-; Lcl frame size = 96
+; Lcl frame size = 88
G_M30923_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0xB0]!
- stp x19, x20, [sp, #0x70]
- stp x21, x22, [sp, #0x80]
- stp x23, x24, [sp, #0x90]
- stp x25, x26, [sp, #0xA0]
+ stp x19, x20, [sp, #0x68]
+ stp x21, x22, [sp, #0x78]
+ stp x23, x24, [sp, #0x88]
+ stp x25, x26, [sp, #0x98]
+ str x27, [sp, #0xA8]
mov fp, sp
- add x9, fp, #32
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
add x1, sp, #176
- str x1, [fp, #0x68] // [V258 PSPSym]
- str x0, [fp, #0x18] // [V00 this]
+ str x1, [fp, #0x60] // [V258 PSPSym]
+ str x0, [fp, #0x10] // [V00 this]
; GC ptr vars +{V00}
- ;; size=52 bbWeight=1 PerfScore 11.00
+ ;; size=56 bbWeight=1 PerfScore 12.00
G_M30923_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x0]
ldrb w1, [x0, #0x39]
@@ -325,7 +326,7 @@ G_M30923_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ldr x0, [fp, #0x18] // [V00 this]
+ ldr x0, [fp, #0x10] // [V00 this]
; gcrRegs +[x0]
add x14, x0, #24
; byrRegs +[x14]
@@ -345,7 +346,7 @@ G_M30923_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- ldr x1, [fp, #0x18] // [V00 this]
+ ldr x1, [fp, #0x10] // [V00 this]
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
@@ -365,7 +366,7 @@ G_M30923_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov x20, x0
; gcrRegs +[x20]
- ldr x1, [fp, #0x18] // [V00 this]
+ ldr x1, [fp, #0x10] // [V00 this]
; gcrRegs +[x1]
...
+8 (+0.77%) : 242830.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTestsDefault+CollectionTestsContextDefault:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
@@ -15,7 +15,7 @@
; V04 loc1 [V04,T02] ( 4, 12 ) ref -> x21 class-hnd exact <System.String>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-; V07 tmp2 [V07,T26] ( 2, 0 ) int -> x0
+; V07 tmp2 [V07,T25] ( 2, 0 ) int -> x0
; V08 tmp3 [V08,T23] ( 3, 0 ) ref -> x21
; V09 tmp4 [V09,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -68,8 +68,7 @@
; V57 PSPSym [V57,T20] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V58 cse0 [V58,T16] ( 4, 2 ) int -> x0 "CSE - moderate"
; V59 cse1 [V59,T17] ( 4, 2 ) int -> x0 "CSE - moderate"
-; V60 cse2 [V60,T25] ( 3, 0 ) ref -> x1 "CSE - aggressive"
-; V61 cse3 [V61,T13] ( 3, 5 ) long -> x20 "CSE - aggressive"
+; V60 cse2 [V60,T13] ( 3, 5 ) long -> x20 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -306,19 +305,19 @@ G_M57976_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cset x0, eq
tst w0, #255
bne G_M57976_IG20
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=68 bbWeight=0 PerfScore 0.00
+ ;; size=76 bbWeight=0 PerfScore 0.00
G_M57976_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr w0, [fp, #0x34] // [V39 tmp34]
cmn w0, #1
@@ -485,7 +484,7 @@ G_M57976_IG33: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1036, prolog size 44, PerfScore 274.00, instruction count 259, allocated bytes for code 1036 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
+Total bytes of code 1044, prolog size 44, PerfScore 274.00, instruction count 261, allocated bytes for code 1044 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
; ============================================================
Unwind Info:
@@ -496,7 +495,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 247 (0x000f7) Actual length = 988 (0x0003dc)
+ Function Length : 249 (0x000f9) Actual length = 996 (0x0003e4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+2.03%) : 100929.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T20] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T26] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T27] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T23] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T29] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.53) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V103 cse3 [V103,T20] ( 12, 0 ) ref -> x1 multi-def "CSE - moderate"
;
; Lcl frame size = 40
@@ -409,19 +408,19 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG30
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG31
@@ -471,19 +470,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG33
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG34
movz x0, #0xD1FFAB1E
@@ -579,19 +578,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG38
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG39
@@ -652,19 +651,19 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG43
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG44
movz x0, #0xD1FFAB1E
@@ -726,7 +725,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1580, prolog size 48, PerfScore 291.42, instruction count 395, allocated bytes for code 1580 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1612, prolog size 48, PerfScore 291.42, instruction count 403, allocated bytes for code 1612 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -737,7 +736,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 395 (0x0018b) Actual length = 1580 (0x00062c)
+ Function Length : 403 (0x00193) Actual length = 1612 (0x00064c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
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
19
14
5
0
-136
+72
benchmarks.run_tiered.linux.arm64.checked.mch
0
0
0
0
-0
+0
coreclr_tests.run.linux.arm64.checked.mch
89
17
70
2
-172
+432
libraries.crossgen2.linux.arm64.checked.mch
0
0
0
0
-0
+0
libraries.pmi.linux.arm64.checked.mch
11
0
11
0
-0
+168
libraries_tests.run.linux.arm64.Release.mch
746
233
464
49
-2,996
+4,592
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
65
40
20
5
-208
+132
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
930
304
570
56
-3,512
+5,396
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
benchmarks.run.linux.arm64.checked.mch
33,636
2,755
30,881
0 (0.00%)
0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch
153,703
60,106
93,597
152 (0.10%)
153 (0.10%)
benchmarks.run_tiered.linux.arm64.checked.mch
63,983
47,942
16,041
0 (0.00%)
0 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch
628,135
383,770
244,365
334 (0.05%)
336 (0.05%)
libraries.crossgen2.linux.arm64.checked.mch
233,777
15
233,762
0 (0.00%)
0 (0.00%)
libraries.pmi.linux.arm64.checked.mch
294,236
6
294,230
1 (0.00%)
4 (0.00%)
libraries_tests.run.linux.arm64.Release.mch
737,783
487,495
250,288
3,053 (0.41%)
3,055 (0.41%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
304,063
21,560
282,503
6 (0.00%)
8 (0.00%)
realworld.run.linux.arm64.checked.mch
33,304
151
33,153
0 (0.00%)
0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch
19,041
6
19,035
0 (0.00%)
0 (0.00%)
2,501,661
1,003,806
1,497,855
3,546 (0.14%)
3,556 (0.14%)
jit-analyze output
benchmarks.run_pgo.linux.arm64.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 80912504 (overridden on cmd)
Total bytes of diff: 80912440 (overridden on cmd)
Total bytes of delta: -64 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-4212 : 125980.dasm (-100.00 % of base)
-3616 : 18037.dasm (-100.00 % of base)
-2204 : 85323.dasm (-100.00 % of base)
-2200 : 144959.dasm (-100.00 % of base)
-2200 : 141492.dasm (-100.00 % of base)
-2168 : 86261.dasm (-100.00 % of base)
-1692 : 129003.dasm (-100.00 % of base)
-1668 : 150220.dasm (-100.00 % of base)
-1580 : 120381.dasm (-100.00 % of base)
-1332 : 149331.dasm (-100.00 % of base)
-1296 : 151537.dasm (-100.00 % of base)
-1296 : 69109.dasm (-100.00 % of base)
-1296 : 45011.dasm (-100.00 % of base)
-1248 : 148911.dasm (-100.00 % of base)
-1248 : 45012.dasm (-100.00 % of base)
-1248 : 61198.dasm (-100.00 % of base)
-1236 : 91027.dasm (-100.00 % of base)
-908 : 120371.dasm (-100.00 % of base)
-260 : 86635.dasm (-100.00 % of base)
19 total files with Code Size differences (19 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-4212 (-100.00 % of base) : 125980.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3616 (-100.00 % of base) : 18037.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-2204 (-100.00 % of base) : 85323.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
-2200 (-100.00 % of base) : 144959.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2200 (-100.00 % of base) : 141492.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2168 (-100.00 % of base) : 86261.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-1692 (-100.00 % of base) : 129003.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1668 (-100.00 % of base) : 150220.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-1580 (-100.00 % of base) : 120381.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-1332 (-100.00 % of base) : 149331.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1296 (-100.00 % of base) : 151537.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1296 (-100.00 % of base) : 69109.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1296 (-100.00 % of base) : 45011.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1248 (-100.00 % of base) : 148911.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1248 (-100.00 % of base) : 45012.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1248 (-100.00 % of base) : 61198.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1236 (-100.00 % of base) : 91027.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-908 (-100.00 % of base) : 120371.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
-260 (-100.00 % of base) : 86635.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
Top method improvements (percentages):
-2204 (-100.00 % of base) : 85323.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
-1692 (-100.00 % of base) : 129003.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-4212 (-100.00 % of base) : 125980.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3616 (-100.00 % of base) : 18037.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-908 (-100.00 % of base) : 120371.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
-1580 (-100.00 % of base) : 120381.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-260 (-100.00 % of base) : 86635.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
-1668 (-100.00 % of base) : 150220.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-1248 (-100.00 % of base) : 148911.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1248 (-100.00 % of base) : 45012.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1248 (-100.00 % of base) : 61198.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1236 (-100.00 % of base) : 91027.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-2200 (-100.00 % of base) : 144959.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2168 (-100.00 % of base) : 86261.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2200 (-100.00 % of base) : 141492.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-1296 (-100.00 % of base) : 151537.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1296 (-100.00 % of base) : 69109.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1332 (-100.00 % of base) : 149331.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
-1296 (-100.00 % of base) : 45011.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
19 total methods with Code Size differences (19 improved, 0 regressed).
coreclr_tests.run.linux.arm64.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 509947608 (overridden on cmd)
Total bytes of diff: 509947868 (overridden on cmd)
Total bytes of delta: 260 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-7568 : 426456.dasm (-100.00 % of base)
-6300 : 425959.dasm (-100.00 % of base)
-2732 : 425018.dasm (-100.00 % of base)
-2732 : 429506.dasm (-100.00 % of base)
-2516 : 122046.dasm (-100.00 % of base)
-2448 : 38096.dasm (-100.00 % of base)
-2352 : 213426.dasm (-100.00 % of base)
-2164 : 549847.dasm (-100.00 % of base)
-2060 : 248225.dasm (-100.00 % of base)
-2060 : 248229.dasm (-100.00 % of base)
-1936 : 420702.dasm (-100.00 % of base)
-1936 : 426403.dasm (-100.00 % of base)
-1836 : 526895.dasm (-100.00 % of base)
-1588 : 530195.dasm (-100.00 % of base)
-1524 : 270407.dasm (-100.00 % of base)
-1340 : 242844.dasm (-100.00 % of base)
-1312 : 33062.dasm (-100.00 % of base)
-1288 : 1976.dasm (-100.00 % of base)
-1276 : 254429.dasm (-100.00 % of base)
-1264 : 2259.dasm (-100.00 % of base)
50 total files with Code Size differences (50 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-7568 (-100.00 % of base) : 426456.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
-6300 (-100.00 % of base) : 425959.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
-2732 (-100.00 % of base) : 429506.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
-2732 (-100.00 % of base) : 425018.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
-2516 (-100.00 % of base) : 122046.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2448 (-100.00 % of base) : 38096.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2352 (-100.00 % of base) : 213426.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2164 (-100.00 % of base) : 549847.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-2060 (-100.00 % of base) : 248225.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2060 (-100.00 % of base) : 248229.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1936 (-100.00 % of base) : 420702.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-1936 (-100.00 % of base) : 426403.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-1836 (-100.00 % of base) : 526895.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
-1588 (-100.00 % of base) : 530195.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1524 (-100.00 % of base) : 270407.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
-1340 (-100.00 % of base) : 242844.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (Instrumented Tier1)
-1312 (-100.00 % of base) : 33062.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1288 (-100.00 % of base) : 1976.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
-1276 (-100.00 % of base) : 254429.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
-1264 (-100.00 % of base) : 2259.dasm - System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this (Instrumented Tier1)
Top method improvements (percentages):
-1196 (-100.00 % of base) : 248147.dasm - AssignJagged:Run():double:this (Tier1)
-696 (-100.00 % of base) : 271378.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
-2164 (-100.00 % of base) : 549847.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-392 (-100.00 % of base) : 248113.dasm - Fourier:Run():double:this (Tier1)
-2732 (-100.00 % of base) : 429506.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
-2060 (-100.00 % of base) : 248225.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2060 (-100.00 % of base) : 248229.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1936 (-100.00 % of base) : 420702.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-1936 (-100.00 % of base) : 426403.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-2732 (-100.00 % of base) : 425018.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
-7568 (-100.00 % of base) : 426456.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
-6300 (-100.00 % of base) : 425959.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
-820 (-100.00 % of base) : 420002.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-376 (-100.00 % of base) : 312791.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
-856 (-100.00 % of base) : 255370.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateShouldSerializeTest(System.Reflection.MemberInfo):System.Predicate`1[System.Object]:this (Tier1)
-476 (-100.00 % of base) : 247913.dasm - NumericSortRect:Run():double:this (Tier1)
-1836 (-100.00 % of base) : 526895.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
-332 (-100.00 % of base) : 312998.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-332 (-100.00 % of base) : 570531.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-1024 (-100.00 % of base) : 449372.dasm - System.Buffers.SharedArrayPool`1[byte]:Return(byte[],ubyte):this (FullOpts)
libraries.pmi.linux.arm64.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 75989468 (overridden on cmd)
Total bytes of diff: 75989636 (overridden on cmd)
Total bytes of delta: 168 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-2196 : 155338.dasm (-100.00 % of base)
-1696 : 207157.dasm (-100.00 % of base)
-1588 : 207158.dasm (-100.00 % of base)
-1004 : 4458.dasm (-100.00 % of base)
-996 : 4457.dasm (-100.00 % of base)
-908 : 207859.dasm (-100.00 % of base)
-892 : 207858.dasm (-100.00 % of base)
-764 : 207875.dasm (-100.00 % of base)
-756 : 207874.dasm (-100.00 % of base)
-384 : 4463.dasm (-100.00 % of base)
-356 : 4464.dasm (-100.00 % of base)
11 total files with Code Size differences (11 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-2196 (-100.00 % of base) : 155338.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
-1696 (-100.00 % of base) : 207157.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1588 (-100.00 % of base) : 207158.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1004 (-100.00 % of base) : 4458.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
-996 (-100.00 % of base) : 4457.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
-908 (-100.00 % of base) : 207859.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-892 (-100.00 % of base) : 207858.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-764 (-100.00 % of base) : 207875.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-756 (-100.00 % of base) : 207874.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
-384 (-100.00 % of base) : 4463.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
-356 (-100.00 % of base) : 4464.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
Top method improvements (percentages):
-2196 (-100.00 % of base) : 155338.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
-996 (-100.00 % of base) : 4457.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
-1004 (-100.00 % of base) : 4458.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
-356 (-100.00 % of base) : 4464.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
-384 (-100.00 % of base) : 4463.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
-1696 (-100.00 % of base) : 207157.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1588 (-100.00 % of base) : 207158.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-892 (-100.00 % of base) : 207858.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-908 (-100.00 % of base) : 207859.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-756 (-100.00 % of base) : 207874.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
-764 (-100.00 % of base) : 207875.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
11 total methods with Code Size differences (11 improved, 0 regressed).
libraries_tests.run.linux.arm64.Release.mch
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 381322764 (overridden on cmd)
Total bytes of diff: 381324360 (overridden on cmd)
Total bytes of delta: 1596 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-20704 : 671005.dasm (-100.00 % of base)
-19364 : 55029.dasm (-100.00 % of base)
-19116 : 685686.dasm (-100.00 % of base)
-18852 : 66279.dasm (-100.00 % of base)
-17456 : 685533.dasm (-100.00 % of base)
-16588 : 55032.dasm (-100.00 % of base)
-8992 : 55040.dasm (-100.00 % of base)
-8796 : 81986.dasm (-100.00 % of base)
-7972 : 55041.dasm (-100.00 % of base)
-7840 : 575826.dasm (-100.00 % of base)
-7480 : 671363.dasm (-100.00 % of base)
-7064 : 683933.dasm (-100.00 % of base)
-6752 : 692499.dasm (-100.00 % of base)
-6564 : 565788.dasm (-100.00 % of base)
-6428 : 571417.dasm (-100.00 % of base)
-5292 : 570778.dasm (-100.00 % of base)
-4836 : 461896.dasm (-100.00 % of base)
-4708 : 414713.dasm (-100.00 % of base)
-4076 : 671070.dasm (-100.00 % of base)
-3888 : 568981.dasm (-100.00 % of base)
100 total files with Code Size differences (100 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-20704 (-100.00 % of base) : 671005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19364 (-100.00 % of base) : 55029.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19116 (-100.00 % of base) : 685686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-18852 (-100.00 % of base) : 66279.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-17456 (-100.00 % of base) : 685533.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-16588 (-100.00 % of base) : 55032.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-8992 (-100.00 % of base) : 55040.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-8796 (-100.00 % of base) : 81986.dasm - Microsoft.CodeAnalysis.SolutionState:AddProject(Microsoft.CodeAnalysis.ProjectState):Microsoft.CodeAnalysis.SolutionState:this (Tier1)
-7972 (-100.00 % of base) : 55041.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-7840 (-100.00 % of base) : 575826.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequest(System.ReadOnlySpan`1[ubyte],ubyte,System.Security.Cryptography.HashAlgorithmName,byref,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (Tier1)
-7480 (-100.00 % of base) : 671363.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
-7064 (-100.00 % of base) : 683933.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
-6752 (-100.00 % of base) : 692499.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
-6564 (-100.00 % of base) : 565788.dasm - System.Security.Cryptography.CryptoStream+<ReadAsyncCore>d__44:MoveNext():this (Tier1)
-6428 (-100.00 % of base) : 571417.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockHash(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
-5292 (-100.00 % of base) : 570778.dasm - System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder:Load(System.ReadOnlySpan`1[ubyte],byref,byref):System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder (Tier1)
-4836 (-100.00 % of base) : 461896.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-4708 (-100.00 % of base) : 414713.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:ParseRdn(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte[] (Tier1)
-4076 (-100.00 % of base) : 671070.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-3888 (-100.00 % of base) : 568981.dasm - System.IO.File:ReadAllBytesUnknownLength(Microsoft.Win32.SafeHandles.SafeFileHandle):ubyte[] (Tier1)
Top method improvements (percentages):
-2996 (-100.00 % of base) : 459688.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-4836 (-100.00 % of base) : 461896.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-2132 (-100.00 % of base) : 689846.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
-976 (-100.00 % of base) : 57235.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier1)
-19364 (-100.00 % of base) : 55029.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-20704 (-100.00 % of base) : 671005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-18852 (-100.00 % of base) : 66279.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-17456 (-100.00 % of base) : 685533.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-19116 (-100.00 % of base) : 685686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-16588 (-100.00 % of base) : 55032.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-6752 (-100.00 % of base) : 692499.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
-7064 (-100.00 % of base) : 683933.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
-8992 (-100.00 % of base) : 55040.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-7972 (-100.00 % of base) : 55041.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-4076 (-100.00 % of base) : 671070.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-3248 (-100.00 % of base) : 179545.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CustomModifierUtils:CopyTypeCustomModifiers(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
-276 (-100.00 % of base) : 91179.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
-3444 (-100.00 % of base) : 90376.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseUsingDirective():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.UsingDirectiveSyntax:this (Tier1)
-584 (-100.00 % of base) : 175140.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
-572 (-100.00 % of base) : 115520.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 162528980 (overridden on cmd)
Total bytes of diff: 162528904 (overridden on cmd)
Total bytes of delta: -76 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-4912 : 298814.dasm (-100.00 % of base)
-2444 : 296967.dasm (-100.00 % of base)
-2436 : 24001.dasm (-100.00 % of base)
-2192 : 296754.dasm (-100.00 % of base)
-2040 : 143418.dasm (-100.00 % of base)
-1932 : 152382.dasm (-100.00 % of base)
-1840 : 296770.dasm (-100.00 % of base)
-1772 : 296600.dasm (-100.00 % of base)
-1724 : 296836.dasm (-100.00 % of base)
-1684 : 296641.dasm (-100.00 % of base)
-1616 : 296853.dasm (-100.00 % of base)
-1580 : 100929.dasm (-100.00 % of base)
-1480 : 299730.dasm (-100.00 % of base)
-1412 : 296775.dasm (-100.00 % of base)
-1412 : 296824.dasm (-100.00 % of base)
-1412 : 296870.dasm (-100.00 % of base)
-1412 : 296934.dasm (-100.00 % of base)
-1364 : 196910.dasm (-100.00 % of base)
-1328 : 296765.dasm (-100.00 % of base)
-1328 : 296921.dasm (-100.00 % of base)
54 total files with Code Size differences (54 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-4912 (-100.00 % of base) : 298814.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
-2444 (-100.00 % of base) : 296967.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
-2436 (-100.00 % of base) : 24001.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
-2192 (-100.00 % of base) : 296754.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromValueTaskSource_Await_Normal>d__37:MoveNext():this (FullOpts)
-2040 (-100.00 % of base) : 143418.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
-1932 (-100.00 % of base) : 152382.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
-1840 (-100.00 % of base) : 296770.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<CreateFromValueTaskSource_Await_Normal>d__36:MoveNext():this (FullOpts)
-1772 (-100.00 % of base) : 296600.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromValueTaskSource_Canceled>d__25:MoveNext():this (FullOpts)
-1724 (-100.00 % of base) : 296836.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<NonGeneric_CreateFromValueTaskSource_Canceled>d__24:MoveNext():this (FullOpts)
-1684 (-100.00 % of base) : 296641.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromValueTaskSource_Faulted>d__23:MoveNext():this (FullOpts)
-1616 (-100.00 % of base) : 296853.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<NonGeneric_CreateFromValueTaskSource_Faulted>d__22:MoveNext():this (FullOpts)
-1580 (-100.00 % of base) : 100929.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1480 (-100.00 % of base) : 299730.dasm - System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest:RealRun():this (FullOpts)
-1412 (-100.00 % of base) : 296775.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_11>d:MoveNext():this (FullOpts)
-1412 (-100.00 % of base) : 296824.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_22>d:MoveNext():this (FullOpts)
-1412 (-100.00 % of base) : 296870.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_33>d:MoveNext():this (FullOpts)
-1412 (-100.00 % of base) : 296934.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_44>d:MoveNext():this (FullOpts)
-1364 (-100.00 % of base) : 196910.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1328 (-100.00 % of base) : 296818.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_20>d:MoveNext():this (FullOpts)
-1328 (-100.00 % of base) : 296857.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_31>d:MoveNext():this (FullOpts)
Top method improvements (percentages):
-168 (-100.00 % of base) : 302852.dasm - CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:<ArgumentValidation>b__0_0():this (FullOpts)
-808 (-100.00 % of base) : 40987.dasm - Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensionsTest+<>c+<<AddHttpClient_GetAwaiterAndResult_InSingleThreadedSynchronizationContext_ShouldNotHangs>b__44_3>d:MoveNext():this (FullOpts)
-908 (-100.00 % of base) : 16030.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Rent(int):Microsoft.CodeAnalysis.Testing.DiagnosticResult[]:this (FullOpts)
-968 (-100.00 % of base) : 16031.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Return(Microsoft.CodeAnalysis.Testing.DiagnosticResult[],ubyte):this (FullOpts)
-1004 (-100.00 % of base) : 11277.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
-956 (-100.00 % of base) : 11292.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
-164 (-100.00 % of base) : 80498.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
-636 (-100.00 % of base) : 80514.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-220 (-100.00 % of base) : 80540.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-668 (-100.00 % of base) : 80219.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-220 (-100.00 % of base) : 80490.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-964 (-100.00 % of base) : 127397.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
-1932 (-100.00 % of base) : 152382.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
-620 (-100.00 % of base) : 23917.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
-536 (-100.00 % of base) : 299720.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
-540 (-100.00 % of base) : 299717.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<MoveNextAsync>d__5[int]:MoveNext():this (FullOpts)
-2040 (-100.00 % of base) : 143418.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
-136 (-100.00 % of base) : 143786.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
-628 (-100.00 % of base) : 265435.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<<RegressionTest_DisposingEnumeratorOnPendingMoveNextAsyncOperation>g__GetNumbersAsync|20_1>d:MoveNext():this (FullOpts)
-628 (-100.00 % of base) : 253359.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<<RegressionTest_DisposingEnumeratorOnPendingMoveNextAsyncOperation>g__GetNumbersAsync|20_1>d:MoveNext():this (FullOpts)
Diffs are based on 2,595,039 contexts (1,052,329 MinOpts, 1,542,710 FullOpts).
MISSED contexts: 3,596 (0.14%)
Overall (-236 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch
66,799,627
+62
coreclr_tests.run.linux.x64.checked.mch
458,880,954
+193
libraries.pmi.linux.x64.checked.mch
59,972,991
+90
libraries_tests.run.linux.x64.Release.mch
329,977,293
-591
librariestestsnotieredcompilation.run.linux.x64.Release.mch
130,000,373
+10
FullOpts (-236 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch
46,969,870
+62
coreclr_tests.run.linux.x64.checked.mch
132,322,819
+193
libraries.pmi.linux.x64.checked.mch
59,860,121
+90
libraries_tests.run.linux.x64.Release.mch
145,587,772
-591
librariestestsnotieredcompilation.run.linux.x64.Release.mch
119,341,902
+10
Example diffs
benchmarks.run_pgo.linux.x64.checked.mch
-3 (-0.49%) : 16377.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
@@ -70,7 +70,6 @@
; V59 tmp50 [V59,T03] ( 3, 40 ) ref -> rdi "arr expr"
; V60 PSPSym [V60,T30] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
; V61 cse0 [V61,T08] ( 2, 16 ) int -> rdi "CSE - moderate"
-; V62 cse1 [V62,T31] ( 8, 0 ) ref -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 40
@@ -236,16 +235,14 @@ G_M12834_IG14: ; bbWeight=0, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {},
; gcrRegs -[rsi]
mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
- mov rax, 0xD1FFAB1E
- ; gcrRegs +[rax]
- mov rsi, rax
+ mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
call [<unknown method>]
- ; gcrRegs -[rax rsi rdi]
+ ; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov rsi, gword ptr [rbp-0x40]
; gcrRegs +[rsi]
- ;; size=33 bbWeight=0 PerfScore 0.00
+ ;; size=30 bbWeight=0 PerfScore 0.00
G_M12834_IG15: ; bbWeight=8, gcrefRegs=9040 {rsi r12 r15}, byrefRegs=0000 {}, byref, isz
cmp r14d, dword ptr [r12+0x14]
jne SHORT G_M12834_IG20
@@ -393,7 +390,7 @@ G_M12834_IG33: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 607, prolog size 32, PerfScore 610.00, instruction count 167, allocated bytes for code 607 (MethodHash=d237cddd) for method System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
+Total bytes of code 604, prolog size 32, PerfScore 610.00, instruction count 166, allocated bytes for code 604 (MethodHash=d237cddd) for method System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
; ============================================================
Unwind Info:
-6 (-0.41%) : 125664.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.Canon]:TryInsert(BenchmarksGame.ByteString,System.Canon,ubyte):ubyte:this (Tier1)
@@ -14,30 +14,30 @@
; V02 arg2 [V02,T09] ( 4, 3 ) ref -> r15 class-hnd single-def <System.__Canon>
; V03 arg3 [V03,T11] ( 6, 2 ) ubyte -> r14 single-def
; V04 loc0 [V04,T02] ( 14, 7.05) ref -> r12 class-hnd <<unknown class>>
-; V05 loc1 [V05,T15] ( 5, 2 ) ref -> [rbp-0xA0] class-hnd single-def <<unknown class>>
-; V06 loc2 [V06,T16] ( 7, 1.57) int -> [rbp-0x3C] spill-single-def
+; V05 loc1 [V05,T15] ( 5, 2 ) ref -> [rbp-0x90] class-hnd single-def <<unknown class>>
+; V06 loc2 [V06,T16] ( 8, 1.62) int -> [rbp-0x3C] spill-single-def
; V07 loc3 [V07,T17] ( 7, 1.57) int -> [rbp-0x40]
-; V08 loc4 [V08,T14] ( 5, 2.05) byref -> [rbp-0xA8]
+; V08 loc4 [V08,T14] ( 5, 2.05) byref -> [rbp-0x98]
; V09 loc5 [V09,T13] ( 11, 2.57) int -> [rbp-0x44]
; V10 loc6 [V10,T07] ( 6, 5 ) int -> r14
; V11 loc7 [V11,T08] ( 5, 5 ) byref -> r12 single-def
; V12 loc8 [V12,T12] ( 3, 3 ) int -> r14
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref
-; V15 tmp2 [V15,T33] ( 3, 0 ) int -> rcx
+; V15 tmp2 [V15,T32] ( 3, 0 ) int -> rcx
;* V16 tmp3 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V17 tmp4 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp5 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp6 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp7 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V21 tmp8 [V21,T34] ( 3, 0 ) int -> rcx "Inline return value spill temp"
+; V21 tmp8 [V21,T33] ( 3, 0 ) int -> rcx "Inline return value spill temp"
; V22 tmp9 [V22,T19] ( 6, 1.22) int -> rdi "Inline stloc first use temp"
-; V23 tmp10 [V23,T29] ( 8, 0 ) int -> rcx "Inline stloc first use temp"
+; V23 tmp10 [V23,T28] ( 8, 0 ) int -> rcx "Inline stloc first use temp"
;* V24 tmp11 [V24 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V25 tmp12 [V25,T30] ( 4, 0 ) ref -> [rbp-0xB0] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-; V26 tmp13 [V26,T35] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V27 tmp14 [V27,T39] ( 2, 0 ) long -> r10 "Inlining Arg"
-; V28 tmp15 [V28,T31] ( 4, 0 ) int -> [rbp-0x48] spill-single-def "Inline stloc first use temp"
+; V25 tmp12 [V25,T29] ( 4, 0 ) ref -> [rbp-0xA0] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+; V26 tmp13 [V26,T34] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V27 tmp14 [V27,T38] ( 2, 0 ) long -> r10 "Inlining Arg"
+; V28 tmp15 [V28,T30] ( 4, 0 ) int -> [rbp-0x48] spill-single-def "Inline stloc first use temp"
;* V29 tmp16 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp17 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V31 tmp18 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -57,22 +57,21 @@
;* V45 tmp32 [V45 ] ( 0, 0 ) int -> zero-ref "field V34.Start (fldOffset=0x8)" P-INDEP
;* V46 tmp33 [V46 ] ( 0, 0 ) int -> zero-ref "field V34.Length (fldOffset=0xc)" P-INDEP
; V47 tmp34 [V47,T06] ( 8, 5.22) int -> r13 "V01.[012..016)"
-; V48 tmp35 [V48,T03] ( 3, 6 ) byref -> [rbp-0xB8] spill-single-def "Spilling address for field-by-field copy"
+; V48 tmp35 [V48,T03] ( 3, 6 ) byref -> [rbp-0xA8] spill-single-def "Spilling address for field-by-field copy"
; V49 tmp36 [V49,T04] ( 3, 6 ) ref -> rdi single-def "arr expr"
; V50 tmp37 [V50,T05] ( 3, 6 ) int -> rsi "index expr"
; V51 tmp38 [V51,T20] ( 3, 0.67) ref -> rsi single-def "arr expr"
; V52 tmp39 [V52,T21] ( 3, 0.67) int -> rcx "index expr"
-; V53 tmp40 [V53,T32] ( 3, 0 ) ref -> rdx "arr expr"
+; V53 tmp40 [V53,T31] ( 3, 0 ) ref -> rdx "arr expr"
; V54 tmp41 [V54,T25] ( 2, 0.19) int -> rsi "argument with side effect"
-; V55 tmp42 [V55,T36] ( 3, 0 ) int -> rdi "index expr"
-; V56 tmp43 [V56,T37] ( 3, 0 ) int -> rdx "index expr"
-; V57 tmp44 [V57,T38] ( 3, 0 ) struct (16) [rbp-0x80] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <BenchmarksGame.ByteString>
-; V58 cse0 [V58,T18] ( 4, 1.57) byref -> [rbp-0xC0] spill-single-def "CSE - moderate"
+; V55 tmp42 [V55,T35] ( 3, 0 ) int -> rdi "index expr"
+; V56 tmp43 [V56,T36] ( 3, 0 ) int -> rdx "index expr"
+; V57 tmp44 [V57,T37] ( 3, 0 ) struct (16) [rbp-0x80] do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <BenchmarksGame.ByteString>
+; V58 cse0 [V58,T18] ( 4, 1.57) byref -> [rbp-0xB0] spill-single-def "CSE - moderate"
; V59 cse1 [V59,T27] ( 3, 0.14) int -> [rbp-0x84] spill-single-def "CSE - conservative"
-; V60 cse2 [V60,T28] ( 3, 0.05) long -> [rbp-0x90] spill-single-def "CSE - conservative"
-; V61 cse3 [V61,T10] ( 10, 4.57) int -> [rbp-0x94] multi-def "CSE - aggressive"
+; V60 cse2 [V60,T10] ( 10, 4.57) int -> [rbp-0x88] multi-def "CSE - aggressive"
;
-; Lcl frame size = 152
+; Lcl frame size = 136
G_M56080_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
@@ -81,9 +80,9 @@ G_M56080_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push r13
push r12
push rbx
- sub rsp, 152
+ sub rsp, 136
vzeroupper
- lea rbp, [rsp+0xC0]
+ lea rbp, [rsp+0xB0]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x80], ymm8
vmovdqa xmmword ptr [rbp-0x60], xmm8
@@ -148,7 +147,7 @@ G_M56080_IG09: ; bbWeight=0, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=
mov rsi, gword ptr [rbp-0x38]
; gcrRegs +[rsi]
mov rdx, qword ptr [rbp-0x30]
- mov gword ptr [rbp-0xA0], rax
+ mov gword ptr [rbp-0x90], rax
; GC ptr vars +{V05}
mov rdi, rax
; gcrRegs +[rdi]
@@ -186,7 +185,7 @@ G_M56080_IG13: ; bbWeight=0, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=
mov ecx, edi
;; size=2 bbWeight=0 PerfScore 0.00
G_M56080_IG14: ; bbWeight=0, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref
- mov gword ptr [rbp-0xA0], rax
+ mov gword ptr [rbp-0x90], rax
; GC ptr vars +{V05}
;; size=7 bbWeight=0 PerfScore 0.00
G_M56080_IG15: ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, gcvars, byref, isz
@@ -196,17 +195,16 @@ G_M56080_IG15: ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
mov dword ptr [rbp-0x40], r8d
mov r9, gword ptr [rbx+0x08]
; gcrRegs +[r9]
- mov gword ptr [rbp-0xB0], r9
+ mov gword ptr [rbp-0xA0], r9
; GC ptr vars +{V25}
mov edi, dword ptr [r9+0x08]
mov r10, qword ptr [rbx+0x30]
mov r11d, ecx
- mov qword ptr [rbp-0x90], r11
imul r10, r11
shr r10, 32
inc r10
- mov esi, edi
- imul r10, rsi
+ mov r11d, edi
+ imul r10, r11
shr r10, 32
mov dword ptr [rbp-0x48], r10d
mov eax, ecx
@@ -221,10 +219,10 @@ G_M56080_IG15: ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
call [<unknown method>]
; gcrRegs -[rsi rdi r9]
; gcr arg pop 0
- ;; size=101 bbWeight=0 PerfScore 0.00
+ ;; size=95 bbWeight=0 PerfScore 0.00
G_M56080_IG16: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov r10d, dword ptr [rbp-0x48]
- mov r9, gword ptr [rbp-0xB0]
+ mov r9, gword ptr [rbp-0xA0]
; gcrRegs +[r9]
cmp r10d, dword ptr [r9+0x08]
jae G_M56080_IG49
@@ -233,7 +231,7 @@ G_M56080_IG16: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000
; byrRegs +[rax]
mov edx, dword ptr [rax]
dec edx
- cmp gword ptr [rbp-0xA0], 0
+ cmp gword ptr [rbp-0x90], 0
jne G_M56080_IG29
;; size=47 bbWeight=0 PerfScore 0.00
G_M56080_IG17: ; bbWeight=1.52, gcVars=0000000000000000 {}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0001 {rax}, gcvars, byref
@@ -248,7 +246,7 @@ G_M56080_IG18: ; bbWeight=0.52, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
shl rdi, 5
lea rsi, bword ptr [r12+rdi+0x10]
; byrRegs +[rsi]
- mov bword ptr [rbp-0xC0], rsi
+ mov bword ptr [rbp-0xB0], rsi
; GC ptr vars +{V58}
mov ecx, dword ptr [rbp-0x3C]
cmp dword ptr [rsi+0x08], ecx
@@ -256,8 +254,8 @@ G_M56080_IG18: ; bbWeight=0.52, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
jne SHORT G_M56080_IG22
;; size=29 bbWeight=0.52 PerfScore 4.58
G_M56080_IG19: ; bbWeight=0, gcVars=0000000000040000 {V58}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0041 {rax rsi}, gcvars, byref
- mov dword ptr [rbp-0x94], r9d
- mov bword ptr [rbp-0xA8], rax
+ mov dword ptr [rbp-0x88], r9d
+ mov bword ptr [rbp-0x98], rax
; GC ptr vars +{V08}
;; size=14 bbWeight=0 PerfScore 0.00
G_M56080_IG20: ; bbWeight=0, nogc, extend
@@ -275,11 +273,11 @@ G_M56080_IG21: ; bbWeight=0, extend
; byrRegs -[rax]
; gcr arg pop 0
test eax, eax
- mov rax, bword ptr [rbp-0xA8]
+ mov rax, bword ptr [rbp-0x98]
; byrRegs +[rax]
- mov rsi, bword ptr [rbp-0xC0]
+ mov rsi, bword ptr [rbp-0xB0]
; byrRegs +[rsi]
- mov r9d, dword ptr [rbp-0x94]
+ mov r9d, dword ptr [rbp-0x88]
jne G_M56080_IG26
;; size=47 bbWeight=0 PerfScore 0.00
G_M56080_IG22: ; bbWeight=0.52, gcVars=0000000000040000 {V58}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0041 {rax rsi}, gcvars, byref
@@ -365,7 +363,7 @@ G_M56080_IG29: ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
; byrRegs +[rax]
; GC ptr vars +{V05 V15}
mov dword ptr [rbp-0x44], edx
- mov bword ptr [rbp-0xA8], rax
+ mov bword ptr [rbp-0x98], rax
; GC ptr vars +{V08}
mov edi, 1
; GC ptr vars -{V15}
@@ -376,23 +374,23 @@ G_M56080_IG29: ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
G_M56080_IG30: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
mov r9d, dword ptr [r12+0x08]
mov eax, r9d
- mov dword ptr [rbp-0x94], eax
+ mov dword ptr [rbp-0x88], eax
mov r9d, dword ptr [rbp-0x44]
cmp eax, r9d
jbe G_M56080_IG35
mov edx, r9d
- mov rax, bword ptr [rbp-0xA8]
+ mov rax, bword ptr [rbp-0x98]
; byrRegs +[rax]
- mov r9d, dword ptr [rbp-0x94]
- mov r10, gword ptr [rbp-0xA0]
+ mov r9d, dword ptr [rbp-0x88]
+ mov r10, gword ptr [rbp-0x90]
; gcrRegs +[r10]
mov esi, edx
shl rsi, 5
mov ecx, dword ptr [rbp-0x3C]
cmp dword ptr [r12+rsi+0x18], ecx
jne SHORT G_M56080_IG33
- mov dword ptr [rbp-0x94], r9d
- mov bword ptr [rbp-0xA8], rax
+ mov dword ptr [rbp-0x88], r9d
+ mov bword ptr [rbp-0x98], rax
mov dword ptr [rbp-0x44], edx
mov esi, edx
shl rsi, 5
@@ -408,7 +406,7 @@ G_M56080_IG32: ; bbWeight=0, isz, extend
mov rcx, gword ptr [rbp-0x38]
; gcrRegs +[rcx]
mov r8, qword ptr [rbp-0x30]
- mov gword ptr [rbp-0xA0], r10
+ mov gword ptr [rbp-0x90], r10
mov rdi, r10
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for <unknown method>
@@ -417,11 +415,11 @@ G_M56080_IG32: ; bbWeight=0, isz, extend
; byrRegs -[rax]
; gcr arg pop 0
test eax, eax
- mov rax, bword ptr [rbp-0xA8]
+ mov rax, bword ptr [rbp-0x98]
; byrRegs +[rax]
mov edx, dword ptr [rbp-0x44]
- mov r9d, dword ptr [rbp-0x94]
- mov r10, gword ptr [rbp-0xA0]
+ mov r9d, dword ptr [rbp-0x88]
+ mov r10, gword ptr [rbp-0x90]
; gcrRegs +[r10]
jne SHORT G_M56080_IG36
;; size=67 bbWeight=0 PerfScore 0.00
@@ -434,9 +432,9 @@ G_M56080_IG33: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=9408 {
inc r8d
cmp r9d, r8d
mov dword ptr [rbp-0x44], edx
- mov bword ptr [rbp-0xA8], rax
+ mov bword ptr [rbp-0x98], rax
; GC ptr vars +{V08}
...
+8 (+0.27%) : 141376.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan
1[System.String],ubyte):System.Buffers.SearchValues1System.String@@ -11,12 +11,12 @@
;
; V00 arg0 [V00,T17] ( 3, 3 ) struct (16) [rbp-0x180] do-not-enreg[SFA] multireg-arg ld-addr-op single-def ptr <System.ReadOnlySpan`1[System.String]>
; V01 arg1 [V01,T18] ( 3, 3 ) ubyte -> rdx ld-addr-op single-def
-; V02 loc0 [V02,T82] ( 8, 0 ) ref -> r13 class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
+; V02 loc0 [V02,T81] ( 8, 0 ) ref -> r13 class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
;* V03 loc1 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret ld-addr-op <System.Span`1[System.String]>
-; V04 loc2 [V04,T97] ( 4, 0 ) int -> [rbp-0x184] ptr
+; V04 loc2 [V04,T96] ( 4, 0 ) int -> [rbp-0x184] ptr
; V05 loc3 [V05 ] ( 4, 0 ) ref -> [rbp-0x190] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.Collections.Generic.HashSet`1[System.String]>
; V06 loc4 [V06 ] ( 3, 0 ) struct (160) [rbp-0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer <System.Buffers.AhoCorasickBuilder>
-; V07 loc5 [V07,T111] ( 2, 0 ) ref -> rbx class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
+; V07 loc5 [V07,T110] ( 2, 0 ) ref -> rbx class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
; V08 loc6 [V08,T33] ( 6, 3 ) ref -> r15 class-hnd single-def <System.String>
; V09 loc7 [V09 ] ( 3, 3 ) ref -> [rbp-0x198] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.String>
; V10 loc8 [V10 ] ( 5, 4 ) ubyte -> [rbp-0x19C] do-not-enreg[X] addr-exposed ld-addr-op
@@ -24,43 +24,43 @@
; V12 loc10 [V12 ] ( 2, 1 ) ubyte -> [rbp-0x1A4] do-not-enreg[X] addr-exposed ld-addr-op
; V13 loc11 [V13,T30] ( 4, 3.80) int -> r14 ld-addr-op
;* V14 loc12 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[System.String]>
-; V15 loc13 [V15,T85] ( 6, 0 ) int -> r12
-; V16 loc14 [V16,T100] ( 3, 0 ) ref -> rsi class-hnd <System.String>
+; V15 loc13 [V15,T84] ( 6, 0 ) int -> r12
+; V16 loc14 [V16,T99] ( 3, 0 ) ref -> rsi class-hnd <System.String>
; V17 loc15 [V17 ] ( 3, 0 ) struct (24) [rbp-0x1C0] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.String]>
-; V18 loc16 [V18,T112] ( 2, 0 ) ref -> [rbp-0x200] class-hnd exact spill-single-def ptr <System.String>
+; V18 loc16 [V18,T111] ( 2, 0 ) ref -> [rbp-0x200] class-hnd exact spill-single-def ptr <System.String>
; V19 tmp0 [V19,T72] ( 1, 1 ) int -> [rbp-0x1C4] do-not-enreg[V] "GSCookie dummy"
;# V20 OutArgs [V20 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V21 tmp2 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp3 [V22 ] ( 0, 0 ) int -> zero-ref ptr
-; V23 tmp4 [V23,T113] ( 2, 0 ) ref -> r14
-; V24 tmp5 [V24,T101] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
-; V25 tmp6 [V25,T98] ( 4, 0 ) int -> r12 "impSpillLclRefs"
+; V23 tmp4 [V23,T112] ( 2, 0 ) ref -> r14
+; V24 tmp5 [V24,T100] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V25 tmp6 [V25,T97] ( 4, 0 ) int -> r12 "impSpillLclRefs"
;* V26 tmp7 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V27 tmp8 [V27,T114] ( 2, 0 ) ref -> rcx class-hnd single-def "dup spill" <<unknown class>>
+; V27 tmp8 [V27,T113] ( 2, 0 ) ref -> rcx class-hnd single-def "dup spill" <<unknown class>>
;* V28 tmp9 [V28 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[System.String]>
;* V29 tmp10 [V29 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[System.String]>
-; V30 tmp11 [V30,T90] ( 4, 0 ) ref -> rcx
+; V30 tmp11 [V30,T89] ( 4, 0 ) ref -> rcx
; V31 tmp12 [V31 ] ( 2, 0 ) struct (160) [rbp-0x170] do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer "NewObj constructor temp" <System.Buffers.AhoCorasickBuilder>
;* V32 tmp13 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
;* V33 tmp14 [V33 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
-; V34 tmp15 [V34,T91] ( 4, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V35 tmp16 [V35,T92] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V34 tmp15 [V34,T90] ( 4, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V35 tmp16 [V35,T91] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V36 tmp17 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.String]>
;* V37 tmp18 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V40 tmp21 [V40,T22] ( 5, 4 ) ref -> r14 class-hnd "Inlining Arg" <System.String>
;* V41 tmp22 [V41 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V42 tmp23 [V42,T87] ( 5, 0 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V42 tmp23 [V42,T86] ( 5, 0 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V43 tmp24 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp25 [V44 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V45 tmp26 [V45 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V46 tmp27 [V46 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V47 tmp28 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V48 tmp29 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V49 tmp30 [V49,T135] ( 2, 0 ) int -> r13 "Inlining Arg"
-; V50 tmp31 [V50,T115] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
-; V51 tmp32 [V51,T116] ( 2, 0 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
+; V49 tmp30 [V49,T134] ( 2, 0 ) int -> r13 "Inlining Arg"
+; V50 tmp31 [V50,T114] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
+; V51 tmp32 [V51,T115] ( 2, 0 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
;* V52 tmp33 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V53 tmp34 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V54 tmp35 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -68,10 +68,10 @@
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V58 tmp39 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V59 tmp40 [V59,T136] ( 2, 0 ) int -> r15 "Inlining Arg"
-; V60 tmp41 [V60,T117] ( 2, 0 ) byref -> r13 single-def "Inlining Arg"
-; V61 tmp42 [V61,T137] ( 2, 0 ) int -> [rbp-0x1C8] spill-single-def ptr "Inlining Arg"
-; V62 tmp43 [V62,T118] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
+; V59 tmp40 [V59,T135] ( 2, 0 ) int -> r15 "Inlining Arg"
+; V60 tmp41 [V60,T116] ( 2, 0 ) byref -> r13 single-def "Inlining Arg"
+; V61 tmp42 [V61,T136] ( 2, 0 ) int -> [rbp-0x1C8] spill-single-def ptr "Inlining Arg"
+; V62 tmp43 [V62,T117] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
;* V63 tmp44 [V63 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[System.String]>
;* V64 tmp45 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
; V65 tmp46 [V65,T16] ( 5, 5 ) int -> r12 "Inline stloc first use temp"
@@ -88,8 +88,8 @@
; V76 tmp57 [V76,T55] ( 2, 2 ) byref -> r10 single-def
; V77 tmp58 [V77,T51] ( 3, 2 ) int -> r11
;* V78 tmp59 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
-; V79 tmp60 [V79,T88] ( 5, 0 ) int -> r15 "Inline stloc first use temp"
-; V80 tmp61 [V80,T93] ( 4, 0 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.String>
+; V79 tmp60 [V79,T87] ( 5, 0 ) int -> r15 "Inline stloc first use temp"
+; V80 tmp61 [V80,T92] ( 4, 0 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.String>
;* V81 tmp62 [V81 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V82 tmp63 [V82 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V83 tmp64 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
@@ -119,9 +119,9 @@
;* V107 tmp88 [V107 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V108 tmp89 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V109 tmp90 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V110 tmp91 [V110,T138] ( 2, 0 ) int -> r12 "Inlining Arg"
-; V111 tmp92 [V111,T119] ( 2, 0 ) byref -> r14 "Inlining Arg"
-; V112 tmp93 [V112,T120] ( 2, 0 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+; V110 tmp91 [V110,T137] ( 2, 0 ) int -> r12 "Inlining Arg"
+; V111 tmp92 [V111,T118] ( 2, 0 ) byref -> r14 "Inlining Arg"
+; V112 tmp93 [V112,T119] ( 2, 0 ) ref -> rdx class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
;* V113 tmp94 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V114 tmp95 [V114 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V115 tmp96 [V115 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -132,12 +132,12 @@
; V120 tmp101 [V120,T04] ( 18, 11.82) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
; V121 tmp102 [V121,T48] ( 3, 0 ) ref -> r14 class-hnd "Inlining Arg" <System.Collections.Generic.HashSet`1[System.String]>
; V122 tmp103 [V122,T21] ( 6, 4 ) ubyte -> rbx "Inlining Arg"
-; V123 tmp104 [V123,T94] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V124 tmp105 [V124,T95] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V123 tmp104 [V123,T93] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V124 tmp105 [V124,T94] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V125 tmp106 [V125 ] ( 0, 0 ) int -> zero-ref
;* V126 tmp107 [V126 ] ( 0, 0 ) int -> zero-ref
-; V127 tmp108 [V127,T121] ( 2, 0 ) ref -> r15
-; V128 tmp109 [V128,T96] ( 4, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V127 tmp108 [V127,T120] ( 2, 0 ) ref -> r15
+; V128 tmp109 [V128,T95] ( 4, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V129 tmp110 [V129,T38] ( 3, 2.96) int -> rdi "Inline stloc first use temp"
; V130 tmp111 [V130,T39] ( 4, 2.83) ubyte -> rcx "Inlining Arg"
; V131 tmp112 [V131,T40] ( 4, 2.83) ubyte -> r8 "Inlining Arg"
@@ -145,9 +145,9 @@
;* V133 tmp114 [V133 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ptr "Inline stloc first use temp" <System.Buffers.SearchValues`1[System.String]>
; V134 tmp115 [V134,T62] ( 6, 1.17) ref -> rax class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V135 tmp116 [V135 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V136 tmp117 [V136,T102] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V137 tmp118 [V137,T103] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V138 tmp119 [V138,T104] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V136 tmp117 [V136,T101] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V137 tmp118 [V137,T102] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V138 tmp119 [V138,T103] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V139 tmp120 [V139,T05] ( 10, 11.65) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V140 tmp121 [V140 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V141 tmp122 [V141,T09] ( 16, 6.51) int -> registers ld-addr-op ptr "Inline ldloca(s) first use temp"
@@ -202,9 +202,9 @@
;* V190 tmp171 [V190 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V191 tmp172 [V191 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V192 tmp173 [V192 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V193 tmp174 [V193,T99] ( 4, 0 ) int -> r15 "Inlining Arg"
-; V194 tmp175 [V194,T105] ( 3, 0 ) byref -> r14 single-def "Inlining Arg"
-; V195 tmp176 [V195,T139] ( 2, 0 ) int -> rax "Inline return value spill temp"
+; V193 tmp174 [V193,T98] ( 4, 0 ) int -> r15 "Inlining Arg"
+; V194 tmp175 [V194,T104] ( 3, 0 ) byref -> r14 single-def "Inlining Arg"
+; V195 tmp176 [V195,T138] ( 2, 0 ) int -> rax "Inline return value spill temp"
; V196 tmp177 [V196 ] ( 2, 0 ) ushort -> [rbp-0x1D0] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V197 tmp178 [V197 ] ( 2, 0 ) ushort -> [rbp-0x1D4] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V198 tmp179 [V198 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -228,10 +228,10 @@
;* V216 tmp197 [V216 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
;* V217 tmp198 [V217 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V218 tmp199 [V218 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
-; V219 tmp200 [V219,T86] ( 6, 0 ) ushort -> r12 "Inlining Arg"
-; V220 tmp201 [V220,T89] ( 5, 0 ) ushort -> [rbp-0x1D8] spill-single-def "Inlining Arg"
+; V219 tmp200 [V219,T85] ( 6, 0 ) ushort -> r12 "Inlining Arg"
+; V220 tmp201 [V220,T88] ( 5, 0 ) ushort -> [rbp-0x1D8] spill-single-def "Inlining Arg"
;* V221 tmp202 [V221 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V222 tmp203 [V222,T108] ( 3, 0 ) int -> rax "Inline return value spill temp"
+; V222 tmp203 [V222,T107] ( 3, 0 ) int -> rax "Inline return value spill temp"
;* V223 tmp204 [V223 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V224 tmp205 [V224 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V225 tmp206 [V225 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inline stloc first use temp"
@@ -260,12 +260,12 @@
;* V248 tmp229 [V248 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V249 tmp230 [V249 ] ( 1, 0 ) int -> [rbp-0x1E0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V250 tmp231 [V250 ] ( 1, 0 ) int -> [rbp-0x1E8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V251 tmp232 [V251,T106] ( 3, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V251 tmp232 [V251,T105] ( 3, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V252 tmp233 [V252 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.String]>
-; V253 tmp234 [V253,T84] ( 7, 0 ) byref -> r15 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V254 tmp235 [V254,T83] ( 8, 0 ) int -> r14 "field V03._length (fldOffset=0x8)" P-INDEP
-; V255 tmp236 [V255,T122] ( 2, 0 ) byref -> r14 single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-; V256 tmp237 [V256,T109] ( 3, 0 ) int -> r15 "field V14._length (fldOffset=0x8)" P-INDEP
+; V253 tmp234 [V253,T83] ( 7, 0 ) byref -> r15 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V254 tmp235 [V254,T82] ( 8, 0 ) int -> r14 "field V03._length (fldOffset=0x8)" P-INDEP
+; V255 tmp236 [V255,T121] ( 2, 0 ) byref -> r14 single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V256 tmp237 [V256,T108] ( 3, 0 ) int -> r15 "field V14._length (fldOffset=0x8)" P-INDEP
; V257 tmp238 [V257 ] ( 2, 0 ) ref -> [rbp-0x1C0] do-not-enreg[X] addr-exposed "field V17._hashSet (fldOffset=0x0)" P-DEP
; V258 tmp239 [V258 ] ( 3, 0 ) ref -> [rbp-0x1B8] do-not-enreg[X] addr-exposed ptr "field V17._current (fldOffset=0x8)" P-DEP
; V259 tmp240 [V259 ] ( 2, 0 ) int -> [rbp-0x1B0] do-not-enreg[X] addr-exposed "field V17._version (fldOffset=0x10)" P-DEP
@@ -274,30 +274,30 @@
;* V262 tmp243 [V262 ] ( 0, 0 ) int -> zero-ref ptr "field V28._length (fldOffset=0x8)" P-INDEP
;* V263 tmp244 [V263 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V29._reference (fldOffset=0x0)" P-INDEP
;* V264 tmp245 [V264 ] ( 0, 0 ) int -> zero-ref ptr "field V29._length (fldOffset=0x8)" P-INDEP
-; V265 tmp246 [V265,T123] ( 2, 0 ) byref -> rsi "field V32._reference (fldOffset=0x0)" P-INDEP
-; V266 tmp247 [V266,T140] ( 2, 0 ) int -> rdx "field V32._length (fldOffset=0x8)" P-INDEP
-; V267 tmp248 [V267,T124] ( 2, 0 ) byref -> rdi "field V33._reference (fldOffset=0x0)" P-INDEP
-; V268 tmp249 [V268,T141] ( 2, 0 ) int -> rsi "field V33._length (fldOffset=0x8)" P-INDEP
+; V265 tmp246 [V265,T122] ( 2, 0 ) byref -> rsi "field V32._reference (fldOffset=0x0)" P-INDEP
+; V266 tmp247 [V266,T139] ( 2, 0 ) int -> rdx "field V32._length (fldOffset=0x8)" P-INDEP
+; V267 tmp248 [V267,T123] ( 2, 0 ) byref -> rdi "field V33._reference (fldOffset=0x0)" P-INDEP
+; V268 tmp249 [V268,T140] ( 2, 0 ) int -> rsi "field V33._length (fldOffset=0x8)" P-INDEP
; V269 tmp250 [V269,T56] ( 2, 2 ) byref -> r13 single-def "field V36._reference (fldOffset=0x0)" P-INDEP
;* V270 tmp251 [V270,T73] ( 0, 0 ) int -> zero-ref ptr "field V36._length (fldOffset=0x8)" P-INDEP
;* V271 tmp252 [V271 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V41._reference (fldOffset=0x0)" P-INDEP
;* V272 tmp253 [V272 ] ( 0, 0 ) int -> zero-ref ptr "field V41._length (fldOffset=0x8)" P-INDEP
-; V273 tmp254 [V273,T125] ( 2, 0 ) byref -> r13 "field V43._reference (fldOffset=0x0)" P-INDEP
-; V274 tmp255 [V274,T142] ( 2, 0 ) int -> r15 "field V43._length (fldOffset=0x8)" P-INDEP
-; V275 tmp256 [V275,T126] ( 2, 0 ) byref -> rdx single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-; V276 tmp257 [V276,T143] ( 2, 0 ) int -> rcx "field V44._length (fldOffset=0x8)" P-INDEP
-; V277 tmp258 [V277,T127] ( 2, 0 ) byref -> rdi "field V46._reference (fldOffset=0x0)" P-INDEP
-; V278 tmp259 [V278,T144] ( 2, 0 ) int -> rsi "field V46._length (fldOffset=0x8)" P-INDEP
-; V279 tmp260 [V279,T128] ( 2, 0 ) byref -> rdi single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-; V280 tmp261 [V280,T145] ( 2, 0 ) int -> rsi "field V47._length (fldOffset=0x8)" P-INDEP
+; V273 tmp254 [V273,T124] ( 2, 0 ) byref -> r13 "field V43._reference (fldOffset=0x0)" P-INDEP
+; V274 tmp255 [V274,T141] ( 2, 0 ) int -> r15 "field V43._length (fldOffset=0x8)" P-INDEP
+; V275 tmp256 [V275,T125] ( 2, 0 ) byref -> rdx single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+; V276 tmp257 [V276,T142] ( 2, 0 ) int -> rcx "field V44._length (fldOffset=0x8)" P-INDEP
+; V277 tmp258 [V277,T126] ( 2, 0 ) byref -> rdi "field V46._reference (fldOffset=0x0)" P-INDEP
+; V278 tmp259 [V278,T143] ( 2, 0 ) int -> rsi "field V46._length (fldOffset=0x8)" P-INDEP
+; V279 tmp260 [V279,T127] ( 2, 0 ) byref -> rdi single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+; V280 tmp261 [V280,T144] ( 2, 0 ) int -> rsi "field V47._length (fldOffset=0x8)" P-INDEP
;* V281 tmp262 [V281 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
;* V282 tmp263 [V282 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V283 tmp264 [V283 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V52._reference (fldOffset=0x0)" P-INDEP
;* V284 tmp265 [V284 ] ( 0, 0 ) int -> zero-ref ptr "field V52._length (fldOffset=0x8)" P-INDEP
;* V285 tmp266 [V285 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V53._reference (fldOffset=0x0)" P-INDEP
;* V286 tmp267 [V286 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V287 tmp268 [V287,T129] ( 2, 0 ) byref -> r13 single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-; V288 tmp269 [V288,T146] ( 2, 0 ) int -> r15 "field V57._length (fldOffset=0x8)" P-INDEP
+; V287 tmp268 [V287,T128] ( 2, 0 ) byref -> r13 single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+; V288 tmp269 [V288,T145] ( 2, 0 ) int -> r15 "field V57._length (fldOffset=0x8)" P-INDEP
;* V289 tmp270 [V289 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
;* V290 tmp271 [V290 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
; V291 tmp272 [V291,T36] ( 3, 2 ) byref -> r13 single-def "field V63._reference (fldOffset=0x0)" P-INDEP
@@ -308,10 +308,10 @@
;* V296 tmp277 [V296 ] ( 0, 0 ) int -> zero-ref ptr "field V73._length (fldOffset=0x8)" P-INDEP
;* V297 tmp278 [V297 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
;* V298 tmp279 [V298 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V299 tmp280 [V299,T130] ( 2, 0 ) byref -> r13 single-def "field V78._reference (fldOffset=0x0)" P-INDEP
-;* V300 tmp281 [V300,T150] ( 0, 0 ) int -> zero-ref ptr "field V78._length (fldOffset=0x8)" P-INDEP
-; V301 tmp282 [V301,T131] ( 2, 0 ) byref -> rdi "field V81._reference (fldOffset=0x0)" P-INDEP
-; V302 tmp283 [V302,T147] ( 2, 0 ) int -> rsi "field V81._length (fldOffset=0x8)" P-INDEP
+; V299 tmp280 [V299,T129] ( 2, 0 ) byref -> r13 single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V300 tmp281 [V300,T149] ( 0, 0 ) int -> zero-ref ptr "field V78._length (fldOffset=0x8)" P-INDEP
+; V301 tmp282 [V301,T130] ( 2, 0 ) byref -> rdi "field V81._reference (fldOffset=0x0)" P-INDEP
+; V302 tmp283 [V302,T146] ( 2, 0 ) int -> rsi "field V81._length (fldOffset=0x8)" P-INDEP
; V303 tmp284 [V303,T11] ( 3, 6 ) byref -> rdi "field V82._reference (fldOffset=0x0)" P-INDEP
; V304 tmp285 [V304,T13] ( 3, 6 ) int -> rsi "field V82._length (fldOffset=0x8)" P-INDEP
; V305 tmp286 [V305,T57] ( 2, 2 ) byref -> rdi "field V83._reference (fldOffset=0x0)" P-INDEP
@@ -332,10 +332,10 @@
;* V320 tmp301 [V320 ] ( 0, 0 ) int -> zero-ref ptr "field V99._length (fldOffset=0x8)" P-INDEP
...
+14 (+0.44%) : 137835.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -30,13 +30,13 @@
;* V17 tmp6 [V17 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V20 tmp9 [V20,T101] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V20 tmp9 [V20,T100] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V21 tmp10 [V21,T55] ( 3, 599.94) ref -> rdi class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
;* V22 tmp11 [V22 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
-; V23 tmp12 [V23,T94] ( 3, 0 ) long -> rsi "spilling helperCall"
+; V23 tmp12 [V23,T93] ( 3, 0 ) long -> rsi "spilling helperCall"
;* V24 tmp13 [V24 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V25 tmp14 [V25 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V26 tmp15 [V26,T95] ( 3, 0 ) long -> rsi "spilling helperCall"
+; V26 tmp15 [V26,T94] ( 3, 0 ) long -> rsi "spilling helperCall"
; V27 tmp16 [V27,T67] ( 4, 199.98) ref -> r14 "guarded devirt return temp"
; V28 tmp17 [V28,T54] ( 5, 599.94) ref -> rdi "guarded devirt arg temp"
; V29 tmp18 [V29,T59] ( 3, 399.96) int -> rsi "guarded devirt arg temp"
@@ -48,7 +48,7 @@
;* V35 tmp24 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V36 tmp25 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <<unknown class>>
;* V37 tmp26 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-;* V38 tmp27 [V38,T102] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V38 tmp27 [V38,T101] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V40 tmp29 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V41 tmp30 [V41 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
@@ -109,7 +109,7 @@
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V97 tmp86 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V98 tmp87 [V98 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V99 tmp88 [V99,T103] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V99 tmp88 [V99,T102] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V100 tmp89 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V101 tmp90 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V102 tmp91 [V102,T72] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -150,7 +150,7 @@
;* V137 tmp126 [V137 ] ( 0, 0 ) ref -> zero-ref single-def
;* V138 tmp127 [V138 ] ( 0, 0 ) ref -> zero-ref single-def
;* V139 tmp128 [V139,T70] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V140 tmp129 [V140,T89] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V140 tmp129 [V140,T88] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V141 tmp130 [V141 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V142 tmp131 [V142 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V143 tmp132 [V143 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -229,7 +229,7 @@
;* V216 tmp205 [V216 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V217 tmp206 [V217 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V218 tmp207 [V218 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V219 tmp208 [V219,T104] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V219 tmp208 [V219,T103] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V220 tmp209 [V220 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V221 tmp210 [V221 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V222 tmp211 [V222,T73] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -270,7 +270,7 @@
;* V257 tmp246 [V257 ] ( 0, 0 ) ref -> zero-ref single-def
;* V258 tmp247 [V258 ] ( 0, 0 ) ref -> zero-ref single-def
;* V259 tmp248 [V259,T71] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V260 tmp249 [V260,T90] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V260 tmp249 [V260,T89] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V261 tmp250 [V261 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V262 tmp251 [V262 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V263 tmp252 [V263 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -377,7 +377,7 @@
;* V364 tmp353 [V364 ] ( 0, 0 ) ref -> zero-ref
; V365 tmp354 [V365,T49] ( 2, 799.12) ref -> rax
; V366 tmp355 [V366,T01] ( 9,25971.54) int -> [rbp-0x3C] "Inline stloc first use temp"
-; V367 tmp356 [V367,T91] ( 3, 0 ) ref -> r12 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V367 tmp356 [V367,T90] ( 3, 0 ) ref -> r12 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V368 tmp357 [V368 ] ( 0, 0 ) ref -> zero-ref
; V369 tmp358 [V369,T50] ( 2, 799.12) ref -> rsi
;* V370 tmp359 [V370 ] ( 0, 0 ) ref -> zero-ref
@@ -397,11 +397,11 @@
;* V384 tmp373 [V384 ] ( 0, 0 ) ref -> zero-ref
; V385 tmp374 [V385,T52] ( 2, 799.12) ref -> rax
; V386 tmp375 [V386,T02] ( 9,25971.54) int -> [rbp-0x40] "Inline stloc first use temp"
-; V387 tmp376 [V387,T92] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V387 tmp376 [V387,T91] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V388 tmp377 [V388 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V389 tmp378 [V389 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V390 tmp379 [V390 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V391 tmp380 [V391,T93] ( 3, 0 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V391 tmp380 [V391,T92] ( 3, 0 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V392 tmp381 [V392 ] ( 0, 0 ) ref -> zero-ref single-def "field V33._source (fldOffset=0x0)" P-INDEP
;* V393 tmp382 [V393 ] ( 0, 0 ) ref -> zero-ref single-def "field V35._source (fldOffset=0x0)" P-INDEP
;* V394 tmp383 [V394 ] ( 0, 0 ) ref -> zero-ref single-def "field V37._source (fldOffset=0x0)" P-INDEP
@@ -436,7 +436,7 @@
; V423 tmp412 [V423,T42] ( 3, 1198.69) ref -> r14 "field V315._source (fldOffset=0x0)" P-INDEP
;* V424 tmp413 [V424 ] ( 0, 0 ) ref -> zero-ref "field V317._source (fldOffset=0x0)" P-INDEP
;* V425 tmp414 [V425,T74] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V426 tmp415 [V426,T105] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V426 tmp415 [V426,T104] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V427 tmp416 [V427 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V428 tmp417 [V428 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V429 tmp418 [V429 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
@@ -444,12 +444,12 @@
;* V431 tmp420 [V431 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V432 tmp421 [V432 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V433 tmp422 [V433,T75] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V434 tmp423 [V434,T106] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V434 tmp423 [V434,T105] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V435 tmp424 [V435 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V436 tmp425 [V436 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V437 tmp426 [V437,T109] ( 2, 0 ) long -> rdi "argument with side effect"
+; V437 tmp426 [V437,T108] ( 2, 0 ) long -> rdi "argument with side effect"
; V438 tmp427 [V438,T07] ( 2,12785.99) ref -> rdi "argument with side effect"
-; V439 tmp428 [V439,T107] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V439 tmp428 [V439,T106] ( 2, 0 ) ref -> rsi "argument with side effect"
;* V440 tmp429 [V440 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V441 tmp430 [V441 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V442 tmp431 [V442,T23] ( 3, 2397.37) ref -> rdx "arr expr"
@@ -460,7 +460,7 @@
; V447 tmp436 [V447,T57] ( 3, 599.34) ref -> rsi "arr expr"
; V448 tmp437 [V448,T03] ( 3,19178.98) ref -> rdi "arr expr"
; V449 tmp438 [V449,T08] ( 2,12785.99) ref -> rdi "argument with side effect"
-; V450 tmp439 [V450,T108] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V450 tmp439 [V450,T107] ( 2, 0 ) ref -> rsi "argument with side effect"
;* V451 tmp440 [V451 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V452 tmp441 [V452 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V453 PSPSym [V453,T86] ( 1, 1 ) long -> [rbp-0xA0] do-not-enreg[V] "PSPSym"
@@ -469,12 +469,11 @@
; V456 cse2 [V456,T33] ( 4, 1598.25) int -> [rbp-0x48] spill-single-def "CSE - conservative"
; V457 cse3 [V457,T43] ( 3, 1198.69) ref -> rdi "CSE - conservative"
; V458 cse4 [V458,T10] ( 9,11986.86) int -> [rbp-0x4C] spill-single-def "CSE - moderate"
-; V459 cse5 [V459,T88] ( 18, 0 ) ref -> rsi multi-def "CSE - conservative"
-; V460 rat0 [V460,T96] ( 3, 0 ) long -> rdi "runtime lookup"
-; V461 rat1 [V461,T97] ( 3, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
-; V462 rat2 [V462,T98] ( 3, 0 ) long -> rsi "fgMakeTemp is creating a new local variable"
-; V463 rat3 [V463,T99] ( 3, 0 ) long -> rdi "spilling expr"
-; V464 rat4 [V464,T100] ( 3, 0 ) long -> rsi "fgMakeTemp is creating a new local variable"
+; V459 rat0 [V459,T95] ( 3, 0 ) long -> rdi "runtime lookup"
+; V460 rat1 [V460,T96] ( 3, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+; V461 rat2 [V461,T97] ( 3, 0 ) long -> rsi "fgMakeTemp is creating a new local variable"
+; V462 rat3 [V462,T98] ( 3, 0 ) long -> rdi "spilling expr"
+; V463 rat4 [V463,T99] ( 3, 0 ) long -> rsi "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 120
@@ -1564,16 +1563,16 @@ G_M48189_IG73: ; bbWeight=0, gcVars=00000000000000000400000000000800 {V00
; gcrRegs +[r12-r15]
; GC ptr vars +{V327}
mov dword ptr [rbp-0x38], edi
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov edi, dword ptr [rbp-0x38]
jmp G_M48189_IG43
- ;; size=30 bbWeight=0 PerfScore 0.00
+ ;; size=37 bbWeight=0 PerfScore 0.00
G_M48189_IG74: ; bbWeight=0, gcVars=00000000000000000400000000000000 {V00}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r14]
; GC ptr vars -{V327}
@@ -1595,15 +1594,15 @@ G_M48189_IG75: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=11 bbWeight=0 PerfScore 0.00
G_M48189_IG76: ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r14-r15]
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
jmp G_M48189_IG27
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M48189_IG77: ; bbWeight=0, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r14] +[r12]
mov rdi, 0xD1FFAB1E
@@ -1822,7 +1821,7 @@ G_M48189_IG96: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3204, prolog size 97, PerfScore 344022.06, instruction count 696, allocated bytes for code 3204 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 3218, prolog size 97, PerfScore 344022.06, instruction count 696, allocated bytes for code 3218 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
+14 (+0.46%) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -27,7 +27,7 @@
;* V14 tmp4 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
;* V15 tmp5 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V17 tmp7 [V17,T92] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V17 tmp7 [V17,T91] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V18 tmp8 [V18,T57] ( 3, 599.94) ref -> rax class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[ubyte[]]>
;* V19 tmp9 [V19 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V20 tmp10 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -132,7 +132,7 @@
;* V119 tmp109 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V120 tmp110 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <<unknown class>>
;* V121 tmp111 [V121 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-;* V122 tmp112 [V122,T99] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V122 tmp112 [V122,T98] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
;* V123 tmp113 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V124 tmp114 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V125 tmp115 [V125 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
@@ -192,7 +192,7 @@
;* V179 tmp169 [V179 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V180 tmp170 [V180 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V181 tmp171 [V181 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V182 tmp172 [V182,T93] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V182 tmp172 [V182,T92] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V183 tmp173 [V183 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V184 tmp174 [V184 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V185 tmp175 [V185,T75] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -233,7 +233,7 @@
;* V220 tmp210 [V220 ] ( 0, 0 ) ref -> zero-ref single-def
;* V221 tmp211 [V221 ] ( 0, 0 ) ref -> zero-ref single-def
;* V222 tmp212 [V222,T74] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V223 tmp213 [V223,T88] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V223 tmp213 [V223,T87] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V224 tmp214 [V224 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V225 tmp215 [V225 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V226 tmp216 [V226 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -384,7 +384,7 @@
;* V371 tmp361 [V371 ] ( 0, 0 ) ref -> zero-ref
; V372 tmp362 [V372,T51] ( 2, 799.12) ref -> rax
; V373 tmp363 [V373,T03] ( 9, 25971.54) int -> [rbp-0x38] "Inline stloc first use temp"
-; V374 tmp364 [V374,T89] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V374 tmp364 [V374,T88] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V375 tmp365 [V375 ] ( 0, 0 ) ref -> zero-ref
; V376 tmp366 [V376,T52] ( 2, 799.12) ref -> rsi
;* V377 tmp367 [V377 ] ( 0, 0 ) ref -> zero-ref
@@ -404,14 +404,14 @@
;* V391 tmp381 [V391 ] ( 0, 0 ) ref -> zero-ref
; V392 tmp382 [V392,T54] ( 2, 799.12) ref -> rax
; V393 tmp383 [V393,T04] ( 9, 25971.54) int -> r12 "Inline stloc first use temp"
-; V394 tmp384 [V394,T90] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V394 tmp384 [V394,T89] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V395 tmp385 [V395 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V396 tmp386 [V396 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V397 tmp387 [V397 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V398 tmp388 [V398 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V399 tmp389 [V399 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V400 tmp390 [V400 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V401 tmp391 [V401,T91] ( 3, 0 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V401 tmp391 [V401,T90] ( 3, 0 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V402 tmp392 [V402 ] ( 0, 0 ) ref -> zero-ref single-def "field V38._source (fldOffset=0x0)" P-INDEP
;* V403 tmp393 [V403 ] ( 0, 0 ) ref -> zero-ref "field V45._source (fldOffset=0x0)" P-INDEP
;* V404 tmp394 [V404 ] ( 0, 0 ) ref -> zero-ref single-def "field V54._source (fldOffset=0x0)" P-INDEP
@@ -460,11 +460,11 @@
; V447 tmp437 [V447,T44] ( 3, 1198.69) ref -> r15 "field V322._source (fldOffset=0x0)" P-INDEP
;* V448 tmp438 [V448 ] ( 0, 0 ) ref -> zero-ref "field V324._source (fldOffset=0x0)" P-INDEP
;* V449 tmp439 [V449,T76] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V450 tmp440 [V450,T94] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V450 tmp440 [V450,T93] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V451 tmp441 [V451 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V452 tmp442 [V452 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V453 tmp443 [V453,T09] ( 2, 12785.99) ref -> rdi "argument with side effect"
-; V454 tmp444 [V454,T95] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V454 tmp444 [V454,T94] ( 2, 0 ) ref -> rsi "argument with side effect"
;* V455 tmp445 [V455 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V456 tmp446 [V456 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V457 tmp447 [V457,T25] ( 3, 2397.37) ref -> rcx "arr expr"
@@ -475,11 +475,11 @@
; V462 tmp452 [V462,T59] ( 3, 599.34) ref -> rsi "arr expr"
; V463 tmp453 [V463,T05] ( 3, 19178.99) ref -> rdi "arr expr"
; V464 tmp454 [V464,T10] ( 2, 12785.99) ref -> rdi "argument with side effect"
-; V465 tmp455 [V465,T96] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V465 tmp455 [V465,T95] ( 2, 0 ) ref -> rsi "argument with side effect"
;* V466 tmp456 [V466 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V467 tmp457 [V467 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V468 tmp458 [V468,T97] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V469 tmp459 [V469,T98] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V468 tmp458 [V468,T96] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V469 tmp459 [V469,T97] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V470 PSPSym [V470,T85] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
; V471 cse0 [V471,T20] ( 5, 4794.75) int -> [rbp-0x3C] spill-single-def "CSE - moderate"
; V472 cse1 [V472,T22] ( 3, 3995.62) int -> r15 "CSE - moderate"
@@ -487,7 +487,6 @@
; V474 cse3 [V474,T45] ( 3, 1198.69) ref -> rdi "CSE - conservative"
; V475 cse4 [V475,T01] ( 3,870568359.17) int -> rdx "CSE - aggressive"
; V476 cse5 [V476,T12] ( 9, 11986.87) int -> [rbp-0x40] spill-single-def "CSE - moderate"
-; V477 cse6 [V477,T87] ( 18, 0 ) ref -> rsi multi-def "CSE - conservative"
;
; Lcl frame size = 72
@@ -1493,15 +1492,15 @@ G_M6180_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=7 bbWeight=0 PerfScore 0.00
G_M6180_IG69: ; bbWeight=0, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx r12-r13 r15]
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
jmp G_M6180_IG42
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M6180_IG70: ; bbWeight=0, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r12 r15] +[r14]
mov rdi, 0xD1FFAB1E
@@ -1522,15 +1521,15 @@ G_M6180_IG71: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=11 bbWeight=0 PerfScore 0.00
G_M6180_IG72: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx r15]
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
jmp G_M6180_IG26
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M6180_IG73: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx r15]
xor edi, edi
@@ -1754,7 +1753,7 @@ G_M6180_IG91: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3011, prolog size 81, PerfScore 1306174534.94, instruction count 652, allocated bytes for code 3011 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
+Total bytes of code 3025, prolog size 81, PerfScore 1306174534.94, instruction count 652, allocated bytes for code 3025 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
+21 (+1.24%) : 141386.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet
1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String@@ -19,17 +19,17 @@
; V07 loc2 [V07,T18] ( 5, 3 ) ref -> rax class-hnd <System.Buffers.SearchValues`1[System.String]>
; V08 loc3 [V08,T19] ( 3, 2.96) int -> rdx
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T48] ( 4, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V11 tmp2 [V11,T49] ( 4, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V10 tmp1 [V10,T47] ( 4, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V11 tmp2 [V11,T48] ( 4, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-; V14 tmp5 [V14,T63] ( 2, 0 ) ref -> r15
-; V15 tmp6 [V15,T50] ( 4, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V14 tmp5 [V14,T62] ( 2, 0 ) ref -> r15
+; V15 tmp6 [V15,T49] ( 4, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V16 tmp7 [V16,T28] ( 6, 1.17) ref -> rax class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V18 tmp9 [V18,T53] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V19 tmp10 [V19,T54] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V20 tmp11 [V20,T55] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V18 tmp9 [V18,T52] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V19 tmp10 [V19,T53] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V20 tmp11 [V20,T54] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V21 tmp12 [V21,T04] ( 10, 11.66) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V23 tmp14 [V23,T08] ( 16, 6.51) int -> [rbp-0x2C] ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
;* V72 tmp63 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp66 [V75,T51] ( 4, 0 ) int -> r13 "Inlining Arg"
-; V76 tmp67 [V76,T56] ( 3, 0 ) byref -> r12 single-def "Inlining Arg"
-; V77 tmp68 [V77,T64] ( 2, 0 ) int -> rax "Inline return value spill temp"
+; V75 tmp66 [V75,T50] ( 4, 0 ) int -> r13 "Inlining Arg"
+; V76 tmp67 [V76,T55] ( 3, 0 ) byref -> r12 single-def "Inlining Arg"
+; V77 tmp68 [V77,T63] ( 2, 0 ) int -> rax "Inline return value spill temp"
; V78 tmp69 [V78 ] ( 2, 0 ) ushort -> [rbp-0x34] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V79 tmp70 [V79 ] ( 2, 0 ) ushort -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V80 tmp71 [V80 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -110,10 +110,10 @@
;* V98 tmp89 [V98 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
;* V99 tmp90 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V100 tmp91 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V101 tmp92 [V101,T44] ( 6, 0 ) ushort -> [rbp-0x3C] spill-single-def "Inlining Arg"
-; V102 tmp93 [V102,T46] ( 5, 0 ) ushort -> [rbp-0x40] spill-single-def "Inlining Arg"
+; V101 tmp92 [V101,T43] ( 6, 0 ) ushort -> [rbp-0x3C] spill-single-def "Inlining Arg"
+; V102 tmp93 [V102,T45] ( 5, 0 ) ushort -> [rbp-0x40] spill-single-def "Inlining Arg"
;* V103 tmp94 [V103 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V104 tmp95 [V104,T61] ( 3, 0 ) int -> rax "Inline return value spill temp"
+; V104 tmp95 [V104,T60] ( 3, 0 ) int -> rax "Inline return value spill temp"
;* V105 tmp96 [V105 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V106 tmp97 [V106 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V107 tmp98 [V107 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
@@ -142,17 +142,17 @@
;* V130 tmp121 [V130 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V131 tmp122 [V131,T37] ( 6, 0.75) ref -> rax class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V132 tmp123 [V132 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V133 tmp124 [V133,T57] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V134 tmp125 [V134,T58] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V135 tmp126 [V135,T59] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V133 tmp124 [V133,T56] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V134 tmp125 [V134,T57] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V135 tmp126 [V135,T58] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V136 tmp127 [V136,T26] ( 3, 2.26) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V137 tmp128 [V137 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V138 tmp129 [V138 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V139 tmp130 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V140 tmp131 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V141 tmp132 [V141,T52] ( 4, 0 ) int -> r13 "Inlining Arg"
-; V142 tmp133 [V142,T60] ( 3, 0 ) byref -> r12 single-def "Inlining Arg"
-; V143 tmp134 [V143,T65] ( 2, 0 ) int -> rax "Inline return value spill temp"
+; V141 tmp132 [V141,T51] ( 4, 0 ) int -> r13 "Inlining Arg"
+; V142 tmp133 [V142,T59] ( 3, 0 ) byref -> r12 single-def "Inlining Arg"
+; V143 tmp134 [V143,T64] ( 2, 0 ) int -> rax "Inline return value spill temp"
; V144 tmp135 [V144 ] ( 2, 0 ) ushort -> [rbp-0x44] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V145 tmp136 [V145 ] ( 2, 0 ) ushort -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V146 tmp137 [V146 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -176,10 +176,10 @@
;* V164 tmp155 [V164 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
;* V165 tmp156 [V165 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V167 tmp158 [V167,T45] ( 6, 0 ) ushort -> [rbp-0x4C] spill-single-def "Inlining Arg"
-; V168 tmp159 [V168,T47] ( 5, 0 ) ushort -> [rbp-0x50] spill-single-def "Inlining Arg"
+; V167 tmp158 [V167,T44] ( 6, 0 ) ushort -> [rbp-0x4C] spill-single-def "Inlining Arg"
+; V168 tmp159 [V168,T46] ( 5, 0 ) ushort -> [rbp-0x50] spill-single-def "Inlining Arg"
;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V170 tmp161 [V170,T62] ( 3, 0 ) int -> rax "Inline return value spill temp"
+; V170 tmp161 [V170,T61] ( 3, 0 ) int -> rax "Inline return value spill temp"
;* V171 tmp162 [V171 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V172 tmp163 [V172 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V173 tmp164 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
@@ -276,7 +276,6 @@
;* V264 tmp255 [V264 ] ( 0, 0 ) byref -> zero-ref "field V196._reference (fldOffset=0x0)" P-INDEP
;* V265 tmp256 [V265 ] ( 0, 0 ) int -> zero-ref "field V196._length (fldOffset=0x8)" P-INDEP
; V266 cse0 [V266,T09] ( 13, 6.49) int -> r13 "CSE - aggressive"
-; V267 cse1 [V267,T43] ( 9, 0 ) ref -> rsi multi-def "CSE - conservative"
;
; Lcl frame size = 56
@@ -515,16 +514,16 @@ G_M46798_IG34: ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
G_M46798_IG35: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x30], eax
mov dword ptr [rbp-0x2C], edi
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov eax, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x2C]
- ;; size=31 bbWeight=0 PerfScore 0.00
+ ;; size=38 bbWeight=0 PerfScore 0.00
G_M46798_IG36: ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
cmp edi, eax
jne SHORT G_M46798_IG38
@@ -532,16 +531,16 @@ G_M46798_IG36: ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
G_M46798_IG37: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov dword ptr [rbp-0x30], eax
mov dword ptr [rbp-0x2C], edi
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov eax, dword ptr [rbp-0x30]
mov edi, dword ptr [rbp-0x2C]
- ;; size=31 bbWeight=0 PerfScore 0.00
+ ;; size=38 bbWeight=0 PerfScore 0.00
G_M46798_IG38: ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
test eax, eax
jle SHORT G_M46798_IG41
@@ -890,15 +889,15 @@ G_M46798_IG60: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
;; size=5 bbWeight=0 PerfScore 0.00
G_M46798_IG61: ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx r12 r15]
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
jmp G_M46798_IG44
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M46798_IG62: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r12]
mov rdi, 0xD1FFAB1E ; System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]
@@ -1055,7 +1054,7 @@ RWD00 dd 7F7FFFFFh ; 3.40282e+38
RWD04 dd 3FC00000h ; 1.5
-; Total bytes of code 1696, prolog size 31, PerfScore 169.18, instruction count 445, allocated bytes for code 1696 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1717, prolog size 31, PerfScore 169.18, instruction count 445, allocated bytes for code 1717 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
; ============================================================
Unwind Info:
coreclr_tests.run.linux.x64.checked.mch
-12 (-2.20%) : 420678.dasm - System.Resources.ResourceFallbackManager+
@@ -23,20 +23,20 @@
; V11 tmp8 [V11,T09] ( 4, 3 ) ref -> r15
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref
-; V14 tmp11 [V14,T17] ( 5, 0 ) ref -> r15
+; V14 tmp11 [V14,T16] ( 6, 0 ) ref -> r15
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V17 tmp14 [V17,T22] ( 2, 0 ) ref -> r15 class-hnd exact "dup spill" <System.String>
-; V18 tmp15 [V18,T19] ( 4, 0 ) ref -> r15
+; V17 tmp14 [V17,T21] ( 2, 0 ) ref -> rsi class-hnd exact "dup spill" <System.String>
+; V18 tmp15 [V18,T18] ( 5, 0 ) ref -> rsi
; V19 tmp16 [V19,T06] ( 2, 4 ) ref -> rsi class-hnd exact "dup spill" <System.String>
; V20 tmp17 [V20,T10] ( 4, 3 ) ref -> rsi
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref
-; V23 tmp20 [V23,T18] ( 5, 0 ) ref -> r14
+; V23 tmp20 [V23,T17] ( 6, 0 ) ref -> r14
;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V25 tmp22 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V26 tmp23 [V26,T23] ( 2, 0 ) ref -> r14 class-hnd exact "dup spill" <System.String>
-; V27 tmp24 [V27,T20] ( 4, 0 ) ref -> r14
+; V26 tmp23 [V26,T22] ( 2, 0 ) ref -> rsi class-hnd exact "dup spill" <System.String>
+; V27 tmp24 [V27,T19] ( 5, 0 ) ref -> rsi
; V28 tmp25 [V28,T14] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
; V29 tmp26 [V29,T07] ( 2, 4 ) byref -> rdi "impAppendStmt"
;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -44,11 +44,10 @@
;* V32 tmp29 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp30 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp31 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V35 tmp32 [V35,T21] ( 3, 0 ) ref -> rdi "argument with side effect"
+; V35 tmp32 [V35,T20] ( 3, 0 ) ref -> rdi "argument with side effect"
; V36 cse0 [V36,T11] ( 3, 3 ) ref -> r14 "CSE - moderate"
; V37 cse1 [V37,T15] ( 3, 2.00) int -> rdx "CSE - moderate"
; V38 cse2 [V38,T13] ( 3, 3 ) long -> r13 "CSE - moderate"
-; V39 cse3 [V39,T16] ( 8, 0 ) ref -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 0
@@ -67,7 +66,7 @@ G_M61925_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov r15, gword ptr [rbx+0x10]
; gcrRegs +[r15]
cmp edi, 3
- ja G_M61925_IG27
+ ja G_M61925_IG23
lea rsi, [reloc @RWD00]
mov esi, dword ptr [rsi+4*rdi]
lea rax, G_M61925_IG02
@@ -89,7 +88,7 @@ G_M61925_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
mov r14, gword ptr [r15+0x10]
; gcrRegs +[r14]
test r14, r14
- je G_M61925_IG21
+ je G_M61925_IG17
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
mov r13, 0xD1FFAB1E ; System.Globalization.CultureInfo
@@ -107,48 +106,43 @@ G_M61925_IG05: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
mov rdi, gword ptr [r15+0x10]
; gcrRegs +[rdi]
mov r15, r14
- jmp SHORT G_M61925_IG11
+ jmp SHORT G_M61925_IG09
;; size=22 bbWeight=0 PerfScore 0.00
G_M61925_IG06: ; bbWeight=1, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax r15]
mov r15, gword ptr [rdi+0x48]
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M61925_IG10
+ jne SHORT G_M61925_IG08
;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG07: ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG07: ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov rsi, gword ptr [rdi+0x30]
; gcrRegs +[rsi]
- mov r15, gword ptr [rsi+0x18]
+ mov rsi, gword ptr [rsi+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rsi, rsi
+ cmove rsi, rax
+ mov r15, rsi
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M61925_IG08
- mov r15, 0xD1FFAB1E
- ;; size=23 bbWeight=0 PerfScore 0.00
-G_M61925_IG08: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi]
- test r15, r15
- jne SHORT G_M61925_IG09
- mov r15, 0xD1FFAB1E
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG09: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+ cmove r15, rax
lea rdi, bword ptr [rdi+0x48]
; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r15
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61925_IG10: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=47 bbWeight=0 PerfScore 0.00
+G_M61925_IG08: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, r14
; gcrRegs +[rdi]
cmp qword ptr [rdi], r13
- je SHORT G_M61925_IG14
+ je SHORT G_M61925_IG12
;; size=8 bbWeight=1 PerfScore 4.25
-G_M61925_IG11: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG09: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
@@ -157,60 +151,51 @@ G_M61925_IG11: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
mov rsi, rax
; gcrRegs +[rsi]
;; size=13 bbWeight=0 PerfScore 0.00
-G_M61925_IG12: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG10: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r15, rsi
- je G_M61925_IG24
+ je G_M61925_IG20
;; size=9 bbWeight=1 PerfScore 1.25
-G_M61925_IG13: ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11: ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
test r15, r15
- je SHORT G_M61925_IG21
- jmp SHORT G_M61925_IG20
+ je SHORT G_M61925_IG17
+ jmp SHORT G_M61925_IG16
;; size=7 bbWeight=0.50 PerfScore 1.63
-G_M61925_IG14: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG12: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rdi]
mov rsi, gword ptr [rdi+0x48]
; gcrRegs +[rsi]
test rsi, rsi
- jne SHORT G_M61925_IG18
+ jne SHORT G_M61925_IG14
;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG15: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG13: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rsi, gword ptr [rdi+0x30]
; gcrRegs +[rsi]
- mov r14, gword ptr [rsi+0x18]
+ mov rsi, gword ptr [rsi+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rsi, rsi
+ cmove rsi, rax
+ mov r14, rsi
; gcrRegs +[r14]
test r14, r14
- jne SHORT G_M61925_IG16
- mov rsi, 0xD1FFAB1E
- mov r14, rsi
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M61925_IG16: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi]
- test r14, r14
- jne SHORT G_M61925_IG17
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov r14, rsi
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M61925_IG17: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi]
+ cmove r14, rax
lea rdi, bword ptr [rdi+0x48]
; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r14
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rsi, r14
; gcrRegs +[rsi]
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG18: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=50 bbWeight=0 PerfScore 0.00
+G_M61925_IG14: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14]
- jmp SHORT G_M61925_IG12
+ jmp SHORT G_M61925_IG10
;; size=2 bbWeight=1 PerfScore 2.00
-G_M61925_IG19: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG15: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
lea rdi, bword ptr [r15+0x0C]
; byrRegs +[rdi]
add edx, edx
@@ -221,18 +206,18 @@ G_M61925_IG19: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000
; gcrRegs -[r15]
; byrRegs -[rsi rdi]
test eax, eax
- je SHORT G_M61925_IG21
- jmp SHORT G_M61925_IG24
+ je SHORT G_M61925_IG17
+ jmp SHORT G_M61925_IG20
;; size=22 bbWeight=1 PerfScore 7.25
-G_M61925_IG20: ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG16: ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rsi r15]
test rsi, rsi
- je SHORT G_M61925_IG21
+ je SHORT G_M61925_IG17
mov edx, dword ptr [r15+0x08]
cmp edx, dword ptr [rsi+0x08]
- je SHORT G_M61925_IG19
+ je SHORT G_M61925_IG15
;; size=14 bbWeight=0.50 PerfScore 3.64
-G_M61925_IG21: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M61925_IG17: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi r15]
mov rsi, gword ptr [rbx+0x18]
; gcrRegs +[rsi]
@@ -243,11 +228,11 @@ G_M61925_IG21: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; byrRegs -[rdi]
mov dword ptr [rbx+0x20], 2
;; size=20 bbWeight=0.67 PerfScore 3.00
-G_M61925_IG22: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M61925_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov eax, 1
;; size=5 bbWeight=1 PerfScore 0.25
-G_M61925_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M61925_IG19: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r13
pop r14
@@ -255,7 +240,7 @@ G_M61925_IG23: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.50
-G_M61925_IG24: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M61925_IG20: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx]
call [System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo]
...
-12 (-2.20%) : 414212.dasm - System.Resources.ResourceFallbackManager+
@@ -23,20 +23,20 @@
; V11 tmp8 [V11,T09] ( 4, 3 ) ref -> r15
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref
-; V14 tmp11 [V14,T17] ( 5, 0 ) ref -> r15
+; V14 tmp11 [V14,T16] ( 6, 0 ) ref -> r15
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V17 tmp14 [V17,T22] ( 2, 0 ) ref -> r15 class-hnd exact "dup spill" <System.String>
-; V18 tmp15 [V18,T19] ( 4, 0 ) ref -> r15
+; V17 tmp14 [V17,T21] ( 2, 0 ) ref -> rsi class-hnd exact "dup spill" <System.String>
+; V18 tmp15 [V18,T18] ( 5, 0 ) ref -> rsi
; V19 tmp16 [V19,T06] ( 2, 4 ) ref -> rsi class-hnd exact "dup spill" <System.String>
; V20 tmp17 [V20,T10] ( 4, 3 ) ref -> rsi
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref
-; V23 tmp20 [V23,T18] ( 5, 0 ) ref -> r14
+; V23 tmp20 [V23,T17] ( 6, 0 ) ref -> r14
;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V25 tmp22 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V26 tmp23 [V26,T23] ( 2, 0 ) ref -> r14 class-hnd exact "dup spill" <System.String>
-; V27 tmp24 [V27,T20] ( 4, 0 ) ref -> r14
+; V26 tmp23 [V26,T22] ( 2, 0 ) ref -> rsi class-hnd exact "dup spill" <System.String>
+; V27 tmp24 [V27,T19] ( 5, 0 ) ref -> rsi
; V28 tmp25 [V28,T14] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
; V29 tmp26 [V29,T07] ( 2, 4 ) byref -> rdi "impAppendStmt"
;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -44,11 +44,10 @@
;* V32 tmp29 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp30 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp31 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V35 tmp32 [V35,T21] ( 3, 0 ) ref -> rdi "argument with side effect"
+; V35 tmp32 [V35,T20] ( 3, 0 ) ref -> rdi "argument with side effect"
; V36 cse0 [V36,T11] ( 3, 3 ) ref -> r14 "CSE - moderate"
; V37 cse1 [V37,T15] ( 3, 2.40) int -> rdx "CSE - moderate"
; V38 cse2 [V38,T13] ( 3, 3 ) long -> r13 "CSE - moderate"
-; V39 cse3 [V39,T16] ( 8, 0 ) ref -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 0
@@ -67,7 +66,7 @@ G_M61925_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov r15, gword ptr [rbx+0x10]
; gcrRegs +[r15]
cmp edi, 3
- ja G_M61925_IG28
+ ja G_M61925_IG24
lea rsi, [reloc @RWD00]
mov esi, dword ptr [rsi+4*rdi]
lea rax, G_M61925_IG02
@@ -89,7 +88,7 @@ G_M61925_IG04: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
mov r14, gword ptr [r15+0x10]
; gcrRegs +[r14]
test r14, r14
- je G_M61925_IG22
+ je G_M61925_IG18
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
mov r13, 0xD1FFAB1E ; System.Globalization.CultureInfo
@@ -107,48 +106,43 @@ G_M61925_IG05: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
mov rdi, gword ptr [r15+0x10]
; gcrRegs +[rdi]
mov r15, r14
- jmp SHORT G_M61925_IG11
+ jmp SHORT G_M61925_IG09
;; size=22 bbWeight=0 PerfScore 0.00
G_M61925_IG06: ; bbWeight=1, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax r15]
mov r15, gword ptr [rdi+0x48]
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M61925_IG10
+ jne SHORT G_M61925_IG08
;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG07: ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG07: ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov rsi, gword ptr [rdi+0x30]
; gcrRegs +[rsi]
- mov r15, gword ptr [rsi+0x18]
+ mov rsi, gword ptr [rsi+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rsi, rsi
+ cmove rsi, rax
+ mov r15, rsi
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M61925_IG08
- mov r15, 0xD1FFAB1E
- ;; size=23 bbWeight=0 PerfScore 0.00
-G_M61925_IG08: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi]
- test r15, r15
- jne SHORT G_M61925_IG09
- mov r15, 0xD1FFAB1E
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG09: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+ cmove r15, rax
lea rdi, bword ptr [rdi+0x48]
; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r15
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61925_IG10: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=47 bbWeight=0 PerfScore 0.00
+G_M61925_IG08: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, r14
; gcrRegs +[rdi]
cmp qword ptr [rdi], r13
- je SHORT G_M61925_IG15
+ je SHORT G_M61925_IG13
;; size=8 bbWeight=1 PerfScore 4.25
-G_M61925_IG11: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG09: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
@@ -157,62 +151,53 @@ G_M61925_IG11: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
mov rsi, rax
; gcrRegs +[rsi]
;; size=13 bbWeight=0 PerfScore 0.00
-G_M61925_IG12: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG10: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r15, rsi
- je G_M61925_IG25
+ je G_M61925_IG21
;; size=9 bbWeight=1 PerfScore 1.25
-G_M61925_IG13: ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11: ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
test r15, r15
- je SHORT G_M61925_IG22
+ je SHORT G_M61925_IG18
;; size=5 bbWeight=0.70 PerfScore 0.87
-G_M61925_IG14: ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M61925_IG21
+G_M61925_IG12: ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M61925_IG17
;; size=2 bbWeight=0.70 PerfScore 1.40
-G_M61925_IG15: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG13: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rdi]
mov rsi, gword ptr [rdi+0x48]
; gcrRegs +[rsi]
test rsi, rsi
- jne SHORT G_M61925_IG19
+ jne SHORT G_M61925_IG15
;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG16: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG14: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rsi, gword ptr [rdi+0x30]
; gcrRegs +[rsi]
- mov r14, gword ptr [rsi+0x18]
+ mov rsi, gword ptr [rsi+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rsi, rsi
+ cmove rsi, rax
+ mov r14, rsi
; gcrRegs +[r14]
test r14, r14
- jne SHORT G_M61925_IG17
- mov rsi, 0xD1FFAB1E
- mov r14, rsi
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M61925_IG17: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi]
- test r14, r14
- jne SHORT G_M61925_IG18
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov r14, rsi
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M61925_IG18: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi]
+ cmove r14, rax
lea rdi, bword ptr [rdi+0x48]
; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r14
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rsi, r14
; gcrRegs +[rsi]
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG19: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=50 bbWeight=0 PerfScore 0.00
+G_M61925_IG15: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14]
- jmp SHORT G_M61925_IG12
+ jmp SHORT G_M61925_IG10
;; size=2 bbWeight=1 PerfScore 2.00
-G_M61925_IG20: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG16: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
lea rdi, bword ptr [r15+0x0C]
; byrRegs +[rdi]
add edx, edx
@@ -223,18 +208,18 @@ G_M61925_IG20: ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000
; gcrRegs -[r15]
; byrRegs -[rsi rdi]
test eax, eax
- je SHORT G_M61925_IG22
- jmp SHORT G_M61925_IG25
+ je SHORT G_M61925_IG18
+ jmp SHORT G_M61925_IG21
;; size=22 bbWeight=1 PerfScore 7.25
-G_M61925_IG21: ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG17: ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rsi r15]
test rsi, rsi
- je SHORT G_M61925_IG22
+ je SHORT G_M61925_IG18
mov edx, dword ptr [r15+0x08]
cmp edx, dword ptr [rsi+0x08]
- je SHORT G_M61925_IG20
+ je SHORT G_M61925_IG16
;; size=14 bbWeight=0.70 PerfScore 5.06
-G_M61925_IG22: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M61925_IG18: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi r15]
mov rsi, gword ptr [rbx+0x18]
; gcrRegs +[rsi]
@@ -245,11 +230,11 @@ G_M61925_IG22: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; byrRegs -[rdi]
mov dword ptr [rbx+0x20], 2
;; size=20 bbWeight=0.67 PerfScore 3.00
-G_M61925_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M61925_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov eax, 1
;; size=5 bbWeight=1 PerfScore 0.25
-G_M61925_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M61925_IG20: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r13
pop r14
@@ -257,7 +242,7 @@ G_M61925_IG24: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 3.50
-G_M61925_IG25: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
...
-6 (-1.09%) : 257569.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
@@ -42,11 +42,11 @@
; V30 tmp28 [V30,T13] ( 4, 1.20) ref -> rax
;* V31 tmp29 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V32 tmp30 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
-; V33 tmp31 [V33,T21] ( 5, 0.39) ref -> r14
+; V33 tmp31 [V33,T21] ( 6, 0.59) ref -> r14
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V36 tmp34 [V36,T22] ( 2, 0.39) ref -> r14 class-hnd exact single-def "dup spill" <System.String>
-; V37 tmp35 [V37,T24] ( 4, 0.29) ref -> r14
+; V36 tmp34 [V36,T25] ( 2, 0.39) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
+; V37 tmp35 [V37,T22] ( 5, 0.49) ref -> rsi
;* V38 tmp36 [V38,T19] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V39 tmp37 [V39,T08] ( 3, 1.71) ref -> rax class-hnd "Inline return value spill temp" <System.String>
; V40 tmp38 [V40,T05] ( 8, 4.39) ref -> rdi class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
@@ -57,18 +57,17 @@
; V45 tmp43 [V45,T14] ( 4, 1.20) ref -> rax
;* V46 tmp44 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V47 tmp45 [V47 ] ( 0, 0 ) ref -> zero-ref single-def
-; V48 tmp46 [V48,T25] ( 4, 0.29) ref -> r14
+; V48 tmp46 [V48,T23] ( 5, 0.49) ref -> rsi
; V49 tmp47 [V49,T27] ( 3, 0.29) ref -> r14 class-hnd single-def "Inline stloc first use temp" <System.String>
;* V50 tmp48 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V51 tmp49 [V51,T23] ( 2, 0.39) ref -> r14 class-hnd exact single-def "dup spill" <System.String>
-; V52 tmp50 [V52,T26] ( 4, 0.29) ref -> r14
+; V51 tmp49 [V51,T26] ( 2, 0.39) ref -> rsi class-hnd exact single-def "dup spill" <System.String>
+; V52 tmp50 [V52,T24] ( 5, 0.49) ref -> rsi
;* V53 tmp51 [V53,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp52 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref "Single return block return value"
-; V56 tmp54 [V56,T30] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V57 tmp55 [V57,T31] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V58 cse0 [V58,T29] ( 8, 0 ) ref -> r14 multi-def "CSE - moderate"
-; V59 cse1 [V59,T10] ( 3, 1.52) int -> rdx "CSE - moderate"
+; V56 tmp54 [V56,T29] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V57 tmp55 [V57,T30] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V58 cse0 [V58,T10] ( 3, 1.52) int -> rdx "CSE - moderate"
;
; Lcl frame size = 8
@@ -140,10 +139,10 @@ G_M25213_IG09: ; bbWeight=0.68, gcVars=0000000000000000 {}, gcrefRegs=800
;; size=13 bbWeight=0.68 PerfScore 3.59
G_M25213_IG10: ; bbWeight=0.43, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
test rdi, rdi
- je G_M25213_IG51
+ je G_M25213_IG43
;; size=9 bbWeight=0.43 PerfScore 0.54
G_M25213_IG11: ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
- jmp G_M25213_IG42
+ jmp G_M25213_IG38
;; size=5 bbWeight=0.42 PerfScore 0.85
G_M25213_IG12: ; bbWeight=0.68, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
add rdi, 12
@@ -157,7 +156,7 @@ G_M25213_IG12: ; bbWeight=0.68, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
; byrRegs -[rsi rdi]
; gcr arg pop 0
test eax, eax
- je G_M25213_IG51
+ je G_M25213_IG43
;; size=24 bbWeight=0.68 PerfScore 3.42
G_M25213_IG13: ; bbWeight=0.68, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x30], 0
@@ -183,19 +182,19 @@ G_M25213_IG16: ; bbWeight=0.01, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
G_M25213_IG17: ; bbWeight=0.15, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
test rsi, rsi
- jne G_M25213_IG51
+ jne G_M25213_IG43
jmp SHORT G_M25213_IG19
;; size=11 bbWeight=0.15 PerfScore 0.47
G_M25213_IG18: ; bbWeight=0.16, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
test eax, eax
- je G_M25213_IG51
+ je G_M25213_IG43
;; size=8 bbWeight=0.16 PerfScore 0.20
G_M25213_IG19: ; bbWeight=0.63, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbx+0x20]
; gcrRegs +[rdi]
test rdi, rdi
- je G_M25213_IG37
+ je G_M25213_IG33
;; size=13 bbWeight=0.63 PerfScore 2.05
G_M25213_IG20: ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Globalization.CultureInfo
@@ -227,11 +226,11 @@ G_M25213_IG24: ; bbWeight=0.95, epilog, nogc, extend
G_M25213_IG25: ; bbWeight=0.63, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rax rbx r15]
test rax, rax
- je G_M25213_IG37
+ je G_M25213_IG33
;; size=9 bbWeight=0.63 PerfScore 0.79
G_M25213_IG26: ; bbWeight=0.45, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rax+0x08], 0
- je SHORT G_M25213_IG37
+ je SHORT G_M25213_IG33
;; size=6 bbWeight=0.45 PerfScore 1.80
G_M25213_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
@@ -275,137 +274,113 @@ G_M25213_IG30: ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0
mov rax, gword ptr [rdi+0x48]
; gcrRegs +[rax]
test rax, rax
- jne SHORT G_M25213_IG36
+ jne SHORT G_M25213_IG32
;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG31: ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG31: ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rsi, gword ptr [rdi+0x30]
; gcrRegs +[rsi]
- mov r14, gword ptr [rsi+0x18]
+ mov rsi, gword ptr [rsi+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rsi, rsi
+ cmove rsi, rax
+ mov r14, rsi
; gcrRegs +[r14]
test r14, r14
- jne SHORT G_M25213_IG33
- ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG32: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi r14]
- mov r14, 0xD1FFAB1E
- ; gcrRegs +[r14]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG33: ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- test r14, r14
- jne SHORT G_M25213_IG35
- ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG34: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r14]
- mov r14, 0xD1FFAB1E
- ; gcrRegs +[r14]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG35: ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+ cmove r14, rax
lea rdi, bword ptr [rdi+0x48]
; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r14
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi]
+ ; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rax, r14
; gcrRegs +[rax]
- ;; size=15 bbWeight=0.10 PerfScore 0.20
-G_M25213_IG36: ; bbWeight=0.37, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+ ;; size=50 bbWeight=0.10 PerfScore 0.74
+G_M25213_IG32: ; bbWeight=0.37, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
jmp G_M25213_IG25
;; size=5 bbWeight=0.37 PerfScore 0.74
-G_M25213_IG37: ; bbWeight=0.63, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M25213_IG33: ; bbWeight=0.63, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdi, gword ptr [r15+0x20]
; gcrRegs +[rdi]
test rdi, rdi
je G_M25213_IG23
;; size=13 bbWeight=0.63 PerfScore 2.05
-G_M25213_IG38: ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG34: ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Globalization.CultureInfo
cmp qword ptr [rdi], rsi
- je SHORT G_M25213_IG44
+ je SHORT G_M25213_IG40
;; size=15 bbWeight=0.37 PerfScore 1.57
-G_M25213_IG39: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+G_M25213_IG35: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x38]System.Globalization.CultureInfo:get_Name():System.String:this
; gcrRegs -[rdi] +[rax]
; gcr arg pop 0
;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG40: ; bbWeight=0.63, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M25213_IG36: ; bbWeight=0.63, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
test rax, rax
je G_M25213_IG23
;; size=9 bbWeight=0.63 PerfScore 0.79
-G_M25213_IG41: ; bbWeight=0.45, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M25213_IG37: ; bbWeight=0.45, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
cmp dword ptr [rax+0x08], 0
je G_M25213_IG23
jmp G_M25213_IG27
;; size=15 bbWeight=0.45 PerfScore 2.71
-G_M25213_IG42: ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG38: ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi rdi]
test rsi, rsi
- je SHORT G_M25213_IG51
+ je SHORT G_M25213_IG43
;; size=5 bbWeight=0.42 PerfScore 0.53
-G_M25213_IG43: ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG39: ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
je G_M25213_IG12
- jmp SHORT G_M25213_IG51
+ jmp SHORT G_M25213_IG43
;; size=14 bbWeight=0.42 PerfScore 3.36
-G_M25213_IG44: ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG40: ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rax, gword ptr [rdi+0x48]
; gcrRegs +[rax]
test rax, rax
- jne SHORT G_M25213_IG50
+ jne SHORT G_M25213_IG42
;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG45: ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG41: ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rsi, gword ptr [rdi+0x30]
; gcrRegs +[rsi]
- mov r14, gword ptr [rsi+0x18]
+ mov rsi, gword ptr [rsi+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rsi, rsi
+ cmove rsi, rax
+ test rsi, rsi
+ cmove rsi, rax
+ mov r14, rsi
; gcrRegs +[r14]
- test r14, r14
- jne SHORT G_M25213_IG47
- ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG46: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi r14]
- mov r14, 0xD1FFAB1E
- ; gcrRegs +[r14]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG47: ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- test r14, r14
- jne SHORT G_M25213_IG49
- ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG48: ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r14]
- mov r14, 0xD1FFAB1E
- ; gcrRegs +[r14]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG49: ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
lea rdi, bword ptr [rdi+0x48]
; gcrRegs -[rdi]
; byrRegs +[rdi]
...
+11 (+2.27%) : 417893.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
@@ -9,11 +9,11 @@
; 11 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 19, 10.45) ref -> rbx class-hnd single-def <Internal.TypeSystem.FieldDesc>
+; V00 arg0 [V00,T00] ( 18, 10.45) ref -> rbx class-hnd single-def <Internal.TypeSystem.FieldDesc>
; V01 arg1 [V01,T04] ( 4, 4 ) long -> r13 single-def
; V02 arg2 [V02,T01] ( 9, 9 ) int -> r15 single-def
; V03 arg3 [V03,T02] ( 6, 6 ) int -> r14 single-def
-; V04 loc0 [V04,T13] ( 2, 2 ) ref -> rdi class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
+; V04 loc0 [V04,T14] ( 2, 2 ) ref -> rdi class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
;* V05 loc1 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;* V06 loc2 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,29 +23,29 @@
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-; V14 tmp7 [V14,T21] ( 2, 0 ) int -> rax "guarded devirt return temp"
+; V14 tmp7 [V14,T22] ( 2, 0 ) int -> rax "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
;* V16 tmp9 [V16,T23] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-; V18 tmp11 [V18,T15] ( 3, 2.00) int -> rax "Inline return value spill temp"
+; V18 tmp11 [V18,T16] ( 3, 2.00) int -> rax "Inline return value spill temp"
; V19 tmp12 [V19,T08] ( 3, 2.71) int -> rax single-def "Inline stloc first use temp"
;* V20 tmp13 [V20 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V21 tmp14 [V21,T16] ( 3, 2.00) int -> rax "Inline return value spill temp"
+; V21 tmp14 [V21,T17] ( 3, 2.00) int -> rax "Inline return value spill temp"
; V22 tmp15 [V22,T09] ( 3, 2.71) int -> rax single-def "Inline stloc first use temp"
;* V23 tmp16 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V24 tmp17 [V24,T17] ( 3, 2.00) int -> rax "Inline return value spill temp"
+; V24 tmp17 [V24,T18] ( 3, 2.00) int -> rax "Inline return value spill temp"
; V25 tmp18 [V25,T10] ( 3, 2.71) int -> rax single-def "Inline stloc first use temp"
;* V26 tmp19 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V27 tmp20 [V27,T18] ( 3, 2.00) int -> rax "Inline return value spill temp"
+; V27 tmp20 [V27,T19] ( 3, 2.00) int -> rax "Inline return value spill temp"
; V28 tmp21 [V28,T11] ( 3, 2.71) int -> rax single-def "Inline stloc first use temp"
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T19] ( 3, 2.00) int -> rax "Inline return value spill temp"
+; V30 tmp23 [V30,T20] ( 3, 2.00) int -> rax "Inline return value spill temp"
; V31 tmp24 [V31,T12] ( 3, 2.71) int -> rax single-def "Inline stloc first use temp"
;* V32 tmp25 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V33 tmp26 [V33,T03] ( 4, 8 ) ref -> rax class-hnd single-def "Inlining Arg" <ubyte[]>
;* V34 tmp27 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V36 tmp29 [V36,T06] ( 2, 4 ) byref -> r12 single-def "Inlining Arg"
+; V36 tmp29 [V36,T06] ( 2, 4 ) byref -> rbx single-def "Inlining Arg"
;* V37 tmp30 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V38 tmp31 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
@@ -54,15 +54,15 @@
;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref single-def "field V05._length (fldOffset=0x8)" P-INDEP
;* V43 tmp36 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V44 tmp37 [V44 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
-; V45 tmp38 [V45,T20] ( 2, 2 ) byref -> rdi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V45 tmp38 [V45,T21] ( 2, 2 ) byref -> rdi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V46 tmp39 [V46 ] ( 0, 0 ) int -> zero-ref single-def "field V09._length (fldOffset=0x8)" P-INDEP
-; V47 tmp40 [V47,T14] ( 3, 2 ) byref -> r12 "field V34._reference (fldOffset=0x0)" P-INDEP
+; V47 tmp40 [V47,T15] ( 3, 2 ) byref -> rbx "field V34._reference (fldOffset=0x0)" P-INDEP
; V48 tmp41 [V48,T05] ( 5, 4 ) int -> rax "field V34._length (fldOffset=0x8)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref single-def "field V35._length (fldOffset=0x8)" P-INDEP
;* V51 tmp44 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
;* V52 tmp45 [V52 ] ( 0, 0 ) int -> zero-ref single-def "field V37._length (fldOffset=0x8)" P-INDEP
-; V53 cse0 [V53,T22] ( 5, 0 ) long -> r15 "CSE - moderate"
+; V53 cse0 [V53,T13] ( 6, 2 ) long -> r12 "CSE - moderate"
;
; Lcl frame size = 8
@@ -94,21 +94,21 @@ G_M56569_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
not edi
shr edi, 31
call [<unknown method>]
+ mov r12, qword ptr [rbx]
mov rdi, 0xD1FFAB1E ; Internal.TypeSystem.Ecma.EcmaField
- cmp qword ptr [rbx], rdi
+ cmp r12, rdi
je SHORT G_M56569_IG04
- ;; size=59 bbWeight=1 PerfScore 17.25
+ ;; size=62 bbWeight=1 PerfScore 16.50
G_M56569_IG03: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
- mov rax, qword ptr [rbx]
- mov r15, qword ptr [rax+0x50]
- call [r15+0x18]<unknown method>
+ mov rax, qword ptr [r12+0x50]
+ call [rax+0x18]<unknown method>
; gcrRegs -[rdi]
mov edi, eax
call [<unknown method>]
jmp G_M56569_IG24
- ;; size=27 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M56569_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbx+0x2C]
and eax, 3
@@ -183,14 +183,14 @@ G_M56569_IG13: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=18 bbWeight=1 PerfScore 5.75
G_M56569_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- xor r12, r12
- ; byrRegs +[r12]
+ xor rbx, rbx
+ ; byrRegs +[rbx]
xor eax, eax
jmp SHORT G_M56569_IG17
- ;; size=7 bbWeight=0 PerfScore 0.00
+ ;; size=6 bbWeight=0 PerfScore 0.00
G_M56569_IG15: ; bbWeight=0.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx]
- ; byrRegs -[r12]
+ ; byrRegs -[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
mov esi, 5
@@ -200,12 +200,12 @@ G_M56569_IG15: ; bbWeight=0.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
;; size=16 bbWeight=0.29 PerfScore 1.59
G_M56569_IG16: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[rax]
- lea r12, bword ptr [rax+0x10]
- ; byrRegs +[r12]
+ lea rbx, bword ptr [rax+0x10]
+ ; byrRegs +[rbx]
mov eax, dword ptr [rax+0x08]
; gcrRegs -[rax]
;; size=7 bbWeight=1 PerfScore 2.50
-G_M56569_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byref, isz
+G_M56569_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp eax, r15d
jl SHORT G_M56569_IG09
mov edi, eax
@@ -220,14 +220,14 @@ G_M56569_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byr
jbe SHORT G_M56569_IG19
;; size=31 bbWeight=1 PerfScore 5.25
G_M56569_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[r12]
+ ; byrRegs -[rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M56569_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byref, isz
- ; byrRegs +[r12]
- mov ebx, r14d
- add r12, rbx
+G_M56569_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+ ; byrRegs +[rbx]
+ mov r12d, r14d
+ add rbx, r12
mov edi, r15d
not edi
shr edi, 31
@@ -237,10 +237,10 @@ G_M56569_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byr
mov rdi, r13
; byrRegs +[rdi]
mov edx, r15d
- mov rsi, r12
+ mov rsi, rbx
; byrRegs +[rsi]
call [<unknown method>]
- ; byrRegs -[rsi rdi r12]
+ ; byrRegs -[rbx rsi rdi]
mov eax, 1
;; size=45 bbWeight=1 PerfScore 9.75
G_M56569_IG20: ; bbWeight=1, epilog, nogc, extend
@@ -281,24 +281,27 @@ G_M56569_IG23: ; bbWeight=0.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M56569_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
- call [r15+0x30]<unknown method>
+ mov rax, qword ptr [r12+0x50]
+ call [rax+0x30]<unknown method>
; gcrRegs -[rdi]
mov edi, eax
call [<unknown method>]
mov rdi, rbx
; gcrRegs +[rdi]
- call [r15+0x28]<unknown method>
+ mov rax, qword ptr [r12+0x50]
+ call [rax+0x28]<unknown method>
; gcrRegs -[rdi]
test eax, eax
jne G_M56569_IG09
mov rdi, rbx
; gcrRegs +[rdi]
- call [r15+0x20]<unknown method>
+ mov rax, qword ptr [r12+0x50]
+ call [rax+0x20]<unknown method>
; gcrRegs -[rbx rdi]
jmp G_M56569_IG09
- ;; size=42 bbWeight=0 PerfScore 0.00
+ ;; size=54 bbWeight=0 PerfScore 0.00
-; Total bytes of code 485, prolog size 16, PerfScore 88.95, instruction count 147, allocated bytes for code 485 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
+Total bytes of code 496, prolog size 16, PerfScore 88.20, instruction count 150, allocated bytes for code 496 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
; ============================================================
Unwind Info:
+28 (+2.56%) : 590387.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> r12
; V10 loc7 [V10,T08] ( 3, 12 ) ref -> rdx class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T23] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T20] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V17 tmp6 [V17,T19] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T26] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V19 tmp8 [V19,T25] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V20 tmp9 [V20,T29] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V26 tmp15 [V26,T30] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T21] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V28 tmp17 [V28,T20] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T27] ( 3, 0 ) int -> r12 "Inlining Arg"
-; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> r13 "Inlining Arg"
+; V30 tmp19 [V30,T26] ( 3, 0 ) int -> r12 "Inlining Arg"
+; V31 tmp20 [V31,T31] ( 2, 0 ) byref -> r13 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V37 tmp26 [V37,T32] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T22] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V41 tmp30 [V41,T21] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T28] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V43 tmp32 [V43,T27] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V44 tmp33 [V44,T33] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V50 tmp39 [V50,T34] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T23] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V52 tmp41 [V52,T22] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T29] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V54 tmp43 [V54,T28] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V55 tmp44 [V55,T35] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V61 tmp50 [V61,T36] ( 2, 0 ) byref -> rdi "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> rax "Inline return value spill temp"
; V63 tmp52 [V63,T06] ( 4, 12 ) int -> [rbp-0x54] spill-single-def "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.46) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T09] ( 3, 12 ) ref -> rdx "arr expr"
-; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V98 tmp87 [V98,T37] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V99 tmp88 [V99,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
; V100 cse0 [V100,T17] ( 3, 3 ) ref -> rdi "CSE - moderate"
; V101 cse1 [V101,T10] ( 6, 10 ) int -> r13 multi-def "CSE - moderate"
-; V102 cse2 [V102,T19] ( 12, 0 ) ref -> rsi multi-def "CSE - moderate"
;
; Lcl frame size = 56
@@ -380,15 +379,15 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M45430_IG30
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 11
jb SHORT G_M45430_IG31
@@ -429,15 +428,15 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r12d, dword ptr [rbp-0x30]
sub r12d, edi
jns SHORT G_M45430_IG33
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=63 bbWeight=0 PerfScore 0.00
+ ;; size=70 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
test r12d, r12d
je SHORT G_M45430_IG34
@@ -510,15 +509,15 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M45430_IG38
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 11
jb SHORT G_M45430_IG39
@@ -566,15 +565,15 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r14d, dword ptr [rbp-0x30]
sub r14d, ebx
jns SHORT G_M45430_IG43
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov rdi, rsi
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
; byrRegs -[rdi]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
test r14d, r14d
je SHORT G_M45430_IG44
@@ -622,7 +621,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=49 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1092, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1092 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1120, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1120 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
+14 (+4.88%) : 302928.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)
@@ -29,17 +29,17 @@
;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp17 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V21 tmp19 [V21,T11] ( 3, 0 ) ubyte -> rsi "Inline return value spill temp"
+; V21 tmp19 [V21,T10] ( 3, 0 ) ubyte -> rsi "Inline return value spill temp"
; V22 tmp20 [V22,T05] ( 10, 4.50) int -> r15 "Inline stloc first use temp"
; V23 tmp21 [V23 ] ( 2, 9 ) struct ( 8) [rbp-0x48] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
; V24 tmp22 [V24 ] ( 2, 9 ) struct ( 8) [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-; V25 tmp23 [V25,T14] ( 2, 0 ) float -> [rbp-0x54] spill-single-def "impAppendStmt"
-; V26 tmp24 [V26,T12] ( 3, 0 ) int -> rdi
+; V25 tmp23 [V25,T13] ( 2, 0 ) float -> [rbp-0x54] spill-single-def "impAppendStmt"
+; V26 tmp24 [V26,T11] ( 3, 0 ) int -> rdi
;* V27 tmp25 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp27 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) float -> zero-ref "Inline return value spill temp"
-; V31 tmp29 [V31,T13] ( 3, 0 ) int -> rdi
+; V31 tmp29 [V31,T12] ( 3, 0 ) int -> rdi
;* V32 tmp30 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -48,7 +48,6 @@
; V37 tmp35 [V37 ] ( 3,1620 ) long -> [rbp-0x40] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
; V38 tmp36 [V38 ] ( 2, 4.50) long -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V23._00 (fldOffset=0x0)" P-DEP
; V39 tmp37 [V39 ] ( 2, 4.50) long -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V24._00 (fldOffset=0x0)" P-DEP
-; V40 cse0 [V40,T10] ( 6, 0 ) ref -> rsi multi-def "CSE - aggressive"
;
; Lcl frame size = 80
@@ -130,14 +129,14 @@ G_M21877_IG08: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M21877_IG09: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test dil, dil
jne SHORT G_M21877_IG10
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M21877_IG10: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
lea rdi, bword ptr [rbp-0x48]
; byrRegs +[rdi]
@@ -158,14 +157,14 @@ G_M21877_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M21877_IG12: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test dil, dil
jne SHORT G_M21877_IG13
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M21877_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
lea rdi, bword ptr [rbp-0x50]
; byrRegs +[rdi]
@@ -187,7 +186,7 @@ G_M21877_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
jmp G_M21877_IG05
;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 287, prolog size 16, PerfScore 13799.25, instruction count 81, allocated bytes for code 287 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 301, prolog size 16, PerfScore 13799.25, instruction count 81, allocated bytes for code 301 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.linux.x64.checked.mch
-12 (-0.98%) : 251299.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
@@ -14,24 +14,24 @@
; V03 arg3 [V03,T05] ( 12, 2 ) ref -> [rbp-0x38] class-hnd EH-live single-def <System.Xml.XmlTextReaderImpl+NodeData>
;* V04 loc0 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T31] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V06 tmp1 [V06,T30] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V08 tmp3 [V08,T04] ( 2, 4 ) int -> rdx "spilling unroll qmark"
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T19] ( 3, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
-; V11 tmp6 [V11,T23] ( 3, 0 ) int -> rbx "Inlining Arg"
-; V12 tmp7 [V12,T24] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V10 tmp5 [V10,T18] ( 3, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
+; V11 tmp6 [V11,T22] ( 3, 0 ) int -> rbx "Inlining Arg"
+; V12 tmp7 [V12,T23] ( 3, 0 ) int -> r14 "Inlining Arg"
; V13 tmp8 [V13,T10] ( 11, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V14 tmp9 [V14,T14] ( 4, 0 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "dup spill" <System.String[]>
-; V15 tmp10 [V15,T32] ( 2, 0 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.String>
-; V16 tmp11 [V16,T33] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V17 tmp12 [V17,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V18 tmp13 [V18,T25] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V19 tmp14 [V19,T26] ( 3, 0 ) int -> r13 "Inlining Arg"
+; V15 tmp10 [V15,T31] ( 2, 0 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.String>
+; V16 tmp11 [V16,T32] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V17 tmp12 [V17,T19] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V18 tmp13 [V18,T24] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V19 tmp14 [V19,T25] ( 3, 0 ) int -> r13 "Inlining Arg"
; V20 tmp15 [V20,T11] ( 11, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V21 tmp16 [V21,T15] ( 4, 0 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "dup spill" <System.String[]>
-; V22 tmp17 [V22,T34] ( 2, 0 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "Inlining Arg" <System.String>
-; V23 tmp18 [V23,T35] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V22 tmp17 [V22,T33] ( 2, 0 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V23 tmp18 [V23,T34] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V25 tmp20 [V25,T07] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
@@ -39,25 +39,24 @@
;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V31 tmp26 [V31,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V32 tmp27 [V32,T27] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V33 tmp28 [V33,T28] ( 3, 0 ) int -> r13 "Inlining Arg"
+; V31 tmp26 [V31,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V32 tmp27 [V32,T26] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V33 tmp28 [V33,T27] ( 3, 0 ) int -> r13 "Inlining Arg"
; V34 tmp29 [V34,T12] ( 11, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V35 tmp30 [V35,T16] ( 4, 0 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "dup spill" <System.String[]>
-; V36 tmp31 [V36,T36] ( 2, 0 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String>
-; V37 tmp32 [V37,T37] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V38 tmp33 [V38,T22] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V39 tmp34 [V39,T29] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V40 tmp35 [V40,T30] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V36 tmp31 [V36,T35] ( 2, 0 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V37 tmp32 [V37,T36] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V38 tmp33 [V38,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V39 tmp34 [V39,T28] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V40 tmp35 [V40,T29] ( 3, 0 ) int -> r14 "Inlining Arg"
; V41 tmp36 [V41,T13] ( 11, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V42 tmp37 [V42,T17] ( 4, 0 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "dup spill" <System.String[]>
-; V43 tmp38 [V43,T38] ( 2, 0 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.String>
-; V44 tmp39 [V44,T39] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V43 tmp38 [V43,T37] ( 2, 0 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.String>
+; V44 tmp39 [V44,T38] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V45 tmp40 [V45,T03] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V46 PSPSym [V46,T08] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V47 cse0 [V47,T18] ( 4, 0 ) ref -> rsi multi-def "CSE - moderate"
-; V48 cse1 [V48,T06] ( 3, 3 ) ref -> rsi "CSE - aggressive"
-; V49 rat0 [V49,T09] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V47 cse0 [V47,T06] ( 3, 3 ) ref -> rsi "CSE - aggressive"
+; V48 rat0 [V48,T09] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 72
@@ -207,21 +206,16 @@ G_M20580_IG13: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcr arg pop 0
mov gword ptr [rbp-0x40], rax
; GC ptr vars +{V14}
- lea rdi, bword ptr [rax+0x10]
- ; byrRegs +[rdi]
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rsi]
- ; byrRegs -[rdi]
- mov rdi, r15
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
- mov rsi, gword ptr [rbp-0x40]
+ mov gword ptr [rax+0x10], rdi
+ mov rdi, r15
+ mov rsi, rax
; gcrRegs +[rsi]
mov edx, ebx
mov ecx, r14d
call [<unknown method>]
- ; gcrRegs -[rsi rdi] +[rax]
+ ; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov rdi, 0xD1FFAB1E
mov qword ptr [r13+0x70], rdi
@@ -261,8 +255,6 @@ G_M20580_IG13: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; byrRegs -[rdi]
mov dword ptr [r13+0x98], ebx
mov dword ptr [r13+0x9C], r14d
- ;; size=224 bbWeight=0 PerfScore 0.00
-G_M20580_IG14: ; bbWeight=0, extend
mov rdi, gword ptr [rbp-0x30]
; gcrRegs +[rdi]
mov rsi, r13
@@ -271,8 +263,10 @@ G_M20580_IG14: ; bbWeight=0, extend
call [System.Xml.XmlTextReaderImpl:Throw(System.Exception):this]
; gcrRegs -[rsi rdi r13]
; gcr arg pop 0
+ ;; size=231 bbWeight=0 PerfScore 0.00
+G_M20580_IG14: ; bbWeight=0, extend
int3
- ;; size=14 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M20580_IG15: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r15]
; GC ptr vars +{V00 V01 V03}
@@ -494,21 +488,16 @@ G_M20580_IG17: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcr arg pop 0
mov gword ptr [rbp-0x68], rax
; GC ptr vars +{V42}
- lea rdi, bword ptr [rax+0x10]
- ; byrRegs +[rdi]
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rsi]
- ; byrRegs -[rdi]
- mov rdi, rbx
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
- mov rsi, gword ptr [rbp-0x68]
+ mov gword ptr [rax+0x10], rdi
+ mov rdi, rbx
+ mov rsi, rax
; gcrRegs +[rsi]
mov edx, r15d
mov ecx, r14d
call [<unknown method>]
- ; gcrRegs -[rsi rdi] +[rax]
+ ; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov rdi, 0xD1FFAB1E
mov qword ptr [r13+0x70], rdi
@@ -557,7 +546,7 @@ G_M20580_IG17: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcrRegs -[rsi rdi r13]
; gcr arg pop 0
int3
- ;; size=223 bbWeight=0 PerfScore 0.00
+ ;; size=217 bbWeight=0 PerfScore 0.00
G_M20580_IG18: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; gcrRegs +[rsi]
; GC ptr vars +{V00 V01 V03}
@@ -602,7 +591,7 @@ RWD00 dq 0070007400740068h, 0077002F002F003Ah, 0077002E00770077h, 0072006F002E
RWD32 dq 00670072006F002Eh, 003000300032002Fh, 006D0078002F0030h, 002F0073006E006Ch
-; Total bytes of code 1227, prolog size 40, PerfScore 82.60, instruction count 279, allocated bytes for code 1227 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
+Total bytes of code 1215, prolog size 40, PerfScore 82.60, instruction count 277, allocated bytes for code 1215 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
; ============================================================
Unwind Info:
-5 (-0.44%) : 251226.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
@@ -56,11 +56,10 @@
; V45 tmp40 [V45,T08] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V46 tmp41 [V46,T15] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V47 PSPSym [V47,T24] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-; V48 cse0 [V48,T36] ( 2, 0 ) ref -> rsi "CSE - moderate"
-; V49 cse1 [V49,T10] ( 8, 5 ) int -> rbx multi-def "CSE - moderate"
-; V50 cse2 [V50,T21] ( 3, 2.75) int -> rdx "CSE - moderate"
-; V51 rat0 [V51,T25] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
-; V52 rat1 [V52,T26] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V48 cse0 [V48,T10] ( 8, 5 ) int -> rbx multi-def "CSE - moderate"
+; V49 cse1 [V49,T21] ( 3, 2.75) int -> rdx "CSE - moderate"
+; V50 rat0 [V50,T25] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V51 rat1 [V51,T26] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 32
@@ -427,21 +426,16 @@ G_M23682_IG36: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
mov r13, rax
; gcrRegs +[r13]
- lea rdi, bword ptr [r13+0x10]
- ; byrRegs +[rdi]
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rsi]
- ; byrRegs -[rdi]
- mov rdi, rbx
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
+ mov gword ptr [r13+0x10], rdi
+ mov rdi, rbx
mov rsi, r13
; gcrRegs +[rsi]
xor edx, edx
xor ecx, ecx
call [<unknown method>]
- ; gcrRegs -[rsi rdi] +[rax]
+ ; gcrRegs -[rsi rdi]
; gcr arg pop 0
mov rdi, 0xD1FFAB1E
mov qword ptr [r15+0x70], rdi
@@ -489,7 +483,7 @@ G_M23682_IG36: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcrRegs -[rsi rdi r15]
; gcr arg pop 0
int3
- ;; size=211 bbWeight=0 PerfScore 0.00
+ ;; size=206 bbWeight=0 PerfScore 0.00
G_M23682_IG37: ; bbWeight=0, gcVars=0000000000000013 {V00 V01 V02}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; gcrRegs +[rsi]
; GC ptr vars +{V00 V01 V02}
@@ -580,7 +574,7 @@ RWD48 dq 0075002D00360034h, 0032002D00730063h
RWD64 dq 002D006600740075h, 0045004200360031h
-; Total bytes of code 1142, prolog size 35, PerfScore 181.19, instruction count 282, allocated bytes for code 1142 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
+Total bytes of code 1137, prolog size 35, PerfScore 181.19, instruction count 281, allocated bytes for code 1137 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
; ============================================================
Unwind Info:
-5 (-0.26%) : 189815.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
@@ -154,7 +154,6 @@
; V143 PSPSym [V143,T76] ( 1, 1 ) long -> [rbp-0xC0] do-not-enreg[V] "PSPSym"
; V144 cse0 [V144,T15] ( 5, 5 ) ref -> r14 "CSE - moderate"
; V145 cse1 [V145,T40] ( 3, 3 ) ref -> rsi "CSE - conservative"
-; V146 cse2 [V146,T77] ( 2, 0 ) ref -> rsi "CSE - conservative"
;
; Lcl frame size = 152
@@ -1081,17 +1080,14 @@ G_M23212_IG69: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
lea rbp, [rbp+0xC0]
;; size=25 bbWeight=0 PerfScore 0.00
G_M23212_IG70: ; bbWeight=0, gcVars=00000000000000000000000100000011 {V00 V01 V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
mov r15, gword ptr [rbp-0x58]
; gcrRegs +[r15]
- lea rdi, bword ptr [r15+0x10]
- ; byrRegs +[rdi]
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi]
- ; byrRegs -[rdi]
+ mov gword ptr [r15+0x10], rax
lea rax, G_M23212_IG04
- ;; size=30 bbWeight=0 PerfScore 0.00
+ ; gcrRegs -[rax]
+ ;; size=25 bbWeight=0 PerfScore 0.00
G_M23212_IG71: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 8
pop rbx
@@ -1104,7 +1100,7 @@ G_M23212_IG71: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1951, prolog size 56, PerfScore 457.72, instruction count 476, allocated bytes for code 1951 (MethodHash=a317a553) for method System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
+Total bytes of code 1946, prolog size 56, PerfScore 457.72, instruction count 475, allocated bytes for code 1946 (MethodHash=a317a553) for method System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
+28 (+2.56%) : 152610.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> r12
; V10 loc7 [V10,T08] ( 3, 12 ) ref -> rdx class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T23] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T20] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V17 tmp6 [V17,T19] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T26] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V19 tmp8 [V19,T25] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V20 tmp9 [V20,T29] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V26 tmp15 [V26,T30] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T21] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V28 tmp17 [V28,T20] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T27] ( 3, 0 ) int -> r12 "Inlining Arg"
-; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> r13 "Inlining Arg"
+; V30 tmp19 [V30,T26] ( 3, 0 ) int -> r12 "Inlining Arg"
+; V31 tmp20 [V31,T31] ( 2, 0 ) byref -> r13 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V37 tmp26 [V37,T32] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T22] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V41 tmp30 [V41,T21] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T28] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V43 tmp32 [V43,T27] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V44 tmp33 [V44,T33] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V50 tmp39 [V50,T34] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T23] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V52 tmp41 [V52,T22] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T29] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V54 tmp43 [V54,T28] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V55 tmp44 [V55,T35] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V61 tmp50 [V61,T36] ( 2, 0 ) byref -> rdi "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> rax "Inline return value spill temp"
; V63 tmp52 [V63,T06] ( 4, 12 ) int -> [rbp-0x54] spill-single-def "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.46) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T09] ( 3, 12 ) ref -> rdx "arr expr"
-; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V98 tmp87 [V98,T37] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V99 tmp88 [V99,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
; V100 cse0 [V100,T17] ( 3, 3 ) ref -> rdi "CSE - moderate"
; V101 cse1 [V101,T10] ( 6, 10 ) int -> r13 multi-def "CSE - moderate"
-; V102 cse2 [V102,T19] ( 12, 0 ) ref -> rsi multi-def "CSE - moderate"
;
; Lcl frame size = 56
@@ -380,15 +379,15 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M45430_IG30
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 11
jb SHORT G_M45430_IG31
@@ -429,15 +428,15 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r12d, dword ptr [rbp-0x30]
sub r12d, edi
jns SHORT G_M45430_IG33
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=63 bbWeight=0 PerfScore 0.00
+ ;; size=70 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
test r12d, r12d
je SHORT G_M45430_IG34
@@ -510,15 +509,15 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M45430_IG38
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 11
jb SHORT G_M45430_IG39
@@ -566,15 +565,15 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r14d, dword ptr [rbp-0x30]
sub r14d, ebx
jns SHORT G_M45430_IG43
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov rdi, rsi
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
; byrRegs -[rdi]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
test r14d, r14d
je SHORT G_M45430_IG44
@@ -622,7 +621,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=49 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1092, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1092 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1120, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1120 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
+14 (+2.71%) : 153327.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T02] ( 4, 12.50) ref -> [rbp-0x58] class-hnd spill-single-def <System.Xml.XmlDictionaryString>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T14] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T13] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T12] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V10 tmp3 [V10,T11] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T15] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V13 tmp6 [V13,T17] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V12 tmp5 [V12,T14] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V13 tmp6 [V13,T16] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T18] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V19 tmp12 [V19,T17] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T13] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V21 tmp14 [V21,T12] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T16] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V24 tmp17 [V24,T19] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V23 tmp16 [V23,T15] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V24 tmp17 [V24,T18] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T20] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V30 tmp23 [V30,T19] ( 2, 0 ) byref -> rdi "Inlining Arg"
; V31 tmp24 [V31,T00] ( 5, 27.00) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
; V32 tmp25 [V32,T10] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
; V33 tmp26 [V33,T05] ( 2, 8 ) byref -> rdi "impAppendStmt"
@@ -59,10 +59,9 @@
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V51 tmp44 [V51,T21] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V52 cse0 [V52,T11] ( 6, 0 ) ref -> rsi multi-def "CSE - moderate"
-; V53 cse1 [V53,T07] ( 3, 6 ) int -> r12 "CSE - moderate"
-; V54 cse2 [V54,T08] ( 3, 5.50) int -> rdx "CSE - moderate"
+; V51 tmp44 [V51,T20] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V52 cse0 [V52,T07] ( 3, 6 ) int -> r12 "CSE - moderate"
+; V53 cse1 [V53,T08] ( 3, 5.50) int -> rdx "CSE - moderate"
;
; Lcl frame size = 56
@@ -223,15 +222,15 @@ G_M28309_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M28309_IG16
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=66 bbWeight=0 PerfScore 0.00
+ ;; size=73 bbWeight=0 PerfScore 0.00
G_M28309_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 8
jb SHORT G_M28309_IG17
@@ -277,15 +276,15 @@ G_M28309_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r14d, dword ptr [rbp-0x30]
sub r14d, ebx
jns SHORT G_M28309_IG21
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov rdi, rsi
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
; byrRegs -[rdi]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M28309_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
test r14d, r14d
je SHORT G_M28309_IG22
@@ -333,7 +332,7 @@ G_M28309_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=49 bbWeight=0 PerfScore 0.00
-; Total bytes of code 516, prolog size 44, PerfScore 93.59, instruction count 144, allocated bytes for code 516 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 530, prolog size 44, PerfScore 93.59, instruction count 144, allocated bytes for code 530 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
+14 (+2.78%) : 153326.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T01] ( 6, 16.25) ref -> [rbp-0x58] class-hnd exact spill-single-def <System.String>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T13] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T12] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T11] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V10 tmp3 [V10,T10] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T14] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V13 tmp6 [V13,T16] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V12 tmp5 [V12,T13] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V13 tmp6 [V13,T15] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T20] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T17] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V19 tmp12 [V19,T16] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T12] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V21 tmp14 [V21,T11] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T15] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V24 tmp17 [V24,T18] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V24 tmp17 [V24,T17] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T19] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V30 tmp23 [V30,T18] ( 2, 0 ) byref -> rdi "Inlining Arg"
; V31 tmp24 [V31,T09] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
; V32 tmp25 [V32,T04] ( 2, 8 ) byref -> rdi "impAppendStmt"
;* V33 tmp26 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -58,10 +58,9 @@
;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V50 tmp43 [V50,T20] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V51 cse0 [V51,T10] ( 6, 0 ) ref -> rsi multi-def "CSE - aggressive"
-; V52 cse1 [V52,T06] ( 3, 6 ) int -> r12 "CSE - aggressive"
-; V53 cse2 [V53,T07] ( 3, 5.50) int -> rdx "CSE - aggressive"
+; V50 tmp43 [V50,T19] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V51 cse0 [V51,T06] ( 3, 6 ) int -> r12 "CSE - aggressive"
+; V52 cse1 [V52,T07] ( 3, 5.50) int -> rdx "CSE - aggressive"
;
; Lcl frame size = 56
@@ -215,15 +214,15 @@ G_M58179_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M58179_IG15
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=66 bbWeight=0 PerfScore 0.00
+ ;; size=73 bbWeight=0 PerfScore 0.00
G_M58179_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 8
jb SHORT G_M58179_IG16
@@ -269,15 +268,15 @@ G_M58179_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r14d, dword ptr [rbp-0x30]
sub r14d, ebx
jns SHORT G_M58179_IG20
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov rdi, rsi
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
; byrRegs -[rdi]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M58179_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
test r14d, r14d
je SHORT G_M58179_IG21
@@ -325,7 +324,7 @@ G_M58179_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=49 bbWeight=0 PerfScore 0.00
-; Total bytes of code 503, prolog size 44, PerfScore 84.40, instruction count 140, allocated bytes for code 503 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 517, prolog size 44, PerfScore 84.40, instruction count 140, allocated bytes for code 517 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.linux.x64.Release.mch
-45 (-5.33%) : 730204.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
@@ -12,8 +12,8 @@
; V00 this [V00,T02] ( 4, 2 ) byref -> r15 this single-def
; V01 arg1 [V01,T00] ( 8, 5 ) ref -> rbx class-hnd single-def <System.String>
;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.IFormatProvider>
-; V03 loc0 [V03,T09] ( 5, 0 ) int -> rdi
-; V04 loc1 [V04,T11] ( 4, 0 ) ref -> r13 class-hnd exact single-def <System.String>
+; V03 loc0 [V03,T10] ( 5, 0 ) int -> rdi
+; V04 loc1 [V04,T09] ( 5, 0 ) ref -> r13 class-hnd exact single-def <System.String>
;* V05 loc2 [V05 ] ( 0, 0 ) ubyte -> zero-ref
; V06 loc3 [V06 ] ( 5, 0 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V07 loc4 [V07,T01] ( 7, 4 ) int -> rax
@@ -23,23 +23,23 @@
;* V11 tmp3 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V12 tmp4 [V12,T21] ( 2, 0 ) int -> rdi
;* V13 tmp5 [V13,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V14 tmp6 [V14,T22] ( 3, 0 ) int -> [rbp-0x34] "Inlining Arg"
+; V14 tmp6 [V14,T22] ( 3, 0 ) int -> r14 "Inlining Arg"
; V15 tmp7 [V15,T12] ( 4, 0 ) byref -> r12 single-def "Inlining Arg"
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp9 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V18 tmp10 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V19 tmp11 [V19,T33] ( 2, 0 ) int -> [rbp-0x38] spill-single-def "Inlining Arg"
-; V20 tmp12 [V20,T30] ( 2, 0 ) byref -> [rbp-0x68] spill-single-def "Inlining Arg"
+; V19 tmp11 [V19,T32] ( 2, 0 ) int -> [rbp-0x34] spill-single-def "Inlining Arg"
+; V20 tmp12 [V20,T29] ( 2, 0 ) byref -> [rbp-0x68] spill-single-def "Inlining Arg"
; V21 tmp13 [V21,T23] ( 3, 0 ) ubyte -> rax "Inline return value spill temp"
;* V22 tmp14 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V23 tmp15 [V23,T07] ( 7, 0 ) int -> rsi "Inline stloc first use temp"
-; V24 tmp16 [V24,T08] ( 7, 0 ) int -> registers "Inline stloc first use temp"
+; V24 tmp16 [V24,T08] ( 7, 0 ) int -> rbx "Inline stloc first use temp"
; V25 tmp17 [V25,T24] ( 3, 0 ) ubyte -> rax "Inline return value spill temp"
; V26 tmp18 [V26,T06] ( 10, 0 ) int -> rbx "Inlining Arg"
;* V27 tmp19 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V28 tmp20 [V28 ] ( 3, 0 ) byref -> [rbp-0x40] must-init pinned "Inline stloc first use temp"
;* V29 tmp21 [V29 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V30 tmp22 [V30,T05] ( 17, 0 ) long -> [rbp-0x48] "Inline stloc first use temp"
+; V30 tmp22 [V30,T05] ( 17, 0 ) long -> r14 "Inline stloc first use temp"
;* V31 tmp23 [V31 ] ( 0, 0 ) struct (48) zero-ref "dup spill" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
;* V32 tmp24 [V32 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V33 tmp25 [V33 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -59,7 +59,7 @@
;* V47 tmp39 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V48 tmp40 [V48 ] ( 0, 0 ) struct (48) zero-ref "Inline return value spill temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
;* V49 tmp41 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp42 [V50,T50] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V50 tmp42 [V50,T49] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V51 tmp43 [V51 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
;* V52 tmp44 [V52 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V53 tmp45 [V53 ] ( 0, 0 ) struct (32) zero-ref "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
@@ -68,18 +68,18 @@
;* V56 tmp48 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp49 [V57 ] ( 0, 0 ) simd16 -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V58 tmp50 [V58 ] ( 0, 0 ) struct (48) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V59 tmp51 [V59,T34] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V60 tmp52 [V60,T35] ( 2, 0 ) simd16 -> mm3 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V59 tmp51 [V59,T33] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V60 tmp52 [V60,T34] ( 2, 0 ) simd16 -> mm3 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V61 tmp53 [V61 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V62 tmp54 [V62 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V63 tmp55 [V63 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V64 tmp56 [V64,T36] ( 2, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V64 tmp56 [V64,T35] ( 2, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V65 tmp57 [V65 ] ( 0, 0 ) struct (48) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
;* V66 tmp58 [V66 ] ( 0, 0 ) int -> zero-ref
; V67 tmp59 [V67,T25] ( 3, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V68 tmp60 [V68,T37] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V69 tmp61 [V69,T38] ( 2, 0 ) simd16 -> mm0 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V70 tmp62 [V70,T39] ( 2, 0 ) simd16 -> mm1 "impAppendStmt"
+; V68 tmp60 [V68,T36] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V69 tmp61 [V69,T37] ( 2, 0 ) simd16 -> mm0 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V70 tmp62 [V70,T38] ( 2, 0 ) simd16 -> mm1 "impAppendStmt"
;* V71 tmp63 [V71 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
; V72 tmp64 [V72,T14] ( 4, 0 ) simd16 -> mm0 "spilled call-like call argument"
;* V73 tmp65 [V73 ] ( 0, 0 ) simd16 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -87,29 +87,29 @@
;* V75 tmp67 [V75 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V76 tmp68 [V76 ] ( 0, 0 ) simd16 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V77 tmp69 [V77 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;* V78 tmp70 [V78,T51] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V78 tmp70 [V78,T50] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V79 tmp71 [V79 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
; V80 tmp72 [V80,T26] ( 3, 0 ) simd16 -> mm0 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-; V81 tmp73 [V81,T40] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+; V81 tmp73 [V81,T39] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V82 tmp74 [V82 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
; V83 tmp75 [V83,T27] ( 3, 0 ) simd16 -> mm4 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
; V84 tmp76 [V84,T28] ( 3, 0 ) simd16 -> mm3 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V85 tmp77 [V85 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
-; V86 tmp78 [V86,T41] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-; V87 tmp79 [V87,T42] ( 2, 0 ) simd16 -> mm1 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+; V86 tmp78 [V86,T40] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+; V87 tmp79 [V87,T41] ( 2, 0 ) simd16 -> mm1 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V88 tmp80 [V88 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V89 tmp81 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V90 tmp82 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V91 tmp83 [V91,T31] ( 2, 0 ) byref -> [rbp-0x70] single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp84 [V92,T43] ( 2, 0 ) int -> [rbp-0x4C] "field V09._length (fldOffset=0x8)" P-INDEP
+; V91 tmp83 [V91,T30] ( 2, 0 ) byref -> [rbp-0x70] single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp84 [V92,T42] ( 2, 0 ) int -> [rbp-0x44] "field V09._length (fldOffset=0x8)" P-INDEP
;* V93 tmp85 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V94 tmp86 [V94 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V95 tmp87 [V95 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp88 [V96 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V97 tmp89 [V97,T20] ( 3, 0 ) byref -> rsi "field V16._reference (fldOffset=0x0)" P-INDEP
-; V98 tmp90 [V98,T15] ( 4, 0 ) int -> r8 "field V16._length (fldOffset=0x8)" P-INDEP
-; V99 tmp91 [V99,T32] ( 2, 0 ) byref -> rsi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-; V100 tmp92 [V100,T44] ( 2, 0 ) int -> r8 "field V17._length (fldOffset=0x8)" P-INDEP
+; V97 tmp89 [V97,T20] ( 3, 0 ) byref -> rdx "field V16._reference (fldOffset=0x0)" P-INDEP
+; V98 tmp90 [V98,T15] ( 4, 0 ) int -> rsi "field V16._length (fldOffset=0x8)" P-INDEP
+; V99 tmp91 [V99,T31] ( 2, 0 ) byref -> rdx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V100 tmp92 [V100,T43] ( 2, 0 ) int -> rsi "field V17._length (fldOffset=0x8)" P-INDEP
;* V101 tmp93 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V102 tmp94 [V102 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V103 tmp95 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -132,12 +132,12 @@
; V120 tmp112 [V120,T18] ( 4, 0 ) simd16 -> mm1 "field V48.Item3 (fldOffset=0x20)" P-INDEP
;* V121 tmp113 [V121 ] ( 0, 0 ) simd16 -> zero-ref "field V53.Item1 (fldOffset=0x0)" P-INDEP
;* V122 tmp114 [V122 ] ( 0, 0 ) simd16 -> zero-ref "field V53.Item2 (fldOffset=0x10)" P-INDEP
-; V123 tmp115 [V123,T45] ( 2, 0 ) simd16 -> mm1 "field V58.Item1 (fldOffset=0x0)" P-INDEP
-; V124 tmp116 [V124,T46] ( 2, 0 ) simd16 -> mm0 "field V58.Item2 (fldOffset=0x10)" P-INDEP
-;* V125 tmp117 [V125,T52] ( 0, 0 ) simd16 -> zero-ref "field V58.Item3 (fldOffset=0x20)" P-INDEP
-; V126 tmp118 [V126,T47] ( 2, 0 ) simd16 -> mm2 "field V65.Item1 (fldOffset=0x0)" P-INDEP
-; V127 tmp119 [V127,T48] ( 2, 0 ) simd16 -> mm3 "field V65.Item2 (fldOffset=0x10)" P-INDEP
-; V128 tmp120 [V128,T49] ( 2, 0 ) simd16 -> mm1 "field V65.Item3 (fldOffset=0x20)" P-INDEP
+; V123 tmp115 [V123,T44] ( 2, 0 ) simd16 -> mm1 "field V58.Item1 (fldOffset=0x0)" P-INDEP
+; V124 tmp116 [V124,T45] ( 2, 0 ) simd16 -> mm0 "field V58.Item2 (fldOffset=0x10)" P-INDEP
+;* V125 tmp117 [V125,T51] ( 0, 0 ) simd16 -> zero-ref "field V58.Item3 (fldOffset=0x20)" P-INDEP
+; V126 tmp118 [V126,T46] ( 2, 0 ) simd16 -> mm2 "field V65.Item1 (fldOffset=0x0)" P-INDEP
+; V127 tmp119 [V127,T47] ( 2, 0 ) simd16 -> mm3 "field V65.Item2 (fldOffset=0x10)" P-INDEP
+; V128 tmp120 [V128,T48] ( 2, 0 ) simd16 -> mm1 "field V65.Item3 (fldOffset=0x20)" P-INDEP
;* V129 tmp121 [V129 ] ( 0, 0 ) simd16 -> zero-ref "field V71.Item1 (fldOffset=0x0)" P-INDEP
;* V130 tmp122 [V130 ] ( 0, 0 ) simd16 -> zero-ref "field V71.Item2 (fldOffset=0x10)" P-INDEP
;* V131 tmp123 [V131 ] ( 0, 0 ) simd16 -> zero-ref "field V79.Item1 (fldOffset=0x0)" P-INDEP
@@ -147,9 +147,8 @@
;* V135 tmp127 [V135 ] ( 0, 0 ) simd16 -> zero-ref "field V85.Item1 (fldOffset=0x0)" P-INDEP
;* V136 tmp128 [V136 ] ( 0, 0 ) simd16 -> zero-ref "field V85.Item2 (fldOffset=0x10)" P-INDEP
; V137 tmp129 [V137,T19] ( 4, 0 ) simd16 -> [rbp-0x60] spill-single-def "V51.[000..016)"
-; V138 tmp130 [V138,T10] ( 5, 0 ) long -> r12 "Cast away GC"
-; V139 cse0 [V139,T29] ( 3, 0 ) int -> r14 "CSE - conservative"
-; V140 cse1 [V140,T03] ( 5, 3 ) int -> registers multi-def "CSE - conservative"
+; V138 tmp130 [V138,T11] ( 5, 0 ) long -> r12 "Cast away GC"
+; V139 cse0 [V139,T03] ( 5, 3 ) int -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 72
@@ -241,122 +240,111 @@ G_M46385_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
lea r12, bword ptr [r13+0x0C]
; byrRegs +[r12]
mov r14d, dword ptr [r13+0x08]
- mov dword ptr [rbp-0x34], r14d
mov edi, 1
call [<unknown method>]
; gcrRegs -[rax]
mov bword ptr [rbp-0x70], r12
; GC ptr vars +{V91}
- mov ecx, dword ptr [rbp-0x34]
- mov dword ptr [rbp-0x4C], ecx
+ mov dword ptr [rbp-0x44], r14d
test rbx, rbx
jne SHORT G_M46385_IG14
- xor rsi, rsi
- ; byrRegs +[rsi]
- xor r8d, r8d
+ xor rdx, rdx
+ ; byrRegs +[rdx]
+ xor esi, esi
jmp SHORT G_M46385_IG15
- ;; size=53 bbWeight=0 PerfScore 0.00
-G_M46385_IG14: ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
- ; byrRegs -[rsi]
- lea rsi, bword ptr [rbx+0x0C]
- ; byrRegs +[rsi]
- mov bword ptr [rbp-0x68], rsi
+ ;; size=46 bbWeight=0 PerfScore 0.00
+G_M46385_IG14: ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
+ ; byrRegs -[rdx]
+ lea rdx, bword ptr [rbx+0x0C]
+ ; byrRegs +[rdx]
+ mov bword ptr [rbp-0x68], rdx
; GC ptr vars +{V20}
mov edi, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x38], edi
+ mov dword ptr [rbp-0x34], edi
mov edi, 1
call [<unknown method>]
; gcrRegs -[rbx]
- ; byrRegs -[rsi]
+ ; byrRegs -[rdx]
mov rbx, bword ptr [rbp-0x68]
; byrRegs +[rbx]
- mov rsi, rbx
- ; byrRegs +[rsi]
- mov r8d, dword ptr [rbp-0x38]
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M46385_IG15: ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+ mov rdx, rbx
+ ; byrRegs +[rdx]
+ mov esi, dword ptr [rbp-0x34]
+ ;; size=35 bbWeight=0 PerfScore 0.00
+G_M46385_IG15: ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
; byrRegs -[rbx]
; GC ptr vars -{V20}
- test r8d, r8d
+ test esi, esi
jne SHORT G_M46385_IG17
- ;; size=5 bbWeight=0 PerfScore 0.00
-G_M46385_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
- ; byrRegs -[rsi]
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46385_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz
+ ; byrRegs -[rdx]
; GC ptr vars -{V91}
mov ebx, 0xD1FFAB1E
- jmp G_M46385_IG25
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M46385_IG17: ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
- ; byrRegs +[rsi]
- ; GC ptr vars +{V91}
- cmp r8d, 1
+ jmp SHORT G_M46385_IG25
+ ;; size=7 bbWeight=0 PerfScore 0.00
+G_M46385_IG17: ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
+ ; byrRegs +[rdx]
+ ; GC ptr vars +{V30 V91}
+ cmp esi, 1
je SHORT G_M46385_IG19
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0 PerfScore 0.00
G_M46385_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r13]
- ; byrRegs -[rsi r12 r15]
- ; GC ptr vars -{V91}
+ ; byrRegs -[rdx r12 r15]
+ ; GC ptr vars -{V30 V91}
call [System.Guid:ThrowBadGuidFormatSpecification()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG19: ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+G_M46385_IG19: ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
; gcrRegs +[r13]
- ; byrRegs +[rsi r12 r15]
- ; GC ptr vars +{V91}
- mov ecx, dword ptr [rbp-0x4C]
- mov rdx, bword ptr [rbp-0x70]
- ; byrRegs +[rdx]
- mov ebx, dword ptr [rbp-0x34]
- movzx rsi, word ptr [rsi]
- ; byrRegs -[rsi]
+ ; byrRegs +[rdx r12 r15]
+ ; GC ptr vars +{V30 V91}
...
-45 (-4.90%) : 646101.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)
@@ -12,8 +12,8 @@
; V00 this [V00,T02] ( 4, 2 ) byref -> r15 this single-def
; V01 arg1 [V01,T00] ( 8, 5 ) ref -> rbx class-hnd single-def <System.String>
;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.IFormatProvider>
-; V03 loc0 [V03,T09] ( 5, 0 ) int -> rdi
-; V04 loc1 [V04,T11] ( 4, 0 ) ref -> r13 class-hnd exact single-def <System.String>
+; V03 loc0 [V03,T10] ( 5, 0 ) int -> rdi
+; V04 loc1 [V04,T09] ( 5, 0 ) ref -> r13 class-hnd exact single-def <System.String>
;* V05 loc2 [V05 ] ( 0, 0 ) ubyte -> zero-ref
; V06 loc3 [V06 ] ( 5, 0 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V07 loc4 [V07,T01] ( 7, 4 ) int -> rax
@@ -23,23 +23,23 @@
;* V11 tmp3 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V12 tmp4 [V12,T21] ( 2, 0 ) int -> rdi
;* V13 tmp5 [V13,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V14 tmp6 [V14,T22] ( 3, 0 ) int -> [rbp-0x34] "Inlining Arg"
+; V14 tmp6 [V14,T22] ( 3, 0 ) int -> r14 "Inlining Arg"
; V15 tmp7 [V15,T12] ( 4, 0 ) byref -> r12 single-def "Inlining Arg"
;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp9 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V18 tmp10 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V19 tmp11 [V19,T33] ( 2, 0 ) int -> [rbp-0x38] spill-single-def "Inlining Arg"
-; V20 tmp12 [V20,T30] ( 2, 0 ) byref -> [rbp-0x98] spill-single-def "Inlining Arg"
+; V19 tmp11 [V19,T32] ( 2, 0 ) int -> [rbp-0x34] spill-single-def "Inlining Arg"
+; V20 tmp12 [V20,T29] ( 2, 0 ) byref -> [rbp-0x98] spill-single-def "Inlining Arg"
; V21 tmp13 [V21,T23] ( 3, 0 ) ubyte -> rax "Inline return value spill temp"
;* V22 tmp14 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V23 tmp15 [V23,T07] ( 7, 0 ) int -> rsi "Inline stloc first use temp"
-; V24 tmp16 [V24,T08] ( 7, 0 ) int -> registers "Inline stloc first use temp"
+; V24 tmp16 [V24,T08] ( 7, 0 ) int -> rbx "Inline stloc first use temp"
; V25 tmp17 [V25,T24] ( 3, 0 ) ubyte -> rax "Inline return value spill temp"
; V26 tmp18 [V26,T06] ( 10, 0 ) int -> rbx "Inlining Arg"
;* V27 tmp19 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
; V28 tmp20 [V28 ] ( 3, 0 ) byref -> [rbp-0x40] must-init pinned "Inline stloc first use temp"
;* V29 tmp21 [V29 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V30 tmp22 [V30,T05] ( 17, 0 ) long -> [rbp-0x48] "Inline stloc first use temp"
+; V30 tmp22 [V30,T05] ( 17, 0 ) long -> r14 "Inline stloc first use temp"
;* V31 tmp23 [V31 ] ( 0, 0 ) struct (48) zero-ref "dup spill" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
;* V32 tmp24 [V32 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V33 tmp25 [V33 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -59,27 +59,27 @@
;* V47 tmp39 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V48 tmp40 [V48 ] ( 0, 0 ) struct (48) zero-ref "Inline return value spill temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
;* V49 tmp41 [V49 ] ( 0, 0 ) int -> zero-ref
-;* V50 tmp42 [V50,T48] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V50 tmp42 [V50,T47] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V51 tmp43 [V51 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
;* V52 tmp44 [V52 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V53 tmp45 [V53 ] ( 0, 0 ) struct (32) zero-ref "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
; V54 tmp46 [V54,T13] ( 4, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V55 tmp47 [V55 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V56 tmp48 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V57 tmp49 [V57,T49] ( 0, 0 ) simd16 -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V58 tmp50 [V58 ] ( 5, 0 ) struct (48) [rbp-0x78] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-; V59 tmp51 [V59,T34] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V60 tmp52 [V60,T35] ( 2, 0 ) simd16 -> mm3 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V57 tmp49 [V57,T48] ( 0, 0 ) simd16 -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V58 tmp50 [V58 ] ( 5, 0 ) struct (48) [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+; V59 tmp51 [V59,T33] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V60 tmp52 [V60,T34] ( 2, 0 ) simd16 -> mm3 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V61 tmp53 [V61 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V62 tmp54 [V62 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V63 tmp55 [V63 ] ( 0, 0 ) simd16 -> zero-ref "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V64 tmp56 [V64,T36] ( 2, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V64 tmp56 [V64,T35] ( 2, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V65 tmp57 [V65 ] ( 0, 0 ) struct (48) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
;* V66 tmp58 [V66 ] ( 0, 0 ) int -> zero-ref
; V67 tmp59 [V67,T25] ( 3, 0 ) simd16 -> mm1 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V68 tmp60 [V68,T37] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V69 tmp61 [V69,T38] ( 2, 0 ) simd16 -> mm0 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-; V70 tmp62 [V70,T39] ( 2, 0 ) simd16 -> mm1 "impAppendStmt"
+; V68 tmp60 [V68,T36] ( 2, 0 ) simd16 -> mm2 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V69 tmp61 [V69,T37] ( 2, 0 ) simd16 -> mm0 "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V70 tmp62 [V70,T38] ( 2, 0 ) simd16 -> mm1 "impAppendStmt"
;* V71 tmp63 [V71 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
; V72 tmp64 [V72,T14] ( 4, 0 ) simd16 -> mm0 "spilled call-like call argument"
;* V73 tmp65 [V73 ] ( 0, 0 ) simd16 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -89,26 +89,26 @@
;* V77 tmp69 [V77 ] ( 0, 0 ) simd16 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;* V78 tmp70 [V78 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
; V79 tmp71 [V79,T26] ( 3, 0 ) simd16 -> mm0 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-; V80 tmp72 [V80,T40] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+; V80 tmp72 [V80,T39] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V81 tmp73 [V81 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
; V82 tmp74 [V82,T27] ( 3, 0 ) simd16 -> mm4 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
; V83 tmp75 [V83,T28] ( 3, 0 ) simd16 -> mm3 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V84 tmp76 [V84 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
-; V85 tmp77 [V85,T41] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-; V86 tmp78 [V86,T42] ( 2, 0 ) simd16 -> mm1 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+; V85 tmp77 [V85,T40] ( 2, 0 ) simd16 -> mm2 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+; V86 tmp78 [V86,T41] ( 2, 0 ) simd16 -> mm1 "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
;* V87 tmp79 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V88 tmp80 [V88 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V89 tmp81 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V90 tmp82 [V90,T31] ( 2, 0 ) byref -> [rbp-0xA0] single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-; V91 tmp83 [V91,T43] ( 2, 0 ) int -> [rbp-0x7C] "field V09._length (fldOffset=0x8)" P-INDEP
+; V90 tmp82 [V90,T30] ( 2, 0 ) byref -> [rbp-0xA0] single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V91 tmp83 [V91,T42] ( 2, 0 ) int -> [rbp-0x74] "field V09._length (fldOffset=0x8)" P-INDEP
;* V92 tmp84 [V92 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V93 tmp85 [V93 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
;* V94 tmp86 [V94 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V95 tmp87 [V95 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V96 tmp88 [V96,T20] ( 3, 0 ) byref -> rsi "field V16._reference (fldOffset=0x0)" P-INDEP
-; V97 tmp89 [V97,T15] ( 4, 0 ) int -> r8 "field V16._length (fldOffset=0x8)" P-INDEP
-; V98 tmp90 [V98,T32] ( 2, 0 ) byref -> rsi single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-; V99 tmp91 [V99,T44] ( 2, 0 ) int -> r8 "field V17._length (fldOffset=0x8)" P-INDEP
+; V96 tmp88 [V96,T20] ( 3, 0 ) byref -> rdx "field V16._reference (fldOffset=0x0)" P-INDEP
+; V97 tmp89 [V97,T15] ( 4, 0 ) int -> rsi "field V16._length (fldOffset=0x8)" P-INDEP
+; V98 tmp90 [V98,T31] ( 2, 0 ) byref -> rdx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V99 tmp91 [V99,T43] ( 2, 0 ) int -> rsi "field V17._length (fldOffset=0x8)" P-INDEP
;* V100 tmp92 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V101 tmp93 [V101 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V102 tmp94 [V102 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -131,12 +131,12 @@
; V119 tmp111 [V119,T18] ( 4, 0 ) simd16 -> mm1 "field V48.Item3 (fldOffset=0x20)" P-INDEP
;* V120 tmp112 [V120 ] ( 0, 0 ) simd16 -> zero-ref "field V53.Item1 (fldOffset=0x0)" P-INDEP
;* V121 tmp113 [V121 ] ( 0, 0 ) simd16 -> zero-ref "field V53.Item2 (fldOffset=0x10)" P-INDEP
-; V122 tmp114 [V122 ] ( 3, 0 ) simd16 -> [rbp-0x78] do-not-enreg[XS] addr-exposed "field V58.Item1 (fldOffset=0x0)" P-DEP
-; V123 tmp115 [V123 ] ( 3, 0 ) simd16 -> [rbp-0x68] do-not-enreg[XS] addr-exposed "field V58.Item2 (fldOffset=0x10)" P-DEP
-; V124 tmp116 [V124 ] ( 3, 0 ) simd16 -> [rbp-0x58] do-not-enreg[XS] addr-exposed "field V58.Item3 (fldOffset=0x20)" P-DEP
-; V125 tmp117 [V125,T45] ( 2, 0 ) simd16 -> mm2 "field V65.Item1 (fldOffset=0x0)" P-INDEP
-; V126 tmp118 [V126,T46] ( 2, 0 ) simd16 -> mm3 "field V65.Item2 (fldOffset=0x10)" P-INDEP
-; V127 tmp119 [V127,T47] ( 2, 0 ) simd16 -> mm1 "field V65.Item3 (fldOffset=0x20)" P-INDEP
+; V122 tmp114 [V122 ] ( 3, 0 ) simd16 -> [rbp-0x70] do-not-enreg[XS] addr-exposed "field V58.Item1 (fldOffset=0x0)" P-DEP
+; V123 tmp115 [V123 ] ( 3, 0 ) simd16 -> [rbp-0x60] do-not-enreg[XS] addr-exposed "field V58.Item2 (fldOffset=0x10)" P-DEP
+; V124 tmp116 [V124 ] ( 3, 0 ) simd16 -> [rbp-0x50] do-not-enreg[XS] addr-exposed "field V58.Item3 (fldOffset=0x20)" P-DEP
+; V125 tmp117 [V125,T44] ( 2, 0 ) simd16 -> mm2 "field V65.Item1 (fldOffset=0x0)" P-INDEP
+; V126 tmp118 [V126,T45] ( 2, 0 ) simd16 -> mm3 "field V65.Item2 (fldOffset=0x10)" P-INDEP
+; V127 tmp119 [V127,T46] ( 2, 0 ) simd16 -> mm1 "field V65.Item3 (fldOffset=0x20)" P-INDEP
;* V128 tmp120 [V128 ] ( 0, 0 ) simd16 -> zero-ref "field V71.Item1 (fldOffset=0x0)" P-INDEP
;* V129 tmp121 [V129 ] ( 0, 0 ) simd16 -> zero-ref "field V71.Item2 (fldOffset=0x10)" P-INDEP
;* V130 tmp122 [V130 ] ( 0, 0 ) simd16 -> zero-ref "field V78.Item1 (fldOffset=0x0)" P-INDEP
@@ -146,9 +146,8 @@
;* V134 tmp126 [V134 ] ( 0, 0 ) simd16 -> zero-ref "field V84.Item1 (fldOffset=0x0)" P-INDEP
;* V135 tmp127 [V135 ] ( 0, 0 ) simd16 -> zero-ref "field V84.Item2 (fldOffset=0x10)" P-INDEP
; V136 tmp128 [V136,T19] ( 4, 0 ) simd16 -> [rbp-0x90] spill-single-def "V51.[000..016)"
-; V137 tmp129 [V137,T10] ( 5, 0 ) long -> r12 "Cast away GC"
-; V138 cse0 [V138,T29] ( 3, 0 ) int -> r14 "CSE - conservative"
-; V139 cse1 [V139,T03] ( 5, 3 ) int -> registers multi-def "CSE - conservative"
+; V137 tmp129 [V137,T11] ( 5, 0 ) long -> r12 "Cast away GC"
+; V138 cse0 [V138,T03] ( 5, 3 ) int -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 168
@@ -240,122 +239,111 @@ G_M46385_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
lea r12, bword ptr [r13+0x0C]
; byrRegs +[r12]
mov r14d, dword ptr [r13+0x08]
- mov dword ptr [rbp-0x34], r14d
mov edi, 1
call [<unknown method>]
; gcrRegs -[rax]
mov bword ptr [rbp-0xA0], r12
; GC ptr vars +{V90}
- mov ecx, dword ptr [rbp-0x34]
- mov dword ptr [rbp-0x7C], ecx
+ mov dword ptr [rbp-0x74], r14d
test rbx, rbx
jne SHORT G_M46385_IG14
- xor rsi, rsi
- ; byrRegs +[rsi]
- xor r8d, r8d
+ xor rdx, rdx
+ ; byrRegs +[rdx]
+ xor esi, esi
jmp SHORT G_M46385_IG15
- ;; size=56 bbWeight=0 PerfScore 0.00
-G_M46385_IG14: ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
- ; byrRegs -[rsi]
- lea rsi, bword ptr [rbx+0x0C]
- ; byrRegs +[rsi]
- mov bword ptr [rbp-0x98], rsi
+ ;; size=49 bbWeight=0 PerfScore 0.00
+G_M46385_IG14: ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
+ ; byrRegs -[rdx]
+ lea rdx, bword ptr [rbx+0x0C]
+ ; byrRegs +[rdx]
+ mov bword ptr [rbp-0x98], rdx
; GC ptr vars +{V20}
mov edi, dword ptr [rbx+0x08]
- mov dword ptr [rbp-0x38], edi
+ mov dword ptr [rbp-0x34], edi
mov edi, 1
call [<unknown method>]
; gcrRegs -[rbx]
- ; byrRegs -[rsi]
+ ; byrRegs -[rdx]
mov rbx, bword ptr [rbp-0x98]
; byrRegs +[rbx]
- mov rsi, rbx
- ; byrRegs +[rsi]
- mov r8d, dword ptr [rbp-0x38]
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M46385_IG15: ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+ mov rdx, rbx
+ ; byrRegs +[rdx]
+ mov esi, dword ptr [rbp-0x34]
+ ;; size=41 bbWeight=0 PerfScore 0.00
+G_M46385_IG15: ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
; byrRegs -[rbx]
; GC ptr vars -{V20}
- test r8d, r8d
+ test esi, esi
jne SHORT G_M46385_IG17
- ;; size=5 bbWeight=0 PerfScore 0.00
-G_M46385_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
- ; byrRegs -[rsi]
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46385_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz
+ ; byrRegs -[rdx]
; GC ptr vars -{V90}
mov ebx, 0xD1FFAB1E
- jmp G_M46385_IG25
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M46385_IG17: ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
- ; byrRegs +[rsi]
- ; GC ptr vars +{V90}
- cmp r8d, 1
+ jmp SHORT G_M46385_IG25
+ ;; size=7 bbWeight=0 PerfScore 0.00
+G_M46385_IG17: ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
+ ; byrRegs +[rdx]
+ ; GC ptr vars +{V30 V90}
+ cmp esi, 1
je SHORT G_M46385_IG19
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=5 bbWeight=0 PerfScore 0.00
G_M46385_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r13]
- ; byrRegs -[rsi r12 r15]
- ; GC ptr vars -{V90}
+ ; byrRegs -[rdx r12 r15]
+ ; GC ptr vars -{V30 V90}
call [System.Guid:ThrowBadGuidFormatSpecification()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG19: ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+G_M46385_IG19: ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
; gcrRegs +[r13]
- ; byrRegs +[rsi r12 r15]
- ; GC ptr vars +{V90}
- mov ecx, dword ptr [rbp-0x7C]
- mov rdx, bword ptr [rbp-0xA0]
- ; byrRegs +[rdx]
- mov ebx, dword ptr [rbp-0x34]
- movzx rsi, word ptr [rsi]
- ; byrRegs -[rsi]
+ ; byrRegs +[rdx r12 r15]
+ ; GC ptr vars +{V30 V90}
+ mov ecx, dword ptr [rbp-0x74]
...
-24 (-2.89%) : 49659.dasm - System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this (Tier1)
@@ -26,35 +26,35 @@
; V14 tmp12 [V14,T12] ( 4, 3 ) ref -> r13
;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
-; V17 tmp15 [V17,T25] ( 5, 0 ) ref -> r13
+; V17 tmp15 [V17,T24] ( 6, 0 ) ref -> r13
;* V18 tmp16 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V20 tmp18 [V20,T34] ( 2, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <System.String>
-; V21 tmp19 [V21,T29] ( 4, 0 ) ref -> r13
+; V20 tmp18 [V20,T33] ( 2, 0 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
+; V21 tmp19 [V21,T28] ( 5, 0 ) ref -> rdi
; V22 tmp20 [V22,T10] ( 2, 4 ) ref -> r12 class-hnd exact single-def "dup spill" <System.String>
; V23 tmp21 [V23,T13] ( 4, 3 ) ref -> r12
;* V24 tmp22 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp24 [V26,T26] ( 5, 0 ) ref -> r12
+; V26 tmp24 [V26,T25] ( 6, 0 ) ref -> r12
;* V27 tmp25 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V28 tmp26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V29 tmp27 [V29,T35] ( 2, 0 ) ref -> r12 class-hnd exact single-def "dup spill" <System.String>
-; V30 tmp28 [V30,T30] ( 4, 0 ) ref -> r12
+; V29 tmp27 [V29,T34] ( 2, 0 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
+; V30 tmp28 [V30,T29] ( 5, 0 ) ref -> rdi
; V31 tmp29 [V31,T14] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
; V32 tmp30 [V32,T11] ( 2, 4 ) byref -> rdi single-def "impAppendStmt"
; V33 tmp31 [V33,T17] ( 2, 2.67) ref -> r13 class-hnd exact single-def "dup spill" <System.String>
; V34 tmp32 [V34,T20] ( 4, 2.00) ref -> r13
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V36 tmp34 [V36 ] ( 0, 0 ) ref -> zero-ref single-def
-; V37 tmp35 [V37,T27] ( 5, 0 ) ref -> r13
+; V37 tmp35 [V37,T26] ( 6, 0 ) ref -> r13
;* V38 tmp36 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V39 tmp37 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V40 tmp38 [V40,T36] ( 2, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <System.String>
-; V41 tmp39 [V41,T31] ( 4, 0 ) ref -> r13
+; V40 tmp38 [V40,T35] ( 2, 0 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
+; V41 tmp39 [V41,T30] ( 5, 0 ) ref -> rdi
;* V42 tmp40 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V43 tmp41 [V43,T00] ( 5, 17.33) int -> r12 "Inline stloc first use temp"
; V44 tmp42 [V44,T03] ( 6, 7.33) ushort -> [rbp-0x2C] spill-single-def "Inline stloc first use temp"
-; V45 tmp43 [V45,T33] ( 3, 0 ) ref -> r14 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V45 tmp43 [V45,T32] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
; V46 tmp44 [V46,T23] ( 3, 1.33) int -> r9
;* V47 tmp45 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V48 tmp46 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -67,11 +67,11 @@
; V55 tmp53 [V55,T21] ( 4, 2.00) ref -> rdx
;* V56 tmp54 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V57 tmp55 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
-; V58 tmp56 [V58,T28] ( 5, 0 ) ref -> r14
+; V58 tmp56 [V58,T27] ( 6, 0 ) ref -> r14
;* V59 tmp57 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V60 tmp58 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V61 tmp59 [V61,T37] ( 2, 0 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String>
-; V62 tmp60 [V62,T32] ( 4, 0 ) ref -> r14
+; V61 tmp59 [V61,T36] ( 2, 0 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
+; V62 tmp60 [V62,T31] ( 5, 0 ) ref -> rdi
;* V63 tmp61 [V63 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
;* V64 tmp62 [V64 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V65 tmp63 [V65 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
@@ -84,12 +84,11 @@
;* V72 tmp70 [V72 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
;* V73 tmp71 [V73 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
;* V74 tmp72 [V74 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V75 tmp73 [V75,T38] ( 2, 0 ) ref -> rdi "argument with side effect"
-; V76 tmp74 [V76,T39] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V75 tmp73 [V75,T37] ( 2, 0 ) ref -> rdi "argument with side effect"
+; V76 tmp74 [V76,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
; V77 cse0 [V77,T04] ( 3, 6.67) int -> [rbp-0x30] spill-single-def "CSE - moderate"
-; V78 cse1 [V78,T24] ( 16, 0 ) ref -> registers multi-def "CSE - moderate"
-; V79 cse2 [V79,T08] ( 6, 4.33) long -> r14 "CSE - moderate"
-; V80 cse3 [V80,T15] ( 4, 2.86) int -> [rbp-0x34] spill-single-def "CSE - moderate"
+; V78 cse1 [V78,T08] ( 6, 4.33) long -> r14 "CSE - moderate"
+; V79 cse2 [V79,T15] ( 4, 2.86) int -> [rbp-0x34] spill-single-def "CSE - moderate"
;
; Lcl frame size = 24
@@ -110,94 +109,82 @@ G_M51875_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M51875_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14, 0xD1FFAB1E ; System.Globalization.CultureInfo
cmp qword ptr [rbx], r14
- jne G_M51875_IG36
+ jne G_M51875_IG30
mov r13, gword ptr [rbx+0x48]
; gcrRegs +[r13]
test r13, r13
- jne SHORT G_M51875_IG06
+ jne SHORT G_M51875_IG04
;; size=28 bbWeight=1 PerfScore 7.50
-G_M51875_IG03: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG03: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov rdi, gword ptr [rbx+0x30]
; gcrRegs +[rdi]
- mov r13, gword ptr [rdi+0x18]
+ mov rdi, gword ptr [rdi+0x18]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
+ test rdi, rdi
+ cmove rdi, rsi
+ mov r13, rdi
; gcrRegs +[r13]
test r13, r13
- jne SHORT G_M51875_IG04
- mov r13, 0xD1FFAB1E
- ;; size=23 bbWeight=0 PerfScore 0.00
-G_M51875_IG04: ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi]
- test r13, r13
- jne SHORT G_M51875_IG05
- mov r13, 0xD1FFAB1E
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M51875_IG05: ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+ cmove r13, rsi
lea rdi, bword ptr [rbx+0x48]
+ ; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r13
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
; byrRegs -[rdi]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG06: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+ ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG04: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
call [System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo]
; gcrRegs +[rax]
; gcr arg pop 0
cmp qword ptr [rax], r14
- jne G_M51875_IG37
+ jne G_M51875_IG31
;; size=15 bbWeight=1 PerfScore 7.00
-G_M51875_IG07: ; bbWeight=1, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG05: ; bbWeight=1, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov r12, gword ptr [rax+0x48]
; gcrRegs +[r12]
test r12, r12
- jne SHORT G_M51875_IG11
+ jne SHORT G_M51875_IG07
;; size=9 bbWeight=1 PerfScore 3.25
-G_M51875_IG08: ; bbWeight=0, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG06: ; bbWeight=0, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r12]
mov rdi, gword ptr [rax+0x30]
; gcrRegs +[rdi]
- mov r12, gword ptr [rdi+0x18]
+ mov rdi, gword ptr [rdi+0x18]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
+ test rdi, rdi
+ cmove rdi, rsi
+ mov r12, rdi
; gcrRegs +[r12]
test r12, r12
- jne SHORT G_M51875_IG09
- mov rdi, 0xD1FFAB1E
- mov r12, rdi
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M51875_IG09: ; bbWeight=0, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi]
- test r12, r12
- jne SHORT G_M51875_IG10
- mov rdi, 0xD1FFAB1E
- ; gcrRegs +[rdi]
- mov r12, rdi
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M51875_IG10: ; bbWeight=0, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdi]
+ cmove r12, rsi
lea rdi, bword ptr [rax+0x48]
+ ; gcrRegs -[rdi]
; byrRegs +[rdi]
mov rsi, r12
- ; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG11: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG07: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
cmp r13, r12
- je SHORT G_M51875_IG14
+ je SHORT G_M51875_IG10
;; size=5 bbWeight=1 PerfScore 1.25
-G_M51875_IG12: ; bbWeight=0.43, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M51875_IG08: ; bbWeight=0.43, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
test r13, r13
- je G_M51875_IG26
+ je G_M51875_IG22
test r12, r12
- je G_M51875_IG26
+ je G_M51875_IG22
mov eax, dword ptr [r13+0x08]
mov dword ptr [rbp-0x34], eax
cmp eax, dword ptr [r12+0x08]
- jne G_M51875_IG26
+ jne G_M51875_IG22
;; size=36 bbWeight=0.43 PerfScore 4.08
-G_M51875_IG13: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M51875_IG09: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
mov edi, 1
call [<unknown method>]
; gcr arg pop 0
@@ -223,9 +210,9 @@ G_M51875_IG13: ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=
; byrRegs -[rsi rdi]
; gcr arg pop 0
test eax, eax
- je G_M51875_IG26
+ je G_M51875_IG22
;; size=75 bbWeight=1 PerfScore 21.50
-G_M51875_IG14: ; bbWeight=0.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M51875_IG10: ; bbWeight=0.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rdi, gword ptr [r15+0x08]
; gcrRegs +[rdi]
@@ -236,7 +223,7 @@ G_M51875_IG14: ; bbWeight=0.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
; gcr arg pop 0
nop
;; size=21 bbWeight=0.33 PerfScore 1.83
-G_M51875_IG15: ; bbWeight=0.33, epilog, nogc, extend
+G_M51875_IG11: ; bbWeight=0.33, epilog, nogc, extend
add rsp, 24
pop rbx
pop r12
@@ -246,37 +233,37 @@ G_M51875_IG15: ; bbWeight=0.33, epilog, nogc, extend
pop rbp
ret
;; size=15 bbWeight=0.33 PerfScore 1.42
-G_M51875_IG16: ; bbWeight=0.67, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M51875_IG12: ; bbWeight=0.67, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax] +[rbx r13 r15]
mov edi, r8d
mov rdx, 0xD1FFAB1E ; static handle
movzx r9, byte ptr [rdi+rdx]
and r9d, 31
;; size=22 bbWeight=0.67 PerfScore 1.83
-G_M51875_IG17: ; bbWeight=0.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG13: ; bbWeight=0.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov edi, 1
shlx edi, edi, r9d
test edi, 287
- jne SHORT G_M51875_IG19
+ jne SHORT G_M51875_IG15
;; size=18 bbWeight=0.67 PerfScore 1.33
-G_M51875_IG18: ; bbWeight=2.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG14: ; bbWeight=2.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
cmp r8d, 45
...
+21 (+1.77%) : 7112.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
@@ -33,55 +33,55 @@
;* V21 tmp16 [V21,T21] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
; V22 tmp17 [V22,T14] ( 2, 4.01) int -> rdx "Inlining Arg"
;* V23 tmp18 [V23 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V24 tmp19 [V24,T29] ( 4, 0 ) int -> rdi "Inline stloc first use temp"
+; V24 tmp19 [V24,T28] ( 4, 0 ) int -> rdi "Inline stloc first use temp"
;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V26 tmp21 [V26,T30] ( 4, 0 ) int -> rdi "Inline stloc first use temp"
+; V26 tmp21 [V26,T29] ( 4, 0 ) int -> rdi "Inline stloc first use temp"
;* V27 tmp22 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
;* V28 tmp23 [V28 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V29 tmp24 [V29,T23] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
+; V29 tmp24 [V29,T22] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
;* V30 tmp25 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V31 tmp26 [V31,T26] ( 4, 0 ) byref -> rdi "Inlining Arg"
+; V31 tmp26 [V31,T25] ( 4, 0 ) byref -> rdi "Inlining Arg"
;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V33 tmp28 [V33,T32] ( 3, 0 ) int -> r13 "Inlining Arg"
-; V34 tmp29 [V34,T36] ( 2, 0 ) byref -> [rbp-0x30] spill-single-def "Inlining Arg"
+; V33 tmp28 [V33,T31] ( 3, 0 ) int -> r13 "Inlining Arg"
+; V34 tmp29 [V34,T35] ( 2, 0 ) byref -> [rbp-0x30] spill-single-def "Inlining Arg"
;* V35 tmp30 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp31 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V38 tmp33 [V38 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V39 tmp34 [V39,T37] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V39 tmp34 [V39,T36] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V41 tmp36 [V41,T24] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
+; V41 tmp36 [V41,T23] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V43 tmp38 [V43,T27] ( 4, 0 ) byref -> rdi "Inlining Arg"
+; V43 tmp38 [V43,T26] ( 4, 0 ) byref -> rdi "Inlining Arg"
;* V44 tmp39 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V45 tmp40 [V45,T33] ( 3, 0 ) int -> r13 "Inlining Arg"
-; V46 tmp41 [V46,T38] ( 2, 0 ) byref -> [rbp-0x38] spill-single-def "Inlining Arg"
+; V45 tmp40 [V45,T32] ( 3, 0 ) int -> r13 "Inlining Arg"
+; V46 tmp41 [V46,T37] ( 2, 0 ) byref -> [rbp-0x38] spill-single-def "Inlining Arg"
;* V47 tmp42 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V48 tmp43 [V48 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V49 tmp44 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V50 tmp45 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V51 tmp46 [V51,T39] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V51 tmp46 [V51,T38] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V53 tmp48 [V53,T25] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
+; V53 tmp48 [V53,T24] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
;* V54 tmp49 [V54 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V55 tmp50 [V55,T28] ( 4, 0 ) byref -> rdi "Inlining Arg"
+; V55 tmp50 [V55,T27] ( 4, 0 ) byref -> rdi "Inlining Arg"
;* V56 tmp51 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V57 tmp52 [V57,T34] ( 3, 0 ) int -> r13 "Inlining Arg"
-; V58 tmp53 [V58,T40] ( 2, 0 ) byref -> [rbp-0x40] spill-single-def "Inlining Arg"
+; V57 tmp52 [V57,T33] ( 3, 0 ) int -> r13 "Inlining Arg"
+; V58 tmp53 [V58,T39] ( 2, 0 ) byref -> [rbp-0x40] spill-single-def "Inlining Arg"
;* V59 tmp54 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V60 tmp55 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V63 tmp58 [V63,T41] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V63 tmp58 [V63,T40] ( 2, 0 ) byref -> rcx "Inlining Arg"
; V64 tmp59 [V64,T04] ( 4, 45.60) int -> rdi "Inline stloc first use temp"
;* V65 tmp60 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
; V66 tmp61 [V66,T05] ( 3, 45.60) ushort -> rsi "Inlining Arg"
-; V67 tmp62 [V67,T31] ( 4, 0 ) int -> rdi "Inline stloc first use temp"
+; V67 tmp62 [V67,T30] ( 4, 0 ) int -> rdi "Inline stloc first use temp"
;* V68 tmp63 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-; V69 tmp64 [V69,T42] ( 2, 0 ) byref -> rsi single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-; V70 tmp65 [V70,T45] ( 2, 0 ) int -> rax "field V25._length (fldOffset=0x8)" P-INDEP
-; V71 tmp66 [V71,T43] ( 2, 0 ) byref -> rsi "field V27._reference (fldOffset=0x0)" P-INDEP
-; V72 tmp67 [V72,T46] ( 2, 0 ) int -> rax "field V27._length (fldOffset=0x8)" P-INDEP
+; V69 tmp64 [V69,T41] ( 2, 0 ) byref -> rsi single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+; V70 tmp65 [V70,T44] ( 2, 0 ) int -> rax "field V25._length (fldOffset=0x8)" P-INDEP
+; V71 tmp66 [V71,T42] ( 2, 0 ) byref -> rsi "field V27._reference (fldOffset=0x0)" P-INDEP
+; V72 tmp67 [V72,T45] ( 2, 0 ) int -> rax "field V27._length (fldOffset=0x8)" P-INDEP
;* V73 tmp68 [V73 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V75 tmp70 [V75 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP
@@ -102,12 +102,11 @@
;* V90 tmp85 [V90 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
; V91 tmp86 [V91,T08] ( 2, 22.80) byref -> rax "field V65._reference (fldOffset=0x0)" P-INDEP
; V92 tmp87 [V92,T09] ( 2, 22.80) int -> rcx "field V65._length (fldOffset=0x8)" P-INDEP
-; V93 tmp88 [V93,T44] ( 2, 0 ) byref -> rsi single-def "field V68._reference (fldOffset=0x0)" P-INDEP
-; V94 tmp89 [V94,T47] ( 2, 0 ) int -> rax "field V68._length (fldOffset=0x8)" P-INDEP
+; V93 tmp88 [V93,T43] ( 2, 0 ) byref -> rsi single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+; V94 tmp89 [V94,T46] ( 2, 0 ) int -> rax "field V68._length (fldOffset=0x8)" P-INDEP
; V95 cse0 [V95,T07] ( 8, 29.66) int -> r13 multi-def "CSE - aggressive"
-; V96 cse1 [V96,T22] ( 9, 0 ) ref -> rsi multi-def "CSE - conservative"
-; V97 cse2 [V97,T06] ( 3, 34.20) long -> r13 "CSE - aggressive"
-; V98 rat0 [V98,T35] ( 3, 0 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
+; V96 cse1 [V96,T06] ( 3, 34.20) long -> r13 "CSE - aggressive"
+; V97 rat0 [V97,T34] ( 3, 0 ) int -> rcx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 24
@@ -361,17 +360,17 @@ G_M9458_IG29: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, b
mov r13d, ecx
test r13d, r13d
jge SHORT G_M9458_IG30
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ ; byrRegs -[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
- ; byrRegs -[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; byrRegs -[rax]
; gcr arg pop 0
- ;; size=61 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M9458_IG30: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
cmp r13d, 2
jb G_M9458_IG40
@@ -418,17 +417,17 @@ G_M9458_IG32: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, b
mov r13d, ecx
test r13d, r13d
jge SHORT G_M9458_IG33
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ ; byrRegs -[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
- ; byrRegs -[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; byrRegs -[rax]
; gcr arg pop 0
- ;; size=61 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M9458_IG33: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
cmp r13d, 2
jb G_M9458_IG40
@@ -475,17 +474,17 @@ G_M9458_IG35: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, b
mov r13d, ecx
test r13d, r13d
jge SHORT G_M9458_IG36
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
+ ; byrRegs -[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
- ; byrRegs -[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; byrRegs -[rax]
; gcr arg pop 0
- ;; size=61 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M9458_IG36: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
cmp r13d, 2
jb SHORT G_M9458_IG40
@@ -622,7 +621,7 @@ RWD00 dd G_M9458_IG28 - G_M9458_IG02
dd G_M9458_IG31 - G_M9458_IG02
-; Total bytes of code 1188, prolog size 25, PerfScore 472.26, instruction count 284, allocated bytes for code 1188 (MethodHash=ed90db0d) for method System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
+Total bytes of code 1209, prolog size 25, PerfScore 472.26, instruction count 284, allocated bytes for code 1209 (MethodHash=ed90db0d) for method System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
; ============================================================
Unwind Info:
+10 (+1.95%) : 726632.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
@@ -16,7 +16,7 @@
; V04 tmp1 [V04,T00] ( 13, 26 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSharpParseOptions>
; V05 tmp2 [V05,T15] ( 3, 2 ) int -> r13 "Inline return value spill temp"
; V06 tmp3 [V06,T01] ( 6, 10.00) int -> r14 "impAppendStmt"
-; V07 tmp4 [V07,T11] ( 2, 4 ) int -> rax "impAppendStmt"
+; V07 tmp4 [V07,T12] ( 2, 4 ) int -> rax "impAppendStmt"
; V08 tmp5 [V08,T06] ( 4, 6 ) int -> rcx "impAppendStmt"
;* V09 tmp6 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -27,7 +27,7 @@
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref
; V16 tmp13 [V16,T14] ( 3, 2 ) ref -> rsi
;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref single-def
-; V18 tmp15 [V18,T12] ( 4, 3 ) ref -> rsi
+; V18 tmp15 [V18,T10] ( 5, 5 ) ref -> rsi
;* V19 tmp16 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V20 tmp17 [V20,T04] ( 4, 8 ) ref -> [rbp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
; V21 tmp18 [V21,T05] ( 4, 8 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
@@ -39,7 +39,7 @@
; V27 tmp24 [V27,T09] ( 3, 6 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.LazyHelper>
; V28 tmp25 [V28,T17] ( 3, 2 ) int -> rdi "Inline return value spill temp"
;* V29 tmp26 [V29 ] ( 0, 0 ) struct ( 8) zero-ref multireg-ret single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-; V30 tmp27 [V30,T10] ( 2, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+; V30 tmp27 [V30,T11] ( 2, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[System.String]>
;* V31 tmp28 [V31 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
; V32 tmp29 [V32,T18] ( 2, 2 ) ref -> rax class-hnd "Inline return value spill temp" <<unknown class>>
;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
@@ -71,8 +71,7 @@
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "field V38._countAdjustment (fldOffset=0x8)" P-DEP
;* V60 tmp57 [V60 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._root (fldOffset=0x0)" P-INDEP
;* V61 tmp58 [V61 ] ( 0, 0 ) ref -> zero-ref single-def "field V44._comparers (fldOffset=0x8)" P-INDEP
-; V62 cse0 [V62,T22] ( 2, 0 ) ref -> rsi "CSE - conservative"
-; V63 cse1 [V63,T13] ( 3, 3 ) int -> r14 "CSE - moderate"
+; V62 cse0 [V62,T13] ( 3, 3 ) int -> r14 "CSE - moderate"
;
; Lcl frame size = 24
@@ -92,15 +91,15 @@ G_M50526_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M50526_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rbx+0x2C]
cmp r15d, r14d
- je G_M50526_IG16
+ je G_M50526_IG13
test r15d, r15d
- je G_M50526_IG14
+ je G_M50526_IG12
;; size=22 bbWeight=1 PerfScore 4.50
G_M50526_IG03: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
cmp r15d, 0xD1FFAB1E
- je G_M50526_IG14
+ je G_M50526_IG12
cmp r15d, 0xD1FFAB1E
- je G_M50526_IG14
+ je G_M50526_IG12
mov r13d, r15d
;; size=29 bbWeight=0.67 PerfScore 1.83
G_M50526_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -119,13 +118,13 @@ G_M50526_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, gword ptr [rbx+0x20]
mov dword ptr [r12+0x14], ecx
test ecx, ecx
- jne G_M50526_IG18
+ jne G_M50526_IG16
;; size=50 bbWeight=1 PerfScore 12.75
G_M50526_IG05: ; bbWeight=1, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rdx]
xor esi, esi
;; size=2 bbWeight=1 PerfScore 0.25
-G_M50526_IG06: ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+G_M50526_IG06: ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
mov dword ptr [r12+0x10], esi
mov byte ptr [r12+0x18], al
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -179,15 +178,15 @@ G_M50526_IG06: ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
; byrRegs -[rdi]
mov dword ptr [r12+0x2C], r14d
test r14d, r14d
- je SHORT G_M50526_IG11
- ;; size=153 bbWeight=1 PerfScore 22.75
-G_M50526_IG07: ; bbWeight=0.67, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+ je G_M50526_IG11
+ ;; size=157 bbWeight=1 PerfScore 22.75
+G_M50526_IG07: ; bbWeight=0.67, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
cmp r14d, 0xD1FFAB1E
- je SHORT G_M50526_IG11
+ je G_M50526_IG11
cmp r14d, 0xD1FFAB1E
- je SHORT G_M50526_IG11
+ je G_M50526_IG11
mov edi, r14d
- ;; size=21 bbWeight=0.67 PerfScore 1.83
+ ;; size=29 bbWeight=0.67 PerfScore 1.83
G_M50526_IG08: ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
mov dword ptr [r12+0x28], edi
mov rdi, 0xD1FFAB1E ; System.Collections.Immutable.ImmutableArray`1[System.String]
@@ -216,7 +215,7 @@ G_M50526_IG08: ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
test rbx, rbx
- je SHORT G_M50526_IG10
+ je SHORT G_M50526_IG15
mov rdi, rbx
; gcrRegs +[rdi]
xor rsi, rsi
@@ -228,27 +227,11 @@ G_M50526_IG08: ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
mov rsi, rax
; gcrRegs +[rsi]
;; size=90 bbWeight=1 PerfScore 17.25
-G_M50526_IG09: ; bbWeight=1, gcrefRegs=1040 {rsi r12}, byrefRegs=0000 {}, byref, isz
+G_M50526_IG09: ; bbWeight=1, gcrefRegs=1040 {rsi r12}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ mov rdi, 0xD1FFAB1E ; const ptr
test rsi, rsi
- jne SHORT G_M50526_IG12
- jmp SHORT G_M50526_IG15
- ;; size=7 bbWeight=1 PerfScore 3.25
-G_M50526_IG10: ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi]
- xor rsi, rsi
- ; gcrRegs +[rsi]
- jmp SHORT G_M50526_IG09
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M50526_IG11: ; bbWeight=0.33, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rsi] +[rbx]
- ; GC ptr vars +{V50}
- mov edi, 0x4B0
- jmp SHORT G_M50526_IG08
- ;; size=7 bbWeight=0.33 PerfScore 0.75
-G_M50526_IG12: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1040 {rsi r12}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rbx] +[rsi]
- ; GC ptr vars -{V50}
+ cmove rsi, gword ptr [rdi]
lea rdi, bword ptr [r12+0x20]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
@@ -258,8 +241,8 @@ G_M50526_IG12: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1040 {
mov dword ptr [r12+0x28], r13d
mov rax, r12
; gcrRegs +[rax]
- ;; size=23 bbWeight=1 PerfScore 3.75
-G_M50526_IG13: ; bbWeight=1, epilog, nogc, extend
+ ;; size=40 bbWeight=1 PerfScore 7.25
+G_M50526_IG10: ; bbWeight=1, epilog, nogc, extend
add rsp, 24
pop rbx
pop r12
@@ -269,24 +252,23 @@ G_M50526_IG13: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M50526_IG14: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r12] +[rbx]
+G_M50526_IG11: ; bbWeight=0.33, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax] +[rbx]
+ ; GC ptr vars +{V50}
+ mov edi, 0x4B0
+ jmp G_M50526_IG08
+ ;; size=10 bbWeight=0.33 PerfScore 0.75
+G_M50526_IG12: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[r12]
+ ; GC ptr vars -{V50}
mov r13d, 0x4B0
jmp G_M50526_IG04
;; size=11 bbWeight=0.33 PerfScore 0.75
-G_M50526_IG15: ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbx] +[r12]
- mov rax, 0xD1FFAB1E ; const ptr
- mov rsi, gword ptr [rax]
- ; gcrRegs +[rsi]
- jmp SHORT G_M50526_IG12
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50526_IG16: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi r12] +[rbx]
+G_M50526_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rax, rbx
; gcrRegs +[rax]
;; size=3 bbWeight=0 PerfScore 0.00
-G_M50526_IG17: ; bbWeight=0, epilog, nogc, extend
+G_M50526_IG14: ; bbWeight=0, epilog, nogc, extend
add rsp, 24
pop rbx
pop r12
@@ -296,8 +278,14 @@ G_M50526_IG17: ; bbWeight=0, epilog, nogc, extend
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M50526_IG18: ; bbWeight=0, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax] +[r12]
+G_M50526_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rax rbx] +[r12]
+ xor rsi, rsi
+ ; gcrRegs +[rsi]
+ jmp SHORT G_M50526_IG09
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M50526_IG16: ; bbWeight=0, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rsi] +[rbx]
; GC ptr vars +{V50}
dec ecx
cmp ecx, 1
@@ -306,7 +294,7 @@ G_M50526_IG18: ; bbWeight=0, gcVars=0000000000080000 {V50}, gcrefRegs=100
jmp G_M50526_IG06
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 513, prolog size 19, PerfScore 81.17, instruction count 126, allocated bytes for code 513 (MethodHash=875e3aa1) for method Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
+Total bytes of code 523, prolog size 19, PerfScore 81.42, instruction count 123, allocated bytes for code 523 (MethodHash=875e3aa1) for method Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
; ============================================================
Unwind Info:
+47 (+2.41%) : 533670.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan
1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)@@ -10,53 +10,52 @@
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V01 arg1 [V01,T05] ( 10, 3.67) ref -> r15 class-hnd single-def <int[]>
-; V02 arg2 [V02,T02] ( 8, 4 ) ref -> rbx class-hnd single-def <System.Type>
+; V01 arg1 [V01,T06] ( 10, 3.67) ref -> r15 class-hnd single-def <int[]>
+; V02 arg2 [V02,T03] ( 8, 4 ) ref -> rbx class-hnd single-def <System.Type>
;* V03 arg3 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-; V04 arg4 [V04,T22] ( 8, 1.67) ref -> [rbp+0x10] class-hnd single-def <int[]>
-; V05 arg5 [V05,T18] ( 6, 2 ) ref -> [rbp+0x18] class-hnd single-def <System.Type>
-; V06 arg6 [V06,T21] ( 3, 2 ) ref -> [rbp+0x20] class-hnd single-def <System.Type[]>
-; V07 arg7 [V07,T23] ( 7, 1.66) ref -> [rbp+0x28] class-hnd single-def <System.Object[]>
-; V08 loc0 [V08,T16] ( 5, 3 ) ubyte -> [rbp-0x2C]
-; V09 loc1 [V09,T17] ( 5, 3 ) ubyte -> [rbp-0x30]
-; V10 loc2 [V10,T06] ( 19, 5.04) int -> [rbp-0x34]
-; V11 loc3 [V11,T14] ( 8, 3 ) ref -> [rbp-0x50] class-hnd <System.Type>
-; V12 loc4 [V12,T15] ( 8, 3 ) ref -> [rbp-0x58] class-hnd <System.Type>
+; V04 arg4 [V04,T21] ( 8, 1.67) ref -> [rbp+0x10] class-hnd single-def <int[]>
+; V05 arg5 [V05,T17] ( 6, 2 ) ref -> [rbp+0x18] class-hnd single-def <System.Type>
+; V06 arg6 [V06,T20] ( 3, 2 ) ref -> [rbp+0x20] class-hnd single-def <System.Type[]>
+; V07 arg7 [V07,T22] ( 7, 1.66) ref -> [rbp+0x28] class-hnd single-def <System.Object[]>
+; V08 loc0 [V08,T15] ( 5, 3 ) ubyte -> [rbp-0x2C]
+; V09 loc1 [V09,T16] ( 5, 3 ) ubyte -> [rbp-0x30]
+; V10 loc2 [V10,T02] ( 24, 8.01) int -> [rbp-0x34]
+; V11 loc3 [V11,T13] ( 8, 3 ) ref -> [rbp-0x40] class-hnd <System.Type>
+; V12 loc4 [V12,T14] ( 8, 3 ) ref -> [rbp-0x48] class-hnd <System.Type>
;* V13 loc5 [V13 ] ( 0, 0 ) int -> zero-ref
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V15 tmp1 [V15,T03] ( 6, 6 ) int -> registers "Span.get_Item index"
-; V16 tmp2 [V16,T04] ( 6, 6 ) int -> registers "Span.get_Item index"
-; V17 tmp3 [V17,T19] ( 6, 2 ) ref -> registers "guarded devirt return temp"
-; V18 tmp4 [V18,T00] ( 22, 8.32) ref -> [rbp-0x60] "guarded devirt arg temp"
+; V15 tmp1 [V15,T04] ( 6, 6 ) int -> registers "Span.get_Item index"
+; V16 tmp2 [V16,T05] ( 6, 6 ) int -> registers "Span.get_Item index"
+; V17 tmp3 [V17,T18] ( 6, 2 ) ref -> registers "guarded devirt return temp"
+; V18 tmp4 [V18,T00] ( 22, 8.32) ref -> [rbp-0x50] "guarded devirt arg temp"
;* V19 tmp5 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-; V20 tmp6 [V20,T20] ( 6, 2 ) ref -> registers "guarded devirt return temp"
-; V21 tmp7 [V21,T01] ( 22, 8.32) ref -> [rbp-0x68] "guarded devirt arg temp"
+; V20 tmp6 [V20,T19] ( 6, 2 ) ref -> registers "guarded devirt return temp"
+; V21 tmp7 [V21,T01] ( 22, 8.32) ref -> [rbp-0x58] "guarded devirt arg temp"
;* V22 tmp8 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-; V23 tmp9 [V23,T28] ( 8, 0.12) ref -> [rbp-0x70] class-hnd "Inline stloc first use temp" <System.RuntimeType>
+; V23 tmp9 [V23,T27] ( 8, 0.12) ref -> [rbp-0x60] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V24 tmp10 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Signature>
;* V25 tmp11 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Signature>
-; V26 tmp12 [V26,T29] ( 8, 0.12) ref -> [rbp-0x78] class-hnd "Inline stloc first use temp" <System.RuntimeType>
+; V26 tmp12 [V26,T28] ( 8, 0.12) ref -> [rbp-0x68] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V27 tmp13 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Signature>
;* V28 tmp14 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Signature>
-; V29 tmp15 [V29,T11] ( 3, 2 ) byref -> [rbp-0x80] single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V30 tmp16 [V30,T09] ( 7, 2 ) int -> r14 single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V31 tmp17 [V31,T12] ( 3, 2 ) byref -> [rbp-0x88] single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V32 tmp18 [V32,T10] ( 7, 2 ) int -> [rbp-0x38] single-def "field V03._length (fldOffset=0x8)" P-INDEP
-; V33 tmp19 [V33,T24] ( 6, 0.24) ref -> rcx "arr expr"
-; V34 tmp20 [V34,T26] ( 6, 0.24) int -> registers "index expr"
-; V35 tmp21 [V35,T25] ( 6, 0.24) ref -> rdx "arr expr"
-; V36 tmp22 [V36,T27] ( 6, 0.24) int -> rcx "index expr"
-; V37 tmp23 [V37,T08] ( 8, 4 ) int -> registers "fgMakeTemp is creating a new local variable"
-; V38 cse0 [V38,T30] ( 3, 0.12) int -> rax "CSE - conservative"
-; V39 cse1 [V39,T31] ( 3, 0.12) int -> rcx "CSE - conservative"
-; V40 cse2 [V40,T32] ( 3, 0.00) int -> rdi "CSE - conservative"
-; V41 cse3 [V41,T33] ( 3, 0.00) int -> rcx "CSE - conservative"
-; V42 cse4 [V42,T13] ( 7, 3.99) int -> [rbp-0x3C] spill-single-def "CSE - moderate"
-; V43 cse5 [V43,T07] ( 7, 4.95) long -> [rbp-0x48] spill-single-def "CSE - moderate"
-; TEMP_02 ref -> [rbp-0x90]
-; TEMP_01 long -> [rbp-0x98]
+; V29 tmp15 [V29,T10] ( 3, 2 ) byref -> [rbp-0x70] single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V30 tmp16 [V30,T08] ( 7, 2 ) int -> r14 single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V31 tmp17 [V31,T11] ( 3, 2 ) byref -> [rbp-0x78] single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V32 tmp18 [V32,T09] ( 7, 2 ) int -> r13 single-def "field V03._length (fldOffset=0x8)" P-INDEP
+; V33 tmp19 [V33,T23] ( 6, 0.24) ref -> rdx "arr expr"
+; V34 tmp20 [V34,T25] ( 6, 0.24) int -> rcx "index expr"
+; V35 tmp21 [V35,T24] ( 6, 0.24) ref -> rdx "arr expr"
+; V36 tmp22 [V36,T26] ( 6, 0.24) int -> rcx "index expr"
+; V37 tmp23 [V37,T07] ( 8, 4 ) int -> registers "fgMakeTemp is creating a new local variable"
+; V38 cse0 [V38,T29] ( 3, 0.12) int -> rcx "CSE - conservative"
+; V39 cse1 [V39,T30] ( 3, 0.12) int -> rcx "CSE - conservative"
+; V40 cse2 [V40,T31] ( 3, 0.00) int -> rcx "CSE - conservative"
+; V41 cse3 [V41,T32] ( 3, 0.00) int -> rcx "CSE - conservative"
+; V42 cse4 [V42,T12] ( 7, 3.99) int -> [rbp-0x38] spill-single-def "CSE - moderate"
+; TEMP_02 ref -> [rbp-0x80]
+; TEMP_01 long -> [rbp-0x88]
;
-; Lcl frame size = 120
+; Lcl frame size = 104
G_M3967_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
@@ -65,13 +64,12 @@ G_M3967_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push r13
push r12
push rbx
- sub rsp, 120
- lea rbp, [rsp+0xA0]
+ sub rsp, 104
+ lea rbp, [rsp+0x90]
xor eax, eax
- mov qword ptr [rbp-0x90], rax
- mov bword ptr [rbp-0x88], r8
+ mov qword ptr [rbp-0x80], rax
+ mov bword ptr [rbp-0x78], r8
; GC ptr vars +{V31}
- mov dword ptr [rbp-0x38], r9d
mov r12, rdi
; byrRegs +[r12]
mov r14d, esi
@@ -79,6 +77,7 @@ G_M3967_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r15]
mov rbx, rcx
; gcrRegs +[rbx]
+ mov r13d, r9d
mov rsi, gword ptr [rbp+0x10]
; gcrRegs +[rsi]
mov rcx, gword ptr [rbp+0x18]
@@ -87,8 +86,8 @@ G_M3967_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rdx]
mov r8, gword ptr [rbp+0x28]
; gcrRegs +[r8]
- ;; size=70 bbWeight=1 PerfScore 15.00
-G_M3967_IG02: ; bbWeight=1, gcVars=0000000000001000 {V31}, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, gcvars, byref, isz
+ ;; size=63 bbWeight=1 PerfScore 14.25
+G_M3967_IG02: ; bbWeight=1, gcVars=0000000000000800 {V31}, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, gcvars, byref, isz
test rbx, rbx
je SHORT G_M3967_IG04
;; size=5 bbWeight=1 PerfScore 1.25
@@ -96,7 +95,7 @@ G_M3967_IG03: ; bbWeight=0, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byre
mov gword ptr [rbp+0x18], rcx
test rcx, rcx
mov rcx, gword ptr [rbp+0x18]
- je G_M3967_IG41
+ je G_M3967_IG42
;; size=17 bbWeight=0 PerfScore 0.00
G_M3967_IG04: ; bbWeight=1, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref, isz
mov gword ptr [rbp+0x18], rcx
@@ -106,7 +105,7 @@ G_M3967_IG04: ; bbWeight=1, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byre
G_M3967_IG05: ; bbWeight=0, gcrefRegs=814C {rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref
; gcrRegs -[rcx]
test rbx, rbx
- je G_M3967_IG39
+ je G_M3967_IG40
;; size=9 bbWeight=0 PerfScore 0.00
G_M3967_IG06: ; bbWeight=1, gcrefRegs=814C {rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref
xor r9d, r9d
@@ -116,261 +115,106 @@ G_M3967_IG06: ; bbWeight=1, gcrefRegs=814C {rdx rbx rsi r8 r15}, byrefReg
xor r11d, r11d
mov gword ptr [rbp+0x20], rdx
mov edi, dword ptr [rdx+0x08]
- mov dword ptr [rbp-0x3C], edi
+ mov dword ptr [rbp-0x38], edi
test edi, edi
- jle G_M3967_IG25
+ jle G_M3967_IG26
;; size=35 bbWeight=1 PerfScore 8.00
G_M3967_IG07: ; bbWeight=0.33, gcrefRegs=8148 {rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref, isz
; gcrRegs -[rdx]
test r8, r8
- je G_M3967_IG46
+ je G_M3967_IG47
test r15, r15
- je G_M3967_IG46
+ je G_M3967_IG47
test rsi, rsi
- je G_M3967_IG46
+ je G_M3967_IG47
mov gword ptr [rbp+0x28], r8
cmp dword ptr [r8+0x08], edi
- jl SHORT G_M3967_IG13
+ jl G_M3967_IG13
cmp dword ptr [r15+0x08], edi
jl SHORT G_M3967_IG12
mov gword ptr [rbp+0x10], rsi
cmp dword ptr [rsi+0x08], edi
jl SHORT G_M3967_IG11
- ;; size=52 bbWeight=0.33 PerfScore 5.88
+ ;; size=56 bbWeight=0.33 PerfScore 5.88
G_M3967_IG08: ; bbWeight=0.99, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, byref, isz
; gcrRegs -[rsi r8]
- mov dword ptr [rbp-0x34], r11d
mov r8d, r11d
- mov qword ptr [rbp-0x48], r8
mov rsi, gword ptr [rbp+0x28]
; gcrRegs +[rsi]
- mov rsi, gword ptr [rsi+8*r8+0x10]
- mov r13, 0xD1FFAB1E ; const ptr
- cmp rsi, gword ptr [r13]
- je G_M3967_IG44
+ mov r8, gword ptr [rsi+8*r8+0x10]
+ ; gcrRegs +[r8]
+ mov rsi, 0xD1FFAB1E ; const ptr
+ ; gcrRegs -[rsi]
+ cmp r8, gword ptr [rsi]
+ je G_M3967_IG45
test rbx, rbx
je SHORT G_M3967_IG14
- ;; size=45 bbWeight=0.99 PerfScore 10.64
+ ;; size=36 bbWeight=0.99 PerfScore 8.66
G_M3967_IG09: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, byref, isz
- ; gcrRegs -[rsi]
- mov bword ptr [rbp-0x80], r12
+ ; gcrRegs -[r8]
+ mov bword ptr [rbp-0x70], r12
; GC ptr vars +{V29}
- lea r12d, [r14-0x01]
+ mov dword ptr [rbp-0x34], r11d
+ mov r12d, r11d
; byrRegs -[r12]
- cmp dword ptr [r15+4*r8+0x10], r12d
- mov r8, qword ptr [rbp-0x48]
+ mov qword ptr [rbp-0x88], r12
+ lea r12d, [r14-0x01]
+ mov rax, qword ptr [rbp-0x88]
+ cmp dword ptr [r15+4*rax+0x10], r12d
+ mov r11d, dword ptr [rbp-0x34]
jl SHORT G_M3967_IG10
mov r12, rbx
; gcrRegs +[r12]
- mov r13, r12
- ; gcrRegs +[r13]
- mov r12, bword ptr [rbp-0x80]
+ mov dword ptr [rbp-0x34], r11d
+ mov rsi, r12
+ ; gcrRegs +[rsi]
+ mov r12, bword ptr [rbp-0x70]
; gcrRegs -[r12]
; byrRegs +[r12]
- jmp SHORT G_M3967_IG16
- ;; size=31 bbWeight=0 PerfScore 0.00
-G_M3967_IG10: ; bbWeight=0, gcVars=0000000000001800 {V29 V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[r13]
+ jmp SHORT G_M3967_IG17
+ ;; size=56 bbWeight=0 PerfScore 0.00
+G_M3967_IG10: ; bbWeight=0, gcVars=0000000000000C00 {V29 V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rsi]
; byrRegs -[r12]
- mov r12, bword ptr [rbp-0x80]
+ mov r12, bword ptr [rbp-0x70]
; byrRegs +[r12]
jmp SHORT G_M3967_IG14
;; size=6 bbWeight=0 PerfScore 0.00
-G_M3967_IG11: ; bbWeight=0.17, gcVars=0000000000001000 {V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, gcvars, byref
+G_M3967_IG11: ; bbWeight=0.17, gcVars=0000000000000800 {V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, gcvars, byref
; GC ptr vars -{V29}
mov rsi, gword ptr [rbp+0x10]
; gcrRegs +[rsi]
- mov edi, dword ptr [rbp-0x3C]
+ mov edi, dword ptr [rbp-0x38]
mov r8, gword ptr [rbp+0x28]
; gcrRegs +[r8]
...
librariestestsnotieredcompilation.run.linux.x64.Release.mch
-2 (-2.90%) : 145057.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:
@@ -35,24 +35,24 @@
;* V24 tmp23 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V26 tmp25 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26 [V27,T07] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V28 tmp27 [V28,T03] ( 2, 2 ) int -> rax "Inline stloc first use temp"
+;* V27 tmp26 [V27,T06] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V28 tmp27 [V28,T03] ( 3, 3 ) int -> rsi "Inline stloc first use temp"
;* V29 tmp28 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V30 tmp29 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V31 tmp30 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V32 tmp31 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp32 [V33 ] ( 0, 0 ) int -> zero-ref "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33 [V34,T08] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33 [V34,T07] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
;* V35 tmp34 [V35 ] ( 0, 0 ) int -> zero-ref "field V05._value (fldOffset=0x0)" P-INDEP
;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36 [V37,T09] ( 0, 0 ) int -> zero-ref "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36 [V37,T08] ( 0, 0 ) int -> zero-ref "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp38 [V39 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V41 tmp40 [V41 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V43 tmp42 [V43 ] ( 0, 0 ) int -> zero-ref "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43 [V44,T10] ( 0, 0 ) int -> zero-ref "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43 [V44,T09] ( 0, 0 ) int -> zero-ref "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "field V11.Item1 (fldOffset=0x0)" P-INDEP
;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "field V11.Item2 (fldOffset=0x4)" P-INDEP
;* V47 tmp46 [V47 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,9 +67,8 @@
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "field V21._value (fldOffset=0x0)" P-INDEP
;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "field V22._value (fldOffset=0x0)" P-INDEP
;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "field V26.Item1 (fldOffset=0x0)" P-INDEP
-; V59 tmp58 [V59,T05] ( 2, 2 ) int -> rsi "field V26.Item2 (fldOffset=0x4)" P-INDEP
-; V60 cse0 [V60,T04] ( 3, 3 ) int -> rsi "CSE - moderate"
-; V61 cse1 [V61,T06] ( 3, 1.50) ref -> rsi "CSE - moderate"
+; V59 tmp58 [V59,T04] ( 2, 2 ) int -> rsi "field V26.Item2 (fldOffset=0x4)" P-INDEP
+; V60 cse0 [V60,T05] ( 3, 1.50) ref -> rsi "CSE - moderate"
;
; Lcl frame size = 0
@@ -85,12 +84,11 @@ G_M60991_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
mov edi, dword ptr [rdi+0x08]
; gcrRegs -[rdi]
mov esi, edi
- mov eax, esi
- cmp eax, edi
+ cmp esi, edi
ja SHORT G_M60991_IG07
test esi, esi
jge SHORT G_M60991_IG04
- ;; size=24 bbWeight=1 PerfScore 8.25
+ ;; size=22 bbWeight=1 PerfScore 8.00
G_M60991_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
@@ -116,7 +114,7 @@ G_M60991_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 69, prolog size 4, PerfScore 13.00, instruction count 23, allocated bytes for code 69 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 67, prolog size 4, PerfScore 12.75, instruction count 22, allocated bytes for code 67 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
; ============================================================
Unwind Info:
-2 (-1.21%) : 82746.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
@@ -12,13 +12,12 @@
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.ComponentModel.Composition.CompositionException>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Exception>
-; V04 tmp2 [V04,T00] ( 5, 10 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
+; V04 tmp2 [V04,T00] ( 6, 12 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
-; V08 tmp6 [V08,T03] ( 2, 2 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
+; V08 tmp6 [V08,T02] ( 2, 2 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
-; V10 cse0 [V10,T02] ( 3, 3 ) ref -> rbx "CSE - moderate"
;
; Lcl frame size = 0
@@ -61,18 +60,16 @@ G_M64768_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rdx rsi]
mov rdi, 0xD1FFAB1E ; const ptr
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rsi, rbx
+ mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
lea rdi, bword ptr [r15+0x78]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi r15]
+ ; gcrRegs -[rsi]
; byrRegs -[rdi]
- mov rdi, rbx
+ mov rdi, gword ptr [r15+0x78]
; gcrRegs +[rdi]
- ;; size=146 bbWeight=1 PerfScore 16.50
+ ;; size=144 bbWeight=1 PerfScore 18.00
G_M64768_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r15
@@ -80,7 +77,7 @@ G_M64768_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [<unknown method>]
;; size=10 bbWeight=1 PerfScore 3.50
-; Total bytes of code 165, prolog size 9, PerfScore 23.50, instruction count 33, allocated bytes for code 165 (MethodHash=0a0c02ff) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
+Total bytes of code 163, prolog size 9, PerfScore 25.00, instruction count 32, allocated bytes for code 163 (MethodHash=0a0c02ff) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
; ============================================================
Unwind Info:
-2 (-1.21%) : 82691.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5NullAsErrorsArgumentShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
@@ -12,13 +12,12 @@
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.ComponentModel.Composition.CompositionException>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Exception>
-; V04 tmp2 [V04,T00] ( 5, 10 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
+; V04 tmp2 [V04,T00] ( 6, 12 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
-; V08 tmp6 [V08,T03] ( 2, 2 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
+; V08 tmp6 [V08,T02] ( 2, 2 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
;* V09 tmp7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
-; V10 cse0 [V10,T02] ( 3, 3 ) ref -> rbx "CSE - moderate"
;
; Lcl frame size = 0
@@ -61,18 +60,16 @@ G_M61391_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rdx rsi]
mov rdi, 0xD1FFAB1E ; const ptr
- mov rbx, gword ptr [rdi]
- ; gcrRegs +[rbx]
- mov rsi, rbx
+ mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
lea rdi, bword ptr [r15+0x78]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi r15]
+ ; gcrRegs -[rsi]
; byrRegs -[rdi]
- mov rdi, rbx
+ mov rdi, gword ptr [r15+0x78]
; gcrRegs +[rdi]
- ;; size=146 bbWeight=1 PerfScore 16.50
+ ;; size=144 bbWeight=1 PerfScore 18.00
G_M61391_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r15
@@ -80,7 +77,7 @@ G_M61391_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [<unknown method>]
;; size=10 bbWeight=1 PerfScore 3.50
-; Total bytes of code 165, prolog size 9, PerfScore 23.50, instruction count 33, allocated bytes for code 165 (MethodHash=b7b31030) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
+Total bytes of code 163, prolog size 9, PerfScore 25.00, instruction count 32, allocated bytes for code 163 (MethodHash=b7b31030) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
; ============================================================
Unwind Info:
+3 (+0.24%) : 197291.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
@@ -155,10 +155,9 @@
; V144 tmp134 [V144,T62] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
; V145 tmp135 [V145,T66] ( 2, 4 ) long -> rsi "argument with side effect"
; V146 tmp136 [V146,T72] ( 6, 0 ) struct ( 8) [rbp-0x40] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-; V147 tmp137 [V147,T74] ( 2, 0 ) ref -> rdi "argument with side effect"
-; V148 tmp138 [V148,T75] ( 2, 0 ) ref -> rdi "argument with side effect"
+; V147 tmp137 [V147,T73] ( 2, 0 ) ref -> rdi "argument with side effect"
+; V148 tmp138 [V148,T74] ( 2, 0 ) ref -> rdi "argument with side effect"
; V149 cse0 [V149,T24] ( 3, 12 ) ref -> [rbp-0x88] spill-single-def "CSE - moderate"
-; V150 cse1 [V150,T73] ( 4, 0 ) ref -> rdi multi-def "CSE - moderate"
;
; Lcl frame size = 104
@@ -513,12 +512,13 @@ G_M3949_IG25: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0
; GC ptr vars -{V20}
test edx, edx
jne G_M3949_IG37
- mov rdi, 0xD1FFAB1E
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ mov rdi, rax
; gcrRegs +[rdi]
mov rax, rdi
- ; gcrRegs +[rax]
jmp SHORT G_M3949_IG27
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=26 bbWeight=0 PerfScore 0.00
G_M3949_IG26: ; bbWeight=2, gcVars=00000000000000000000000000000410 {V07 V20}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rdi]
; GC ptr vars +{V20}
@@ -721,7 +721,7 @@ G_M3949_IG39: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=50 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1238, prolog size 31, PerfScore 517.62, instruction count 298, allocated bytes for code 1238 (MethodHash=c5c9f092) for method XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
+Total bytes of code 1241, prolog size 31, PerfScore 517.62, instruction count 299, allocated bytes for code 1241 (MethodHash=c5c9f092) for method XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
; ============================================================
Unwind Info:
+7 (+1.01%) : 244521.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTestsDefault+NodeInteropTestsContextDefault:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
@@ -15,7 +15,7 @@
; V04 loc1 [V04,T02] ( 4, 12 ) ref -> r14 class-hnd exact <System.String>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-; V07 tmp2 [V07,T26] ( 2, 0 ) int -> rdi
+; V07 tmp2 [V07,T25] ( 2, 0 ) int -> rdi
; V08 tmp3 [V08,T23] ( 3, 0 ) ref -> r14
; V09 tmp4 [V09,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -68,8 +68,7 @@
; V57 PSPSym [V57,T20] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
; V58 cse0 [V58,T16] ( 4, 2 ) int -> rdi "CSE - moderate"
; V59 cse1 [V59,T17] ( 4, 2 ) int -> rdi "CSE - moderate"
-; V60 cse2 [V60,T25] ( 3, 0 ) ref -> rsi "CSE - moderate"
-; V61 cse3 [V61,T13] ( 3, 5 ) long -> r15 "CSE - moderate"
+; V60 cse2 [V60,T13] ( 3, 5 ) long -> r15 "CSE - moderate"
;
; Lcl frame size = 48
@@ -272,14 +271,14 @@ G_M55320_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sete dil
test dil, dil
jne SHORT G_M55320_IG20
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=47 bbWeight=0 PerfScore 0.00
G_M55320_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbp-0x24], -1
je SHORT G_M55320_IG21
@@ -426,7 +425,7 @@ G_M55320_IG33: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 694, prolog size 37, PerfScore 205.46, instruction count 192, allocated bytes for code 694 (MethodHash=458d27e7) for method System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
+Total bytes of code 701, prolog size 37, PerfScore 205.46, instruction count 192, allocated bytes for code 701 (MethodHash=458d27e7) for method System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
; ============================================================
Unwind Info:
+28 (+2.56%) : 101983.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> r12
; V10 loc7 [V10,T08] ( 3, 12 ) ref -> rdx class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T23] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T20] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V17 tmp6 [V17,T19] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T26] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V19 tmp8 [V19,T25] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V20 tmp9 [V20,T29] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V26 tmp15 [V26,T30] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T21] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V28 tmp17 [V28,T20] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T27] ( 3, 0 ) int -> r12 "Inlining Arg"
-; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> r13 "Inlining Arg"
+; V30 tmp19 [V30,T26] ( 3, 0 ) int -> r12 "Inlining Arg"
+; V31 tmp20 [V31,T31] ( 2, 0 ) byref -> r13 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V37 tmp26 [V37,T32] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T22] ( 4, 0 ) int -> rdi "Inlining Arg"
+; V41 tmp30 [V41,T21] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T28] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V43 tmp32 [V43,T27] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V44 tmp33 [V44,T33] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V50 tmp39 [V50,T34] ( 2, 0 ) byref -> rdi "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T23] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V52 tmp41 [V52,T22] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T29] ( 3, 0 ) int -> r14 "Inlining Arg"
-; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V54 tmp43 [V54,T28] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V55 tmp44 [V55,T35] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V61 tmp50 [V61,T36] ( 2, 0 ) byref -> rdi "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> rax "Inline return value spill temp"
; V63 tmp52 [V63,T06] ( 4, 12 ) int -> [rbp-0x54] spill-single-def "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.46) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T09] ( 3, 12 ) ref -> rdx "arr expr"
-; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V98 tmp87 [V98,T37] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V99 tmp88 [V99,T38] ( 2, 0 ) ref -> rsi "argument with side effect"
; V100 cse0 [V100,T17] ( 3, 3 ) ref -> rdi "CSE - moderate"
; V101 cse1 [V101,T10] ( 6, 10 ) int -> r13 multi-def "CSE - moderate"
-; V102 cse2 [V102,T19] ( 12, 0 ) ref -> rsi multi-def "CSE - moderate"
;
; Lcl frame size = 56
@@ -380,15 +379,15 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M45430_IG30
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 11
jb SHORT G_M45430_IG31
@@ -429,15 +428,15 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r12d, dword ptr [rbp-0x30]
sub r12d, edi
jns SHORT G_M45430_IG33
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=63 bbWeight=0 PerfScore 0.00
+ ;; size=70 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
test r12d, r12d
je SHORT G_M45430_IG34
@@ -510,15 +509,15 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rbp-0x30]
sub r15d, edi
jns SHORT G_M45430_IG38
+ mov rdi, 0xD1FFAB1E
+ ; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E
; gcrRegs +[rsi]
; byrRegs -[rsi]
- mov rdi, rsi
- ; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp r15d, 11
jb SHORT G_M45430_IG39
@@ -566,15 +565,15 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r14d, dword ptr [rbp-0x30]
sub r14d, ebx
jns SHORT G_M45430_IG43
- mov rsi, 0xD1FFAB1E
- ; gcrRegs +[rsi]
- mov rdi, rsi
+ mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
; byrRegs -[rdi]
+ mov rsi, 0xD1FFAB1E
+ ; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
test r14d, r14d
je SHORT G_M45430_IG44
@@ -622,7 +621,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=49 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1092, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1092 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1120, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1120 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
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
8
2
6
0
-9
+71
benchmarks.run_tiered.linux.x64.checked.mch
0
0
0
0
-0
+0
coreclr_tests.run.linux.x64.checked.mch
28
6
22
0
-43
+236
libraries.crossgen2.linux.x64.checked.mch
0
0
0
0
-0
+0
libraries.pmi.linux.x64.checked.mch
9
3
6
0
-22
+112
libraries_tests.run.linux.x64.Release.mch
149
66
79
4
-1,068
+477
librariestestsnotieredcompilation.run.linux.x64.Release.mch
14
8
5
1
-30
+40
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
208
85
118
5
-1,172
+936
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
benchmarks.run.linux.x64.checked.mch
34,999
3,164
31,835
0 (0.00%)
0 (0.00%)
benchmarks.run_pgo.linux.x64.checked.mch
155,971
58,399
97,572
149 (0.10%)
149 (0.10%)
benchmarks.run_tiered.linux.x64.checked.mch
58,890
44,312
14,578
0 (0.00%)
0 (0.00%)
coreclr_tests.run.linux.x64.checked.mch
694,090
429,241
264,849
323 (0.05%)
323 (0.05%)
libraries.crossgen2.linux.x64.checked.mch
233,626
15
233,611
0 (0.00%)
0 (0.00%)
libraries.pmi.linux.x64.checked.mch
295,421
6
295,415
1 (0.00%)
1 (0.00%)
libraries_tests.run.linux.x64.Release.mch
756,826
495,271
261,555
3,117 (0.41%)
3,117 (0.41%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch
304,609
21,873
282,736
6 (0.00%)
6 (0.00%)
realworld.run.linux.x64.checked.mch
33,167
39
33,128
0 (0.00%)
0 (0.00%)
smoke_tests.nativeaot.linux.x64.checked.mch
27,440
9
27,431
0 (0.00%)
0 (0.00%)
2,595,039
1,052,329
1,542,710
3,596 (0.14%)
3,596 (0.14%)
jit-analyze output
benchmarks.run_pgo.linux.x64.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 66799627 (overridden on cmd)
Total bytes of diff: 66799689 (overridden on cmd)
Total bytes of delta: 62 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-3204 : 137835.dasm (-100.00 % of base)
-3011 : 140481.dasm (-100.00 % of base)
-2941 : 141376.dasm (-100.00 % of base)
-1968 : 133131.dasm (-100.00 % of base)
-1956 : 150782.dasm (-100.00 % of base)
-1696 : 141386.dasm (-100.00 % of base)
-1456 : 125664.dasm (-100.00 % of base)
-607 : 16377.dasm (-100.00 % of base)
8 total files with Code Size differences (8 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-3204 (-100.00 % of base) : 137835.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3011 (-100.00 % of base) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-2941 (-100.00 % of base) : 141376.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1968 (-100.00 % of base) : 133131.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1956 (-100.00 % of base) : 150782.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1696 (-100.00 % of base) : 141386.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1456 (-100.00 % of base) : 125664.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-607 (-100.00 % of base) : 16377.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
Top method improvements (percentages):
-2941 (-100.00 % of base) : 141376.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1696 (-100.00 % of base) : 141386.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-3204 (-100.00 % of base) : 137835.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1968 (-100.00 % of base) : 133131.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1956 (-100.00 % of base) : 150782.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3011 (-100.00 % of base) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-1456 (-100.00 % of base) : 125664.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-607 (-100.00 % of base) : 16377.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
8 total methods with Code Size differences (8 improved, 0 regressed).
coreclr_tests.run.linux.x64.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 458880954 (overridden on cmd)
Total bytes of diff: 458881147 (overridden on cmd)
Total bytes of delta: 193 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-10983 : 417292.dasm (-100.00 % of base)
-2322 : 411760.dasm (-100.00 % of base)
-2252 : 106918.dasm (-100.00 % of base)
-2209 : 151754.dasm (-100.00 % of base)
-2209 : 116068.dasm (-100.00 % of base)
-2209 : 185054.dasm (-100.00 % of base)
-2209 : 162085.dasm (-100.00 % of base)
-1852 : 611584.dasm (-100.00 % of base)
-1188 : 256628.dasm (-100.00 % of base)
-1142 : 634678.dasm (-100.00 % of base)
-1092 : 590387.dasm (-100.00 % of base)
-1041 : 36523.dasm (-100.00 % of base)
-1038 : 143776.dasm (-100.00 % of base)
-1033 : 30348.dasm (-100.00 % of base)
-1030 : 206957.dasm (-100.00 % of base)
-623 : 244126.dasm (-100.00 % of base)
-550 : 257569.dasm (-100.00 % of base)
-545 : 414212.dasm (-100.00 % of base)
-545 : 420678.dasm (-100.00 % of base)
-486 : 421459.dasm (-100.00 % of base)
28 total files with Code Size differences (28 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-10983 (-100.00 % of base) : 417292.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
-2322 (-100.00 % of base) : 411760.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
-2252 (-100.00 % of base) : 106918.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 151754.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 116068.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 185054.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 162085.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-1852 (-100.00 % of base) : 611584.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-1188 (-100.00 % of base) : 256628.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
-1142 (-100.00 % of base) : 634678.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1092 (-100.00 % of base) : 590387.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1041 (-100.00 % of base) : 36523.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1038 (-100.00 % of base) : 143776.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1033 (-100.00 % of base) : 30348.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1030 (-100.00 % of base) : 206957.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-623 (-100.00 % of base) : 244126.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateShouldSerializeTest(System.Reflection.MemberInfo):System.Predicate`1[System.Object]:this (Tier1)
-550 (-100.00 % of base) : 257569.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
-545 (-100.00 % of base) : 414212.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
-545 (-100.00 % of base) : 420678.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
-486 (-100.00 % of base) : 421459.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
Top method improvements (percentages):
-550 (-100.00 % of base) : 257569.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
-1852 (-100.00 % of base) : 611584.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-2322 (-100.00 % of base) : 411760.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
-485 (-100.00 % of base) : 417893.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-486 (-100.00 % of base) : 421459.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-10983 (-100.00 % of base) : 417292.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
-287 (-100.00 % of base) : 302928.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
-623 (-100.00 % of base) : 244126.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateShouldSerializeTest(System.Reflection.MemberInfo):System.Predicate`1[System.Object]:this (Tier1)
-434 (-100.00 % of base) : 236662.dasm - NumericSortRect:Run():double:this (Tier1)
-242 (-100.00 % of base) : 303467.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-242 (-100.00 % of base) : 630373.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-2209 (-100.00 % of base) : 151754.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 116068.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 185054.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2252 (-100.00 % of base) : 106918.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2209 (-100.00 % of base) : 162085.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-1033 (-100.00 % of base) : 30348.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1030 (-100.00 % of base) : 206957.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1041 (-100.00 % of base) : 36523.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1038 (-100.00 % of base) : 143776.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
28 total methods with Code Size differences (28 improved, 0 regressed).
libraries.pmi.linux.x64.checked.mch
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 59972991 (overridden on cmd)
Total bytes of diff: 59973081 (overridden on cmd)
Total bytes of delta: 90 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1951 : 189815.dasm (-100.00 % of base)
-1227 : 251299.dasm (-100.00 % of base)
-1149 : 152609.dasm (-100.00 % of base)
-1142 : 251226.dasm (-100.00 % of base)
-1092 : 152610.dasm (-100.00 % of base)
-618 : 153311.dasm (-100.00 % of base)
-593 : 153310.dasm (-100.00 % of base)
-516 : 153327.dasm (-100.00 % of base)
-503 : 153326.dasm (-100.00 % of base)
9 total files with Code Size differences (9 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1951 (-100.00 % of base) : 189815.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
-1227 (-100.00 % of base) : 251299.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1149 (-100.00 % of base) : 152609.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1142 (-100.00 % of base) : 251226.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1092 (-100.00 % of base) : 152610.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-618 (-100.00 % of base) : 153311.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-593 (-100.00 % of base) : 153310.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-516 (-100.00 % of base) : 153327.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-503 (-100.00 % of base) : 153326.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
Top method improvements (percentages):
-1951 (-100.00 % of base) : 189815.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
-1149 (-100.00 % of base) : 152609.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1092 (-100.00 % of base) : 152610.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-593 (-100.00 % of base) : 153310.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-618 (-100.00 % of base) : 153311.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-503 (-100.00 % of base) : 153326.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
-516 (-100.00 % of base) : 153327.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-1227 (-100.00 % of base) : 251299.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1142 (-100.00 % of base) : 251226.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
9 total methods with Code Size differences (9 improved, 0 regressed).
libraries_tests.run.linux.x64.Release.mch
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 329977293 (overridden on cmd)
Total bytes of diff: 329976702 (overridden on cmd)
Total bytes of delta: -591 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-20342 : 54171.dasm (-100.00 % of base)
-19250 : 65116.dasm (-100.00 % of base)
-18169 : 54326.dasm (-100.00 % of base)
-10420 : 54457.dasm (-100.00 % of base)
-7214 : 713630.dasm (-100.00 % of base)
-6883 : 697583.dasm (-100.00 % of base)
-6881 : 92711.dasm (-100.00 % of base)
-6429 : 684950.dasm (-100.00 % of base)
-5839 : 592660.dasm (-100.00 % of base)
-5815 : 697668.dasm (-100.00 % of base)
-5180 : 701114.dasm (-100.00 % of base)
-4694 : 558186.dasm (-100.00 % of base)
-4368 : 592672.dasm (-100.00 % of base)
-4300 : 87481.dasm (-100.00 % of base)
-3895 : 700421.dasm (-100.00 % of base)
-3595 : 708089.dasm (-100.00 % of base)
-3346 : 674908.dasm (-100.00 % of base)
-3341 : 300705.dasm (-100.00 % of base)
-3326 : 428847.dasm (-100.00 % of base)
-3320 : 54428.dasm (-100.00 % of base)
69 total files with Code Size differences (69 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-20342 (-100.00 % of base) : 54171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19250 (-100.00 % of base) : 65116.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-18169 (-100.00 % of base) : 54326.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-10420 (-100.00 % of base) : 54457.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-7214 (-100.00 % of base) : 713630.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
-6883 (-100.00 % of base) : 697583.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6881 (-100.00 % of base) : 92711.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6429 (-100.00 % of base) : 684950.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
-5839 (-100.00 % of base) : 592660.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockHash(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
-5815 (-100.00 % of base) : 697668.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-5180 (-100.00 % of base) : 701114.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1)
-4694 (-100.00 % of base) : 558186.dasm - System.Linq.Expressions.ExpressionVisitor:Visit(System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]:this (Tier1)
-4368 (-100.00 % of base) : 592672.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockComputeHashInteraction(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
-4300 (-100.00 % of base) : 87481.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
-3895 (-100.00 % of base) : 700421.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-3595 (-100.00 % of base) : 708089.dasm - Microsoft.CodeAnalysis.CSharp.SynthesizedClosureMethod:EnsureAttributesExist(Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
-3346 (-100.00 % of base) : 674908.dasm - System.Linq.Expressions.TypeBinaryExpression:ReduceTypeEqual():System.Linq.Expressions.Expression:this (Tier1)
-3341 (-100.00 % of base) : 300705.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitUnliftedBinaryOp(int,System.Type,System.Type):this (Tier1)
-3326 (-100.00 % of base) : 428847.dasm - System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (Tier1)
-3320 (-100.00 % of base) : 54428.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInNormalForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters (Tier1)
Top method improvements (percentages):
-2668 (-100.00 % of base) : 473784.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-20342 (-100.00 % of base) : 54171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19250 (-100.00 % of base) : 65116.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-4300 (-100.00 % of base) : 87481.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
-18169 (-100.00 % of base) : 54326.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-1523 (-100.00 % of base) : 714099.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFilter:Filter(Microsoft.CodeAnalysis.Diagnostic,int,int,int,System.Collections.Generic.IDictionary`2[System.String,int],Microsoft.CodeAnalysis.SyntaxTreeOptionsProvider,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Diagnostic (Tier1)
-513 (-100.00 % of base) : 726632.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
-7214 (-100.00 % of base) : 713630.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
-10420 (-100.00 % of base) : 54457.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-3320 (-100.00 % of base) : 54428.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInNormalForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters (Tier1)
-456 (-100.00 % of base) : 92641.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_DeclaredAccessibility():int:this (Tier1)
-3895 (-100.00 % of base) : 700421.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6883 (-100.00 % of base) : 697583.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6881 (-100.00 % of base) : 92711.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-5815 (-100.00 % of base) : 697668.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-421 (-100.00 % of base) : 182795.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
-392 (-100.00 % of base) : 84994.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
-415 (-100.00 % of base) : 49468.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
-3595 (-100.00 % of base) : 708089.dasm - Microsoft.CodeAnalysis.CSharp.SynthesizedClosureMethod:EnsureAttributesExist(Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
-3095 (-100.00 % of base) : 63807.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)
librariestestsnotieredcompilation.run.linux.x64.Release.mch
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 130000373 (overridden on cmd)
Total bytes of diff: 130000383 (overridden on cmd)
Total bytes of delta: 10 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-3903 : 17542.dasm (-100.00 % of base)
-1910 : 151206.dasm (-100.00 % of base)
-1622 : 144776.dasm (-100.00 % of base)
-1238 : 197291.dasm (-100.00 % of base)
-1237 : 21341.dasm (-100.00 % of base)
-1142 : 7804.dasm (-100.00 % of base)
-1092 : 101983.dasm (-100.00 % of base)
-694 : 244521.dasm (-100.00 % of base)
-501 : 82173.dasm (-100.00 % of base)
-463 : 82716.dasm (-100.00 % of base)
-165 : 82691.dasm (-100.00 % of base)
-165 : 82746.dasm (-100.00 % of base)
-117 : 82696.dasm (-100.00 % of base)
-69 : 145057.dasm (-100.00 % of base)
14 total files with Code Size differences (14 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-3903 (-100.00 % of base) : 17542.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
-1910 (-100.00 % of base) : 151206.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
-1622 (-100.00 % of base) : 144776.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
-1238 (-100.00 % of base) : 197291.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1237 (-100.00 % of base) : 21341.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1142 (-100.00 % of base) : 7804.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1092 (-100.00 % of base) : 101983.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-694 (-100.00 % of base) : 244521.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
-501 (-100.00 % of base) : 82173.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-463 (-100.00 % of base) : 82716.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-165 (-100.00 % of base) : 82746.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-165 (-100.00 % of base) : 82691.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-117 (-100.00 % of base) : 82696.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
-69 (-100.00 % of base) : 145057.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
Top method improvements (percentages):
-3903 (-100.00 % of base) : 17542.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
-117 (-100.00 % of base) : 82696.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
-463 (-100.00 % of base) : 82716.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-165 (-100.00 % of base) : 82746.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-501 (-100.00 % of base) : 82173.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-165 (-100.00 % of base) : 82691.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-1910 (-100.00 % of base) : 151206.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
-1622 (-100.00 % of base) : 144776.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
-69 (-100.00 % of base) : 145057.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
-694 (-100.00 % of base) : 244521.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
-1092 (-100.00 % of base) : 101983.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1237 (-100.00 % of base) : 21341.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1142 (-100.00 % of base) : 7804.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1238 (-100.00 % of base) : 197291.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
14 total methods with Code Size differences (14 improved, 0 regressed).
Diffs are based on 2,263,032 contexts (930,876 MinOpts, 1,332,156 FullOpts).
MISSED contexts: base: 2,925 (0.13%), diff: 2,933 (0.13%)
Overall (+1,512 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch
34,569,912
-208
coreclr_tests.run.osx.arm64.checked.mch
485,471,332
+228
libraries.pmi.osx.arm64.checked.mch
79,954,016
+112
libraries_tests.run.osx.arm64.Release.mch
312,684,004
+1,452
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
160,787,844
-72
FullOpts (+1,512 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch
18,096,632
-208
coreclr_tests.run.osx.arm64.checked.mch
153,164,876
+228
libraries.pmi.osx.arm64.checked.mch
79,832,888
+112
libraries_tests.run.osx.arm64.Release.mch
108,743,500
+1,452
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
147,650,316
-72
Example diffs
benchmarks.run_pgo.osx.arm64.checked.mch
-16 (-0.37%) : 58605.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BinaryOperatorOverloadResolution(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this (Tier1)
@@ -18,104 +18,104 @@
; V06 arg5 [V06,T15] ( 5, 2 ) ref -> x26 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
; V07 arg6 [V07,T12] ( 10, 2 ) ref -> x24 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
; V08 arg7 [V08,T09] ( 7, 3 ) byref -> x21 single-def
-; V09 arg8 [V09,T24] ( 3, 1 ) byref -> [fp+0x4E0] single-def
-; V10 loc0 [V10,T18] ( 11, 2 ) ref -> [fp+0xC0] class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
-; V11 loc1 [V11 ] ( 5, 0 ) struct (32) [fp+0x470] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-; V12 loc2 [V12 ] ( 6, 4 ) struct (96) [fp+0x410] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+; V09 arg8 [V09,T24] ( 3, 1 ) byref -> [fp+0x4D0] single-def
+; V10 loc0 [V10,T18] ( 11, 2 ) ref -> [fp+0xB0] class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
+; V11 loc1 [V11 ] ( 5, 0 ) struct (32) [fp+0x460] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+; V12 loc2 [V12 ] ( 6, 4 ) struct (96) [fp+0x400] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
; V13 loc3 [V13,T19] ( 4, 2 ) ref -> x20 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-; V14 loc4 [V14,T100] ( 2, 0 ) struct (96) [fp+0x3B0] do-not-enreg[S] must-init ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+; V14 loc4 [V14,T99] ( 2, 0 ) struct (96) [fp+0x3A0] do-not-enreg[S] must-init ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
; V15 loc5 [V15,T25] ( 3, 1 ) ref -> x22 class-hnd exact single-def <<unknown class>>
;* V16 loc6 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
; V17 loc7 [V17,T22] ( 3, 2 ) ref -> x1 class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
;# V18 OutArgs [V18 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V19 tmp1 [V19 ] ( 0, 0 ) byref -> zero-ref
;* V20 tmp2 [V20 ] ( 0, 0 ) byref -> zero-ref single-def
-; V21 tmp3 [V21,T101] ( 2, 0 ) int -> x0
+; V21 tmp3 [V21,T100] ( 2, 0 ) int -> x0
;* V22 tmp4 [V22 ] ( 0, 0 ) struct (96) zero-ref do-not-enreg[SF] "location for address-of(RValue)" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
-; V23 tmp5 [V23,T58] ( 2, 0 ) ubyte -> x14 "Inline return value spill temp"
-;* V24 tmp6 [V24,T27] ( 0, 0 ) int -> zero-ref
+; V23 tmp5 [V23,T57] ( 2, 0 ) ubyte -> x14 "Inline return value spill temp"
+;* V24 tmp6 [V24,T26] ( 0, 0 ) int -> zero-ref
;* V25 tmp7 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
-; V26 tmp8 [V26,T52] ( 4, 0 ) ref -> [fp+0xB8] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
-; V27 tmp9 [V27,T39] ( 6, 0 ) ref -> [fp+0xB0] class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
+; V26 tmp8 [V26,T51] ( 4, 0 ) ref -> [fp+0xA8] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V27 tmp9 [V27,T38] ( 6, 0 ) ref -> [fp+0xA0] class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
;* V28 tmp10 [V28 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
-; V29 tmp11 [V29,T64] ( 3, 0 ) byref -> x2 single-def "impAppendStmt"
+; V29 tmp11 [V29,T63] ( 3, 0 ) byref -> x0 single-def "impAppendStmt"
;* V30 tmp12 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
;* V31 tmp13 [V31 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-; V32 tmp14 [V32,T47] ( 5, 0 ) ref -> [fp+0xA8] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
-; V33 tmp15 [V33,T83] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
-; V34 tmp16 [V34,T65] ( 3, 0 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-; V35 tmp17 [V35,T66] ( 3, 0 ) byref -> x0 single-def "impAppendStmt"
-; V36 tmp18 [V36,T53] ( 4, 0 ) ref -> [fp+0xA0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-; V37 tmp19 [V37,T59] ( 4, 0 ) int -> [fp+0x3AC] spill-single-def "Inline stloc first use temp"
-; V38 tmp20 [V38,T48] ( 5, 0 ) ref -> [fp+0x98] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V39 tmp21 [V39,T49] ( 5, 0 ) ref -> [fp+0x90] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V32 tmp14 [V32,T46] ( 5, 0 ) ref -> [fp+0x98] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
+; V33 tmp15 [V33,T82] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
+; V34 tmp16 [V34,T64] ( 3, 0 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
+; V35 tmp17 [V35,T65] ( 3, 0 ) byref -> x0 single-def "impAppendStmt"
+; V36 tmp18 [V36,T52] ( 4, 0 ) ref -> [fp+0x90] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
+; V37 tmp19 [V37,T58] ( 4, 0 ) int -> [fp+0x39C] spill-single-def "Inline stloc first use temp"
+; V38 tmp20 [V38,T47] ( 5, 0 ) ref -> [fp+0x88] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V39 tmp21 [V39,T48] ( 5, 0 ) ref -> [fp+0x80] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V40 tmp22 [V40 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V41 tmp23 [V41,T102] ( 2, 0 ) struct (56) [fp+0x370] do-not-enreg[SF] must-init "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V41 tmp23 [V41,T101] ( 2, 0 ) struct (56) [fp+0x360] do-not-enreg[SF] must-init "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
;* V42 tmp24 [V42 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
;* V43 tmp25 [V43 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V44 tmp26 [V44,T84] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
-; V45 tmp27 [V45,T103] ( 2, 0 ) struct (96) [fp+0x310] do-not-enreg[S] must-init "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
-; V46 tmp28 [V46,T30] ( 15, 0 ) int -> [fp+0x30C] "Inline return value spill temp"
-; V47 tmp29 [V47,T60] ( 4, 0 ) int -> [fp+0x308] spill-single-def "Inline stloc first use temp"
-; V48 tmp30 [V48,T61] ( 4, 0 ) int -> x0 single-def "Inline stloc first use temp"
-; V49 tmp31 [V49,T62] ( 4, 0 ) int -> x1 "Inline stloc first use temp"
+; V44 tmp26 [V44,T83] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
+; V45 tmp27 [V45,T102] ( 2, 0 ) struct (96) [fp+0x300] do-not-enreg[S] must-init "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+; V46 tmp28 [V46,T29] ( 15, 0 ) int -> [fp+0x2FC] "Inline return value spill temp"
+; V47 tmp29 [V47,T59] ( 4, 0 ) int -> [fp+0x2F8] spill-single-def "Inline stloc first use temp"
+; V48 tmp30 [V48,T60] ( 4, 0 ) int -> x0 single-def "Inline stloc first use temp"
+; V49 tmp31 [V49,T61] ( 4, 0 ) int -> x1 "Inline stloc first use temp"
;* V50 tmp32 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
;* V51 tmp33 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Binder>
-; V52 tmp34 [V52,T50] ( 5, 0 ) struct (56) [fp+0x2D0] do-not-enreg[S] must-init "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
-; V53 tmp35 [V53,T32] ( 10, 0 ) ref -> [fp+0x88] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BuiltInOperators>
-; V54 tmp36 [V54,T36] ( 8, 0 ) ref -> [fp+0x80] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V55 tmp37 [V55,T28] ( 25, 0 ) int -> x4 single-def "Inline stloc first use temp"
-;* V56 tmp38 [V56,T115] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
-; V57 tmp39 [V57,T54] ( 4, 0 ) ref -> x3 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V58 tmp40 [V58 ] ( 8, 0 ) struct (56) [fp+0x298] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V52 tmp34 [V52,T49] ( 5, 0 ) struct (56) [fp+0x2C0] do-not-enreg[S] must-init "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V53 tmp35 [V53,T31] ( 10, 0 ) ref -> [fp+0x78] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BuiltInOperators>
+; V54 tmp36 [V54,T35] ( 8, 0 ) ref -> [fp+0x70] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V55 tmp37 [V55,T27] ( 25, 0 ) int -> x4 single-def "Inline stloc first use temp"
+;* V56 tmp38 [V56,T114] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V57 tmp39 [V57,T53] ( 4, 0 ) ref -> x3 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V58 tmp40 [V58 ] ( 8, 0 ) struct (56) [fp+0x288] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
;* V59 tmp41 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V60 tmp42 [V60 ] ( 8, 0 ) struct (56) [fp+0x260] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
-; V61 tmp43 [V61 ] ( 8, 0 ) struct (56) [fp+0x228] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V60 tmp42 [V60 ] ( 8, 0 ) struct (56) [fp+0x250] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V61 tmp43 [V61 ] ( 8, 0 ) struct (56) [fp+0x218] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
;* V62 tmp44 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V63 tmp45 [V63 ] ( 8, 0 ) struct (56) [fp+0x1F0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+; V63 tmp45 [V63 ] ( 8, 0 ) struct (56) [fp+0x1E0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
;* V64 tmp46 [V64 ] ( 0, 0 ) struct (16) zero-ref multireg-ret single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
;* V65 tmp47 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V66 tmp48 [V66 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
;* V67 tmp49 [V67 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V68 tmp50 [V68 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret single-def "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V69 tmp51 [V69,T44] ( 6, 0 ) ubyte -> [fp+0x1EC] "Inline return value spill temp"
-; V70 tmp52 [V70,T73] ( 3, 0 ) int -> [fp+0x1E8] spill-single-def "Inline stloc first use temp"
-; V71 tmp53 [V71,T74] ( 3, 0 ) int -> x0 single-def "Inline stloc first use temp"
+; V69 tmp51 [V69,T43] ( 6, 0 ) ubyte -> [fp+0x1DC] "Inline return value spill temp"
+; V70 tmp52 [V70,T72] ( 3, 0 ) int -> [fp+0x1D8] spill-single-def "Inline stloc first use temp"
+; V71 tmp53 [V71,T73] ( 3, 0 ) int -> x0 single-def "Inline stloc first use temp"
;* V72 tmp54 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
;* V73 tmp55 [V73 ] ( 0, 0 ) struct (16) zero-ref multireg-ret single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
;* V74 tmp56 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V75 tmp57 [V75 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline stloc first use temp"
;* V76 tmp58 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V77 tmp59 [V77 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret single-def "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V78 tmp60 [V78,T45] ( 6, 0 ) ubyte -> [fp+0x1E4] "Inline return value spill temp"
-; V79 tmp61 [V79,T75] ( 3, 0 ) int -> [fp+0x1E0] spill-single-def "Inline stloc first use temp"
-; V80 tmp62 [V80,T76] ( 3, 0 ) int -> x0 single-def "Inline stloc first use temp"
+; V78 tmp60 [V78,T44] ( 6, 0 ) ubyte -> [fp+0x1D4] "Inline return value spill temp"
+; V79 tmp61 [V79,T74] ( 3, 0 ) int -> [fp+0x1D0] spill-single-def "Inline stloc first use temp"
+; V80 tmp62 [V80,T75] ( 3, 0 ) int -> x0 single-def "Inline stloc first use temp"
;* V81 tmp63 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
-; V82 tmp64 [V82,T104] ( 2, 0 ) struct (96) [fp+0x180] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
-; V83 tmp65 [V83,T37] ( 8, 0 ) ref -> [fp+0x78] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
-; V84 tmp66 [V84,T51] ( 5, 0 ) int -> [fp+0x17C] spill-single-def "Inline stloc first use temp"
+; V82 tmp64 [V82,T103] ( 2, 0 ) struct (96) [fp+0x170] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+; V83 tmp65 [V83,T36] ( 8, 0 ) ref -> [fp+0x68] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
+; V84 tmp66 [V84,T50] ( 5, 0 ) int -> [fp+0x16C] spill-single-def "Inline stloc first use temp"
;* V85 tmp67 [V85 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V86 tmp68 [V86,T105] ( 2, 0 ) int -> x7 "Inline return value spill temp"
-; V87 tmp69 [V87,T77] ( 3, 0 ) int -> x0 "Inlining Arg"
+; V86 tmp68 [V86,T104] ( 2, 0 ) int -> x7 "Inline return value spill temp"
+; V87 tmp69 [V87,T76] ( 3, 0 ) int -> x0 "Inlining Arg"
;* V88 tmp70 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
;* V89 tmp71 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
-; V90 tmp72 [V90,T78] ( 3, 0 ) struct (32) [fp+0x158] do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-; V91 tmp73 [V91,T85] ( 2, 0 ) ref -> x3 class-hnd single-def "dup spill" <<unknown class>>
+; V90 tmp72 [V90,T77] ( 3, 0 ) struct (32) [fp+0x148] do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+; V91 tmp73 [V91,T84] ( 2, 0 ) ref -> x3 class-hnd single-def "dup spill" <<unknown class>>
;* V92 tmp74 [V92 ] ( 0, 0 ) ref -> zero-ref single-def
;* V93 tmp75 [V93 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-; V94 tmp76 [V94,T55] ( 4, 0 ) ref -> x3
-; V95 tmp77 [V95,T56] ( 4, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V94 tmp76 [V94,T54] ( 4, 0 ) ref -> x3
+; V95 tmp77 [V95,T55] ( 4, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V96 tmp78 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V97 tmp79 [V97 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
;* V98 tmp80 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
;* V99 tmp81 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
;* V100 tmp82 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <<unknown class>>
-; V101 tmp83 [V101,T57] ( 4, 0 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V102 tmp84 [V102,T40] ( 6, 0 ) ref -> x22 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V101 tmp83 [V101,T56] ( 4, 0 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V102 tmp84 [V102,T39] ( 6, 0 ) ref -> x22 class-hnd "Inline stloc first use temp" <<unknown class>>
;* V103 tmp85 [V103 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <<unknown class>>
-; V104 tmp86 [V104,T67] ( 3, 0 ) byref -> registers single-def "impAppendStmt"
+; V104 tmp86 [V104,T66] ( 3, 0 ) byref -> x0 single-def "impAppendStmt"
;* V105 tmp87 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V106 tmp88 [V106,T68] ( 3, 0 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
+; V106 tmp88 [V106,T67] ( 3, 0 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
;* V107 tmp89 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
;* V108 tmp90 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
;* V109 tmp91 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -126,7 +126,7 @@
;* V114 tmp96 [V114 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
; V115 tmp97 [V115,T00] ( 6, 8 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
; V116 tmp98 [V116,T03] ( 6, 6 ) int -> x0 "Inline stloc first use temp"
-; V117 tmp99 [V117,T23] ( 2, 2 ) struct (96) [fp+0xF8] do-not-enreg[S] must-init ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+; V117 tmp99 [V117,T23] ( 2, 2 ) struct (96) [fp+0xE8] do-not-enreg[S] must-init ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
; V118 tmp100 [V118,T06] ( 3, 6 ) ref -> x14 class-hnd exact "impAppendStmt" <<unknown class>>
; V119 tmp101 [V119,T04] ( 4, 6 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <<unknown class>>
; V120 tmp102 [V120,T20] ( 4, 2 ) ref -> x20 single-def "field V16._builder (fldOffset=0x0)" P-INDEP
@@ -135,23 +135,23 @@
;* V123 tmp105 [V123 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V42._kind (fldOffset=0x8)" P-INDEP
;* V124 tmp106 [V124 ] ( 0, 0 ) ref -> zero-ref single-def "field V43._uncommonData (fldOffset=0x0)" P-INDEP
;* V125 tmp107 [V125 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V43._kind (fldOffset=0x8)" P-INDEP
-; V126 tmp108 [V126,T69] ( 3, 0 ) ref -> [fp+0x70] single-def "field V64._uncommonData (fldOffset=0x0)" P-INDEP
-; V127 tmp109 [V127,T79] ( 3, 0 ) ubyte -> [fp+0xF4] single-def "field V64._kind (fldOffset=0x8)" P-INDEP
-; V128 tmp110 [V128,T86] ( 2, 0 ) ref -> x0 "field V68._uncommonData (fldOffset=0x0)" P-INDEP
-; V129 tmp111 [V129,T106] ( 2, 0 ) ubyte -> x2 "field V68._kind (fldOffset=0x8)" P-INDEP
-;* V130 tmp112 [V130,T112] ( 0, 0 ) ref -> zero-ref single-def "field V72._uncommonData (fldOffset=0x0)" P-INDEP
-; V131 tmp113 [V131,T107] ( 2, 0 ) ubyte -> x1 single-def "field V72._kind (fldOffset=0x8)" P-INDEP
-; V132 tmp114 [V132,T70] ( 3, 0 ) ref -> [fp+0x68] single-def "field V73._uncommonData (fldOffset=0x0)" P-INDEP
-; V133 tmp115 [V133,T80] ( 3, 0 ) ubyte -> registers single-def "field V73._kind (fldOffset=0x8)" P-INDEP
-; V134 tmp116 [V134,T87] ( 2, 0 ) ref -> x0 "field V77._uncommonData (fldOffset=0x0)" P-INDEP
-; V135 tmp117 [V135,T108] ( 2, 0 ) ubyte -> x2 "field V77._kind (fldOffset=0x8)" P-INDEP
-;* V136 tmp118 [V136,T113] ( 0, 0 ) ref -> zero-ref single-def "field V81._uncommonData (fldOffset=0x0)" P-INDEP
-; V137 tmp119 [V137,T109] ( 2, 0 ) ubyte -> x2 single-def "field V81._kind (fldOffset=0x8)" P-INDEP
-; V138 tmp120 [V138,T88] ( 2, 0 ) ref -> x20 single-def "field V107._builder (fldOffset=0x0)" P-INDEP
-;* V139 tmp121 [V139,T116] ( 0, 0 ) int -> zero-ref single-def "field V107._index (fldOffset=0x8)" P-INDEP
+; V126 tmp108 [V126,T68] ( 3, 0 ) ref -> [fp+0x60] single-def "field V64._uncommonData (fldOffset=0x0)" P-INDEP
+; V127 tmp109 [V127,T78] ( 3, 0 ) ubyte -> [fp+0xE4] single-def "field V64._kind (fldOffset=0x8)" P-INDEP
+; V128 tmp110 [V128,T85] ( 2, 0 ) ref -> x0 "field V68._uncommonData (fldOffset=0x0)" P-INDEP
+; V129 tmp111 [V129,T105] ( 2, 0 ) ubyte -> x2 "field V68._kind (fldOffset=0x8)" P-INDEP
+;* V130 tmp112 [V130,T111] ( 0, 0 ) ref -> zero-ref single-def "field V72._uncommonData (fldOffset=0x0)" P-INDEP
+; V131 tmp113 [V131,T106] ( 2, 0 ) ubyte -> x1 single-def "field V72._kind (fldOffset=0x8)" P-INDEP
+; V132 tmp114 [V132,T69] ( 3, 0 ) ref -> [fp+0x58] single-def "field V73._uncommonData (fldOffset=0x0)" P-INDEP
+; V133 tmp115 [V133,T79] ( 3, 0 ) ubyte -> registers single-def "field V73._kind (fldOffset=0x8)" P-INDEP
+; V134 tmp116 [V134,T86] ( 2, 0 ) ref -> x0 "field V77._uncommonData (fldOffset=0x0)" P-INDEP
+; V135 tmp117 [V135,T107] ( 2, 0 ) ubyte -> x2 "field V77._kind (fldOffset=0x8)" P-INDEP
+;* V136 tmp118 [V136,T112] ( 0, 0 ) ref -> zero-ref single-def "field V81._uncommonData (fldOffset=0x0)" P-INDEP
+; V137 tmp119 [V137,T108] ( 2, 0 ) ubyte -> x2 single-def "field V81._kind (fldOffset=0x8)" P-INDEP
+; V138 tmp120 [V138,T87] ( 2, 0 ) ref -> x20 single-def "field V107._builder (fldOffset=0x0)" P-INDEP
+;* V139 tmp121 [V139,T115] ( 0, 0 ) int -> zero-ref single-def "field V107._index (fldOffset=0x8)" P-INDEP
;* V140 tmp122 [V140 ] ( 0, 0 ) ref -> zero-ref "V22.[064..072)"
-; V141 tmp123 [V141,T71] ( 3, 0 ) ref -> x1 "V31.[016..024)"
-; V142 tmp124 [V142,T63] ( 4, 0 ) ubyte -> x3 "V31.[025..026)"
+; V141 tmp123 [V141,T70] ( 3, 0 ) ref -> x1 "V31.[016..024)"
+; V142 tmp124 [V142,T62] ( 4, 0 ) ubyte -> x3 "V31.[025..026)"
;* V143 tmp125 [V143 ] ( 0, 0 ) ref -> zero-ref single-def "V41.[000..008)"
;* V144 tmp126 [V144 ] ( 0, 0 ) ref -> zero-ref single-def "V41.[008..016)"
;* V145 tmp127 [V145 ] ( 0, 0 ) ref -> zero-ref single-def "V41.[016..024)"
@@ -166,16 +166,16 @@
;* V154 tmp136 [V154 ] ( 0, 0 ) int -> zero-ref single-def "V56.[040..044)"
;* V155 tmp137 [V155 ] ( 0, 0 ) ubyte -> zero-ref single-def "V82.[000..001)"
;* V156 tmp138 [V156 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[008..016)"
-; V157 tmp139 [V157,T110] ( 2, 0 ) ubyte -> [fp+0xF0] spill-single-def "V82.[016..017)"
+; V157 tmp139 [V157,T109] ( 2, 0 ) ubyte -> [fp+0xE0] spill-single-def "V82.[016..017)"
;* V158 tmp140 [V158 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[024..032)"
-; V159 tmp141 [V159,T111] ( 2, 0 ) ubyte -> [fp+0xEC] spill-single-def "V82.[032..033)"
+; V159 tmp141 [V159,T110] ( 2, 0 ) ubyte -> [fp+0xDC] spill-single-def "V82.[032..033)"
;* V160 tmp142 [V160 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[040..048)"
;* V161 tmp143 [V161 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[048..056)"
;* V162 tmp144 [V162 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[056..064)"
;* V163 tmp145 [V163 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[064..072)"
;* V164 tmp146 [V164 ] ( 0, 0 ) ref -> zero-ref single-def "V82.[072..080)"
;* V165 tmp147 [V165 ] ( 0, 0 ) int -> zero-ref single-def "V82.[080..084)"
-; V166 tmp148 [V166,T89] ( 2, 0 ) ref -> x1 single-def "V97.[008..016)"
+; V166 tmp148 [V166,T88] ( 2, 0 ) ref -> x1 single-def "V97.[008..016)"
;* V167 tmp149 [V167 ] ( 0, 0 ) ubyte -> zero-ref single-def "V45.[000..001)"
;* V168 tmp150 [V168 ] ( 0, 0 ) ref -> zero-ref single-def "V45.[008..016)"
;* V169 tmp151 [V169 ] ( 0, 0 ) ubyte -> zero-ref single-def "V45.[016..017)"
@@ -187,38 +187,37 @@
;* V175 tmp157 [V175 ] ( 0, 0 ) ref -> zero-ref single-def "V45.[064..072)"
;* V176 tmp158 [V176 ] ( 0, 0 ) ref -> zero-ref single-def "V45.[072..080)"
;* V177 tmp159 [V177 ] ( 0, 0 ) int -> zero-ref single-def "V45.[080..084)"
-; V178 tmp160 [V178,T33] ( 10, 0 ) ref -> [fp+0x60] "V52.[000..008)"
-; V179 tmp161 [V179,T38] ( 8, 0 ) ref -> [fp+0x58] "V52.[008..016)"
-; V180 tmp162 [V180,T41] ( 6, 0 ) ref -> [fp+0x50] "V52.[016..024)"
-; V181 tmp163 [V181,T42] ( 6, 0 ) ref -> [fp+0x48] "V52.[024..032)"
-; V182 tmp164 [V182,T43] ( 6, 0 ) ref -> [fp+0x40] "V52.[032..040)"
-; V183 tmp165 [V183,T46] ( 6, 0 ) int -> [fp+0xE8] "V52.[040..044)"
-; V184 tmp166 [V184,T31] ( 13, 0 ) byref -> x0 single-def "Spilling address for field-by-field copy"
-; V185 tmp167 [V185,T90] ( 2, 0 ) ref -> x1 single-def "arr expr"
-; V186 tmp168 [V186,T81] ( 3, 0 ) int -> x3 "index expr"
-; V187 tmp169 [V187,T91] ( 2, 0 ) ref -> x4 single-def "argument with side effect"
-; V188 tmp170 [V188,T92] ( 2, 0 ) ref -> [fp+0x38] spill-single-def "argument with side effect"
-; V189 tmp171 [V189,T93] ( 2, 0 ) ref -> x4 single-def "argument with side effect"
-; V190 tmp172 [V190,T94] ( 2, 0 ) ref -> [fp+0x30] spill-single-def "argument with side effect"
-; V191 tmp173 [V191,T95] ( 2, 0 ) ref -> x4 single-def "argument with side effect"
-; V192 tmp174 [V192,T96] ( 2, 0 ) ref -> [fp+0x28] spill-single-def "argument with side effect"
-; V193 tmp175 [V193,T97] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V194 tmp176 [V194,T98] ( 2, 0 ) ref -> [fp+0x20] spill-single-def "argument with side effect"
...
-8 (-0.36%) : 27458.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)@@ -22,16 +22,16 @@
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V12 tmp3 [V12,T50] ( 2, 0.37) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V13 tmp4 [V13,T70] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V13 tmp4 [V13,T69] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V14 tmp5 [V14,T48] ( 3, 0.42) ref -> x24
; V15 tmp6 [V15,T45] ( 2, 0.52) ref -> x26 class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V16 tmp7 [V16,T28] ( 4, 1.04) long -> x1 "spilling ret_expr"
-; V17 tmp8 [V17,T69] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V17 tmp8 [V17,T68] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V18 tmp9 [V18 ] ( 0, 0 ) long -> zero-ref "guarded devirt return temp"
; V19 tmp10 [V19,T29] ( 3, 1.04) ref -> x0 single-def "guarded devirt arg temp"
; V20 tmp11 [V20,T30] ( 3, 1.04) long -> x2 "guarded devirt arg temp"
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-; V22 tmp13 [V22,T74] ( 2, 0 ) int -> x0 "guarded devirt return temp"
+; V22 tmp13 [V22,T73] ( 2, 0 ) int -> x0 "guarded devirt return temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
;* V24 tmp15 [V24,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25,T00] ( 11, 15.38) ref -> x24 class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
; V29 tmp20 [V29,T23] ( 12, 2.16) byref -> registers "Inline stloc first use temp"
; V30 tmp21 [V30,T25] ( 4, 2.03) byref -> x24 "Inline stloc first use temp"
; V31 tmp22 [V31,T26] ( 4, 1.88) ref -> x25 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V32 tmp23 [V32,T63] ( 5, 0 ) int -> x27 "Inline stloc first use temp"
-; V33 tmp24 [V33,T61] ( 6, 0 ) int -> x28 "Inline stloc first use temp"
-; V34 tmp25 [V34,T64] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V35 tmp26 [V35,T66] ( 4, 0 ) int -> [fp+0x54] "Inline stloc first use temp"
+; V32 tmp23 [V32,T62] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
+; V33 tmp24 [V33,T61] ( 6, 0 ) int -> x27 "Inline stloc first use temp"
+; V34 tmp25 [V34,T63] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V35 tmp26 [V35,T65] ( 4, 0 ) int -> x28 "Inline stloc first use temp"
; V36 tmp27 [V36,T10] ( 5, 4.44) int -> x25 "Inline stloc first use temp"
; V37 tmp28 [V37,T08] ( 6, 5.77) int -> x0 "Inline stloc first use temp"
; V38 tmp29 [V38,T21] ( 3, 2.56) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
;* V50 tmp41 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V52 tmp43 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V53 tmp44 [V53,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V53 tmp44 [V53,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V64 tmp55 [V64,T65] ( 4, 0 ) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V65 tmp56 [V65,T67] ( 4, 0 ) int -> [fp+0x50] spill-single-def "Inlining Arg"
-; V66 tmp57 [V66,T76] ( 2, 0 ) long -> [fp+0x48] spill-single-def "Inlining Arg"
-; V67 tmp58 [V67,T68] ( 4, 0 ) int -> [fp+0x44] spill-single-def "Inline stloc first use temp"
+; V64 tmp55 [V64,T64] ( 4, 0 ) ref -> x27 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp56 [V65,T66] ( 4, 0 ) int -> x28 "Inlining Arg"
+; V66 tmp57 [V66,T75] ( 2, 0 ) long -> [fp+0x50] spill-single-def "Inlining Arg"
+; V67 tmp58 [V67,T67] ( 4, 0 ) int -> [fp+0x4C] spill-single-def "Inline stloc first use temp"
;* V68 tmp59 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V69 tmp60 [V69,T31] ( 2, 1.04) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V70 tmp61 [V70,T40] ( 4, 0.80) ref -> x24
; V71 tmp62 [V71,T44] ( 3, 0.56) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V73 tmp64 [V73,T77] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V73 tmp64 [V73,T76] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V74 tmp65 [V74,T22] ( 4, 2.35) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V75 tmp66 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V76 tmp67 [V76,T42] ( 2, 0.74) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -94,10 +94,10 @@
; V82 tmp73 [V82,T49] ( 2, 0.42) ubyte -> x0 "Inline return value spill temp"
; V83 tmp74 [V83,T27] ( 3, 1.25) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V84 tmp75 [V84 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V85 tmp76 [V85,T71] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V85 tmp76 [V85,T70] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V87 tmp78 [V87,T51] ( 2, 0.37) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V88 tmp79 [V88,T72] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V88 tmp79 [V88,T71] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V89 tmp80 [V89,T07] ( 3, 5.83) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
;* V90 tmp81 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -116,19 +116,18 @@
; V104 tmp95 [V104,T54] ( 4, 0.07) ref -> x8 "field V51.Item1 (fldOffset=0x0)" P-INDEP
; V105 tmp96 [V105,T58] ( 2, 0.05) long -> x9 "field V51.Item2 (fldOffset=0x8)" P-INDEP
; V106 tmp97 [V106,T59] ( 2, 0.05) int -> x10 "field V51.Item3 (fldOffset=0x10)" P-INDEP
-; V107 tmp98 [V107 ] ( 8, 7.78) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99 [V108,T78] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101 [V110,T79] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V107 tmp98 [V107 ] ( 8, 7.78) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99 [V108,T77] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101 [V110,T78] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V111 tmp102 [V111,T52] ( 2, 0.36) ref -> x24 single-def "argument with side effect"
; V112 tmp103 [V112,T53] ( 2, 0.36) ref -> x2 single-def "argument with side effect"
-; V113 tmp104 [V113,T73] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V113 tmp104 [V113,T72] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V114 tmp105 [V114,T13] ( 2, 3.89) ref -> x0 single-def "argument with side effect"
; V115 cse0 [V115,T41] ( 3, 0.78) ref -> x0 "CSE - conservative"
; V116 cse1 [V116,T17] ( 3, 3.20) int -> x5 hoist "CSE - aggressive"
; V117 cse2 [V117,T20] ( 8, 2.92) ref -> x1 multi-def "CSE - moderate"
-; V118 cse3 [V118,T62] ( 6, 0 ) long -> registers multi-def "CSE - conservative"
-; V119 rat0 [V119,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
+; V118 rat0 [V118,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 96
@@ -140,18 +139,19 @@ G_M61086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp x25, x26, [sp, #0xA0]
stp x27, x28, [sp, #0xB0]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x40]
+ str xzr, [x9, #0x50]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
; gcrRegs +[x19]
mov x21, x2
mov w22, w3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.50
G_M61086_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09: ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
;; size=24 bbWeight=0 PerfScore 0.00
G_M61086_IG10: ; bbWeight=0, nogc, extend
ldp x0, x1, [fp, #0x58]
- stp x0, x1, [fp, #0x28]
+ stp x0, x1, [fp, #0x30]
ldr x0, [fp, #0x68]
- str x0, [fp, #0x38]
+ str x0, [fp, #0x40]
;; size=16 bbWeight=0 PerfScore 0.00
G_M61086_IG11: ; bbWeight=0, isz, extend
mov x0, x25
; gcrRegs +[x0]
- add x1, fp, #40 // [V107 tmp98]
- movz x26, #0xD1FFAB1E // code for <unknown method>
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #1 LSL #32
- mov x11, x26
+ add x1, fp, #48 // [V107 tmp98]
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w27, w0
- ldr x28, [x24, #0x08]
- ; gcrRegs +[x28]
- ldr w1, [x28, #0x08]
- str w1, [fp, #0x50] // [V65 tmp56]
- ldr x2, [x24, #0x30]
- str x2, [fp, #0x48] // [V66 tmp57]
+ sxtw w26, w0
+ ldr x27, [x24, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x27, #0x08]
+ ldr x1, [x24, #0x30]
+ str x1, [fp, #0x50] // [V66 tmp57]
mov w0, #1
- movz x3, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #1 LSL #32
- ldr x3, [x3]
- blr x3
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #1 LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- mov w0, w27
- ldr x2, [fp, #0x48] // [V66 tmp57]
- mul x0, x2, x0
+ mov w0, w26
+ ldr x1, [fp, #0x50] // [V66 tmp57]
+ mul x0, x1, x0
lsr x0, x0, #32
add x0, x0, #1
- ldr w1, [fp, #0x50] // [V65 tmp56]
- mov w2, w1
- mul x0, x0, x2
- lsr x2, x0, #32
- str w2, [fp, #0x44] // [V67 tmp58]
- cmp w1, #0
+ mov w1, w28
+ mul x0, x0, x1
+ lsr x1, x0, #32
+ str w1, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, #0
beq G_M61086_IG53
- udiv w0, w27, w1
- msub w0, w0, w1, w27
- cmp w0, w2
+ udiv w0, w26, w28
+ msub w0, w0, w28, w26
+ cmp w0, w1
cset x0, eq
- movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- blr x1
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #1 LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- ldr w0, [x28, #0x08]
- ldr w2, [fp, #0x44] // [V67 tmp58]
- cmp w2, w0
+ ldr w0, [x27, #0x08]
+ ldr w28, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, w0
bhs G_M61086_IG52
- add x0, x28, #16
+ add x0, x27, #16
; byrRegs +[x0]
- ldr w28, [x0, w2, UXTW #2]
- ; gcrRegs -[x28]
+ ldr w27, [x0, w28, UXTW #2]
+ ; gcrRegs -[x27]
ldr x24, [x24, #0x10]
- mov w3, wzr
- sub w28, w28, #1
+ mov w28, wzr
+ sub w27, w27, #1
b G_M61086_IG54
- ;; size=204 bbWeight=0 PerfScore 0.00
+ ;; size=192 bbWeight=0 PerfScore 0.00
G_M61086_IG12: ; bbWeight=0.94, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28: ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
ldr x0, [x19, #0x90]
; gcrRegs +[x0]
ldrsb wzr, [x0]
- stp x20, x21, [fp, #0x28] // [V107 tmp98], [V107 tmp98+0x08]
- str w22, [fp, #0x38] // [V107 tmp98+0x10]
- add x1, fp, #40 // [V107 tmp98]
+ stp x20, x21, [fp, #0x30] // [V107 tmp98], [V107 tmp98+0x08]
...
-8 (-0.36%) : 61286.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)@@ -22,16 +22,16 @@
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V12 tmp3 [V12,T52] ( 2, 0.36) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V13 tmp4 [V13,T71] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V13 tmp4 [V13,T70] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V14 tmp5 [V14,T48] ( 3, 0.40) ref -> x24
; V15 tmp6 [V15,T44] ( 2, 0.52) ref -> x26 class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V16 tmp7 [V16,T28] ( 4, 1.04) long -> x1 "spilling ret_expr"
-; V17 tmp8 [V17,T70] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V17 tmp8 [V17,T69] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V18 tmp9 [V18 ] ( 0, 0 ) long -> zero-ref "guarded devirt return temp"
; V19 tmp10 [V19,T29] ( 3, 1.04) ref -> x0 single-def "guarded devirt arg temp"
; V20 tmp11 [V20,T30] ( 3, 1.04) long -> x2 "guarded devirt arg temp"
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-; V22 tmp13 [V22,T74] ( 2, 0 ) int -> x0 "guarded devirt return temp"
+; V22 tmp13 [V22,T73] ( 2, 0 ) int -> x0 "guarded devirt return temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
;* V24 tmp15 [V24,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25,T00] ( 11, 15.39) ref -> x24 class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
; V29 tmp20 [V29,T23] ( 12, 2.18) byref -> registers "Inline stloc first use temp"
; V30 tmp21 [V30,T25] ( 4, 2.03) byref -> x24 "Inline stloc first use temp"
; V31 tmp22 [V31,T26] ( 4, 1.88) ref -> x25 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V32 tmp23 [V32,T64] ( 5, 0 ) int -> x27 "Inline stloc first use temp"
-; V33 tmp24 [V33,T62] ( 6, 0 ) int -> x28 "Inline stloc first use temp"
-; V34 tmp25 [V34,T65] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V35 tmp26 [V35,T67] ( 4, 0 ) int -> [fp+0x54] "Inline stloc first use temp"
+; V32 tmp23 [V32,T63] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
+; V33 tmp24 [V33,T62] ( 6, 0 ) int -> x27 "Inline stloc first use temp"
+; V34 tmp25 [V34,T64] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V35 tmp26 [V35,T66] ( 4, 0 ) int -> x28 "Inline stloc first use temp"
; V36 tmp27 [V36,T10] ( 5, 4.45) int -> x25 "Inline stloc first use temp"
; V37 tmp28 [V37,T08] ( 6, 5.76) int -> x0 "Inline stloc first use temp"
; V38 tmp29 [V38,T21] ( 3, 2.57) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
;* V50 tmp41 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V52 tmp43 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V53 tmp44 [V53,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V53 tmp44 [V53,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V64 tmp55 [V64,T66] ( 4, 0 ) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V65 tmp56 [V65,T68] ( 4, 0 ) int -> [fp+0x50] spill-single-def "Inlining Arg"
-; V66 tmp57 [V66,T76] ( 2, 0 ) long -> [fp+0x48] spill-single-def "Inlining Arg"
-; V67 tmp58 [V67,T69] ( 4, 0 ) int -> [fp+0x44] spill-single-def "Inline stloc first use temp"
+; V64 tmp55 [V64,T65] ( 4, 0 ) ref -> x27 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp56 [V65,T67] ( 4, 0 ) int -> x28 "Inlining Arg"
+; V66 tmp57 [V66,T75] ( 2, 0 ) long -> [fp+0x50] spill-single-def "Inlining Arg"
+; V67 tmp58 [V67,T68] ( 4, 0 ) int -> [fp+0x4C] spill-single-def "Inline stloc first use temp"
;* V68 tmp59 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V69 tmp60 [V69,T31] ( 2, 1.04) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V70 tmp61 [V70,T41] ( 4, 0.78) ref -> x24
; V71 tmp62 [V71,T45] ( 3, 0.51) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V73 tmp64 [V73,T77] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V73 tmp64 [V73,T76] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V74 tmp65 [V74,T22] ( 4, 2.30) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V75 tmp66 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V76 tmp67 [V76,T42] ( 2, 0.73) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -97,7 +97,7 @@
; V85 tmp76 [V85,T61] ( 2, 0.00) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V87 tmp78 [V87,T53] ( 2, 0.36) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V88 tmp79 [V88,T72] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V88 tmp79 [V88,T71] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V89 tmp80 [V89,T07] ( 3, 5.80) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
;* V90 tmp81 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -116,19 +116,18 @@
; V104 tmp95 [V104,T54] ( 4, 0.09) ref -> x8 "field V51.Item1 (fldOffset=0x0)" P-INDEP
; V105 tmp96 [V105,T58] ( 2, 0.06) long -> x9 "field V51.Item2 (fldOffset=0x8)" P-INDEP
; V106 tmp97 [V106,T59] ( 2, 0.06) int -> x10 "field V51.Item3 (fldOffset=0x10)" P-INDEP
-; V107 tmp98 [V107 ] ( 8, 7.73) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99 [V108,T78] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101 [V110,T79] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V107 tmp98 [V107 ] ( 8, 7.73) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99 [V108,T77] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101 [V110,T78] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V111 tmp102 [V111,T50] ( 2, 0.38) ref -> x24 single-def "argument with side effect"
; V112 tmp103 [V112,T51] ( 2, 0.38) ref -> x2 single-def "argument with side effect"
-; V113 tmp104 [V113,T73] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V113 tmp104 [V113,T72] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V114 tmp105 [V114,T13] ( 2, 3.87) ref -> x0 single-def "argument with side effect"
; V115 cse0 [V115,T40] ( 3, 0.78) ref -> x0 "CSE - conservative"
; V116 cse1 [V116,T17] ( 3, 3.20) int -> x5 hoist "CSE - aggressive"
; V117 cse2 [V117,T20] ( 8, 2.90) ref -> x1 multi-def "CSE - moderate"
-; V118 cse3 [V118,T63] ( 6, 0 ) long -> registers multi-def "CSE - conservative"
-; V119 rat0 [V119,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
+; V118 rat0 [V118,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 96
@@ -140,18 +139,19 @@ G_M61086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp x25, x26, [sp, #0xA0]
stp x27, x28, [sp, #0xB0]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x40]
+ str xzr, [x9, #0x50]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
; gcrRegs +[x19]
mov x21, x2
mov w22, w3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.50
G_M61086_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09: ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
;; size=24 bbWeight=0 PerfScore 0.00
G_M61086_IG10: ; bbWeight=0, nogc, extend
ldp x0, x1, [fp, #0x58]
- stp x0, x1, [fp, #0x28]
+ stp x0, x1, [fp, #0x30]
ldr x0, [fp, #0x68]
- str x0, [fp, #0x38]
+ str x0, [fp, #0x40]
;; size=16 bbWeight=0 PerfScore 0.00
G_M61086_IG11: ; bbWeight=0, isz, extend
mov x0, x25
; gcrRegs +[x0]
- add x1, fp, #40 // [V107 tmp98]
- movz x26, #0xD1FFAB1E // code for <unknown method>
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #1 LSL #32
- mov x11, x26
+ add x1, fp, #48 // [V107 tmp98]
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w27, w0
- ldr x28, [x24, #0x08]
- ; gcrRegs +[x28]
- ldr w1, [x28, #0x08]
- str w1, [fp, #0x50] // [V65 tmp56]
- ldr x2, [x24, #0x30]
- str x2, [fp, #0x48] // [V66 tmp57]
+ sxtw w26, w0
+ ldr x27, [x24, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x27, #0x08]
+ ldr x1, [x24, #0x30]
+ str x1, [fp, #0x50] // [V66 tmp57]
mov w0, #1
- movz x3, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #1 LSL #32
- ldr x3, [x3]
- blr x3
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #1 LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- mov w0, w27
- ldr x2, [fp, #0x48] // [V66 tmp57]
- mul x0, x2, x0
+ mov w0, w26
+ ldr x1, [fp, #0x50] // [V66 tmp57]
+ mul x0, x1, x0
lsr x0, x0, #32
add x0, x0, #1
- ldr w1, [fp, #0x50] // [V65 tmp56]
- mov w2, w1
- mul x0, x0, x2
- lsr x2, x0, #32
- str w2, [fp, #0x44] // [V67 tmp58]
- cmp w1, #0
+ mov w1, w28
+ mul x0, x0, x1
+ lsr x1, x0, #32
+ str w1, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, #0
beq G_M61086_IG54
- udiv w0, w27, w1
- msub w0, w0, w1, w27
- cmp w0, w2
+ udiv w0, w26, w28
+ msub w0, w0, w28, w26
+ cmp w0, w1
cset x0, eq
- movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- blr x1
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #1 LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- ldr w0, [x28, #0x08]
- ldr w2, [fp, #0x44] // [V67 tmp58]
- cmp w2, w0
+ ldr w0, [x27, #0x08]
+ ldr w28, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, w0
bhs G_M61086_IG53
- add x0, x28, #16
+ add x0, x27, #16
; byrRegs +[x0]
- ldr w28, [x0, w2, UXTW #2]
- ; gcrRegs -[x28]
+ ldr w27, [x0, w28, UXTW #2]
+ ; gcrRegs -[x27]
ldr x24, [x24, #0x10]
- mov w3, wzr
- sub w28, w28, #1
+ mov w28, wzr
+ sub w27, w27, #1
b G_M61086_IG55
- ;; size=204 bbWeight=0 PerfScore 0.00
+ ;; size=192 bbWeight=0 PerfScore 0.00
G_M61086_IG12: ; bbWeight=0.94, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28: ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
ldr x0, [x19, #0x90]
; gcrRegs +[x0]
ldrsb wzr, [x0]
- stp x20, x21, [fp, #0x28] // [V107 tmp98], [V107 tmp98+0x08]
- str w22, [fp, #0x38] // [V107 tmp98+0x10]
- add x1, fp, #40 // [V107 tmp98]
+ stp x20, x21, [fp, #0x30] // [V107 tmp98], [V107 tmp98+0x08]
+ str w22, [fp, #0x40] // [V107 tmp98+0x10]
+ add x1, fp, #48 // [V107 tmp98]
mov x2, x24
; gcrRegs +[x2]
...
+8 (+1.08%) : 61229.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:Populate(System.String,int,int):System.Canon[]:this (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> x20 this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-; V01 arg1 [V01,T00] ( 8, 4 ) ref -> x19 class-hnd single-def <System.String>
+; V01 arg1 [V01,T00] ( 10, 4 ) ref -> x19 class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 6, 4 ) int -> x21 single-def
; V03 arg3 [V03,T03] ( 6, 3 ) int -> x22 single-def
; V04 loc0 [V04 ] ( 5, 3 ) ref -> [fp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
@@ -21,14 +21,14 @@
;* V09 loc5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
;* V10 loc6 [V10 ] ( 0, 0 ) long -> zero-ref
; V11 loc7 [V11 ] ( 3, 0 ) byref -> [fp-0x58] must-init pinned
-; V12 loc8 [V12,T15] ( 2, 0 ) long -> x3
+; V12 loc8 [V12,T14] ( 2, 0 ) long -> x3
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T05] ( 7, 0 ) long -> x24
-; V15 tmp2 [V15,T14] ( 2, 0 ) ref -> x25 class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V15 tmp2 [V15,T13] ( 2, 0 ) ref -> x25 class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V16 tmp3 [V16,T07] ( 6, 0 ) int -> x26 "guarded devirt return temp"
;* V17 tmp4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V18 tmp5 [V18,T04] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
-;* V19 tmp6 [V19,T22] ( 0, 0 ) int -> zero-ref
+;* V19 tmp6 [V19,T21] ( 0, 0 ) int -> zero-ref
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
; V21 tmp8 [V21,T08] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
;* V22 tmp9 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -39,17 +39,16 @@
; V27 tmp14 [V27 ] ( 1, 0 ) int -> [fp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V28 tmp15 [V28 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V29 tmp16 [V29,T09] ( 4, 0 ) int -> x3 "Inline stloc first use temp"
-; V30 tmp17 [V30,T12] ( 3, 0 ) long -> x26 "Inline stloc first use temp"
-; V31 tmp18 [V31,T16] ( 2, 0 ) long -> x24 "Cast away GC"
-; V32 tmp19 [V32,T11] ( 3, 0 ) ref -> x0 single-def "arr expr"
-; V33 tmp20 [V33,T17] ( 2, 0 ) long -> x3 "Cast away GC"
-;* V34 tmp21 [V34,T21] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V35 tmp22 [V35,T18] ( 2, 0 ) long -> x1 "argument with side effect"
-; V36 tmp23 [V36,T19] ( 2, 0 ) int -> x2 "argument with side effect"
-; V37 tmp24 [V37,T20] ( 2, 0 ) long -> x3 "argument with side effect"
+; V30 tmp17 [V30,T11] ( 3, 0 ) long -> x26 "Inline stloc first use temp"
+; V31 tmp18 [V31,T15] ( 2, 0 ) long -> x24 "Cast away GC"
+; V32 tmp19 [V32,T10] ( 3, 0 ) ref -> x0 single-def "arr expr"
+; V33 tmp20 [V33,T16] ( 2, 0 ) long -> x3 "Cast away GC"
+;* V34 tmp21 [V34,T20] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V35 tmp22 [V35,T17] ( 2, 0 ) long -> x1 "argument with side effect"
+; V36 tmp23 [V36,T18] ( 2, 0 ) int -> x2 "argument with side effect"
+; V37 tmp24 [V37,T19] ( 2, 0 ) long -> x3 "argument with side effect"
; V38 GsCookie [V38 ] ( 1, 1 ) long -> [fp-0x70] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V39 cse0 [V39,T10] ( 4, 0 ) int -> x23 "CSE - conservative"
-; V40 rat0 [V40,T13] ( 3, 0 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
+; V39 rat0 [V39,T12] ( 3, 0 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 48
@@ -80,8 +79,8 @@ G_M22299_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbz x19, G_M22299_IG04
;; size=4 bbWeight=1 PerfScore 1.00
G_M22299_IG03: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ldr w23, [x19, #0x08]
- cmp w23, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
cset x0, eq
b G_M22299_IG08
;; size=16 bbWeight=0 PerfScore 0.00
@@ -147,7 +146,8 @@ G_M22299_IG08: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbnz w0, G_M22299_IG04
cmp w22, #1
bne G_M22299_IG09
- cmp w23, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
bls G_M22299_IG07
ldrh w0, [x19, #0x0C]
cmp w0, #46
@@ -156,8 +156,9 @@ G_M22299_IG08: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cmp w0, #42
beq G_M22299_IG09
b G_M22299_IG04
- ;; size=48 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M22299_IG09: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr w23, [x19, #0x08]
add x0, x19, #12
; byrRegs +[x0]
str x0, [fp, #-0x50] // [V07 loc3]
@@ -179,7 +180,7 @@ G_M22299_IG09: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x19-x20 x25]
; byrRegs -[x24]
brk_unix #0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=64 bbWeight=0 PerfScore 0.00
G_M22299_IG10: ; bbWeight=0, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x20 x25]
sub x2, fp, #96 // [V26 tmp13]
@@ -306,7 +307,7 @@ G_M22299_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
b G_M22299_IG05
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 740, prolog size 60, PerfScore 48.00, instruction count 185, allocated bytes for code 740 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
+Total bytes of code 748, prolog size 60, PerfScore 48.00, instruction count 187, allocated bytes for code 748 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
; ============================================================
Unwind Info:
@@ -317,7 +318,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 185 (0x000b9) Actual length = 740 (0x0002e4)
+ Function Length : 187 (0x000bb) Actual length = 748 (0x0002ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+1.08%) : 27291.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:Populate(System.String,int,int):System.Canon[]:this (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> x20 this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-; V01 arg1 [V01,T00] ( 8, 4 ) ref -> x19 class-hnd single-def <System.String>
+; V01 arg1 [V01,T00] ( 10, 4 ) ref -> x19 class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 6, 4 ) int -> x21 single-def
; V03 arg3 [V03,T03] ( 6, 3 ) int -> x22 single-def
; V04 loc0 [V04 ] ( 5, 3 ) ref -> [fp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
@@ -21,14 +21,14 @@
;* V09 loc5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
;* V10 loc6 [V10 ] ( 0, 0 ) long -> zero-ref
; V11 loc7 [V11 ] ( 3, 0 ) byref -> [fp-0x58] must-init pinned
-; V12 loc8 [V12,T15] ( 2, 0 ) long -> x3
+; V12 loc8 [V12,T14] ( 2, 0 ) long -> x3
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T05] ( 7, 0 ) long -> x24
-; V15 tmp2 [V15,T14] ( 2, 0 ) ref -> x25 class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V15 tmp2 [V15,T13] ( 2, 0 ) ref -> x25 class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V16 tmp3 [V16,T07] ( 6, 0 ) int -> x26 "guarded devirt return temp"
;* V17 tmp4 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Text.UTF8Encoding+UTF8EncodingSealed>
; V18 tmp5 [V18,T04] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
-;* V19 tmp6 [V19,T22] ( 0, 0 ) int -> zero-ref
+;* V19 tmp6 [V19,T21] ( 0, 0 ) int -> zero-ref
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
; V21 tmp8 [V21,T08] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
;* V22 tmp9 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -39,17 +39,16 @@
; V27 tmp14 [V27 ] ( 1, 0 ) int -> [fp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V28 tmp15 [V28 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V29 tmp16 [V29,T09] ( 4, 0 ) int -> x3 "Inline stloc first use temp"
-; V30 tmp17 [V30,T12] ( 3, 0 ) long -> x26 "Inline stloc first use temp"
-; V31 tmp18 [V31,T16] ( 2, 0 ) long -> x24 "Cast away GC"
-; V32 tmp19 [V32,T11] ( 3, 0 ) ref -> x0 single-def "arr expr"
-; V33 tmp20 [V33,T17] ( 2, 0 ) long -> x3 "Cast away GC"
-;* V34 tmp21 [V34,T21] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V35 tmp22 [V35,T18] ( 2, 0 ) long -> x1 "argument with side effect"
-; V36 tmp23 [V36,T19] ( 2, 0 ) int -> x2 "argument with side effect"
-; V37 tmp24 [V37,T20] ( 2, 0 ) long -> x3 "argument with side effect"
+; V30 tmp17 [V30,T11] ( 3, 0 ) long -> x26 "Inline stloc first use temp"
+; V31 tmp18 [V31,T15] ( 2, 0 ) long -> x24 "Cast away GC"
+; V32 tmp19 [V32,T10] ( 3, 0 ) ref -> x0 single-def "arr expr"
+; V33 tmp20 [V33,T16] ( 2, 0 ) long -> x3 "Cast away GC"
+;* V34 tmp21 [V34,T20] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V35 tmp22 [V35,T17] ( 2, 0 ) long -> x1 "argument with side effect"
+; V36 tmp23 [V36,T18] ( 2, 0 ) int -> x2 "argument with side effect"
+; V37 tmp24 [V37,T19] ( 2, 0 ) long -> x3 "argument with side effect"
; V38 GsCookie [V38 ] ( 1, 1 ) long -> [fp-0x70] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V39 cse0 [V39,T10] ( 4, 0 ) int -> x23 "CSE - conservative"
-; V40 rat0 [V40,T13] ( 3, 0 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
+; V39 rat0 [V39,T12] ( 3, 0 ) long -> x0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 48
@@ -80,8 +79,8 @@ G_M22299_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbz x19, G_M22299_IG04
;; size=4 bbWeight=1 PerfScore 1.00
G_M22299_IG03: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ldr w23, [x19, #0x08]
- cmp w23, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
cset x0, eq
b G_M22299_IG08
;; size=16 bbWeight=0 PerfScore 0.00
@@ -147,7 +146,8 @@ G_M22299_IG08: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cbnz w0, G_M22299_IG04
cmp w22, #1
bne G_M22299_IG09
- cmp w23, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
bls G_M22299_IG07
ldrh w0, [x19, #0x0C]
cmp w0, #46
@@ -156,8 +156,9 @@ G_M22299_IG08: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cmp w0, #42
beq G_M22299_IG09
b G_M22299_IG04
- ;; size=48 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M22299_IG09: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr w23, [x19, #0x08]
add x0, x19, #12
; byrRegs +[x0]
str x0, [fp, #-0x50] // [V07 loc3]
@@ -179,7 +180,7 @@ G_M22299_IG09: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs -[x19-x20 x25]
; byrRegs -[x24]
brk_unix #0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=64 bbWeight=0 PerfScore 0.00
G_M22299_IG10: ; bbWeight=0, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x20 x25]
sub x2, fp, #96 // [V26 tmp13]
@@ -306,7 +307,7 @@ G_M22299_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
b G_M22299_IG05
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 740, prolog size 60, PerfScore 48.00, instruction count 185, allocated bytes for code 740 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
+Total bytes of code 748, prolog size 60, PerfScore 48.00, instruction count 187, allocated bytes for code 748 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
; ============================================================
Unwind Info:
@@ -317,7 +318,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 185 (0x000b9) Actual length = 740 (0x0002e4)
+ Function Length : 187 (0x000bb) Actual length = 748 (0x0002ec)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+1.42%) : 77153.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet
1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String@@ -19,17 +19,17 @@
; V07 loc2 [V07,T18] ( 5, 3 ) ref -> x0 class-hnd <System.Buffers.SearchValues`1[System.String]>
; V08 loc3 [V08,T19] ( 3, 2.96) int -> x2
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T44] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V11 tmp2 [V11,T45] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V10 tmp1 [V10,T43] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V11 tmp2 [V11,T44] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-; V14 tmp5 [V14,T47] ( 3, 0 ) ref -> x20
-; V15 tmp6 [V15,T46] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V14 tmp5 [V14,T46] ( 3, 0 ) ref -> x20
+; V15 tmp6 [V15,T45] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V16 tmp7 [V16,T28] ( 6, 1.19) ref -> x0 class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V18 tmp9 [V18,T48] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V19 tmp10 [V19,T49] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V20 tmp11 [V20,T50] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V18 tmp9 [V18,T47] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V19 tmp10 [V19,T48] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V20 tmp11 [V20,T49] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V21 tmp12 [V21,T04] ( 10, 11.89) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V23 tmp14 [V23,T08] ( 16, 6.64) int -> registers ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
;* V72 tmp63 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp66 [V75,T54] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V76 tmp67 [V76,T56] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
-; V77 tmp68 [V77,T58] ( 2, 0 ) int -> x0 "Inline return value spill temp"
+; V75 tmp66 [V75,T53] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V76 tmp67 [V76,T55] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
+; V77 tmp68 [V77,T57] ( 2, 0 ) int -> x0 "Inline return value spill temp"
; V78 tmp69 [V78 ] ( 2, 0 ) ushort -> [fp+0x24] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V79 tmp70 [V79 ] ( 2, 0 ) ushort -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V80 tmp71 [V80 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -107,8 +107,8 @@
;* V95 tmp86 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V96 tmp87 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V97 tmp88 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V98 tmp89 [V98,T59] ( 2, 0 ) ushort -> x1 "Inlining Arg"
-; V99 tmp90 [V99,T60] ( 2, 0 ) ushort -> x2 "Inlining Arg"
+; V98 tmp89 [V98,T58] ( 2, 0 ) ushort -> x1 "Inlining Arg"
+; V99 tmp90 [V99,T59] ( 2, 0 ) ushort -> x2 "Inlining Arg"
;* V100 tmp91 [V100 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V101 tmp92 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V102 tmp93 [V102 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -123,17 +123,17 @@
;* V111 tmp102 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V112 tmp103 [V112,T37] ( 6, 0.72) ref -> x0 class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V113 tmp104 [V113 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V114 tmp105 [V114,T51] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V115 tmp106 [V115,T52] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V116 tmp107 [V116,T53] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V114 tmp105 [V114,T50] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V115 tmp106 [V115,T51] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V116 tmp107 [V116,T52] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V117 tmp108 [V117,T26] ( 3, 2.17) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V118 tmp109 [V118 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V119 tmp110 [V119 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V120 tmp111 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V121 tmp112 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V122 tmp113 [V122,T55] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V123 tmp114 [V123,T57] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
-; V124 tmp115 [V124,T61] ( 2, 0 ) int -> x0 "Inline return value spill temp"
+; V122 tmp113 [V122,T54] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V123 tmp114 [V123,T56] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
+; V124 tmp115 [V124,T60] ( 2, 0 ) int -> x0 "Inline return value spill temp"
; V125 tmp116 [V125 ] ( 2, 0 ) ushort -> [fp+0x1C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V126 tmp117 [V126 ] ( 2, 0 ) ushort -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V127 tmp118 [V127 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -154,8 +154,8 @@
;* V142 tmp133 [V142 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V143 tmp134 [V143 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V145 tmp136 [V145,T62] ( 2, 0 ) ushort -> x1 "Inlining Arg"
-; V146 tmp137 [V146,T63] ( 2, 0 ) ushort -> x2 "Inlining Arg"
+; V145 tmp136 [V145,T61] ( 2, 0 ) ushort -> x1 "Inlining Arg"
+; V146 tmp137 [V146,T62] ( 2, 0 ) ushort -> x2 "Inlining Arg"
;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V148 tmp139 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V149 tmp140 [V149 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -238,7 +238,6 @@
;* V226 tmp217 [V226 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
;* V227 tmp218 [V227 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
; V228 cse0 [V228,T09] ( 13, 6.56) int -> x22 "CSE - aggressive"
-; V229 cse1 [V229,T43] ( 9, 0 ) ref -> x1 multi-def "CSE - conservative"
;
; Lcl frame size = 24
@@ -471,37 +470,37 @@ G_M46798_IG34: ; bbWeight=0.59, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
cbnz w24, G_M46798_IG36
;; size=4 bbWeight=0.59 PerfScore 0.59
G_M46798_IG35: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=44 bbWeight=0 PerfScore 0.00
G_M46798_IG36: ; bbWeight=0.59, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
cmp w24, w25
bne G_M46798_IG38
;; size=8 bbWeight=0.59 PerfScore 0.89
G_M46798_IG37: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=44 bbWeight=0 PerfScore 0.00
G_M46798_IG38: ; bbWeight=0.59, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
cmp w25, #0
ccmp w25, w24, z, gt
@@ -815,20 +814,20 @@ G_M46798_IG55: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=4 bbWeight=0 PerfScore 0.00
G_M46798_IG56: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20 x23]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M46798_IG42
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M46798_IG57: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
movz x0, #0xD1FFAB1E
@@ -945,7 +944,7 @@ G_M46798_IG60: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
RWD00 dd 7F7FFFFFh ; 3.40282e+38
-; Total bytes of code 1692, prolog size 36, PerfScore 191.16, instruction count 423, allocated bytes for code 1692 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1716, prolog size 36, PerfScore 191.16, instruction count 429, allocated bytes for code 1716 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
; ============================================================
Unwind Info:
@@ -956,7 +955,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 423 (0x001a7) Actual length = 1692 (0x00069c)
+ Function Length : 429 (0x001ad) Actual length = 1716 (0x0006b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.osx.arm64.checked.mch
-20 (-1.71%) : 261279.dasm - System.Text.StringBuilder+AppendInterpolatedStringHandler:AppendFormattedSystem.__Canon:this (Tier1)
@@ -19,19 +19,19 @@
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T02] ( 6, 10 ) ref -> x22 class-hnd exact single-def "impAppendStmt" <System.Text.StringBuilder>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.Text.StringBuilder>
-;* V10 tmp3 [V10,T50] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.__Canon>
+;* V10 tmp3 [V10,T49] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.__Canon>
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ushort]>
;* V12 tmp5 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V13 tmp6 [V13,T36] ( 3, 0 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Text.StringBuilder>
+; V13 tmp6 [V13,T35] ( 3, 0 ) ref -> x0 class-hnd exact single-def "dup spill" <System.Text.StringBuilder>
;* V14 tmp7 [V14 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V15 tmp8 [V15,T09] ( 6, 4 ) ref -> x0 "guarded devirt return temp"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref single-def "guarded devirt arg temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.AssemblyName>
-; V18 tmp11 [V18,T31] ( 5, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
+; V18 tmp11 [V18,T30] ( 5, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V20 tmp13 [V20,T32] ( 4, 0 ) ref -> x23 class-hnd single-def "Inlining Arg" <ushort[]>
-; V21 tmp14 [V21,T33] ( 4, 0 ) int -> x24 "Inlining Arg"
-; V22 tmp15 [V22,T34] ( 4, 0 ) int -> x25 "Inlining Arg"
+; V20 tmp13 [V20,T31] ( 4, 0 ) ref -> x23 class-hnd single-def "Inlining Arg" <ushort[]>
+; V21 tmp14 [V21,T32] ( 4, 0 ) int -> x24 "Inlining Arg"
+; V22 tmp15 [V22,T33] ( 4, 0 ) int -> x25 "Inlining Arg"
;* V23 tmp16 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.String>
; V24 tmp17 [V24,T19] ( 4, 3 ) ref -> x0 class-hnd "Inline return value spill temp" <System.String>
; V25 tmp18 [V25,T12] ( 2, 4 ) ref -> x23 class-hnd single-def "dup spill" <<unknown class>>
@@ -41,7 +41,7 @@
; V29 tmp22 [V29,T14] ( 2, 4 ) ref -> x25 class-hnd exact single-def "impAppendStmt" <System.Version>
; V30 tmp23 [V30,T11] ( 3, 4 ) ref -> x2 class-hnd exact "impAppendStmt" <System.String>
; V31 tmp24 [V31,T15] ( 2, 4 ) int -> x4 "impAppendStmt"
-;* V32 tmp25 [V32,T26] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V32 tmp25 [V32,T27] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V33 tmp26 [V33,T06] ( 3, 5.23) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
; V34 tmp27 [V34,T04] ( 8, 7.94) ref -> x0 class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
;* V35 tmp28 [V35 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -51,11 +51,11 @@
; V39 tmp32 [V39,T21] ( 4, 2.61) ref -> x2
;* V40 tmp33 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V41 tmp34 [V41 ] ( 0, 0 ) ref -> zero-ref single-def
-; V42 tmp35 [V42,T27] ( 7, 0.69) ref -> x2
+; V42 tmp35 [V42,T26] ( 6, 1.04) ref -> x2
;* V43 tmp36 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V44 tmp37 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V45 tmp38 [V45,T28] ( 2, 0.69) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V46 tmp39 [V46,T29] ( 5, 0.52) ref -> x2
+; V45 tmp38 [V45,T29] ( 2, 0.69) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V46 tmp39 [V46,T28] ( 5, 0.86) ref -> x2
; V47 tmp40 [V47,T08] ( 5, 5 ) int -> x5 "Inline stloc first use temp"
;* V48 tmp41 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
; V49 tmp42 [V49,T01] ( 8, 10.33) int -> x26 "Inlining Arg"
@@ -67,28 +67,27 @@
;* V55 tmp48 [V55 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V56 tmp49 [V56,T23] ( 2, 2.33) long -> x2 "Inlining Arg"
;* V57 tmp50 [V57 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V58 tmp51 [V58,T43] ( 2, 0 ) byref -> x4 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V59 tmp52 [V59,T51] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
+; V58 tmp51 [V58,T42] ( 2, 0 ) byref -> x4 single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V59 tmp52 [V59,T50] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP
;* V60 tmp53 [V60 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
;* V61 tmp54 [V61 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V62 tmp55 [V62 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V64 tmp57 [V64,T37] ( 3, 0 ) byref -> x1 "field V19._reference (fldOffset=0x0)" P-INDEP
-; V65 tmp58 [V65,T35] ( 4, 0 ) int -> x25 "field V19._length (fldOffset=0x8)" P-INDEP
-; V66 tmp59 [V66,T44] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-; V67 tmp60 [V67,T45] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-; V68 tmp61 [V68,T46] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V69 tmp62 [V69,T47] ( 2, 0 ) ref -> x26 single-def "argument with side effect"
-; V70 tmp63 [V70,T48] ( 2, 0 ) long -> x1 "argument with side effect"
-; V71 tmp64 [V71,T49] ( 2, 0 ) long -> x1 "argument with side effect"
+; V64 tmp57 [V64,T36] ( 3, 0 ) byref -> x1 "field V19._reference (fldOffset=0x0)" P-INDEP
+; V65 tmp58 [V65,T34] ( 4, 0 ) int -> x25 "field V19._length (fldOffset=0x8)" P-INDEP
+; V66 tmp59 [V66,T43] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V67 tmp60 [V67,T44] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V68 tmp61 [V68,T45] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V69 tmp62 [V69,T46] ( 2, 0 ) ref -> x26 single-def "argument with side effect"
+; V70 tmp63 [V70,T47] ( 2, 0 ) long -> x1 "argument with side effect"
+; V71 tmp64 [V71,T48] ( 2, 0 ) long -> x1 "argument with side effect"
; V72 cse0 [V72,T20] ( 3, 3 ) int -> x0 "CSE - moderate"
-; V73 cse1 [V73,T30] ( 6, 0 ) ref -> registers multi-def "CSE - moderate"
-; V74 rat0 [V74,T38] ( 3, 0 ) long -> x1 "runtime lookup"
-; V75 rat1 [V75,T39] ( 3, 0 ) long -> x0 "spilling expr"
-; V76 rat2 [V76,T40] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
-; V77 rat3 [V77,T41] ( 3, 0 ) long -> x1 "runtime lookup"
-; V78 rat4 [V78,T42] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
-; V79 rat5 [V79,T03] ( 6, 8 ) ref -> x1 class-hnd "replacement local" <<unknown class>>
+; V73 rat0 [V73,T37] ( 3, 0 ) long -> x1 "runtime lookup"
+; V74 rat1 [V74,T38] ( 3, 0 ) long -> x0 "spilling expr"
+; V75 rat2 [V75,T39] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V76 rat3 [V76,T40] ( 3, 0 ) long -> x1 "runtime lookup"
+; V77 rat4 [V77,T41] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V78 rat5 [V78,T03] ( 6, 8 ) ref -> x1 class-hnd "replacement local" <<unknown class>>
;
; Lcl frame size = 24
@@ -141,7 +140,7 @@ G_M62532_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
blr x4
; gcrRegs -[x2 x19]
; byrRegs -[x0 x20]
- b G_M62532_IG42
+ b G_M62532_IG41
;; size=36 bbWeight=0 PerfScore 0.00
G_M62532_IG06: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs +[x19]
@@ -275,7 +274,7 @@ G_M62532_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
ldr w2, [fp, #0x18] // [V06 loc3]
add w1, w1, w2
str w1, [x0, #0x18]
- b G_M62532_IG42
+ b G_M62532_IG41
;; size=24 bbWeight=0 PerfScore 0.00
G_M62532_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0] +[x19]
@@ -306,7 +305,7 @@ G_M62532_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
blr x5
; gcrRegs -[x2 x19]
; byrRegs -[x0 x20]
- b G_M62532_IG42
+ b G_M62532_IG41
;; size=40 bbWeight=0 PerfScore 0.00
G_M62532_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
; gcrRegs +[x19]
@@ -335,12 +334,12 @@ G_M62532_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
ldr wzr, [x0]
blr x2
; gcrRegs -[x1 x26]
- b G_M62532_IG42
+ b G_M62532_IG41
;; size=72 bbWeight=0 PerfScore 0.00
G_M62532_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
; gcrRegs -[x0] +[x19]
; byrRegs +[x20]
- cbz x19, G_M62532_IG42
+ cbz x19, G_M62532_IG41
ldr x22, [x20]
; gcrRegs +[x22]
ldr x0, [x19]
@@ -362,11 +361,11 @@ G_M62532_IG22: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {
;; size=20 bbWeight=0 PerfScore 0.00
G_M62532_IG23: ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}, byref, isz
ldrsb wzr, [x22]
- cbz x0, G_M62532_IG42
+ cbz x0, G_M62532_IG41
add x1, x0, #12
; byrRegs +[x1]
ldr w26, [x0, #0x08]
- cbz w26, G_M62532_IG42
+ cbz w26, G_M62532_IG41
ldr x2, [x22, #0x08]
; gcrRegs +[x2]
ldr w27, [x22, #0x18]
@@ -374,7 +373,7 @@ G_M62532_IG23: ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}
; gcrRegs -[x0]
ldr w3, [x2, #0x08]
cmp w0, w3
- bhi G_M62532_IG41
+ bhi G_M62532_IG40
;; size=44 bbWeight=1 PerfScore 19.50
G_M62532_IG24: ; bbWeight=0.58, gcrefRegs=400004 {x2 x22}, byrefRegs=0002 {x1}, byref, isz
add x2, x2, #16
@@ -384,8 +383,8 @@ G_M62532_IG24: ; bbWeight=0.58, gcrefRegs=400004 {x2 x22}, byrefRegs=0002
add x0, x2, x0
; byrRegs +[x0]
cmp w26, #2
- bgt G_M62532_IG43
- b G_M62532_IG48
+ bgt G_M62532_IG42
+ b G_M62532_IG45
;; size=24 bbWeight=0.58 PerfScore 2.62
G_M62532_IG25: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19]
@@ -478,26 +477,29 @@ G_M62532_IG34: ; bbWeight=1, gcrefRegs=3C80004 {x2 x19 x22 x23 x24 x25},
; gcrRegs -[x1-x3 x23-x25]
;; size=60 bbWeight=1 PerfScore 13.50
G_M62532_IG35: ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x0, G_M62532_IG40
- b G_M62532_IG47
+ cbnz x0, G_M62532_IG39
+ b G_M62532_IG44
;; size=8 bbWeight=1 PerfScore 2.00
G_M62532_IG36: ; bbWeight=0.81, gcrefRegs=3C80001 {x0 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x23-x25]
ldr x2, [x0, #0x48]
; gcrRegs +[x2]
- cbnz x2, G_M62532_IG39
+ cbnz x2, G_M62532_IG38
;; size=8 bbWeight=0.81 PerfScore 3.25
-G_M62532_IG37: ; bbWeight=0.17, gcrefRegs=3C80001 {x0 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+G_M62532_IG37: ; bbWeight=0.17, gcrefRegs=3C80001 {x0 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x2, [x14, #0x18]
; gcrRegs +[x2]
- cbz x2, G_M62532_IG45
- cbz x2, G_M62532_IG46
- ;; size=16 bbWeight=0.17 PerfScore 1.38
-G_M62532_IG38: ; bbWeight=0.17, gcrefRegs=3C80005 {x0 x2 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
+ movz x14, #8
; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #1 LSL #32
+ cmp x2, #0
+ csel x2, x2, x14, ne
+ cmp x2, #0
+ csel x2, x2, x14, ne
add x14, x0, #72
; byrRegs +[x14]
mov x15, x2
@@ -505,15 +507,15 @@ G_M62532_IG38: ; bbWeight=0.17, gcrefRegs=3C80005 {x0 x2 x19 x22 x23 x24
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.17 PerfScore 0.35
-G_M62532_IG39: ; bbWeight=0.81, gcrefRegs=3C80004 {x2 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
+ ;; size=48 bbWeight=0.17 PerfScore 1.99
+G_M62532_IG38: ; bbWeight=0.81, gcrefRegs=3C80004 {x2 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
b G_M62532_IG34
;; size=4 bbWeight=0.81 PerfScore 0.81
-G_M62532_IG40: ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}, byref
+G_M62532_IG39: ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x2 x19 x23-x25] +[x0]
b G_M62532_IG23
;; size=4 bbWeight=1 PerfScore 1.00
-G_M62532_IG41: ; bbWeight=0.42, gcrefRegs=400000 {x22}, byrefRegs=0002 {x1}, byref
+G_M62532_IG40: ; bbWeight=0.42, gcrefRegs=400000 {x22}, byrefRegs=0002 {x1}, byref
; gcrRegs -[x0]
; byrRegs +[x1]
mov x0, x22
@@ -527,7 +529,7 @@ G_M62532_IG41: ; bbWeight=0.42, gcrefRegs=400000 {x22}, byrefRegs=0002 {x
; gcrRegs -[x0 x22]
; byrRegs -[x1]
;; size=28 bbWeight=0.42 PerfScore 2.71
-G_M62532_IG42: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M62532_IG41: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x27, [sp, #0x68]
ldp x25, x26, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
@@ -536,7 +538,7 @@ G_M62532_IG42: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldp fp, lr, [sp], #0x70
ret lr
;; size=28 bbWeight=1 PerfScore 8.00
-G_M62532_IG43: ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=400000 {x22}, byrefRegs=0003 {x0 x1}, gcvars, byref
+G_M62532_IG42: ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=400000 {x22}, byrefRegs=0003 {x0 x1}, gcvars, byref
; gcrRegs +[x22]
; byrRegs +[x0-x1]
sxtw x2, w26
@@ -548,31 +550,13 @@ G_M62532_IG43: ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=400
blr x3
; byrRegs -[x0-x1]
...
-28 (-1.29%) : 261382.dasm - BinderTracingTests.HandlerInvocation:ToString():System.String:this (Tier1)
@@ -52,7 +52,7 @@
; V40 tmp36 [V40,T36] ( 2, 4 ) ref -> x27 class-hnd exact single-def "impAppendStmt" <System.Version>
; V41 tmp37 [V41,T31] ( 3, 4 ) ref -> x2 class-hnd exact "impAppendStmt" <System.String>
; V42 tmp38 [V42,T37] ( 2, 4 ) int -> x4 "impAppendStmt"
-;* V43 tmp39 [V43,T85] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V43 tmp39 [V43,T86] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V44 tmp40 [V44,T20] ( 3, 5.23) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
; V45 tmp41 [V45,T18] ( 8, 7.94) ref -> x0 class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
;* V46 tmp42 [V46 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -62,11 +62,11 @@
; V50 tmp46 [V50,T58] ( 4, 2.61) ref -> x2
;* V51 tmp47 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V52 tmp48 [V52 ] ( 0, 0 ) ref -> zero-ref single-def
-; V53 tmp49 [V53,T88] ( 7, 0.69) ref -> x2
+; V53 tmp49 [V53,T85] ( 6, 1.04) ref -> x2
;* V54 tmp50 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V55 tmp51 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V56 tmp52 [V56,T89] ( 2, 0.69) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V57 tmp53 [V57,T90] ( 5, 0.52) ref -> x2
+; V56 tmp52 [V56,T91] ( 2, 0.69) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V57 tmp53 [V57,T88] ( 5, 0.86) ref -> x2
; V58 tmp54 [V58,T22] ( 5, 5 ) int -> x5 "Inline stloc first use temp"
; V59 tmp55 [V59,T08] ( 6, 10 ) ref -> x28 class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
; V60 tmp56 [V60,T04] ( 8, 10.33) int -> x24 "Inlining Arg"
@@ -78,7 +78,7 @@
;* V66 tmp62 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V67 tmp63 [V67,T69] ( 2, 2.33) long -> x2 "Inlining Arg"
;* V68 tmp64 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V69 tmp65 [V69,T86] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V69 tmp65 [V69,T87] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V70 tmp66 [V70,T21] ( 3, 5.23) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
; V71 tmp67 [V71,T15] ( 5, 8 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
; V72 tmp68 [V72,T63] ( 3, 2.58) ref -> x2 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -93,7 +93,7 @@
; V81 tmp77 [V81,T55] ( 2, 3 ) ref -> x27 class-hnd exact single-def "impAppendStmt" <System.Version>
; V82 tmp78 [V82,T51] ( 3, 3 ) ref -> x2 class-hnd exact "impAppendStmt" <System.String>
; V83 tmp79 [V83,T56] ( 2, 3 ) int -> x4 "impAppendStmt"
-;* V84 tmp80 [V84,T87] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V84 tmp80 [V84,T90] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V85 tmp81 [V85,T38] ( 3, 3.92) ref -> x14 class-hnd exact single-def "Inlining Arg" <System.String>
; V86 tmp82 [V86,T19] ( 8, 5.96) ref -> x0 class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
;* V87 tmp83 [V87 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -103,11 +103,11 @@
; V91 tmp87 [V91,T73] ( 4, 1.96) ref -> x2
;* V92 tmp88 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V93 tmp89 [V93 ] ( 0, 0 ) ref -> zero-ref single-def
-; V94 tmp90 [V94,T91] ( 5, 0.52) ref -> x2
+; V94 tmp90 [V94,T89] ( 6, 0.78) ref -> x2
;* V95 tmp91 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V96 tmp92 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V97 tmp93 [V97,T92] ( 2, 0.52) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
-; V98 tmp94 [V98,T93] ( 4, 0.39) ref -> x2
+; V97 tmp93 [V97,T93] ( 2, 0.52) ref -> x2 class-hnd exact single-def "dup spill" <System.String>
+; V98 tmp94 [V98,T92] ( 5, 0.65) ref -> x2
; V99 tmp95 [V99,T39] ( 5, 3.75) int -> x5 "Inline stloc first use temp"
; V100 tmp96 [V100,T09] ( 6, 10 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
; V101 tmp97 [V101,T05] ( 8, 10.33) int -> x26 "Inlining Arg"
@@ -140,7 +140,6 @@
; V128 tmp124 [V128 ] ( 11, 6 ) ubyte -> [fp+0x28] do-not-enreg[X] addr-exposed "field V03._hasCustomFormatter (fldOffset=0x10)" P-DEP
; V129 cse0 [V129,T52] ( 3, 3 ) int -> x0 "CSE - conservative"
; V130 cse1 [V130,T72] ( 3, 2.25) int -> x0 "CSE - conservative"
-; V131 cse2 [V131,T94] ( 12, 0 ) ref -> x2 multi-def "CSE - moderate"
;
; Lcl frame size = 32
@@ -474,13 +473,13 @@ G_M44822_IG27: ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
G_M44822_IG28: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M44822_IG36
+ cbz x0, G_M44822_IG35
;; size=8 bbWeight=1 PerfScore 4.00
G_M44822_IG29: ; bbWeight=0.62, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
- cbz w0, G_M44822_IG36
- b G_M44822_IG66
+ cbz w0, G_M44822_IG35
+ b G_M44822_IG69
;; size=12 bbWeight=0.62 PerfScore 3.08
G_M44822_IG30: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x2]
@@ -497,7 +496,7 @@ G_M44822_IG30: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
add w0, w25, w24
ldr w3, [x2, #0x08]
cmp w0, w3
- bhi G_M44822_IG54
+ bhi G_M44822_IG53
;; size=48 bbWeight=1 PerfScore 21.50
G_M44822_IG31: ; bbWeight=0.58, gcrefRegs=10180004 {x2 x19 x20 x28}, byrefRegs=0002 {x1}, byref, isz
add x2, x2, #16
@@ -507,27 +506,30 @@ G_M44822_IG31: ; bbWeight=0.58, gcrefRegs=10180004 {x2 x19 x20 x28}, byre
add x0, x2, x0
; byrRegs +[x0]
cmp w24, #2
- bgt G_M44822_IG40
- b G_M44822_IG82
+ bgt G_M44822_IG39
+ b G_M44822_IG76
;; size=24 bbWeight=0.58 PerfScore 2.62
G_M44822_IG32: ; bbWeight=0.81, gcrefRegs=F180001 {x0 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x28] +[x0 x24-x27]
; byrRegs -[x0-x2]
ldr x2, [x0, #0x48]
; gcrRegs +[x2]
- cbnz x2, G_M44822_IG35
+ cbnz x2, G_M44822_IG34
;; size=8 bbWeight=0.81 PerfScore 3.25
-G_M44822_IG33: ; bbWeight=0.17, gcrefRegs=F180001 {x0 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG33: ; bbWeight=0.17, gcrefRegs=F180001 {x0 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x2, [x14, #0x18]
; gcrRegs +[x2]
- cbz x2, G_M44822_IG80
- cbz x2, G_M44822_IG81
- ;; size=16 bbWeight=0.17 PerfScore 1.38
-G_M44822_IG34: ; bbWeight=0.17, gcrefRegs=F180005 {x0 x2 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
+ movz x14, #8
; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #1 LSL #32
+ cmp x2, #0
+ csel x2, x2, x14, ne
+ cmp x2, #0
+ csel x2, x2, x14, ne
add x14, x0, #72
; byrRegs +[x14]
mov x15, x2
@@ -535,11 +537,11 @@ G_M44822_IG34: ; bbWeight=0.17, gcrefRegs=F180005 {x0 x2 x19 x20 x24 x25
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.17 PerfScore 0.35
-G_M44822_IG35: ; bbWeight=0.81, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
+ ;; size=48 bbWeight=0.17 PerfScore 1.99
+G_M44822_IG34: ; bbWeight=0.81, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
b G_M44822_IG25
;; size=4 bbWeight=0.81 PerfScore 0.81
-G_M44822_IG36: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG35: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x2 x24-x27]
stp x20, xzr, [fp, #0x18] // [V126 tmp122], [V127 tmp123]
strb wzr, [fp, #0x28] // [V128 tmp124]
@@ -554,9 +556,9 @@ G_M44822_IG36: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr w4, [x2, #0x08]
add w5, w3, #16
cmp w4, w5
- blo G_M44822_IG67
+ blo G_M44822_IG70
;; size=48 bbWeight=1 PerfScore 16.50
-G_M44822_IG37: ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
+G_M44822_IG36: ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
; byrRegs +[x1]
add x2, x2, #16
; gcrRegs -[x2]
@@ -569,22 +571,22 @@ G_M44822_IG37: ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRe
; byrRegs -[x1]
str w1, [x0, #0x18]
;; size=28 bbWeight=0.58 PerfScore 4.37
-G_M44822_IG38: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG37: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
; byrRegs -[x2]
ldr x25, [x19, #0x20]
; gcrRegs +[x25]
add x28, fp, #24 // [V03 loc2]
; byrRegs +[x28]
- cbnz x25, G_M44822_IG55
+ cbnz x25, G_M44822_IG54
;; size=12 bbWeight=1 PerfScore 4.50
-G_M44822_IG39: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=10000000 {x28}, byref
+G_M44822_IG38: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=10000000 {x28}, byref
; gcrRegs -[x25]
mov x2, xzr
; gcrRegs +[x2]
- b G_M44822_IG43
+ b G_M44822_IG42
;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M44822_IG40: ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0003 {x0 x1}, byref
+G_M44822_IG39: ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0003 {x0 x1}, byref
; gcrRegs -[x2] +[x28]
; byrRegs -[x28] +[x0-x1]
sxtw x2, w24
@@ -596,12 +598,12 @@ G_M44822_IG40: ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRe
blr x3
; byrRegs -[x0-x1]
;; size=28 bbWeight=0.58 PerfScore 4.08
-G_M44822_IG41: ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0000 {}, byref
+G_M44822_IG40: ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0000 {}, byref
add w0, w25, w24
str w0, [x28, #0x18]
b G_M44822_IG28
;; size=12 bbWeight=0.58 PerfScore 1.46
-G_M44822_IG42: ; bbWeight=0.75, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=10000000 {x28}, byref
+G_M44822_IG41: ; bbWeight=0.75, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=10000000 {x28}, byref
; gcrRegs -[x28] +[x2 x24-x27]
; byrRegs +[x28]
ldr w0, [x25, #0x40]
@@ -626,12 +628,12 @@ G_M44822_IG42: ; bbWeight=0.75, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26
mov x2, x0
; gcrRegs +[x2]
;; size=64 bbWeight=0.75 PerfScore 10.50
-G_M44822_IG43: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref, isz
+G_M44822_IG42: ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref, isz
; gcrRegs -[x0]
ldrb w0, [x28, #0x10]
- cbz w0, G_M44822_IG52
+ cbz w0, G_M44822_IG51
;; size=8 bbWeight=1 PerfScore 4.00
-G_M44822_IG44: ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref
+G_M44822_IG43: ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref
mov x0, x28
; byrRegs +[x0]
movz x1, #0xD1FFAB1E
@@ -645,7 +647,7 @@ G_M44822_IG44: ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=100
; gcrRegs -[x2]
; byrRegs -[x0 x28]
;; size=36 bbWeight=0 PerfScore 0.00
-G_M44822_IG45: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG44: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [fp, #0x18] // [V126 tmp122]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E
@@ -657,9 +659,9 @@ G_M44822_IG45: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr w4, [x2, #0x08]
add w5, w3, #7
cmp w4, w5
- blo G_M44822_IG78
+ blo G_M44822_IG74
;; size=40 bbWeight=1 PerfScore 14.50
-G_M44822_IG46: ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
+G_M44822_IG45: ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
; byrRegs +[x1]
add x2, x2, #16
; gcrRegs -[x2]
@@ -674,15 +676,15 @@ G_M44822_IG46: ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRe
; byrRegs -[x1]
str w1, [x0, #0x18]
;; size=36 bbWeight=0.58 PerfScore 6.71
-G_M44822_IG47: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG46: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
; byrRegs -[x2]
ldr x2, [x19, #0x28]
; gcrRegs +[x2]
ldrb w0, [fp, #0x28] // [V128 tmp124]
- cbz w0, G_M44822_IG51
+ cbz w0, G_M44822_IG50
...
-4 (-1.20%) : 296299.dasm - Runtime71611:Cloned(Runtime71611+I,int[],int[],int,int):int (Tier1)
@@ -9,21 +9,20 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T09] ( 6, 3.36) ref -> x22 class-hnd single-def <Runtime_71611+I>
-; V01 arg1 [V01,T06] ( 7, 4.06) ref -> x21 class-hnd single-def <int[]>
-; V02 arg2 [V02,T04] ( 8, 6.33) ref -> x20 class-hnd single-def <int[]>
-; V03 arg3 [V03,T10] ( 3, 3 ) int -> x3 single-def
+; V00 arg0 [V00,T08] ( 6, 3.36) ref -> x22 class-hnd single-def <Runtime_71611+I>
+; V01 arg1 [V01,T05] ( 7, 4.06) ref -> x21 class-hnd single-def <int[]>
+; V02 arg2 [V02,T03] ( 8, 6.33) ref -> x20 class-hnd single-def <int[]>
+; V03 arg3 [V03,T09] ( 3, 3 ) int -> x3 single-def
; V04 arg4 [V04,T02] ( 8, 8 ) int -> x19 single-def
-; V05 loc0 [V05,T05] ( 6, 8 ) int -> x23
-; V06 loc1 [V06,T00] ( 14, 14.70) int -> x24
+; V05 loc0 [V05,T04] ( 6, 8 ) int -> x23
+; V06 loc1 [V06,T00] ( 15, 17.67) int -> x24
;* V07 loc2 [V07 ] ( 0, 0 ) int -> zero-ref
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V09 tmp1 [V09,T07] ( 6, 6 ) int -> x2
-; V10 tmp2 [V10,T08] ( 5, 6 ) int -> x25 "guarded devirt return temp"
+; V09 tmp1 [V09,T06] ( 6, 6 ) int -> x2
+; V10 tmp2 [V10,T07] ( 5, 6 ) int -> x25 "guarded devirt return temp"
; V11 tmp3 [V11,T01] ( 5, 12 ) int -> x1 "guarded devirt arg temp"
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Runtime_71611+Add>
-; V13 cse0 [V13,T03] ( 3, 8.91) long -> x1 "CSE - aggressive"
-; V14 cse1 [V14,T11] ( 4, 3.70) byref -> x0 hoist multi-def "CSE - aggressive"
+; V13 cse0 [V13,T10] ( 4, 3.70) byref -> x0 hoist multi-def "CSE - aggressive"
;
; Lcl frame size = 8
@@ -79,16 +78,15 @@ G_M39013_IG06: ; bbWeight=2.97, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
; gcrRegs -[x21-x22]
add x2, x20, #16
; byrRegs +[x2]
- ubfiz x1, x24, #2, #32
- ldr w2, [x2, x1]
+ ldr w2, [x2, w24, UXTW #2]
; byrRegs -[x2]
- ldr w1, [x0, x1]
+ ldr w1, [x0, w24, UXTW #2]
add w25, w1, w2
add w23, w23, w25
add w24, w24, #1
cmp w24, w19
blt G_M39013_IG06
- ;; size=36 bbWeight=2.97 PerfScore 31.18
+ ;; size=32 bbWeight=2.97 PerfScore 28.21
G_M39013_IG07: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
; byrRegs -[x0]
@@ -164,7 +162,7 @@ G_M39013_IG16: ; bbWeight=0, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=00
b G_M39013_IG09
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 332, prolog size 40, PerfScore 63.30, instruction count 83, allocated bytes for code 332 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
+Total bytes of code 328, prolog size 40, PerfScore 60.33, instruction count 82, allocated bytes for code 328 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
; ============================================================
Unwind Info:
@@ -175,7 +173,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 83 (0x00053) Actual length = 332 (0x00014c)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+1.68%) : 249011.dasm - NumericSortRect:Run():double:this (Tier1)
@@ -12,35 +12,34 @@
; V00 this [V00,T00] ( 16,132.25) ref -> x19 this class-hnd single-def <NumericSortRect>
; V01 loc0 [V01,T08] ( 4, 55 ) ref -> registers class-hnd <int[,]>
; V02 loc1 [V02,T09] ( 5, 53 ) long -> x21
-; V03 loc2 [V03,T15] ( 4, 36 ) double -> d8
+; V03 loc2 [V03,T14] ( 4, 36 ) double -> d8
; V04 loc3 [V04,T05] ( 3, 55.50) short -> x0
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06 ] ( 6, 58.50) struct ( 8) [fp+0x10] do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
-; V07 tmp2 [V07,T12] ( 2, 4 ) int -> x2 "impImportNewObjArray"
-; V08 tmp3 [V08,T13] ( 2, 4 ) int -> x0 "impImportNewObjArray"
+; V06 tmp1 [V06 ] ( 6, 58.50) struct ( 8) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
+; V07 tmp2 [V07,T11] ( 2, 4 ) int -> x2 "impImportNewObjArray"
+; V08 tmp3 [V08,T12] ( 2, 4 ) int -> x0 "impImportNewObjArray"
;* V09 tmp4 [V09 ] ( 0, 0 ) double -> zero-ref "impAppendStmt"
; V10 tmp5 [V10,T02] ( 2, 74 ) int -> x2 "impImportNewObjArray"
; V11 tmp6 [V11,T03] ( 2, 74 ) int -> x0 "impImportNewObjArray"
-; V12 tmp7 [V12,T16] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V13 tmp8 [V13,T14] ( 2, 4 ) long -> x2 "argument with side effect"
+; V12 tmp7 [V12,T15] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V13 tmp8 [V13,T13] ( 2, 4 ) long -> x2 "argument with side effect"
; V14 tmp9 [V14,T04] ( 2, 74 ) long -> x2 "argument with side effect"
-; V15 tmp10 [V15,T17] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V16 cse0 [V16,T06] ( 3, 55.50) int -> x22 "CSE - aggressive"
-; V17 cse1 [V17,T07] ( 3, 55.50) int -> x23 "CSE - aggressive"
-; V18 cse2 [V18,T11] ( 3, 18.50) long -> x21 hoist "CSE - aggressive"
-; V19 cse3 [V19,T10] ( 4, 20.50) long -> x20 hoist multi-def "CSE - aggressive"
-; V20 rat0 [V20,T01] ( 3,102 ) long -> x2 "ReplaceWithLclVar is creating a new local variable"
+; V15 tmp10 [V15,T16] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V16 cse0 [V16,T06] ( 3, 55.50) int -> x21 "CSE - aggressive"
+; V17 cse1 [V17,T07] ( 3, 55.50) int -> x22 "CSE - aggressive"
+; V18 cse2 [V18,T10] ( 4, 20.50) long -> x20 hoist multi-def "CSE - aggressive"
+; V19 rat0 [V19,T01] ( 3,102 ) long -> x2 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M15242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x50]!
- str d8, [sp, #0x18]
- stp x19, x20, [sp, #0x20]
- stp x21, x22, [sp, #0x30]
- stp x23, x24, [sp, #0x40]
+ str d8, [sp, #0x20]
+ stp x19, x20, [sp, #0x28]
+ stp x21, x22, [sp, #0x38]
+ str x23, [sp, #0x48]
mov fp, sp
- str xzr, [fp, #0x10] // [V06 tmp1]
+ str xzr, [fp, #0x18] // [V06 tmp1]
mov x19, x0
; gcrRegs +[x19]
;; size=32 bbWeight=1 PerfScore 7.00
@@ -49,8 +48,8 @@ G_M15242_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
cbz w2, G_M15242_IG11
ldrsh w2, [x19, #0x20]
ldr w0, [x19, #0x1C]
- stp w2, w0, [fp, #0x10] // [V06 tmp1], [V06 tmp1+0x04]
- add x2, fp, #16 // [V06 tmp1]
+ stp w2, w0, [fp, #0x18] // [V06 tmp1], [V06 tmp1+0x04]
+ add x2, fp, #24 // [V06 tmp1]
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #1 LSL #32
@@ -106,29 +105,29 @@ G_M15242_IG06: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
fdiv d0, d0, d16
;; size=28 bbWeight=1 PerfScore 44.00
G_M15242_IG07: ; bbWeight=1, epilog, nogc, extend
- ldp x23, x24, [sp, #0x40]
- ldp x21, x22, [sp, #0x30]
- ldp x19, x20, [sp, #0x20]
- ldr d8, [sp, #0x18]
+ ldr x23, [sp, #0x48]
+ ldp x21, x22, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldr d8, [sp, #0x20]
ldp fp, lr, [sp], #0x50
ret lr
- ;; size=24 bbWeight=1 PerfScore 7.00
+ ;; size=24 bbWeight=1 PerfScore 8.00
G_M15242_IG08: ; bbWeight=18.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ldrsh w22, [x19, #0x20]
- sxtw w2, w22
- ldr w23, [x19, #0x1C]
- sxtw w0, w23
- stp w2, w0, [fp, #0x10] // [V06 tmp1], [V06 tmp1+0x04]
- add x2, fp, #16 // [V06 tmp1]
+ ldrsh w21, [x19, #0x20]
+ sxtw w2, w21
+ ldr w22, [x19, #0x1C]
+ sxtw w0, w22
+ stp w2, w0, [fp, #0x18] // [V06 tmp1], [V06 tmp1+0x04]
+ add x2, fp, #24 // [V06 tmp1]
mov x0, x20
mov w1, #2
bl CORINFO_HELP_NEW_MDARR
; gcrRegs +[x0]
- mov x24, x0
- ; gcrRegs +[x24]
- mov w2, w22
- mov w1, w23
- mov x0, x24
+ mov x23, x0
+ ; gcrRegs +[x23]
+ mov w2, w21
+ mov w1, w22
+ mov x0, x23
movz x3, #0xD1FFAB1E // code for NumericSortRect:DoNumSortIteration(int[,],int,int):int
movk x3, #0xD1FFAB1E LSL #16
movk x3, #1 LSL #32
@@ -136,7 +135,10 @@ G_M15242_IG08: ; bbWeight=18.50, gcVars=0000000000000000 {}, gcrefRegs=80
blr x3
; gcrRegs -[x0]
sxtw x0, w0
- ldr x1, [x21, #0xD1FFAB1E]
+ movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ ldr x1, [x1]
cmp x0, x1
bgt G_M15242_IG09
ldrsh w0, [x19, #0x20]
@@ -145,14 +147,14 @@ G_M15242_IG08: ; bbWeight=18.50, gcVars=0000000000000000 {}, gcrefRegs=80
cmp w0, #0xD1FFAB1E
bgt G_M15242_IG12
b G_M15242_IG08
- ;; size=112 bbWeight=18.50 PerfScore 555.00
-G_M15242_IG09: ; bbWeight=9.25, gcrefRegs=1080000 {x19 x24}, byrefRegs=0000 {}, byref
- mov x20, x24
+ ;; size=124 bbWeight=18.50 PerfScore 582.75
+G_M15242_IG09: ; bbWeight=9.25, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
+ mov x20, x23
; gcrRegs +[x20]
b G_M15242_IG03
;; size=8 bbWeight=9.25 PerfScore 13.88
G_M15242_IG10: ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20 x24]
+ ; gcrRegs -[x20 x23]
mov w2, #1
str w2, [x19, #0x10]
b G_M15242_IG06
@@ -163,11 +165,8 @@ G_M15242_IG11: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movz x20, #0xD1FFAB1E
movk x20, #0xD1FFAB1E LSL #16
movk x20, #1 LSL #32
- movz x21, #0xD1FFAB1E
- movk x21, #0xD1FFAB1E LSL #16
- movk x21, #1 LSL #32
b G_M15242_IG08
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M15242_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
movz x0, #0xD1FFAB1E
@@ -179,7 +178,9 @@ G_M15242_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
mov w0, #0xD1FFAB1E
; gcrRegs -[x0]
- mov x1, x21
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
bl CORINFO_HELP_STRCNS
; gcrRegs +[x0]
mov x1, x0
@@ -196,11 +197,11 @@ G_M15242_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_THROW
; gcrRegs -[x0 x19]
brk_unix #0
- ;; size=72 bbWeight=0 PerfScore 0.00
+ ;; size=80 bbWeight=0 PerfScore 0.00
RWD00 dq 408F400000000000h ; 1000
-; Total bytes of code 476, prolog size 28, PerfScore 1158.00, instruction count 119, allocated bytes for code 476 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
+Total bytes of code 484, prolog size 28, PerfScore 1186.75, instruction count 121, allocated bytes for code 484 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
; ============================================================
Unwind Info:
@@ -211,7 +212,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 119 (0x00077) Actual length = 476 (0x0001dc)
+ Function Length : 121 (0x00079) Actual length = 484 (0x0001e4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -219,13 +220,12 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 09 save_reg X#4 Z#9 (0x09); str x23, [sp, #72]
E6 save_next
- E6 save_next
- C8 04 save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
- DC 03 save_freg X#0 Z#3 (0x03); str d8, [sp, #24]
+ C8 05 save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40]
+ DC 04 save_freg X#0 Z#4 (0x04); str d8, [sp, #32]
89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end
E4 end
E4 end
- E4 end
+32 (+2.02%) : 488213.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T20] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T26] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T27] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T23] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T29] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.46) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V103 cse3 [V103,T20] ( 12, 0 ) ref -> x1 multi-def "CSE - moderate"
;
; Lcl frame size = 40
@@ -409,19 +408,19 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG30
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG33
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG34
movz x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG38
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG43
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG44
movz x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1588, prolog size 48, PerfScore 291.15, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.15, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 397 (0x0018d) Actual length = 1588 (0x000634)
+ Function Length : 405 (0x00195) Actual length = 1620 (0x000654)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.26%) : 300284.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)
@@ -29,22 +29,21 @@
;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp17 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V21 tmp19 [V21,T11] ( 3, 0 ) ubyte -> x1 "Inline return value spill temp"
+; V21 tmp19 [V21,T10] ( 3, 0 ) ubyte -> x1 "Inline return value spill temp"
; V22 tmp20 [V22,T04] ( 9, 76.80) int -> x20 "Inline stloc first use temp"
; V23 tmp21 [V23 ] ( 2, 76.80) simd8 -> [fp+0x18] HFA(simd8) do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
; V24 tmp22 [V24 ] ( 2, 76.80) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-; V25 tmp23 [V25,T14] ( 2, 0 ) float -> d8 "impAppendStmt"
-; V26 tmp24 [V26,T12] ( 3, 0 ) int -> x0
+; V25 tmp23 [V25,T13] ( 2, 0 ) float -> d8 "impAppendStmt"
+; V26 tmp24 [V26,T11] ( 3, 0 ) int -> x0
;* V27 tmp25 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp27 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) float -> zero-ref "Inline return value spill temp"
-; V31 tmp29 [V31,T13] ( 3, 0 ) int -> x0
+; V31 tmp29 [V31,T12] ( 3, 0 ) int -> x0
;* V32 tmp30 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp33 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V36 cse0 [V36,T10] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
;
; Lcl frame size = 72
@@ -112,19 +111,19 @@ G_M21877_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M21877_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M21877_IG07
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M21877_IG07: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add x0, fp, #24 // [V23 tmp21]
; byrRegs +[x0]
@@ -140,19 +139,19 @@ G_M21877_IG08: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M21877_IG09: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M21877_IG10
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M21877_IG10: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add x0, fp, #16 // [V24 tmp22]
; byrRegs +[x0]
@@ -195,7 +194,7 @@ G_M21877_IG16: ; bbWeight=0, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 376, prolog size 20, PerfScore 29793.45, instruction count 94, allocated bytes for code 376 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 392, prolog size 20, PerfScore 29793.45, instruction count 98, allocated bytes for code 392 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
; ============================================================
Unwind Info:
@@ -206,7 +205,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 94 (0x0005e) Actual length = 376 (0x000178)
+ Function Length : 98 (0x00062) Actual length = 392 (0x000188)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.osx.arm64.checked.mch
+16 (+1.70%) : 308181.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
@@ -10,13 +10,13 @@
;
; V00 arg0 [V00,T01] ( 10, 5 ) ref -> x19 class-hnd single-def <System.String>
; V01 loc0 [V01,T02] ( 4, 2 ) int -> x0
-; V02 loc1 [V02,T11] ( 4, 0 ) ushort -> x20 ld-addr-op
+; V02 loc1 [V02,T10] ( 4, 0 ) ushort -> x20 ld-addr-op
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
; V04 loc3 [V04 ] ( 22, 0 ) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V07 tmp2 [V07,T14] ( 3, 0 ) ref -> x20
-; V08 tmp3 [V08,T15] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V07 tmp2 [V07,T13] ( 3, 0 ) ref -> x20
+; V08 tmp3 [V08,T14] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -26,37 +26,37 @@
;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V16 tmp11 [V16,T00] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
;* V17 tmp12 [V17 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V18 tmp13 [V18,T21] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
-; V19 tmp14 [V19,T10] ( 5, 0 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
+; V18 tmp13 [V18,T20] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
+; V19 tmp14 [V19,T09] ( 5, 0 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V21 tmp16 [V21,T32] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V21 tmp16 [V21,T31] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V25 tmp20 [V25,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V25 tmp20 [V25,T11] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V27 tmp22 [V27,T18] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V28 tmp23 [V28,T22] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
+; V27 tmp22 [V27,T17] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V28 tmp23 [V28,T21] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V31 tmp26 [V31,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V31 tmp26 [V31,T29] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp28 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V34 tmp29 [V34,T23] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V34 tmp29 [V34,T22] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V36 tmp31 [V36,T13] ( 4, 0 ) int -> x20 "Inlining Arg"
+; V36 tmp31 [V36,T12] ( 4, 0 ) int -> x20 "Inlining Arg"
;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V38 tmp33 [V38,T19] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V39 tmp34 [V39,T24] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
+; V38 tmp33 [V38,T18] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V39 tmp34 [V39,T23] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
;* V40 tmp35 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V41 tmp36 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42,T31] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V42 tmp37 [V42,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V45 tmp40 [V45,T25] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V45 tmp40 [V45,T24] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V46 tmp41 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V48 tmp43 [V48,T16] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V48 tmp43 [V48,T15] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V49 tmp44 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp45 [V50 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
; V51 tmp46 [V51,T03] ( 3, 2 ) byref -> x20 "field V09._reference (fldOffset=0x0)" P-INDEP
@@ -65,8 +65,8 @@
; V54 tmp49 [V54,T08] ( 2, 1 ) int -> x21 "field V10._length (fldOffset=0x8)" P-INDEP
;* V55 tmp50 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V57 tmp52 [V57,T17] ( 3, 0 ) byref -> x1 "field V23._reference (fldOffset=0x0)" P-INDEP
-; V58 tmp53 [V58,T20] ( 3, 0 ) int -> x2 "field V23._length (fldOffset=0x8)" P-INDEP
+; V57 tmp52 [V57,T16] ( 3, 0 ) byref -> x1 "field V23._reference (fldOffset=0x0)" P-INDEP
+; V58 tmp53 [V58,T19] ( 3, 0 ) int -> x2 "field V23._length (fldOffset=0x8)" P-INDEP
;* V59 tmp54 [V59 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V61 tmp56 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
@@ -79,11 +79,10 @@
;* V68 tmp63 [V68 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V69 tmp64 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-; V71 tmp66 [V71,T26] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V72 tmp67 [V72,T27] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-; V73 tmp68 [V73,T28] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V74 tmp69 [V74,T29] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V75 cse0 [V75,T09] ( 6, 0 ) ref -> x1 multi-def "CSE - moderate"
+; V71 tmp66 [V71,T25] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V72 tmp67 [V72,T26] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V73 tmp68 [V73,T27] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V74 tmp69 [V74,T28] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
;
; Lcl frame size = 48
@@ -255,18 +254,18 @@ G_M11178_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; byrRegs -[x1]
sub w22, w1, w0
tbz w22, #31, G_M11178_IG15
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
- ;; size=92 bbWeight=0 PerfScore 0.00
+ ;; size=100 bbWeight=0 PerfScore 0.00
G_M11178_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
cbz w22, G_M11178_IG16
movz x0, #0xD1FFAB1E
@@ -324,18 +323,18 @@ G_M11178_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; byrRegs -[x0]
sub w20, w0, w20
tbz w20, #31, G_M11178_IG20
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M11178_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
cbz w20, G_M11178_IG21
movz x0, #0xD1FFAB1E
@@ -434,7 +433,7 @@ G_M11178_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
brk_unix #0
;; size=136 bbWeight=0 PerfScore 0.00
-; Total bytes of code 940, prolog size 32, PerfScore 44.75, instruction count 235, allocated bytes for code 940 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
+Total bytes of code 956, prolog size 32, PerfScore 44.75, instruction count 239, allocated bytes for code 956 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -445,7 +444,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 235 (0x000eb) Actual length = 940 (0x0003ac)
+ Function Length : 239 (0x000ef) Actual length = 956 (0x0003bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+1.70%) : 301015.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
@@ -10,13 +10,13 @@
;
; V00 arg0 [V00,T01] ( 10, 5 ) ref -> x19 class-hnd single-def <System.String>
; V01 loc0 [V01,T02] ( 4, 2 ) int -> x0
-; V02 loc1 [V02,T11] ( 4, 0 ) ushort -> x20 ld-addr-op
+; V02 loc1 [V02,T10] ( 4, 0 ) ushort -> x20 ld-addr-op
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
; V04 loc3 [V04 ] ( 22, 0 ) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V07 tmp2 [V07,T14] ( 3, 0 ) ref -> x20
-; V08 tmp3 [V08,T15] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V07 tmp2 [V07,T13] ( 3, 0 ) ref -> x20
+; V08 tmp3 [V08,T14] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -26,37 +26,37 @@
;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V16 tmp11 [V16,T00] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
;* V17 tmp12 [V17 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V18 tmp13 [V18,T21] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
-; V19 tmp14 [V19,T10] ( 5, 0 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
+; V18 tmp13 [V18,T20] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
+; V19 tmp14 [V19,T09] ( 5, 0 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V21 tmp16 [V21,T32] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V21 tmp16 [V21,T31] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V25 tmp20 [V25,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V25 tmp20 [V25,T11] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V27 tmp22 [V27,T18] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V28 tmp23 [V28,T22] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
+; V27 tmp22 [V27,T17] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V28 tmp23 [V28,T21] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V31 tmp26 [V31,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V31 tmp26 [V31,T29] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp28 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V34 tmp29 [V34,T23] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V34 tmp29 [V34,T22] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V36 tmp31 [V36,T13] ( 4, 0 ) int -> x20 "Inlining Arg"
+; V36 tmp31 [V36,T12] ( 4, 0 ) int -> x20 "Inlining Arg"
;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V38 tmp33 [V38,T19] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V39 tmp34 [V39,T24] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
+; V38 tmp33 [V38,T18] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V39 tmp34 [V39,T23] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
;* V40 tmp35 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V41 tmp36 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42,T31] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V42 tmp37 [V42,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V45 tmp40 [V45,T25] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V45 tmp40 [V45,T24] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V46 tmp41 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V48 tmp43 [V48,T16] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V48 tmp43 [V48,T15] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V49 tmp44 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp45 [V50 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
; V51 tmp46 [V51,T03] ( 3, 2 ) byref -> x20 "field V09._reference (fldOffset=0x0)" P-INDEP
@@ -65,8 +65,8 @@
; V54 tmp49 [V54,T08] ( 2, 1 ) int -> x21 "field V10._length (fldOffset=0x8)" P-INDEP
;* V55 tmp50 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V57 tmp52 [V57,T17] ( 3, 0 ) byref -> x1 "field V23._reference (fldOffset=0x0)" P-INDEP
-; V58 tmp53 [V58,T20] ( 3, 0 ) int -> x2 "field V23._length (fldOffset=0x8)" P-INDEP
+; V57 tmp52 [V57,T16] ( 3, 0 ) byref -> x1 "field V23._reference (fldOffset=0x0)" P-INDEP
+; V58 tmp53 [V58,T19] ( 3, 0 ) int -> x2 "field V23._length (fldOffset=0x8)" P-INDEP
;* V59 tmp54 [V59 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V61 tmp56 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
@@ -79,11 +79,10 @@
;* V68 tmp63 [V68 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V69 tmp64 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-; V71 tmp66 [V71,T26] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V72 tmp67 [V72,T27] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-; V73 tmp68 [V73,T28] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V74 tmp69 [V74,T29] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V75 cse0 [V75,T09] ( 6, 0 ) ref -> x1 multi-def "CSE - moderate"
+; V71 tmp66 [V71,T25] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V72 tmp67 [V72,T26] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V73 tmp68 [V73,T27] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V74 tmp69 [V74,T28] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
;
; Lcl frame size = 48
@@ -255,18 +254,18 @@ G_M11178_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; byrRegs -[x1]
sub w22, w1, w0
tbz w22, #31, G_M11178_IG15
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
- ;; size=92 bbWeight=0 PerfScore 0.00
+ ;; size=100 bbWeight=0 PerfScore 0.00
G_M11178_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
cbz w22, G_M11178_IG16
movz x0, #0xD1FFAB1E
@@ -324,18 +323,18 @@ G_M11178_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; byrRegs -[x0]
sub w20, w0, w20
tbz w20, #31, G_M11178_IG20
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M11178_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
cbz w20, G_M11178_IG21
movz x0, #0xD1FFAB1E
@@ -434,7 +433,7 @@ G_M11178_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
brk_unix #0
;; size=136 bbWeight=0 PerfScore 0.00
-; Total bytes of code 940, prolog size 32, PerfScore 44.75, instruction count 235, allocated bytes for code 940 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
+Total bytes of code 956, prolog size 32, PerfScore 44.75, instruction count 239, allocated bytes for code 956 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -445,7 +444,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 235 (0x000eb) Actual length = 940 (0x0003ac)
+ Function Length : 239 (0x000ef) Actual length = 956 (0x0003bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+1.70%) : 309763.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
@@ -10,13 +10,13 @@
;
; V00 arg0 [V00,T01] ( 10, 5 ) ref -> x19 class-hnd single-def <System.String>
; V01 loc0 [V01,T02] ( 4, 2 ) int -> x0
-; V02 loc1 [V02,T11] ( 4, 0 ) ushort -> x20 ld-addr-op
+; V02 loc1 [V02,T10] ( 4, 0 ) ushort -> x20 ld-addr-op
;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String>
; V04 loc3 [V04 ] ( 22, 0 ) struct (40) [fp+0x18] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V07 tmp2 [V07,T14] ( 3, 0 ) ref -> x20
-; V08 tmp3 [V08,T15] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V07 tmp2 [V07,T13] ( 3, 0 ) ref -> x20
+; V08 tmp3 [V08,T14] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -26,37 +26,37 @@
;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V16 tmp11 [V16,T00] ( 4, 8 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
;* V17 tmp12 [V17 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V18 tmp13 [V18,T21] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
-; V19 tmp14 [V19,T10] ( 5, 0 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
+; V18 tmp13 [V18,T20] ( 2, 0 ) ref -> x0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
+; V19 tmp14 [V19,T09] ( 5, 0 ) ref -> x0 class-hnd single-def "dup spill" <ushort[]>
;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V21 tmp16 [V21,T32] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V21 tmp16 [V21,T31] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V23 tmp18 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V25 tmp20 [V25,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V25 tmp20 [V25,T11] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V26 tmp21 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V27 tmp22 [V27,T18] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V28 tmp23 [V28,T22] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
+; V27 tmp22 [V27,T17] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V28 tmp23 [V28,T21] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V31 tmp26 [V31,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V31 tmp26 [V31,T29] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp27 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp28 [V33 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V34 tmp29 [V34,T23] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V34 tmp29 [V34,T22] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V35 tmp30 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V36 tmp31 [V36,T13] ( 4, 0 ) int -> x20 "Inlining Arg"
+; V36 tmp31 [V36,T12] ( 4, 0 ) int -> x20 "Inlining Arg"
;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V38 tmp33 [V38,T19] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V39 tmp34 [V39,T24] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
+; V38 tmp33 [V38,T18] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V39 tmp34 [V39,T23] ( 2, 0 ) byref -> x21 single-def "Inlining Arg"
;* V40 tmp35 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V41 tmp36 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42,T31] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V42 tmp37 [V42,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V44 tmp39 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V45 tmp40 [V45,T25] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V45 tmp40 [V45,T24] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V46 tmp41 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V48 tmp43 [V48,T16] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V48 tmp43 [V48,T15] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V49 tmp44 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp45 [V50 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP
; V51 tmp46 [V51,T03] ( 3, 2 ) byref -> x20 "field V09._reference (fldOffset=0x0)" P-INDEP
@@ -65,8 +65,8 @@
; V54 tmp49 [V54,T08] ( 2, 1 ) int -> x21 "field V10._length (fldOffset=0x8)" P-INDEP
;* V55 tmp50 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V57 tmp52 [V57,T17] ( 3, 0 ) byref -> x1 "field V23._reference (fldOffset=0x0)" P-INDEP
-; V58 tmp53 [V58,T20] ( 3, 0 ) int -> x2 "field V23._length (fldOffset=0x8)" P-INDEP
+; V57 tmp52 [V57,T16] ( 3, 0 ) byref -> x1 "field V23._reference (fldOffset=0x0)" P-INDEP
+; V58 tmp53 [V58,T19] ( 3, 0 ) int -> x2 "field V23._length (fldOffset=0x8)" P-INDEP
;* V59 tmp54 [V59 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V60 tmp55 [V60 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V61 tmp56 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
@@ -79,11 +79,10 @@
;* V68 tmp63 [V68 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V69 tmp64 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-; V71 tmp66 [V71,T26] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V72 tmp67 [V72,T27] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
-; V73 tmp68 [V73,T28] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V74 tmp69 [V74,T29] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V75 cse0 [V75,T09] ( 6, 0 ) ref -> x1 multi-def "CSE - moderate"
+; V71 tmp66 [V71,T25] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V72 tmp67 [V72,T26] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V73 tmp68 [V73,T27] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V74 tmp69 [V74,T28] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
;
; Lcl frame size = 48
@@ -255,18 +254,18 @@ G_M11178_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
; byrRegs -[x1]
sub w22, w1, w0
tbz w22, #31, G_M11178_IG15
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
- ;; size=92 bbWeight=0 PerfScore 0.00
+ ;; size=100 bbWeight=0 PerfScore 0.00
G_M11178_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
cbz w22, G_M11178_IG16
movz x0, #0xD1FFAB1E
@@ -324,18 +323,18 @@ G_M11178_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; byrRegs -[x0]
sub w20, w0, w20
tbz w20, #31, G_M11178_IG20
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M11178_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
cbz w20, G_M11178_IG21
movz x0, #0xD1FFAB1E
@@ -434,7 +433,7 @@ G_M11178_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
brk_unix #0
;; size=136 bbWeight=0 PerfScore 0.00
-; Total bytes of code 940, prolog size 32, PerfScore 44.75, instruction count 235, allocated bytes for code 940 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
+Total bytes of code 956, prolog size 32, PerfScore 44.75, instruction count 239, allocated bytes for code 956 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -445,7 +444,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 235 (0x000eb) Actual length = 940 (0x0003ac)
+ Function Length : 239 (0x000ef) Actual length = 956 (0x0003bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+1.89%) : 204429.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
@@ -20,8 +20,8 @@
; V09 loc6 [V09,T02] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T03] ( 6, 16 ) ref -> x19 class-hnd exact <System.String>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T29] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T30] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T28] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T29] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
; V15 tmp4 [V15,T22] ( 3, 2 ) ubyte -> x0 "Inline return value spill temp"
; V16 tmp5 [V16,T20] ( 2, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
@@ -33,51 +33,51 @@
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp12 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V25 tmp14 [V25,T25] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V25 tmp14 [V25,T24] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V26 tmp15 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V27 tmp16 [V27,T31] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V28 tmp17 [V28,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V27 tmp16 [V27,T30] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V28 tmp17 [V28,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp19 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V31 tmp20 [V31,T45] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V31 tmp20 [V31,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V33 tmp22 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V34 tmp23 [V34,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V34 tmp23 [V34,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V36 tmp25 [V36,T26] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V36 tmp25 [V36,T25] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V37 tmp26 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V38 tmp27 [V38,T32] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V39 tmp28 [V39,T37] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V38 tmp27 [V38,T31] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V39 tmp28 [V39,T36] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V40 tmp29 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V41 tmp30 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp31 [V42,T46] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V42 tmp31 [V42,T45] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V43 tmp32 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V44 tmp33 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V45 tmp34 [V45,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V45 tmp34 [V45,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V47 tmp36 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V49 tmp38 [V49,T27] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V49 tmp38 [V49,T26] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V50 tmp39 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V51 tmp40 [V51,T33] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V52 tmp41 [V52,T39] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V51 tmp40 [V51,T32] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V52 tmp41 [V52,T38] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V54 tmp43 [V54 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V55 tmp44 [V55,T47] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V55 tmp44 [V55,T46] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V56 tmp45 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V57 tmp46 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V58 tmp47 [V58,T40] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V58 tmp47 [V58,T39] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V60 tmp49 [V60,T28] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V60 tmp49 [V60,T27] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V61 tmp50 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V62 tmp51 [V62,T34] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V63 tmp52 [V63,T41] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V62 tmp51 [V62,T33] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V63 tmp52 [V63,T40] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V64 tmp53 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V65 tmp54 [V65 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V66 tmp55 [V66,T48] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V66 tmp55 [V66,T47] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V67 tmp56 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V68 tmp57 [V68 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V69 tmp58 [V69,T42] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V69 tmp58 [V69,T41] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V70 tmp59 [V70,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V71 tmp60 [V71,T04] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V72 tmp61 [V72,T00] ( 5, 20 ) ref -> x2 class-hnd exact "Inlining Arg" <System.String>
@@ -113,14 +113,13 @@
;* V102 tmp91 [V102 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP
;* V103 tmp92 [V103 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP
; V104 tmp93 [V104,T06] ( 3, 12 ) ref -> x2 "arr expr"
-; V105 tmp94 [V105,T43] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V106 tmp95 [V106,T44] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V105 tmp94 [V105,T42] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V106 tmp95 [V106,T43] ( 2, 0 ) ref -> x1 "argument with side effect"
; V107 cse0 [V107,T19] ( 3, 3 ) int -> x1 "CSE - moderate"
; V108 cse1 [V108,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
-; V109 cse2 [V109,T24] ( 12, 0 ) ref -> x1 multi-def "CSE - aggressive"
-; V110 cse3 [V110,T09] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
-; V111 cse4 [V111,T08] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V112 cse5 [V112,T16] ( 3, 6 ) int -> x1 "CSE - moderate"
+; V109 cse2 [V109,T09] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
+; V110 cse3 [V110,T08] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
+; V111 cse4 [V111,T16] ( 3, 6 ) int -> x1 "CSE - moderate"
;
; Lcl frame size = 40
@@ -440,19 +439,19 @@ G_M38326_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M38326_IG30
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M38326_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M38326_IG31
@@ -503,19 +502,19 @@ G_M38326_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M38326_IG33
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M38326_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M38326_IG34
movz x0, #0xD1FFAB1E
@@ -611,19 +610,19 @@ G_M38326_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M38326_IG38
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M38326_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M38326_IG39
@@ -685,19 +684,19 @@ G_M38326_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M38326_IG43
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M38326_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M38326_IG44
movz x0, #0xD1FFAB1E
@@ -759,7 +758,7 @@ G_M38326_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1692, prolog size 52, PerfScore 289.00, instruction count 423, allocated bytes for code 1692 (MethodHash=a0a76a49) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
+Total bytes of code 1724, prolog size 52, PerfScore 289.00, instruction count 431, allocated bytes for code 1724 (MethodHash=a0a76a49) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -770,7 +769,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 423 (0x001a7) Actual length = 1692 (0x00069c)
+ Function Length : 431 (0x001af) Actual length = 1724 (0x0006bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+2.02%) : 204430.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T26] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T27] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T32] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T29] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T34] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T24] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T30] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T36] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T25] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T31] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T38] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T45] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T39] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T12] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 28 ) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,13 +106,12 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T41] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T19] ( 3, 3 ) ref -> x0 "CSE - moderate"
-; V101 cse1 [V101,T21] ( 12, 0 ) ref -> x1 multi-def "CSE - aggressive"
-; V102 cse2 [V102,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
-; V103 cse3 [V103,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V104 cse4 [V104,T17] ( 3, 6 ) int -> x1 "CSE - moderate"
+; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
+; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
+; V103 cse3 [V103,T17] ( 3, 6 ) int -> x1 "CSE - moderate"
;
; Lcl frame size = 40
@@ -393,19 +392,19 @@ G_M45430_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG25
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG26
@@ -456,19 +455,19 @@ G_M45430_IG27: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG28
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG29
movz x0, #0xD1FFAB1E
@@ -564,19 +563,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG33
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG34
@@ -638,19 +637,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG38
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG39
movz x0, #0xD1FFAB1E
@@ -712,7 +711,7 @@ G_M45430_IG40: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1584, prolog size 48, PerfScore 301.25, instruction count 396, allocated bytes for code 1584 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1616, prolog size 48, PerfScore 301.25, instruction count 404, allocated bytes for code 1616 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -723,7 +722,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 396 (0x0018c) Actual length = 1584 (0x000630)
+ Function Length : 404 (0x00194) Actual length = 1616 (0x000650)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries_tests.run.osx.arm64.Release.mch
-4 (-1.45%) : 90383.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
@@ -40,7 +40,6 @@
;* V28 tmp26 [V28 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V14.array (fldOffset=0x0)" P-DEP
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref "field V15.array (fldOffset=0x0)" P-INDEP
;* V30 tmp28 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V23.array (fldOffset=0x0)" P-INDEP
-; V31 cse0 [V31,T10] ( 2, 0 ) long -> x0 "CSE - conservative"
;
; Lcl frame size = 0
@@ -108,7 +107,6 @@ G_M22152_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
- add x0, x0, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
mov x20, x0
@@ -136,7 +134,7 @@ G_M22152_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M22152_IG03
- ;; size=100 bbWeight=0 PerfScore 0.00
+ ;; size=96 bbWeight=0 PerfScore 0.00
G_M22152_IG08: ; bbWeight=0, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] +[x1]
ldr x0, [x20, #0x08]
@@ -160,7 +158,7 @@ G_M22152_IG09: ; bbWeight=0, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
b G_M22152_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 276, prolog size 16, PerfScore 31.00, instruction count 69, allocated bytes for code 276 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
+Total bytes of code 272, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 272 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
; ============================================================
Unwind Info:
@@ -171,7 +169,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 69 (0x00045) Actual length = 276 (0x000114)
+ Function Length : 68 (0x00044) Actual length = 272 (0x000110)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-36 (-0.87%) : 351036.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
@@ -9,14 +9,14 @@
; 41 inlinees with PGO data; 77 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T27] ( 21, 6.78) byref -> x19 this single-def
-; V01 arg1 [V01,T32] ( 12, 5 ) ref -> x20 class-hnd single-def <ubyte[]>
-; V02 loc0 [V02 ] ( 9, 6 ) struct (24) [fp+0x68] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Formats.Asn1.AsnValueReader>
-; V03 loc1 [V03 ] ( 5, 0 ) struct (16) [fp+0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+; V00 this [V00,T28] ( 21, 6.78) byref -> x19 this single-def
+; V01 arg1 [V01,T33] ( 12, 5 ) ref -> x20 class-hnd single-def <ubyte[]>
+; V02 loc0 [V02 ] ( 9, 6 ) struct (24) [fp+0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Formats.Asn1.AsnValueReader>
+; V03 loc1 [V03 ] ( 5, 0 ) struct (16) [fp+0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Formats.Asn1.AsnWriter>
;* V05 loc3 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[int]>
-; V06 loc4 [V06,T37] ( 3, 4.78) ref -> x21 class-hnd exact single-def <<unknown class>>
-; V07 loc5 [V07,T10] ( 5, 19.10) int -> x22
+; V06 loc4 [V06,T22] ( 4, 9.55) ref -> x20 class-hnd exact single-def <<unknown class>>
+; V07 loc5 [V07,T10] ( 5, 19.10) int -> x21
;* V08 loc6 [V08 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op <System.Security.Cryptography.Asn1.X509ExtensionAsn>
;* V09 loc7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Security.Cryptography.X509Certificates.X509Extension>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -26,69 +26,69 @@
;* V14 tmp4 [V14 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V15 tmp5 [V15 ] ( 0, 0 ) byref -> zero-ref
;* V16 tmp6 [V16 ] ( 0, 0 ) byref -> zero-ref single-def
-; V17 tmp7 [V17,T94] ( 3, 0 ) ref -> x0
-; V18 tmp8 [V18,T78] ( 4, 0 ) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+; V17 tmp7 [V17,T91] ( 3, 0 ) ref -> x0
+; V18 tmp8 [V18,T75] ( 4, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
;* V19 tmp9 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V20 tmp10 [V20,T79] ( 4, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+; V20 tmp10 [V20,T76] ( 4, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
;* V21 tmp11 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V22 tmp12 [V22,T69] ( 7, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
-; V23 tmp13 [V23,T95] ( 3, 0 ) ref -> x0 class-hnd exact single-def "dup spill" <<unknown class>>
+; V22 tmp12 [V22,T66] ( 7, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
+; V23 tmp13 [V23,T92] ( 3, 0 ) ref -> x0 class-hnd exact single-def "dup spill" <<unknown class>>
;* V24 tmp14 [V24 ] ( 0, 0 ) byref -> zero-ref single-def
;* V25 tmp15 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
;* V26 tmp16 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
;* V27 tmp17 [V27 ] ( 0, 0 ) byref -> zero-ref
;* V28 tmp18 [V28 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
-; V29 tmp19 [V29,T80] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V30 tmp20 [V30,T00] ( 8, 57.31) ref -> x25 class-hnd exact "impAppendStmt" <System.String>
-; V31 tmp21 [V31,T01] ( 7, 57.30) ref -> x27 class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X509Extension>
+; V29 tmp19 [V29,T77] ( 4, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V30 tmp20 [V30,T00] ( 8, 57.31) ref -> x22 class-hnd exact "impAppendStmt" <System.String>
+; V31 tmp21 [V31,T01] ( 7, 57.30) ref -> x26 class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X509Extension>
;* V32 tmp22 [V32 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V33 tmp23 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V34 tmp24 [V34 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V35 tmp25 [V35 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V36 tmp26 [V36,T89] ( 4, 0 ) int -> x21 ld-addr-op "Inline ldloca(s) first use temp"
+; V36 tmp26 [V36,T86] ( 4, 0 ) int -> x21 ld-addr-op "Inline ldloca(s) first use temp"
;* V37 tmp27 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.Formats.Asn1.Asn1Tag>
-; V38 tmp28 [V38,T28] ( 9, 8.26) int -> x25 "Inlining Arg"
+; V38 tmp28 [V38,T29] ( 9, 8.26) int -> x25 "Inlining Arg"
;* V39 tmp29 [V39 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V40 tmp30 [V40 ] ( 3, 2 ) int -> [fp+0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V40 tmp30 [V40 ] ( 3, 2 ) int -> [fp+0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V41 tmp31 [V41 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <System.Formats.Asn1.Asn1Tag>
-; V42 tmp32 [V42,T43] ( 12, 2.80) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
+; V42 tmp32 [V42,T40] ( 12, 2.80) int -> x1 ld-addr-op "Inline ldloca(s) first use temp"
;* V43 tmp33 [V43 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V44 tmp34 [V44 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <System.Nullable`1[int]>
-; V45 tmp35 [V45,T76] ( 5, 0 ) int -> x21 "Inline stloc first use temp"
+; V45 tmp35 [V45,T73] ( 5, 0 ) int -> x21 "Inline stloc first use temp"
;* V46 tmp36 [V46 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-; V47 tmp37 [V47,T72] ( 6, 0 ) int -> x3 ld-addr-op "Inline ldloca(s) first use temp"
+; V47 tmp37 [V47,T69] ( 6, 0 ) int -> x3 ld-addr-op "Inline ldloca(s) first use temp"
;* V48 tmp38 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V49 tmp39 [V49 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V50 tmp40 [V50,T96] ( 3, 0 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V50 tmp40 [V50,T93] ( 3, 0 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V51 tmp41 [V51 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V52 tmp42 [V52 ] ( 2, 2 ) struct ( 8) [fp+0x48] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
-; V53 tmp43 [V53,T97] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V54 tmp44 [V54,T29] ( 4, 8 ) int -> x0 "Inlining Arg"
+; V52 tmp42 [V52 ] ( 2, 2 ) struct ( 8) [fp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
+; V53 tmp43 [V53,T94] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V54 tmp44 [V54,T30] ( 4, 8 ) int -> x0 "Inlining Arg"
;* V55 tmp45 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V56 tmp46 [V56,T30] ( 3, 6 ) int -> x22 "Inlining Arg"
-; V57 tmp47 [V57,T33] ( 2, 4 ) byref -> x21 single-def "Inlining Arg"
+; V56 tmp46 [V56,T31] ( 3, 6 ) int -> x22 "Inlining Arg"
+; V57 tmp47 [V57,T34] ( 2, 4 ) byref -> x21 single-def "Inlining Arg"
;* V58 tmp48 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
;* V59 tmp49 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V60 tmp50 [V60,T98] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V61 tmp51 [V61,T99] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V62 tmp52 [V62,T100] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V63 tmp53 [V63,T68] ( 8, 0 ) int -> x2 "Inline return value spill temp"
+; V60 tmp50 [V60,T95] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V61 tmp51 [V61,T96] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V62 tmp52 [V62,T97] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V63 tmp53 [V63,T65] ( 8, 0 ) int -> x2 "Inline return value spill temp"
;* V64 tmp54 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V65 tmp55 [V65 ] ( 0, 0 ) int -> zero-ref "Span.get_Item index"
-; V66 tmp56 [V66,T40] ( 6, 4.11) ubyte -> x0 "Inline stloc first use temp"
-; V67 tmp57 [V67,T57] ( 6, 0.63) ubyte -> x0 "Inline stloc first use temp"
-; V68 tmp58 [V68,T60] ( 3, 0.22) int -> x2
-; V69 tmp59 [V69,T58] ( 5, 0.54) ubyte -> x2 "Inline stloc first use temp"
-; V70 tmp60 [V70,T51] ( 7, 1.02) int -> x3 "Inline stloc first use temp"
-; V71 tmp61 [V71,T56] ( 5, 0.72) int -> x4 "Inline stloc first use temp"
+; V66 tmp56 [V66,T37] ( 6, 4.11) ubyte -> x0 "Inline stloc first use temp"
+; V67 tmp57 [V67,T54] ( 6, 0.63) ubyte -> x0 "Inline stloc first use temp"
+; V68 tmp58 [V68,T57] ( 3, 0.22) int -> x2
+; V69 tmp59 [V69,T55] ( 5, 0.54) ubyte -> x2 "Inline stloc first use temp"
+; V70 tmp60 [V70,T48] ( 7, 1.02) int -> x3 "Inline stloc first use temp"
+; V71 tmp61 [V71,T53] ( 5, 0.72) int -> x4 "Inline stloc first use temp"
;* V72 tmp62 [V72 ] ( 0, 0 ) int -> zero-ref "Span.get_Item index"
-; V73 tmp63 [V73,T59] ( 4, 0.51) ubyte -> x5 "Inline stloc first use temp"
+; V73 tmp63 [V73,T56] ( 4, 0.51) ubyte -> x5 "Inline stloc first use temp"
;* V74 tmp64 [V74 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
;* V75 tmp65 [V75 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
;* V76 tmp66 [V76 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V77 tmp67 [V77,T90] ( 4, 0 ) int -> x23 "Inlining Arg"
-; V78 tmp68 [V78,T125] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
-; V79 tmp69 [V79,T73] ( 6, 0 ) int -> x0 "Inline return value spill temp"
+; V77 tmp67 [V77,T87] ( 4, 0 ) int -> x23 "Inlining Arg"
+; V78 tmp68 [V78,T122] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
+; V79 tmp69 [V79,T70] ( 6, 0 ) int -> x0 "Inline return value spill temp"
;* V80 tmp70 [V80 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
;* V81 tmp71 [V81 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Nullable`1[int]>
;* V82 tmp72 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -97,145 +97,145 @@
;* V85 tmp75 [V85 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V86 tmp76 [V86 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V87 tmp77 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V88 tmp78 [V88,T126] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
-; V89 tmp79 [V89 ] ( 8, 0 ) struct (16) [fp+0x38] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-; V90 tmp80 [V90,T67] ( 8, 0 ) byref -> x21 single-def "Inlining Arg"
-; V91 tmp81 [V91,T101] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V92 tmp82 [V92,T102] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V93 tmp83 [V93,T103] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V88 tmp78 [V88,T123] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
+; V89 tmp79 [V89 ] ( 8, 0 ) struct (16) [fp+0x18] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+; V90 tmp80 [V90,T64] ( 8, 0 ) byref -> x21 single-def "Inlining Arg"
+; V91 tmp81 [V91,T98] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V92 tmp82 [V92,T99] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V93 tmp83 [V93,T100] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V94 tmp84 [V94 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V95 tmp85 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V96 tmp86 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V97 tmp87 [V97,T117] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V97 tmp87 [V97,T114] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
;* V98 tmp88 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V99 tmp89 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V100 tmp90 [V100 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V101 tmp91 [V101,T70] ( 6, 0 ) byref -> x21 "Inline stloc first use temp"
-; V102 tmp92 [V102,T65] ( 9, 0 ) int -> x22 "Inline stloc first use temp"
-; V103 tmp93 [V103,T81] ( 4, 0 ) byref -> x20 single-def "Inlining Arg"
-; V104 tmp94 [V104,T63] ( 9, 0 ) ref -> x23 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V101 tmp91 [V101,T67] ( 6, 0 ) byref -> x21 "Inline stloc first use temp"
+; V102 tmp92 [V102,T62] ( 9, 0 ) int -> x22 "Inline stloc first use temp"
+; V103 tmp93 [V103,T78] ( 4, 0 ) byref -> x20 single-def "Inlining Arg"
+; V104 tmp94 [V104,T60] ( 9, 0 ) ref -> x23 class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V105 tmp95 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V106 tmp96 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V107 tmp97 [V107 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V108 tmp98 [V108 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-; V109 tmp99 [V109,T118] ( 3, 0 ) long -> x0 "Inline stloc first use temp"
-; V110 tmp100 [V110,T119] ( 3, 0 ) int -> x1 "Inline stloc first use temp"
+; V109 tmp99 [V109,T115] ( 3, 0 ) long -> x0 "Inline stloc first use temp"
+; V110 tmp100 [V110,T116] ( 3, 0 ) int -> x1 "Inline stloc first use temp"
;* V111 tmp101 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" <ubyte[]>
;* V112 tmp102 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
-; V113 tmp103 [V113,T127] ( 2, 0 ) byref -> x1 single-def "Inlining Arg"
+; V113 tmp103 [V113,T124] ( 2, 0 ) byref -> x1 single-def "Inlining Arg"
;* V114 tmp104 [V114 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V115 tmp105 [V115,T74] ( 5, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
+; V115 tmp105 [V115,T71] ( 5, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
;* V116 tmp106 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V117 tmp107 [V117,T104] ( 3, 0 ) ref -> x15 class-hnd "Inline return value spill temp" <ubyte[]>
-; V118 tmp108 [V118,T105] ( 3, 0 ) ref -> x25 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-; V119 tmp109 [V119,T128] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V117 tmp107 [V117,T101] ( 3, 0 ) ref -> x15 class-hnd "Inline return value spill temp" <ubyte[]>
+; V118 tmp108 [V118,T102] ( 3, 0 ) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+; V119 tmp109 [V119,T125] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V120 tmp110 [V120 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V121 tmp111 [V121,T152] ( 2, 0 ) long -> x2 "Inlining Arg"
+; V121 tmp111 [V121,T149] ( 2, 0 ) long -> x2 "Inlining Arg"
;* V122 tmp112 [V122 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-; V123 tmp113 [V123,T71] ( 6, 0 ) byref -> x22 "Inline stloc first use temp"
-; V124 tmp114 [V124,T66] ( 9, 0 ) int -> x23 "Inline stloc first use temp"
-; V125 tmp115 [V125,T82] ( 4, 0 ) byref -> x21 single-def "Inlining Arg"
-; V126 tmp116 [V126,T64] ( 9, 0 ) ref -> x25 class-hnd single-def "Inline stloc first use temp" <System.Object>
+; V123 tmp113 [V123,T68] ( 6, 0 ) byref -> x21 "Inline stloc first use temp"
+; V124 tmp114 [V124,T63] ( 9, 0 ) int -> x22 "Inline stloc first use temp"
+; V125 tmp115 [V125,T79] ( 4, 0 ) byref -> x20 single-def "Inlining Arg"
+; V126 tmp116 [V126,T61] ( 9, 0 ) ref -> x23 class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V127 tmp117 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V128 tmp118 [V128 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V129 tmp119 [V129 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V130 tmp120 [V130 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-; V131 tmp121 [V131,T120] ( 3, 0 ) long -> x0 "Inline stloc first use temp"
-; V132 tmp122 [V132,T121] ( 3, 0 ) int -> x1 "Inline stloc first use temp"
+; V131 tmp121 [V131,T117] ( 3, 0 ) long -> x0 "Inline stloc first use temp"
+; V132 tmp122 [V132,T118] ( 3, 0 ) int -> x1 "Inline stloc first use temp"
;* V133 tmp123 [V133 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" <ubyte[]>
;* V134 tmp124 [V134 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
-; V135 tmp125 [V135,T129] ( 2, 0 ) byref -> x1 single-def "Inlining Arg"
+; V135 tmp125 [V135,T126] ( 2, 0 ) byref -> x1 single-def "Inlining Arg"
;* V136 tmp126 [V136 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V137 tmp127 [V137,T75] ( 5, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
+; V137 tmp127 [V137,T72] ( 5, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
;* V138 tmp128 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V139 tmp129 [V139,T106] ( 3, 0 ) ref -> x15 class-hnd "Inline return value spill temp" <ubyte[]>
-; V140 tmp130 [V140,T107] ( 3, 0 ) ref -> x25 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-; V141 tmp131 [V141,T130] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V139 tmp129 [V139,T103] ( 3, 0 ) ref -> x15 class-hnd "Inline return value spill temp" <ubyte[]>
+; V140 tmp130 [V140,T104] ( 3, 0 ) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+; V141 tmp131 [V141,T127] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
;* V142 tmp132 [V142 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V143 tmp133 [V143,T153] ( 2, 0 ) long -> x2 "Inlining Arg"
+; V143 tmp133 [V143,T150] ( 2, 0 ) long -> x2 "Inlining Arg"
;* V144 tmp134 [V144 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V145 tmp135 [V145,T83] ( 4, 0 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
-; V146 tmp136 [V146,T131] ( 2, 0 ) ref -> x15 class-hnd exact single-def "dup spill" <System.String>
-; V147 tmp137 [V147,T84] ( 4, 0 ) ref -> x15
+; V145 tmp135 [V145,T80] ( 4, 0 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+; V146 tmp136 [V146,T128] ( 2, 0 ) ref -> x15 class-hnd exact single-def "dup spill" <System.String>
+; V147 tmp137 [V147,T81] ( 4, 0 ) ref -> x15
;* V148 tmp138 [V148 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V149 tmp139 [V149 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;* V150 tmp140 [V150,T162] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
-; V151 tmp141 [V151,T132] ( 2, 0 ) ref -> x0 class-hnd single-def "spilling ret_expr" <ubyte[]>
-; V152 tmp142 [V152,T108] ( 3, 0 ) ref -> x0 "guarded devirt return temp"
+;* V150 tmp140 [V150,T159] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
+; V151 tmp141 [V151,T129] ( 2, 0 ) ref -> x0 class-hnd single-def "spilling ret_expr" <ubyte[]>
+; V152 tmp142 [V152,T105] ( 3, 0 ) ref -> x0 "guarded devirt return temp"
;* V153 tmp143 [V153 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
;* V154 tmp144 [V154 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V155 tmp145 [V155 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V156 tmp146 [V156 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.ArgumentException>
;* V157 tmp147 [V157 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V158 tmp148 [V158,T85] ( 4, 0 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
-; V159 tmp149 [V159,T133] ( 2, 0 ) ref -> x15 class-hnd exact single-def "dup spill" <System.String>
-; V160 tmp150 [V160,T86] ( 4, 0 ) ref -> x15
+; V158 tmp148 [V158,T82] ( 4, 0 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+; V159 tmp149 [V159,T130] ( 2, 0 ) ref -> x15 class-hnd exact single-def "dup spill" <System.String>
+; V160 tmp150 [V160,T83] ( 4, 0 ) ref -> x15
;* V161 tmp151 [V161 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V162 tmp152 [V162 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;* V163 tmp153 [V163,T163] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
-; V164 tmp154 [V164,T134] ( 2, 0 ) ref -> x0 class-hnd single-def "spilling ret_expr" <ubyte[]>
-; V165 tmp155 [V165,T109] ( 3, 0 ) ref -> x0 "guarded devirt return temp"
+;* V163 tmp153 [V163,T160] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
+; V164 tmp154 [V164,T131] ( 2, 0 ) ref -> x0 class-hnd single-def "spilling ret_expr" <ubyte[]>
+; V165 tmp155 [V165,T106] ( 3, 0 ) ref -> x0 "guarded devirt return temp"
...
-16 (-0.79%) : 608088.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
@@ -68,11 +68,11 @@
;* V56 tmp46 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp47 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V58 tmp48 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.SignatureTypeEncoder>
-; V59 tmp49 [V59,T74] ( 4, 0 ) ref -> x27 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-; V60 tmp50 [V60,T78] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
+; V59 tmp49 [V59,T73] ( 4, 0 ) ref -> x27 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+; V60 tmp50 [V60,T77] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
;* V61 tmp51 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V62 tmp52 [V62,T75] ( 4, 0 ) ref -> x27 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-; V63 tmp53 [V63,T79] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
+; V62 tmp52 [V62,T74] ( 4, 0 ) ref -> x27 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+; V63 tmp53 [V63,T78] ( 3, 0 ) int -> x0 "Inline stloc first use temp"
;* V64 tmp54 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
; V65 tmp55 [V65,T07] ( 2, 7.71) ref -> x28 class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
; V66 tmp56 [V66,T13] ( 4, 6.12) int -> x3 "Inline stloc first use temp"
@@ -162,8 +162,8 @@
;* V150 tmp140 [V150 ] ( 0, 0 ) ref -> zero-ref "field V43.array (fldOffset=0x0)" P-INDEP
; V151 tmp141 [V151 ] ( 5, 3.86) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V44.<Builder>k__BackingField (fldOffset=0x0)" P-DEP
;* V152 tmp142 [V152 ] ( 0, 0 ) ref -> zero-ref "field V46.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-; V153 tmp143 [V153,T80] ( 2, 0 ) ref -> x28 "field V47.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-; V154 tmp144 [V154,T81] ( 2, 0 ) ref -> x2 "field V48.array (fldOffset=0x0)" P-INDEP
+; V153 tmp143 [V153,T79] ( 2, 0 ) ref -> x28 "field V47.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
+; V154 tmp144 [V154,T80] ( 2, 0 ) ref -> x2 "field V48.array (fldOffset=0x0)" P-INDEP
; V155 tmp145 [V155,T20] ( 3, 3.86) ref -> x27 "field V49.array (fldOffset=0x0)" P-INDEP
; V156 tmp146 [V156,T21] ( 2, 3.86) ref -> x28 "field V58.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
; V157 tmp147 [V157,T41] ( 5, 0.99) int -> x25 single-def "field V67._value (fldOffset=0x0)" P-INDEP
@@ -218,14 +218,13 @@
; V206 tmp196 [V206,T49] ( 2, 0.66) int -> x19 single-def "field V131._rowId (fldOffset=0x0)" P-INDEP
; V207 tmp197 [V207,T30] ( 3, 1.98) ref -> x0 single-def "arr expr"
; V208 tmp198 [V208,T33] ( 3, 1.84) ref -> x0 single-def "arr expr"
-; V209 tmp199 [V209,T76] ( 3, 0 ) ref -> x1 "arr expr"
-; V210 tmp200 [V210,T77] ( 3, 0 ) ref -> x11 "arr expr"
+; V209 tmp199 [V209,T75] ( 3, 0 ) ref -> x1 "arr expr"
+; V210 tmp200 [V210,T76] ( 3, 0 ) ref -> x11 "arr expr"
; V211 cse0 [V211,T15] ( 3, 5.79) int -> x0 "CSE - moderate"
; V212 cse1 [V212,T11] ( 2, 6.69) int -> x1 hoist "CSE - aggressive"
; V213 cse2 [V213,T16] ( 5, 4.59) int -> x21 "CSE - aggressive"
; V214 cse3 [V214,T04] ( 4, 7.71) long -> x25 "CSE - aggressive"
; V215 cse4 [V215,T05] ( 4, 7.71) long -> x26 "CSE - moderate"
-; V216 cse5 [V216,T73] ( 11, 0 ) long -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 16
@@ -253,17 +252,16 @@ G_M099_IG02: ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, b
G_M099_IG03: ; bbWeight=0, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
mov x0, x1
; gcrRegs +[x0]
- movz x23, #0xD1FFAB1E // code for <unknown method>
- movk x23, #0xD1FFAB1E LSL #16
- movk x23, #1 LSL #32
- mov x11, x23
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x1, [x11]
; gcrRegs -[x1]
blr x1
; gcr arg pop 0
mov x20, x0
; gcrRegs +[x20]
- ;; size=32 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M099_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w21, [x20, #0x08]
@@ -497,17 +495,15 @@ G_M099_IG29: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
; byrRegs -[x0]
mov x0, x24
; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E
+ movz x11, #0xD1FFAB1E // code for <unknown method>
movk x11, #0xD1FFAB1E LSL #16
movk x11, #1 LSL #32
- mov x27, x11
- add x11, x27, #8
ldr x1, [x11]
blr x1
; gcr arg pop 0
mov x27, x0
; gcrRegs +[x27]
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M099_IG30: ; bbWeight=1.93, gcrefRegs=9980000 {x19 x20 x23 x24 x27}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x27, #0x08]
@@ -534,17 +530,16 @@ G_M099_IG32: ; bbWeight=1.93, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefR
G_M099_IG33: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
mov x0, x24
; gcrRegs +[x0]
- movz x27, #0xD1FFAB1E
- movk x27, #0xD1FFAB1E LSL #16
- movk x27, #1 LSL #32
- add x11, x27, #16
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x1, [x11]
blr x1
; gcrRegs -[x0]
; gcr arg pop 0
sxtw w28, w0
b G_M099_IG72
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=32 bbWeight=0 PerfScore 0.00
G_M099_IG34: ; bbWeight=1.93, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x24, #0x28]
and w28, w0, #1
@@ -620,17 +615,16 @@ G_M099_IG39: ; bbWeight=1.93, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefR
G_M099_IG40: ; bbWeight=0, gcrefRegs=11980000 {x19 x20 x23 x24 x28}, byrefRegs=0000 {}, byref
mov x0, x24
; gcrRegs +[x0]
- movz x27, #0xD1FFAB1E
- movk x27, #0xD1FFAB1E LSL #16
- movk x27, #1 LSL #32
- add x11, x27, #32
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x1, [x11]
blr x1
; gcrRegs -[x24]
; gcr arg pop 0
mov x2, x0
; gcrRegs +[x2]
- ;; size=32 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M099_IG41: ; bbWeight=1.93, gcrefRegs=10980004 {x2 x19 x20 x23 x28}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
mov x0, x19
@@ -997,10 +991,9 @@ G_M099_IG71: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
mov x28, x0
; gcrRegs +[x28]
mov x0, x24
- movz x27, #0xD1FFAB1E
- movk x27, #0xD1FFAB1E LSL #16
- movk x27, #1 LSL #32
- add x11, x27, #8
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x1, [x11]
blr x1
; gcr arg pop 0
@@ -1017,11 +1010,13 @@ G_M099_IG71: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
; gcrRegs -[x0-x2 x28]
; gcr arg pop 0
b G_M099_IG32
- ;; size=92 bbWeight=0 PerfScore 0.00
+ ;; size=88 bbWeight=0 PerfScore 0.00
G_M099_IG72: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
mov x0, x24
; gcrRegs +[x0]
- add x11, x27, #24
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #1 LSL #32
ldr x1, [x11]
blr x1
; gcrRegs -[x0]
@@ -1029,7 +1024,7 @@ G_M099_IG72: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
sxtw w4, w0
tst w4, #255
beq G_M099_IG37
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
G_M099_IG73: ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
ldr x27, [fp, #0x18] // [V151 tmp141]
; gcrRegs +[x27]
@@ -1094,7 +1089,7 @@ G_M099_IG75: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000
b G_M099_IG65
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2020, prolog size 36, PerfScore 245.67, instruction count 505, allocated bytes for code 2020 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
+Total bytes of code 2004, prolog size 36, PerfScore 245.67, instruction count 501, allocated bytes for code 2004 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
; ============================================================
Unwind Info:
@@ -1105,7 +1100,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 505 (0x001f9) Actual length = 2020 (0x0007e4)
+ Function Length : 501 (0x001f5) Actual length = 2004 (0x0007d4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+4.88%) : 476023.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
@@ -11,38 +11,36 @@
;
; V00 this [V00,T14] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T18] ( 3, 1 ) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V02 loc1 [V02,T02] ( 7, 14 ) ref -> x19 class-hnd exact single-def <<unknown class>>
; V03 loc2 [V03,T01] ( 7, 14.89) int -> x20
-; V04 loc3 [V04,T04] ( 4, 10.67) int -> x21
+; V04 loc3 [V04,T05] ( 4, 10.67) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
-; V07 tmp2 [V07,T08] ( 2, 10.22) int -> x20 "dup spill"
+; V07 tmp2 [V07,T09] ( 2, 10.22) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T19] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V09 tmp4 [V09,T17] ( 3, 0 ) int -> x0 "Inline return value spill temp"
; V10 tmp5 [V10,T11] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T03] ( 4, 11.22) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T00] ( 7, 48.22) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V15 tmp10 [V15,T05] ( 3, 10.33) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V16 tmp11 [V16,T02] ( 4, 13.78) int -> x1 "Inline stloc first use temp"
-; V17 cse0 [V17,T17] ( 3, 3 ) long -> x0 "CSE - aggressive"
-; V18 cse1 [V18,T07] ( 3, 10.33) long -> x2 "CSE - aggressive"
-; V19 cse2 [V19,T09] ( 5, 9.56) int -> x22 "CSE - aggressive"
-; V20 cse3 [V20,T10] ( 2, 6.89) int -> x2 "CSE - aggressive"
-; V21 cse4 [V21,T16] ( 2, 3.44) byref -> x19 hoist "CSE - aggressive"
-; V22 cse5 [V22,T06] ( 3, 10.33) byref -> x0 "CSE - aggressive"
-; V23 rat0 [V23,T15] ( 3, 4 ) long -> x0 "TLS field access"
-; V24 rat1 [V24,T12] ( 3, 6 ) long -> x0 "TLS access"
-; V25 rat2 [V25,T13] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V13 tmp8 [V13,T04] ( 4, 11.22) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T00] ( 7, 48.22) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V15 tmp10 [V15,T06] ( 3, 10.33) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V16 tmp11 [V16,T03] ( 4, 13.78) int -> x1 "Inline stloc first use temp"
+; V17 cse0 [V17,T16] ( 3, 3 ) long -> x0 "CSE - aggressive"
+; V18 cse1 [V18,T08] ( 3, 10.33) long -> x2 "CSE - aggressive"
+; V19 cse2 [V19,T10] ( 2, 6.89) int -> x2 "CSE - aggressive"
+; V20 cse3 [V20,T07] ( 3, 10.33) byref -> x0 "CSE - aggressive"
+; V21 rat0 [V21,T15] ( 3, 4 ) long -> x0 "TLS field access"
+; V22 rat1 [V22,T12] ( 3, 6 ) long -> x0 "TLS access"
+; V23 rat2 [V23,T13] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -88,29 +86,31 @@ G_M10734_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
and w20, w0, #7
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG12
- add x19, x19, #16
- ; gcrRegs -[x19]
- ; byrRegs +[x19]
+ ldr wzr, [x19, #0x08]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07: ; bbWeight=3.44, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w20, w22
+G_M10734_IG07: ; bbWeight=3.44, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG16
- ldr x23, [x19, w20, UXTW #3]
+ add x0, x19, #16
+ ; byrRegs +[x0]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
+ ; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -119,58 +119,60 @@ G_M10734_IG07: ; bbWeight=3.44, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
+ ldr x23, [x0, x2]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
- ;; size=72 bbWeight=3.44 PerfScore 93.00
-G_M10734_IG08: ; bbWeight=3.44, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+ str w1, [x22, #0x14]
+ ;; size=80 bbWeight=3.44 PerfScore 105.06
+G_M10734_IG08: ; bbWeight=3.44, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG14
+ cbnz x23, G_M10734_IG14
;; size=12 bbWeight=3.44 PerfScore 8.61
-G_M10734_IG09: ; bbWeight=2.56, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ; gcrRegs -[x24]
+G_M10734_IG09: ; bbWeight=2.56, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x23]
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG11
- ;; size=12 bbWeight=2.56 PerfScore 5.11
-G_M10734_IG10: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+ ;; size=16 bbWeight=2.56 PerfScore 12.78
+G_M10734_IG10: ; bbWeight=0.33, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.33 PerfScore 0.17
-G_M10734_IG11: ; bbWeight=3.56, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG11: ; bbWeight=3.56, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=3.56 PerfScore 7.11
+ ;; size=16 bbWeight=3.56 PerfScore 17.78
G_M10734_IG12: ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0.11 PerfScore 0.06
G_M10734_IG13: ; bbWeight=0.11, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.11 PerfScore 0.56
-G_M10734_IG14: ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+ ;; size=20 bbWeight=0.11 PerfScore 0.67
+G_M10734_IG14: ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0.89 PerfScore 0.44
G_M10734_IG15: ; bbWeight=0.89, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.89 PerfScore 4.44
+ ;; size=20 bbWeight=0.89 PerfScore 5.33
G_M10734_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -182,7 +184,7 @@ G_M10734_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 328, prolog size 20, PerfScore 151.50, instruction count 82, allocated bytes for code 328 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 344, prolog size 20, PerfScore 182.89, instruction count 86, allocated bytes for code 344 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
; ============================================================
Unwind Info:
@@ -193,7 +195,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 82 (0x00052) Actual length = 328 (0x000148)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -204,10 +206,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
+16 (+4.88%) : 466892.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
@@ -9,40 +9,38 @@
; 2 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T11] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
+; V00 this [V00,T12] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T18] ( 3, 1 ) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V03 loc2 [V03,T03] ( 7, 6.31) int -> x20
-; V04 loc3 [V04,T07] ( 4, 5.58) int -> x21
+; V02 loc1 [V02,T01] ( 7, 7.33) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V03 loc2 [V03,T04] ( 7, 6.31) int -> x20
+; V04 loc3 [V04,T08] ( 4, 5.58) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
; V07 tmp2 [V07,T15] ( 2, 3.44) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T19] ( 3, 0 ) int -> x0 "Inline return value spill temp"
-; V10 tmp5 [V10,T04] ( 4, 6 ) int -> x20 "dup spill"
+; V09 tmp4 [V09,T17] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V10 tmp5 [V10,T05] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T02] ( 4, 6.36) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T00] ( 7, 25.28) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V15 tmp10 [V15,T08] ( 3, 5.42) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V16 tmp11 [V16,T01] ( 4, 7.22) int -> x1 "Inline stloc first use temp"
+; V13 tmp8 [V13,T03] ( 4, 6.36) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T00] ( 7, 25.28) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V15 tmp10 [V15,T09] ( 3, 5.42) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
+; V16 tmp11 [V16,T02] ( 4, 7.22) int -> x1 "Inline stloc first use temp"
; V17 cse0 [V17,T16] ( 3, 3 ) long -> x0 "CSE - aggressive"
-; V18 cse1 [V18,T10] ( 3, 5.42) long -> x2 "CSE - aggressive"
-; V19 cse2 [V19,T12] ( 5, 4.53) int -> x22 "CSE - aggressive"
-; V20 cse3 [V20,T14] ( 2, 3.61) int -> x2 "CSE - aggressive"
-; V21 cse4 [V21,T17] ( 2, 1.81) byref -> x19 hoist "CSE - moderate"
-; V22 cse5 [V22,T09] ( 3, 5.42) byref -> x0 "CSE - aggressive"
-; V23 rat0 [V23,T13] ( 3, 4 ) long -> x0 "TLS field access"
-; V24 rat1 [V24,T05] ( 3, 6 ) long -> x0 "TLS access"
-; V25 rat2 [V25,T06] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V18 cse1 [V18,T11] ( 3, 5.42) long -> x2 "CSE - aggressive"
+; V19 cse2 [V19,T14] ( 2, 3.61) int -> x2 "CSE - aggressive"
+; V20 cse3 [V20,T10] ( 3, 5.42) byref -> x0 "CSE - aggressive"
+; V21 rat0 [V21,T13] ( 3, 4 ) long -> x0 "TLS field access"
+; V22 rat1 [V22,T06] ( 3, 6 ) long -> x0 "TLS access"
+; V23 rat2 [V23,T07] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -88,29 +86,31 @@ G_M10734_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
and w20, w0, #7
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG12
- add x19, x19, #16
- ; gcrRegs -[x19]
- ; byrRegs +[x19]
+ ldr wzr, [x19, #0x08]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07: ; bbWeight=1.81, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w20, w22
+G_M10734_IG07: ; bbWeight=1.81, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG16
- ldr x23, [x19, w20, UXTW #3]
+ add x0, x19, #16
+ ; byrRegs +[x0]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
+ ; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -119,58 +119,60 @@ G_M10734_IG07: ; bbWeight=1.81, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
+ ldr x23, [x0, x2]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
- ;; size=72 bbWeight=1.81 PerfScore 48.75
-G_M10734_IG08: ; bbWeight=1.81, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+ str w1, [x22, #0x14]
+ ;; size=80 bbWeight=1.81 PerfScore 55.07
+G_M10734_IG08: ; bbWeight=1.81, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG14
+ cbnz x23, G_M10734_IG14
;; size=12 bbWeight=1.81 PerfScore 4.51
-G_M10734_IG09: ; bbWeight=0.86, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ; gcrRegs -[x24]
+G_M10734_IG09: ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x23]
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG11
- ;; size=12 bbWeight=0.86 PerfScore 1.72
-G_M10734_IG10: ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+ ;; size=16 bbWeight=0.86 PerfScore 4.31
+G_M10734_IG10: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.11 PerfScore 0.06
-G_M10734_IG11: ; bbWeight=1.86, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG11: ; bbWeight=1.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=1.86 PerfScore 3.72
+ ;; size=16 bbWeight=1.86 PerfScore 9.31
G_M10734_IG12: ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0.06 PerfScore 0.03
G_M10734_IG13: ; bbWeight=0.06, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.06 PerfScore 0.28
-G_M10734_IG14: ; bbWeight=0.94, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+ ;; size=20 bbWeight=0.06 PerfScore 0.33
+G_M10734_IG14: ; bbWeight=0.94, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0.94 PerfScore 0.47
G_M10734_IG15: ; bbWeight=0.94, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.94 PerfScore 4.72
+ ;; size=20 bbWeight=0.94 PerfScore 5.67
G_M10734_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -182,7 +184,7 @@ G_M10734_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 328, prolog size 20, PerfScore 96.26, instruction count 82, allocated bytes for code 328 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 344, prolog size 20, PerfScore 111.75, instruction count 86, allocated bytes for code 344 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
; ============================================================
Unwind Info:
@@ -193,7 +195,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 82 (0x00052) Actual length = 328 (0x000148)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -204,10 +206,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
+16 (+4.88%) : 487720.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
@@ -11,38 +11,36 @@
;
; V00 this [V00,T11] ( 3, 3 ) ref -> x0 this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Array>
-; V02 loc1 [V02,T18] ( 3, 1 ) ref -> x19 class-hnd exact single-def <<unknown class>>
-; V03 loc2 [V03,T01] ( 7, 8.78) int -> x20
-; V04 loc3 [V04,T02] ( 4, 7.15) int -> x21
+; V02 loc1 [V02,T01] ( 7, 9.23) ref -> x19 class-hnd exact single-def <<unknown class>>
+; V03 loc2 [V03,T02] ( 7, 8.78) int -> x20
+; V04 loc3 [V04,T03] ( 4, 7.15) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
; V07 tmp2 [V07,T09] ( 2, 5.54) int -> x20 "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V09 tmp4 [V09,T19] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V09 tmp4 [V09,T17] ( 3, 0 ) int -> x0 "Inline return value spill temp"
; V10 tmp5 [V10,T06] ( 4, 6 ) int -> x20 "dup spill"
;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V13 tmp8 [V13,T04] ( 4, 6.21) ref -> x24 class-hnd "Inline stloc first use temp" <System.Array>
-; V14 tmp9 [V14,T00] ( 7, 28.57) ref -> x23 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V13 tmp8 [V13,T05] ( 4, 6.21) ref -> x23 class-hnd "Inline stloc first use temp" <System.Array>
+; V14 tmp9 [V14,T00] ( 7, 28.57) ref -> x22 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
; V15 tmp10 [V15,T10] ( 3, 5.36) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V16 tmp11 [V16,T03] ( 4, 6.26) int -> x1 "Inline stloc first use temp"
+; V16 tmp11 [V16,T04] ( 4, 6.26) int -> x1 "Inline stloc first use temp"
; V17 cse0 [V17,T14] ( 3, 3 ) long -> x0 "CSE - aggressive"
; V18 cse1 [V18,T16] ( 3, 2.70) long -> x2 "CSE - aggressive"
-; V19 cse2 [V19,T05] ( 5, 6 ) int -> x22 "CSE - aggressive"
-; V20 cse3 [V20,T17] ( 2, 2.23) byref -> x19 hoist "CSE - moderate"
-; V21 cse4 [V21,T12] ( 2, 4.46) int -> x2 "CSE - aggressive"
-; V22 cse5 [V22,T15] ( 3, 2.70) byref -> x0 "CSE - moderate"
-; V23 rat0 [V23,T13] ( 3, 4 ) long -> x0 "TLS field access"
-; V24 rat1 [V24,T07] ( 3, 6 ) long -> x0 "TLS access"
-; V25 rat2 [V25,T08] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
+; V19 cse2 [V19,T12] ( 2, 4.46) int -> x2 "CSE - aggressive"
+; V20 cse3 [V20,T15] ( 3, 2.70) byref -> x0 "CSE - aggressive"
+; V21 rat0 [V21,T13] ( 3, 4 ) long -> x0 "TLS field access"
+; V22 rat1 [V22,T07] ( 3, 6 ) long -> x0 "TLS access"
+; V23 rat2 [V23,T08] ( 3, 6 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M10734_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
- stp x23, x24, [sp, #0x30]
+ stp x19, x20, [sp, #0x18]
+ stp x21, x22, [sp, #0x28]
+ str x23, [sp, #0x38]
mov fp, sp
;; size=20 bbWeight=1 PerfScore 4.50
G_M10734_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -88,93 +86,97 @@ G_M10734_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M10734_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
and w20, w0, #7
mov w21, wzr
- ldr w22, [x19, #0x08]
- cmp w22, #0
+ ldr w0, [x19, #0x08]
+ cmp w0, #0
ble G_M10734_IG13
- add x19, x19, #16
- ; gcrRegs -[x19]
- ; byrRegs +[x19]
+ ldr wzr, [x19, #0x08]
;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07: ; bbWeight=2.23, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w20, w22
+G_M10734_IG07: ; bbWeight=2.23, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ldr w0, [x19, #0x08]
+ cmp w20, w0
bhs G_M10734_IG17
- ldr x23, [x19, w20, UXTW #3]
+ add x0, x19, #16
+ ; byrRegs +[x0]
+ ldr x22, [x0, w20, UXTW #3]
+ ; gcrRegs +[x22]
+ ldrsb wzr, [x22]
+ mov x23, xzr
; gcrRegs +[x23]
- ldrsb wzr, [x23]
- mov x24, xzr
- ; gcrRegs +[x24]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
+ ; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x23, #0x08]
+ ldr x0, [x22, #0x08]
; gcrRegs +[x0]
- ldr w1, [x23, #0x14]
+ ldr w1, [x22, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M10734_IG09
- ;; size=52 bbWeight=2.23 PerfScore 45.73
-G_M10734_IG08: ; bbWeight=0.90, gcrefRegs=800001 {x0 x23}, byrefRegs=80000 {x19}, byref
- ; gcrRegs -[x24]
+ ;; size=60 bbWeight=2.23 PerfScore 53.54
+G_M10734_IG08: ; bbWeight=0.90, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x24, [x0, x2]
- ; gcrRegs +[x24]
+ ldr x23, [x0, x2]
+ ; gcrRegs +[x23]
str xzr, [x0, x2]
- str w1, [x23, #0x14]
+ str w1, [x22, #0x14]
;; size=20 bbWeight=0.90 PerfScore 5.85
-G_M10734_IG09: ; bbWeight=2.23, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG09: ; bbWeight=2.23, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x23
+ mov x0, x22
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x23]
+ ; gcrRegs -[x0 x22]
; gcr arg pop 0
- cbnz x24, G_M10734_IG15
+ cbnz x23, G_M10734_IG15
;; size=12 bbWeight=2.23 PerfScore 5.58
-G_M10734_IG10: ; bbWeight=1.38, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ; gcrRegs -[x24]
+G_M10734_IG10: ; bbWeight=1.38, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x23]
add w20, w20, #1
- cmp w22, w20
+ ldr w0, [x19, #0x08]
+ cmp w0, w20
bne G_M10734_IG12
- ;; size=12 bbWeight=1.38 PerfScore 2.77
-G_M10734_IG11: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+ ;; size=16 bbWeight=1.38 PerfScore 6.92
+G_M10734_IG11: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.17 PerfScore 0.08
-G_M10734_IG12: ; bbWeight=2.38, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG12: ; bbWeight=2.38, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add w21, w21, #1
- cmp w22, w21
+ ldr w0, [x19, #0x08]
+ cmp w0, w21
bgt G_M10734_IG07
- ;; size=12 bbWeight=2.38 PerfScore 4.77
+ ;; size=16 bbWeight=2.38 PerfScore 11.92
G_M10734_IG13: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19]
+ ; gcrRegs -[x19]
mov x0, xzr
;; size=4 bbWeight=0.15 PerfScore 0.08
G_M10734_IG14: ; bbWeight=0.15, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.15 PerfScore 0.77
-G_M10734_IG15: ; bbWeight=0.85, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x24]
- mov x0, x24
+ ;; size=20 bbWeight=0.15 PerfScore 0.92
+G_M10734_IG15: ; bbWeight=0.85, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x23]
+ mov x0, x23
; gcrRegs +[x0]
;; size=4 bbWeight=0.85 PerfScore 0.42
G_M10734_IG16: ; bbWeight=0.85, epilog, nogc, extend
- ldp x23, x24, [sp, #0x30]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x23, [sp, #0x38]
+ ldp x21, x22, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x40
ret lr
- ;; size=20 bbWeight=0.85 PerfScore 4.23
+ ;; size=20 bbWeight=0.85 PerfScore 5.08
G_M10734_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x23]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
@@ -186,7 +188,7 @@ G_M10734_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M10734_IG03
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 328, prolog size 20, PerfScore 102.28, instruction count 82, allocated bytes for code 328 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 344, prolog size 20, PerfScore 122.40, instruction count 86, allocated bytes for code 344 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,7 +199,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 82 (0x00052) Actual length = 328 (0x000148)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -208,10 +210,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
+ D1 07 save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
E6 save_next
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end
- E4 end
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
-4 (-2.94%) : 143744.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:
@@ -35,24 +35,24 @@
;* V24 tmp23 [V24 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V25 tmp24 [V25 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V26 tmp25 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26 [V27,T07] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V28 tmp27 [V28,T03] ( 2, 2 ) int -> x2 "Inline stloc first use temp"
+;* V27 tmp26 [V27,T06] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V28 tmp27 [V28,T03] ( 3, 3 ) int -> x1 "Inline stloc first use temp"
;* V29 tmp28 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V30 tmp29 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V31 tmp30 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V32 tmp31 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp32 [V33 ] ( 0, 0 ) int -> zero-ref "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33 [V34,T08] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33 [V34,T07] ( 0, 0 ) int -> zero-ref "field V04._value (fldOffset=0x0)" P-INDEP
;* V35 tmp34 [V35 ] ( 0, 0 ) int -> zero-ref "field V05._value (fldOffset=0x0)" P-INDEP
;* V36 tmp35 [V36 ] ( 0, 0 ) int -> zero-ref "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36 [V37,T09] ( 0, 0 ) int -> zero-ref "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36 [V37,T08] ( 0, 0 ) int -> zero-ref "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V38 tmp37 [V38 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V39 tmp38 [V39 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
;* V41 tmp40 [V41 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp41 [V42 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V43 tmp42 [V43 ] ( 0, 0 ) int -> zero-ref "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43 [V44,T10] ( 0, 0 ) int -> zero-ref "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43 [V44,T09] ( 0, 0 ) int -> zero-ref "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V45 tmp44 [V45 ] ( 0, 0 ) int -> zero-ref "field V11.Item1 (fldOffset=0x0)" P-INDEP
;* V46 tmp45 [V46 ] ( 0, 0 ) int -> zero-ref "field V11.Item2 (fldOffset=0x4)" P-INDEP
;* V47 tmp46 [V47 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,9 +67,8 @@
;* V56 tmp55 [V56 ] ( 0, 0 ) int -> zero-ref "field V21._value (fldOffset=0x0)" P-INDEP
;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "field V22._value (fldOffset=0x0)" P-INDEP
;* V58 tmp57 [V58 ] ( 0, 0 ) int -> zero-ref "field V26.Item1 (fldOffset=0x0)" P-INDEP
-; V59 tmp58 [V59,T05] ( 2, 2 ) int -> x1 "field V26.Item2 (fldOffset=0x4)" P-INDEP
-; V60 cse0 [V60,T04] ( 3, 3 ) int -> x1 "CSE - moderate"
-; V61 cse1 [V61,T06] ( 3, 1.50) ref -> x1 "CSE - moderate"
+; V59 tmp58 [V59,T04] ( 2, 2 ) int -> x1 "field V26.Item2 (fldOffset=0x4)" P-INDEP
+; V60 cse0 [V60,T05] ( 3, 1.50) ref -> x1 "CSE - moderate"
;
; Lcl frame size = 0
@@ -84,11 +83,10 @@ G_M60991_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
sxtw w1, w0
- sxtw w2, w1
- cmp w2, w0
+ cmp w1, w0
bhi G_M60991_IG06
tbz w1, #31, G_M60991_IG04
- ;; size=32 bbWeight=1 PerfScore 10.50
+ ;; size=28 bbWeight=1 PerfScore 10.00
G_M60991_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -124,7 +122,7 @@ G_M60991_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 136, prolog size 8, PerfScore 17.75, instruction count 34, allocated bytes for code 136 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 132, prolog size 8, PerfScore 17.25, instruction count 33, allocated bytes for code 132 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
; ============================================================
Unwind Info:
@@ -135,7 +133,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 136 (0x000088)
+ Function Length : 33 (0x00021) Actual length = 132 (0x000084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-2.24%) : 291488.dasm - System.Threading.Channels.Tests.ChannelTests+TestChannelWriter
1[int]:WaitToWriteAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask1[ubyte]:this (FullOpts)@@ -11,26 +11,26 @@
; V00 this [V00,T00] ( 5, 4.50) ref -> x0 this class-hnd single-def <System.Threading.Channels.Tests.ChannelTests+TestChannelWriter`1[int]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03 ] ( 5, 5 ) struct (16) [fp+0x38] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+; V03 tmp1 [V03 ] ( 5, 5 ) struct (16) [fp+0x30] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
; V04 tmp2 [V04,T09] ( 2, 2 ) ref -> x1 class-hnd single-def "dup spill" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
; V07 tmp5 [V07,T08] ( 4, 2 ) ref -> x1
-; V08 tmp6 [V08 ] ( 5, 5 ) struct (16) [fp+0x28] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+; V08 tmp6 [V08 ] ( 5, 5 ) struct (16) [fp+0x20] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
; V09 tmp7 [V09,T01] ( 5, 5 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
-; V10 tmp8 [V10 ] ( 5, 5 ) struct (16) [fp+0x18] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+; V10 tmp8 [V10 ] ( 5, 5 ) struct (16) [fp+0x10] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
;* V12 tmp10 [V12 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-; V13 tmp11 [V13,T24] ( 2, 1 ) ref -> x0 single-def
+; V13 tmp11 [V13,T23] ( 2, 1 ) ref -> x0 single-def
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
;* V15 tmp13 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V16 tmp14 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V17 tmp15 [V17,T25] ( 2, 1 ) ref -> x21 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V17 tmp15 [V17,T24] ( 2, 1 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V18 tmp16 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
; V19 tmp17 [V19,T10] ( 2, 2 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.TimeProvider>
;* V20 tmp18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V21 tmp19 [V21,T03] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V22 tmp20 [V22,T30] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V21 tmp19 [V21,T03] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V22 tmp20 [V22,T29] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V23 tmp21 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V24 tmp22 [V24 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -70,24 +70,24 @@
; V59 tmp57 [V59,T05] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[ubyte]>
;* V60 tmp58 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
;* V61 tmp59 [V61 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-; V62 tmp60 [V62,T26] ( 2, 1 ) ref -> x0 single-def
+; V62 tmp60 [V62,T25] ( 2, 1 ) ref -> x0 single-def
;* V63 tmp61 [V63 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
; V64 tmp62 [V64,T07] ( 1, 1 ) ref -> x1 single-def "field V01._source (fldOffset=0x0)" P-INDEP
-; V65 tmp63 [V65,T12] ( 2, 1.50) ref -> [fp+0x38] do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
-; V66 tmp64 [V66,T15] ( 2, 1.50) short -> [fp+0x40] do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
-; V67 tmp65 [V67,T16] ( 2, 1.50) ubyte -> [fp+0x42] do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
-; V68 tmp66 [V68,T17] ( 2, 1.50) ubyte -> [fp+0x43] do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-; V69 tmp67 [V69,T13] ( 2, 1.50) ref -> [fp+0x28] do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
-; V70 tmp68 [V70,T18] ( 2, 1.50) short -> [fp+0x30] do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
-; V71 tmp69 [V71,T19] ( 2, 1.50) ubyte -> [fp+0x32] do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
-; V72 tmp70 [V72,T20] ( 2, 1.50) ubyte -> [fp+0x33] do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-; V73 tmp71 [V73,T14] ( 2, 1.50) ref -> [fp+0x18] do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
-; V74 tmp72 [V74,T21] ( 2, 1.50) short -> [fp+0x20] do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
-; V75 tmp73 [V75,T22] ( 2, 1.50) ubyte -> [fp+0x22] do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
-; V76 tmp74 [V76,T23] ( 2, 1.50) ubyte -> [fp+0x23] do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+; V65 tmp63 [V65,T11] ( 2, 1.50) ref -> [fp+0x30] do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
+; V66 tmp64 [V66,T14] ( 2, 1.50) short -> [fp+0x38] do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
+; V67 tmp65 [V67,T15] ( 2, 1.50) ubyte -> [fp+0x3A] do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
+; V68 tmp66 [V68,T16] ( 2, 1.50) ubyte -> [fp+0x3B] do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+; V69 tmp67 [V69,T12] ( 2, 1.50) ref -> [fp+0x20] do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
+; V70 tmp68 [V70,T17] ( 2, 1.50) short -> [fp+0x28] do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
+; V71 tmp69 [V71,T18] ( 2, 1.50) ubyte -> [fp+0x2A] do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
+; V72 tmp70 [V72,T19] ( 2, 1.50) ubyte -> [fp+0x2B] do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+; V73 tmp71 [V73,T13] ( 2, 1.50) ref -> [fp+0x10] do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
+; V74 tmp72 [V74,T20] ( 2, 1.50) short -> [fp+0x18] do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
+; V75 tmp73 [V75,T21] ( 2, 1.50) ubyte -> [fp+0x1A] do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
+; V76 tmp74 [V76,T22] ( 2, 1.50) ubyte -> [fp+0x1B] do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
;* V77 tmp75 [V77 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._source (fldOffset=0x0)" P-INDEP
;* V78 tmp76 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
-;* V79 tmp77 [V79,T29] ( 0, 0 ) ref -> zero-ref single-def "field V18._source (fldOffset=0x0)" P-INDEP
+;* V79 tmp77 [V79,T28] ( 0, 0 ) ref -> zero-ref single-def "field V18._source (fldOffset=0x0)" P-INDEP
;* V80 tmp78 [V80 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V24._source (fldOffset=0x0)" P-DEP
;* V81 tmp79 [V81 ] ( 0, 0 ) ref -> zero-ref single-def "field V32._node (fldOffset=0x0)" P-DEP
;* V82 tmp80 [V82 ] ( 0, 0 ) long -> zero-ref single-def "field V32._id (fldOffset=0x8)" P-DEP
@@ -96,24 +96,22 @@
;* V85 tmp83 [V85 ] ( 0, 0 ) ref -> zero-ref single-def "field V51._node (fldOffset=0x0)" P-INDEP
;* V86 tmp84 [V86 ] ( 0, 0 ) long -> zero-ref single-def "field V51._id (fldOffset=0x8)" P-INDEP
; V87 tmp85 [V87,T06] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-;* V88 cse0 [V88,T31] ( 0, 0 ) long -> zero-ref "CSE - moderate"
-; V89 cse1 [V89,T27] ( 2, 1 ) long -> x0 "CSE - moderate"
+;* V88 cse0 [V88,T30] ( 0, 0 ) long -> zero-ref "CSE - moderate"
+; V89 cse1 [V89,T26] ( 2, 1 ) long -> x0 "CSE - moderate"
; V90 cse2 [V90,T02] ( 6, 3 ) long -> x19 multi-def "CSE - aggressive"
-; V91 cse3 [V91,T11] ( 3, 1.50) long -> x20 "CSE - conservative"
-; V92 rat0 [V92,T28] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V91 rat0 [V91,T27] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M56691_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
- stp x19, x20, [sp, #0x48]
- str x21, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x40]
mov fp, sp
- add x9, fp, #24
+ add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp xzr, xzr, [x9, #0x20]
- ;; size=32 bbWeight=1 PerfScore 6.50
+ ;; size=28 bbWeight=1 PerfScore 5.50
G_M56691_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldp w2, w1, [x0, #0x10]
@@ -135,21 +133,20 @@ G_M56691_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
movk x19, #1 LSL #32
ldr x0, [x19, #0xD1FFAB1E]
; gcrRegs +[x0]
- str x0, [fp, #0x18] // [V73 tmp71]
- strb wzr, [fp, #0x22] // [V75 tmp73]
+ str x0, [fp, #0x10] // [V73 tmp71]
+ strb wzr, [fp, #0x1A] // [V75 tmp73]
mov w0, #1
; gcrRegs -[x0]
- strb w0, [fp, #0x23] // [V76 tmp74]
- strh wzr, [fp, #0x20] // [V74 tmp72]
- ldp x0, x1, [fp, #0x18] // [V10 tmp8], [V10 tmp8+0x08]
+ strb w0, [fp, #0x1B] // [V76 tmp74]
+ strh wzr, [fp, #0x18] // [V74 tmp72]
+ ldp x0, x1, [fp, #0x10] // [V10 tmp8], [V10 tmp8+0x08]
; gcrRegs +[x0]
;; size=72 bbWeight=0.50 PerfScore 13.50
G_M56691_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x58]
- ldp x19, x20, [sp, #0x48]
- ldp fp, lr, [sp], #0x60
+ ldp x19, x20, [sp, #0x40]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M56691_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
@@ -167,14 +164,13 @@ G_M56691_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movk x19, #1 LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #1 LSL #32
- add x0, x20, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
- mov x21, x0
- ; gcrRegs +[x21]
+ mov x20, x0
+ ; gcrRegs +[x20]
mov x2, x19
; gcrRegs +[x2]
mov w1, #1
@@ -195,7 +191,9 @@ G_M56691_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x1, [x0]
; gcrRegs +[x1]
cbnz x1, G_M56691_IG09
- mov x0, x20
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs -[x1] +[x0]
mov x1, x0
@@ -206,9 +204,9 @@ G_M56691_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x15, [x14]
; gcrRegs +[x15]
cbnz x15, G_M56691_IG08
- ;; size=140 bbWeight=0.50 PerfScore 15.25
+ ;; size=144 bbWeight=0.50 PerfScore 15.50
G_M56691_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0-x1 x15 x21]
+ ; gcrRegs -[x0-x1 x15 x20]
movz x0, #0xD1FFAB1E // code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -216,8 +214,8 @@ G_M56691_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M56691_IG08: ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x1 x15 x21]
+G_M56691_IG08: ; bbWeight=0.50, gcrefRegs=108002 {x1 x15 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x1 x15 x20]
add x14, x1, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
@@ -235,31 +233,30 @@ G_M56691_IG08: ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
;; size=44 bbWeight=0.50 PerfScore 3.50
-G_M56691_IG09: ; bbWeight=0.50, gcrefRegs=200002 {x1 x21}, byrefRegs=0000 {}, byref, isz
- mov x0, x21
+G_M56691_IG09: ; bbWeight=0.50, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
+ mov x0, x20
; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.Task:ContinueWith[ubyte](System.Func`2[System.Threading.Tasks.Task,ubyte]):System.Threading.Tasks.Task`1[ubyte]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x21]
+ ; gcrRegs -[x1 x20]
cbz x0, G_M56691_IG14
- str x0, [fp, #0x28] // [V69 tmp67]
- strb wzr, [fp, #0x32] // [V71 tmp69]
+ str x0, [fp, #0x20] // [V69 tmp67]
+ strb wzr, [fp, #0x2A] // [V71 tmp69]
mov w0, #1
; gcrRegs -[x0]
- strb w0, [fp, #0x33] // [V72 tmp70]
- strh wzr, [fp, #0x30] // [V70 tmp68]
- ldp x0, x1, [fp, #0x28] // [V08 tmp6], [V08 tmp6+0x08]
+ strb w0, [fp, #0x2B] // [V72 tmp70]
+ strh wzr, [fp, #0x28] // [V70 tmp68]
+ ldp x0, x1, [fp, #0x20] // [V08 tmp6], [V08 tmp6+0x08]
; gcrRegs +[x0]
;; size=52 bbWeight=0.50 PerfScore 7.25
G_M56691_IG10: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x58]
- ldp x19, x20, [sp, #0x48]
- ldp fp, lr, [sp], #0x60
+ ldp x19, x20, [sp, #0x40]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M56691_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
movz x19, #0xD1FFAB1E
@@ -267,21 +264,20 @@ G_M56691_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
movk x19, #1 LSL #32
ldr x0, [x19, #0xD1FFAB1E]
; gcrRegs +[x0]
- str x0, [fp, #0x38] // [V65 tmp63]
- strb wzr, [fp, #0x42] // [V67 tmp65]
+ str x0, [fp, #0x30] // [V65 tmp63]
+ strb wzr, [fp, #0x3A] // [V67 tmp65]
mov w0, #1
; gcrRegs -[x0]
- strb w0, [fp, #0x43] // [V68 tmp66]
- strh wzr, [fp, #0x40] // [V66 tmp64]
- ldp x0, x1, [fp, #0x38] // [V03 tmp1], [V03 tmp1+0x08]
+ strb w0, [fp, #0x3B] // [V68 tmp66]
+ strh wzr, [fp, #0x38] // [V66 tmp64]
+ ldp x0, x1, [fp, #0x30] // [V03 tmp1], [V03 tmp1+0x08]
; gcrRegs +[x0]
...
-4 (-0.77%) : 1876.dasm - Xunit.Sdk.TestFramework+
@@ -15,7 +15,7 @@
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V07 tmp2 [V07,T17] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V07 tmp2 [V07,T16] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V10 tmp5 [V10,T07] ( 2, 2 ) ref -> x21 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
@@ -23,7 +23,7 @@
; V12 tmp7 [V12,T03] ( 2, 4 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.TimeProvider>
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
; V14 tmp9 [V14,T01] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V15 tmp10 [V15,T15] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V15 tmp10 [V15,T14] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V17 tmp12 [V17 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -72,7 +72,7 @@
; V61 tmp56 [V61 ] ( 6, 6 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
;* V62 tmp57 [V62 ] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp59 [V64,T14] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp59 [V64,T13] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V65 tmp60 [V65 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V17._source (fldOffset=0x0)" P-DEP
;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "field V25._node (fldOffset=0x0)" P-DEP
;* V67 tmp62 [V67 ] ( 0, 0 ) long -> zero-ref single-def "field V25._id (fldOffset=0x8)" P-DEP
@@ -82,11 +82,10 @@
;* V71 tmp66 [V71 ] ( 0, 0 ) long -> zero-ref single-def "field V44._id (fldOffset=0x8)" P-INDEP
; V72 tmp67 [V72,T08] ( 2, 2 ) ref -> x21 single-def "field V51.m_task (fldOffset=0x0)" P-INDEP
; V73 tmp68 [V73,T05] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V74 PSPSym [V74,T16] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
+; V74 PSPSym [V74,T15] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V75 cse0 [V75,T10] ( 2, 2 ) long -> x1 "CSE - aggressive"
; V76 cse1 [V76,T11] ( 2, 2 ) long -> x1 "CSE - aggressive"
-; V77 cse2 [V77,T12] ( 2, 2 ) long -> x1 "CSE - conservative"
-; V78 rat0 [V78,T13] ( 2, 2 ) long -> x1 "Spilling to split statement for tree"
+; V77 rat0 [V77,T12] ( 2, 2 ) long -> x1 "Spilling to split statement for tree"
;
; Lcl frame size = 24
@@ -125,10 +124,9 @@ G_M64987_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #1 LSL #32
ldr x20, [x1]
; gcrRegs +[x20]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -184,7 +182,7 @@ G_M64987_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs -[x1]
; gcr arg pop 0
b G_M64987_IG11
- ;; size=168 bbWeight=1 PerfScore 42.50
+ ;; size=164 bbWeight=1 PerfScore 42.00
G_M64987_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
mov x0, x1
@@ -305,7 +303,7 @@ G_M64987_IG14: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 520, prolog size 32, PerfScore 111.51, instruction count 130, allocated bytes for code 520 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
+Total bytes of code 516, prolog size 32, PerfScore 111.01, instruction count 129, allocated bytes for code 516 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -316,7 +314,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 110 (0x0006e) Actual length = 440 (0x0001b8)
+ Function Length : 109 (0x0006d) Actual length = 436 (0x0001b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.43%) : 15380.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Rent(int):Microsoft.CodeAnalysis.Text.TextSpan[]:this (FullOpts)
@@ -13,14 +13,14 @@
; V02 loc0 [V02,T15] ( 8, 4.50) ref -> x21 class-hnd exact single-def <<unknown class>>
; V03 loc1 [V03,T10] ( 14, 7 ) ref -> x23 class-hnd <Microsoft.CodeAnalysis.Text.TextSpan[]>
; V04 loc2 [V04,T14] ( 9, 5 ) int -> x22
-; V05 loc3 [V05,T17] ( 5, 3.50) ref -> x0 class-hnd exact single-def <<unknown class>>
-; V06 loc4 [V06,T32] ( 3, 1.50) ref -> x0 class-hnd exact single-def <<unknown class>>
-; V07 loc5 [V07,T33] ( 3, 1.50) ref -> x0 class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-; V08 loc6 [V08,T35] ( 3, 1.50) int -> x24
+; V05 loc3 [V05,T16] ( 5, 3.50) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V06 loc4 [V06,T31] ( 3, 1.50) ref -> x0 class-hnd exact single-def <<unknown class>>
+; V07 loc5 [V07,T32] ( 3, 1.50) ref -> x0 class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+; V08 loc6 [V08,T34] ( 3, 1.50) int -> x24
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T22] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V11 tmp2 [V11,T23] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V12 tmp3 [V12,T24] ( 2, 2 ) int -> x3 "impAppendStmt"
+; V10 tmp1 [V10,T21] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V11 tmp2 [V11,T22] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V12 tmp3 [V12,T23] ( 2, 2 ) int -> x3 "impAppendStmt"
;* V13 tmp4 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp5 [V14 ] ( 0, 0 ) int -> zero-ref
;* V15 tmp6 [V15 ] ( 0, 0 ) int -> zero-ref
@@ -31,65 +31,63 @@
;* V20 tmp11 [V20 ] ( 0, 0 ) int -> zero-ref
;* V21 tmp12 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref
-; V23 tmp14 [V23,T39] ( 2, 1 ) int -> x5
+; V23 tmp14 [V23,T38] ( 2, 1 ) int -> x5
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <Microsoft.CodeAnalysis.Text.TextSpan[]>
-; V25 tmp16 [V25,T25] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V26 tmp17 [V26,T26] ( 2, 2 ) int -> x24 "impAppendStmt"
+; V25 tmp16 [V25,T24] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V26 tmp17 [V26,T25] ( 2, 2 ) int -> x24 "impAppendStmt"
;* V27 tmp18 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <Microsoft.CodeAnalysis.Text.TextSpan[]>
-; V28 tmp19 [V28,T27] ( 2, 2 ) int -> x20 "impAppendStmt"
-; V29 tmp20 [V29,T28] ( 2, 2 ) int -> x24 "impAppendStmt"
+; V28 tmp19 [V28,T26] ( 2, 2 ) int -> x20 "impAppendStmt"
+; V29 tmp20 [V29,T27] ( 2, 2 ) int -> x24 "impAppendStmt"
;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V32 tmp23 [V32,T34] ( 3, 1.50) ref -> x23 class-hnd "Inline return value spill temp" <System.Array>
-; V33 tmp24 [V33,T16] ( 3, 4.50) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+; V32 tmp23 [V32,T33] ( 3, 1.50) ref -> x23 class-hnd "Inline return value spill temp" <System.Array>
+; V33 tmp24 [V33,T02] ( 7, 16.50) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
; V34 tmp25 [V34,T01] ( 7, 22 ) int -> x20 "Inline stloc first use temp"
; V35 tmp26 [V35,T04] ( 4, 12 ) int -> x24 "Inline stloc first use temp"
;* V36 tmp27 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.Array>
;* V37 tmp28 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Array>
-; V38 tmp29 [V38,T02] ( 2, 16 ) int -> x20 "dup spill"
+; V38 tmp29 [V38,T03] ( 2, 16 ) int -> x20 "dup spill"
;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V40 tmp31 [V40,T42] ( 3, 0 ) int -> x0 "Inline return value spill temp"
-; V41 tmp32 [V41,T18] ( 4, 3 ) int -> x24 "dup spill"
+; V40 tmp31 [V40,T41] ( 3, 0 ) int -> x0 "Inline return value spill temp"
+; V41 tmp32 [V41,T17] ( 4, 3 ) int -> x24 "dup spill"
;* V42 tmp33 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp34 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Array>
-; V44 tmp35 [V44,T06] ( 4, 10.50) ref -> x27 class-hnd "Inline stloc first use temp" <System.Array>
-; V45 tmp36 [V45,T00] ( 7, 52 ) ref -> x26 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V44 tmp35 [V44,T06] ( 4, 10.50) ref -> x26 class-hnd "Inline stloc first use temp" <System.Array>
+; V45 tmp36 [V45,T00] ( 7, 52 ) ref -> x25 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
; V46 tmp37 [V46,T07] ( 3, 10 ) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
; V47 tmp38 [V47,T05] ( 4, 12 ) int -> x1 "Inline stloc first use temp"
-; V48 tmp39 [V48,T36] ( 3, 1.50) int -> x20 "Inline stloc first use temp"
+; V48 tmp39 [V48,T35] ( 3, 1.50) int -> x20 "Inline stloc first use temp"
;* V49 tmp40 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan[]>
;* V50 tmp41 [V50 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <Microsoft.CodeAnalysis.Text.TextSpan[]>
-; V52 tmp43 [V52,T43] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V53 tmp44 [V53,T29] ( 2, 2 ) int -> x3 "argument with side effect"
-; V54 tmp45 [V54,T30] ( 2, 2 ) int -> x3 "argument with side effect"
-; V55 tmp46 [V55,T31] ( 2, 2 ) int -> x3 "argument with side effect"
-; V56 cse0 [V56,T37] ( 3, 1.50) long -> x0 "CSE - moderate"
-; V57 cse1 [V57,T38] ( 3, 1.50) long -> x1 "CSE - moderate"
-; V58 cse2 [V58,T40] ( 2, 1 ) int -> x1 "CSE - moderate"
+; V52 tmp43 [V52,T42] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V53 tmp44 [V53,T28] ( 2, 2 ) int -> x3 "argument with side effect"
+; V54 tmp45 [V54,T29] ( 2, 2 ) int -> x3 "argument with side effect"
+; V55 tmp46 [V55,T30] ( 2, 2 ) int -> x3 "argument with side effect"
+; V56 cse0 [V56,T36] ( 3, 1.50) long -> x0 "CSE - moderate"
+; V57 cse1 [V57,T37] ( 3, 1.50) long -> x1 "CSE - moderate"
+; V58 cse2 [V58,T39] ( 2, 1 ) int -> x1 "CSE - moderate"
; V59 cse3 [V59,T13] ( 3, 6 ) long -> x2 "CSE - aggressive"
-; V60 cse4 [V60,T03] ( 5, 12 ) int -> x25 "CSE - aggressive"
-; V61 cse5 [V61,T08] ( 2, 8 ) int -> x2 "CSE - aggressive"
-; V62 cse6 [V62,T12] ( 3, 6 ) byref -> x0 "CSE - aggressive"
-; V63 cse7 [V63,T41] ( 2, 1 ) int -> x1 "CSE - moderate"
-; V64 rat0 [V64,T21] ( 3, 2 ) long -> x0 "TLS field access"
-; V65 rat1 [V65,T19] ( 3, 3 ) long -> x0 "TLS access"
-; V66 rat2 [V66,T20] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
+; V60 cse4 [V60,T08] ( 2, 8 ) int -> x2 "CSE - aggressive"
+; V61 cse5 [V61,T12] ( 3, 6 ) byref -> x0 "CSE - aggressive"
+; V62 cse6 [V62,T40] ( 2, 1 ) int -> x1 "CSE - moderate"
+; V63 rat0 [V63,T20] ( 3, 2 ) long -> x0 "TLS field access"
+; V64 rat1 [V64,T18] ( 3, 3 ) long -> x0 "TLS access"
+; V65 rat2 [V65,T19] ( 3, 3 ) long -> x0 "ThreadStaticBlockBase access"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M38226_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- 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]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
+ stp x23, x24, [sp, #0x30]
+ stp x25, x26, [sp, #0x40]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
mov w20, w1
- ;; size=36 bbWeight=1 PerfScore 7.50
+ ;; size=32 bbWeight=1 PerfScore 6.50
G_M38226_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -158,14 +156,13 @@ G_M38226_IG04: ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
; gcrRegs +[x0]
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M38226_IG05: ; bbWeight=0.50, epilog, nogc, extend
- 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
+ ldp x25, x26, [sp, #0x40]
+ ldp x23, x24, [sp, #0x30]
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
G_M38226_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0 x23] +[x19 x21]
ldr x0, [x19, #0x10]
@@ -221,79 +218,83 @@ G_M38226_IG09: ; bbWeight=0, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=00
G_M38226_IG10: ; bbWeight=0, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
and w20, w0, #7
mov w24, wzr
- ldr w25, [x23, #0x08]
- cmp w25, #0
+ ldr w0, [x23, #0x08]
+ cmp w0, #0
ble G_M38226_IG16
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ldr wzr, [x23, #0x08]
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M38226_IG11: ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
- cmp w20, w25
+ ldr w0, [x23, #0x08]
+ cmp w20, w0
bhs G_M38226_IG24
add x0, x23, #16
; byrRegs +[x0]
- ldr x26, [x0, w20, UXTW #3]
+ ldr x25, [x0, w20, UXTW #3]
+ ; gcrRegs +[x25]
+ ldrsb wzr, [x25]
+ mov x26, xzr
; gcrRegs +[x26]
- ldrsb wzr, [x26]
- mov x27, xzr
- ; gcrRegs +[x27]
- mov x0, x26
+ mov x0, x25
; gcrRegs +[x0]
; byrRegs -[x0]
bl <unknown method>
; gcrRegs -[x0]
; gcr arg pop 0
- ldr x0, [x26, #0x08]
+ ldr x0, [x25, #0x08]
; gcrRegs +[x0]
- ldr w1, [x26, #0x14]
+ ldr w1, [x25, #0x14]
sub w1, w1, #1
ldr w2, [x0, #0x08]
cmp w2, w1
bls G_M38226_IG13
- ;; size=56 bbWeight=4 PerfScore 84.00
-G_M38226_IG12: ; bbWeight=2, gcrefRegs=4A80001 {x0 x19 x21 x23 x26}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x27]
+ ;; size=60 bbWeight=4 PerfScore 96.00
+G_M38226_IG12: ; bbWeight=2, gcrefRegs=2A80001 {x0 x19 x21 x23 x25}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x26]
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ubfiz x2, x1, #3, #32
- ldr x27, [x0, x2]
- ; gcrRegs +[x27]
+ ldr x26, [x0, x2]
+ ; gcrRegs +[x26]
str xzr, [x0, x2]
- str w1, [x26, #0x14]
+ str w1, [x25, #0x14]
;; size=20 bbWeight=2 PerfScore 13.00
-G_M38226_IG13: ; bbWeight=4, gcrefRegs=CA80000 {x19 x21 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M38226_IG13: ; bbWeight=4, gcrefRegs=6A80000 {x19 x21 x23 x25 x26}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
- mov x0, x26
+ mov x0, x25
; gcrRegs +[x0]
bl <unknown method>
- ; gcrRegs -[x0 x26]
+ ; gcrRegs -[x0 x25]
; gcr arg pop 0
- cbnz x27, G_M38226_IG17
+ cbnz x26, G_M38226_IG17
add w20, w20, #1
- cmp w25, w20
+ ldr w0, [x23, #0x08]
+ cmp w0, w20
bne G_M38226_IG15
- ;; size=24 bbWeight=4 PerfScore 18.00
+ ;; size=28 bbWeight=4 PerfScore 30.00
G_M38226_IG14: ; bbWeight=2, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x27]
+ ; gcrRegs -[x26]
mov w20, wzr
;; size=4 bbWeight=2 PerfScore 1.00
G_M38226_IG15: ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
add w24, w24, #1
- cmp w25, w24
+ ldr w0, [x23, #0x08]
+ cmp w0, w24
bgt G_M38226_IG11
- ;; size=12 bbWeight=4 PerfScore 8.00
+ ;; size=16 bbWeight=4 PerfScore 20.00
G_M38226_IG16: ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
mov x23, xzr
; gcrRegs +[x23]
b G_M38226_IG18
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M38226_IG17: ; bbWeight=0.50, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x23] +[x27]
- mov x23, x27
+G_M38226_IG17: ; bbWeight=0.50, gcrefRegs=4280000 {x19 x21 x26}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23] +[x26]
+ mov x23, x26
; gcrRegs +[x23]
;; size=4 bbWeight=0.50 PerfScore 0.25
...
+8 (+0.77%) : 239213.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTestsDefault+CollectionTestsContextDefault:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
@@ -15,7 +15,7 @@
; V04 loc1 [V04,T02] ( 4, 12 ) ref -> x21 class-hnd exact <System.String>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-; V07 tmp2 [V07,T26] ( 2, 0 ) int -> x0
+; V07 tmp2 [V07,T25] ( 2, 0 ) int -> x0
; V08 tmp3 [V08,T23] ( 3, 0 ) ref -> x21
; V09 tmp4 [V09,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -68,8 +68,7 @@
; V57 PSPSym [V57,T20] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V58 cse0 [V58,T16] ( 4, 2 ) int -> x0 "CSE - moderate"
; V59 cse1 [V59,T17] ( 4, 2 ) int -> x0 "CSE - moderate"
-; V60 cse2 [V60,T25] ( 3, 0 ) ref -> x1 "CSE - aggressive"
-; V61 cse3 [V61,T13] ( 3, 5 ) long -> x20 "CSE - aggressive"
+; V60 cse2 [V60,T13] ( 3, 5 ) long -> x20 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -306,19 +305,19 @@ G_M57976_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cset x0, eq
tst w0, #255
bne G_M57976_IG20
+ movz x0, #8
+ movk x0, #155 LSL #16
+ movk x0, #1 LSL #32
movz x1, #8
movk x1, #155 LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=68 bbWeight=0 PerfScore 0.00
+ ;; size=76 bbWeight=0 PerfScore 0.00
G_M57976_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr w0, [fp, #0x34] // [V39 tmp34]
cmn w0, #1
@@ -485,7 +484,7 @@ G_M57976_IG33: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1036, prolog size 44, PerfScore 274.00, instruction count 259, allocated bytes for code 1036 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
+Total bytes of code 1044, prolog size 44, PerfScore 274.00, instruction count 261, allocated bytes for code 1044 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
; ============================================================
Unwind Info:
@@ -496,7 +495,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 247 (0x000f7) Actual length = 988 (0x0003dc)
+ Function Length : 249 (0x000f9) Actual length = 996 (0x0003e4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+2.02%) : 100890.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T20] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T26] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T27] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T23] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T29] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.46) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V103 cse3 [V103,T20] ( 12, 0 ) ref -> x1 multi-def "CSE - moderate"
;
; Lcl frame size = 40
@@ -409,19 +408,19 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG30
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG33
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG34
movz x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG38
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG43
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG44
movz x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_unix #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1588, prolog size 48, PerfScore 291.15, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.15, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 397 (0x0018d) Actual length = 1588 (0x000634)
+ Function Length : 405 (0x00195) Actual length = 1620 (0x000654)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
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
35
12
23
0
-488
+280
benchmarks.run_tiered.osx.arm64.checked.mch
0
0
0
0
-0
+0
coreclr_tests.run.osx.arm64.checked.mch
70
13
54
3
-104
+332
libraries.crossgen2.osx.arm64.checked.mch
0
0
0
0
-0
+0
libraries.pmi.osx.arm64.checked.mch
5
0
5
0
-0
+112
libraries_tests.run.osx.arm64.Release.mch
442
99
302
41
-1,092
+2,544
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
36
26
5
5
-124
+52
realworld.run.osx.arm64.checked.mch
0
0
0
0
-0
+0
588
150
389
49
-1,808
+3,320
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
benchmarks.run.osx.arm64.checked.mch
24,855
4
24,851
0 (0.00%)
0 (0.00%)
benchmarks.run_pgo.osx.arm64.checked.mch
84,589
48,412
36,177
84 (0.10%)
85 (0.10%)
benchmarks.run_tiered.osx.arm64.checked.mch
48,261
37,318
10,943
0 (0.00%)
0 (0.00%)
coreclr_tests.run.osx.arm64.checked.mch
585,893
357,177
228,716
326 (0.06%)
328 (0.06%)
libraries.crossgen2.osx.arm64.checked.mch
233,353
15
233,338
0 (0.00%)
0 (0.00%)
libraries.pmi.osx.arm64.checked.mch
314,713
18
314,695
0 (0.00%)
3 (0.00%)
libraries_tests.run.osx.arm64.Release.mch
637,357
466,371
170,986
2,509 (0.39%)
2,509 (0.39%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
302,467
21,558
280,909
6 (0.00%)
8 (0.00%)
realworld.run.osx.arm64.checked.mch
31,544
3
31,541
0 (0.00%)
0 (0.00%)
2,263,032
930,876
1,332,156
2,925 (0.13%)
2,933 (0.13%)
jit-analyze output
benchmarks.run_pgo.osx.arm64.checked.mch
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34569912 (overridden on cmd)
Total bytes of diff: 34569704 (overridden on cmd)
Total bytes of delta: -208 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-5104 : 37383.dasm (-100.00 % of base)
-5024 : 31955.dasm (-100.00 % of base)
-5024 : 68634.dasm (-100.00 % of base)
-5024 : 59348.dasm (-100.00 % of base)
-4356 : 58605.dasm (-100.00 % of base)
-4144 : 58660.dasm (-100.00 % of base)
-3888 : 60756.dasm (-100.00 % of base)
-3764 : 58662.dasm (-100.00 % of base)
-3128 : 37380.dasm (-100.00 % of base)
-3128 : 59345.dasm (-100.00 % of base)
-3128 : 31952.dasm (-100.00 % of base)
-2832 : 58665.dasm (-100.00 % of base)
-2200 : 27458.dasm (-100.00 % of base)
-2200 : 61286.dasm (-100.00 % of base)
-1928 : 37371.dasm (-100.00 % of base)
-1912 : 33895.dasm (-100.00 % of base)
-1908 : 67336.dasm (-100.00 % of base)
-1908 : 31900.dasm (-100.00 % of base)
-1884 : 60244.dasm (-100.00 % of base)
-1884 : 81979.dasm (-100.00 % of base)
35 total files with Code Size differences (35 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-5104 (-100.00 % of base) : 37383.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
-5024 (-100.00 % of base) : 31955.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
-5024 (-100.00 % of base) : 68634.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
-5024 (-100.00 % of base) : 59348.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
-4356 (-100.00 % of base) : 58605.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BinaryOperatorOverloadResolution(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this (Tier1)
-4144 (-100.00 % of base) : 58660.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,byref,ubyte):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
-3888 (-100.00 % of base) : 60756.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3764 (-100.00 % of base) : 58662.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
-3128 (-100.00 % of base) : 37380.dasm - System.Security.Cryptography.X509Certificates.AppleCertificatePal:EnsureCertData():this (Tier1)
-3128 (-100.00 % of base) : 59345.dasm - System.Security.Cryptography.X509Certificates.AppleCertificatePal:EnsureCertData():this (Tier1)
-3128 (-100.00 % of base) : 31952.dasm - System.Security.Cryptography.X509Certificates.AppleCertificatePal:EnsureCertData():this (Tier1)
-2832 (-100.00 % of base) : 58665.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitBuiltInConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
-2200 (-100.00 % of base) : 27458.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2200 (-100.00 % of base) : 61286.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-1928 (-100.00 % of base) : 37371.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1912 (-100.00 % of base) : 33895.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1908 (-100.00 % of base) : 67336.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1908 (-100.00 % of base) : 31900.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1884 (-100.00 % of base) : 60244.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
-1884 (-100.00 % of base) : 81979.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
Top method improvements (percentages):
-4356 (-100.00 % of base) : 58605.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BinaryOperatorOverloadResolution(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this (Tier1)
-4144 (-100.00 % of base) : 58660.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,byref,ubyte):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
-2832 (-100.00 % of base) : 58665.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitBuiltInConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
-3764 (-100.00 % of base) : 58662.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
-1692 (-100.00 % of base) : 77153.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-3888 (-100.00 % of base) : 60756.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-888 (-100.00 % of base) : 75306.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
-1576 (-100.00 % of base) : 75321.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-1908 (-100.00 % of base) : 67336.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1912 (-100.00 % of base) : 33895.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1928 (-100.00 % of base) : 37371.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1908 (-100.00 % of base) : 31900.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
-1392 (-100.00 % of base) : 33924.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
-1392 (-100.00 % of base) : 44348.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
-1388 (-100.00 % of base) : 31671.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
-1388 (-100.00 % of base) : 62160.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
-1400 (-100.00 % of base) : 84562.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
-1816 (-100.00 % of base) : 31610.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
-1820 (-100.00 % of base) : 33882.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
-1472 (-100.00 % of base) : 31613.dasm - System.Formats.Asn1.AsnWriter:WriteOctetStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte]):this (Tier1)
35 total methods with Code Size differences (35 improved, 0 regressed).
coreclr_tests.run.osx.arm64.checked.mch
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 485471332 (overridden on cmd)
Total bytes of diff: 485471560 (overridden on cmd)
Total bytes of delta: 228 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-7568 : 384979.dasm (-100.00 % of base)
-7568 : 382810.dasm (-100.00 % of base)
-2928 : 383655.dasm (-100.00 % of base)
-2776 : 387514.dasm (-100.00 % of base)
-2196 : 275155.dasm (-100.00 % of base)
-2168 : 261382.dasm (-100.00 % of base)
-2164 : 507318.dasm (-100.00 % of base)
-2060 : 249352.dasm (-100.00 % of base)
-2060 : 249358.dasm (-100.00 % of base)
-1952 : 382598.dasm (-100.00 % of base)
-1952 : 384923.dasm (-100.00 % of base)
-1824 : 485803.dasm (-100.00 % of base)
-1588 : 488213.dasm (-100.00 % of base)
-1524 : 260586.dasm (-100.00 % of base)
-1368 : 228205.dasm (-100.00 % of base)
-1348 : 1191.dasm (-100.00 % of base)
-1312 : 247572.dasm (-100.00 % of base)
-1312 : 168306.dasm (-100.00 % of base)
-1292 : 1913.dasm (-100.00 % of base)
-1284 : 1916.dasm (-100.00 % of base)
52 total files with Code Size differences (52 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-7568 (-100.00 % of base) : 384979.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
-7568 (-100.00 % of base) : 382810.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
-2928 (-100.00 % of base) : 383655.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
-2776 (-100.00 % of base) : 387514.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
-2196 (-100.00 % of base) : 275155.dasm - System.Text.RegularExpressions.RegexReplacement:ReplaceSimpleText(System.Text.RegularExpressions.Regex,System.String,System.String,int,int):System.String (Tier1)
-2168 (-100.00 % of base) : 261382.dasm - BinderTracingTests.HandlerInvocation:ToString():System.String:this (Tier1)
-2164 (-100.00 % of base) : 507318.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-2060 (-100.00 % of base) : 249352.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2060 (-100.00 % of base) : 249358.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1952 (-100.00 % of base) : 382598.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-1952 (-100.00 % of base) : 384923.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-1824 (-100.00 % of base) : 485803.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
-1588 (-100.00 % of base) : 488213.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1524 (-100.00 % of base) : 260586.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
-1368 (-100.00 % of base) : 228205.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (Instrumented Tier1)
-1348 (-100.00 % of base) : 1191.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
-1312 (-100.00 % of base) : 247572.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
-1312 (-100.00 % of base) : 168306.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1292 (-100.00 % of base) : 1913.dasm - System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this (Instrumented Tier1)
-1284 (-100.00 % of base) : 1885.dasm - System.Buffers.SharedArrayPool`1[int]:Return(int[],ubyte):this (Instrumented Tier1)
Top method improvements (percentages):
-2168 (-100.00 % of base) : 261382.dasm - BinderTracingTests.HandlerInvocation:ToString():System.String:this (Tier1)
-2164 (-100.00 % of base) : 507318.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-392 (-100.00 % of base) : 249231.dasm - Fourier:Run():double:this (Tier1)
-2776 (-100.00 % of base) : 387514.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
-2060 (-100.00 % of base) : 249352.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2060 (-100.00 % of base) : 249358.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1952 (-100.00 % of base) : 382598.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-1952 (-100.00 % of base) : 384923.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-2928 (-100.00 % of base) : 383655.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
-7568 (-100.00 % of base) : 384979.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
-7568 (-100.00 % of base) : 382810.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
-808 (-100.00 % of base) : 381894.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-376 (-100.00 % of base) : 300284.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
-476 (-100.00 % of base) : 249011.dasm - NumericSortRect:Run():double:this (Tier1)
-1824 (-100.00 % of base) : 485803.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
-332 (-100.00 % of base) : 296299.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-332 (-100.00 % of base) : 525747.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-1048 (-100.00 % of base) : 407272.dasm - System.Buffers.SharedArrayPool`1[byte]:Return(byte[],ubyte):this (FullOpts)
-1312 (-100.00 % of base) : 247572.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
-1284 (-100.00 % of base) : 1885.dasm - System.Buffers.SharedArrayPool`1[int]:Return(int[],ubyte):this (Instrumented Tier1)
libraries.pmi.osx.arm64.checked.mch
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 79954016 (overridden on cmd)
Total bytes of diff: 79954128 (overridden on cmd)
Total bytes of delta: 112 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1692 : 204429.dasm (-100.00 % of base)
-1584 : 204430.dasm (-100.00 % of base)
-940 : 301015.dasm (-100.00 % of base)
-940 : 308181.dasm (-100.00 % of base)
-940 : 309763.dasm (-100.00 % of base)
5 total files with Code Size differences (5 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1692 (-100.00 % of base) : 204429.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1584 (-100.00 % of base) : 204430.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-940 (-100.00 % of base) : 301015.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
-940 (-100.00 % of base) : 308181.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
-940 (-100.00 % of base) : 309763.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
Top method improvements (percentages):
-940 (-100.00 % of base) : 301015.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
-940 (-100.00 % of base) : 308181.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
-940 (-100.00 % of base) : 309763.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
-1692 (-100.00 % of base) : 204429.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1584 (-100.00 % of base) : 204430.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
5 total methods with Code Size differences (5 improved, 0 regressed).
libraries_tests.run.osx.arm64.Release.mch
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 312684004 (overridden on cmd)
Total bytes of diff: 312685456 (overridden on cmd)
Total bytes of delta: 1452 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-19724 : 57298.dasm (-100.00 % of base)
-19272 : 66126.dasm (-100.00 % of base)
-16872 : 57310.dasm (-100.00 % of base)
-11000 : 466890.dasm (-100.00 % of base)
-10908 : 476069.dasm (-100.00 % of base)
-9548 : 57335.dasm (-100.00 % of base)
-8192 : 57348.dasm (-100.00 % of base)
-7312 : 597566.dasm (-100.00 % of base)
-5856 : 489716.dasm (-100.00 % of base)
-5636 : 587992.dasm (-100.00 % of base)
-4968 : 393286.dasm (-100.00 % of base)
-4120 : 351036.dasm (-100.00 % of base)
-4028 : 57333.dasm (-100.00 % of base)
-3940 : 486058.dasm (-100.00 % of base)
-3856 : 466916.dasm (-100.00 % of base)
-3616 : 59913.dasm (-100.00 % of base)
-3584 : 637870.dasm (-100.00 % of base)
-3420 : 382878.dasm (-100.00 % of base)
-3324 : 488736.dasm (-100.00 % of base)
-3092 : 391005.dasm (-100.00 % of base)
94 total files with Code Size differences (94 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-19724 (-100.00 % of base) : 57298.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19272 (-100.00 % of base) : 66126.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-16872 (-100.00 % of base) : 57310.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-11000 (-100.00 % of base) : 466890.dasm - System.Numerics.BigIntegerCalculator:PowCore(System.Span`1[uint],int,System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint],System.Span`1[uint]) (Tier1)
-10908 (-100.00 % of base) : 476069.dasm - System.Numerics.BigIntegerCalculator:PowCore(System.Span`1[uint],int,System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint],System.Span`1[uint]) (Tier1)
-9548 (-100.00 % of base) : 57335.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-8192 (-100.00 % of base) : 57348.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-7312 (-100.00 % of base) : 597566.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-5856 (-100.00 % of base) : 489716.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockHash(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
-5636 (-100.00 % of base) : 587992.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
-4968 (-100.00 % of base) : 393286.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-4120 (-100.00 % of base) : 351036.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
-4028 (-100.00 % of base) : 57333.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
-3940 (-100.00 % of base) : 486058.dasm - System.IO.File:ReadAllBytesUnknownLength(Microsoft.Win32.SafeHandles.SafeFileHandle):ubyte[] (Tier1)
-3856 (-100.00 % of base) : 466916.dasm - System.Security.Cryptography.KeyFormatHelper:WriteEncryptedPkcs8(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Formats.Asn1.AsnWriter,System.Security.Cryptography.PbeParameters):System.Formats.Asn1.AsnWriter (Tier1)
-3616 (-100.00 % of base) : 59913.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)
-3584 (-100.00 % of base) : 637870.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
-3420 (-100.00 % of base) : 382878.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
-3324 (-100.00 % of base) : 488736.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequestPem(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.HashAlgorithmName,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (Tier1)
-3092 (-100.00 % of base) : 391005.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
Top method improvements (percentages):
-4968 (-100.00 % of base) : 393286.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-3092 (-100.00 % of base) : 391005.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-1964 (-100.00 % of base) : 475609.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:OpenAlgorithm(System.String):System.Security.Cryptography.SymmetricAlgorithm (Tier1)
-2020 (-100.00 % of base) : 608088.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
-972 (-100.00 % of base) : 88679.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier1)
-19724 (-100.00 % of base) : 57298.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19272 (-100.00 % of base) : 66126.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-16872 (-100.00 % of base) : 57310.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-9548 (-100.00 % of base) : 57335.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-8192 (-100.00 % of base) : 57348.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-4028 (-100.00 % of base) : 57333.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
-628 (-100.00 % of base) : 58186.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_DeclaredAccessibility():int:this (Tier1)
-276 (-100.00 % of base) : 90383.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
-7312 (-100.00 % of base) : 597566.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-580 (-100.00 % of base) : 159169.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
-3616 (-100.00 % of base) : 59913.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)
-5636 (-100.00 % of base) : 587992.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
-720 (-100.00 % of base) : 127240.dasm - Microsoft.Extensions.Primitives.ChangeToken+ChangeTokenRegistration`1[System.__Canon]:RegisterChangeTokenCallback(Microsoft.Extensions.Primitives.IChangeToken):this (Tier1)
-928 (-100.00 % of base) : 429963.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Tier1)
-928 (-100.00 % of base) : 526859.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 160787844 (overridden on cmd)
Total bytes of diff: 160787772 (overridden on cmd)
Total bytes of delta: -72 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-5352 : 36636.dasm (-100.00 % of base)
-2412 : 23862.dasm (-100.00 % of base)
-2260 : 210797.dasm (-100.00 % of base)
-2040 : 142803.dasm (-100.00 % of base)
-2000 : 298336.dasm (-100.00 % of base)
-1588 : 100890.dasm (-100.00 % of base)
-1544 : 151717.dasm (-100.00 % of base)
-1448 : 193736.dasm (-100.00 % of base)
-1364 : 195564.dasm (-100.00 % of base)
-1136 : 258870.dasm (-100.00 % of base)
-1120 : 193919.dasm (-100.00 % of base)
-1116 : 195518.dasm (-100.00 % of base)
-1104 : 119155.dasm (-100.00 % of base)
-1072 : 195545.dasm (-100.00 % of base)
-1068 : 193934.dasm (-100.00 % of base)
-1036 : 239213.dasm (-100.00 % of base)
-1028 : 9792.dasm (-100.00 % of base)
-1000 : 127198.dasm (-100.00 % of base)
-992 : 15381.dasm (-100.00 % of base)
-980 : 9840.dasm (-100.00 % of base)
36 total files with Code Size differences (36 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-5352 (-100.00 % of base) : 36636.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
-2412 (-100.00 % of base) : 23862.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
-2260 (-100.00 % of base) : 210797.dasm - System.Threading.Tests.PeriodicTimerTests+<WaitForNextTickAsync_TimerFires_ReturnsTrue>d__6:MoveNext():this (FullOpts)
-2040 (-100.00 % of base) : 142803.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
-2000 (-100.00 % of base) : 298336.dasm - System.Threading.Tests.BarrierTests+<RemovingWaitingParticipants>d__11:MoveNext():this (FullOpts)
-1588 (-100.00 % of base) : 100890.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1544 (-100.00 % of base) : 151717.dasm - System.Net.Tests.FileWebRequestTestBase+<BeginGetResponse_OnNonexistentFile_ShouldNotCrashApplication>d__8:MoveNext():this (FullOpts)
-1448 (-100.00 % of base) : 193736.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1364 (-100.00 % of base) : 195564.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1136 (-100.00 % of base) : 258870.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<>c__DisplayClass3_0+<<WriteAsyncEnumerable_CancellationToken_IsPassedToAsyncEnumerator>g__CreateEnumerable|0>d:MoveNext():this (FullOpts)
-1120 (-100.00 % of base) : 193919.dasm - XmlDictionaryWriterTest+MemoryStreamWithBlockAsync+<WriteAsync>d__2:MoveNext():this (FullOpts)
-1116 (-100.00 % of base) : 195518.dasm - XmlDictionaryWriterTest+AsyncMemoryStream+<WriteAsync>d__0:MoveNext():this (FullOpts)
-1104 (-100.00 % of base) : 119155.dasm - System.Globalization.Tests.CultureInfoAsync+<>c__DisplayClass1_0+<<TestCurrentCulturesWithAwait>g__MainAsync|0>d:MoveNext():this (FullOpts)
-1072 (-100.00 % of base) : 195545.dasm - XmlDictionaryWriterTest+MemoryStreamWithBlockAsync+<WriteAsync>d__2:MoveNext():this (FullOpts)
-1068 (-100.00 % of base) : 193934.dasm - XmlDictionaryWriterTest+AsyncMemoryStream+<WriteAsync>d__0:MoveNext():this (FullOpts)
-1036 (-100.00 % of base) : 239213.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
-1028 (-100.00 % of base) : 9792.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
-1000 (-100.00 % of base) : 127198.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
-992 (-100.00 % of base) : 15381.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Return(Microsoft.CodeAnalysis.Text.TextSpan[],ubyte):this (FullOpts)
-980 (-100.00 % of base) : 9840.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
Top method improvements (percentages):
-5352 (-100.00 % of base) : 36636.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
-796 (-100.00 % of base) : 41075.dasm - Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensionsTest+<>c+<<AddHttpClient_GetAwaiterAndResult_InSingleThreadedSynchronizationContext_ShouldNotHangs>b__44_3>d:MoveNext():this (FullOpts)
-940 (-100.00 % of base) : 15380.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Rent(int):Microsoft.CodeAnalysis.Text.TextSpan[]:this (FullOpts)
-992 (-100.00 % of base) : 15381.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Return(Microsoft.CodeAnalysis.Text.TextSpan[],ubyte):this (FullOpts)
-1028 (-100.00 % of base) : 9792.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
-980 (-100.00 % of base) : 9840.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
-164 (-100.00 % of base) : 82217.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
-644 (-100.00 % of base) : 82234.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-224 (-100.00 % of base) : 82299.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-668 (-100.00 % of base) : 81068.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-224 (-100.00 % of base) : 82205.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-1104 (-100.00 % of base) : 119155.dasm - System.Globalization.Tests.CultureInfoAsync+<>c__DisplayClass1_0+<<TestCurrentCulturesWithAwait>g__MainAsync|0>d:MoveNext():this (FullOpts)
-952 (-100.00 % of base) : 127616.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<>c__DisplayClass20_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
-1000 (-100.00 % of base) : 127198.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
-1544 (-100.00 % of base) : 151717.dasm - System.Net.Tests.FileWebRequestTestBase+<BeginGetResponse_OnNonexistentFile_ShouldNotCrashApplication>d__8:MoveNext():this (FullOpts)
-612 (-100.00 % of base) : 23789.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
-2040 (-100.00 % of base) : 142803.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
-136 (-100.00 % of base) : 143744.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
-620 (-100.00 % of base) : 263827.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<<RegressionTest_DisposingEnumeratorOnPendingMoveNextAsyncOperation>g__GetNumbersAsync|20_1>d:MoveNext():this (FullOpts)
-1136 (-100.00 % of base) : 258870.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<>c__DisplayClass3_0+<<WriteAsyncEnumerable_CancellationToken_IsPassedToAsyncEnumerator>g__CreateEnumerable|0>d:MoveNext():this (FullOpts)
36 total methods with Code Size differences (36 improved, 0 regressed).
Diffs are based on 2,318,296 contexts (931,543 MinOpts, 1,386,753 FullOpts).
MISSED contexts: base: 2,587 (0.11%), diff: 2,598 (0.11%)
Overall (-952 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch
47,215,296
+104
coreclr_tests.run.windows.arm64.checked.mch
495,322,244
-296
libraries.pmi.windows.arm64.checked.mch
79,562,252
+104
libraries_tests.run.windows.arm64.Release.mch
309,737,828
-728
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
169,000,724
-136
FullOpts (-952 bytes)
Collection
Base size (bytes)
Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch
30,964,912
+104
coreclr_tests.run.windows.arm64.checked.mch
156,230,716
-296
libraries.pmi.windows.arm64.checked.mch
79,442,268
+104
libraries_tests.run.windows.arm64.Release.mch
108,156,324
-728
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
155,863,260
-136
Example diffs
benchmarks.run_pgo.windows.arm64.checked.mch
-8 (-0.36%) : 42310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)@@ -22,16 +22,16 @@
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V12 tmp3 [V12,T52] ( 2, 0.37) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V13 tmp4 [V13,T71] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V13 tmp4 [V13,T70] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V14 tmp5 [V14,T50] ( 3, 0.39) ref -> x24
; V15 tmp6 [V15,T44] ( 2, 0.52) ref -> x26 class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V16 tmp7 [V16,T28] ( 4, 1.05) long -> x1 "spilling ret_expr"
-; V17 tmp8 [V17,T70] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V17 tmp8 [V17,T69] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V18 tmp9 [V18 ] ( 0, 0 ) long -> zero-ref "guarded devirt return temp"
; V19 tmp10 [V19,T29] ( 3, 1.05) ref -> x0 single-def "guarded devirt arg temp"
; V20 tmp11 [V20,T30] ( 3, 1.05) long -> x2 "guarded devirt arg temp"
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-; V22 tmp13 [V22,T74] ( 2, 0 ) int -> x0 "guarded devirt return temp"
+; V22 tmp13 [V22,T73] ( 2, 0 ) int -> x0 "guarded devirt return temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
;* V24 tmp15 [V24,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25,T00] ( 11, 15.49) ref -> x24 class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
; V29 tmp20 [V29,T23] ( 12, 2.21) byref -> registers "Inline stloc first use temp"
; V30 tmp21 [V30,T25] ( 4, 2.04) byref -> x24 "Inline stloc first use temp"
; V31 tmp22 [V31,T26] ( 4, 1.90) ref -> x25 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V32 tmp23 [V32,T64] ( 5, 0 ) int -> x27 "Inline stloc first use temp"
-; V33 tmp24 [V33,T62] ( 6, 0 ) int -> x28 "Inline stloc first use temp"
-; V34 tmp25 [V34,T65] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V35 tmp26 [V35,T67] ( 4, 0 ) int -> [fp+0x54] "Inline stloc first use temp"
+; V32 tmp23 [V32,T63] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
+; V33 tmp24 [V33,T62] ( 6, 0 ) int -> x27 "Inline stloc first use temp"
+; V34 tmp25 [V34,T64] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V35 tmp26 [V35,T66] ( 4, 0 ) int -> x28 "Inline stloc first use temp"
; V36 tmp27 [V36,T10] ( 5, 4.49) int -> x25 "Inline stloc first use temp"
; V37 tmp28 [V37,T07] ( 6, 5.80) int -> x0 "Inline stloc first use temp"
; V38 tmp29 [V38,T21] ( 3, 2.59) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
;* V50 tmp41 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V52 tmp43 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V53 tmp44 [V53,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V53 tmp44 [V53,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V64 tmp55 [V64,T66] ( 4, 0 ) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V65 tmp56 [V65,T68] ( 4, 0 ) int -> [fp+0x50] spill-single-def "Inlining Arg"
-; V66 tmp57 [V66,T76] ( 2, 0 ) long -> [fp+0x48] spill-single-def "Inlining Arg"
-; V67 tmp58 [V67,T69] ( 4, 0 ) int -> [fp+0x44] spill-single-def "Inline stloc first use temp"
+; V64 tmp55 [V64,T65] ( 4, 0 ) ref -> x27 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp56 [V65,T67] ( 4, 0 ) int -> x28 "Inlining Arg"
+; V66 tmp57 [V66,T75] ( 2, 0 ) long -> [fp+0x50] spill-single-def "Inlining Arg"
+; V67 tmp58 [V67,T68] ( 4, 0 ) int -> [fp+0x4C] spill-single-def "Inline stloc first use temp"
;* V68 tmp59 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V69 tmp60 [V69,T31] ( 2, 1.05) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V70 tmp61 [V70,T41] ( 4, 0.78) ref -> x24
; V71 tmp62 [V71,T45] ( 3, 0.51) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V73 tmp64 [V73,T77] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V73 tmp64 [V73,T76] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V74 tmp65 [V74,T22] ( 4, 2.29) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V75 tmp66 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V76 tmp67 [V76,T42] ( 2, 0.75) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -97,7 +97,7 @@
; V85 tmp76 [V85,T61] ( 2, 0.01) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V87 tmp78 [V87,T53] ( 2, 0.37) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V88 tmp79 [V88,T72] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V88 tmp79 [V88,T71] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V89 tmp80 [V89,T08] ( 3, 5.77) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
;* V90 tmp81 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -116,19 +116,18 @@
; V104 tmp95 [V104,T54] ( 4, 0.11) ref -> x8 "field V51.Item1 (fldOffset=0x0)" P-INDEP
; V105 tmp96 [V105,T58] ( 2, 0.07) long -> x9 "field V51.Item2 (fldOffset=0x8)" P-INDEP
; V106 tmp97 [V106,T59] ( 2, 0.07) int -> x10 "field V51.Item3 (fldOffset=0x10)" P-INDEP
-; V107 tmp98 [V107 ] ( 8, 7.69) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99 [V108,T78] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101 [V110,T79] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V107 tmp98 [V107 ] ( 8, 7.69) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99 [V108,T77] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101 [V110,T78] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V111 tmp102 [V111,T46] ( 2, 0.40) ref -> x24 single-def "argument with side effect"
; V112 tmp103 [V112,T47] ( 2, 0.40) ref -> x2 single-def "argument with side effect"
-; V113 tmp104 [V113,T73] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V113 tmp104 [V113,T72] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V114 tmp105 [V114,T13] ( 2, 3.85) ref -> x0 single-def "argument with side effect"
; V115 cse0 [V115,T36] ( 3, 0.78) ref -> x0 "CSE - conservative"
; V116 cse1 [V116,T17] ( 3, 3.21) int -> x5 hoist "CSE - aggressive"
; V117 cse2 [V117,T20] ( 8, 2.88) ref -> x1 multi-def "CSE - moderate"
-; V118 cse3 [V118,T63] ( 6, 0 ) long -> registers multi-def "CSE - conservative"
-; V119 rat0 [V119,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
+; V118 rat0 [V118,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 96
@@ -140,18 +139,19 @@ G_M61086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp x25, x26, [sp, #0xA0]
stp x27, x28, [sp, #0xB0]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x40]
+ str xzr, [x9, #0x50]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
; gcrRegs +[x19]
mov x21, x2
mov w22, w3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.50
G_M61086_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09: ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
;; size=24 bbWeight=0 PerfScore 0.00
G_M61086_IG10: ; bbWeight=0, nogc, extend
ldp x0, x1, [fp, #0x58]
- stp x0, x1, [fp, #0x28]
+ stp x0, x1, [fp, #0x30]
ldr x0, [fp, #0x68]
- str x0, [fp, #0x38]
+ str x0, [fp, #0x40]
;; size=16 bbWeight=0 PerfScore 0.00
G_M61086_IG11: ; bbWeight=0, isz, extend
mov x0, x25
; gcrRegs +[x0]
- add x1, fp, #40 // [V107 tmp98]
- movz x26, #0xD1FFAB1E // code for <unknown method>
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- mov x11, x26
+ add x1, fp, #48 // [V107 tmp98]
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w27, w0
- ldr x28, [x24, #0x08]
- ; gcrRegs +[x28]
- ldr w1, [x28, #0x08]
- str w1, [fp, #0x50] // [V65 tmp56]
- ldr x2, [x24, #0x30]
- str x2, [fp, #0x48] // [V66 tmp57]
+ sxtw w26, w0
+ ldr x27, [x24, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x27, #0x08]
+ ldr x1, [x24, #0x30]
+ str x1, [fp, #0x50] // [V66 tmp57]
mov w0, #1
- movz x3, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- mov w0, w27
- ldr x2, [fp, #0x48] // [V66 tmp57]
- mul x0, x2, x0
+ mov w0, w26
+ ldr x1, [fp, #0x50] // [V66 tmp57]
+ mul x0, x1, x0
lsr x0, x0, #32
add x0, x0, #1
- ldr w1, [fp, #0x50] // [V65 tmp56]
- mov w2, w1
- mul x0, x0, x2
- lsr x2, x0, #32
- str w2, [fp, #0x44] // [V67 tmp58]
- cmp w1, #0
+ mov w1, w28
+ mul x0, x0, x1
+ lsr x1, x0, #32
+ str w1, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, #0
beq G_M61086_IG54
- udiv w0, w27, w1
- msub w0, w0, w1, w27
- cmp w0, w2
+ udiv w0, w26, w28
+ msub w0, w0, w28, w26
+ cmp w0, w1
cset x0, eq
- movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- ldr w0, [x28, #0x08]
- ldr w2, [fp, #0x44] // [V67 tmp58]
- cmp w2, w0
+ ldr w0, [x27, #0x08]
+ ldr w28, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, w0
bhs G_M61086_IG53
- add x0, x28, #16
+ add x0, x27, #16
; byrRegs +[x0]
- ldr w28, [x0, w2, UXTW #2]
- ; gcrRegs -[x28]
+ ldr w27, [x0, w28, UXTW #2]
+ ; gcrRegs -[x27]
ldr x24, [x24, #0x10]
- mov w3, wzr
- sub w28, w28, #1
+ mov w28, wzr
+ sub w27, w27, #1
b G_M61086_IG55
- ;; size=204 bbWeight=0 PerfScore 0.00
+ ;; size=192 bbWeight=0 PerfScore 0.00
G_M61086_IG12: ; bbWeight=0.95, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28: ; bbWeight=0.96, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
ldr x0, [x19, #0x90]
; gcrRegs +[x0]
ldrsb wzr, [x0]
- stp x20, x21, [fp, #0x28] // [V107 tmp98], [V107 tmp98+0x08]
- str w22, [fp, #0x38] // [V107 tmp98+0x10]
- add x1, fp, #40 // [V107 tmp98]
+ stp x20, x21, [fp, #0x30] // [V107 tmp98], [V107 tmp98+0x08]
+ str w22, [fp, #0x40] // [V107 tmp98+0x10]
+ add x1, fp, #48 // [V107 tmp98]
mov x2, x24
; gcrRegs +[x2]
...
-8 (-0.36%) : 39639.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)@@ -22,16 +22,16 @@
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V11 tmp2 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V12 tmp3 [V12,T50] ( 2, 0.37) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V13 tmp4 [V13,T70] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V13 tmp4 [V13,T69] ( 2, 0 ) ref -> x24 class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V14 tmp5 [V14,T48] ( 3, 0.42) ref -> x24
; V15 tmp6 [V15,T45] ( 2, 0.53) ref -> x26 class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
; V16 tmp7 [V16,T28] ( 4, 1.05) long -> x1 "spilling ret_expr"
-; V17 tmp8 [V17,T69] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V17 tmp8 [V17,T68] ( 3, 0 ) ref -> x27 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V18 tmp9 [V18 ] ( 0, 0 ) long -> zero-ref "guarded devirt return temp"
; V19 tmp10 [V19,T29] ( 3, 1.05) ref -> x0 single-def "guarded devirt arg temp"
; V20 tmp11 [V20,T30] ( 3, 1.05) long -> x2 "guarded devirt arg temp"
;* V21 tmp12 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-; V22 tmp13 [V22,T74] ( 2, 0 ) int -> x0 "guarded devirt return temp"
+; V22 tmp13 [V22,T73] ( 2, 0 ) int -> x0 "guarded devirt return temp"
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
;* V24 tmp15 [V24,T32] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V25 tmp16 [V25,T00] ( 11, 15.59) ref -> x24 class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
; V29 tmp20 [V29,T23] ( 12, 2.15) byref -> registers "Inline stloc first use temp"
; V30 tmp21 [V30,T25] ( 4, 2.03) byref -> x24 "Inline stloc first use temp"
; V31 tmp22 [V31,T26] ( 4, 1.92) ref -> x25 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V32 tmp23 [V32,T63] ( 5, 0 ) int -> x27 "Inline stloc first use temp"
-; V33 tmp24 [V33,T61] ( 6, 0 ) int -> x28 "Inline stloc first use temp"
-; V34 tmp25 [V34,T64] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V35 tmp26 [V35,T66] ( 4, 0 ) int -> [fp+0x54] "Inline stloc first use temp"
+; V32 tmp23 [V32,T62] ( 5, 0 ) int -> x26 "Inline stloc first use temp"
+; V33 tmp24 [V33,T61] ( 6, 0 ) int -> x27 "Inline stloc first use temp"
+; V34 tmp25 [V34,T63] ( 4, 0 ) ref -> x24 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V35 tmp26 [V35,T65] ( 4, 0 ) int -> x28 "Inline stloc first use temp"
; V36 tmp27 [V36,T10] ( 5, 4.52) int -> x25 "Inline stloc first use temp"
; V37 tmp28 [V37,T08] ( 6, 5.84) int -> x0 "Inline stloc first use temp"
; V38 tmp29 [V38,T21] ( 3, 2.60) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
;* V50 tmp41 [V50 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V51 tmp42 [V51 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
;* V52 tmp43 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V53 tmp44 [V53,T75] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V53 tmp44 [V53,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V56 tmp47 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V64 tmp55 [V64,T65] ( 4, 0 ) ref -> x28 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V65 tmp56 [V65,T67] ( 4, 0 ) int -> [fp+0x50] spill-single-def "Inlining Arg"
-; V66 tmp57 [V66,T76] ( 2, 0 ) long -> [fp+0x48] spill-single-def "Inlining Arg"
-; V67 tmp58 [V67,T68] ( 4, 0 ) int -> [fp+0x44] spill-single-def "Inline stloc first use temp"
+; V64 tmp55 [V64,T64] ( 4, 0 ) ref -> x27 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp56 [V65,T66] ( 4, 0 ) int -> x28 "Inlining Arg"
+; V66 tmp57 [V66,T75] ( 2, 0 ) long -> [fp+0x50] spill-single-def "Inlining Arg"
+; V67 tmp58 [V67,T67] ( 4, 0 ) int -> [fp+0x4C] spill-single-def "Inline stloc first use temp"
;* V68 tmp59 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V69 tmp60 [V69,T31] ( 2, 1.05) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V70 tmp61 [V70,T40] ( 4, 0.81) ref -> x24
; V71 tmp62 [V71,T44] ( 3, 0.56) ref -> x24 class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V72 tmp63 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V73 tmp64 [V73,T77] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
+; V73 tmp64 [V73,T76] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V74 tmp65 [V74,T22] ( 4, 2.35) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V75 tmp66 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V76 tmp67 [V76,T42] ( 2, 0.73) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -94,10 +94,10 @@
; V82 tmp73 [V82,T49] ( 2, 0.42) ubyte -> x0 "Inline return value spill temp"
; V83 tmp74 [V83,T27] ( 3, 1.25) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V84 tmp75 [V84 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V85 tmp76 [V85,T71] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V85 tmp76 [V85,T70] ( 2, 0 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V86 tmp77 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V87 tmp78 [V87,T51] ( 2, 0.37) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-; V88 tmp79 [V88,T72] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+; V88 tmp79 [V88,T71] ( 2, 0 ) ref -> x2 class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V89 tmp80 [V89,T07] ( 3, 5.85) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
;* V90 tmp81 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -116,19 +116,18 @@
; V104 tmp95 [V104,T54] ( 4, 0.07) ref -> x8 "field V51.Item1 (fldOffset=0x0)" P-INDEP
; V105 tmp96 [V105,T58] ( 2, 0.05) long -> x9 "field V51.Item2 (fldOffset=0x8)" P-INDEP
; V106 tmp97 [V106,T59] ( 2, 0.05) int -> x10 "field V51.Item3 (fldOffset=0x10)" P-INDEP
-; V107 tmp98 [V107 ] ( 8, 7.80) struct (24) [fp+0x28] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99 [V108,T78] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x10] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101 [V110,T79] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V107 tmp98 [V107 ] ( 8, 7.80) struct (24) [fp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99 [V108,T77] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V109 tmp100 [V109 ] ( 2, 0 ) struct (24) [fp+0x18] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101 [V110,T78] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V111 tmp102 [V111,T52] ( 2, 0.36) ref -> x24 single-def "argument with side effect"
; V112 tmp103 [V112,T53] ( 2, 0.36) ref -> x2 single-def "argument with side effect"
-; V113 tmp104 [V113,T73] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
+; V113 tmp104 [V113,T72] ( 2, 0 ) ref -> x0 single-def "argument with side effect"
; V114 tmp105 [V114,T13] ( 2, 3.90) ref -> x0 single-def "argument with side effect"
; V115 cse0 [V115,T41] ( 3, 0.79) ref -> x0 "CSE - conservative"
; V116 cse1 [V116,T17] ( 3, 3.24) int -> x5 hoist "CSE - aggressive"
; V117 cse2 [V117,T19] ( 8, 2.92) ref -> x1 multi-def "CSE - moderate"
-; V118 cse3 [V118,T62] ( 6, 0 ) long -> registers multi-def "CSE - conservative"
-; V119 rat0 [V119,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
+; V118 rat0 [V118,T06] ( 3, 6 ) int -> x26 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 96
@@ -140,18 +139,19 @@ G_M61086_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp x25, x26, [sp, #0xA0]
stp x27, x28, [sp, #0xB0]
mov fp, sp
- add x9, fp, #16
+ add x9, fp, #24
movi v16.16b, #0
stp q16, q16, [x9]
stp q16, q16, [x9, #0x20]
- stp q16, q16, [x9, #0x40]
+ stp xzr, xzr, [x9, #0x40]
+ str xzr, [x9, #0x50]
mov x20, x0
; gcrRegs +[x20]
mov x19, x1
; gcrRegs +[x19]
mov x21, x2
mov w22, w3
- ;; size=64 bbWeight=1 PerfScore 12.50
+ ;; size=68 bbWeight=1 PerfScore 13.50
G_M61086_IG02: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09: ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
;; size=24 bbWeight=0 PerfScore 0.00
G_M61086_IG10: ; bbWeight=0, nogc, extend
ldp x0, x1, [fp, #0x58]
- stp x0, x1, [fp, #0x28]
+ stp x0, x1, [fp, #0x30]
ldr x0, [fp, #0x68]
- str x0, [fp, #0x38]
+ str x0, [fp, #0x40]
;; size=16 bbWeight=0 PerfScore 0.00
G_M61086_IG11: ; bbWeight=0, isz, extend
mov x0, x25
; gcrRegs +[x0]
- add x1, fp, #40 // [V107 tmp98]
- movz x26, #0xD1FFAB1E // code for <unknown method>
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- mov x11, x26
+ add x1, fp, #48 // [V107 tmp98]
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
ldr x2, [x11]
blr x2
; gcrRegs -[x0]
; gcr arg pop 0
- sxtw w27, w0
- ldr x28, [x24, #0x08]
- ; gcrRegs +[x28]
- ldr w1, [x28, #0x08]
- str w1, [fp, #0x50] // [V65 tmp56]
- ldr x2, [x24, #0x30]
- str x2, [fp, #0x48] // [V66 tmp57]
+ sxtw w26, w0
+ ldr x27, [x24, #0x08]
+ ; gcrRegs +[x27]
+ ldr w28, [x27, #0x08]
+ ldr x1, [x24, #0x30]
+ str x1, [fp, #0x50] // [V66 tmp57]
mov w0, #1
- movz x3, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- mov w0, w27
- ldr x2, [fp, #0x48] // [V66 tmp57]
- mul x0, x2, x0
+ mov w0, w26
+ ldr x1, [fp, #0x50] // [V66 tmp57]
+ mul x0, x1, x0
lsr x0, x0, #32
add x0, x0, #1
- ldr w1, [fp, #0x50] // [V65 tmp56]
- mov w2, w1
- mul x0, x0, x2
- lsr x2, x0, #32
- str w2, [fp, #0x44] // [V67 tmp58]
- cmp w1, #0
+ mov w1, w28
+ mul x0, x0, x1
+ lsr x1, x0, #32
+ str w1, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, #0
beq G_M61086_IG53
- udiv w0, w27, w1
- msub w0, w0, w1, w27
- cmp w0, w2
+ udiv w0, w26, w28
+ msub w0, w0, w28, w26
+ cmp w0, w1
cset x0, eq
- movz x1, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
+ movz x2, #0xD1FFAB1E // code for System.Diagnostics.Debug:Assert(ubyte)
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x2, [x2]
+ blr x2
; gcr arg pop 0
- ldr w0, [x28, #0x08]
- ldr w2, [fp, #0x44] // [V67 tmp58]
- cmp w2, w0
+ ldr w0, [x27, #0x08]
+ ldr w28, [fp, #0x4C] // [V67 tmp58]
+ cmp w28, w0
bhs G_M61086_IG52
- add x0, x28, #16
+ add x0, x27, #16
; byrRegs +[x0]
- ldr w28, [x0, w2, UXTW #2]
- ; gcrRegs -[x28]
+ ldr w27, [x0, w28, UXTW #2]
+ ; gcrRegs -[x27]
ldr x24, [x24, #0x10]
- mov w3, wzr
- sub w28, w28, #1
+ mov w28, wzr
+ sub w27, w27, #1
b G_M61086_IG54
- ;; size=204 bbWeight=0 PerfScore 0.00
+ ;; size=192 bbWeight=0 PerfScore 0.00
G_M61086_IG12: ; bbWeight=0.96, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x25]
; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28: ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
ldr x0, [x19, #0x90]
; gcrRegs +[x0]
ldrsb wzr, [x0]
- stp x20, x21, [fp, #0x28] // [V107 tmp98], [V107 tmp98+0x08]
- str w22, [fp, #0x38] // [V107 tmp98+0x10]
- add x1, fp, #40 // [V107 tmp98]
+ stp x20, x21, [fp, #0x30] // [V107 tmp98], [V107 tmp98+0x08]
...
+16 (+0.38%) : 92042.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -30,13 +30,13 @@
;* V17 tmp6 [V17 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V20 tmp9 [V20,T119] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V20 tmp9 [V20,T118] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V21 tmp10 [V21,T77] ( 3, 599.34) ref -> x0 class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
;* V22 tmp11 [V22 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
-; V23 tmp12 [V23,T114] ( 3, 0 ) long -> x1 "spilling helperCall"
+; V23 tmp12 [V23,T113] ( 3, 0 ) long -> x1 "spilling helperCall"
;* V24 tmp13 [V24 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V25 tmp14 [V25 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V26 tmp15 [V26,T115] ( 3, 0 ) long -> x1 "spilling helperCall"
+; V26 tmp15 [V26,T114] ( 3, 0 ) long -> x1 "spilling helperCall"
; V27 tmp16 [V27,T95] ( 3, 199.98) ref -> x1 "guarded devirt return temp"
; V28 tmp17 [V28,T76] ( 5, 599.94) ref -> x0 "guarded devirt arg temp"
; V29 tmp18 [V29,T85] ( 3, 399.96) int -> x1 "guarded devirt arg temp"
@@ -221,7 +221,7 @@
;* V208 tmp197 [V208 ] ( 0, 0 ) ref -> zero-ref
; V209 tmp198 [V209,T69] ( 2, 798.00) ref -> x15
; V210 tmp199 [V210,T02] ( 8, 22742.99) int -> x26 "Inline stloc first use temp"
-; V211 tmp200 [V211,T111] ( 3, 0 ) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V211 tmp200 [V211,T110] ( 3, 0 ) ref -> x24 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V212 tmp201 [V212 ] ( 0, 0 ) ref -> zero-ref
; V213 tmp202 [V213,T70] ( 2, 798.00) ref -> x15
;* V214 tmp203 [V214 ] ( 0, 0 ) ref -> zero-ref
@@ -241,11 +241,11 @@
;* V228 tmp217 [V228 ] ( 0, 0 ) ref -> zero-ref
; V229 tmp218 [V229,T72] ( 2, 798.00) ref -> x15
; V230 tmp219 [V230,T03] ( 8, 22742.99) int -> x22 "Inline stloc first use temp"
-; V231 tmp220 [V231,T112] ( 3, 0 ) ref -> x20 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V231 tmp220 [V231,T111] ( 3, 0 ) ref -> x20 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V232 tmp221 [V232 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V233 tmp222 [V233 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V234 tmp223 [V234 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V235 tmp224 [V235,T113] ( 3, 0 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V235 tmp224 [V235,T112] ( 3, 0 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V236 tmp225 [V236 ] ( 0, 0 ) ref -> zero-ref "field V22._obj (fldOffset=0x0)" P-DEP
;* V237 tmp226 [V237 ] ( 0, 0 ) short -> zero-ref "field V22._token (fldOffset=0x8)" P-DEP
;* V238 tmp227 [V238 ] ( 0, 0 ) ubyte -> zero-ref "field V22._continueOnCapturedContext (fldOffset=0xa)" P-DEP
@@ -266,7 +266,7 @@
;* V253 tmp242 [V253 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V254 tmp243 [V254 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V255 tmp244 [V255,T10] ( 2, 12767.99) ref -> x0 "argument with side effect"
-; V256 tmp245 [V256,T120] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V256 tmp245 [V256,T119] ( 2, 0 ) ref -> x1 "argument with side effect"
;* V257 tmp246 [V257 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V258 tmp247 [V258 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V259 tmp248 [V259,T32] ( 3, 2394.00) ref -> x0 "arr expr"
@@ -277,7 +277,7 @@
; V264 tmp253 [V264,T80] ( 3, 598.50) ref -> x1 "arr expr"
; V265 tmp254 [V265,T05] ( 3, 19151.99) ref -> x14 "arr expr"
; V266 tmp255 [V266,T11] ( 2, 12767.99) ref -> x0 "argument with side effect"
-; V267 tmp256 [V267,T121] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V267 tmp256 [V267,T120] ( 2, 0 ) ref -> x1 "argument with side effect"
;* V268 tmp257 [V268 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V269 tmp258 [V269 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V270 PSPSym [V270,T108] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
@@ -296,10 +296,9 @@
; V283 cse12 [V283,T37] ( 8, 1695.75) byref -> x23 "CSE - moderate"
; V284 cse13 [V284,T82] ( 3, 598.50) int -> x4 "CSE - conservative"
; V285 cse14 [V285,T60] ( 3, 1197.00) byref -> x0 "CSE - moderate"
-; V286 cse15 [V286,T110] ( 18, 0 ) ref -> x1 multi-def "CSE - conservative"
-; V287 rat0 [V287,T116] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
-; V288 rat1 [V288,T117] ( 3, 0 ) long -> x0 "spilling expr"
-; V289 rat2 [V289,T118] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V286 rat0 [V286,T115] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V287 rat1 [V287,T116] ( 3, 0 ) long -> x0 "spilling expr"
+; V288 rat2 [V288,T117] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 32
@@ -540,20 +539,20 @@ G_M48189_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M48189_IG18: ; bbWeight=0, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=800000 {x23}, byref
; gcrRegs +[x20 x24 x26-x27]
; byrRegs +[x23]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M48189_IG65
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M48189_IG19: ; bbWeight=0, gcrefRegs=3100000 {x20 x24 x25}, byrefRegs=800000 {x23}, byref
; gcrRegs -[x26-x27] +[x25]
movz x0, #0xD1FFAB1E
@@ -593,20 +592,20 @@ G_M48189_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=28 bbWeight=0 PerfScore 0.00
G_M48189_IG22: ; bbWeight=0, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref
; gcrRegs +[x20 x22]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M48189_IG48
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M48189_IG23: ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=800000 {x23}, byref
; gcrRegs -[x22] +[x24]
; byrRegs +[x23]
@@ -2050,7 +2049,7 @@ G_M48189_IG102: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=32 bbWeight=0 PerfScore 0.00
-; Total bytes of code 4164, prolog size 48, PerfScore 1567486085.21, instruction count 1041, allocated bytes for code 4164 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 4180, prolog size 48, PerfScore 1567486085.21, instruction count 1045, allocated bytes for code 4180 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -2061,7 +2060,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 1011 (0x003f3) Actual length = 4044 (0x000fcc)
+ Function Length : 1015 (0x003f7) Actual length = 4060 (0x000fdc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+1.25%) : 95909.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -30,13 +30,13 @@
;* V17 tmp6 [V17 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V20 tmp9 [V20,T35] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V20 tmp9 [V20,T34] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V21 tmp10 [V21,T10] ( 3, 599.39) ref -> x0 class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
;* V22 tmp11 [V22 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
; V23 tmp12 [V23,T22] ( 3, 48.36) long -> x1 "spilling helperCall"
;* V24 tmp13 [V24 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V25 tmp14 [V25 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V26 tmp15 [V26,T32] ( 3, 0 ) long -> x1 "spilling helperCall"
+; V26 tmp15 [V26,T31] ( 3, 0 ) long -> x1 "spilling helperCall"
; V27 tmp16 [V27,T16] ( 3, 200.00) ref -> x1 "guarded devirt return temp"
; V28 tmp17 [V28,T09] ( 5, 599.99) ref -> x0 "guarded devirt arg temp"
; V29 tmp18 [V29,T12] ( 3, 399.99) int -> x1 "guarded devirt arg temp"
@@ -48,7 +48,7 @@
;* V35 tmp24 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V36 tmp25 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <<unknown class>>
;* V37 tmp26 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-;* V38 tmp27 [V38,T38] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V38 tmp27 [V38,T37] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V40 tmp29 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V41 tmp30 [V41 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
@@ -108,7 +108,7 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V96 tmp85 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V97 tmp86 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V98 tmp87 [V98,T36] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V98 tmp87 [V98,T35] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V99 tmp88 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V100 tmp89 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V101 tmp90 [V101,T24] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -149,7 +149,7 @@
;* V136 tmp125 [V136 ] ( 0, 0 ) ref -> zero-ref single-def
;* V137 tmp126 [V137 ] ( 0, 0 ) ref -> zero-ref single-def
;* V138 tmp127 [V138,T23] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V139 tmp128 [V139,T30] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V139 tmp128 [V139,T29] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V140 tmp129 [V140 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V141 tmp130 [V141 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V142 tmp131 [V142 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -219,7 +219,7 @@
;* V206 tmp195 [V206 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V207 tmp196 [V207 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V208 tmp197 [V208 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V209 tmp198 [V209,T31] ( 3, 0 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V209 tmp198 [V209,T30] ( 3, 0 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V210 tmp199 [V210 ] ( 0, 0 ) ref -> zero-ref "field V22._obj (fldOffset=0x0)" P-DEP
;* V211 tmp200 [V211 ] ( 0, 0 ) short -> zero-ref "field V22._token (fldOffset=0x8)" P-DEP
;* V212 tmp201 [V212 ] ( 0, 0 ) ubyte -> zero-ref "field V22._continueOnCapturedContext (fldOffset=0xa)" P-DEP
@@ -242,17 +242,16 @@
;* V229 tmp218 [V229 ] ( 0, 0 ) ref -> zero-ref "field V178._source (fldOffset=0x0)" P-INDEP
;* V230 tmp219 [V230 ] ( 0, 0 ) ref -> zero-ref "field V180._source (fldOffset=0x0)" P-INDEP
;* V231 tmp220 [V231,T25] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V232 tmp221 [V232,T37] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V232 tmp221 [V232,T36] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V233 tmp222 [V233 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V234 tmp223 [V234 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V235 PSPSym [V235,T28] ( 1, 1 ) long -> [fp+0x10] do-not-enreg[V] "PSPSym"
; V236 cse0 [V236,T20] ( 3, 100.83) int -> x21 "CSE - moderate"
; V237 cse1 [V237,T01] ( 3,5.3e+09) int -> x2 "CSE - aggressive"
; V238 cse2 [V238,T17] ( 2, 199.17) byref -> x14 "CSE - moderate"
-; V239 cse3 [V239,T29] ( 6, 0 ) ref -> x1 multi-def "CSE - conservative"
-; V240 rat0 [V240,T11] ( 3, 417.69) long -> x1 "fgMakeTemp is creating a new local variable"
-; V241 rat1 [V241,T33] ( 3, 0 ) long -> x0 "spilling expr"
-; V242 rat2 [V242,T34] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V239 rat0 [V239,T11] ( 3, 417.69) long -> x1 "fgMakeTemp is creating a new local variable"
+; V240 rat1 [V240,T32] ( 3, 0 ) long -> x0 "spilling expr"
+; V241 rat2 [V241,T33] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
@@ -637,36 +636,36 @@ G_M48189_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M48189_IG27: ; bbWeight=0, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref
; gcrRegs +[x20 x23]
; byrRegs -[x13-x14]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M48189_IG21
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M48189_IG28: ; bbWeight=0, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] +[x22]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M48189_IG15
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M48189_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22]
mov x0, x19
@@ -782,7 +781,7 @@ G_M48189_IG36: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1280, prolog size 36, PerfScore 10671562539.70, instruction count 320, allocated bytes for code 1280 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 1296, prolog size 36, PerfScore 10671562539.70, instruction count 324, allocated bytes for code 1296 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -793,7 +792,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 294 (0x00126) Actual length = 1176 (0x000498)
+ Function Length : 298 (0x0012a) Actual length = 1192 (0x0004a8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+1.34%) : 92760.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -27,7 +27,7 @@
;* V14 tmp4 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
;* V15 tmp5 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V17 tmp7 [V17,T33] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V17 tmp7 [V17,T32] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V18 tmp8 [V18,T08] ( 3, 595.34) ref -> x3 class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[ubyte[]]>
;* V19 tmp9 [V19 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
;* V20 tmp10 [V20 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -132,7 +132,7 @@
;* V119 tmp109 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V120 tmp110 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <<unknown class>>
;* V121 tmp111 [V121 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-;* V122 tmp112 [V122,T34] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V122 tmp112 [V122,T33] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
;* V123 tmp113 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V124 tmp114 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V125 tmp115 [V125 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
@@ -193,7 +193,7 @@
;* V180 tmp170 [V180 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V181 tmp171 [V181 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V182 tmp172 [V182 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V183 tmp173 [V183,T35] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V183 tmp173 [V183,T34] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V184 tmp174 [V184 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V185 tmp175 [V185 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V186 tmp176 [V186,T19] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -234,7 +234,7 @@
;* V221 tmp211 [V221 ] ( 0, 0 ) ref -> zero-ref single-def
;* V222 tmp212 [V222 ] ( 0, 0 ) ref -> zero-ref single-def
;* V223 tmp213 [V223,T17] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V224 tmp214 [V224,T31] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V224 tmp214 [V224,T30] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V225 tmp215 [V225 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V226 tmp216 [V226 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V227 tmp217 [V227 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -313,7 +313,7 @@
;* V300 tmp290 [V300 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V301 tmp291 [V301 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V302 tmp292 [V302 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V303 tmp293 [V303,T36] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V303 tmp293 [V303,T35] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V304 tmp294 [V304 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V305 tmp295 [V305 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V306 tmp296 [V306,T20] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -354,7 +354,7 @@
;* V341 tmp331 [V341 ] ( 0, 0 ) ref -> zero-ref single-def
;* V342 tmp332 [V342 ] ( 0, 0 ) ref -> zero-ref single-def
;* V343 tmp333 [V343,T18] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V344 tmp334 [V344,T32] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V344 tmp334 [V344,T31] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V345 tmp335 [V345 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V346 tmp336 [V346 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V347 tmp337 [V347 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -447,7 +447,7 @@
;* V434 tmp424 [V434 ] ( 0, 0 ) ref -> zero-ref "field V349._source (fldOffset=0x0)" P-INDEP
; V435 tmp425 [V435,T29] ( 2, 0.37) ref -> x1 single-def "field V375.m_task (fldOffset=0x0)" P-INDEP
;* V436 tmp426 [V436,T21] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V437 tmp427 [V437,T37] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V437 tmp427 [V437,T36] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V438 tmp428 [V438 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V439 tmp429 [V439 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V440 tmp430 [V440 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
@@ -455,15 +455,14 @@
;* V442 tmp432 [V442 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V443 tmp433 [V443 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V444 tmp434 [V444,T22] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V445 tmp435 [V445,T38] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V445 tmp435 [V445,T37] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V446 tmp436 [V446 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V447 tmp437 [V447 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V448 tmp438 [V448,T10] ( 2, 396.89) ref -> x1 "argument with side effect"
-; V449 tmp439 [V449,T39] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V449 tmp439 [V449,T38] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V450 PSPSym [V450,T28] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[V] "PSPSym"
; V451 cse0 [V451,T15] ( 3, 101.01) int -> x20 "CSE - aggressive"
; V452 cse1 [V452,T14] ( 2, 198.45) byref -> x14 "CSE - aggressive"
-; V453 cse2 [V453,T30] ( 6, 0 ) ref -> x1 multi-def "CSE - conservative"
;
; Lcl frame size = 16
@@ -855,36 +854,36 @@ G_M6180_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=80 bbWeight=0 PerfScore 0.00
G_M6180_IG26: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x22]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M6180_IG21
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M6180_IG27: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] +[x21]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M6180_IG14
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M6180_IG28: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19 x21]
ldr x1, [fp, #0xD0] // [V08 loc7]
@@ -975,7 +974,7 @@ G_M6180_IG33: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1196, prolog size 32, PerfScore 31106.25, instruction count 299, allocated bytes for code 1196 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
+Total bytes of code 1212, prolog size 32, PerfScore 31106.25, instruction count 303, allocated bytes for code 1212 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
@@ -986,7 +985,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 275 (0x00113) Actual length = 1100 (0x00044c)
+ Function Length : 279 (0x00117) Actual length = 1116 (0x00045c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+1.42%) : 31646.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet
1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String@@ -19,17 +19,17 @@
; V07 loc2 [V07,T18] ( 5, 3 ) ref -> x0 class-hnd <System.Buffers.SearchValues`1[System.String]>
; V08 loc3 [V08,T19] ( 3, 2.96) int -> x2
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T44] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V11 tmp2 [V11,T45] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V10 tmp1 [V10,T43] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V11 tmp2 [V11,T44] ( 4, 0 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-; V14 tmp5 [V14,T47] ( 3, 0 ) ref -> x20
-; V15 tmp6 [V15,T46] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V14 tmp5 [V14,T46] ( 3, 0 ) ref -> x20
+; V15 tmp6 [V15,T45] ( 4, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V16 tmp7 [V16,T28] ( 6, 1.10) ref -> x0 class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V18 tmp9 [V18,T48] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V19 tmp10 [V19,T49] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V20 tmp11 [V20,T50] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V18 tmp9 [V18,T47] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V19 tmp10 [V19,T48] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V20 tmp11 [V20,T49] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V21 tmp12 [V21,T04] ( 10, 10.95) ref -> x23 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V23 tmp14 [V23,T09] ( 16, 6.10) int -> registers ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
;* V72 tmp63 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp66 [V75,T54] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V76 tmp67 [V76,T56] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
-; V77 tmp68 [V77,T58] ( 2, 0 ) int -> x0 "Inline return value spill temp"
+; V75 tmp66 [V75,T53] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V76 tmp67 [V76,T55] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
+; V77 tmp68 [V77,T57] ( 2, 0 ) int -> x0 "Inline return value spill temp"
; V78 tmp69 [V78 ] ( 2, 0 ) ushort -> [fp+0x24] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V79 tmp70 [V79 ] ( 2, 0 ) ushort -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V80 tmp71 [V80 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -107,8 +107,8 @@
;* V95 tmp86 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V96 tmp87 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V97 tmp88 [V97 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V98 tmp89 [V98,T59] ( 2, 0 ) ushort -> x1 "Inlining Arg"
-; V99 tmp90 [V99,T60] ( 2, 0 ) ushort -> x2 "Inlining Arg"
+; V98 tmp89 [V98,T58] ( 2, 0 ) ushort -> x1 "Inlining Arg"
+; V99 tmp90 [V99,T59] ( 2, 0 ) ushort -> x2 "Inlining Arg"
;* V100 tmp91 [V100 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V101 tmp92 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V102 tmp93 [V102 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -123,17 +123,17 @@
;* V111 tmp102 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V112 tmp103 [V112,T37] ( 6, 0.82) ref -> x0 class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V113 tmp104 [V113 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V114 tmp105 [V114,T51] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V115 tmp106 [V115,T52] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V116 tmp107 [V116,T53] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V114 tmp105 [V114,T50] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V115 tmp106 [V115,T51] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V116 tmp107 [V116,T52] ( 3, 0 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V117 tmp108 [V117,T22] ( 3, 2.47) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V118 tmp109 [V118 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V119 tmp110 [V119 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V120 tmp111 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V121 tmp112 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V122 tmp113 [V122,T55] ( 3, 0 ) int -> x22 "Inlining Arg"
-; V123 tmp114 [V123,T57] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
-; V124 tmp115 [V124,T61] ( 2, 0 ) int -> x0 "Inline return value spill temp"
+; V122 tmp113 [V122,T54] ( 3, 0 ) int -> x22 "Inlining Arg"
+; V123 tmp114 [V123,T56] ( 2, 0 ) byref -> x23 single-def "Inlining Arg"
+; V124 tmp115 [V124,T60] ( 2, 0 ) int -> x0 "Inline return value spill temp"
; V125 tmp116 [V125 ] ( 2, 0 ) ushort -> [fp+0x1C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V126 tmp117 [V126 ] ( 2, 0 ) ushort -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V127 tmp118 [V127 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -154,8 +154,8 @@
;* V142 tmp133 [V142 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V143 tmp134 [V143 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V145 tmp136 [V145,T62] ( 2, 0 ) ushort -> x1 "Inlining Arg"
-; V146 tmp137 [V146,T63] ( 2, 0 ) ushort -> x2 "Inlining Arg"
+; V145 tmp136 [V145,T61] ( 2, 0 ) ushort -> x1 "Inlining Arg"
+; V146 tmp137 [V146,T62] ( 2, 0 ) ushort -> x2 "Inlining Arg"
;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V148 tmp139 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V149 tmp140 [V149 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -238,7 +238,6 @@
;* V226 tmp217 [V226 ] ( 0, 0 ) byref -> zero-ref "field V158._reference (fldOffset=0x0)" P-INDEP
;* V227 tmp218 [V227 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
; V228 cse0 [V228,T08] ( 13, 6.28) int -> x22 "CSE - aggressive"
-; V229 cse1 [V229,T43] ( 9, 0 ) ref -> x1 multi-def "CSE - conservative"
;
; Lcl frame size = 24
@@ -471,37 +470,37 @@ G_M46798_IG34: ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
cbnz w24, G_M46798_IG36
;; size=4 bbWeight=0.55 PerfScore 0.55
G_M46798_IG35: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=44 bbWeight=0 PerfScore 0.00
G_M46798_IG36: ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
cmp w24, w25
bne G_M46798_IG38
;; size=8 bbWeight=0.55 PerfScore 0.82
G_M46798_IG37: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=44 bbWeight=0 PerfScore 0.00
G_M46798_IG38: ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
cmp w25, #0
ccmp w25, w24, z, gt
@@ -815,20 +814,20 @@ G_M46798_IG55: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
;; size=4 bbWeight=0 PerfScore 0.00
G_M46798_IG56: ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20 x23]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
b G_M46798_IG42
- ;; size=40 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M46798_IG57: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x23]
movz x0, #0xD1FFAB1E
@@ -945,7 +944,7 @@ G_M46798_IG60: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
RWD00 dd 7F7FFFFFh ; 3.40282e+38
-; Total bytes of code 1692, prolog size 36, PerfScore 177.75, instruction count 423, allocated bytes for code 1692 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1716, prolog size 36, PerfScore 177.75, instruction count 429, allocated bytes for code 1716 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
; ============================================================
Unwind Info:
@@ -956,7 +955,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 423 (0x001a7) Actual length = 1692 (0x00069c)
+ Function Length : 429 (0x001ad) Actual length = 1716 (0x0006b4)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.windows.arm64.checked.mch
-48 (-16.67%) : 537704.dasm - AA:reset() (FullOpts)
@@ -10,19 +10,22 @@
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V01 tmp1 [V01,T00] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <AA>
-; V02 tmp2 [V02,T04] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <<unknown class>>
-; V03 tmp3 [V03,T01] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <AA>
-; V04 tmp4 [V04,T05] ( 2, 4 ) ref -> x19 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V02 tmp2 [V02,T04] ( 2, 4 ) ref -> x21 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V03 tmp3 [V03,T01] ( 3, 6 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <AA>
+; V04 tmp4 [V04,T05] ( 2, 4 ) ref -> x20 class-hnd single-def "impAppendStmt" <<unknown class>>
; V05 tmp5 [V05,T02] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <QQ>
; V06 tmp6 [V06,T03] ( 3, 6 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <QQ>
+; V07 cse0 [V07,T06] ( 3, 3 ) long -> x20 "CSE - unknown"
+;* V08 cse1 [V08,T07] ( 0, 0 ) long -> zero-ref "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M27028_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
mov fp, sp
- ;; size=12 bbWeight=1 PerfScore 2.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M27028_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -36,14 +39,14 @@ G_M27028_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr w0, [x0]
- tbz w0, #0, G_M27028_IG06
+ tbz w0, #0, G_M27028_IG05
;; size=40 bbWeight=1 PerfScore 8.50
-G_M27028_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x20, [x0]
- ; gcrRegs +[x20]
+G_M27028_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x20, #0xD1FFAB1E LSL #16
+ movk x20, #0xD1FFAB1E LSL #32
+ ldr x21, [x20]
+ ; gcrRegs +[x21]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -58,6 +61,37 @@ G_M27028_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
+ mov x0, x21
+ ; gcrRegs +[x0]
+ mov x2, x19
+ ; gcrRegs +[x2]
+ mov x1, #100
+ bl CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[x0 x2 x19 x21]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ mov x19, x0
+ ; gcrRegs +[x19]
+ ldr x20, [x20, #0x08]
+ ; gcrRegs +[x20]
+ movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ mov w14, #2
+ str w14, [x0, #0x08]
+ add x14, x19, #16
+ ; byrRegs +[x14]
+ mov x15, x0
+ ; gcrRegs +[x15]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x0 x15]
+ ; byrRegs -[x14]
mov x0, x20
; gcrRegs +[x0]
mov x2, x19
@@ -65,54 +99,14 @@ G_M27028_IG03: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
mov x1, #100
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2 x19-x20]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr w0, [x0]
- tbz w0, #0, G_M27028_IG07
- ;; size=108 bbWeight=1 PerfScore 21.50
-G_M27028_IG04: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x19, [x0]
- ; gcrRegs +[x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov w14, #2
- str w14, [x0, #0x08]
- add x14, x20, #16
- ; byrRegs +[x14]
- mov x15, x0
- ; gcrRegs +[x15]
- bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x0 x15]
- ; byrRegs -[x14]
- mov x0, x19
- ; gcrRegs +[x0]
- mov x2, x20
- ; gcrRegs +[x2]
- mov x1, #100
- bl CORINFO_HELP_ARRADDR_ST
- ; gcrRegs -[x0 x2 x19-x20]
- ;; size=68 bbWeight=1 PerfScore 13.00
-G_M27028_IG05: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x20
+ ;; size=144 bbWeight=1 PerfScore 27.50
+G_M27028_IG04: ; bbWeight=1, epilog, nogc, extend
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
+ ldp fp, lr, [sp], #0x30
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
-G_M27028_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=16 bbWeight=1 PerfScore 5.00
+G_M27028_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -121,17 +115,8 @@ G_M27028_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b G_M27028_IG03
;; size=24 bbWeight=0 PerfScore 0.00
-G_M27028_IG07: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19] +[x20]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov w1, #1
- bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- b G_M27028_IG04
- ;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 288, prolog size 12, PerfScore 48.50, instruction count 72, allocated bytes for code 288 (MethodHash=b512966b) for method AA:reset() (FullOpts)
+Total bytes of code 240, prolog size 16, PerfScore 44.50, instruction count 60, allocated bytes for code 240 (MethodHash=b512966b) for method AA:reset() (FullOpts)
; ============================================================
Unwind Info:
@@ -142,7 +127,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 72 (0x00048) Actual length = 288 (0x000120)
+ Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -150,10 +135,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
- 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
- E4 end
- E4 end
+ D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
+ 85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
-32 (-4.44%) : 382628.dasm - System.Resources.ResourceFallbackManager+
@@ -13,30 +13,30 @@
; V01 loc0 [V01,T12] ( 3, 3 ) int -> x14
; V02 loc1 [V02,T10] ( 7, 3 ) ref -> x20 class-hnd exact single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 6, 9.83) ref -> x22 class-hnd exact "impAppendStmt" <System.String>
+; V04 tmp1 [V04,T01] ( 6, 9.83) ref -> x21 class-hnd exact "impAppendStmt" <System.String>
; V05 tmp2 [V05,T03] ( 7, 6.17) ref -> x3 "guarded devirt arg temp"
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
; V07 tmp4 [V07,T04] ( 6, 4.91) ref -> x4 "guarded devirt return temp"
; V08 tmp5 [V08,T02] ( 8, 6.17) ref -> x0 "guarded devirt arg temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
-; V10 tmp7 [V10,T05] ( 2, 4 ) ref -> x22 class-hnd exact "dup spill" <System.String>
-; V11 tmp8 [V11,T08] ( 4, 3.04) ref -> x22
+; V10 tmp7 [V10,T05] ( 2, 4 ) ref -> x21 class-hnd exact "dup spill" <System.String>
+; V11 tmp8 [V11,T08] ( 4, 3.04) ref -> x21
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref
-; V14 tmp11 [V14,T16] ( 7, 0.17) ref -> x22
+; V14 tmp11 [V14,T16] ( 6, 0.26) ref -> x21
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V17 tmp14 [V17,T18] ( 2, 0.17) ref -> x22 class-hnd exact "dup spill" <System.String>
-; V18 tmp15 [V18,T20] ( 5, 0.13) ref -> x22
+; V17 tmp14 [V17,T20] ( 2, 0.17) ref -> x21 class-hnd exact "dup spill" <System.String>
+; V18 tmp15 [V18,T18] ( 5, 0.22) ref -> x21
; V19 tmp16 [V19,T06] ( 2, 4 ) ref -> x4 class-hnd exact "dup spill" <System.String>
; V20 tmp17 [V20,T09] ( 4, 3.04) ref -> x4
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref
-; V23 tmp20 [V23,T17] ( 7, 0.17) ref -> x4
+; V23 tmp20 [V23,T17] ( 6, 0.26) ref -> x4
;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V25 tmp22 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V26 tmp23 [V26,T19] ( 2, 0.17) ref -> x4 class-hnd exact "dup spill" <System.String>
-; V27 tmp24 [V27,T21] ( 5, 0.13) ref -> x4
+; V26 tmp23 [V26,T21] ( 2, 0.17) ref -> x4 class-hnd exact "dup spill" <System.String>
+; V27 tmp24 [V27,T19] ( 5, 0.22) ref -> x4
; V28 tmp25 [V28,T15] ( 2, 2 ) ubyte -> x0 "Inline return value spill temp"
; V29 tmp26 [V29,T07] ( 2, 4 ) byref -> x0 "impAppendStmt"
;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -44,18 +44,17 @@
;* V32 tmp29 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp30 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp31 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V35 tmp32 [V35,T23] ( 3, 0 ) ref -> x0 "argument with side effect"
+; V35 tmp32 [V35,T22] ( 3, 0 ) ref -> x0 "argument with side effect"
; V36 cse0 [V36,T11] ( 3, 3 ) ref -> x0 "CSE - aggressive"
-; V37 cse1 [V37,T22] ( 8, 0 ) ref -> registers multi-def "CSE - moderate"
-; V38 cse2 [V38,T14] ( 3, 2.91) int -> x2 "CSE - aggressive"
-; V39 cse3 [V39,T13] ( 3, 3 ) long -> x21 "CSE - aggressive"
+; V37 cse1 [V37,T14] ( 3, 2.91) int -> x2 "CSE - aggressive"
+; V38 cse2 [V38,T13] ( 3, 3 ) long -> x2 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M61925_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
@@ -65,7 +64,7 @@ G_M61925_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ldr x20, [x19, #0x10]
; gcrRegs +[x20]
cmp w14, #3
- bhi G_M61925_IG25
+ bhi G_M61925_IG23
mov w14, w14
adr x15, [@RWD00]
ldr w15, [x15, x14, LSL #2]
@@ -88,14 +87,14 @@ G_M61925_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
G_M61925_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
- cbz x0, G_M61925_IG19
+ cbz x0, G_M61925_IG17
ldr x3, [x19, #0x18]
; gcrRegs +[x3]
ldr x14, [x3]
- movz x21, #0xD1FFAB1E
- movk x21, #0xD1FFAB1E LSL #16
- movk x21, #0xD1FFAB1E LSL #32
- cmp x14, x21
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ cmp x14, x2
beq G_M61925_IG06
;; size=36 bbWeight=1 PerfScore 13.00
G_M61925_IG05: ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref
@@ -107,42 +106,45 @@ G_M61925_IG05: ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
ldr x1, [x1, #0x38]
blr x1
; gcrRegs -[x3]
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x21, x0
+ ; gcrRegs +[x21]
ldr x0, [x20, #0x10]
- b G_M61925_IG10
+ b G_M61925_IG09
;; size=32 bbWeight=0 PerfScore 0.00
G_M61925_IG06: ; bbWeight=1, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x20 x22] +[x3]
- ldr x22, [x3, #0x48]
- ; gcrRegs +[x22]
- cbnz x22, G_M61925_IG09
+ ; gcrRegs -[x20-x21] +[x3]
+ ldr x21, [x3, #0x48]
+ ; gcrRegs +[x21]
+ cbnz x21, G_M61925_IG08
;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG07: ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
+G_M61925_IG07: ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x21]
ldr x14, [x3, #0x30]
; gcrRegs +[x14]
- ldr x22, [x14, #0x18]
- ; gcrRegs +[x22]
- cbz x22, G_M61925_IG27
- cbz x22, G_M61925_IG28
- ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG08: ; bbWeight=0.04, gcrefRegs=480009 {x0 x3 x19 x22}, byrefRegs=0000 {}, byref
+ ldr x21, [x14, #0x18]
+ ; gcrRegs +[x21]
+ movz x14, #8
; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x21, #0
+ csel x21, x21, x14, ne
+ cmp x21, #0
+ csel x21, x21, x14, ne
add x14, x3, #72
; byrRegs +[x14]
- mov x15, x22
+ mov x15, x21
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x3 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG09: ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG08: ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x14, [x0]
- cmp x14, x21
- beq G_M61925_IG12
+ cmp x14, x2
+ beq G_M61925_IG11
;; size=12 bbWeight=1 PerfScore 4.50
-G_M61925_IG10: ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+G_M61925_IG09: ; bbWeight=0, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
@@ -150,29 +152,32 @@ G_M61925_IG10: ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=000
mov x4, x0
; gcrRegs +[x4]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M61925_IG11: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG10: ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- cmp x22, x4
- bne G_M61925_IG18
- b G_M61925_IG17
+ cmp x21, x4
+ bne G_M61925_IG16
+ b G_M61925_IG15
;; size=12 bbWeight=1 PerfScore 2.50
-G_M61925_IG12: ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11: ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x4] +[x0]
ldr x4, [x0, #0x48]
; gcrRegs +[x4]
- cbnz x4, G_M61925_IG15
+ cbnz x4, G_M61925_IG13
;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG13: ; bbWeight=0.04, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG12: ; bbWeight=0.04, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x4]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x4, [x14, #0x18]
; gcrRegs +[x4]
- cbz x4, G_M61925_IG29
- cbz x4, G_M61925_IG30
- ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG14: ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRegs=0000 {}, byref
+ movz x14, #8
; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x4, #0
+ csel x4, x4, x14, ne
+ cmp x4, #0
+ csel x4, x4, x14, ne
add x14, x0, #72
; byrRegs +[x14]
mov x15, x4
@@ -180,12 +185,12 @@ G_M61925_IG14: ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRe
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG15: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref
- b G_M61925_IG11
+ ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG13: ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref
+ b G_M61925_IG10
;; size=4 bbWeight=1 PerfScore 1.00
-G_M61925_IG16: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
- add x0, x22, #12
+G_M61925_IG14: ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+ add x0, x21, #12
; byrRegs +[x0]
lsl w2, w2, #1
mov w2, w2
@@ -196,25 +201,25 @@ G_M61925_IG16: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=000
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ; gcrRegs -[x4 x22]
+ ; gcrRegs -[x4 x21]
; byrRegs -[x0-x1]
- cbz w0, G_M61925_IG19
- b G_M61925_IG22
+ cbz w0, G_M61925_IG17
+ b G_M61925_IG20
;; size=44 bbWeight=1 PerfScore 10.00
-G_M61925_IG17: ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- b G_M61925_IG22
+G_M61925_IG15: ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M61925_IG20
;; size=4 bbWeight=0.04 PerfScore 0.04
-G_M61925_IG18: ; bbWeight=0.96, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x4 x22]
- cbz x22, G_M61925_IG19
- cbz x4, G_M61925_IG19
- ldr w2, [x22, #0x08]
+G_M61925_IG16: ; bbWeight=0.96, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x4 x21]
+ cbz x21, G_M61925_IG17
+ cbz x4, G_M61925_IG17
+ ldr w2, [x21, #0x08]
...
-32 (-4.44%) : 383288.dasm - System.Resources.ResourceFallbackManager+
@@ -13,30 +13,30 @@
; V01 loc0 [V01,T12] ( 3, 3 ) int -> x14
; V02 loc1 [V02,T10] ( 7, 3 ) ref -> x20 class-hnd exact single-def <<unknown class>>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T01] ( 6, 9.83) ref -> x22 class-hnd exact "impAppendStmt" <System.String>
+; V04 tmp1 [V04,T01] ( 6, 9.83) ref -> x21 class-hnd exact "impAppendStmt" <System.String>
; V05 tmp2 [V05,T03] ( 7, 6.17) ref -> x3 "guarded devirt arg temp"
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
; V07 tmp4 [V07,T04] ( 6, 4.91) ref -> x4 "guarded devirt return temp"
; V08 tmp5 [V08,T02] ( 8, 6.17) ref -> x0 "guarded devirt arg temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
-; V10 tmp7 [V10,T05] ( 2, 4 ) ref -> x22 class-hnd exact "dup spill" <System.String>
-; V11 tmp8 [V11,T08] ( 4, 3.04) ref -> x22
+; V10 tmp7 [V10,T05] ( 2, 4 ) ref -> x21 class-hnd exact "dup spill" <System.String>
+; V11 tmp8 [V11,T08] ( 4, 3.04) ref -> x21
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref
-; V14 tmp11 [V14,T16] ( 7, 0.17) ref -> x22
+; V14 tmp11 [V14,T16] ( 6, 0.26) ref -> x21
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V17 tmp14 [V17,T18] ( 2, 0.17) ref -> x22 class-hnd exact "dup spill" <System.String>
-; V18 tmp15 [V18,T20] ( 5, 0.13) ref -> x22
+; V17 tmp14 [V17,T20] ( 2, 0.17) ref -> x21 class-hnd exact "dup spill" <System.String>
+; V18 tmp15 [V18,T18] ( 5, 0.22) ref -> x21
; V19 tmp16 [V19,T06] ( 2, 4 ) ref -> x4 class-hnd exact "dup spill" <System.String>
; V20 tmp17 [V20,T09] ( 4, 3.04) ref -> x4
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref
-; V23 tmp20 [V23,T17] ( 7, 0.17) ref -> x4
+; V23 tmp20 [V23,T17] ( 6, 0.26) ref -> x4
;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
;* V25 tmp22 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V26 tmp23 [V26,T19] ( 2, 0.17) ref -> x4 class-hnd exact "dup spill" <System.String>
-; V27 tmp24 [V27,T21] ( 5, 0.13) ref -> x4
+; V26 tmp23 [V26,T21] ( 2, 0.17) ref -> x4 class-hnd exact "dup spill" <System.String>
+; V27 tmp24 [V27,T19] ( 5, 0.22) ref -> x4
; V28 tmp25 [V28,T15] ( 2, 2 ) ubyte -> x0 "Inline return value spill temp"
; V29 tmp26 [V29,T07] ( 2, 4 ) byref -> x0 "impAppendStmt"
;* V30 tmp27 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -44,18 +44,17 @@
;* V32 tmp29 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp30 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp31 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V35 tmp32 [V35,T23] ( 3, 0 ) ref -> x0 "argument with side effect"
+; V35 tmp32 [V35,T22] ( 3, 0 ) ref -> x0 "argument with side effect"
; V36 cse0 [V36,T11] ( 3, 3 ) ref -> x0 "CSE - aggressive"
-; V37 cse1 [V37,T22] ( 8, 0 ) ref -> registers multi-def "CSE - moderate"
-; V38 cse2 [V38,T14] ( 3, 2.91) int -> x2 "CSE - aggressive"
-; V39 cse3 [V39,T13] ( 3, 3 ) long -> x21 "CSE - aggressive"
+; V37 cse1 [V37,T14] ( 3, 2.91) int -> x2 "CSE - aggressive"
+; V38 cse2 [V38,T13] ( 3, 3 ) long -> x2 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M61925_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
@@ -65,7 +64,7 @@ G_M61925_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
ldr x20, [x19, #0x10]
; gcrRegs +[x20]
cmp w14, #3
- bhi G_M61925_IG25
+ bhi G_M61925_IG23
mov w14, w14
adr x15, [@RWD00]
ldr w15, [x15, x14, LSL #2]
@@ -88,14 +87,14 @@ G_M61925_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
G_M61925_IG04: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
- cbz x0, G_M61925_IG19
+ cbz x0, G_M61925_IG17
ldr x3, [x19, #0x18]
; gcrRegs +[x3]
ldr x14, [x3]
- movz x21, #0xD1FFAB1E
- movk x21, #0xD1FFAB1E LSL #16
- movk x21, #0xD1FFAB1E LSL #32
- cmp x14, x21
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ cmp x14, x2
beq G_M61925_IG06
;; size=36 bbWeight=1 PerfScore 13.00
G_M61925_IG05: ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref
@@ -107,42 +106,45 @@ G_M61925_IG05: ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
ldr x1, [x1, #0x38]
blr x1
; gcrRegs -[x3]
- mov x22, x0
- ; gcrRegs +[x22]
+ mov x21, x0
+ ; gcrRegs +[x21]
ldr x0, [x20, #0x10]
- b G_M61925_IG10
+ b G_M61925_IG09
;; size=32 bbWeight=0 PerfScore 0.00
G_M61925_IG06: ; bbWeight=1, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x20 x22] +[x3]
- ldr x22, [x3, #0x48]
- ; gcrRegs +[x22]
- cbnz x22, G_M61925_IG09
+ ; gcrRegs -[x20-x21] +[x3]
+ ldr x21, [x3, #0x48]
+ ; gcrRegs +[x21]
+ cbnz x21, G_M61925_IG08
;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG07: ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
+G_M61925_IG07: ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x21]
ldr x14, [x3, #0x30]
; gcrRegs +[x14]
- ldr x22, [x14, #0x18]
- ; gcrRegs +[x22]
- cbz x22, G_M61925_IG27
- cbz x22, G_M61925_IG28
- ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG08: ; bbWeight=0.04, gcrefRegs=480009 {x0 x3 x19 x22}, byrefRegs=0000 {}, byref
+ ldr x21, [x14, #0x18]
+ ; gcrRegs +[x21]
+ movz x14, #8
; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x21, #0
+ csel x21, x21, x14, ne
+ cmp x21, #0
+ csel x21, x21, x14, ne
add x14, x3, #72
; byrRegs +[x14]
- mov x15, x22
+ mov x15, x21
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x3 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG09: ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+ ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG08: ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
ldr x14, [x0]
- cmp x14, x21
- beq G_M61925_IG12
+ cmp x14, x2
+ beq G_M61925_IG11
;; size=12 bbWeight=1 PerfScore 4.50
-G_M61925_IG10: ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+G_M61925_IG09: ; bbWeight=0, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
ldr x1, [x0]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
@@ -150,29 +152,32 @@ G_M61925_IG10: ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=000
mov x4, x0
; gcrRegs +[x4]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M61925_IG11: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG10: ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- cmp x22, x4
- bne G_M61925_IG18
- b G_M61925_IG17
+ cmp x21, x4
+ bne G_M61925_IG16
+ b G_M61925_IG15
;; size=12 bbWeight=1 PerfScore 2.50
-G_M61925_IG12: ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11: ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x4] +[x0]
ldr x4, [x0, #0x48]
; gcrRegs +[x4]
- cbnz x4, G_M61925_IG15
+ cbnz x4, G_M61925_IG13
;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG13: ; bbWeight=0.04, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG12: ; bbWeight=0.04, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x4]
ldr x14, [x0, #0x30]
; gcrRegs +[x14]
ldr x4, [x14, #0x18]
; gcrRegs +[x4]
- cbz x4, G_M61925_IG29
- cbz x4, G_M61925_IG30
- ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG14: ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRegs=0000 {}, byref
+ movz x14, #8
; gcrRegs -[x14]
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
+ cmp x4, #0
+ csel x4, x4, x14, ne
+ cmp x4, #0
+ csel x4, x4, x14, ne
add x14, x0, #72
; byrRegs +[x14]
mov x15, x4
@@ -180,12 +185,12 @@ G_M61925_IG14: ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRe
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG15: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref
- b G_M61925_IG11
+ ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG13: ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref
+ b G_M61925_IG10
;; size=4 bbWeight=1 PerfScore 1.00
-G_M61925_IG16: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
- add x0, x22, #12
+G_M61925_IG14: ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+ add x0, x21, #12
; byrRegs +[x0]
lsl w2, w2, #1
mov w2, w2
@@ -196,25 +201,25 @@ G_M61925_IG16: ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=000
movk x3, #0xD1FFAB1E LSL #32
ldr x3, [x3]
blr x3
- ; gcrRegs -[x4 x22]
+ ; gcrRegs -[x4 x21]
; byrRegs -[x0-x1]
- cbz w0, G_M61925_IG19
- b G_M61925_IG22
+ cbz w0, G_M61925_IG17
+ b G_M61925_IG20
;; size=44 bbWeight=1 PerfScore 10.00
-G_M61925_IG17: ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- b G_M61925_IG22
+G_M61925_IG15: ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ b G_M61925_IG20
;; size=4 bbWeight=0.04 PerfScore 0.04
-G_M61925_IG18: ; bbWeight=0.96, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x4 x22]
- cbz x22, G_M61925_IG19
- cbz x4, G_M61925_IG19
- ldr w2, [x22, #0x08]
+G_M61925_IG16: ; bbWeight=0.96, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x4 x21]
+ cbz x21, G_M61925_IG17
+ cbz x4, G_M61925_IG17
+ ldr w2, [x21, #0x08]
...
+8 (+2.11%) : 300329.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
@@ -8,25 +8,23 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 10, 3.65) ref -> x20 this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T04] ( 10, 3.65) ref -> x20 this class-hnd single-def <System.RuntimeType>
; V01 arg1 [V01,T02] ( 11, 11.33) ref -> x19 class-hnd single-def <System.Type>
-; V02 loc0 [V02,T07] ( 4, 0.60) ref -> x0 class-hnd exact <System.RuntimeType>
-; V03 loc1 [V03,T08] ( 3, 0 ) ref -> x0 class-hnd single-def <System.Type[]>
-; V04 loc2 [V04,T01] ( 5, 18.80) int -> x20
+; V02 loc0 [V02,T06] ( 4, 0.60) ref -> x0 class-hnd exact <System.RuntimeType>
+; V03 loc1 [V03,T03] ( 4, 10 ) ref -> x20 class-hnd single-def <System.Type[]>
+; V04 loc2 [V04,T01] ( 5, 18.80) int -> x21
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T06] ( 2, 0.96) ref -> x0 single-def "CASTCLASS eval op1"
+; V06 tmp1 [V06,T05] ( 2, 0.96) ref -> x0 single-def "CASTCLASS eval op1"
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Single return block return value"
; V09 tmp4 [V09,T00] ( 3, 33.60) ref -> x0 "argument with side effect"
-; V10 cse0 [V10,T04] ( 2, 5.60) byref -> x22 hoist "CSE - aggressive"
-; V11 cse1 [V11,T05] ( 3, 4.40) int -> x21 "CSE - aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M35267_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x30]!
- stp x19, x20, [sp, #0x10]
- stp x21, x22, [sp, #0x20]
+ stp x19, x20, [sp, #0x18]
+ str x21, [sp, #0x28]
mov fp, sp
mov x20, x0
; gcrRegs +[x20]
@@ -63,8 +61,8 @@ G_M35267_IG06: ; bbWeight=0, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
; gcrRegs +[x1]
;; size=4 bbWeight=0 PerfScore 0.00
G_M35267_IG07: ; bbWeight=0, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
b <unknown method>
;; size=16 bbWeight=0 PerfScore 0.00
@@ -114,8 +112,8 @@ G_M35267_IG09: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr x2, [x2]
;; size=80 bbWeight=0 PerfScore 0.00
G_M35267_IG10: ; bbWeight=0, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
br x2
;; size=16 bbWeight=0 PerfScore 0.00
@@ -135,17 +133,20 @@ G_M35267_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
ldr x1, [x1]
blr x1
; gcrRegs -[x20]
- mov w20, wzr
- ldr w21, [x0, #0x08]
- cmp w21, #0
- ble G_M35267_IG14
- add x22, x0, #16
- ; byrRegs +[x22]
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
+ mov x20, x0
+ ; gcrRegs +[x20]
+ mov w21, wzr
+ ldr w0, [x20, #0x08]
; gcrRegs -[x0]
- ldr x0, [x22, w20, UXTW #3]
+ cmp w0, #0
+ ble G_M35267_IG14
+ ;; size=60 bbWeight=0 PerfScore 0.00
+G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ add x0, x20, #16
+ ; byrRegs +[x0]
+ ldr x0, [x0, w21, UXTW #3]
; gcrRegs +[x0]
+ ; byrRegs -[x0]
mov x1, x19
; gcrRegs +[x1]
ldr x2, [x0]
@@ -154,34 +155,34 @@ G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {
blr x2
; gcrRegs -[x0-x1]
cbz w0, G_M35267_IG16
- ;; size=28 bbWeight=5.60 PerfScore 81.20
-G_M35267_IG13: ; bbWeight=4.40, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
- add w20, w20, #1
- cmp w21, w20
- bgt G_M35267_IG12
- ;; size=12 bbWeight=4.40 PerfScore 8.80
+ ;; size=32 bbWeight=5.60 PerfScore 84.00
+G_M35267_IG13: ; bbWeight=4.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ add w21, w21, #1
+ ldr w0, [x20, #0x08]
+ cmp w21, w0
+ blt G_M35267_IG12
+ ;; size=16 bbWeight=4.40 PerfScore 22.00
G_M35267_IG14: ; bbWeight=2.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- ; byrRegs -[x22]
+ ; gcrRegs -[x19-x20]
mov w0, #1
;; size=4 bbWeight=2.36 PerfScore 1.18
G_M35267_IG15: ; bbWeight=2.36, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=2.36 PerfScore 9.44
+ ;; size=16 bbWeight=2.36 PerfScore 11.80
G_M35267_IG16: ; bbWeight=30.24, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov w0, wzr
;; size=4 bbWeight=30.24 PerfScore 15.12
G_M35267_IG17: ; bbWeight=30.24, epilog, nogc, extend
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
+ ldr x21, [sp, #0x28]
+ ldp x19, x20, [sp, #0x18]
ldp fp, lr, [sp], #0x30
ret lr
- ;; size=16 bbWeight=30.24 PerfScore 120.96
+ ;; size=16 bbWeight=30.24 PerfScore 151.20
-; Total bytes of code 380, prolog size 16, PerfScore 253.26, instruction count 95, allocated bytes for code 380 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 388, prolog size 16, PerfScore 301.86, instruction count 97, allocated bytes for code 388 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -192,7 +193,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 95 (0x0005f) Actual length = 380 (0x00017c)
+ Function Length : 97 (0x00061) Actual length = 388 (0x000184)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -209,10 +210,9 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- E6 save_next
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 85 save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+ C8 03 save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
E4 end
E4 end
- E4 end
+4 (+4.17%) : 537705.dasm - AA:.cctor() (FullOpts)
@@ -8,14 +8,13 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - stress mode"
-; V02 cse1 [V02,T01] ( 3, 3 ) long -> x20 "CSE - stress mode"
+; V01 cse0 [V01,T00] ( 3, 3 ) long -> x19 "CSE - unknown"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M3846_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x20]!
- stp x19, x20, [sp, #0x10]
+ str x19, [sp, #0x18]
mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
G_M3846_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -26,31 +25,32 @@ G_M3846_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x1, #101
bl CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[x0]
- movz x20, #0xD1FFAB1E // data for <unknown class>:<unknown field>
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
mov x15, x0
; gcrRegs +[x15]
- mov x14, x20
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
mov x0, x19
mov x1, #101
bl CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[x0]
- add x14, x20, #8
+ movz x14, #0xD1FFAB1E // data for <unknown class>:<unknown field>
+ movk x14, #0xD1FFAB1E LSL #16
+ movk x14, #0xD1FFAB1E LSL #32
mov x15, x0
; gcrRegs +[x15]
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x0 x15]
- ;; size=72 bbWeight=1 PerfScore 11.00
+ ;; size=76 bbWeight=1 PerfScore 11.50
G_M3846_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp x19, x20, [sp, #0x10]
+ ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20
ret lr
- ;; size=12 bbWeight=1 PerfScore 3.00
+ ;; size=12 bbWeight=1 PerfScore 4.00
-; Total bytes of code 96, prolog size 12, PerfScore 16.50, instruction count 24, allocated bytes for code 96 (MethodHash=2b07f0f9) for method AA:.cctor() (FullOpts)
+Total bytes of code 100, prolog size 12, PerfScore 18.00, instruction count 25, allocated bytes for code 100 (MethodHash=2b07f0f9) for method AA:.cctor() (FullOpts)
; ============================================================
Unwind Info:
@@ -61,7 +61,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 25 (0x00019) Actual length = 100 (0x000064)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -69,7 +69,7 @@ Unwind Info:
---- Unwind codes ----
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
- C8 02 save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+ D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
E4 end
E4 end
+16 (+4.26%) : 300384.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)
@@ -29,22 +29,21 @@
;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp17 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V21 tmp19 [V21,T11] ( 3, 0 ) ubyte -> x1 "Inline return value spill temp"
+; V21 tmp19 [V21,T10] ( 3, 0 ) ubyte -> x1 "Inline return value spill temp"
; V22 tmp20 [V22,T04] ( 9, 76.80) int -> x20 "Inline stloc first use temp"
; V23 tmp21 [V23 ] ( 2, 76.80) simd8 -> [fp+0x18] HFA(simd8) do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
; V24 tmp22 [V24 ] ( 2, 76.80) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-; V25 tmp23 [V25,T14] ( 2, 0 ) float -> d8 "impAppendStmt"
-; V26 tmp24 [V26,T12] ( 3, 0 ) int -> x0
+; V25 tmp23 [V25,T13] ( 2, 0 ) float -> d8 "impAppendStmt"
+; V26 tmp24 [V26,T11] ( 3, 0 ) int -> x0
;* V27 tmp25 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp27 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) float -> zero-ref "Inline return value spill temp"
-; V31 tmp29 [V31,T13] ( 3, 0 ) int -> x0
+; V31 tmp29 [V31,T12] ( 3, 0 ) int -> x0
;* V32 tmp30 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp33 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V36 cse0 [V36,T10] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
;
; Lcl frame size = 72
@@ -112,19 +111,19 @@ G_M21877_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M21877_IG06: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M21877_IG07
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M21877_IG07: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add x0, fp, #24 // [V23 tmp21]
; byrRegs +[x0]
@@ -140,19 +139,19 @@ G_M21877_IG08: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M21877_IG09: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M21877_IG10
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M21877_IG10: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
add x0, fp, #16 // [V24 tmp22]
; byrRegs +[x0]
@@ -195,7 +194,7 @@ G_M21877_IG16: ; bbWeight=0, epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 376, prolog size 20, PerfScore 29793.45, instruction count 94, allocated bytes for code 376 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 392, prolog size 20, PerfScore 29793.45, instruction count 98, allocated bytes for code 392 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
; ============================================================
Unwind Info:
@@ -206,7 +205,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 94 (0x0005e) Actual length = 376 (0x000178)
+ Function Length : 98 (0x00062) Actual length = 392 (0x000188)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.pmi.windows.arm64.checked.mch
-4 (-0.76%) : 302777.dasm - Xunit.Sdk.TestFramework+
@@ -15,7 +15,7 @@
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V07 tmp2 [V07,T17] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V07 tmp2 [V07,T16] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V10 tmp5 [V10,T07] ( 2, 2 ) ref -> x21 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
@@ -23,7 +23,7 @@
; V12 tmp7 [V12,T03] ( 2, 4 ) ref -> x20 class-hnd single-def "Inlining Arg" <System.TimeProvider>
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
; V14 tmp9 [V14,T01] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V15 tmp10 [V15,T15] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V15 tmp10 [V15,T14] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V17 tmp12 [V17 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -72,7 +72,7 @@
; V61 tmp56 [V61 ] ( 6, 6 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
;* V62 tmp57 [V62 ] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp59 [V64,T14] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp59 [V64,T13] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V65 tmp60 [V65 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V17._source (fldOffset=0x0)" P-DEP
;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "field V25._node (fldOffset=0x0)" P-DEP
;* V67 tmp62 [V67 ] ( 0, 0 ) long -> zero-ref single-def "field V25._id (fldOffset=0x8)" P-DEP
@@ -82,11 +82,10 @@
;* V71 tmp66 [V71 ] ( 0, 0 ) long -> zero-ref single-def "field V44._id (fldOffset=0x8)" P-INDEP
; V72 tmp67 [V72,T08] ( 2, 2 ) ref -> x21 single-def "field V51.m_task (fldOffset=0x0)" P-INDEP
; V73 tmp68 [V73,T05] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V74 PSPSym [V74,T16] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
+; V74 PSPSym [V74,T15] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym"
; V75 cse0 [V75,T10] ( 2, 2 ) long -> x1 "CSE - aggressive"
; V76 cse1 [V76,T11] ( 2, 2 ) long -> x1 "CSE - aggressive"
-; V77 cse2 [V77,T12] ( 2, 2 ) long -> x1 "CSE - conservative"
-; V78 rat0 [V78,T13] ( 2, 2 ) long -> x1 "Spilling to split statement for tree"
+; V77 rat0 [V77,T12] ( 2, 2 ) long -> x1 "Spilling to split statement for tree"
;
; Lcl frame size = 24
@@ -125,10 +124,9 @@ G_M64987_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #0xD1FFAB1E LSL #32
ldr x20, [x1]
; gcrRegs +[x20]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -187,7 +185,7 @@ G_M64987_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs -[x1]
; gcr arg pop 0
b G_M64987_IG11
- ;; size=172 bbWeight=1 PerfScore 43.00
+ ;; size=168 bbWeight=1 PerfScore 42.50
G_M64987_IG05: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
mov x0, x1
@@ -311,7 +309,7 @@ G_M64987_IG14: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 528, prolog size 32, PerfScore 112.50, instruction count 132, allocated bytes for code 528 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
+Total bytes of code 524, prolog size 32, PerfScore 112.00, instruction count 131, allocated bytes for code 524 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -322,7 +320,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 112 (0x00070) Actual length = 448 (0x0001c0)
+ Function Length : 111 (0x0006f) Actual length = 444 (0x0001bc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-0.31%) : 196468.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
@@ -24,16 +24,16 @@
; V13 loc11 [V13,T14] ( 3, 8.50) ubyte -> x22 ld-addr-op
; V14 loc12 [V14,T15] ( 3, 8.50) ubyte -> x24 ld-addr-op
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V16 tmp1 [V16,T92] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V16 tmp1 [V16,T91] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V17 tmp2 [V17,T16] ( 4, 8 ) int -> x22 "dup spill"
-; V18 tmp3 [V18,T93] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V19 tmp4 [V19,T94] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V20 tmp5 [V20,T95] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V21 tmp6 [V21,T96] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V22 tmp7 [V22,T97] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V23 tmp8 [V23,T98] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V24 tmp9 [V24,T99] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V25 tmp10 [V25,T100] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V18 tmp3 [V18,T92] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V19 tmp4 [V19,T93] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V20 tmp5 [V20,T94] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V21 tmp6 [V21,T95] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V22 tmp7 [V22,T96] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V23 tmp8 [V23,T97] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V24 tmp9 [V24,T98] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V25 tmp10 [V25,T99] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V26 tmp11 [V26,T79] ( 3, 1.50) ref -> x24 class-hnd "Inline return value spill temp" <System.String>
; V27 tmp12 [V27,T29] ( 4, 6.00) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
; V28 tmp13 [V28,T43] ( 5, 3.10) int -> x23 single-def "Inline stloc first use temp"
@@ -115,7 +115,7 @@
;* V104 tmp89 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V105 tmp90 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
; V106 tmp91 [V106,T49] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
-; V107 tmp92 [V107,T101] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V107 tmp92 [V107,T100] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V108 tmp93 [V108,T12] ( 4, 10 ) ref -> x0 class-hnd "Inline return value spill temp" <System.String>
; V109 tmp94 [V109,T00] ( 4, 24.00) ref -> x20 class-hnd exact "Inlining Arg" <System.String>
; V110 tmp95 [V110,T02] ( 5, 12.40) int -> x25 "Inline stloc first use temp"
@@ -130,7 +130,7 @@
; V119 tmp104 [V119,T25] ( 2, 8 ) long -> x2 "Inlining Arg"
;* V120 tmp105 [V120 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V121 tmp106 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V122 tmp107 [V122,T102] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V122 tmp107 [V122,T101] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V123 tmp108 [V123,T13] ( 4, 10 ) ref -> x0 class-hnd "Inline return value spill temp" <System.String>
; V124 tmp109 [V124,T01] ( 4, 24.00) ref -> x21 class-hnd exact "Inlining Arg" <System.String>
; V125 tmp110 [V125,T03] ( 5, 12.40) int -> x25 "Inline stloc first use temp"
@@ -169,32 +169,32 @@
;* V158 tmp143 [V158 ] ( 0, 0 ) int -> zero-ref single-def "field V102._length (fldOffset=0x8)" P-INDEP
;* V159 tmp144 [V159 ] ( 0, 0 ) byref -> zero-ref single-def "field V104._reference (fldOffset=0x0)" P-INDEP
;* V160 tmp145 [V160 ] ( 0, 0 ) int -> zero-ref single-def "field V104._length (fldOffset=0x8)" P-INDEP
-; V161 tmp146 [V161,T103] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V162 tmp147 [V162,T104] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V163 tmp148 [V163,T105] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V164 tmp149 [V164,T106] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V165 tmp150 [V165,T107] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V166 tmp151 [V166,T108] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V167 tmp152 [V167,T109] ( 2, 0 ) ref -> x2 "argument with side effect"
-; V168 tmp153 [V168,T110] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V169 tmp154 [V169,T111] ( 2, 0 ) ref -> x2 "argument with side effect"
-; V170 tmp155 [V170,T112] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V171 tmp156 [V171,T113] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V172 tmp157 [V172,T114] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V173 tmp158 [V173,T115] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V174 tmp159 [V174,T116] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V175 tmp160 [V175,T117] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V176 tmp161 [V176,T118] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V177 tmp162 [V177,T119] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V178 tmp163 [V178,T120] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V179 tmp164 [V179,T121] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V180 tmp165 [V180,T122] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V181 tmp166 [V181,T123] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V182 tmp167 [V182,T124] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V183 tmp168 [V183,T125] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V184 tmp169 [V184,T126] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V185 tmp170 [V185,T127] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V186 tmp171 [V186,T128] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V161 tmp146 [V161,T102] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V162 tmp147 [V162,T103] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V163 tmp148 [V163,T104] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V164 tmp149 [V164,T105] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V165 tmp150 [V165,T106] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V166 tmp151 [V166,T107] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V167 tmp152 [V167,T108] ( 2, 0 ) ref -> x2 "argument with side effect"
+; V168 tmp153 [V168,T109] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V169 tmp154 [V169,T110] ( 2, 0 ) ref -> x2 "argument with side effect"
+; V170 tmp155 [V170,T111] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V171 tmp156 [V171,T112] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V172 tmp157 [V172,T113] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V173 tmp158 [V173,T114] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V174 tmp159 [V174,T115] ( 2, 0 ) ref -> x25 single-def "argument with side effect"
+; V175 tmp160 [V175,T116] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V176 tmp161 [V176,T117] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V177 tmp162 [V177,T118] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V178 tmp163 [V178,T119] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V179 tmp164 [V179,T120] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V180 tmp165 [V180,T121] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
+; V181 tmp166 [V181,T122] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V182 tmp167 [V182,T123] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V183 tmp168 [V183,T124] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V184 tmp169 [V184,T125] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V185 tmp170 [V185,T126] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
+; V186 tmp171 [V186,T127] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V187 cse0 [V187,T80] ( 3, 1.50) byref -> x25 "CSE - conservative"
; V188 cse1 [V188,T81] ( 3, 1.50) byref -> x22 "CSE - conservative"
; V189 cse2 [V189,T82] ( 3, 1.50) byref -> x23 "CSE - conservative"
@@ -202,7 +202,6 @@
; V191 cse4 [V191,T06] ( 3, 12 ) ref -> x26 "CSE - aggressive"
; V192 cse5 [V192,T07] ( 3, 12 ) ref -> x25 "CSE - aggressive"
; V193 cse6 [V193,T08] ( 3, 12 ) ref -> x25 "CSE - aggressive"
-; V194 cse7 [V194,T91] ( 12, 0 ) ref -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 64
@@ -1083,7 +1082,7 @@ G_M39588_IG56: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x90
ret lr
;; size=24 bbWeight=1 PerfScore 6.00
-G_M39588_IG57: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M39588_IG57: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x19]
bl CORINFO_HELP_RNGCHKFAIL
;; size=4 bbWeight=0 PerfScore 0.00
@@ -1274,22 +1273,20 @@ G_M39588_IG62: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=56 bbWeight=0 PerfScore 0.00
G_M39588_IG63: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
- movz x24, #8
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- mov x0, x24
- ; gcrRegs +[x0]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
b G_M39588_IG15
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M39588_IG64: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
+ ; gcrRegs -[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
- mov x24, x0
- ; gcrRegs +[x24]
+ mov x19, x0
+ ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E // code for <unknown method>
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
@@ -1299,17 +1296,17 @@ G_M39588_IG64: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- mov x0, x24
+ mov x0, x19
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1]
- mov x0, x24
+ mov x0, x19
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M39588_IG65: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
@@ -1333,44 +1330,13 @@ G_M39588_IG65: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=56 bbWeight=0 PerfScore 0.00
G_M39588_IG66: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
- movz x24, #8
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- mov x0, x24
- ; gcrRegs +[x0]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
b G_M39588_IG19
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M39588_IG67: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov x24, x0
- ; gcrRegs +[x24]
- movz x0, #0xD1FFAB1E // code for <unknown method>
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- ; gcrRegs +[x0]
- mov x1, x0
- ; gcrRegs +[x1]
- mov x0, x24
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- mov x0, x24
- ; gcrRegs +[x0]
- bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x24]
- ;; size=76 bbWeight=0 PerfScore 0.00
-G_M39588_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -1385,24 +1351,35 @@ G_M39588_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [x0]
blr x0
; gcrRegs +[x0]
- mov x21, x0
- ; gcrRegs +[x21]
- mov w0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_STRCNS
- ; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- mov x0, x21
+ mov x0, x20
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x21]
+ ; gcrRegs -[x0-x1]
+ mov x0, x20
+ ; gcrRegs +[x0]
+ bl CORINFO_HELP_THROW
+ ; gcrRegs -[x0 x20]
+ ;; size=76 bbWeight=0 PerfScore 0.00
...
-12 (-0.28%) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
@@ -30,16 +30,16 @@
; V19 loc17 [V19,T14] ( 4, 9.00) ubyte -> x22 ld-addr-op
; V20 loc18 [V20,T15] ( 4, 9.00) ubyte -> x24 ld-addr-op
;# V21 OutArgs [V21 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V22 tmp1 [V22,T92] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V22 tmp1 [V22,T91] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V23 tmp2 [V23,T16] ( 4, 8 ) int -> x22 "dup spill"
-; V24 tmp3 [V24,T93] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V25 tmp4 [V25,T94] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V26 tmp5 [V26,T95] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V27 tmp6 [V27,T96] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V28 tmp7 [V28,T97] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V29 tmp8 [V29,T98] ( 3, 0 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V30 tmp9 [V30,T99] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V31 tmp10 [V31,T100] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V24 tmp3 [V24,T92] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V25 tmp4 [V25,T93] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V26 tmp5 [V26,T94] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V27 tmp6 [V27,T95] ( 3, 0 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V28 tmp7 [V28,T96] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V29 tmp8 [V29,T97] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V30 tmp9 [V30,T98] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V31 tmp10 [V31,T99] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V32 tmp11 [V32,T79] ( 3, 1.50) ref -> x24 class-hnd "Inline return value spill temp" <System.String>
; V33 tmp12 [V33,T27] ( 4, 6.00) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.String>
; V34 tmp13 [V34,T42] ( 5, 3.10) int -> x23 single-def "Inline stloc first use temp"
@@ -116,7 +116,7 @@
;* V105 tmp84 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V106 tmp85 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
; V107 tmp86 [V107,T49] ( 3, 3 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.String>
-; V108 tmp87 [V108,T101] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V108 tmp87 [V108,T100] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V109 tmp88 [V109,T12] ( 4, 10 ) ref -> x0 class-hnd "Inline return value spill temp" <System.String>
; V110 tmp89 [V110,T00] ( 4, 24.00) ref -> x21 class-hnd exact "Inlining Arg" <System.String>
; V111 tmp90 [V111,T03] ( 5, 12.40) int -> x25 "Inline stloc first use temp"
@@ -131,7 +131,7 @@
; V120 tmp99 [V120,T25] ( 2, 8 ) long -> x2 "Inlining Arg"
;* V121 tmp100 [V121 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V122 tmp101 [V122 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V123 tmp102 [V123,T102] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V123 tmp102 [V123,T101] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V124 tmp103 [V124,T13] ( 4, 10 ) ref -> x0 class-hnd "Inline return value spill temp" <System.String>
; V125 tmp104 [V125,T01] ( 4, 24.00) ref -> x20 class-hnd exact "Inlining Arg" <System.String>
; V126 tmp105 [V126,T04] ( 5, 12.40) int -> x25 "Inline stloc first use temp"
@@ -162,32 +162,32 @@
;* V151 tmp130 [V151 ] ( 0, 0 ) int -> zero-ref single-def "field V104._length (fldOffset=0x8)" P-INDEP
;* V152 tmp131 [V152 ] ( 0, 0 ) byref -> zero-ref single-def "field V105._reference (fldOffset=0x0)" P-INDEP
;* V153 tmp132 [V153 ] ( 0, 0 ) int -> zero-ref single-def "field V105._length (fldOffset=0x8)" P-INDEP
-; V154 tmp133 [V154,T103] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V155 tmp134 [V155,T104] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V156 tmp135 [V156,T105] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V157 tmp136 [V157,T106] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V158 tmp137 [V158,T107] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V159 tmp138 [V159,T108] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V160 tmp139 [V160,T109] ( 2, 0 ) ref -> x2 "argument with side effect"
-; V161 tmp140 [V161,T110] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V162 tmp141 [V162,T111] ( 2, 0 ) ref -> x2 "argument with side effect"
-; V163 tmp142 [V163,T112] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V164 tmp143 [V164,T113] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V165 tmp144 [V165,T114] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V166 tmp145 [V166,T115] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V167 tmp146 [V167,T116] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V168 tmp147 [V168,T117] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V169 tmp148 [V169,T118] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V170 tmp149 [V170,T119] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V171 tmp150 [V171,T120] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V172 tmp151 [V172,T121] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V173 tmp152 [V173,T122] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V174 tmp153 [V174,T123] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
-; V175 tmp154 [V175,T124] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V176 tmp155 [V176,T125] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
-; V177 tmp156 [V177,T126] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V178 tmp157 [V178,T127] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
-; V179 tmp158 [V179,T128] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V154 tmp133 [V154,T102] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V155 tmp134 [V155,T103] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V156 tmp135 [V156,T104] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V157 tmp136 [V157,T105] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V158 tmp137 [V158,T106] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V159 tmp138 [V159,T107] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V160 tmp139 [V160,T108] ( 2, 0 ) ref -> x2 "argument with side effect"
+; V161 tmp140 [V161,T109] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V162 tmp141 [V162,T110] ( 2, 0 ) ref -> x2 "argument with side effect"
+; V163 tmp142 [V163,T111] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V164 tmp143 [V164,T112] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V165 tmp144 [V165,T113] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
+; V166 tmp145 [V166,T114] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V167 tmp146 [V167,T115] ( 2, 0 ) ref -> x25 single-def "argument with side effect"
+; V168 tmp147 [V168,T116] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V169 tmp148 [V169,T117] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V170 tmp149 [V170,T118] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V171 tmp150 [V171,T119] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V172 tmp151 [V172,T120] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V173 tmp152 [V173,T121] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
+; V174 tmp153 [V174,T122] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
+; V175 tmp154 [V175,T123] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V176 tmp155 [V176,T124] ( 2, 0 ) ref -> x20 single-def "argument with side effect"
+; V177 tmp156 [V177,T125] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V178 tmp157 [V178,T126] ( 2, 0 ) ref -> x21 single-def "argument with side effect"
+; V179 tmp158 [V179,T127] ( 2, 0 ) ref -> x2 single-def "argument with side effect"
; V180 cse0 [V180,T80] ( 3, 1.50) byref -> x25 "CSE - conservative"
; V181 cse1 [V181,T81] ( 3, 1.50) byref -> x22 "CSE - conservative"
; V182 cse2 [V182,T82] ( 3, 1.50) byref -> x23 "CSE - conservative"
@@ -195,7 +195,6 @@
; V184 cse4 [V184,T07] ( 3, 12 ) ref -> x26 "CSE - aggressive"
; V185 cse5 [V185,T08] ( 3, 12 ) ref -> x25 "CSE - aggressive"
; V186 cse6 [V186,T09] ( 3, 12 ) ref -> x25 "CSE - aggressive"
-; V187 cse7 [V187,T91] ( 12, 0 ) ref -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 112
@@ -1219,7 +1218,7 @@ G_M12698_IG59: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0xC0
ret lr
;; size=24 bbWeight=1 PerfScore 6.00
-G_M12698_IG60: ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M12698_IG60: ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x19]
bl CORINFO_HELP_RNGCHKFAIL
;; size=4 bbWeight=0 PerfScore 0.00
@@ -1410,22 +1409,20 @@ G_M12698_IG65: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=56 bbWeight=0 PerfScore 0.00
G_M12698_IG66: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
- movz x24, #8
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- mov x0, x24
- ; gcrRegs +[x0]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
b G_M12698_IG15
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M12698_IG67: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
+ ; gcrRegs -[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
- mov x24, x0
- ; gcrRegs +[x24]
+ mov x19, x0
+ ; gcrRegs +[x19]
movz x0, #0xD1FFAB1E // code for <unknown method>
; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16
@@ -1435,17 +1432,17 @@ G_M12698_IG67: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- mov x0, x24
+ mov x0, x19
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1]
- mov x0, x24
+ mov x0, x19
; gcrRegs +[x0]
bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x24]
+ ; gcrRegs -[x0 x19]
;; size=76 bbWeight=0 PerfScore 0.00
G_M12698_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
@@ -1469,44 +1466,13 @@ G_M12698_IG68: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=56 bbWeight=0 PerfScore 0.00
G_M12698_IG69: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19]
- movz x24, #8
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- mov x0, x24
- ; gcrRegs +[x0]
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
b G_M12698_IG19
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M12698_IG70: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov x24, x0
- ; gcrRegs +[x24]
- movz x0, #0xD1FFAB1E // code for <unknown method>
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- ; gcrRegs +[x0]
- mov x1, x0
- ; gcrRegs +[x1]
- mov x0, x24
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- mov x0, x24
- ; gcrRegs +[x0]
- bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x24]
- ;; size=76 bbWeight=0 PerfScore 0.00
-G_M12698_IG71: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -1521,24 +1487,35 @@ G_M12698_IG71: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [x0]
blr x0
; gcrRegs +[x0]
- mov x20, x0
- ; gcrRegs +[x20]
- mov w0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_STRCNS
- ; gcrRegs +[x0]
mov x1, x0
; gcrRegs +[x1]
- mov x0, x20
+ mov x0, x19
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x20]
+ ; gcrRegs -[x0-x1]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ bl CORINFO_HELP_THROW
+ ; gcrRegs -[x0 x19]
+ ;; size=76 bbWeight=0 PerfScore 0.00
...
+32 (+2.02%) : 200677.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T20] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T26] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T27] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T23] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T29] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.61) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V103 cse3 [V103,T20] ( 12, 0 ) ref -> x1 multi-def "CSE - moderate"
;
; Lcl frame size = 40
@@ -409,19 +408,19 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG30
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG33
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG34
movz x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG38
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG43
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG44
movz x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1588, prolog size 48, PerfScore 291.46, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.46, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 397 (0x0018d) Actual length = 1588 (0x000634)
+ Function Length : 405 (0x00195) Actual length = 1620 (0x000654)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+2.09%) : 201393.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T02] ( 4, 12.50) ref -> x24 class-hnd <System.Xml.XmlDictionaryString>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T15] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T14] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T13] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V10 tmp3 [V10,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T16] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V13 tmp6 [V13,T18] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V12 tmp5 [V12,T15] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V13 tmp6 [V13,T17] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T19] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V19 tmp12 [V19,T18] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T14] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V21 tmp14 [V21,T13] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T17] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V24 tmp17 [V24,T20] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V23 tmp16 [V23,T16] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V24 tmp17 [V24,T19] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T24] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T21] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V30 tmp23 [V30,T20] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V31 tmp24 [V31,T00] ( 5, 27.17) ref -> x2 class-hnd exact "Inlining Arg" <System.String>
; V32 tmp25 [V32,T11] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V33 tmp26 [V33,T04] ( 2, 8 ) byref -> x0 "impAppendStmt"
@@ -59,11 +59,10 @@
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V51 tmp44 [V51,T22] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V52 cse0 [V52,T12] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
-; V53 cse1 [V53,T10] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
-; V54 cse2 [V54,T07] ( 3, 6 ) int -> x23 "CSE - aggressive"
-; V55 cse3 [V55,T08] ( 3, 5.58) int -> x1 "CSE - aggressive"
+; V51 tmp44 [V51,T21] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V52 cse0 [V52,T10] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
+; V53 cse1 [V53,T07] ( 3, 6 ) int -> x23 "CSE - aggressive"
+; V54 cse2 [V54,T08] ( 3, 5.58) int -> x1 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -221,19 +220,19 @@ G_M28309_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M28309_IG16
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M28309_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #8
blo G_M28309_IG17
@@ -293,19 +292,19 @@ G_M28309_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M28309_IG21
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M28309_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M28309_IG22
movz x0, #0xD1FFAB1E
@@ -367,7 +366,7 @@ G_M28309_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 764, prolog size 44, PerfScore 111.28, instruction count 191, allocated bytes for code 764 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 780, prolog size 44, PerfScore 111.28, instruction count 195, allocated bytes for code 780 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -378,7 +377,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 191 (0x000bf) Actual length = 764 (0x0002fc)
+ Function Length : 195 (0x000c3) Actual length = 780 (0x00030c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+16 (+2.12%) : 201392.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T01] ( 6, 16.29) ref -> x24 class-hnd exact <System.String>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T14] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T13] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T12] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V10 tmp3 [V10,T11] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T15] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V13 tmp6 [V13,T17] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V12 tmp5 [V12,T14] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V13 tmp6 [V13,T16] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T18] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V19 tmp12 [V19,T17] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T13] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V21 tmp14 [V21,T12] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T16] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V24 tmp17 [V24,T19] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V23 tmp16 [V23,T15] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V24 tmp17 [V24,T18] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T20] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V30 tmp23 [V30,T19] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V31 tmp24 [V31,T10] ( 2, 4 ) ubyte -> x0 "Inline return value spill temp"
; V32 tmp25 [V32,T03] ( 2, 8 ) byref -> x0 "impAppendStmt"
;* V33 tmp26 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -58,11 +58,10 @@
;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V50 tmp43 [V50,T21] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V51 cse0 [V51,T11] ( 6, 0 ) ref -> x1 multi-def "CSE - aggressive"
-; V52 cse1 [V52,T09] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
-; V53 cse2 [V53,T06] ( 3, 6 ) int -> x23 "CSE - aggressive"
-; V54 cse3 [V54,T07] ( 3, 5.58) int -> x2 "CSE - aggressive"
+; V50 tmp43 [V50,T20] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V51 cse0 [V51,T09] ( 2, 5 ) byref -> x19 hoist "CSE - aggressive"
+; V52 cse1 [V52,T06] ( 3, 6 ) int -> x23 "CSE - aggressive"
+; V53 cse2 [V53,T07] ( 3, 5.58) int -> x2 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -214,19 +213,19 @@ G_M58179_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M58179_IG15
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M58179_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #8
blo G_M58179_IG16
@@ -286,19 +285,19 @@ G_M58179_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M58179_IG20
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M58179_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M58179_IG21
movz x0, #0xD1FFAB1E
@@ -360,7 +359,7 @@ G_M58179_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 756, prolog size 44, PerfScore 96.23, instruction count 189, allocated bytes for code 756 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 772, prolog size 44, PerfScore 96.23, instruction count 193, allocated bytes for code 772 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
@@ -371,7 +370,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 189 (0x000bd) Actual length = 756 (0x0002f4)
+ Function Length : 193 (0x000c1) Actual length = 772 (0x000304)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries_tests.run.windows.arm64.Release.mch
-16 (-3.60%) : 237998.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateEventMetadata(int,System.String,long,int,uint,int,System.Diagnostics.Tracing.TraceLoggingEventTypes):ubyte[]:this (Tier1)
@@ -16,24 +16,22 @@
; V04 arg4 [V04,T08] ( 3, 3 ) int -> x23 single-def
; V05 arg5 [V05,T09] ( 3, 3 ) int -> x24 single-def
; V06 arg6 [V06,T10] ( 3, 3 ) int -> x25 single-def
-; V07 arg7 [V07,T01] ( 4, 4 ) ref -> x7 class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingEventTypes>
-; V08 loc0 [V08,T19] ( 4, 2.51) ref -> x26 class-hnd single-def <<unknown class>>
+; V07 arg7 [V07,T02] ( 4, 4 ) ref -> x7 class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingEventTypes>
+; V08 loc0 [V08,T17] ( 4, 2.51) ref -> x26 class-hnd single-def <<unknown class>>
; V09 loc1 [V09,T14] ( 7, 3 ) ref -> x27 class-hnd exact single-def <<unknown class>>
; V10 loc2 [V10,T13] ( 6, 3.51) ref -> x7 class-hnd exact single-def <<unknown class>>
-; V11 loc3 [V11,T02] ( 13, 5.02) int -> x8
-; V12 loc4 [V12,T15] ( 5, 2 ) ref -> x9 class-hnd <System.String>
+; V11 loc3 [V11,T01] ( 15, 7 ) int -> x8
+; V12 loc4 [V12,T15] ( 5, 2 ) ref -> x15 class-hnd <System.String>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T00] ( 8, 8 ) byref -> x2 "impAppendStmt"
;* V15 tmp2 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Diagnostics.Tracing.TraceLoggingTypeInfo>
; V16 tmp3 [V16,T11] ( 4, 4 ) ref -> x4 class-hnd "Inlining Arg" <System.Type>
; V17 tmp4 [V17,T12] ( 4, 4 ) ref -> x3 class-hnd "Inlining Arg" <System.Diagnostics.Tracing.TraceLoggingTypeInfo>
-; V18 cse0 [V18,T22] ( 3, 0.03) ref -> x3 "CSE - conservative"
+; V18 cse0 [V18,T20] ( 3, 0.03) ref -> x3 "CSE - conservative"
; V19 cse1 [V19,T16] ( 3, 2.97) ref -> x3 "CSE - moderate"
-; V20 cse2 [V20,T17] ( 3, 2.97) long -> x12 "CSE - conservative"
-; V21 cse3 [V21,T03] ( 7, 5 ) int -> x28 "CSE - aggressive"
-; V22 cse4 [V22,T20] ( 4, 1.51) byref -> x1 hoist multi-def "CSE - moderate"
-; V23 cse5 [V23,T21] ( 3, 0.52) ref -> x0 hoist multi-def "CSE - moderate"
-; V24 cse6 [V24,T18] ( 3, 2.97) long -> x15 "CSE - conservative"
+; V20 cse2 [V20,T03] ( 7, 5 ) int -> x28 "CSE - aggressive"
+; V21 cse3 [V21,T18] ( 4, 1.51) byref -> x1 hoist multi-def "CSE - moderate"
+; V22 cse4 [V22,T19] ( 3, 0.52) ref -> x0 hoist multi-def "CSE - moderate"
;
; Lcl frame size = 0
@@ -92,26 +90,22 @@ G_M47438_IG04: ; bbWeight=0.99, gcrefRegs=8180081 {x0 x7 x19 x20 x27}, by
; gcrRegs -[x26] +[x0]
add x14, x27, #16
; byrRegs +[x14]
- mov w15, w8
- lsl x12, x15, #3
- ldr x9, [x14, x12]
- ; gcrRegs +[x9]
- mov x14, #24
+ ldr x15, [x14, w8, UXTW #3]
+ ; gcrRegs +[x15]
+ mov w14, #24
; byrRegs -[x14]
- mul x14, x15, x14
- add x14, x14, #16
+ mov x12, #16
+ umaddl x14, w8, w14, x12
add x2, x7, x14
; byrRegs +[x2]
- ldr x3, [x1, x12]
+ ldr x3, [x1, w8, UXTW #3]
; gcrRegs +[x3]
ldr x4, [x3, #0x10]
; gcrRegs +[x4]
mov x14, x2
; byrRegs +[x14]
- mov x15, x9
- ; gcrRegs +[x15]
bl CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[x9 x15]
+ ; gcrRegs -[x15]
; byrRegs -[x14]
add x14, x2, #8
; byrRegs +[x14]
@@ -130,7 +124,7 @@ G_M47438_IG04: ; bbWeight=0.99, gcrefRegs=8180081 {x0 x7 x19 x20 x27}, by
add w8, w8, #1
cmp w28, w8
bgt G_M47438_IG04
- ;; size=88 bbWeight=0.99 PerfScore 22.27
+ ;; size=76 bbWeight=0.99 PerfScore 23.27
G_M47438_IG05: ; bbWeight=0.50, gcrefRegs=180080 {x7 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x27]
; byrRegs -[x1]
@@ -141,11 +135,11 @@ G_M47438_IG06: ; bbWeight=0.01, gcrefRegs=C180080 {x7 x19 x20 x26 x27}, b
movz x0, #8
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- mov x9, x0
- ; gcrRegs +[x9]
+ mov x15, x0
+ ; gcrRegs +[x15]
cbnz x27, G_M47438_IG11
;; size=20 bbWeight=0.01 PerfScore 0.03
-G_M47438_IG07: ; bbWeight=0.01, gcrefRegs=C180280 {x7 x9 x19 x20 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M47438_IG07: ; bbWeight=0.01, gcrefRegs=C188080 {x7 x15 x19 x20 x26 x27}, byrefRegs=0000 {}, byref, isz
ldr w2, [x7, #0x08]
cmp w8, w2
bhs G_M47438_IG10
@@ -162,10 +156,8 @@ G_M47438_IG07: ; bbWeight=0.01, gcrefRegs=C180280 {x7 x9 x19 x20 x26 x27}
; gcrRegs +[x4]
mov x14, x2
; byrRegs +[x14]
- mov x15, x9
- ; gcrRegs +[x15]
bl CORINFO_HELP_CHECKED_ASSIGN_REF
- ; gcrRegs -[x9 x15]
+ ; gcrRegs -[x15]
; byrRegs -[x1 x14]
add x14, x2, #8
; byrRegs +[x14]
@@ -184,7 +176,7 @@ G_M47438_IG07: ; bbWeight=0.01, gcrefRegs=C180280 {x7 x9 x19 x20 x26 x27}
add w8, w8, #1
cmp w28, w8
bgt G_M47438_IG06
- ;; size=88 bbWeight=0.01 PerfScore 0.26
+ ;; size=84 bbWeight=0.01 PerfScore 0.25
G_M47438_IG08: ; bbWeight=1, gcrefRegs=180080 {x7 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x26-x27]
mov x0, x19
@@ -223,12 +215,12 @@ G_M47438_IG11: ; bbWeight=0, gcrefRegs=C180080 {x7 x19 x20 x26 x27}, byre
bhs G_M47438_IG10
add x0, x27, #16
; byrRegs +[x0]
- ldr x9, [x0, w8, UXTW #3]
- ; gcrRegs +[x9]
+ ldr x15, [x0, w8, UXTW #3]
+ ; gcrRegs +[x15]
b G_M47438_IG07
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 444, prolog size 56, PerfScore 66.56, instruction count 111, allocated bytes for code 444 (MethodHash=8fb946b1) for method System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateEventMetadata(int,System.String,long,int,uint,int,System.Diagnostics.Tracing.TraceLoggingEventTypes):ubyte[]:this (Tier1)
+Total bytes of code 428, prolog size 56, PerfScore 67.55, instruction count 107, allocated bytes for code 428 (MethodHash=8fb946b1) for method System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateEventMetadata(int,System.String,long,int,uint,int,System.Diagnostics.Tracing.TraceLoggingEventTypes):ubyte[]:this (Tier1)
; ============================================================
Unwind Info:
@@ -239,7 +231,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 111 (0x0006f) Actual length = 444 (0x0001bc)
+ Function Length : 107 (0x0006b) Actual length = 428 (0x0001ac)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-36 (-1.58%) : 332043.dasm - Xunit.Sdk.TestInvoker`1+<>cDisplayClass48_0+<
@@ -9,17 +9,17 @@
; 10 inlinees with PGO data; 32 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 22, 8.19) byref -> [fp+0x10] this EH-live single-def
+; V00 this [V00,T00] ( 22, 8.19) byref -> [fp+0x18] this EH-live single-def
; V01 TypeCtx [V01,T01] ( 9, 4.27) long -> x19 single-def
; V02 loc0 [V02,T09] ( 3, 2.56) int -> x0 single-def
; V03 loc1 [V03,T07] ( 10, 3.30) ref -> x20 class-hnd exact single-def <<unknown class>>
; V04 loc2 [V04,T25] ( 5, 1.21) int -> x21 single-def
; V05 loc3 [V05,T21] ( 7, 1.69) int -> x22
-; V06 loc4 [V06,T54] ( 4, 0 ) ref -> x25 class-hnd single-def <System.Reflection.ParameterInfo>
-; V07 loc5 [V07,T14] ( 4, 2.14) ref -> x22 class-hnd single-def <System.Threading.Tasks.Task>
-; V08 loc6 [V08 ] ( 6, 2.85) struct ( 8) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
+; V06 loc4 [V06,T54] ( 4, 0 ) ref -> x23 class-hnd single-def <System.Reflection.ParameterInfo>
+; V07 loc5 [V07,T14] ( 4, 2.14) ref -> x21 class-hnd single-def <System.Threading.Tasks.Task>
+; V08 loc6 [V08 ] ( 6, 2.85) struct ( 8) [fp+0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
; V09 loc7 [V09,T38] ( 4, 0.10) ref -> x2 class-hnd single-def <System.Exception>
-; V10 loc8 [V10 ] ( 7, 0.21) struct ( 8) [fp+0x18] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter`1[System.Exception]>
+; V10 loc8 [V10 ] ( 7, 0.21) struct ( 8) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter`1[System.Exception]>
;* V11 loc9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -28,11 +28,11 @@
; V16 tmp4 [V16,T27] ( 3, 1.12) int -> x22
;* V17 tmp5 [V17 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V18 tmp6 [V18 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V19 tmp7 [V19,T63] ( 3, 0 ) long -> x1 "spilling helperCall"
+; V19 tmp7 [V19,T62] ( 3, 0 ) long -> x1 "spilling helperCall"
; V20 tmp8 [V20,T20] ( 3, 1.76) long -> x1 "spilling helperCall"
-; V21 tmp9 [V21,T57] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V22 tmp10 [V22,T40] ( 7, 0.01) ref -> x24 class-hnd exact single-def "dup spill" <System.Object[]>
-; V23 tmp11 [V23,T45] ( 2, 0.00) ref -> x23 class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.ExceptionAggregator>
+; V21 tmp9 [V21,T56] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V22 tmp10 [V22,T40] ( 7, 0.01) ref -> x19 class-hnd exact single-def "dup spill" <System.Object[]>
+; V23 tmp11 [V23,T45] ( 2, 0.00) ref -> x20 class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.ExceptionAggregator>
; V24 tmp12 [V24,T43] ( 3, 0.00) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
;* V25 tmp13 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
;* V26 tmp14 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -44,7 +44,7 @@
;* V32 tmp20 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
;* V33 tmp21 [V33 ] ( 0, 0 ) ref -> zero-ref single-def
;* V34 tmp22 [V34 ] ( 0, 0 ) int -> zero-ref single-def
-; V35 tmp23 [V35,T50] ( 3, 0.00) ref -> x2
+; V35 tmp23 [V35,T50] ( 2, 0.00) ref -> x2
; V36 tmp24 [V36,T44] ( 3, 0.00) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
;* V37 tmp25 [V37 ] ( 0, 0 ) ref -> zero-ref single-def
;* V38 tmp26 [V38 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -56,7 +56,7 @@
;* V44 tmp32 [V44 ] ( 0, 0 ) ref -> zero-ref single-def
;* V45 tmp33 [V45 ] ( 0, 0 ) ref -> zero-ref single-def
;* V46 tmp34 [V46 ] ( 0, 0 ) int -> zero-ref single-def
-; V47 tmp35 [V47,T51] ( 3, 0.00) ref -> x2
+; V47 tmp35 [V47,T51] ( 2, 0.00) ref -> x2
;* V48 tmp36 [V48 ] ( 0, 0 ) ref -> zero-ref single-def
;* V49 tmp37 [V49 ] ( 0, 0 ) ref -> zero-ref single-def
;* V50 tmp38 [V50 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -68,15 +68,15 @@
;* V56 tmp44 [V56 ] ( 0, 0 ) ref -> zero-ref single-def
;* V57 tmp45 [V57 ] ( 0, 0 ) int -> zero-ref single-def
; V58 tmp46 [V58,T52] ( 2, 0.00) ref -> x2
-; V59 tmp47 [V59,T42] ( 4, 0.00) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V60 tmp48 [V60,T58] ( 3, 0 ) ref -> x23 class-hnd exact single-def "dup spill" <System.Object[]>
-; V61 tmp49 [V61,T65] ( 2, 0 ) ref -> x22 class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
-; V62 tmp50 [V62,T66] ( 2, 0 ) ref -> x15 class-hnd single-def "Strict ordering of exceptions for Array store" <System.Array>
-; V63 tmp51 [V63,T67] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V59 tmp47 [V59,T42] ( 4, 0.00) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V60 tmp48 [V60,T57] ( 3, 0 ) ref -> x24 class-hnd exact single-def "dup spill" <System.Object[]>
+; V61 tmp49 [V61,T64] ( 2, 0 ) ref -> x22 class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
+; V62 tmp50 [V62,T65] ( 2, 0 ) ref -> x15 class-hnd single-def "Strict ordering of exceptions for Array store" <System.Array>
+; V63 tmp51 [V63,T66] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V64 tmp52 [V64,T26] ( 3, 1.12) ref -> x0 "guarded devirt return temp"
;* V65 tmp53 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo>
-; V66 tmp54 [V66,T28] ( 3, 1.12) ref -> x27 "guarded devirt return temp"
-; V67 tmp55 [V67,T02] ( 6, 4.49) ref -> x26 single-def "guarded devirt arg temp"
+; V66 tmp54 [V66,T28] ( 3, 1.12) ref -> x23 "guarded devirt return temp"
+; V67 tmp55 [V67,T02] ( 6, 4.49) ref -> x22 single-def "guarded devirt arg temp"
; V68 tmp56 [V68,T11] ( 3, 2.24) ref -> x1 single-def "guarded devirt arg temp"
;* V69 tmp57 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Xunit.Sdk.XunitTestInvoker>
;* V70 tmp58 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
@@ -105,11 +105,11 @@
;* V93 tmp81 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
;* V94 tmp82 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Xunit.Sdk.ExceptionAggregator>
; V95 tmp83 [V95,T53] ( 7, 0 ) ref -> x0 class-hnd single-def "Inlining Arg" <<unknown class>>
-; V96 tmp84 [V96,T59] ( 3, 0 ) ref -> x5 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V97 tmp85 [V97,T56] ( 4, 0 ) int -> x4 single-def "Inline stloc first use temp"
+; V96 tmp84 [V96,T58] ( 3, 0 ) ref -> x5 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V97 tmp85 [V97,T55] ( 4, 0 ) int -> x4 single-def "Inline stloc first use temp"
; V98 tmp86 [V98,T06] ( 4, 3.35) byref -> x14 single-def "Inlining Arg"
;* V99 tmp87 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
-; V100 tmp88 [V100,T03] ( 10, 4.19) ref -> x22 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
+; V100 tmp88 [V100,T03] ( 10, 4.19) ref -> x21 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V101 tmp89 [V101 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
;* V102 tmp90 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Threading.Tasks.TplEventSource>
;* V103 tmp91 [V103 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -117,57 +117,54 @@
;* V105 tmp93 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
;* V106 tmp94 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V107 tmp95 [V107,T33] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V108 tmp96 [V108,T32] ( 3, 0.61) ref -> x27 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
+; V108 tmp96 [V108,T32] ( 3, 0.61) ref -> x23 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
; V109 tmp97 [V109,T35] ( 2, 0 ) ubyte -> x0 "Inline return value spill temp"
; V110 tmp98 [V110,T23] ( 5, 1.52) int -> x1 single-def "Inline stloc first use temp"
; V111 tmp99 [V111,T31] ( 3, 0.88) ref -> x1 class-hnd single-def "Inline stloc first use temp" <System.Object>
; V112 tmp100 [V112,T19] ( 3, 1.83) byref -> x0 single-def "Inlining Arg"
; V113 tmp101 [V113,T24] ( 2, 1.22) ref -> x1 class-hnd exact single-def "Inlining Arg" <System.Object>
-; V114 tmp102 [V114 ] ( 6, 2.85) ref -> [fp+0x20] do-not-enreg[X] addr-exposed "field V08.m_task (fldOffset=0x0)" P-DEP
-; V115 tmp103 [V115 ] ( 7, 0.21) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V10.m_task (fldOffset=0x0)" P-DEP
-; V116 tmp104 [V116,T29] ( 2, 1.02) ref -> x22 single-def "field V80.m_task (fldOffset=0x0)" P-INDEP
+; V114 tmp102 [V114 ] ( 6, 2.85) ref -> [fp+0x28] do-not-enreg[X] addr-exposed "field V08.m_task (fldOffset=0x0)" P-DEP
+; V115 tmp103 [V115 ] ( 7, 0.21) ref -> [fp+0x20] do-not-enreg[X] addr-exposed "field V10.m_task (fldOffset=0x0)" P-DEP
+; V116 tmp104 [V116,T29] ( 2, 1.02) ref -> x21 single-def "field V80.m_task (fldOffset=0x0)" P-INDEP
; V117 tmp105 [V117,T39] ( 2, 0.10) ref -> x0 single-def "field V87.m_task (fldOffset=0x0)" P-INDEP
-; V118 tmp106 [V118,T60] ( 3, 0 ) ref -> x0 single-def "arr expr"
-; V119 tmp107 [V119,T61] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
-; V120 tmp108 [V120,T62] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
-; V121 tmp109 [V121,T68] ( 2, 0 ) ref -> x24 single-def "argument with side effect"
-; V122 tmp110 [V122,T69] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V118 tmp106 [V118,T59] ( 3, 0 ) ref -> x0 single-def "arr expr"
+; V119 tmp107 [V119,T60] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
+; V120 tmp108 [V120,T61] ( 3, 0 ) ref -> x0 single-def "argument with side effect"
+; V121 tmp109 [V121,T67] ( 2, 0 ) ref -> x23 single-def "argument with side effect"
+; V122 tmp110 [V122,T68] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V123 tmp111 [V123,T05] ( 3, 3.37) ref -> x0 single-def "argument with side effect"
; V124 tmp112 [V124,T13] ( 2, 2.24) long -> x0 "argument with side effect"
-; V125 tmp113 [V125,T70] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V125 tmp113 [V125,T69] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V126 tmp114 [V126,T46] ( 2, 0.00) ref -> x1 single-def "argument with side effect"
-; V127 tmp115 [V127,T72] ( 2, 0 ) int -> x1 "argument with side effect"
-; V128 tmp116 [V128,T71] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
-; V129 PSPSym [V129,T30] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[V] "PSPSym"
+; V127 tmp115 [V127,T71] ( 2, 0 ) int -> x1 "argument with side effect"
+; V128 tmp116 [V128,T70] ( 2, 0 ) ref -> x19 single-def "argument with side effect"
+; V129 PSPSym [V129,T30] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V130 cse0 [V130,T22] ( 3, 1.69) ref -> x0 "CSE - moderate"
; V131 cse1 [V131,T18] ( 6, 1.83) byref -> x0 multi-def "CSE - moderate"
-; V132 cse2 [V132,T55] ( 4, 0 ) ref -> x2 multi-def "CSE - conservative"
-; V133 cse3 [V133,T47] ( 3, 0.00) long -> x25 "CSE - conservative"
-; V134 rat0 [V134,T12] ( 3, 2.24) long -> x0 "runtime lookup"
-; V135 rat1 [V135,T08] ( 3, 3.14) long -> x0 "fgMakeTemp is creating a new local variable"
-; V136 rat2 [V136,T10] ( 3, 2.46) long -> x0 "spilling expr"
-; V137 rat3 [V137,T17] ( 3, 1.97) long -> x1 "fgMakeTemp is creating a new local variable"
-; V138 rat4 [V138,T64] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
+; V132 cse2 [V132,T47] ( 3, 0.00) long -> x23 "CSE - conservative"
+; V133 rat0 [V133,T12] ( 3, 2.24) long -> x0 "runtime lookup"
+; V134 rat1 [V134,T08] ( 3, 3.14) long -> x0 "fgMakeTemp is creating a new local variable"
+; V135 rat2 [V135,T10] ( 3, 2.46) long -> x0 "spilling expr"
+; V136 rat3 [V136,T17] ( 3, 1.97) long -> x1 "fgMakeTemp is creating a new local variable"
+; V137 rat4 [V137,T63] ( 3, 0 ) long -> x1 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M13906_IG01: ; bbWeight=1, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x80]!
- stp x19, x20, [sp, #0x38]
- stp x21, x22, [sp, #0x48]
- stp x23, x24, [sp, #0x58]
- stp x25, x26, [sp, #0x68]
- str x27, [sp, #0x78]
+ stp fp, lr, [sp, #-0x70]!
+ stp x19, x20, [sp, #0x40]
+ stp x21, x22, [sp, #0x50]
+ stp x23, x24, [sp, #0x60]
mov fp, sp
- stp xzr, xzr, [fp, #0x18] // [V10 loc8], [V08 loc6]
- add x2, sp, #128
- stp x1, x2, [fp, #0x28] // [V129 PSPSym]
- str x0, [fp, #0x10] // [V00 this]
+ stp xzr, xzr, [fp, #0x20] // [V10 loc8], [V08 loc6]
+ add x2, sp, #112
+ stp x1, x2, [fp, #0x30] // [V129 PSPSym]
+ str x0, [fp, #0x18] // [V00 this]
; GC ptr vars +{V00}
mov x3, x0
; byrRegs +[x3]
mov x19, x1
- ;; size=52 bbWeight=1 PerfScore 11.00
+ ;; size=44 bbWeight=1 PerfScore 9.00
G_M13906_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, gcvars, byref
ldr w0, [x3, #0x08]
ldr x20, [x3]
@@ -175,7 +172,7 @@ G_M13906_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00
;; size=8 bbWeight=1 PerfScore 6.00
G_M13906_IG03: ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x3]
- cbz w0, G_M13906_IG39
+ cbz w0, G_M13906_IG36
;; size=4 bbWeight=1.00 PerfScore 1.00
G_M13906_IG04: ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
cmp w0, #1
@@ -212,15 +209,15 @@ G_M13906_IG07: ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
bne G_M13906_IG13
;; size=8 bbWeight=0.56 PerfScore 0.84
G_M13906_IG08: ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ldp x26, x1, [x20, #0x08]
- ; gcrRegs +[x1 x26]
- ldr x0, [x26]
+ ldp x22, x1, [x20, #0x08]
+ ; gcrRegs +[x1 x22]
+ ldr x0, [x22]
movz x4, #0xD1FFAB1E
movk x4, #0xD1FFAB1E LSL #16
movk x4, #0xD1FFAB1E LSL #32
cmp x0, x4
bne G_M13906_IG24
- ldp x0, x4, [x26, #0x38]
+ ldp x0, x4, [x22, #0x38]
; gcrRegs +[x0 x4]
mov w2, wzr
mov x3, xzr
@@ -229,21 +226,21 @@ G_M13906_IG08: ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
ldr x6, [x6, #0x60]
ldr x6, [x6, #0x30]
blr x6
- ; gcrRegs -[x1 x4 x26]
+ ; gcrRegs -[x1 x4 x22]
; gcr arg pop 0
- mov x27, x0
- ; gcrRegs +[x27]
+ mov x23, x0
+ ; gcrRegs +[x23]
;; size=64 bbWeight=0.56 PerfScore 14.59
-G_M13906_IG09: ; bbWeight=0.56, gcrefRegs=8100000 {x20 x27}, byrefRegs=0000 {}, byref, isz
+G_M13906_IG09: ; bbWeight=0.56, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x0, [x19, #0x38]
ldr x0, [x0]
ldr x0, [x0, #0x10]
- cbz x0, G_M13906_IG31
- b G_M13906_IG30
+ cbz x0, G_M13906_IG28
+ b G_M13906_IG27
;; size=20 bbWeight=0.56 PerfScore 6.17
G_M13906_IG10: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x27]
+ ; gcrRegs -[x23]
ldr x0, [x20, #0x08]
; gcrRegs +[x0]
ldr x0, [x0, #0x38]
@@ -255,9 +252,9 @@ G_M13906_IG10: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
ldr w1, [x0, #0x08]
cmp w1, #0
bls G_M13906_IG15
- ldr x25, [x0, #0x10]
- ; gcrRegs +[x25]
- mov x0, x25
+ ldr x23, [x0, #0x10]
+ ; gcrRegs +[x23]
+ mov x0, x23
...
-4 (-1.45%) : 89354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
@@ -40,7 +40,6 @@
;* V28 tmp26 [V28 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V14.array (fldOffset=0x0)" P-DEP
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref "field V15.array (fldOffset=0x0)" P-INDEP
;* V30 tmp28 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V23.array (fldOffset=0x0)" P-INDEP
-; V31 cse0 [V31,T10] ( 2, 0 ) long -> x0 "CSE - conservative"
;
; Lcl frame size = 0
@@ -108,7 +107,6 @@ G_M22152_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
- add x0, x0, #0xD1FFAB1E
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
mov x20, x0
@@ -136,7 +134,7 @@ G_M22152_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
b G_M22152_IG03
- ;; size=100 bbWeight=0 PerfScore 0.00
+ ;; size=96 bbWeight=0 PerfScore 0.00
G_M22152_IG08: ; bbWeight=0, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] +[x1]
ldr x0, [x20, #0x08]
@@ -160,7 +158,7 @@ G_M22152_IG09: ; bbWeight=0, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
b G_M22152_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 276, prolog size 16, PerfScore 31.00, instruction count 69, allocated bytes for code 276 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
+Total bytes of code 272, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 272 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
; ============================================================
Unwind Info:
@@ -171,7 +169,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 69 (0x00045) Actual length = 276 (0x000114)
+ Function Length : 68 (0x00044) Actual length = 272 (0x000110)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+1.96%) : 298522.dasm - System.Linq.Parallel.HashRepartitionStream
3[int,int,int]:.ctor(int,System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[int],System.Collections.Generic.IEqualityComparer1[int]):this (Tier1)@@ -9,13 +9,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 11, 9.13) ref -> x19 this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,int,int]>
+; V00 this [V00,T00] ( 12, 9.19) ref -> x19 this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,int,int]>
; V01 arg1 [V01,T01] ( 5, 4.06) int -> x20 single-def
; V02 arg2 [V02,T02] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
; V03 arg3 [V03,T03] ( 3, 3 ) ref -> x22 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
; V04 arg4 [V04,T04] ( 3, 3 ) ref -> x23 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 cse0 [V06,T05] ( 3, 0.19) int -> x0 "CSE - conservative"
;
; Lcl frame size = 8
@@ -96,10 +95,11 @@ G_M63590_IG04: ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=800
cmp w2, w0, ASR #31
bne G_M63590_IG05
str w0, [x19, #0x30]
+ ldr w0, [x19, #0x30]
cmp w0, w20
blt G_M63590_IG04
b G_M63590_IG03
- ;; size=40 bbWeight=0.06 PerfScore 0.76
+ ;; size=44 bbWeight=0.06 PerfScore 0.95
G_M63590_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
bl CORINFO_HELP_OVERFLOW
@@ -107,7 +107,7 @@ G_M63590_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 204, prolog size 40, PerfScore 32.26, instruction count 51, allocated bytes for code 204 (MethodHash=b0a20799) for method System.Linq.Parallel.HashRepartitionStream`3[int,int,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
+Total bytes of code 208, prolog size 40, PerfScore 32.45, instruction count 52, allocated bytes for code 208 (MethodHash=b0a20799) for method System.Linq.Parallel.HashRepartitionStream`3[int,int,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
; ============================================================
Unwind Info:
@@ -118,7 +118,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 52 (0x00034) Actual length = 208 (0x0000d0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+1.96%) : 298851.dasm - System.Linq.Parallel.HashRepartitionStream
3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer1[int]):this (Tier1)@@ -9,13 +9,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 11, 9.19) ref -> x19 this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]>
+; V00 this [V00,T00] ( 12, 9.29) ref -> x19 this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]>
; V01 arg1 [V01,T01] ( 5, 4.10) int -> x20 single-def
; V02 arg2 [V02,T02] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
; V03 arg3 [V03,T03] ( 3, 3 ) ref -> x22 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired]>
; V04 arg4 [V04,T04] ( 3, 3 ) ref -> x23 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 cse0 [V06,T05] ( 3, 0.29) int -> x0 "CSE - conservative"
;
; Lcl frame size = 8
@@ -96,10 +95,11 @@ G_M33830_IG04: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=800
cmp w2, w0, ASR #31
bne G_M33830_IG05
str w0, [x19, #0x30]
+ ldr w0, [x19, #0x30]
cmp w0, w20
blt G_M33830_IG04
b G_M33830_IG03
- ;; size=40 bbWeight=0.10 PerfScore 1.16
+ ;; size=44 bbWeight=0.10 PerfScore 1.45
G_M33830_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
bl CORINFO_HELP_OVERFLOW
@@ -107,7 +107,7 @@ G_M33830_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 204, prolog size 40, PerfScore 32.66, instruction count 51, allocated bytes for code 204 (MethodHash=7f8a7bd9) for method System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
+Total bytes of code 208, prolog size 40, PerfScore 32.95, instruction count 52, allocated bytes for code 208 (MethodHash=7f8a7bd9) for method System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
; ============================================================
Unwind Info:
@@ -118,7 +118,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 52 (0x00034) Actual length = 208 (0x0000d0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+1.96%) : 299195.dasm - System.Linq.Parallel.HashRepartitionStream
3[System.Collections.Generic.KeyValuePair2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer1[System.Collections.Generic.KeyValuePair2[int,int]]):this (Tier1)@@ -9,13 +9,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 11, 9.22) ref -> x19 this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]>
+; V00 this [V00,T00] ( 12, 9.33) ref -> x19 this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]>
; V01 arg1 [V01,T01] ( 5, 4.11) int -> x20 single-def
; V02 arg2 [V02,T02] ( 3, 3 ) ref -> x21 class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
; V03 arg3 [V03,T03] ( 3, 3 ) ref -> x22 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired]>
; V04 arg4 [V04,T04] ( 3, 3 ) ref -> x23 class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[int,int]]>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 cse0 [V06,T05] ( 3, 0.33) int -> x0 "CSE - conservative"
;
; Lcl frame size = 8
@@ -96,10 +95,11 @@ G_M10918_IG04: ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=800
cmp w2, w0, ASR #31
bne G_M10918_IG05
str w0, [x19, #0x30]
+ ldr w0, [x19, #0x30]
cmp w0, w20
blt G_M10918_IG04
b G_M10918_IG03
- ;; size=40 bbWeight=0.11 PerfScore 1.33
+ ;; size=44 bbWeight=0.11 PerfScore 1.67
G_M10918_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
bl CORINFO_HELP_OVERFLOW
@@ -107,7 +107,7 @@ G_M10918_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 204, prolog size 40, PerfScore 32.83, instruction count 51, allocated bytes for code 204 (MethodHash=0e8dd559) for method System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[int,int]]):this (Tier1)
+Total bytes of code 208, prolog size 40, PerfScore 33.17, instruction count 52, allocated bytes for code 208 (MethodHash=0e8dd559) for method System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[int,int]]):this (Tier1)
; ============================================================
Unwind Info:
@@ -118,7 +118,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 51 (0x00033) Actual length = 204 (0x0000cc)
+ Function Length : 52 (0x00034) Actual length = 208 (0x0000d0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
-12 (-2.24%) : 304834.dasm - System.Threading.Channels.Tests.ChannelTests+TestChannelWriter
1[int]:WaitToWriteAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask1[ubyte]:this (FullOpts)@@ -11,26 +11,26 @@
; V00 this [V00,T00] ( 5, 4.50) ref -> x0 this class-hnd single-def <System.Threading.Channels.Tests.ChannelTests+TestChannelWriter`1[int]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03 ] ( 5, 5 ) struct (16) [fp+0x38] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+; V03 tmp1 [V03 ] ( 5, 5 ) struct (16) [fp+0x30] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
; V04 tmp2 [V04,T09] ( 2, 2 ) ref -> x1 class-hnd single-def "dup spill" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
; V07 tmp5 [V07,T08] ( 4, 2 ) ref -> x1
-; V08 tmp6 [V08 ] ( 5, 5 ) struct (16) [fp+0x28] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+; V08 tmp6 [V08 ] ( 5, 5 ) struct (16) [fp+0x20] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
; V09 tmp7 [V09,T01] ( 5, 5 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
-; V10 tmp8 [V10 ] ( 5, 5 ) struct (16) [fp+0x18] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+; V10 tmp8 [V10 ] ( 5, 5 ) struct (16) [fp+0x10] do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
;* V12 tmp10 [V12 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-; V13 tmp11 [V13,T24] ( 2, 1 ) ref -> x0 single-def
+; V13 tmp11 [V13,T23] ( 2, 1 ) ref -> x0 single-def
;* V14 tmp12 [V14 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
;* V15 tmp13 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V16 tmp14 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V17 tmp15 [V17,T25] ( 2, 1 ) ref -> x21 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V17 tmp15 [V17,T24] ( 2, 1 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V18 tmp16 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
; V19 tmp17 [V19,T10] ( 2, 2 ) ref -> x19 class-hnd single-def "Inlining Arg" <System.TimeProvider>
;* V20 tmp18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V21 tmp19 [V21,T03] ( 3, 3 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V22 tmp20 [V22,T30] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V21 tmp19 [V21,T03] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V22 tmp20 [V22,T29] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V23 tmp21 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V24 tmp22 [V24 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -70,24 +70,24 @@
; V59 tmp57 [V59,T05] ( 3, 3 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[ubyte]>
;* V60 tmp58 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
;* V61 tmp59 [V61 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-; V62 tmp60 [V62,T26] ( 2, 1 ) ref -> x0 single-def
+; V62 tmp60 [V62,T25] ( 2, 1 ) ref -> x0 single-def
;* V63 tmp61 [V63 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
; V64 tmp62 [V64,T07] ( 1, 1 ) ref -> x1 single-def "field V01._source (fldOffset=0x0)" P-INDEP
-; V65 tmp63 [V65,T12] ( 2, 1.50) ref -> [fp+0x38] do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
-; V66 tmp64 [V66,T15] ( 2, 1.50) short -> [fp+0x40] do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
-; V67 tmp65 [V67,T16] ( 2, 1.50) ubyte -> [fp+0x42] do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
-; V68 tmp66 [V68,T17] ( 2, 1.50) ubyte -> [fp+0x43] do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-; V69 tmp67 [V69,T13] ( 2, 1.50) ref -> [fp+0x28] do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
-; V70 tmp68 [V70,T18] ( 2, 1.50) short -> [fp+0x30] do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
-; V71 tmp69 [V71,T19] ( 2, 1.50) ubyte -> [fp+0x32] do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
-; V72 tmp70 [V72,T20] ( 2, 1.50) ubyte -> [fp+0x33] do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-; V73 tmp71 [V73,T14] ( 2, 1.50) ref -> [fp+0x18] do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
-; V74 tmp72 [V74,T21] ( 2, 1.50) short -> [fp+0x20] do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
-; V75 tmp73 [V75,T22] ( 2, 1.50) ubyte -> [fp+0x22] do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
-; V76 tmp74 [V76,T23] ( 2, 1.50) ubyte -> [fp+0x23] do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+; V65 tmp63 [V65,T11] ( 2, 1.50) ref -> [fp+0x30] do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
+; V66 tmp64 [V66,T14] ( 2, 1.50) short -> [fp+0x38] do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
+; V67 tmp65 [V67,T15] ( 2, 1.50) ubyte -> [fp+0x3A] do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
+; V68 tmp66 [V68,T16] ( 2, 1.50) ubyte -> [fp+0x3B] do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+; V69 tmp67 [V69,T12] ( 2, 1.50) ref -> [fp+0x20] do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
+; V70 tmp68 [V70,T17] ( 2, 1.50) short -> [fp+0x28] do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
+; V71 tmp69 [V71,T18] ( 2, 1.50) ubyte -> [fp+0x2A] do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
+; V72 tmp70 [V72,T19] ( 2, 1.50) ubyte -> [fp+0x2B] do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+; V73 tmp71 [V73,T13] ( 2, 1.50) ref -> [fp+0x10] do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
+; V74 tmp72 [V74,T20] ( 2, 1.50) short -> [fp+0x18] do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
+; V75 tmp73 [V75,T21] ( 2, 1.50) ubyte -> [fp+0x1A] do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
+; V76 tmp74 [V76,T22] ( 2, 1.50) ubyte -> [fp+0x1B] do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
;* V77 tmp75 [V77 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._source (fldOffset=0x0)" P-INDEP
;* V78 tmp76 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "field V16._source (fldOffset=0x0)" P-INDEP
-;* V79 tmp77 [V79,T29] ( 0, 0 ) ref -> zero-ref single-def "field V18._source (fldOffset=0x0)" P-INDEP
+;* V79 tmp77 [V79,T28] ( 0, 0 ) ref -> zero-ref single-def "field V18._source (fldOffset=0x0)" P-INDEP
;* V80 tmp78 [V80 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V24._source (fldOffset=0x0)" P-DEP
;* V81 tmp79 [V81 ] ( 0, 0 ) ref -> zero-ref single-def "field V32._node (fldOffset=0x0)" P-DEP
;* V82 tmp80 [V82 ] ( 0, 0 ) long -> zero-ref single-def "field V32._id (fldOffset=0x8)" P-DEP
@@ -96,24 +96,22 @@
;* V85 tmp83 [V85 ] ( 0, 0 ) ref -> zero-ref single-def "field V51._node (fldOffset=0x0)" P-INDEP
;* V86 tmp84 [V86 ] ( 0, 0 ) long -> zero-ref single-def "field V51._id (fldOffset=0x8)" P-INDEP
; V87 tmp85 [V87,T06] ( 3, 3 ) ref -> x0 single-def "argument with side effect"
-;* V88 cse0 [V88,T31] ( 0, 0 ) long -> zero-ref "CSE - moderate"
-; V89 cse1 [V89,T27] ( 2, 1 ) long -> x0 "CSE - moderate"
+;* V88 cse0 [V88,T30] ( 0, 0 ) long -> zero-ref "CSE - moderate"
+; V89 cse1 [V89,T26] ( 2, 1 ) long -> x0 "CSE - moderate"
; V90 cse2 [V90,T02] ( 6, 3 ) long -> x19 multi-def "CSE - aggressive"
-; V91 cse3 [V91,T11] ( 3, 1.50) long -> x20 "CSE - conservative"
-; V92 rat0 [V92,T28] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
+; V91 rat0 [V91,T27] ( 2, 1 ) long -> x0 "Spilling to split statement for tree"
;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M56691_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
- stp x19, x20, [sp, #0x48]
- str x21, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
+ stp x19, x20, [sp, #0x40]
mov fp, sp
- add x9, fp, #24
+ add x9, fp, #16
movi v16.16b, #0
stp q16, q16, [x9]
stp xzr, xzr, [x9, #0x20]
- ;; size=32 bbWeight=1 PerfScore 6.50
+ ;; size=28 bbWeight=1 PerfScore 5.50
G_M56691_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
ldp w2, w1, [x0, #0x10]
@@ -135,21 +133,20 @@ G_M56691_IG03: ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
movk x19, #0xD1FFAB1E LSL #32
ldr x0, [x19, #0xD1FFAB1E]
; gcrRegs +[x0]
- str x0, [fp, #0x18] // [V73 tmp71]
- strb wzr, [fp, #0x22] // [V75 tmp73]
+ str x0, [fp, #0x10] // [V73 tmp71]
+ strb wzr, [fp, #0x1A] // [V75 tmp73]
mov w0, #1
; gcrRegs -[x0]
- strb w0, [fp, #0x23] // [V76 tmp74]
- strh wzr, [fp, #0x20] // [V74 tmp72]
- ldp x0, x1, [fp, #0x18] // [V10 tmp8], [V10 tmp8+0x08]
+ strb w0, [fp, #0x1B] // [V76 tmp74]
+ strh wzr, [fp, #0x18] // [V74 tmp72]
+ ldp x0, x1, [fp, #0x10] // [V10 tmp8], [V10 tmp8+0x08]
; gcrRegs +[x0]
;; size=72 bbWeight=0.50 PerfScore 13.50
G_M56691_IG04: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x58]
- ldp x19, x20, [sp, #0x48]
- ldp fp, lr, [sp], #0x60
+ ldp x19, x20, [sp, #0x40]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M56691_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
@@ -167,14 +164,13 @@ G_M56691_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x20, #0xD1FFAB1E
- movk x20, #0xD1FFAB1E LSL #16
- movk x20, #0xD1FFAB1E LSL #32
- add x0, x20, #0xD1FFAB1E
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
- mov x21, x0
- ; gcrRegs +[x21]
+ mov x20, x0
+ ; gcrRegs +[x20]
mov x2, x19
; gcrRegs +[x2]
mov w1, #1
@@ -195,7 +191,9 @@ G_M56691_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x1, [x0]
; gcrRegs +[x1]
cbnz x1, G_M56691_IG09
- mov x0, x20
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs -[x1] +[x0]
mov x1, x0
@@ -206,9 +204,9 @@ G_M56691_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x15, [x14]
; gcrRegs +[x15]
cbnz x15, G_M56691_IG08
- ;; size=140 bbWeight=0.50 PerfScore 15.25
+ ;; size=144 bbWeight=0.50 PerfScore 15.50
G_M56691_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0-x1 x15 x21]
+ ; gcrRegs -[x0-x1 x15 x20]
movz x0, #0xD1FFAB1E // code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -216,8 +214,8 @@ G_M56691_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blr x0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M56691_IG08: ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x1 x15 x21]
+G_M56691_IG08: ; bbWeight=0.50, gcrefRegs=108002 {x1 x15 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x1 x15 x20]
add x14, x1, #8
; byrRegs +[x14]
bl CORINFO_HELP_ASSIGN_REF
@@ -235,31 +233,30 @@ G_M56691_IG08: ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
;; size=44 bbWeight=0.50 PerfScore 3.50
-G_M56691_IG09: ; bbWeight=0.50, gcrefRegs=200002 {x1 x21}, byrefRegs=0000 {}, byref, isz
- mov x0, x21
+G_M56691_IG09: ; bbWeight=0.50, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
+ mov x0, x20
; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for System.Threading.Tasks.Task:ContinueWith[ubyte](System.Func`2[System.Threading.Tasks.Task,ubyte]):System.Threading.Tasks.Task`1[ubyte]:this
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x1 x21]
+ ; gcrRegs -[x1 x20]
cbz x0, G_M56691_IG14
- str x0, [fp, #0x28] // [V69 tmp67]
- strb wzr, [fp, #0x32] // [V71 tmp69]
+ str x0, [fp, #0x20] // [V69 tmp67]
+ strb wzr, [fp, #0x2A] // [V71 tmp69]
mov w0, #1
; gcrRegs -[x0]
- strb w0, [fp, #0x33] // [V72 tmp70]
- strh wzr, [fp, #0x30] // [V70 tmp68]
- ldp x0, x1, [fp, #0x28] // [V08 tmp6], [V08 tmp6+0x08]
+ strb w0, [fp, #0x2B] // [V72 tmp70]
+ strh wzr, [fp, #0x28] // [V70 tmp68]
+ ldp x0, x1, [fp, #0x20] // [V08 tmp6], [V08 tmp6+0x08]
; gcrRegs +[x0]
;; size=52 bbWeight=0.50 PerfScore 7.25
G_M56691_IG10: ; bbWeight=0.50, epilog, nogc, extend
- ldr x21, [sp, #0x58]
- ldp x19, x20, [sp, #0x48]
- ldp fp, lr, [sp], #0x60
+ ldp x19, x20, [sp, #0x40]
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=16 bbWeight=0.50 PerfScore 2.50
+ ;; size=12 bbWeight=0.50 PerfScore 1.50
G_M56691_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0]
movz x19, #0xD1FFAB1E
@@ -267,21 +264,20 @@ G_M56691_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
movk x19, #0xD1FFAB1E LSL #32
ldr x0, [x19, #0xD1FFAB1E]
; gcrRegs +[x0]
- str x0, [fp, #0x38] // [V65 tmp63]
- strb wzr, [fp, #0x42] // [V67 tmp65]
+ str x0, [fp, #0x30] // [V65 tmp63]
+ strb wzr, [fp, #0x3A] // [V67 tmp65]
mov w0, #1
; gcrRegs -[x0]
- strb w0, [fp, #0x43] // [V68 tmp66]
- strh wzr, [fp, #0x40] // [V66 tmp64]
- ldp x0, x1, [fp, #0x38] // [V03 tmp1], [V03 tmp1+0x08]
+ strb w0, [fp, #0x3B] // [V68 tmp66]
+ strh wzr, [fp, #0x38] // [V66 tmp64]
+ ldp x0, x1, [fp, #0x30] // [V03 tmp1], [V03 tmp1+0x08]
; gcrRegs +[x0]
...
-12 (-1.04%) : 310870.dasm - System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<
@@ -9,7 +9,7 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 39, 33 ) ref -> [fp+0x10] this class-hnd EH-live single-def <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
-; V01 loc0 [V01,T24] ( 2, 2 ) int -> x1 single-def
+; V01 loc0 [V01,T23] ( 2, 2 ) int -> x1 single-def
; V02 loc1 [V02 ] ( 6, 6 ) struct ( 8) [fp+0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
; V03 loc2 [V03 ] ( 6, 6 ) ref -> [fp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
; V04 loc3 [V04 ] ( 6, 6 ) struct ( 8) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
@@ -17,7 +17,7 @@
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V09 tmp2 [V09,T32] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V09 tmp2 [V09,T31] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V10 tmp3 [V10 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V11 tmp4 [V11 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -27,15 +27,15 @@
;* V16 tmp9 [V16 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V17 tmp10 [V17 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V18 tmp11 [V18 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V19 tmp12 [V19,T33] ( 2, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V19 tmp12 [V19,T32] ( 2, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V20 tmp13 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V21 tmp14 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V22 tmp15 [V22,T18] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V22 tmp15 [V22,T17] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V23 tmp16 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V24 tmp17 [V24,T09] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V24 tmp17 [V24,T08] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V25 tmp18 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V26 tmp19 [V26,T03] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V27 tmp20 [V27,T28] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V26 tmp19 [V26,T02] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V27 tmp20 [V27,T27] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V29 tmp22 [V29 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -73,19 +73,19 @@
;* V62 tmp55 [V62 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V63 tmp56 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V64 tmp57 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V65 tmp58 [V65,T10] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V65 tmp58 [V65,T09] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V66 tmp59 [V66 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V67 tmp60 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V68 tmp61 [V68 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V69 tmp62 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V70 tmp63 [V70 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V71 tmp64 [V71 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V72 tmp65 [V72,T19] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V72 tmp65 [V72,T18] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V73 tmp66 [V73 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V74 tmp67 [V74,T11] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V74 tmp67 [V74,T10] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V75 tmp68 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V76 tmp69 [V76,T04] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V77 tmp70 [V77,T29] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V76 tmp69 [V76,T03] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V77 tmp70 [V77,T28] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V78 tmp71 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V79 tmp72 [V79 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V80 tmp73 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -122,19 +122,19 @@
;* V111 tmp104 [V111 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V112 tmp105 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V113 tmp106 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V114 tmp107 [V114,T12] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V114 tmp107 [V114,T11] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V115 tmp108 [V115 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V116 tmp109 [V116 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V117 tmp110 [V117 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V118 tmp111 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V119 tmp112 [V119 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V120 tmp113 [V120 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
-; V121 tmp114 [V121,T20] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+; V121 tmp114 [V121,T19] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
;* V122 tmp115 [V122 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-; V123 tmp116 [V123,T13] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V123 tmp116 [V123,T12] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V124 tmp117 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-; V125 tmp118 [V125,T05] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V126 tmp119 [V126,T30] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+; V125 tmp118 [V125,T04] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V126 tmp119 [V126,T29] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V127 tmp120 [V127 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V128 tmp121 [V128 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V129 tmp122 [V129 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -171,19 +171,19 @@
;* V160 tmp153 [V160 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V161 tmp154 [V161 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V162 tmp155 [V162 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V163 tmp156 [V163,T14] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V163 tmp156 [V163,T13] ( 2, 4 ) ref -> x14 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V164 tmp157 [V164 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V165 tmp158 [V165 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V166 tmp159 [V166 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V167 tmp160 [V167 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
-; V168 tmp161 [V168,T06] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
-; V169 tmp162 [V169,T07] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V168 tmp161 [V168,T05] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
+; V169 tmp162 [V169,T06] ( 3, 6 ) byref -> x0 single-def "Inlining Arg"
; V170 tmp163 [V170 ] ( 6, 6 ) ref -> [fp+0x30] do-not-enreg[X] addr-exposed "field V02.m_task (fldOffset=0x0)" P-DEP
; V171 tmp164 [V171 ] ( 6, 6 ) ref -> [fp+0x20] do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
; V172 tmp165 [V172 ] ( 6, 4 ) ref -> [fp+0x18] do-not-enreg[X] addr-exposed "field V05.m_task (fldOffset=0x0)" P-DEP
;* V173 tmp166 [V173 ] ( 0, 0 ) ref -> zero-ref single-def "field V20._source (fldOffset=0x0)" P-INDEP
;* V174 tmp167 [V174 ] ( 0, 0 ) ref -> zero-ref single-def "field V21._source (fldOffset=0x0)" P-INDEP
-;* V175 tmp168 [V175,T25] ( 0, 0 ) ref -> zero-ref single-def "field V23._source (fldOffset=0x0)" P-INDEP
+;* V175 tmp168 [V175,T24] ( 0, 0 ) ref -> zero-ref single-def "field V23._source (fldOffset=0x0)" P-INDEP
;* V176 tmp169 [V176 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V29._source (fldOffset=0x0)" P-DEP
;* V177 tmp170 [V177 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._node (fldOffset=0x0)" P-DEP
;* V178 tmp171 [V178 ] ( 0, 0 ) long -> zero-ref single-def "field V36._id (fldOffset=0x8)" P-DEP
@@ -191,10 +191,10 @@
;* V180 tmp173 [V180 ] ( 0, 0 ) long -> zero-ref "field V54._id (fldOffset=0x8)" P-DEP
;* V181 tmp174 [V181 ] ( 0, 0 ) ref -> zero-ref single-def "field V55._node (fldOffset=0x0)" P-INDEP
;* V182 tmp175 [V182 ] ( 0, 0 ) long -> zero-ref single-def "field V55._id (fldOffset=0x8)" P-INDEP
-; V183 tmp176 [V183,T21] ( 2, 2 ) ref -> x20 single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
+; V183 tmp176 [V183,T20] ( 2, 2 ) ref -> x20 single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
;* V184 tmp177 [V184 ] ( 0, 0 ) ref -> zero-ref single-def "field V70._source (fldOffset=0x0)" P-INDEP
;* V185 tmp178 [V185 ] ( 0, 0 ) ref -> zero-ref single-def "field V71._source (fldOffset=0x0)" P-INDEP
-;* V186 tmp179 [V186,T26] ( 0, 0 ) ref -> zero-ref single-def "field V73._source (fldOffset=0x0)" P-INDEP
+;* V186 tmp179 [V186,T25] ( 0, 0 ) ref -> zero-ref single-def "field V73._source (fldOffset=0x0)" P-INDEP
;* V187 tmp180 [V187 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V79._source (fldOffset=0x0)" P-DEP
;* V188 tmp181 [V188 ] ( 0, 0 ) ref -> zero-ref single-def "field V85._node (fldOffset=0x0)" P-DEP
;* V189 tmp182 [V189 ] ( 0, 0 ) long -> zero-ref single-def "field V85._id (fldOffset=0x8)" P-DEP
@@ -202,10 +202,10 @@
;* V191 tmp184 [V191 ] ( 0, 0 ) long -> zero-ref "field V103._id (fldOffset=0x8)" P-DEP
;* V192 tmp185 [V192 ] ( 0, 0 ) ref -> zero-ref single-def "field V104._node (fldOffset=0x0)" P-INDEP
;* V193 tmp186 [V193 ] ( 0, 0 ) long -> zero-ref single-def "field V104._id (fldOffset=0x8)" P-INDEP
-; V194 tmp187 [V194,T22] ( 2, 2 ) ref -> x20 single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
+; V194 tmp187 [V194,T21] ( 2, 2 ) ref -> x20 single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
;* V195 tmp188 [V195 ] ( 0, 0 ) ref -> zero-ref single-def "field V119._source (fldOffset=0x0)" P-INDEP
;* V196 tmp189 [V196 ] ( 0, 0 ) ref -> zero-ref single-def "field V120._source (fldOffset=0x0)" P-INDEP
-;* V197 tmp190 [V197,T27] ( 0, 0 ) ref -> zero-ref single-def "field V122._source (fldOffset=0x0)" P-INDEP
+;* V197 tmp190 [V197,T26] ( 0, 0 ) ref -> zero-ref single-def "field V122._source (fldOffset=0x0)" P-INDEP
;* V198 tmp191 [V198 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V128._source (fldOffset=0x0)" P-DEP
;* V199 tmp192 [V199 ] ( 0, 0 ) ref -> zero-ref single-def "field V134._node (fldOffset=0x0)" P-DEP
;* V200 tmp193 [V200 ] ( 0, 0 ) long -> zero-ref single-def "field V134._id (fldOffset=0x8)" P-DEP
@@ -213,14 +213,13 @@
;* V202 tmp195 [V202 ] ( 0, 0 ) long -> zero-ref "field V152._id (fldOffset=0x8)" P-DEP
;* V203 tmp196 [V203 ] ( 0, 0 ) ref -> zero-ref single-def "field V153._node (fldOffset=0x0)" P-INDEP
;* V204 tmp197 [V204 ] ( 0, 0 ) long -> zero-ref single-def "field V153._id (fldOffset=0x8)" P-INDEP
-; V205 tmp198 [V205,T23] ( 2, 2 ) ref -> x20 single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
-; V206 tmp199 [V206,T15] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V207 tmp200 [V207,T16] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V208 tmp201 [V208,T17] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V209 PSPSym [V209,T31] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
+; V205 tmp198 [V205,T22] ( 2, 2 ) ref -> x20 single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
+; V206 tmp199 [V206,T14] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V207 tmp200 [V207,T15] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V208 tmp201 [V208,T16] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
+; V209 PSPSym [V209,T30] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V210 cse0 [V210,T01] ( 6, 6 ) long -> x19 multi-def "CSE - aggressive"
-; V211 cse1 [V211,T02] ( 6, 6 ) long -> x1 multi-def "CSE - moderate"
-; V212 rat0 [V212,T08] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
+; V211 rat0 [V211,T07] ( 3, 6 ) int -> x1 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 48
@@ -260,11 +259,10 @@ G_M44969_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -329,7 +327,7 @@ G_M44969_IG04: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcrRegs -[x1]
; gcr arg pop 0
b G_M44969_IG16
- ;; size=208 bbWeight=1 PerfScore 51.50
+ ;; size=204 bbWeight=1 PerfScore 51.00
G_M44969_IG05: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs +[x0]
ldr x1, [x0, #0x48]
@@ -366,11 +364,10 @@ G_M44969_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -435,7 +432,7 @@ G_M44969_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcrRegs -[x1]
; gcr arg pop 0
b G_M44969_IG16
- ;; size=212 bbWeight=1 PerfScore 52.00
+ ;; size=208 bbWeight=1 PerfScore 51.50
G_M44969_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x0]
ldr x1, [x0, #0x48]
@@ -474,11 +471,10 @@ G_M44969_IG10: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
movk x19, #0xD1FFAB1E LSL #32
ldr x19, [x19]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -543,7 +539,7 @@ G_M44969_IG10: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; gcrRegs -[x1]
; gcr arg pop 0
b G_M44969_IG16
- ;; size=212 bbWeight=1 PerfScore 52.00
+ ;; size=208 bbWeight=1 PerfScore 51.50
G_M44969_IG11: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] +[x0]
ldr x1, [x0, #0x48]
@@ -697,7 +693,7 @@ RWD00 dd G_M44969_IG10 - G_M44969_IG02
dd G_M44969_IG11 - G_M44969_IG02
-; Total bytes of code 1152, prolog size 32, PerfScore 240.50, instruction count 288, allocated bytes for code 1152 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
+Total bytes of code 1140, prolog size 32, PerfScore 239.00, instruction count 285, allocated bytes for code 1140 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -708,7 +704,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 263 (0x00107) Actual length = 1052 (0x00041c)
+ Function Length : 260 (0x00104) Actual length = 1040 (0x000410)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.87%) : 308793.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<
@@ -15,7 +15,7 @@
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V07 tmp2 [V07,T16] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V07 tmp2 [V07,T15] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V09 tmp4 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V10 tmp5 [V10,T08] ( 2, 2 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
@@ -23,7 +23,7 @@
; V12 tmp7 [V12,T04] ( 2, 4 ) ref -> x19 class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
; V14 tmp9 [V14,T02] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V15 tmp10 [V15,T14] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
+;* V15 tmp10 [V15,T13] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V17 tmp12 [V17 ] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -72,7 +72,7 @@
; V61 tmp56 [V61 ] ( 6, 6 ) ref -> [fp+0x20] do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
;* V62 tmp57 [V62 ] ( 0, 0 ) ref -> zero-ref single-def "field V08._source (fldOffset=0x0)" P-INDEP
;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp59 [V64,T13] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp59 [V64,T12] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
;* V65 tmp60 [V65 ] ( 0, 0 ) ref -> zero-ref do-not-enreg[X] addr-exposed "field V17._source (fldOffset=0x0)" P-DEP
;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref single-def "field V25._node (fldOffset=0x0)" P-DEP
;* V67 tmp62 [V67 ] ( 0, 0 ) long -> zero-ref single-def "field V25._id (fldOffset=0x8)" P-DEP
@@ -82,9 +82,8 @@
;* V71 tmp66 [V71 ] ( 0, 0 ) long -> zero-ref single-def "field V44._id (fldOffset=0x8)" P-INDEP
; V72 tmp67 [V72,T09] ( 2, 2 ) ref -> x20 single-def "field V51.m_task (fldOffset=0x0)" P-INDEP
; V73 tmp68 [V73,T06] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V74 PSPSym [V74,T15] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
+; V74 PSPSym [V74,T14] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym"
; V75 cse0 [V75,T11] ( 2, 2 ) long -> x1 "CSE - aggressive"
-; V76 cse1 [V76,T12] ( 2, 2 ) long -> x1 "CSE - conservative"
;
; Lcl frame size = 32
@@ -110,10 +109,9 @@ G_M12767_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x1, #0xD1FFAB1E LSL #32
ldr x19, [x1]
; gcrRegs +[x19]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
@@ -172,7 +170,7 @@ G_M12767_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[x1]
; gcr arg pop 0
b G_M12767_IG11
- ;; size=176 bbWeight=1 PerfScore 44.00
+ ;; size=172 bbWeight=1 PerfScore 43.50
G_M12767_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr x0, [fp, #0x18] // [V00 this]
; byrRegs +[x0]
@@ -294,7 +292,7 @@ G_M12767_IG14: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 460, prolog size 28, PerfScore 92.29, instruction count 115, allocated bytes for code 460 (MethodHash=8b4ece20) for method System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<<Generic_ConcurrentBuilders_WorkCorrectly>g__ValueTaskAsync|25_1>d:MoveNext():this (FullOpts)
+Total bytes of code 456, prolog size 28, PerfScore 91.79, instruction count 114, allocated bytes for code 456 (MethodHash=8b4ece20) for method System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<<Generic_ConcurrentBuilders_WorkCorrectly>g__ValueTaskAsync|25_1>d:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -305,7 +303,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 97 (0x00061) Actual length = 388 (0x000184)
+ Function Length : 96 (0x00060) Actual length = 384 (0x000180)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+8 (+0.59%) : 154775.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerCancellationTest+<>cDisplayClass10+<<PostAsyncCancelDuringRequestContentSend_TaskCanceledQuickly>b1>d:MoveNext():this (FullOpts)
@@ -23,10 +23,10 @@
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
; V13 tmp5 [V13,T06] ( 4, 4 ) ref -> x1
; V14 tmp6 [V14,T01] ( 5, 10 ) ref -> x1 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V15 tmp7 [V15,T31] ( 2, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V15 tmp7 [V15,T30] ( 2, 0 ) ref -> x19 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
; V16 tmp8 [V16 ] ( 2, 0 ) struct (40) [fp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V17 tmp9 [V17,T32] ( 2, 0 ) ref -> x20 class-hnd single-def "impAppendStmt" <<unknown class>>
-; V18 tmp10 [V18,T33] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V17 tmp9 [V17,T31] ( 2, 0 ) ref -> x20 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V18 tmp10 [V18,T32] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
; V19 tmp11 [V19,T04] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V20 tmp12 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V21 tmp13 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -40,14 +40,14 @@
;* V29 tmp21 [V29 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V30 tmp22 [V30,T28] ( 4, 0 ) int -> x21 "Inlining Arg"
;* V31 tmp23 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V32 tmp24 [V32,T30] ( 3, 0 ) int -> x21 "Inlining Arg"
-; V33 tmp25 [V33,T34] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
+; V32 tmp24 [V32,T29] ( 3, 0 ) int -> x21 "Inlining Arg"
+; V33 tmp25 [V33,T33] ( 2, 0 ) byref -> x22 single-def "Inlining Arg"
;* V34 tmp26 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp27 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V36 tmp28 [V36,T38] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V36 tmp28 [V36,T37] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V37 tmp29 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V38 tmp30 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V39 tmp31 [V39,T35] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
+; V39 tmp31 [V39,T34] ( 2, 0 ) byref -> x0 single-def "Inlining Arg"
; V40 tmp32 [V40,T02] ( 4, 6 ) byref -> x14 single-def "Inlining Arg"
;* V41 tmp33 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
; V42 tmp34 [V42,T14] ( 10, 0.02) ref -> x19 class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
@@ -75,13 +75,12 @@
;* V64 tmp56 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
;* V65 tmp57 [V65 ] ( 0, 0 ) int -> zero-ref single-def "field V37._length (fldOffset=0x8)" P-INDEP
; V66 tmp58 [V66,T09] ( 2, 4 ) ref -> x1 single-def "argument with side effect"
-; V67 tmp59 [V67,T36] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
-; V68 tmp60 [V68,T37] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V67 tmp59 [V67,T35] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
+; V68 tmp60 [V68,T36] ( 2, 0 ) ref -> x1 single-def "argument with side effect"
; V69 PSPSym [V69,T13] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym"
; V70 cse0 [V70,T22] ( 3, 0.00) int -> x1 "CSE - conservative"
; V71 cse1 [V71,T21] ( 3, 0.00) ref -> x20 "CSE - conservative"
; V72 cse2 [V72,T16] ( 6, 0.01) byref -> x0 multi-def "CSE - conservative"
-; V73 cse3 [V73,T29] ( 3, 0 ) ref -> x1 "CSE - conservative"
;
; Lcl frame size = 112
@@ -507,19 +506,19 @@ G_M41068_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; byrRegs -[x0]
sub w21, w0, w21
tbz w21, #31, G_M41068_IG27
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M41068_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
cmp w21, #18
blo G_M41068_IG28
@@ -642,7 +641,7 @@ G_M41068_IG33: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1364, prolog size 52, PerfScore 114.12, instruction count 341, allocated bytes for code 1364 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
+Total bytes of code 1372, prolog size 52, PerfScore 114.12, instruction count 343, allocated bytes for code 1372 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
@@ -676,7 +675,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 109 (0x0006d) Actual length = 436 (0x0001b4)
+ Function Length : 111 (0x0006f) Actual length = 444 (0x0001bc)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+8 (+0.77%) : 251881.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTestsDefault+PropertyNameTestsContextDefault:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
@@ -15,7 +15,7 @@
; V04 loc1 [V04,T02] ( 4, 12 ) ref -> x21 class-hnd exact <System.String>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-; V07 tmp2 [V07,T26] ( 3, 0 ) int -> x0
+; V07 tmp2 [V07,T25] ( 3, 0 ) int -> x0
; V08 tmp3 [V08,T23] ( 3, 0 ) ref -> x21
; V09 tmp4 [V09,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -68,8 +68,7 @@
; V57 PSPSym [V57,T20] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym"
; V58 cse0 [V58,T16] ( 4, 2 ) int -> x0 "CSE - moderate"
; V59 cse1 [V59,T17] ( 4, 2 ) int -> x0 "CSE - moderate"
-; V60 cse2 [V60,T25] ( 3, 0 ) ref -> x1 "CSE - aggressive"
-; V61 cse3 [V61,T13] ( 3, 5 ) long -> x20 "CSE - aggressive"
+; V60 cse2 [V60,T13] ( 3, 5 ) long -> x20 "CSE - aggressive"
;
; Lcl frame size = 48
@@ -166,19 +165,19 @@ G_M32222_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M32222_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
tst w0, #255
bne G_M32222_IG11
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
+ ;; size=52 bbWeight=0 PerfScore 0.00
G_M32222_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ldr w0, [fp, #0x34] // [V39 tmp34]
cmn w0, #1
@@ -490,7 +489,7 @@ G_M32222_IG35: ; bbWeight=0, funclet epilog, nogc, extend
ret lr
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1040, prolog size 44, PerfScore 273.50, instruction count 260, allocated bytes for code 1040 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
+Total bytes of code 1048, prolog size 44, PerfScore 273.50, instruction count 262, allocated bytes for code 1048 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -501,7 +500,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 248 (0x000f8) Actual length = 992 (0x0003e0)
+ Function Length : 250 (0x000fa) Actual length = 1000 (0x0003e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+32 (+2.03%) : 104270.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> x24
; V10 loc7 [V10,T07] ( 3, 12 ) ref -> x2 class-hnd <System.Xml.XmlDictionaryString>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T25] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T26] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> x19 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> x25 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V17 tmp6 [V17,T20] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T27] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V20 tmp9 [V20,T31] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V19 tmp8 [V19,T26] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T32] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V28 tmp17 [V28,T21] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T28] ( 3, 0 ) int -> x23 "Inlining Arg"
-; V31 tmp20 [V31,T33] ( 2, 0 ) byref -> x22 "Inlining Arg"
+; V30 tmp19 [V30,T27] ( 3, 0 ) int -> x23 "Inlining Arg"
+; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> x22 "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T34] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T23] ( 4, 0 ) int -> x0 "Inlining Arg"
+; V41 tmp30 [V41,T22] ( 4, 0 ) int -> x0 "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T29] ( 3, 0 ) int -> x20 "Inlining Arg"
-; V44 tmp33 [V44,T35] ( 2, 0 ) byref -> x19 "Inlining Arg"
+; V43 tmp32 [V43,T28] ( 3, 0 ) int -> x20 "Inlining Arg"
+; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> x19 "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T36] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> x0 "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T24] ( 4, 0 ) int -> x19 "Inlining Arg"
+; V52 tmp41 [V52,T23] ( 4, 0 ) int -> x19 "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T30] ( 3, 0 ) int -> x19 "Inlining Arg"
-; V55 tmp44 [V55,T37] ( 2, 0 ) byref -> x20 "Inlining Arg"
+; V54 tmp43 [V54,T29] ( 3, 0 ) int -> x19 "Inlining Arg"
+; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> x20 "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T44] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T38] ( 2, 0 ) byref -> x0 "Inlining Arg"
+; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> x0 "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> x21 "Inline return value spill temp"
; V63 tmp52 [V63,T05] ( 4, 12 ) int -> x25 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.61) ref -> x19 class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T08] ( 3, 12 ) ref -> x2 "arr expr"
-; V98 tmp87 [V98,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
-; V99 tmp88 [V99,T40] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> x1 "argument with side effect"
+; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> x1 "argument with side effect"
; V100 cse0 [V100,T18] ( 3, 3 ) ref -> x0 "CSE - moderate"
; V101 cse1 [V101,T10] ( 4, 9 ) byref -> x23 hoist multi-def "CSE - aggressive"
; V102 cse2 [V102,T09] ( 6, 10 ) int -> x22 multi-def "CSE - aggressive"
-; V103 cse3 [V103,T20] ( 12, 0 ) ref -> x1 multi-def "CSE - moderate"
;
; Lcl frame size = 40
@@ -407,19 +406,19 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG30
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG31
@@ -470,19 +469,19 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w23, w1, w0
tbz w23, #31, G_M45430_IG33
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=104 bbWeight=0 PerfScore 0.00
+ ;; size=112 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
cbz w23, G_M45430_IG34
movz x0, #0xD1FFAB1E
@@ -578,19 +577,19 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x1]
sub w20, w1, w0
tbz w20, #31, G_M45430_IG38
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=116 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w20, #11
blo G_M45430_IG39
@@ -652,19 +651,19 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs -[x0]
sub w19, w0, w19
tbz w19, #31, G_M45430_IG43
+ movz x0, #8
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
movz x1, #8
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
- mov x0, x1
- ; gcrRegs +[x0]
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
blr x2
- ; gcrRegs -[x0]
; gcr arg pop 0
- ;; size=60 bbWeight=0 PerfScore 0.00
+ ;; size=68 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
cbz w19, G_M45430_IG44
movz x0, #0xD1FFAB1E
@@ -726,7 +725,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk_windows #0
;; size=84 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1580, prolog size 48, PerfScore 291.46, instruction count 395, allocated bytes for code 1580 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1612, prolog size 48, PerfScore 291.46, instruction count 403, allocated bytes for code 1612 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -737,7 +736,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 395 (0x0018b) Actual length = 1580 (0x00062c)
+ Function Length : 403 (0x00193) Actual length = 1612 (0x00064c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
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
10
3
7
0
-72
+176
benchmarks.run_tiered.windows.arm64.checked.mch
0
0
0
0
-0
+0
coreclr_tests.run.windows.arm64.checked.mch
30
13
15
2
-456
+160
libraries.crossgen2.windows.arm64.checked.mch
0
0
0
0
-0
+0
libraries.pmi.windows.arm64.checked.mch
10
3
7
0
-28
+132
libraries_tests.run.windows.arm64.Release.mch
183
101
71
11
-1,412
+684
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
60
47
7
6
-204
+68
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
293
167
107
19
-2,172
+1,220
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
benchmarks.run.windows.arm64.checked.mch
24,449
4
24,445
0 (0.00%)
0 (0.00%)
benchmarks.run_pgo.windows.arm64.checked.mch
98,318
48,543
49,775
114 (0.12%)
115 (0.12%)
benchmarks.run_tiered.windows.arm64.checked.mch
48,505
36,685
11,820
0 (0.00%)
0 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch
595,368
362,737
232,631
315 (0.05%)
317 (0.05%)
libraries.crossgen2.windows.arm64.checked.mch
243,430
15
243,415
0 (0.00%)
0 (0.00%)
libraries.pmi.windows.arm64.checked.mch
304,050
6
304,044
0 (0.00%)
3 (0.00%)
libraries_tests.run.windows.arm64.Release.mch
630,503
461,984
168,519
2,158 (0.34%)
2,159 (0.34%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
316,297
21,559
294,738
0 (0.00%)
4 (0.00%)
realworld.run.windows.arm64.checked.mch
33,195
3
33,192
0 (0.00%)
0 (0.00%)
smoke_tests.nativeaot.windows.arm64.checked.mch
24,181
7
24,174
0 (0.00%)
0 (0.00%)
2,318,296
931,543
1,386,753
2,587 (0.11%)
2,598 (0.11%)
jit-analyze output
benchmarks.run_pgo.windows.arm64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 47215296 (overridden on cmd)
Total bytes of diff: 47215400 (overridden on cmd)
Total bytes of delta: 104 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-7668 : 91655.dasm (-100.00 % of base)
-4164 : 92042.dasm (-100.00 % of base)
-3600 : 90185.dasm (-100.00 % of base)
-2200 : 39639.dasm (-100.00 % of base)
-2200 : 42310.dasm (-100.00 % of base)
-1692 : 31646.dasm (-100.00 % of base)
-1580 : 84604.dasm (-100.00 % of base)
-1280 : 95909.dasm (-100.00 % of base)
-1196 : 92760.dasm (-100.00 % of base)
-908 : 84592.dasm (-100.00 % of base)
10 total files with Code Size differences (10 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-7668 (-100.00 % of base) : 91655.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
-4164 (-100.00 % of base) : 92042.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3600 (-100.00 % of base) : 90185.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-2200 (-100.00 % of base) : 39639.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2200 (-100.00 % of base) : 42310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-1692 (-100.00 % of base) : 31646.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1580 (-100.00 % of base) : 84604.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-1280 (-100.00 % of base) : 95909.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1196 (-100.00 % of base) : 92760.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-908 (-100.00 % of base) : 84592.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
Top method improvements (percentages):
-1692 (-100.00 % of base) : 31646.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-4164 (-100.00 % of base) : 92042.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1280 (-100.00 % of base) : 95909.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-3600 (-100.00 % of base) : 90185.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-1196 (-100.00 % of base) : 92760.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
-908 (-100.00 % of base) : 84592.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
-1580 (-100.00 % of base) : 84604.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-7668 (-100.00 % of base) : 91655.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
-2200 (-100.00 % of base) : 39639.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
-2200 (-100.00 % of base) : 42310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
10 total methods with Code Size differences (10 improved, 0 regressed).
coreclr_tests.run.windows.arm64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 495322244 (overridden on cmd)
Total bytes of diff: 495321948 (overridden on cmd)
Total bytes of delta: -296 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-6312 : 388749.dasm (-100.00 % of base)
-6192 : 392204.dasm (-100.00 % of base)
-5912 : 300227.dasm (-100.00 % of base)
-2484 : 56678.dasm (-100.00 % of base)
-2164 : 517103.dasm (-100.00 % of base)
-2080 : 390398.dasm (-100.00 % of base)
-2080 : 392660.dasm (-100.00 % of base)
-2060 : 250599.dasm (-100.00 % of base)
-2060 : 250595.dasm (-100.00 % of base)
-1840 : 495451.dasm (-100.00 % of base)
-1588 : 501694.dasm (-100.00 % of base)
-1524 : 264666.dasm (-100.00 % of base)
-1312 : 44965.dasm (-100.00 % of base)
-1196 : 250516.dasm (-100.00 % of base)
-804 : 389731.dasm (-100.00 % of base)
-804 : 392485.dasm (-100.00 % of base)
-732 : 300372.dasm (-100.00 % of base)
-720 : 382628.dasm (-100.00 % of base)
-720 : 383288.dasm (-100.00 % of base)
-692 : 265503.dasm (-100.00 % of base)
30 total files with Code Size differences (30 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-6312 (-100.00 % of base) : 388749.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
-6192 (-100.00 % of base) : 392204.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
-5912 (-100.00 % of base) : 300227.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)
-2484 (-100.00 % of base) : 56678.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-2164 (-100.00 % of base) : 517103.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-2080 (-100.00 % of base) : 390398.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-2080 (-100.00 % of base) : 392660.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-2060 (-100.00 % of base) : 250599.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2060 (-100.00 % of base) : 250595.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1840 (-100.00 % of base) : 495451.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
-1588 (-100.00 % of base) : 501694.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1524 (-100.00 % of base) : 264666.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
-1312 (-100.00 % of base) : 44965.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1196 (-100.00 % of base) : 250516.dasm - AssignJagged:Run():double:this (Tier1)
-804 (-100.00 % of base) : 389731.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-804 (-100.00 % of base) : 392485.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-732 (-100.00 % of base) : 300372.dasm - System.StartupHookProvider:ProcessStartupHooks(System.String) (FullOpts)
-720 (-100.00 % of base) : 382628.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
-720 (-100.00 % of base) : 383288.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
-692 (-100.00 % of base) : 265503.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
Top method improvements (percentages):
-96 (-100.00 % of base) : 537705.dasm - AA:.cctor() (FullOpts)
-288 (-100.00 % of base) : 537704.dasm - AA:reset() (FullOpts)
-1196 (-100.00 % of base) : 250516.dasm - AssignJagged:Run():double:this (Tier1)
-692 (-100.00 % of base) : 265503.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
-2164 (-100.00 % of base) : 517103.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-392 (-100.00 % of base) : 250481.dasm - Fourier:Run():double:this (Tier1)
-2060 (-100.00 % of base) : 250599.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2060 (-100.00 % of base) : 250595.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-2080 (-100.00 % of base) : 390398.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-2080 (-100.00 % of base) : 392660.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
-6312 (-100.00 % of base) : 388749.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
-6192 (-100.00 % of base) : 392204.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
-804 (-100.00 % of base) : 389731.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-804 (-100.00 % of base) : 392485.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-376 (-100.00 % of base) : 300384.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
-476 (-100.00 % of base) : 250279.dasm - NumericSortRect:Run():double:this (Tier1)
-1840 (-100.00 % of base) : 495451.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
-332 (-100.00 % of base) : 300412.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-332 (-100.00 % of base) : 534929.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-2484 (-100.00 % of base) : 56678.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
30 total methods with Code Size differences (30 improved, 0 regressed).
libraries.pmi.windows.arm64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 79562252 (overridden on cmd)
Total bytes of diff: 79562356 (overridden on cmd)
Total bytes of delta: 104 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-9652 : 189271.dasm (-100.00 % of base)
-4284 : 196449.dasm (-100.00 % of base)
-3820 : 196468.dasm (-100.00 % of base)
-1696 : 200676.dasm (-100.00 % of base)
-1588 : 200677.dasm (-100.00 % of base)
-908 : 201377.dasm (-100.00 % of base)
-892 : 201376.dasm (-100.00 % of base)
-764 : 201393.dasm (-100.00 % of base)
-756 : 201392.dasm (-100.00 % of base)
-528 : 302777.dasm (-100.00 % of base)
10 total files with Code Size differences (10 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-9652 (-100.00 % of base) : 189271.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
-4284 (-100.00 % of base) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
-3820 (-100.00 % of base) : 196468.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
-1696 (-100.00 % of base) : 200676.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1588 (-100.00 % of base) : 200677.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-908 (-100.00 % of base) : 201377.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-892 (-100.00 % of base) : 201376.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-764 (-100.00 % of base) : 201393.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-756 (-100.00 % of base) : 201392.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
-528 (-100.00 % of base) : 302777.dasm - Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
Top method improvements (percentages):
-9652 (-100.00 % of base) : 189271.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
-4284 (-100.00 % of base) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
-3820 (-100.00 % of base) : 196468.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
-1696 (-100.00 % of base) : 200676.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1588 (-100.00 % of base) : 200677.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-892 (-100.00 % of base) : 201376.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-908 (-100.00 % of base) : 201377.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-756 (-100.00 % of base) : 201392.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
-764 (-100.00 % of base) : 201393.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-528 (-100.00 % of base) : 302777.dasm - Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
libraries_tests.run.windows.arm64.Release.mch
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 309737828 (overridden on cmd)
Total bytes of diff: 309737100 (overridden on cmd)
Total bytes of delta: -728 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-19320 : 62053.dasm (-100.00 % of base)
-18932 : 55597.dasm (-100.00 % of base)
-18044 : 55600.dasm (-100.00 % of base)
-10956 : 601303.dasm (-100.00 % of base)
-8976 : 55634.dasm (-100.00 % of base)
-8380 : 491458.dasm (-100.00 % of base)
-7980 : 55660.dasm (-100.00 % of base)
-7980 : 568141.dasm (-100.00 % of base)
-7728 : 564452.dasm (-100.00 % of base)
-7108 : 87815.dasm (-100.00 % of base)
-6100 : 580166.dasm (-100.00 % of base)
-5032 : 89361.dasm (-100.00 % of base)
-4964 : 64118.dasm (-100.00 % of base)
-4952 : 396540.dasm (-100.00 % of base)
-4872 : 486584.dasm (-100.00 % of base)
-4372 : 591778.dasm (-100.00 % of base)
-4084 : 55633.dasm (-100.00 % of base)
-3976 : 483388.dasm (-100.00 % of base)
-3532 : 487141.dasm (-100.00 % of base)
-3424 : 386200.dasm (-100.00 % of base)
79 total files with Code Size differences (79 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-19320 (-100.00 % of base) : 62053.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-18932 (-100.00 % of base) : 55597.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-18044 (-100.00 % of base) : 55600.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-10956 (-100.00 % of base) : 601303.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitOptimizedReadonlySpanCreation(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
-8976 (-100.00 % of base) : 55634.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-8380 (-100.00 % of base) : 491458.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequest(System.ReadOnlySpan`1[ubyte],ubyte,System.Security.Cryptography.HashAlgorithmName,byref,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (Tier1)
-7980 (-100.00 % of base) : 55660.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-7980 (-100.00 % of base) : 568141.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
-7728 (-100.00 % of base) : 564452.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
-7108 (-100.00 % of base) : 87815.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6100 (-100.00 % of base) : 580166.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1)
-5032 (-100.00 % of base) : 89361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
-4964 (-100.00 % of base) : 64118.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
-4952 (-100.00 % of base) : 396540.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-4872 (-100.00 % of base) : 486584.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (Tier1)
-4372 (-100.00 % of base) : 591778.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-4084 (-100.00 % of base) : 55633.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-3976 (-100.00 % of base) : 483388.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifierCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ushort]):this (Tier1)
-3532 (-100.00 % of base) : 487141.dasm - System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this (Tier1)
-3424 (-100.00 % of base) : 386200.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
Top method improvements (percentages):
-3104 (-100.00 % of base) : 394280.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-4952 (-100.00 % of base) : 396540.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-2132 (-100.00 % of base) : 590941.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
-972 (-100.00 % of base) : 57369.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier1)
-18932 (-100.00 % of base) : 55597.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
-19320 (-100.00 % of base) : 62053.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-1312 (-100.00 % of base) : 59610.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetRewrittenAttributeConstructorArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]:this (Tier1)
-18044 (-100.00 % of base) : 55600.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
-3292 (-100.00 % of base) : 588712.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundConditionalOperator,ubyte):this (Tier1)
-10956 (-100.00 % of base) : 601303.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitOptimizedReadonlySpanCreation(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
-8976 (-100.00 % of base) : 55634.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-7980 (-100.00 % of base) : 55660.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-4084 (-100.00 % of base) : 55633.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-1080 (-100.00 % of base) : 55446.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:Create(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol,System.Reflection.Metadata.PropertyDefinitionHandle,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol (Tier1)
-276 (-100.00 % of base) : 89354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
-276 (-100.00 % of base) : 64111.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
-5032 (-100.00 % of base) : 89361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
-4964 (-100.00 % of base) : 64118.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
-4372 (-100.00 % of base) : 591778.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-1344 (-100.00 % of base) : 87816.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 169000724 (overridden on cmd)
Total bytes of diff: 169000588 (overridden on cmd)
Total bytes of delta: -136 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-4968 : 309873.dasm (-100.00 % of base)
-4008 : 39348.dasm (-100.00 % of base)
-2544 : 308518.dasm (-100.00 % of base)
-2460 : 312919.dasm (-100.00 % of base)
-2460 : 312929.dasm (-100.00 % of base)
-2452 : 311230.dasm (-100.00 % of base)
-2436 : 24463.dasm (-100.00 % of base)
-2436 : 308751.dasm (-100.00 % of base)
-2212 : 154804.dasm (-100.00 % of base)
-1976 : 308585.dasm (-100.00 % of base)
-1960 : 154370.dasm (-100.00 % of base)
-1932 : 160040.dasm (-100.00 % of base)
-1716 : 308596.dasm (-100.00 % of base)
-1676 : 308609.dasm (-100.00 % of base)
-1636 : 308553.dasm (-100.00 % of base)
-1636 : 308612.dasm (-100.00 % of base)
-1636 : 308741.dasm (-100.00 % of base)
-1580 : 104270.dasm (-100.00 % of base)
-1464 : 155069.dasm (-100.00 % of base)
-1364 : 154775.dasm (-100.00 % of base)
55 total files with Code Size differences (55 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-4968 (-100.00 % of base) : 309873.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
-4008 (-100.00 % of base) : 39348.dasm - Microsoft.Extensions.FileProviders.PhysicalFileProviderTests+<UsePollingFileWatcher_UseActivePolling_HasChanged_SymbolicLink_TargetChanged>d__86:MoveNext():this (FullOpts)
-2544 (-100.00 % of base) : 308518.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromTask_Await_Normal>d__35:MoveNext():this (FullOpts)
-2460 (-100.00 % of base) : 312929.dasm - System.Threading.Tests.TimerDisposeTests+<DisposeAsync_AfterDisposeWorks>d__6:MoveNext():this (FullOpts)
-2460 (-100.00 % of base) : 312919.dasm - System.Threading.Tests.TimerDisposeTests+<DisposeAsync_DisposeDelayedUntilCallbacksComplete>d__4:MoveNext():this (FullOpts)
-2452 (-100.00 % of base) : 311230.dasm - System.Threading.Tasks.Tests.CancellationTokenTests+<CancellationTokenRegistration_DisposeAsyncWhileCallbackRunning_WaitsForCallbackToComplete>d__61:MoveNext():this (FullOpts)
-2436 (-100.00 % of base) : 24463.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
-2436 (-100.00 % of base) : 308751.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
-2212 (-100.00 % of base) : 154804.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
-1976 (-100.00 % of base) : 308585.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<>c__DisplayClass47_0+<<Generic_Awaiter_ContinuesOnCapturedContext>b__0>d:MoveNext():this (FullOpts)
-1960 (-100.00 % of base) : 154370.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerTest+<>c__DisplayClass24_1+<<GetAsync_InfiniteChunkSize_ThrowsHttpRequestException>b__1>d:MoveNext():this (FullOpts)
-1932 (-100.00 % of base) : 160040.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
-1716 (-100.00 % of base) : 308596.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<NonGeneric_CreateFromTask_Await_Normal>d__34:MoveNext():this (FullOpts)
-1676 (-100.00 % of base) : 308609.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<>c__DisplayClass48_0+<<NonGeneric_ConfiguredAwaiter_ContinuesOnCapturedContext>b__0>d:MoveNext():this (FullOpts)
-1636 (-100.00 % of base) : 308553.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_10>d:MoveNext():this (FullOpts)
-1636 (-100.00 % of base) : 308612.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_21>d:MoveNext():this (FullOpts)
-1636 (-100.00 % of base) : 308741.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_43>d:MoveNext():this (FullOpts)
-1580 (-100.00 % of base) : 104270.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1464 (-100.00 % of base) : 155069.dasm - System.Net.Http.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest+<>c__DisplayClass12_1+<<AfterReadResponseServerError_ClientWrite>b__1>d:MoveNext():this (FullOpts)
-1364 (-100.00 % of base) : 154775.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
Top method improvements (percentages):
-800 (-100.00 % of base) : 41471.dasm - Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensionsTest+<>c+<<AddHttpClient_GetAwaiterAndResult_InSingleThreadedSynchronizationContext_ShouldNotHangs>b__44_3>d:MoveNext():this (FullOpts)
-4008 (-100.00 % of base) : 39348.dasm - Microsoft.Extensions.FileProviders.PhysicalFileProviderTests+<UsePollingFileWatcher_UseActivePolling_HasChanged_SymbolicLink_TargetChanged>d__86:MoveNext():this (FullOpts)
-168 (-100.00 % of base) : 83932.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
-644 (-100.00 % of base) : 83938.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-228 (-100.00 % of base) : 83961.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-692 (-100.00 % of base) : 83724.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-228 (-100.00 % of base) : 83926.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-1116 (-100.00 % of base) : 125307.dasm - System.Globalization.Tests.CultureInfoAsync+<>c__DisplayClass1_0+<<TestCurrentCulturesWithAwait>g__MainAsync|0>d:MoveNext():this (FullOpts)
-968 (-100.00 % of base) : 132544.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<>c__DisplayClass20_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
-968 (-100.00 % of base) : 131981.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
-1364 (-100.00 % of base) : 154775.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
-2212 (-100.00 % of base) : 154804.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
-1960 (-100.00 % of base) : 154370.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerTest+<>c__DisplayClass24_1+<<GetAsync_InfiniteChunkSize_ThrowsHttpRequestException>b__1>d:MoveNext():this (FullOpts)
-536 (-100.00 % of base) : 154088.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerTest+<>c__DisplayClass42_1:<PostAsync_ThrowFromContentCopy_RequestFails>b__7(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts)
-1464 (-100.00 % of base) : 155069.dasm - System.Net.Http.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest+<>c__DisplayClass12_1+<<AfterReadResponseServerError_ClientWrite>b__1>d:MoveNext():this (FullOpts)
-1932 (-100.00 % of base) : 160040.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
-984 (-100.00 % of base) : 154872.dasm - System.Net.Test.Common.SocketWrapper+<WaitForCloseAsync>d__10:MoveNext():this (FullOpts)
-620 (-100.00 % of base) : 310814.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
-620 (-100.00 % of base) : 24388.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
-600 (-100.00 % of base) : 310811.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<MoveNextAsync>d__5[int]:MoveNext():this (FullOpts)
Diffs are based on 2,492,949 contexts (983,689 MinOpts, 1,509,260 FullOpts).
MISSED contexts: base: 3,859 (0.15%), diff: 3,862 (0.15%)
Overall (-2,082 bytes)
Collection
Base size (bytes)
Diff size (bytes)
aspnet.run.windows.x64.checked.mch
41,760,738
-1,310
benchmarks.run_pgo.windows.x64.checked.mch
34,741,684
+112
benchmarks.run_tiered.windows.x64.checked.mch
12,662,284
-10
coreclr_tests.run.windows.x64.checked.mch
392,866,349
+302
libraries.pmi.windows.x64.checked.mch
61,196,926
+84
libraries_tests.run.windows.x64.Release.mch
279,034,736
-1,249
librariestestsnotieredcompilation.run.windows.x64.Release.mch
133,435,993
-6
realworld.run.windows.x64.checked.mch
14,170,685
-5
FullOpts (-2,082 bytes)
Collection
Base size (bytes)
Diff size (bytes)
aspnet.run.windows.x64.checked.mch
27,102,013
-1,310
benchmarks.run_pgo.windows.x64.checked.mch
20,506,707
+112
benchmarks.run_tiered.windows.x64.checked.mch
3,477,018
-10
coreclr_tests.run.windows.x64.checked.mch
119,323,357
+302
libraries.pmi.windows.x64.checked.mch
61,083,407
+84
libraries_tests.run.windows.x64.Release.mch
100,666,420
-1,249
librariestestsnotieredcompilation.run.windows.x64.Release.mch
123,012,623
-6
realworld.run.windows.x64.checked.mch
13,780,980
-5
Example diffs
aspnet.run.windows.x64.checked.mch
-32 (-3.21%) : 7170.dasm - System.Collections.Concurrent.ConcurrentDictionary
2[long,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary2+Tables[long,System.__Canon],ubyte,ubyte):this (Tier1-OSR)@@ -10,45 +10,45 @@
; 1 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T26] ( 9, 6.76) ref -> [rbp+0x210] this class-hnd EH-live single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2[long,System.__Canon]>
-; V01 arg1 [V01,T30] ( 5, 6.76) ref -> rbx class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
+; V00 this [V00,T31] ( 6, 6.76) ref -> [rbp+0x210] this class-hnd EH-live single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2[long,System.__Canon]>
+; V01 arg1 [V01,T32] ( 5, 6.76) ref -> rbx class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
;* V02 arg2 [V02 ] ( 0, 0 ) ubyte -> zero-ref single-def
;* V03 arg3 [V03 ] ( 0, 0 ) ubyte -> zero-ref single-def
; V04 loc0 [V04 ] ( 3, 1 ) int -> [rbp+0x1B8] do-not-enreg[X] addr-exposed ld-addr-op tier0-frame
-; V05 loc1 [V05,T33] ( 1, 4.76) int -> [rbp+0x1B4] tier0-frame
-; V06 loc2 [V06,T27] ( 3, 9.52) ref -> rdi class-hnd <System.Collections.Generic.IEqualityComparer`1[long]>
+; V05 loc1 [V05,T34] ( 1, 4.76) int -> [rbp+0x1B4] tier0-frame
+; V06 loc2 [V06,T28] ( 3, 9.52) ref -> rdi class-hnd <System.Collections.Generic.IEqualityComparer`1[long]>
;* V07 loc3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V08 loc4 [V08,T03] ( 5,104.76) ref -> rsi class-hnd <System.Object[]>
-; V09 loc5 [V09,T31] ( 3, 4.76) ref -> r14 class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
-; V10 loc6 [V10,T20] ( 4, 14.29) ref -> r15 class-hnd exact <int[]>
-; V11 loc7 [V11,T19] ( 5, 14.29) ref -> r12 class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
+; V09 loc5 [V09,T33] ( 3, 4.76) ref -> r15 class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
+; V10 loc6 [V10,T22] ( 4, 14.29) ref -> r13 class-hnd exact <int[]>
+; V11 loc7 [V11,T21] ( 5, 14.29) ref -> r12 class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
; V12 loc8 [V12,T00] ( 5,378.57) int -> [rbp+0x17C] tier0-frame
-; V13 loc9 [V13,T37] ( 3, 0 ) ref -> [rbp+0x170] class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
-; V14 loc10 [V14,T36] ( 5, 0 ) int -> [rbp+0x16C] tier0-frame
+; V13 loc9 [V13,T38] ( 3, 0 ) ref -> [rbp+0x170] class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
+; V14 loc10 [V14,T37] ( 5, 0 ) int -> [rbp+0x16C] tier0-frame
;* V15 loc11 [V15 ] ( 0, 0 ) struct ( 8) zero-ref <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon]>
; V16 loc12 [V16,T06] ( 9, 28.57) ref -> [rbp+0x158] class-hnd tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
;* V17 loc13 [V17 ] ( 0, 0 ) int -> zero-ref
-; V18 loc14 [V18,T28] ( 2, 9.52) ref -> [rbp+0x148] class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
-; V19 loc15 [V19,T23] ( 3, 14.29) byref -> rbx
-; V20 loc16 [V20,T18] ( 4, 15.29) int -> [rbp+0x138] ld-addr-op spill-single-def tier0-frame
+; V18 loc14 [V18,T29] ( 2, 9.52) ref -> [rbp+0x148] class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
+; V19 loc15 [V19,T25] ( 3, 14.29) byref -> rbx
+; V20 loc16 [V20,T20] ( 4, 15.29) int -> [rbp+0x138] ld-addr-op spill-single-def tier0-frame
; V21 OutArgs [V21 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V22 tmp1 [V22 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V23 tmp2 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
;* V24 tmp3 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
;* V25 tmp4 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp5 [V26,T21] ( 4, 14.29) ref -> r13
-; V27 tmp6 [V27,T38] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
+; V26 tmp5 [V26,T23] ( 4, 14.29) ref -> r12
+; V27 tmp6 [V27,T39] ( 3, 0 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
;* V28 tmp7 [V28 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V29 tmp8 [V29 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V30 tmp9 [V30,T22] ( 4, 14.29) int -> [rbp-0x3C]
+; V30 tmp9 [V30,T24] ( 4, 14.29) int -> [rbp-0x3C]
;* V31 tmp10 [V31 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V32 tmp11 [V32,T05] ( 6, 57.14) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
+; V32 tmp11 [V32,T05] ( 6, 57.14) ref -> [rbp-0x50] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
;* V33 tmp12 [V33 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V34 tmp13 [V34,T07] ( 3, 28.57) byref -> rdx "dup spill"
;* V35 tmp14 [V35 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V36 tmp15 [V36 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V37 tmp16 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
-;* V38 tmp17 [V38,T34] ( 0, 0 ) int -> zero-ref "OSR entry state var"
+;* V38 tmp17 [V38,T35] ( 0, 0 ) int -> zero-ref "OSR entry state var"
;* V39 tmp18 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Object[]>
;* V40 tmp19 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V41 tmp20 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
@@ -56,58 +56,56 @@
;* V43 tmp22 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp23 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V45 tmp24 [V45 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V46 tmp25 [V46,T24] ( 3, 14.29) ref -> r11 class-hnd exact "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
+; V46 tmp25 [V46,T26] ( 3, 14.29) ref -> rcx class-hnd exact "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
;* V47 tmp26 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V48 tmp27 [V48 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V49 tmp28 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V50 tmp29 [V50,T12] ( 4, 19.05) int -> r13 "Inline stloc first use temp"
-; V51 tmp30 [V51,T16] ( 2, 19.05) long -> rcx "Inlining Arg"
-; V52 tmp31 [V52,T14] ( 2, 19.05) ref -> rdx class-hnd "Inlining Arg" <System.__Canon>
-; V53 tmp32 [V53,T15] ( 2, 19.05) ref -> [rbp-0x50] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
-; V54 tmp33 [V54,T50] ( 2, 0 ) int -> rcx "Inline return value spill temp"
-; V55 tmp34 [V55,T39] ( 3, 0 ) int -> rax "Inlining Arg"
-; V56 tmp35 [V56,T49] ( 2, 0 ) ref -> rax "field V15._node (fldOffset=0x0)" P-INDEP
+; V50 tmp29 [V50,T13] ( 4, 19.05) int -> rbx "Inline stloc first use temp"
+; V51 tmp30 [V51,T18] ( 2, 19.05) long -> rcx "Inlining Arg"
+; V52 tmp31 [V52,T16] ( 2, 19.05) ref -> rdx class-hnd "Inlining Arg" <System.__Canon>
+; V53 tmp32 [V53,T17] ( 2, 19.05) ref -> [rbp-0x58] class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
+; V54 tmp33 [V54,T47] ( 2, 0 ) int -> rcx "Inline return value spill temp"
+; V55 tmp34 [V55,T40] ( 3, 0 ) int -> rax "Inlining Arg"
+; V56 tmp35 [V56,T46] ( 2, 0 ) ref -> r10 "field V15._node (fldOffset=0x0)" P-INDEP
;* V57 tmp36 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V58 tmp37 [V58 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V59 tmp38 [V59,T01] ( 2,371.43) ref -> r8 "argument with side effect"
-; V60 tmp39 [V60,T17] ( 2, 19.05) long -> rax "argument with side effect"
-; V61 tmp40 [V61,T51] ( 2, 0 ) long -> rax "argument with side effect"
-; V62 PSPSym [V62,T35] ( 1, 1 ) long -> [rbp-0x58] do-not-enreg[V] "PSPSym"
-; V63 cse0 [V63,T32] ( 2, 4.76) long -> [rbp-0x48] spill-single-def hoist "CSE - moderate"
-; V64 cse1 [V64,T04] ( 2, 99.65) long -> r13 hoist "CSE - aggressive"
-; V65 cse2 [V65,T02] ( 3,107.14) int -> r14 "CSE - aggressive"
-; V66 cse3 [V66,T25] ( 3, 14.29) int -> rbx "CSE - moderate"
-; V67 rat0 [V67,T10] ( 3, 20.95) long -> rdx "Spilling to split statement for tree"
-; V68 rat1 [V68,T13] ( 3, 19.05) long -> rax "runtime lookup"
+; V60 tmp39 [V60,T19] ( 2, 19.05) long -> rax "argument with side effect"
+; V61 tmp40 [V61,T48] ( 2, 0 ) long -> rcx "argument with side effect"
+; V62 PSPSym [V62,T36] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[V] "PSPSym"
+; V63 cse0 [V63,T04] ( 2, 99.65) long -> r13 hoist "CSE - aggressive"
+; V64 cse1 [V64,T02] ( 3,107.14) int -> r14 "CSE - aggressive"
+; V65 cse2 [V65,T11] ( 8, 15.24) long -> r14 "CSE - moderate"
+; V66 cse3 [V66,T27] ( 3, 14.29) int -> [rbp-0x40] spill-single-def "CSE - moderate"
+; V67 rat0 [V67,T12] ( 3, 20.95) long -> rdx "Spilling to split statement for tree"
+; V68 rat1 [V68,T14] ( 3, 19.05) long -> rax "runtime lookup"
; V69 rat2 [V69,T08] ( 3, 26.67) long -> rax "fgMakeTemp is creating a new local variable"
-; V70 rat3 [V70,T40] ( 3, 0 ) long -> rdx "Spilling to split statement for tree"
-; V71 rat4 [V71,T41] ( 3, 0 ) long -> rax "runtime lookup"
-; V72 rat5 [V72,T42] ( 3, 0 ) long -> rax "fgMakeTemp is creating a new local variable"
-; V73 rat6 [V73,T43] ( 3, 0 ) long -> rdx "Spilling to split statement for tree"
-; V74 rat7 [V74,T44] ( 3, 0 ) long -> rax "runtime lookup"
-; V75 rat8 [V75,T45] ( 3, 0 ) long -> rax "fgMakeTemp is creating a new local variable"
-; V76 rat9 [V76,T46] ( 3, 0 ) long -> rdx "Spilling to split statement for tree"
-; V77 rat10 [V77,T47] ( 3, 0 ) long -> r8 "runtime lookup"
-; V78 rat11 [V78,T48] ( 3, 0 ) long -> r8 "fgMakeTemp is creating a new local variable"
-;* V79 rat12 [V79,T11] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
-;* V80 rat13 [V80,T29] ( 0, 0 ) long -> zero-ref "runtime lookup"
-;* V81 rat14 [V81,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V70 rat3 [V70,T41] ( 3, 0 ) long -> rcx "runtime lookup"
+; V71 rat4 [V71,T42] ( 3, 0 ) long -> rcx "fgMakeTemp is creating a new local variable"
+; V72 rat5 [V72,T43] ( 3, 0 ) long -> rcx "runtime lookup"
+; V73 rat6 [V73,T44] ( 3, 0 ) long -> rcx "fgMakeTemp is creating a new local variable"
+;* V74 rat7 [V74,T49] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V75 rat8 [V75,T45] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+;* V76 rat9 [V76,T30] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V77 rat10 [V77,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V78 rat11 [V78,T15] ( 3, 19.05) long -> rcx "runtime lookup"
+; V79 rat12 [V79,T10] ( 3, 26.67) long -> rcx "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 72
+; Lcl frame size = 88
G_M30152_IG01: ; bbWeight=7.14, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
mov rax, qword ptr [rbp]
push rax
- sub rsp, 128
- mov qword ptr [rsp+0x278], r15
- mov qword ptr [rsp+0x270], r14
- mov qword ptr [rsp+0x268], r13
- mov qword ptr [rsp+0x260], r12
- mov qword ptr [rsp+0x258], rdi
- mov qword ptr [rsp+0x250], rsi
- mov qword ptr [rsp+0x248], rbx
- lea rbp, [rsp+0x80]
- mov qword ptr [rbp-0x58], rsp
+ sub rsp, 144
+ mov qword ptr [rsp+0x288], r15
+ mov qword ptr [rsp+0x280], r14
+ mov qword ptr [rsp+0x278], r13
+ mov qword ptr [rsp+0x270], r12
+ mov qword ptr [rsp+0x268], rdi
+ mov qword ptr [rsp+0x260], rsi
+ mov qword ptr [rsp+0x258], rbx
+ lea rbp, [rsp+0x90]
+ mov qword ptr [rbp-0x68], rsp
mov rbx, gword ptr [rbp+0x218]
; gcrRegs +[rbx]
mov rdi, gword ptr [rbp+0x1A8]
@@ -115,8 +113,8 @@ G_M30152_IG01: ; bbWeight=7.14, gcVars=0000000000000000 {}, gcrefRegs=000
mov rsi, gword ptr [rbp+0x198]
; gcrRegs +[rsi]
;; size=101 bbWeight=7.14 PerfScore 126.79
-G_M30152_IG02: ; bbWeight=7.14, gcVars=0000000004000000 {V00}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars +{V00 V26}
+G_M30152_IG02: ; bbWeight=7.14, gcVars=0000000080000000 {V00}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; GC ptr vars +{V00}
mov r14d, dword ptr [rsi+0x08]
mov r15d, dword ptr [rbp+0x17C]
cmp r14d, r15d
@@ -145,13 +143,14 @@ G_M30152_IG04: ; bbWeight=92.86, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=
G_M30152_IG05: ; bbWeight=4.76, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x210]
; gcrRegs +[rcx]
- mov rdx, qword ptr [rcx]
+ mov r14, qword ptr [rcx]
+ mov rdx, r14
mov rax, qword ptr [rdx+0x30]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x20]
test rax, rax
jne SHORT G_M30152_IG11
- ;; size=26 bbWeight=4.76 PerfScore 48.81
+ ;; size=29 bbWeight=4.76 PerfScore 50.00
G_M30152_IG06: ; bbWeight=0.95, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, rdx
@@ -165,194 +164,228 @@ G_M30152_IG07: ; bbWeight=4.76, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
+ mov r15, rax
+ ; gcrRegs +[r15]
mov edx, dword ptr [rsi+0x08]
mov rcx, 0xD1FFAB1E ; int[]
call CORINFO_HELP_NEWARR_1_VC
; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
- mov r13, rdi
+ mov r13, rax
; gcrRegs +[r13]
- test r13, r13
+ mov r12, rdi
+ ; gcrRegs +[r12]
+ test r12, r12
je SHORT G_M30152_IG09
;; size=47 bbWeight=4.76 PerfScore 45.24
-G_M30152_IG08: ; bbWeight=0, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref
+G_M30152_IG08: ; bbWeight=0, gcrefRegs=B0C8 {rbx rsi rdi r12 r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- mov rcx, gword ptr [rbp+0x210]
- ; gcrRegs +[rcx]
- mov rdx, qword ptr [rcx]
- mov rax, qword ptr [rdx+0x30]
- mov rax, qword ptr [rax]
- mov rax, qword ptr [rax+0x28]
- test rax, rax
- je G_M30152_IG15
- jmp G_M30152_IG16
- ;; size=35 bbWeight=0 PerfScore 0.00
-G_M30152_IG09: ; bbWeight=4.76, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx r13]
- mov r13, gword ptr [rbx+0x08]
- ; gcrRegs +[r13]
+ mov rcx, qword ptr [r14+0x30]
+ mov rcx, qword ptr [rcx]
+ mov rcx, qword ptr [rcx+0x28]
+ test rcx, rcx
+ je G_M30152_IG19
+ jmp G_M30152_IG20
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M30152_IG09: ; bbWeight=4.76, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r12]
+ mov r12, gword ptr [rbx+0x08]
+ ; gcrRegs +[r12]
jmp SHORT G_M30152_IG08
;; size=6 bbWeight=4.76 PerfScore 19.05
-G_M30152_IG10: ; bbWeight=4.76, gcVars=0000002004000040 {V00 V13 V16}, gcrefRegs=D0C0 {rsi rdi r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rbx r13] +[r12]
- ; GC ptr vars -{V26} +{V06 V13 V16}
+G_M30152_IG10: ; bbWeight=4.76, gcVars=0000004080000000 {V00 V13}, gcrefRegs=B4C0 {rsi rdi r10 r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rbx] +[r10]
+ ; GC ptr vars +{V13 V38}
test rdi, rdi
je SHORT G_M30152_IG12
- jmp G_M30152_IG22
...
-9 (-2.87%) : 42405.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
@@ -11,41 +11,39 @@
;
; V00 this [V00,T03] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
; V01 arg1 [V01,T04] ( 3, 2 ) ref -> rbx class-hnd single-def <System.Array>
-; V02 loc0 [V02,T07] ( 3, 1 ) ref -> rsi class-hnd exact single-def <<unknown class>>
+; V02 loc0 [V02,T07] ( 6, 1 ) ref -> rsi class-hnd exact single-def <<unknown class>>
; V03 loc1 [V03,T09] ( 7, 0 ) int -> rdi
-; V04 loc2 [V04,T12] ( 4, 0 ) int -> rbp
+; V04 loc2 [V04,T11] ( 4, 0 ) int -> rbp
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T16] ( 2, 0 ) int -> rdi "dup spill"
+; V06 tmp1 [V06,T15] ( 2, 0 ) int -> rdi "dup spill"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V08 tmp3 [V08,T13] ( 4, 0 ) int -> rax "Inline return value spill temp"
+; V08 tmp3 [V08,T12] ( 4, 0 ) int -> rax "Inline return value spill temp"
; V09 tmp4 [V09,T00] ( 4, 6 ) int -> rdi "dup spill"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V12 tmp7 [V12,T15] ( 3, 0 ) ubyte -> r13 "Inline stloc first use temp"
-; V13 tmp8 [V13,T08] ( 8, 0 ) ref -> r15 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V14 tmp9 [V14,T14] ( 3, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <<unknown class>>
-; V15 tmp10 [V15,T10] ( 5, 0 ) int -> r12 "Inline stloc first use temp"
+; V12 tmp7 [V12,T14] ( 3, 0 ) ubyte -> r15 "Inline stloc first use temp"
+; V13 tmp8 [V13,T08] ( 8, 0 ) ref -> r14 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V14 tmp9 [V14,T13] ( 3, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <<unknown class>>
+; V15 tmp10 [V15,T10] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
; V16 cse0 [V16,T06] ( 3, 3 ) long -> rcx "CSE - aggressive"
-; V17 cse1 [V17,T11] ( 5, 0 ) int -> r14 "CSE - moderate"
-; V18 rat0 [V18,T05] ( 3, 4 ) long -> rcx "TLS field access"
-; V19 rat1 [V19,T01] ( 3, 6 ) long -> rcx "TLS access"
-; V20 rat2 [V20,T02] ( 3, 6 ) long -> rcx "ThreadStaticBlockBase access"
+; V17 rat0 [V17,T05] ( 3, 4 ) long -> rcx "TLS field access"
+; V18 rat1 [V18,T01] ( 3, 6 ) long -> rcx "TLS access"
+; V19 rat2 [V19,T02] ( 3, 6 ) long -> rcx "ThreadStaticBlockBase access"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M28192_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
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rbx, rdx
; gcrRegs +[rbx]
- ;; size=19 bbWeight=1 PerfScore 8.50
+ ;; size=17 bbWeight=1 PerfScore 7.50
G_M28192_IG02: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov rsi, gword ptr [rcx+0x08]
@@ -86,35 +84,34 @@ G_M28192_IG06: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
mov edi, eax
sub edi, ecx
xor ebp, ebp
- mov r14d, dword ptr [rsi+0x08]
- test r14d, r14d
+ cmp dword ptr [rsi+0x08], 0
jle SHORT G_M28192_IG11
- ;; size=33 bbWeight=0 PerfScore 0.00
+ ;; size=30 bbWeight=0 PerfScore 0.00
G_M28192_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- cmp edi, r14d
+ cmp edi, dword ptr [rsi+0x08]
jae G_M28192_IG15
mov ecx, edi
- mov r15, gword ptr [rsi+8*rcx+0x10]
- ; gcrRegs +[r15]
- cmp byte ptr [r15], r15b
- xor r13d, r13d
- mov rcx, r15
+ mov r14, gword ptr [rsi+8*rcx+0x10]
+ ; gcrRegs +[r14]
+ cmp byte ptr [r14], r14b
+ xor r15d, r15d
+ mov rcx, r14
; gcrRegs +[rcx]
call <unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- mov rcx, gword ptr [r15+0x08]
+ mov rcx, gword ptr [r14+0x08]
; gcrRegs +[rcx]
- mov r12d, dword ptr [r15+0x14]
- cmp dword ptr [rcx+0x08], r12d
+ mov r13d, dword ptr [r14+0x14]
+ cmp dword ptr [rcx+0x08], r13d
jbe SHORT G_M28192_IG09
- test r12d, r12d
+ test r13d, r13d
jne SHORT G_M28192_IG08
xor edx, edx
- mov dword ptr [r15+0x18], edx
+ mov dword ptr [r14+0x18], edx
;; size=55 bbWeight=0 PerfScore 0.00
-G_M28192_IG08: ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=0000 {}, byref
- movsxd rdx, r12d
+G_M28192_IG08: ; bbWeight=0, gcrefRegs=404A {rcx rbx rsi r14}, byrefRegs=0000 {}, byref
+ movsxd rdx, r13d
lea rcx, bword ptr [rcx+8*rdx+0x10]
; gcrRegs -[rcx]
; byrRegs +[rcx]
@@ -123,26 +120,26 @@ G_M28192_IG08: ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
; byrRegs -[rcx]
- inc r12d
- mov dword ptr [r15+0x14], r12d
- mov r13d, 1
+ inc r13d
+ mov dword ptr [r14+0x14], r13d
+ mov r15d, 1
;; size=29 bbWeight=0 PerfScore 0.00
-G_M28192_IG09: ; bbWeight=0, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
- mov rcx, r15
+G_M28192_IG09: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+ mov rcx, r14
; gcrRegs +[rcx]
call <unknown method>
- ; gcrRegs -[rcx r15]
+ ; gcrRegs -[rcx r14]
; gcr arg pop 0
- test r13d, r13d
+ test r15d, r15d
jne SHORT G_M28192_IG13
inc edi
- cmp r14d, edi
+ cmp dword ptr [rsi+0x08], edi
jne SHORT G_M28192_IG10
xor edi, edi
;; size=22 bbWeight=0 PerfScore 0.00
G_M28192_IG10: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
inc ebp
- cmp r14d, ebp
+ cmp dword ptr [rsi+0x08], ebp
jg SHORT G_M28192_IG07
;; size=7 bbWeight=0 PerfScore 0.00
G_M28192_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -150,32 +147,30 @@ G_M28192_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0 PerfScore 0.00
G_M28192_IG12: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
- pop r12
pop r13
pop r14
pop r15
ret
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M28192_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, 1
;; size=5 bbWeight=0 PerfScore 0.00
G_M28192_IG14: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
- pop r12
pop r13
pop r14
pop r15
ret
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M28192_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
@@ -189,7 +184,7 @@ G_M28192_IG16: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
jmp G_M28192_IG03
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 314, prolog size 19, PerfScore 27.75, instruction count 101, allocated bytes for code 314 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
+Total bytes of code 305, prolog size 17, PerfScore 26.75, instruction count 97, allocated bytes for code 305 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,17 +192,16 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x10
- CountOfUnwindCodes: 9
+ SizeOfProlog : 0x0E
+ CountOfUnwindCodes: 8
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
- CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
- CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
+ CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
-9 (-2.87%) : 54078.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
@@ -11,41 +11,39 @@
;
; V00 this [V00,T03] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
; V01 arg1 [V01,T04] ( 3, 2 ) ref -> rbx class-hnd single-def <System.Array>
-; V02 loc0 [V02,T07] ( 3, 1 ) ref -> rsi class-hnd exact single-def <<unknown class>>
+; V02 loc0 [V02,T07] ( 6, 1 ) ref -> rsi class-hnd exact single-def <<unknown class>>
; V03 loc1 [V03,T09] ( 7, 0 ) int -> rdi
-; V04 loc2 [V04,T12] ( 4, 0 ) int -> rbp
+; V04 loc2 [V04,T11] ( 4, 0 ) int -> rbp
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T16] ( 2, 0 ) int -> rdi "dup spill"
+; V06 tmp1 [V06,T15] ( 2, 0 ) int -> rdi "dup spill"
;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V08 tmp3 [V08,T13] ( 4, 0 ) int -> rax "Inline return value spill temp"
+; V08 tmp3 [V08,T12] ( 4, 0 ) int -> rax "Inline return value spill temp"
; V09 tmp4 [V09,T00] ( 4, 6 ) int -> rdi "dup spill"
;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V12 tmp7 [V12,T15] ( 3, 0 ) ubyte -> r13 "Inline stloc first use temp"
-; V13 tmp8 [V13,T08] ( 8, 0 ) ref -> r15 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-; V14 tmp9 [V14,T14] ( 3, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <<unknown class>>
-; V15 tmp10 [V15,T10] ( 5, 0 ) int -> r12 "Inline stloc first use temp"
+; V12 tmp7 [V12,T14] ( 3, 0 ) ubyte -> r15 "Inline stloc first use temp"
+; V13 tmp8 [V13,T08] ( 8, 0 ) ref -> r14 class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+; V14 tmp9 [V14,T13] ( 3, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <<unknown class>>
+; V15 tmp10 [V15,T10] ( 5, 0 ) int -> r13 "Inline stloc first use temp"
; V16 cse0 [V16,T06] ( 3, 3 ) long -> rcx "CSE - aggressive"
-; V17 cse1 [V17,T11] ( 5, 0 ) int -> r14 "CSE - moderate"
-; V18 rat0 [V18,T05] ( 3, 4 ) long -> rcx "TLS field access"
-; V19 rat1 [V19,T01] ( 3, 6 ) long -> rcx "TLS access"
-; V20 rat2 [V20,T02] ( 3, 6 ) long -> rcx "ThreadStaticBlockBase access"
+; V17 rat0 [V17,T05] ( 3, 4 ) long -> rcx "TLS field access"
+; V18 rat1 [V18,T01] ( 3, 6 ) long -> rcx "TLS access"
+; V19 rat2 [V19,T02] ( 3, 6 ) long -> rcx "ThreadStaticBlockBase access"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M28192_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
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rbx, rdx
; gcrRegs +[rbx]
- ;; size=19 bbWeight=1 PerfScore 8.50
+ ;; size=17 bbWeight=1 PerfScore 7.50
G_M28192_IG02: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov rsi, gword ptr [rcx+0x08]
@@ -86,35 +84,34 @@ G_M28192_IG06: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
mov edi, eax
sub edi, ecx
xor ebp, ebp
- mov r14d, dword ptr [rsi+0x08]
- test r14d, r14d
+ cmp dword ptr [rsi+0x08], 0
jle SHORT G_M28192_IG11
- ;; size=33 bbWeight=0 PerfScore 0.00
+ ;; size=30 bbWeight=0 PerfScore 0.00
G_M28192_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- cmp edi, r14d
+ cmp edi, dword ptr [rsi+0x08]
jae G_M28192_IG15
mov ecx, edi
- mov r15, gword ptr [rsi+8*rcx+0x10]
- ; gcrRegs +[r15]
- cmp byte ptr [r15], r15b
- xor r13d, r13d
- mov rcx, r15
+ mov r14, gword ptr [rsi+8*rcx+0x10]
+ ; gcrRegs +[r14]
+ cmp byte ptr [r14], r14b
+ xor r15d, r15d
+ mov rcx, r14
; gcrRegs +[rcx]
call <unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- mov rcx, gword ptr [r15+0x08]
+ mov rcx, gword ptr [r14+0x08]
; gcrRegs +[rcx]
- mov r12d, dword ptr [r15+0x14]
- cmp dword ptr [rcx+0x08], r12d
+ mov r13d, dword ptr [r14+0x14]
+ cmp dword ptr [rcx+0x08], r13d
jbe SHORT G_M28192_IG09
- test r12d, r12d
+ test r13d, r13d
jne SHORT G_M28192_IG08
xor edx, edx
- mov dword ptr [r15+0x18], edx
+ mov dword ptr [r14+0x18], edx
;; size=55 bbWeight=0 PerfScore 0.00
-G_M28192_IG08: ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=0000 {}, byref
- movsxd rdx, r12d
+G_M28192_IG08: ; bbWeight=0, gcrefRegs=404A {rcx rbx rsi r14}, byrefRegs=0000 {}, byref
+ movsxd rdx, r13d
lea rcx, bword ptr [rcx+8*rdx+0x10]
; gcrRegs -[rcx]
; byrRegs +[rcx]
@@ -123,26 +120,26 @@ G_M28192_IG08: ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
; byrRegs -[rcx]
- inc r12d
- mov dword ptr [r15+0x14], r12d
- mov r13d, 1
+ inc r13d
+ mov dword ptr [r14+0x14], r13d
+ mov r15d, 1
;; size=29 bbWeight=0 PerfScore 0.00
-G_M28192_IG09: ; bbWeight=0, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
- mov rcx, r15
+G_M28192_IG09: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+ mov rcx, r14
; gcrRegs +[rcx]
call <unknown method>
- ; gcrRegs -[rcx r15]
+ ; gcrRegs -[rcx r14]
; gcr arg pop 0
- test r13d, r13d
+ test r15d, r15d
jne SHORT G_M28192_IG13
inc edi
- cmp r14d, edi
+ cmp dword ptr [rsi+0x08], edi
jne SHORT G_M28192_IG10
xor edi, edi
;; size=22 bbWeight=0 PerfScore 0.00
G_M28192_IG10: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
inc ebp
- cmp r14d, ebp
+ cmp dword ptr [rsi+0x08], ebp
jg SHORT G_M28192_IG07
;; size=7 bbWeight=0 PerfScore 0.00
G_M28192_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -150,32 +147,30 @@ G_M28192_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0 PerfScore 0.00
G_M28192_IG12: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
- pop r12
pop r13
pop r14
pop r15
ret
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M28192_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, 1
;; size=5 bbWeight=0 PerfScore 0.00
G_M28192_IG14: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
- pop r12
pop r13
pop r14
pop r15
ret
- ;; size=17 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M28192_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
@@ -189,7 +184,7 @@ G_M28192_IG16: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
jmp G_M28192_IG03
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 314, prolog size 19, PerfScore 27.75, instruction count 101, allocated bytes for code 314 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
+Total bytes of code 305, prolog size 17, PerfScore 26.75, instruction count 97, allocated bytes for code 305 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
; ============================================================
Unwind Info:
@@ -197,17 +192,16 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x10
- CountOfUnwindCodes: 9
+ SizeOfProlog : 0x0E
+ CountOfUnwindCodes: 8
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
- CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
- CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12)
+ CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+15 (+3.65%) : 92179.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
@@ -11,23 +11,21 @@
;
; V00 arg0 [V00,T00] ( 18, 13.09) ref -> rbx class-hnd <System.RuntimeType>
; V01 arg1 [V01,T01] ( 9, 6.65) ref -> rsi class-hnd single-def <System.RuntimeType>
-; V02 arg2 [V02,T05] ( 3, 2 ) ubyte -> rdi single-def
+; V02 arg2 [V02,T05] ( 4, 3.65) ubyte -> rdi single-def
; V03 OutArgs [V03 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T11] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
-; V05 tmp2 [V05,T12] ( 2, 0 ) ref -> rbx single-def "CASTCLASS eval op1"
+; V04 tmp1 [V04,T09] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+; V05 tmp2 [V05,T10] ( 2, 0 ) ref -> rbx single-def "CASTCLASS eval op1"
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
-; V07 tmp4 [V07,T02] ( 2, 6.61) ref -> r14 class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+; V07 tmp4 [V07,T02] ( 2, 6.61) ref -> rbp class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
; V08 tmp5 [V08,T03] ( 2, 6.61) ref -> rbx "CASTCLASS eval op1"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
-;* V10 tmp7 [V10,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V10 tmp7 [V10,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V11 tmp8 [V11,T07] ( 3, 2 ) int -> rbp
; V12 tmp9 [V12,T08] ( 3, 2 ) ubyte -> r14 "Inline stloc first use temp"
; V13 tmp10 [V13,T06] ( 2, 4 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V15 tmp12 [V15,T14] ( 2, 0 ) int -> rdx "argument with side effect"
+; V15 tmp12 [V15,T12] ( 2, 0 ) int -> rdx "argument with side effect"
; V16 tmp13 [V16,T04] ( 2, 6.61) int -> rdx "argument with side effect"
-; V17 cse0 [V17,T09] ( 3, 1.65) int -> rdi "CSE - moderate"
-; V18 cse1 [V18,T10] ( 3, 0.83) long -> rbp "CSE - conservative"
;
; Lcl frame size = 48
@@ -91,7 +89,7 @@ G_M7917_IG06: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
test eax, eax
jge SHORT G_M7917_IG08
;; size=26 bbWeight=1 PerfScore 6.75
-G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
@@ -116,9 +114,9 @@ G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp r8]
; gcr arg pop 0
test eax, eax
- jne SHORT G_M7917_IG13
+ jne G_M7917_IG13
jmp G_M7917_IG19
- ;; size=51 bbWeight=0 PerfScore 0.00
+ ;; size=55 bbWeight=0 PerfScore 0.00
G_M7917_IG08: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
@@ -142,22 +140,23 @@ G_M7917_IG10: ; bbWeight=1.65, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
call <unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
+ mov rbp, rax
+ ; gcrRegs +[rbp]
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
; gcrRegs -[rax rcx]
; gcr arg pop 0
mov edx, eax
- mov dword ptr [rsp+0x20], edi
- mov rcx, r14
+ movzx rcx, dil
+ mov dword ptr [rsp+0x20], ecx
+ mov rcx, rbp
; gcrRegs +[rcx]
mov r8, rsi
; gcrRegs +[r8]
xor r9d, r9d
call [<unknown method>]
- ; gcrRegs -[rcx r8 r14]
+ ; gcrRegs -[rcx rbp r8]
; gcr arg pop 0
test eax, eax
jne SHORT G_M7917_IG13
@@ -170,12 +169,13 @@ G_M7917_IG10: ; bbWeight=1.65, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
; gcrRegs +[rbx]
test rbx, rbx
je SHORT G_M7917_IG15
- ;; size=61 bbWeight=1.65 PerfScore 22.72
+ ;; size=65 bbWeight=1.65 PerfScore 23.14
G_M7917_IG11: ; bbWeight=0.83, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- cmp qword ptr [rbx], rbp
+ mov rax, 0xD1FFAB1E ; System.RuntimeType
+ cmp qword ptr [rbx], rax
je SHORT G_M7917_IG10
- ;; size=5 bbWeight=0.83 PerfScore 3.31
+ ;; size=15 bbWeight=0.83 PerfScore 3.51
G_M7917_IG12: ; bbWeight=0.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
jmp SHORT G_M7917_IG15
@@ -223,8 +223,7 @@ G_M7917_IG18: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
jmp G_M7917_IG07
;; size=20 bbWeight=0 PerfScore 0.00
G_M7917_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- movzx rdi, dil
- test edi, edi
+ test dil, dil
je SHORT G_M7917_IG15
mov rcx, rbx
; gcrRegs +[rcx]
@@ -235,13 +234,13 @@ G_M7917_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs +[rbx]
test rbx, rbx
je SHORT G_M7917_IG15
- mov rbp, 0xD1FFAB1E ; System.RuntimeType
- cmp qword ptr [rbx], rbp
+ mov rcx, 0xD1FFAB1E ; System.RuntimeType
+ cmp qword ptr [rbx], rcx
je G_M7917_IG10
jmp SHORT G_M7917_IG15
- ;; size=46 bbWeight=0 PerfScore 0.00
+ ;; size=43 bbWeight=0 PerfScore 0.00
-; Total bytes of code 411, prolog size 10, PerfScore 55.86, instruction count 115, allocated bytes for code 411 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
+Total bytes of code 426, prolog size 10, PerfScore 56.48, instruction count 116, allocated bytes for code 426 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
; ============================================================
Unwind Info:
+15 (+3.65%) : 101535.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
@@ -11,23 +11,21 @@
;
; V00 arg0 [V00,T00] ( 18, 12.42) ref -> rbx class-hnd <System.RuntimeType>
; V01 arg1 [V01,T01] ( 9, 6.53) ref -> rsi class-hnd single-def <System.RuntimeType>
-; V02 arg2 [V02,T05] ( 3, 2 ) ubyte -> rdi single-def
+; V02 arg2 [V02,T05] ( 4, 3.53) ubyte -> rdi single-def
; V03 OutArgs [V03 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T11] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
-; V05 tmp2 [V05,T12] ( 2, 0 ) ref -> rbx single-def "CASTCLASS eval op1"
+; V04 tmp1 [V04,T09] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+; V05 tmp2 [V05,T10] ( 2, 0 ) ref -> rbx single-def "CASTCLASS eval op1"
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
-; V07 tmp4 [V07,T02] ( 2, 6.13) ref -> r14 class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+; V07 tmp4 [V07,T02] ( 2, 6.13) ref -> rbp class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
; V08 tmp5 [V08,T03] ( 2, 6.13) ref -> rbx "CASTCLASS eval op1"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
-;* V10 tmp7 [V10,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V10 tmp7 [V10,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V11 tmp8 [V11,T07] ( 3, 2 ) int -> rbp
; V12 tmp9 [V12,T08] ( 3, 2 ) ubyte -> r14 "Inline stloc first use temp"
; V13 tmp10 [V13,T06] ( 2, 4 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V15 tmp12 [V15,T14] ( 2, 0 ) int -> rdx "argument with side effect"
+; V15 tmp12 [V15,T12] ( 2, 0 ) int -> rdx "argument with side effect"
; V16 tmp13 [V16,T04] ( 2, 6.13) int -> rdx "argument with side effect"
-; V17 cse0 [V17,T09] ( 3, 1.53) int -> rdi "CSE - moderate"
-; V18 cse1 [V18,T10] ( 3, 0.77) long -> rbp "CSE - conservative"
;
; Lcl frame size = 48
@@ -91,7 +89,7 @@ G_M7917_IG06: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
test eax, eax
jge SHORT G_M7917_IG08
;; size=26 bbWeight=1 PerfScore 6.75
-G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
@@ -116,9 +114,9 @@ G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp r8]
; gcr arg pop 0
test eax, eax
- jne SHORT G_M7917_IG13
+ jne G_M7917_IG13
jmp G_M7917_IG19
- ;; size=51 bbWeight=0 PerfScore 0.00
+ ;; size=55 bbWeight=0 PerfScore 0.00
G_M7917_IG08: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
@@ -142,22 +140,23 @@ G_M7917_IG10: ; bbWeight=1.53, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
call <unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
+ mov rbp, rax
+ ; gcrRegs +[rbp]
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
; gcrRegs -[rax rcx]
; gcr arg pop 0
mov edx, eax
- mov dword ptr [rsp+0x20], edi
- mov rcx, r14
+ movzx rcx, dil
+ mov dword ptr [rsp+0x20], ecx
+ mov rcx, rbp
; gcrRegs +[rcx]
mov r8, rsi
; gcrRegs +[r8]
xor r9d, r9d
call [<unknown method>]
- ; gcrRegs -[rcx r8 r14]
+ ; gcrRegs -[rcx rbp r8]
; gcr arg pop 0
test eax, eax
jne SHORT G_M7917_IG13
@@ -170,12 +169,13 @@ G_M7917_IG10: ; bbWeight=1.53, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
; gcrRegs +[rbx]
test rbx, rbx
je SHORT G_M7917_IG15
- ;; size=61 bbWeight=1.53 PerfScore 21.06
+ ;; size=65 bbWeight=1.53 PerfScore 21.44
G_M7917_IG11: ; bbWeight=0.77, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- cmp qword ptr [rbx], rbp
+ mov rax, 0xD1FFAB1E ; System.RuntimeType
+ cmp qword ptr [rbx], rax
je SHORT G_M7917_IG10
- ;; size=5 bbWeight=0.77 PerfScore 3.06
+ ;; size=15 bbWeight=0.77 PerfScore 3.25
G_M7917_IG12: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
jmp SHORT G_M7917_IG15
@@ -223,8 +223,7 @@ G_M7917_IG18: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
jmp G_M7917_IG07
;; size=20 bbWeight=0 PerfScore 0.00
G_M7917_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- movzx rdi, dil
- test edi, edi
+ test dil, dil
je SHORT G_M7917_IG15
mov rcx, rbx
; gcrRegs +[rcx]
@@ -235,13 +234,13 @@ G_M7917_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs +[rbx]
test rbx, rbx
je SHORT G_M7917_IG15
- mov rbp, 0xD1FFAB1E ; System.RuntimeType
- cmp qword ptr [rbx], rbp
+ mov rcx, 0xD1FFAB1E ; System.RuntimeType
+ cmp qword ptr [rbx], rcx
je G_M7917_IG10
jmp SHORT G_M7917_IG15
- ;; size=46 bbWeight=0 PerfScore 0.00
+ ;; size=43 bbWeight=0 PerfScore 0.00
-; Total bytes of code 411, prolog size 10, PerfScore 53.89, instruction count 115, allocated bytes for code 411 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
+Total bytes of code 426, prolog size 10, PerfScore 54.46, instruction count 116, allocated bytes for code 426 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
; ============================================================
Unwind Info:
+15 (+3.65%) : 88216.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
@@ -11,23 +11,21 @@
;
; V00 arg0 [V00,T00] ( 18, 12.52) ref -> rbx class-hnd <System.RuntimeType>
; V01 arg1 [V01,T01] ( 9, 6.55) ref -> rsi class-hnd single-def <System.RuntimeType>
-; V02 arg2 [V02,T05] ( 3, 2 ) ubyte -> rdi single-def
+; V02 arg2 [V02,T05] ( 4, 3.55) ubyte -> rdi single-def
; V03 OutArgs [V03 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T11] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
-; V05 tmp2 [V05,T12] ( 2, 0 ) ref -> rbx single-def "CASTCLASS eval op1"
+; V04 tmp1 [V04,T09] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+; V05 tmp2 [V05,T10] ( 2, 0 ) ref -> rbx single-def "CASTCLASS eval op1"
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
-; V07 tmp4 [V07,T02] ( 2, 6.19) ref -> r14 class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+; V07 tmp4 [V07,T02] ( 2, 6.19) ref -> rbp class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
; V08 tmp5 [V08,T03] ( 2, 6.19) ref -> rbx "CASTCLASS eval op1"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
-;* V10 tmp7 [V10,T13] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V10 tmp7 [V10,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V11 tmp8 [V11,T07] ( 3, 2 ) int -> rbp
; V12 tmp9 [V12,T08] ( 3, 2 ) ubyte -> r14 "Inline stloc first use temp"
; V13 tmp10 [V13,T06] ( 2, 4 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V15 tmp12 [V15,T14] ( 2, 0 ) int -> rdx "argument with side effect"
+; V15 tmp12 [V15,T12] ( 2, 0 ) int -> rdx "argument with side effect"
; V16 tmp13 [V16,T04] ( 2, 6.19) int -> rdx "argument with side effect"
-; V17 cse0 [V17,T09] ( 3, 1.55) int -> rdi "CSE - moderate"
-; V18 cse1 [V18,T10] ( 3, 0.77) long -> rbp "CSE - conservative"
;
; Lcl frame size = 48
@@ -91,7 +89,7 @@ G_M7917_IG06: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
test eax, eax
jge SHORT G_M7917_IG08
;; size=26 bbWeight=1 PerfScore 6.75
-G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
@@ -116,9 +114,9 @@ G_M7917_IG07: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp r8]
; gcr arg pop 0
test eax, eax
- jne SHORT G_M7917_IG13
+ jne G_M7917_IG13
jmp G_M7917_IG19
- ;; size=51 bbWeight=0 PerfScore 0.00
+ ;; size=55 bbWeight=0 PerfScore 0.00
G_M7917_IG08: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
@@ -142,22 +140,23 @@ G_M7917_IG10: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
call <unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
+ mov rbp, rax
+ ; gcrRegs +[rbp]
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
; gcrRegs -[rax rcx]
; gcr arg pop 0
mov edx, eax
- mov dword ptr [rsp+0x20], edi
- mov rcx, r14
+ movzx rcx, dil
+ mov dword ptr [rsp+0x20], ecx
+ mov rcx, rbp
; gcrRegs +[rcx]
mov r8, rsi
; gcrRegs +[r8]
xor r9d, r9d
call [<unknown method>]
- ; gcrRegs -[rcx r8 r14]
+ ; gcrRegs -[rcx rbp r8]
; gcr arg pop 0
test eax, eax
jne SHORT G_M7917_IG13
@@ -170,12 +169,13 @@ G_M7917_IG10: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
; gcrRegs +[rbx]
test rbx, rbx
je SHORT G_M7917_IG15
- ;; size=61 bbWeight=1.55 PerfScore 21.29
+ ;; size=65 bbWeight=1.55 PerfScore 21.68
G_M7917_IG11: ; bbWeight=0.77, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
- cmp qword ptr [rbx], rbp
+ mov rax, 0xD1FFAB1E ; System.RuntimeType
+ cmp qword ptr [rbx], rax
je SHORT G_M7917_IG10
- ;; size=5 bbWeight=0.77 PerfScore 3.10
+ ;; size=15 bbWeight=0.77 PerfScore 3.29
G_M7917_IG12: ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
jmp SHORT G_M7917_IG15
@@ -223,8 +223,7 @@ G_M7917_IG18: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
jmp G_M7917_IG07
;; size=20 bbWeight=0 PerfScore 0.00
G_M7917_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- movzx rdi, dil
- test edi, edi
+ test dil, dil
je SHORT G_M7917_IG15
mov rcx, rbx
; gcrRegs +[rcx]
@@ -235,13 +234,13 @@ G_M7917_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs +[rbx]
test rbx, rbx
je SHORT G_M7917_IG15
- mov rbp, 0xD1FFAB1E ; System.RuntimeType
- cmp qword ptr [rbx], rbp
+ mov rcx, 0xD1FFAB1E ; System.RuntimeType
+ cmp qword ptr [rbx], rcx
je G_M7917_IG10
jmp SHORT G_M7917_IG15
- ;; size=46 bbWeight=0 PerfScore 0.00
+ ;; size=43 bbWeight=0 PerfScore 0.00
-; Total bytes of code 411, prolog size 10, PerfScore 54.17, instruction count 115, allocated bytes for code 411 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
+Total bytes of code 426, prolog size 10, PerfScore 54.75, instruction count 116, allocated bytes for code 426 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-15 (-1.06%) : 85532.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.Canon]:TryInsert(BenchmarksGame.ByteString,System.Canon,ubyte):ubyte:this (Tier1)
@@ -14,65 +14,64 @@
; V02 arg2 [V02,T09] ( 4, 3 ) ref -> rsi class-hnd single-def <System.__Canon>
; V03 arg3 [V03,T13] ( 6, 2 ) ubyte -> rdi single-def
; V04 loc0 [V04,T02] ( 14, 9.11) ref -> r13 class-hnd <<unknown class>>
-; V05 loc1 [V05,T17] ( 5, 2 ) ref -> [rsp+0x40] class-hnd single-def <<unknown class>>
-; V06 loc2 [V06,T15] ( 7, 2.56) int -> [rsp+0xA4] spill-single-def
-; V07 loc3 [V07,T12] ( 7, 4.67) int -> [rsp+0xA0]
-; V08 loc4 [V08,T16] ( 5, 2.00) byref -> [rsp+0x38]
-; V09 loc5 [V09,T06] ( 11, 5.67) int -> [rsp+0x9C]
+; V05 loc1 [V05,T17] ( 5, 2 ) ref -> [rsp+0x38] class-hnd single-def <<unknown class>>
+; V06 loc2 [V06,T15] ( 8, 2.56) int -> [rsp+0x94] spill-single-def
+; V07 loc3 [V07,T12] ( 7, 4.67) int -> [rsp+0x90]
+; V08 loc4 [V08,T16] ( 5, 2.00) byref -> [rsp+0x30]
+; V09 loc5 [V09,T06] ( 11, 5.67) int -> [rsp+0x8C]
; V10 loc6 [V10,T08] ( 6, 5 ) int -> rdi
; V11 loc7 [V11,T04] ( 7, 7 ) byref -> r13 single-def
; V12 loc8 [V12,T14] ( 3, 3 ) int -> rdi
; V13 OutArgs [V13 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref
-; V15 tmp2 [V15,T28] ( 3, 0 ) int -> r8
+; V15 tmp2 [V15,T27] ( 3, 0 ) int -> r8
;* V16 tmp3 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V17 tmp4 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp5 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp6 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp7 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V21 tmp8 [V21,T29] ( 3, 0 ) int -> r8 "Inline return value spill temp"
+; V21 tmp8 [V21,T28] ( 3, 0 ) int -> r8 "Inline return value spill temp"
; V22 tmp9 [V22,T18] ( 6, 1 ) int -> rax "Inline stloc first use temp"
-; V23 tmp10 [V23,T25] ( 8, 0 ) int -> rdx "Inline stloc first use temp"
+; V23 tmp10 [V23,T24] ( 8, 0 ) int -> rdx "Inline stloc first use temp"
;* V24 tmp11 [V24 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
-; V25 tmp12 [V25,T26] ( 4, 0 ) ref -> [rsp+0x30] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-; V26 tmp13 [V26,T30] ( 3, 0 ) int -> rcx "Inlining Arg"
-; V27 tmp14 [V27,T34] ( 2, 0 ) long -> r11 "Inlining Arg"
-; V28 tmp15 [V28,T27] ( 4, 0 ) int -> [rsp+0x98] spill-single-def "Inline stloc first use temp"
+; V25 tmp12 [V25,T25] ( 4, 0 ) ref -> [rsp+0x28] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+; V26 tmp13 [V26,T29] ( 3, 0 ) int -> rcx "Inlining Arg"
+; V27 tmp14 [V27,T33] ( 2, 0 ) long -> r11 "Inlining Arg"
+; V28 tmp15 [V28,T26] ( 4, 0 ) int -> [rsp+0x88] spill-single-def "Inline stloc first use temp"
;* V29 tmp16 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp17 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V31 tmp18 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V32 tmp19 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V33 tmp20 [V33 ] ( 2, 2.91) struct (16) [rsp+0x88] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <BenchmarksGame.ByteString>
+; V33 tmp20 [V33 ] ( 2, 2.91) struct (16) [rsp+0x78] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <BenchmarksGame.ByteString>
;* V34 tmp21 [V34 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <BenchmarksGame.ByteString>
;* V35 tmp22 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp23 [V36 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
; V37 tmp24 [V37,T22] ( 3, 0.01) ref -> r13 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V38 tmp25 [V38,T19] ( 3, 0.01) int -> [rsp+0x84] spill-single-def "Inlining Arg"
-; V39 tmp26 [V39,T21] ( 2, 0.01) long -> [rsp+0x78] spill-single-def "Inlining Arg"
-; V40 tmp27 [V40,T20] ( 4, 0.01) int -> [rsp+0x74] spill-single-def "Inline stloc first use temp"
+; V38 tmp25 [V38,T19] ( 3, 0.01) int -> [rsp+0x74] spill-single-def "Inlining Arg"
+; V39 tmp26 [V39,T21] ( 2, 0.01) long -> [rsp+0x68] spill-single-def "Inlining Arg"
+; V40 tmp27 [V40,T20] ( 4, 0.01) int -> [rsp+0x64] spill-single-def "Inline stloc first use temp"
; V41 tmp28 [V41,T10] ( 12, 4.73) ref -> rbp single-def "field V01.Array (fldOffset=0x0)" P-INDEP
; V42 tmp29 [V42,T11] ( 11, 4.73) int -> r14 "field V01.Start (fldOffset=0x8)" P-INDEP
; V43 tmp30 [V43,T05] ( 12, 5.73) int -> r15 "field V01.Length (fldOffset=0xc)" P-INDEP
-; V44 tmp31 [V44 ] ( 2, 2.91) ref -> [rsp+0x88] do-not-enreg[X] addr-exposed "field V33.Array (fldOffset=0x0)" P-DEP
-; V45 tmp32 [V45 ] ( 2, 2.91) int -> [rsp+0x90] do-not-enreg[X] addr-exposed "field V33.Start (fldOffset=0x8)" P-DEP
-; V46 tmp33 [V46 ] ( 2, 2.91) int -> [rsp+0x94] do-not-enreg[X] addr-exposed "field V33.Length (fldOffset=0xc)" P-DEP
+; V44 tmp31 [V44 ] ( 2, 2.91) ref -> [rsp+0x78] do-not-enreg[X] addr-exposed "field V33.Array (fldOffset=0x0)" P-DEP
+; V45 tmp32 [V45 ] ( 2, 2.91) int -> [rsp+0x80] do-not-enreg[X] addr-exposed "field V33.Start (fldOffset=0x8)" P-DEP
+; V46 tmp33 [V46 ] ( 2, 2.91) int -> [rsp+0x84] do-not-enreg[X] addr-exposed "field V33.Length (fldOffset=0xc)" P-DEP
;* V47 tmp34 [V47 ] ( 0, 0 ) ref -> zero-ref "field V34.Array (fldOffset=0x0)" P-INDEP
;* V48 tmp35 [V48 ] ( 0, 0 ) int -> zero-ref "field V34.Start (fldOffset=0x8)" P-INDEP
;* V49 tmp36 [V49 ] ( 0, 0 ) int -> zero-ref "field V34.Length (fldOffset=0xc)" P-INDEP
;* V50 tmp37 [V50 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <BenchmarksGame.ByteString>
-; V51 tmp38 [V51,T31] ( 3, 0 ) int -> r8 "index expr"
-; V52 tmp39 [V52 ] ( 14, 5.83) struct (16) [rsp+0x60] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
-;* V53 tmp40 [V53,T35] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V54 tmp41 [V54,T32] ( 3, 0 ) int -> rcx "index expr"
-; V55 tmp42 [V55,T33] ( 3, 0 ) int -> rcx "index expr"
-; V56 tmp43 [V56 ] ( 4, 0 ) struct (16) [rsp+0x50] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
-;* V57 tmp44 [V57,T36] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V58 cse0 [V58,T07] ( 4, 5.39) byref -> [rsp+0x28] spill-single-def "CSE - aggressive"
+; V51 tmp38 [V51,T30] ( 3, 0 ) int -> r8 "index expr"
+; V52 tmp39 [V52 ] ( 14, 5.83) struct (16) [rsp+0x50] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
+;* V53 tmp40 [V53,T34] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
+; V54 tmp41 [V54,T31] ( 3, 0 ) int -> rcx "index expr"
+; V55 tmp42 [V55,T32] ( 3, 0 ) int -> rcx "index expr"
+; V56 tmp43 [V56 ] ( 4, 0 ) struct (16) [rsp+0x40] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
+;* V57 tmp44 [V57,T35] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V58 cse0 [V58,T07] ( 4, 5.39) byref -> [rsp+0x20] spill-single-def "CSE - aggressive"
; V59 cse1 [V59,T23] ( 3, 0.01) int -> r12 "CSE - conservative"
-; V60 cse2 [V60,T24] ( 3, 0.00) long -> [rsp+0x48] spill-single-def "CSE - conservative"
-; V61 cse3 [V61,T03] ( 10, 7.67) int -> registers multi-def "CSE - aggressive"
+; V60 cse2 [V60,T03] ( 10, 7.67) int -> registers multi-def "CSE - aggressive"
;
-; Lcl frame size = 168
+; Lcl frame size = 152
G_M56080_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push r15
@@ -83,13 +82,13 @@ G_M56080_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rsi
push rbp
push rbx
- sub rsp, 168
+ sub rsp, 152
vzeroupper
vxorps xmm4, xmm4, xmm4
- vmovdqu ymmword ptr [rsp+0x50], ymm4
- vmovdqu ymmword ptr [rsp+0x70], ymm4
+ vmovdqu ymmword ptr [rsp+0x40], ymm4
+ vmovdqu ymmword ptr [rsp+0x60], ymm4
xor eax, eax
- mov qword ptr [rsp+0x90], rax
+ mov qword ptr [rsp+0x80], rax
mov rbx, rcx
; gcrRegs +[rbx]
mov rsi, r8
@@ -149,12 +148,12 @@ G_M56080_IG08: ; bbWeight=1, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=
je SHORT G_M56080_IG10
;; size=9 bbWeight=1 PerfScore 3.25
G_M56080_IG09: ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, byref, isz
- mov gword ptr [rsp+0x60], rbp
- mov dword ptr [rsp+0x68], r14d
- mov dword ptr [rsp+0x6C], r15d
+ mov gword ptr [rsp+0x50], rbp
+ mov dword ptr [rsp+0x58], r14d
+ mov dword ptr [rsp+0x5C], r15d
mov rcx, r12
; gcrRegs +[rcx]
- lea rdx, [rsp+0x60]
+ lea rdx, [rsp+0x50]
mov r11, 0xD1FFAB1E ; code for <unknown method>
call [r11]<unknown method>
; gcrRegs -[rcx]
@@ -184,24 +183,23 @@ G_M56080_IG13: ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefR
mov r8d, eax
;; size=3 bbWeight=0 PerfScore 0.00
G_M56080_IG14: ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, byref, isz
- mov dword ptr [rsp+0xA4], r8d
+ mov dword ptr [rsp+0x94], r8d
xor r10d, r10d
- mov dword ptr [rsp+0xA0], r10d
+ mov dword ptr [rsp+0x90], r10d
mov r9, gword ptr [rbx+0x08]
; gcrRegs +[r9]
- mov gword ptr [rsp+0x30], r9
+ mov gword ptr [rsp+0x28], r9
; GC ptr vars +{V25}
mov ecx, dword ptr [r9+0x08]
mov r11, qword ptr [rbx+0x30]
mov edx, r8d
- mov qword ptr [rsp+0x48], rdx
imul r11, rdx
shr r11, 32
inc r11
- mov eax, ecx
- imul r11, rax
+ mov edx, ecx
+ imul r11, rdx
shr r11, 32
- mov dword ptr [rsp+0x98], r11d
+ mov dword ptr [rsp+0x88], r11d
mov eax, r8d
xor edx, edx
div edx:eax, ecx
@@ -214,17 +212,17 @@ G_M56080_IG14: ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefR
call [<unknown method>]
; gcrRegs -[rcx rdx r9]
; gcr arg pop 0
- ;; size=111 bbWeight=0 PerfScore 0.00
+ ;; size=106 bbWeight=0 PerfScore 0.00
G_M56080_IG15: ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, byref
- mov r11d, dword ptr [rsp+0x98]
- mov r9, gword ptr [rsp+0x30]
+ mov r11d, dword ptr [rsp+0x88]
+ mov r9, gword ptr [rsp+0x28]
; gcrRegs +[r9]
cmp r11d, dword ptr [r9+0x08]
jae G_M56080_IG40
mov edx, r11d
lea rax, bword ptr [r9+4*rdx+0x10]
; byrRegs +[rax]
- mov bword ptr [rsp+0x38], rax
+ mov bword ptr [rsp+0x30], rax
; GC ptr vars +{V08}
mov r9d, dword ptr [rax]
; gcrRegs -[r9]
@@ -241,35 +239,35 @@ G_M56080_IG16: ; bbWeight=2.56, gcVars=0000000000010000 {V08}, gcrefRegs=
jbe G_M56080_IG31
;; size=13 bbWeight=2.56 PerfScore 8.31
G_M56080_IG17: ; bbWeight=1.56, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0000 {}, byref
- mov dword ptr [rsp+0x9C], r9d
+ mov dword ptr [rsp+0x8C], r9d
mov edx, r9d
shl rdx, 5
lea r11, bword ptr [r13+rdx+0x10]
; byrRegs +[r11]
- mov bword ptr [rsp+0x28], r11
+ mov bword ptr [rsp+0x20], r11
; GC ptr vars +{V58}
- mov r8d, dword ptr [rsp+0xA4]
+ mov r8d, dword ptr [rsp+0x94]
cmp dword ptr [r11+0x08], r8d
jne G_M56080_IG30
;; size=43 bbWeight=1.56 PerfScore 15.17
G_M56080_IG18: ; bbWeight=0.73, gcVars=0000000000010080 {V08 V58}, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0800 {r11}, gcvars, byref, nogc
vmovdqu xmm0, xmmword ptr [r11+0x10]
- vmovdqu xmmword ptr [rsp+0x88], xmm0
- ;; size=15 bbWeight=0.73 PerfScore 3.64
+ vmovdqu xmmword ptr [rsp+0x78], xmm0
+ ;; size=12 bbWeight=0.73 PerfScore 3.64
G_M56080_IG19: ; bbWeight=0.73, extend
- mov gword ptr [rsp+0x60], rbp
- mov dword ptr [rsp+0x68], r14d
- mov dword ptr [rsp+0x6C], r15d
- lea rdx, [rsp+0x60]
- lea rcx, [rsp+0x88]
+ mov gword ptr [rsp+0x50], rbp
+ mov dword ptr [rsp+0x58], r14d
+ mov dword ptr [rsp+0x5C], r15d
+ lea rdx, [rsp+0x50]
+ lea rcx, [rsp+0x78]
call [<unknown method>]
; byrRegs -[r11]
; gcr arg pop 0
test eax, eax
- mov r11, bword ptr [rsp+0x28]
+ mov r11, bword ptr [rsp+0x20]
; byrRegs +[r11]
je G_M56080_IG30
- ;; size=47 bbWeight=0.73 PerfScore 6.74
+ ;; size=44 bbWeight=0.73 PerfScore 6.74
G_M56080_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2060 {rbp rsi r13}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rbx]
; byrRegs -[r11]
@@ -279,7 +277,7 @@ G_M56080_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2060 {
;; size=6 bbWeight=0 PerfScore 0.00
G_M56080_IG21: ; bbWeight=0, gcrefRegs=2040 {rsi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
- mov r9d, dword ptr [rsp+0x9C]
+ mov r9d, dword ptr [rsp+0x8C]
cmp r9d, r12d
jae G_M56080_IG40
mov ecx, r9d
@@ -302,7 +300,7 @@ G_M56080_IG22: ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byr
G_M56080_IG23: ; bbWeight=0, gcVars=0000000000010000 {V08}, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx rsi r12-r13]
; GC ptr vars +{V08}
- mov dword ptr [rsp+0x9C], r9d
+ mov dword ptr [rsp+0x8C], r9d
mov ecx, 1
call [System.Diagnostics.Debug:Assert(ubyte)]
; gcr arg pop 0
@@ -310,7 +308,7 @@ G_M56080_IG23: ; bbWeight=0, gcVars=0000000000010000 {V08}, gcrefRegs=306
...
+7 (+0.25%) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -30,12 +30,12 @@
;* V17 tmp6 [V17 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V20 tmp9 [V20,T92] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V20 tmp9 [V20,T91] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V21 tmp10 [V21,T51] ( 3, 599.94) ref -> rcx class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
-; V22 tmp11 [V22,T87] ( 3, 0 ) long -> rdx "spilling helperCall"
+; V22 tmp11 [V22,T86] ( 3, 0 ) long -> rdx "spilling helperCall"
;* V23 tmp12 [V23 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V24 tmp13 [V24 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V25 tmp14 [V25,T88] ( 3, 0 ) long -> rdx "spilling helperCall"
+; V25 tmp14 [V25,T87] ( 3, 0 ) long -> rdx "spilling helperCall"
; V26 tmp15 [V26,T59] ( 3, 199.98) ref -> r8 "guarded devirt return temp"
; V27 tmp16 [V27,T50] ( 5, 599.94) ref -> rcx "guarded devirt arg temp"
; V28 tmp17 [V28,T53] ( 3, 399.96) int -> rdx "guarded devirt arg temp"
@@ -47,7 +47,7 @@
;* V34 tmp23 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
;* V35 tmp24 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <<unknown class>>
;* V36 tmp25 [V36 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.Threading.CancellationToken>
-;* V37 tmp26 [V37,T93] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V37 tmp26 [V37,T92] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
;* V40 tmp29 [V40 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
@@ -109,7 +109,7 @@
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V97 tmp86 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V98 tmp87 [V98 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V99 tmp88 [V99,T94] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V99 tmp88 [V99,T93] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V100 tmp89 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V101 tmp90 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V102 tmp91 [V102,T65] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -150,7 +150,7 @@
;* V137 tmp126 [V137 ] ( 0, 0 ) ref -> zero-ref single-def
;* V138 tmp127 [V138 ] ( 0, 0 ) ref -> zero-ref single-def
;* V139 tmp128 [V139,T63] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V140 tmp129 [V140,T82] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V140 tmp129 [V140,T81] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V141 tmp130 [V141 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V142 tmp131 [V142 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V143 tmp132 [V143 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -248,7 +248,7 @@
;* V235 tmp224 [V235 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V236 tmp225 [V236 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V237 tmp226 [V237 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V238 tmp227 [V238,T95] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V238 tmp227 [V238,T94] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.AggregateException>
;* V239 tmp228 [V239 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Exception>
;* V240 tmp229 [V240 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Exception[]>
;* V241 tmp230 [V241,T66] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -289,7 +289,7 @@
;* V276 tmp265 [V276 ] ( 0, 0 ) ref -> zero-ref single-def
;* V277 tmp266 [V277 ] ( 0, 0 ) ref -> zero-ref single-def
;* V278 tmp267 [V278,T64] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V279 tmp268 [V279,T83] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V279 tmp268 [V279,T82] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V280 tmp269 [V280 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V281 tmp270 [V281 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V282 tmp271 [V282 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -432,7 +432,7 @@
;* V419 tmp408 [V419 ] ( 0, 0 ) ref -> zero-ref
; V420 tmp409 [V420,T45] ( 2, 799.13) ref -> rax
; V421 tmp410 [V421,T03] ( 9, 25971.57) int -> [rbp-0x48] "Inline stloc first use temp"
-; V422 tmp411 [V422,T84] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V422 tmp411 [V422,T83] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V423 tmp412 [V423 ] ( 0, 0 ) ref -> zero-ref
; V424 tmp413 [V424,T46] ( 2, 799.13) ref -> rdx
;* V425 tmp414 [V425 ] ( 0, 0 ) ref -> zero-ref
@@ -452,11 +452,11 @@
;* V439 tmp428 [V439 ] ( 0, 0 ) ref -> zero-ref
; V440 tmp429 [V440,T48] ( 2, 799.13) ref -> rax
; V441 tmp430 [V441,T04] ( 9, 25971.57) int -> r13 "Inline stloc first use temp"
-; V442 tmp431 [V442,T85] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V442 tmp431 [V442,T84] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V443 tmp432 [V443 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V444 tmp433 [V444 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V445 tmp434 [V445 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V446 tmp435 [V446,T86] ( 3, 0 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V446 tmp435 [V446,T85] ( 3, 0 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V447 tmp436 [V447 ] ( 0, 0 ) ref -> zero-ref single-def "field V32._source (fldOffset=0x0)" P-INDEP
;* V448 tmp437 [V448 ] ( 0, 0 ) ref -> zero-ref single-def "field V34._source (fldOffset=0x0)" P-INDEP
;* V449 tmp438 [V449 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._source (fldOffset=0x0)" P-INDEP
@@ -501,7 +501,7 @@
;* V488 tmp477 [V488 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V489 tmp478 [V489 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V490 tmp479 [V490,T67] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V491 tmp480 [V491,T96] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V491 tmp480 [V491,T95] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V492 tmp481 [V492 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V493 tmp482 [V493 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V494 tmp483 [V494 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
@@ -509,16 +509,16 @@
;* V496 tmp485 [V496 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V497 tmp486 [V497 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V498 tmp487 [V498,T68] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V499 tmp488 [V499,T97] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V499 tmp488 [V499,T96] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V500 tmp489 [V500 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V501 tmp490 [V501 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V502 tmp491 [V502,T09] ( 2, 12786.00) ref -> rcx "argument with side effect"
-; V503 tmp492 [V503,T98] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V503 tmp492 [V503,T97] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V504 tmp493 [V504 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V505 tmp494 [V505 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V506 tmp495 [V506,T05] ( 3, 19179.01) ref -> rcx "arr expr"
; V507 tmp496 [V507,T10] ( 2, 12786.00) ref -> rcx "argument with side effect"
-; V508 tmp497 [V508,T99] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V508 tmp497 [V508,T98] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V509 tmp498 [V509 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V510 tmp499 [V510 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V511 tmp500 [V511,T34] ( 2, 1598.25) ref -> rdx "argument with side effect"
@@ -528,10 +528,9 @@
; V515 cse2 [V515,T39] ( 3, 1198.69) ref -> rcx "CSE - conservative"
; V516 cse3 [V516,T01] ( 3,917768750.15) int -> rcx "CSE - aggressive"
; V517 cse4 [V517,T11] ( 9, 11986.88) int -> [rbp-0x50] spill-single-def "CSE - moderate"
-; V518 cse5 [V518,T81] ( 15, 0 ) ref -> rdx multi-def "CSE - conservative"
-; V519 rat0 [V519,T89] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
-; V520 rat1 [V520,T90] ( 3, 0 ) long -> rcx "spilling expr"
-; V521 rat2 [V521,T91] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
+; V518 rat0 [V518,T88] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
+; V519 rat1 [V519,T89] ( 3, 0 ) long -> rcx "spilling expr"
+; V520 rat2 [V520,T90] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 104
@@ -1477,15 +1476,15 @@ G_M48189_IG67: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
;; size=11 bbWeight=0 PerfScore 0.00
G_M48189_IG68: ; bbWeight=0, gcrefRegs=A000 {r13 r15}, byrefRegs=0008 {rbx}, byref
; gcrRegs +[r13 r15]
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
jmp G_M48189_IG27
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M48189_IG69: ; bbWeight=0, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[r13] +[rsi]
mov rcx, 0xD1FFAB1E
@@ -1699,7 +1698,7 @@ G_M48189_IG88: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2778, prolog size 94, PerfScore 1376941859.12, instruction count 611, allocated bytes for code 2778 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 2785, prolog size 94, PerfScore 1376941859.12, instruction count 611, allocated bytes for code 2785 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
+11 (+0.36%) : 100328.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan
1[System.String],ubyte):System.Buffers.SearchValues1System.String@@ -11,12 +11,12 @@
;
; V00 arg0 [V00,T07] ( 3, 6 ) byref -> rcx ld-addr-op single-def
; V01 arg1 [V01,T18] ( 3, 3 ) ubyte -> rdx ld-addr-op single-def
-; V02 loc0 [V02,T82] ( 8, 0 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
+; V02 loc0 [V02,T81] ( 8, 0 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
; V03 loc1 [V03 ] ( 11, 0 ) struct (16) [rsp+0x240] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Span`1[System.String]>
-; V04 loc2 [V04,T95] ( 4, 0 ) int -> registers ptr
+; V04 loc2 [V04,T94] ( 4, 0 ) int -> registers ptr
; V05 loc3 [V05 ] ( 4, 0 ) ref -> [rsp+0x238] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.Collections.Generic.HashSet`1[System.String]>
; V06 loc4 [V06 ] ( 3, 0 ) struct (160) [rsp+0xD0] do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer <System.Buffers.AhoCorasickBuilder>
-; V07 loc5 [V07,T109] ( 2, 0 ) ref -> rbx class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
+; V07 loc5 [V07,T108] ( 2, 0 ) ref -> rbx class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
; V08 loc6 [V08,T33] ( 6, 3 ) ref -> rdi class-hnd single-def <System.String>
; V09 loc7 [V09 ] ( 3, 3 ) ref -> [rsp+0x230] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.String>
; V10 loc8 [V10 ] ( 5, 4 ) ubyte -> [rsp+0x22C] do-not-enreg[X] addr-exposed ld-addr-op
@@ -24,43 +24,43 @@
; V12 loc10 [V12 ] ( 2, 1 ) ubyte -> [rsp+0x224] do-not-enreg[X] addr-exposed ld-addr-op
; V13 loc11 [V13,T29] ( 4, 3.83) int -> rsi ld-addr-op
;* V14 loc12 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[System.String]>
-; V15 loc13 [V15,T83] ( 6, 0 ) int -> rbp
-; V16 loc14 [V16,T98] ( 3, 0 ) ref -> rdx class-hnd <System.String>
+; V15 loc13 [V15,T82] ( 6, 0 ) int -> rbp
+; V16 loc14 [V16,T97] ( 3, 0 ) ref -> rdx class-hnd <System.String>
; V17 loc15 [V17 ] ( 3, 0 ) struct (24) [rsp+0x208] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.String]>
-; V18 loc16 [V18,T110] ( 2, 0 ) ref -> [rsp+0x170] class-hnd exact spill-single-def ptr <System.String>
+; V18 loc16 [V18,T109] ( 2, 0 ) ref -> [rsp+0x170] class-hnd exact spill-single-def ptr <System.String>
; V19 tmp0 [V19,T72] ( 1, 1 ) int -> [rsp+0x204] do-not-enreg[V] "GSCookie dummy"
; V20 OutArgs [V20 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V21 tmp2 [V21 ] ( 0, 0 ) int -> zero-ref
;* V22 tmp3 [V22 ] ( 0, 0 ) int -> zero-ref ptr
-; V23 tmp4 [V23,T111] ( 2, 0 ) ref -> rbp
-; V24 tmp5 [V24,T99] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
-; V25 tmp6 [V25,T96] ( 4, 0 ) int -> rsi "impSpillLclRefs"
+; V23 tmp4 [V23,T110] ( 2, 0 ) ref -> rbp
+; V24 tmp5 [V24,T98] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V25 tmp6 [V25,T95] ( 4, 0 ) int -> rsi "impSpillLclRefs"
;* V26 tmp7 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V27 tmp8 [V27,T112] ( 2, 0 ) ref -> r8 class-hnd single-def "dup spill" <<unknown class>>
+; V27 tmp8 [V27,T111] ( 2, 0 ) ref -> r8 class-hnd single-def "dup spill" <<unknown class>>
;* V28 tmp9 [V28 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[System.String]>
;* V29 tmp10 [V29 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[System.String]>
-; V30 tmp11 [V30,T88] ( 4, 0 ) ref -> r8
+; V30 tmp11 [V30,T87] ( 4, 0 ) ref -> r8
; V31 tmp12 [V31 ] ( 2, 0 ) struct (160) [rsp+0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer "NewObj constructor temp" <System.Buffers.AhoCorasickBuilder>
; V32 tmp13 [V32 ] ( 2, 0 ) struct (16) [rsp+0x1F0] do-not-enreg[HS] must-init hidden-struct-arg ptr "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
; V33 tmp14 [V33 ] ( 2, 0 ) struct (16) [rsp+0x1E0] do-not-enreg[HS] must-init hidden-struct-arg ptr "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
-; V34 tmp15 [V34,T89] ( 4, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V35 tmp16 [V35,T90] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V34 tmp15 [V34,T88] ( 4, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V35 tmp16 [V35,T89] ( 4, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V36 tmp17 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.String]>
;* V37 tmp18 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V38 tmp19 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
;* V39 tmp20 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V40 tmp21 [V40,T22] ( 5, 4 ) ref -> rsi class-hnd "Inlining Arg" <System.String>
;* V41 tmp22 [V41 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V42 tmp23 [V42,T85] ( 5, 0 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V42 tmp23 [V42,T84] ( 5, 0 ) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V43 tmp24 [V43 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp25 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
;* V45 tmp26 [V45 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V46 tmp27 [V46 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V47 tmp28 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V48 tmp29 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V49 tmp30 [V49,T134] ( 2, 0 ) int -> r12 "Inlining Arg"
-; V50 tmp31 [V50,T113] ( 2, 0 ) byref -> r13 single-def "Inlining Arg"
-; V51 tmp32 [V51,T114] ( 2, 0 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
+; V49 tmp30 [V49,T133] ( 2, 0 ) int -> r12 "Inlining Arg"
+; V50 tmp31 [V50,T112] ( 2, 0 ) byref -> r13 single-def "Inlining Arg"
+; V51 tmp32 [V51,T113] ( 2, 0 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
;* V52 tmp33 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V53 tmp34 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V54 tmp35 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -68,10 +68,10 @@
;* V56 tmp37 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp38 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V58 tmp39 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V59 tmp40 [V59,T135] ( 2, 0 ) int -> r14 "Inlining Arg"
-; V60 tmp41 [V60,T115] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
-; V61 tmp42 [V61,T136] ( 2, 0 ) int -> rdi "Inlining Arg"
-; V62 tmp43 [V62,T116] ( 2, 0 ) byref -> rbp single-def "Inlining Arg"
+; V59 tmp40 [V59,T134] ( 2, 0 ) int -> r14 "Inlining Arg"
+; V60 tmp41 [V60,T114] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
+; V61 tmp42 [V61,T135] ( 2, 0 ) int -> rdi "Inlining Arg"
+; V62 tmp43 [V62,T115] ( 2, 0 ) byref -> rbp single-def "Inlining Arg"
;* V63 tmp44 [V63 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[System.String]>
;* V64 tmp45 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
; V65 tmp46 [V65,T17] ( 5, 5 ) int -> r14 "Inline stloc first use temp"
@@ -88,8 +88,8 @@
; V76 tmp57 [V76,T55] ( 2, 2 ) byref -> r10 single-def
; V77 tmp58 [V77,T51] ( 3, 2 ) int -> r11
;* V78 tmp59 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
-; V79 tmp60 [V79,T86] ( 5, 0 ) int -> rsi "Inline stloc first use temp"
-; V80 tmp61 [V80,T91] ( 4, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <System.String>
+; V79 tmp60 [V79,T85] ( 5, 0 ) int -> rsi "Inline stloc first use temp"
+; V80 tmp61 [V80,T90] ( 4, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <System.String>
;* V81 tmp62 [V81 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V82 tmp63 [V82 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V83 tmp64 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
@@ -119,9 +119,9 @@
;* V107 tmp88 [V107 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V108 tmp89 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V109 tmp90 [V109 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V110 tmp91 [V110,T137] ( 2, 0 ) int -> r14 "Inlining Arg"
-; V111 tmp92 [V111,T117] ( 2, 0 ) byref -> rdi "Inlining Arg"
-; V112 tmp93 [V112,T118] ( 2, 0 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+; V110 tmp91 [V110,T136] ( 2, 0 ) int -> r14 "Inlining Arg"
+; V111 tmp92 [V111,T116] ( 2, 0 ) byref -> rdi "Inlining Arg"
+; V112 tmp93 [V112,T117] ( 2, 0 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
;* V113 tmp94 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V114 tmp95 [V114 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V115 tmp96 [V115 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -132,12 +132,12 @@
; V120 tmp101 [V120,T04] ( 18, 11.80) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.String>
; V121 tmp102 [V121,T48] ( 3, 0 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.HashSet`1[System.String]>
; V122 tmp103 [V122,T21] ( 6, 4.00) ubyte -> rbx "Inlining Arg"
-; V123 tmp104 [V123,T92] ( 4, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V124 tmp105 [V124,T93] ( 4, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V123 tmp104 [V123,T91] ( 4, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V124 tmp105 [V124,T92] ( 4, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V125 tmp106 [V125 ] ( 0, 0 ) int -> zero-ref
;* V126 tmp107 [V126 ] ( 0, 0 ) int -> zero-ref
-; V127 tmp108 [V127,T119] ( 2, 0 ) ref -> rsi
-; V128 tmp109 [V128,T94] ( 4, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V127 tmp108 [V127,T118] ( 2, 0 ) ref -> rsi
+; V128 tmp109 [V128,T93] ( 4, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V129 tmp110 [V129,T38] ( 3, 2.96) int -> rcx "Inline stloc first use temp"
; V130 tmp111 [V130,T39] ( 4, 2.84) ubyte -> r9 "Inlining Arg"
; V131 tmp112 [V131,T40] ( 4, 2.84) ubyte -> rdx "Inlining Arg"
@@ -145,9 +145,9 @@
;* V133 tmp114 [V133 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ptr "Inline stloc first use temp" <System.Buffers.SearchValues`1[System.String]>
; V134 tmp115 [V134,T62] ( 6, 1.16) ref -> rax class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V135 tmp116 [V135 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V136 tmp117 [V136,T100] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V137 tmp118 [V137,T101] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V138 tmp119 [V138,T102] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V136 tmp117 [V136,T99] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V137 tmp118 [V137,T100] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V138 tmp119 [V138,T101] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V139 tmp120 [V139,T05] ( 10, 11.62) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V140 tmp121 [V140 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V141 tmp122 [V141,T10] ( 16, 6.49) int -> registers ld-addr-op ptr "Inline ldloca(s) first use temp"
@@ -202,9 +202,9 @@
;* V190 tmp171 [V190 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V191 tmp172 [V191 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V192 tmp173 [V192 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V193 tmp174 [V193,T97] ( 4, 0 ) int -> rsi "Inlining Arg"
-; V194 tmp175 [V194,T103] ( 3, 0 ) byref -> rdi single-def "Inlining Arg"
-; V195 tmp176 [V195,T138] ( 2, 0 ) int -> rax "Inline return value spill temp"
+; V193 tmp174 [V193,T96] ( 4, 0 ) int -> rsi "Inlining Arg"
+; V194 tmp175 [V194,T102] ( 3, 0 ) byref -> rdi single-def "Inlining Arg"
+; V195 tmp176 [V195,T137] ( 2, 0 ) int -> rax "Inline return value spill temp"
; V196 tmp177 [V196 ] ( 2, 0 ) ushort -> [rsp+0x1DC] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V197 tmp178 [V197 ] ( 2, 0 ) ushort -> [rsp+0x1D8] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V198 tmp179 [V198 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -228,10 +228,10 @@
;* V216 tmp197 [V216 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
;* V217 tmp198 [V217 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V218 tmp199 [V218 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
-; V219 tmp200 [V219,T84] ( 6, 0 ) ushort -> r14 "Inlining Arg"
-; V220 tmp201 [V220,T87] ( 5, 0 ) ushort -> r15 "Inlining Arg"
+; V219 tmp200 [V219,T83] ( 6, 0 ) ushort -> r14 "Inlining Arg"
+; V220 tmp201 [V220,T86] ( 5, 0 ) ushort -> r15 "Inlining Arg"
;* V221 tmp202 [V221 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V222 tmp203 [V222,T106] ( 3, 0 ) int -> rax "Inline return value spill temp"
+; V222 tmp203 [V222,T105] ( 3, 0 ) int -> rax "Inline return value spill temp"
;* V223 tmp204 [V223 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V224 tmp205 [V224 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V225 tmp206 [V225 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inline stloc first use temp"
@@ -260,44 +260,44 @@
;* V248 tmp229 [V248 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V249 tmp230 [V249 ] ( 1, 0 ) int -> [rsp+0x1D0] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V250 tmp231 [V250 ] ( 1, 0 ) int -> [rsp+0x1C8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V251 tmp232 [V251,T104] ( 3, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V251 tmp232 [V251,T103] ( 3, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <<unknown class>>
;* V252 tmp233 [V252 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[System.String]>
; V253 tmp234 [V253 ] ( 7, 0 ) byref -> [rsp+0x240] do-not-enreg[X] addr-exposed ptr "field V03._reference (fldOffset=0x0)" P-DEP
; V254 tmp235 [V254 ] ( 8, 0 ) int -> [rsp+0x248] do-not-enreg[X] addr-exposed ptr "field V03._length (fldOffset=0x8)" P-DEP
-; V255 tmp236 [V255,T120] ( 2, 0 ) byref -> rsi single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-; V256 tmp237 [V256,T107] ( 3, 0 ) int -> rdi "field V14._length (fldOffset=0x8)" P-INDEP
+; V255 tmp236 [V255,T119] ( 2, 0 ) byref -> rsi single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+; V256 tmp237 [V256,T106] ( 3, 0 ) int -> rdi "field V14._length (fldOffset=0x8)" P-INDEP
; V257 tmp238 [V257 ] ( 2, 0 ) ref -> [rsp+0x208] do-not-enreg[X] addr-exposed "field V17._hashSet (fldOffset=0x0)" P-DEP
; V258 tmp239 [V258 ] ( 3, 0 ) ref -> [rsp+0x210] do-not-enreg[X] addr-exposed ptr "field V17._current (fldOffset=0x8)" P-DEP
; V259 tmp240 [V259 ] ( 2, 0 ) int -> [rsp+0x218] do-not-enreg[X] addr-exposed "field V17._version (fldOffset=0x10)" P-DEP
; V260 tmp241 [V260 ] ( 2, 0 ) int -> [rsp+0x21C] do-not-enreg[X] addr-exposed "field V17._index (fldOffset=0x14)" P-DEP
-; V261 tmp242 [V261,T121] ( 2, 0 ) byref -> rsi single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-; V262 tmp243 [V262,T139] ( 2, 0 ) int -> rdi "field V28._length (fldOffset=0x8)" P-INDEP
+; V261 tmp242 [V261,T120] ( 2, 0 ) byref -> rsi single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+; V262 tmp243 [V262,T138] ( 2, 0 ) int -> rdi "field V28._length (fldOffset=0x8)" P-INDEP
;* V263 tmp244 [V263 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V29._reference (fldOffset=0x0)" P-INDEP
;* V264 tmp245 [V264 ] ( 0, 0 ) int -> zero-ref ptr "field V29._length (fldOffset=0x8)" P-INDEP
-; V265 tmp246 [V265,T122] ( 2, 0 ) byref -> [rsp+0x1F0] do-not-enreg[H] hidden-struct-arg "field V32._reference (fldOffset=0x0)" P-DEP
-; V266 tmp247 [V266,T140] ( 2, 0 ) int -> [rsp+0x1F8] do-not-enreg[H] hidden-struct-arg "field V32._length (fldOffset=0x8)" P-DEP
-; V267 tmp248 [V267,T123] ( 2, 0 ) byref -> [rsp+0x1E0] do-not-enreg[H] hidden-struct-arg "field V33._reference (fldOffset=0x0)" P-DEP
-; V268 tmp249 [V268,T141] ( 2, 0 ) int -> [rsp+0x1E8] do-not-enreg[H] hidden-struct-arg "field V33._length (fldOffset=0x8)" P-DEP
+; V265 tmp246 [V265,T121] ( 2, 0 ) byref -> [rsp+0x1F0] do-not-enreg[H] hidden-struct-arg "field V32._reference (fldOffset=0x0)" P-DEP
+; V266 tmp247 [V266,T139] ( 2, 0 ) int -> [rsp+0x1F8] do-not-enreg[H] hidden-struct-arg "field V32._length (fldOffset=0x8)" P-DEP
+; V267 tmp248 [V267,T122] ( 2, 0 ) byref -> [rsp+0x1E0] do-not-enreg[H] hidden-struct-arg "field V33._reference (fldOffset=0x0)" P-DEP
+; V268 tmp249 [V268,T140] ( 2, 0 ) int -> [rsp+0x1E8] do-not-enreg[H] hidden-struct-arg "field V33._length (fldOffset=0x8)" P-DEP
; V269 tmp250 [V269,T56] ( 2, 2 ) byref -> rbp single-def "field V36._reference (fldOffset=0x0)" P-INDEP
;* V270 tmp251 [V270,T73] ( 0, 0 ) int -> zero-ref ptr "field V36._length (fldOffset=0x8)" P-INDEP
;* V271 tmp252 [V271 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V41._reference (fldOffset=0x0)" P-INDEP
;* V272 tmp253 [V272 ] ( 0, 0 ) int -> zero-ref ptr "field V41._length (fldOffset=0x8)" P-INDEP
-; V273 tmp254 [V273,T124] ( 2, 0 ) byref -> r15 "field V43._reference (fldOffset=0x0)" P-INDEP
-; V274 tmp255 [V274,T142] ( 2, 0 ) int -> r14 "field V43._length (fldOffset=0x8)" P-INDEP
-; V275 tmp256 [V275,T125] ( 2, 0 ) byref -> rbp single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-; V276 tmp257 [V276,T143] ( 2, 0 ) int -> rdi "field V44._length (fldOffset=0x8)" P-INDEP
-; V277 tmp258 [V277,T126] ( 2, 0 ) byref -> rcx "field V46._reference (fldOffset=0x0)" P-INDEP
-; V278 tmp259 [V278,T144] ( 2, 0 ) int -> rdx "field V46._length (fldOffset=0x8)" P-INDEP
-; V279 tmp260 [V279,T127] ( 2, 0 ) byref -> rcx single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-; V280 tmp261 [V280,T145] ( 2, 0 ) int -> rdx "field V47._length (fldOffset=0x8)" P-INDEP
+; V273 tmp254 [V273,T123] ( 2, 0 ) byref -> r15 "field V43._reference (fldOffset=0x0)" P-INDEP
+; V274 tmp255 [V274,T141] ( 2, 0 ) int -> r14 "field V43._length (fldOffset=0x8)" P-INDEP
+; V275 tmp256 [V275,T124] ( 2, 0 ) byref -> rbp single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+; V276 tmp257 [V276,T142] ( 2, 0 ) int -> rdi "field V44._length (fldOffset=0x8)" P-INDEP
+; V277 tmp258 [V277,T125] ( 2, 0 ) byref -> rcx "field V46._reference (fldOffset=0x0)" P-INDEP
+; V278 tmp259 [V278,T143] ( 2, 0 ) int -> rdx "field V46._length (fldOffset=0x8)" P-INDEP
+; V279 tmp260 [V279,T126] ( 2, 0 ) byref -> rcx single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+; V280 tmp261 [V280,T144] ( 2, 0 ) int -> rdx "field V47._length (fldOffset=0x8)" P-INDEP
;* V281 tmp262 [V281 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
;* V282 tmp263 [V282 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V283 tmp264 [V283 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V52._reference (fldOffset=0x0)" P-INDEP
;* V284 tmp265 [V284 ] ( 0, 0 ) int -> zero-ref ptr "field V52._length (fldOffset=0x8)" P-INDEP
;* V285 tmp266 [V285 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V53._reference (fldOffset=0x0)" P-INDEP
;* V286 tmp267 [V286 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V287 tmp268 [V287,T128] ( 2, 0 ) byref -> r15 single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-; V288 tmp269 [V288,T146] ( 2, 0 ) int -> r14 "field V57._length (fldOffset=0x8)" P-INDEP
+; V287 tmp268 [V287,T127] ( 2, 0 ) byref -> r15 single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+; V288 tmp269 [V288,T145] ( 2, 0 ) int -> r14 "field V57._length (fldOffset=0x8)" P-INDEP
;* V289 tmp270 [V289 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP
;* V290 tmp271 [V290 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
; V291 tmp272 [V291,T36] ( 3, 2 ) byref -> rbp single-def "field V63._reference (fldOffset=0x0)" P-INDEP
@@ -308,10 +308,10 @@
;* V296 tmp277 [V296 ] ( 0, 0 ) int -> zero-ref ptr "field V73._length (fldOffset=0x8)" P-INDEP
;* V297 tmp278 [V297 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
;* V298 tmp279 [V298 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V299 tmp280 [V299,T129] ( 2, 0 ) byref -> rbp single-def "field V78._reference (fldOffset=0x0)" P-INDEP
-;* V300 tmp281 [V300,T150] ( 0, 0 ) int -> zero-ref ptr "field V78._length (fldOffset=0x8)" P-INDEP
-; V301 tmp282 [V301,T130] ( 2, 0 ) byref -> rcx "field V81._reference (fldOffset=0x0)" P-INDEP
-; V302 tmp283 [V302,T147] ( 2, 0 ) int -> rdx "field V81._length (fldOffset=0x8)" P-INDEP
+; V299 tmp280 [V299,T128] ( 2, 0 ) byref -> rbp single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V300 tmp281 [V300,T149] ( 0, 0 ) int -> zero-ref ptr "field V78._length (fldOffset=0x8)" P-INDEP
+; V301 tmp282 [V301,T129] ( 2, 0 ) byref -> rcx "field V81._reference (fldOffset=0x0)" P-INDEP
+; V302 tmp283 [V302,T146] ( 2, 0 ) int -> rdx "field V81._length (fldOffset=0x8)" P-INDEP
; V303 tmp284 [V303,T12] ( 3, 6 ) byref -> rcx "field V82._reference (fldOffset=0x0)" P-INDEP
; V304 tmp285 [V304,T14] ( 3, 6 ) int -> rdx "field V82._length (fldOffset=0x8)" P-INDEP
; V305 tmp286 [V305,T57] ( 2, 2 ) byref -> rcx "field V83._reference (fldOffset=0x0)" P-INDEP
@@ -332,10 +332,10 @@
...
+10 (+0.70%) : 89050.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+
@@ -30,12 +30,12 @@
;* V17 tmp6 [V17 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-; V20 tmp9 [V20,T93] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+; V20 tmp9 [V20,T92] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V21 tmp10 [V21,T01] ( 3,599.94) ref -> rcx class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
-; V22 tmp11 [V22,T86] ( 3, 0 ) long -> rdx "spilling helperCall"
+; V22 tmp11 [V22,T85] ( 3, 0 ) long -> rdx "spilling helperCall"
;* V23 tmp12 [V23 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V24 tmp13 [V24 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V25 tmp14 [V25,T87] ( 3, 0 ) long -> rdx "spilling helperCall"
+; V25 tmp14 [V25,T86] ( 3, 0 ) long -> rdx "spilling helperCall"
; V26 tmp15 [V26,T07] ( 4,199.98) ref -> rdi "guarded devirt return temp"
; V27 tmp16 [V27,T00] ( 5,599.94) ref -> rcx "guarded devirt arg temp"
; V28 tmp17 [V28,T04] ( 3,399.96) int -> rdx "guarded devirt arg temp"
@@ -177,7 +177,7 @@
;* V164 tmp153 [V164 ] ( 0, 0 ) ref -> zero-ref single-def
;* V165 tmp154 [V165,T61] ( 0, 0 ) ref -> zero-ref single-def
;* V166 tmp155 [V166,T14] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V167 tmp156 [V167,T81] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V167 tmp156 [V167,T80] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V168 tmp157 [V168 ] ( 0, 0 ) ref -> zero-ref single-def
;* V169 tmp158 [V169 ] ( 0, 0 ) ref -> zero-ref single-def
;* V170 tmp159 [V170 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -197,7 +197,7 @@
;* V184 tmp173 [V184 ] ( 0, 0 ) ref -> zero-ref single-def
;* V185 tmp174 [V185 ] ( 0, 0 ) ref -> zero-ref single-def
;* V186 tmp175 [V186,T16] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V187 tmp176 [V187,T82] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V187 tmp176 [V187,T81] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V188 tmp177 [V188 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V189 tmp178 [V189 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V190 tmp179 [V190 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -388,7 +388,7 @@
;* V375 tmp364 [V375 ] ( 0, 0 ) ref -> zero-ref single-def
;* V376 tmp365 [V376,T66] ( 0, 0 ) ref -> zero-ref single-def
;* V377 tmp366 [V377,T12] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V378 tmp367 [V378,T83] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V378 tmp367 [V378,T82] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V379 tmp368 [V379 ] ( 0, 0 ) ref -> zero-ref single-def
;* V380 tmp369 [V380 ] ( 0, 0 ) ref -> zero-ref single-def
;* V381 tmp370 [V381 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -408,7 +408,7 @@
;* V395 tmp384 [V395 ] ( 0, 0 ) ref -> zero-ref single-def
;* V396 tmp385 [V396 ] ( 0, 0 ) ref -> zero-ref single-def
;* V397 tmp386 [V397,T13] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V398 tmp387 [V398,T84] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V398 tmp387 [V398,T83] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V399 tmp388 [V399 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V400 tmp389 [V400 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
;* V401 tmp390 [V401 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -489,7 +489,7 @@
;* V476 tmp465 [V476 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V477 tmp466 [V477 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
;* V478 tmp467 [V478 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V479 tmp468 [V479,T85] ( 3, 0 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+; V479 tmp468 [V479,T84] ( 3, 0 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V480 tmp469 [V480 ] ( 0, 0 ) ref -> zero-ref single-def "field V32._source (fldOffset=0x0)" P-INDEP
;* V481 tmp470 [V481 ] ( 0, 0 ) ref -> zero-ref single-def "field V34._source (fldOffset=0x0)" P-INDEP
;* V482 tmp471 [V482 ] ( 0, 0 ) ref -> zero-ref single-def "field V36._source (fldOffset=0x0)" P-INDEP
@@ -541,12 +541,12 @@
;* V528 tmp517 [V528 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V529 tmp518 [V529 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V530 tmp519 [V530,T26] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V531 tmp520 [V531,T94] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V531 tmp520 [V531,T93] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V532 tmp521 [V532 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V533 tmp522 [V533 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V534 tmp523 [V534,T27] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V535 tmp524 [V535,T28] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V536 tmp525 [V536,T95] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V536 tmp525 [V536,T94] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V537 tmp526 [V537 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V538 tmp527 [V538 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V539 tmp528 [V539 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
@@ -560,23 +560,22 @@
;* V547 tmp536 [V547 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V548 tmp537 [V548 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V549 tmp538 [V549,T29] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V550 tmp539 [V550,T96] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V550 tmp539 [V550,T95] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V551 tmp540 [V551 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V552 tmp541 [V552 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V553 tmp542 [V553,T30] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V554 tmp543 [V554,T31] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V555 tmp544 [V555,T97] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V555 tmp544 [V555,T96] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V556 tmp545 [V556 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V557 tmp546 [V557 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V558 tmp547 [V558 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V559 tmp548 [V559,T98] ( 2, 0 ) long -> rcx "argument with side effect"
+; V559 tmp548 [V559,T97] ( 2, 0 ) long -> rcx "argument with side effect"
; V560 PSPSym [V560,T78] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
-; V561 cse0 [V561,T80] ( 7, 99.89) ref -> rdx multi-def "CSE - conservative"
-; V562 rat0 [V562,T88] ( 3, 0 ) long -> rcx "runtime lookup"
-; V563 rat1 [V563,T89] ( 3, 0 ) long -> rcx "fgMakeTemp is creating a new local variable"
-; V564 rat2 [V564,T90] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
-; V565 rat3 [V565,T91] ( 3, 0 ) long -> rcx "spilling expr"
-; V566 rat4 [V566,T92] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
+; V561 rat0 [V561,T87] ( 3, 0 ) long -> rcx "runtime lookup"
+; V562 rat1 [V562,T88] ( 3, 0 ) long -> rcx "fgMakeTemp is creating a new local variable"
+; V563 rat2 [V563,T89] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
+; V564 rat3 [V564,T90] ( 3, 0 ) long -> rcx "spilling expr"
+; V565 rat4 [V565,T91] ( 3, 0 ) long -> rdx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 56
@@ -908,17 +907,17 @@ G_M48189_IG29: ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi},
; gcrRegs -[r12]
jmp G_M48189_IG35
;; size=5 bbWeight=0 PerfScore 0.00
-G_M48189_IG30: ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+G_M48189_IG30: ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0040 {rsi}, byref
; gcrRegs +[r15]
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- jmp SHORT G_M48189_IG25
- ;; size=21 bbWeight=0 PerfScore 0.00
+ jmp G_M48189_IG25
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M48189_IG31: ; bbWeight=49.95, gcrefRegs=5000 {r12 r14}, byrefRegs=0040 {rsi}, byref, isz
; gcrRegs -[r15] +[r12]
mov ecx, dword ptr [r12+0x34]
@@ -1180,7 +1179,7 @@ G_M48189_IG55: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1427, prolog size 88, PerfScore 7354.04, instruction count 329, allocated bytes for code 1427 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 1437, prolog size 88, PerfScore 7354.04, instruction count 329, allocated bytes for code 1437 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
; ============================================================
Unwind Info:
+21 (+1.29%) : 100334.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet
1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String@@ -19,17 +19,17 @@
; V07 loc2 [V07,T17] ( 5, 3 ) ref -> rax class-hnd <System.Buffers.SearchValues`1[System.String]>
; V08 loc3 [V08,T18] ( 3, 2.96) int -> r8
; V09 OutArgs [V09 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T48] ( 4, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-; V11 tmp2 [V11,T49] ( 4, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+; V10 tmp1 [V10,T47] ( 4, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+; V11 tmp2 [V11,T48] ( 4, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
;* V12 tmp3 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref
-; V14 tmp5 [V14,T63] ( 2, 0 ) ref -> rsi
-; V15 tmp6 [V15,T50] ( 4, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+; V14 tmp5 [V14,T62] ( 2, 0 ) ref -> rsi
+; V15 tmp6 [V15,T49] ( 4, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
; V16 tmp7 [V16,T27] ( 6, 1.16) ref -> rax class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V18 tmp9 [V18,T53] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V19 tmp10 [V19,T54] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V20 tmp11 [V20,T55] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V18 tmp9 [V18,T52] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V19 tmp10 [V19,T53] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V20 tmp11 [V20,T54] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V21 tmp12 [V21,T04] ( 10, 11.62) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V22 tmp13 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V23 tmp14 [V23,T08] ( 16, 6.49) int -> registers ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
;* V72 tmp63 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V73 tmp64 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V75 tmp66 [V75,T51] ( 4, 0 ) int -> rbp "Inlining Arg"
-; V76 tmp67 [V76,T56] ( 3, 0 ) byref -> r14 single-def "Inlining Arg"
-; V77 tmp68 [V77,T64] ( 2, 0 ) int -> rax "Inline return value spill temp"
+; V75 tmp66 [V75,T50] ( 4, 0 ) int -> rbp "Inlining Arg"
+; V76 tmp67 [V76,T55] ( 3, 0 ) byref -> r14 single-def "Inlining Arg"
+; V77 tmp68 [V77,T63] ( 2, 0 ) int -> rax "Inline return value spill temp"
; V78 tmp69 [V78 ] ( 2, 0 ) ushort -> [rsp+0x3C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V79 tmp70 [V79 ] ( 2, 0 ) ushort -> [rsp+0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V80 tmp71 [V80 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -110,10 +110,10 @@
;* V98 tmp89 [V98 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
;* V99 tmp90 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V100 tmp91 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V101 tmp92 [V101,T44] ( 6, 0 ) ushort -> r15 "Inlining Arg"
-; V102 tmp93 [V102,T46] ( 5, 0 ) ushort -> r13 "Inlining Arg"
+; V101 tmp92 [V101,T43] ( 6, 0 ) ushort -> r15 "Inlining Arg"
+; V102 tmp93 [V102,T45] ( 5, 0 ) ushort -> r13 "Inlining Arg"
;* V103 tmp94 [V103 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V104 tmp95 [V104,T61] ( 3, 0 ) int -> rax "Inline return value spill temp"
+; V104 tmp95 [V104,T60] ( 3, 0 ) int -> rax "Inline return value spill temp"
;* V105 tmp96 [V105 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V106 tmp97 [V106 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V107 tmp98 [V107 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
@@ -142,17 +142,17 @@
;* V130 tmp121 [V130 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V131 tmp122 [V131,T36] ( 6, 0.76) ref -> rax class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
;* V132 tmp123 [V132 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V133 tmp124 [V133,T57] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-; V134 tmp125 [V134,T58] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-; V135 tmp126 [V135,T59] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+; V133 tmp124 [V133,T56] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+; V134 tmp125 [V134,T57] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+; V135 tmp126 [V135,T58] ( 3, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
; V136 tmp127 [V136,T25] ( 3, 2.28) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
;* V137 tmp128 [V137 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V138 tmp129 [V138 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V139 tmp130 [V139 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V140 tmp131 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V141 tmp132 [V141,T52] ( 4, 0 ) int -> rbp "Inlining Arg"
-; V142 tmp133 [V142,T60] ( 3, 0 ) byref -> r14 single-def "Inlining Arg"
-; V143 tmp134 [V143,T65] ( 2, 0 ) int -> rax "Inline return value spill temp"
+; V141 tmp132 [V141,T51] ( 4, 0 ) int -> rbp "Inlining Arg"
+; V142 tmp133 [V142,T59] ( 3, 0 ) byref -> r14 single-def "Inlining Arg"
+; V143 tmp134 [V143,T64] ( 2, 0 ) int -> rax "Inline return value spill temp"
; V144 tmp135 [V144 ] ( 2, 0 ) ushort -> [rsp+0x34] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
; V145 tmp136 [V145 ] ( 2, 0 ) ushort -> [rsp+0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
;* V146 tmp137 [V146 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -176,10 +176,10 @@
;* V164 tmp155 [V164 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
;* V165 tmp156 [V165 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V167 tmp158 [V167,T45] ( 6, 0 ) ushort -> r15 "Inlining Arg"
-; V168 tmp159 [V168,T47] ( 5, 0 ) ushort -> r13 "Inlining Arg"
+; V167 tmp158 [V167,T44] ( 6, 0 ) ushort -> r15 "Inlining Arg"
+; V168 tmp159 [V168,T46] ( 5, 0 ) ushort -> r13 "Inlining Arg"
;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V170 tmp161 [V170,T62] ( 3, 0 ) int -> rax "Inline return value spill temp"
+; V170 tmp161 [V170,T61] ( 3, 0 ) int -> rax "Inline return value spill temp"
;* V171 tmp162 [V171 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V172 tmp163 [V172 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
;* V173 tmp164 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
@@ -276,7 +276,6 @@
;* V264 tmp255 [V264 ] ( 0, 0 ) byref -> zero-ref "field V196._reference (fldOffset=0x0)" P-INDEP
;* V265 tmp256 [V265 ] ( 0, 0 ) int -> zero-ref "field V196._length (fldOffset=0x8)" P-INDEP
; V266 cse0 [V266,T09] ( 13, 6.48) int -> rbp "CSE - aggressive"
-; V267 cse1 [V267,T43] ( 9, 0 ) ref -> rdx multi-def "CSE - conservative"
;
; Lcl frame size = 64
@@ -505,27 +504,27 @@ G_M46798_IG34: ; bbWeight=0.58, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
jne SHORT G_M46798_IG36
;; size=5 bbWeight=0.58 PerfScore 0.73
G_M46798_IG35: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=19 bbWeight=0 PerfScore 0.00
+ ;; size=26 bbWeight=0 PerfScore 0.00
G_M46798_IG36: ; bbWeight=0.58, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
cmp r15d, r13d
jne SHORT G_M46798_IG38
;; size=5 bbWeight=0.58 PerfScore 0.73
G_M46798_IG37: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=19 bbWeight=0 PerfScore 0.00
+ ;; size=26 bbWeight=0 PerfScore 0.00
G_M46798_IG38: ; bbWeight=0.58, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
test r13d, r13d
jle SHORT G_M46798_IG41
@@ -853,15 +852,15 @@ G_M46798_IG56: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
;; size=5 bbWeight=0 PerfScore 0.00
G_M46798_IG57: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx rsi r14]
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
jmp G_M46798_IG43
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=31 bbWeight=0 PerfScore 0.00
G_M46798_IG58: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov rcx, 0xD1FFAB1E ; System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]
@@ -1003,7 +1002,7 @@ RWD00 dd 7F7FFFFFh ; 3.40282e+38
RWD04 dd 3FC00000h ; 1.5
-; Total bytes of code 1632, prolog size 26, PerfScore 165.43, instruction count 407, allocated bytes for code 1632 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1653, prolog size 26, PerfScore 165.43, instruction count 407, allocated bytes for code 1653 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
; ============================================================
Unwind Info:
benchmarks.run_tiered.windows.x64.checked.mch
-10 (-0.80%) : 48441.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
@@ -14,24 +14,24 @@
; V03 arg3 [V03,T05] ( 12, 2 ) ref -> [rbp+0x28] class-hnd EH-live single-def <System.Xml.XmlTextReaderImpl+NodeData>
;* V04 loc0 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T31] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V06 tmp1 [V06,T30] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V08 tmp3 [V08,T04] ( 2, 4 ) int -> r8 "spilling unroll qmark"
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T19] ( 3, 0 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V11 tmp6 [V11,T23] ( 3, 0 ) int -> rbx "Inlining Arg"
-; V12 tmp7 [V12,T24] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V10 tmp5 [V10,T18] ( 3, 0 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V11 tmp6 [V11,T22] ( 3, 0 ) int -> rbx "Inlining Arg"
+; V12 tmp7 [V12,T23] ( 3, 0 ) int -> rdi "Inlining Arg"
; V13 tmp8 [V13,T10] ( 11, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V14 tmp9 [V14,T14] ( 4, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <System.String[]>
-; V15 tmp10 [V15,T32] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
-; V16 tmp11 [V16,T33] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V17 tmp12 [V17,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V18 tmp13 [V18,T25] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V19 tmp14 [V19,T26] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V15 tmp10 [V15,T31] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
+; V16 tmp11 [V16,T32] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V17 tmp12 [V17,T19] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V18 tmp13 [V18,T24] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V19 tmp14 [V19,T25] ( 3, 0 ) int -> r14 "Inlining Arg"
; V20 tmp15 [V20,T11] ( 11, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V21 tmp16 [V21,T15] ( 4, 0 ) ref -> r12 class-hnd exact single-def "dup spill" <System.String[]>
-; V22 tmp17 [V22,T34] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp18 [V23,T35] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V22 tmp17 [V22,T33] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
+; V23 tmp18 [V23,T34] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V25 tmp20 [V25,T06] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
@@ -39,25 +39,24 @@
;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V31 tmp26 [V31,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V32 tmp27 [V32,T27] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V33 tmp28 [V33,T28] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V31 tmp26 [V31,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V32 tmp27 [V32,T26] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V33 tmp28 [V33,T27] ( 3, 0 ) int -> r14 "Inlining Arg"
; V34 tmp29 [V34,T12] ( 11, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V35 tmp30 [V35,T16] ( 4, 0 ) ref -> r12 class-hnd exact single-def "dup spill" <System.String[]>
-; V36 tmp31 [V36,T36] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
-; V37 tmp32 [V37,T37] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V38 tmp33 [V38,T22] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V39 tmp34 [V39,T29] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V40 tmp35 [V40,T30] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V36 tmp31 [V36,T35] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
+; V37 tmp32 [V37,T36] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V38 tmp33 [V38,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V39 tmp34 [V39,T28] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V40 tmp35 [V40,T29] ( 3, 0 ) int -> rdi "Inlining Arg"
; V41 tmp36 [V41,T13] ( 11, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V42 tmp37 [V42,T17] ( 4, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <System.String[]>
-; V43 tmp38 [V43,T38] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
-; V44 tmp39 [V44,T39] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V43 tmp38 [V43,T37] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
+; V44 tmp39 [V44,T38] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V45 tmp40 [V45,T03] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V46 PSPSym [V46,T08] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-; V47 cse0 [V47,T18] ( 4, 0 ) ref -> rdx multi-def "CSE - aggressive"
-; V48 cse1 [V48,T07] ( 3, 3 ) ref -> rdx "CSE - aggressive"
-; V49 rat0 [V49,T09] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V47 cse0 [V47,T07] ( 3, 3 ) ref -> rdx "CSE - aggressive"
+; V48 rat0 [V48,T09] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 40
@@ -206,21 +205,16 @@ G_M20580_IG10: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcr arg pop 0
mov r13, rax
; gcrRegs +[r13]
- lea rcx, bword ptr [r13+0x10]
- ; byrRegs +[rcx]
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov rcx, rsi
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
+ mov gword ptr [r13+0x10], rcx
+ mov rcx, rsi
mov rdx, r13
; gcrRegs +[rdx]
mov r8d, ebx
mov r9d, edi
call [<unknown method>]
- ; gcrRegs -[rcx rdx] +[rax]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E
mov qword ptr [r14+0x70], rcx
@@ -259,8 +253,6 @@ G_M20580_IG10: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; byrRegs -[rcx]
mov dword ptr [r14+0x98], ebx
mov dword ptr [r14+0x9C], edi
- ;; size=233 bbWeight=0 PerfScore 0.00
-G_M20580_IG11: ; bbWeight=0, extend
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov rdx, r14
@@ -269,8 +261,10 @@ G_M20580_IG11: ; bbWeight=0, extend
call [System.Xml.XmlTextReaderImpl:Throw(System.Exception):this]
; gcrRegs -[rcx rdx r14]
; gcr arg pop 0
+ ;; size=241 bbWeight=0 PerfScore 0.00
+G_M20580_IG11: ; bbWeight=0, extend
int3
- ;; size=14 bbWeight=0 PerfScore 0.00
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M20580_IG12: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi]
; GC ptr vars +{V00 V01 V03}
@@ -492,21 +486,16 @@ G_M20580_IG14: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcr arg pop 0
mov r13, rax
; gcrRegs +[r13]
- lea rcx, bword ptr [r13+0x10]
- ; byrRegs +[rcx]
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov rcx, rbx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
+ mov gword ptr [r13+0x10], rcx
+ mov rcx, rbx
mov rdx, r13
; gcrRegs +[rdx]
mov r8d, esi
mov r9d, edi
call [<unknown method>]
- ; gcrRegs -[rcx rdx] +[rax]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E
mov qword ptr [r14+0x70], rcx
@@ -554,7 +543,7 @@ G_M20580_IG14: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcrRegs -[rcx rdx r14]
; gcr arg pop 0
int3
- ;; size=230 bbWeight=0 PerfScore 0.00
+ ;; size=225 bbWeight=0 PerfScore 0.00
G_M20580_IG15: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; gcrRegs +[rdx]
; GC ptr vars +{V00 V01 V03}
@@ -603,7 +592,7 @@ RWD00 dq 0070007400740068h, 0077002F002F003Ah, 0077002E00770077h, 0072006F002E
RWD32 dq 00670072006F002Eh, 003000300032002Fh, 006D0078002F0030h, 002F0073006E006Ch
-; Total bytes of code 1250, prolog size 42, PerfScore 86.25, instruction count 289, allocated bytes for code 1250 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
+Total bytes of code 1240, prolog size 42, PerfScore 86.25, instruction count 287, allocated bytes for code 1240 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.x64.checked.mch
-13 (-2.45%) : 236714.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
@@ -42,11 +42,11 @@
; V30 tmp28 [V30,T13] ( 4, 1.20) ref -> rax
;* V31 tmp29 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V32 tmp30 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
-; V33 tmp31 [V33,T21] ( 5, 0.39) ref -> rdi
+; V33 tmp31 [V33,T21] ( 6, 0.59) ref -> rdi
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V36 tmp34 [V36,T22] ( 2, 0.39) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
-; V37 tmp35 [V37,T24] ( 4, 0.29) ref -> rdi
+; V36 tmp34 [V36,T25] ( 2, 0.39) ref -> rdx class-hnd exact single-def "dup spill" <System.String>
+; V37 tmp35 [V37,T22] ( 5, 0.49) ref -> rdx
;* V38 tmp36 [V38,T19] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V39 tmp37 [V39,T08] ( 3, 1.89) ref -> rax class-hnd "Inline return value spill temp" <System.String>
; V40 tmp38 [V40,T05] ( 8, 4.39) ref -> rcx class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
@@ -57,18 +57,17 @@
; V45 tmp43 [V45,T14] ( 4, 1.20) ref -> rax
;* V46 tmp44 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V47 tmp45 [V47 ] ( 0, 0 ) ref -> zero-ref single-def
-; V48 tmp46 [V48,T25] ( 4, 0.29) ref -> rdi
+; V48 tmp46 [V48,T23] ( 5, 0.49) ref -> rdx
; V49 tmp47 [V49,T27] ( 3, 0.29) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.String>
;* V50 tmp48 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V51 tmp49 [V51,T23] ( 2, 0.39) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
-; V52 tmp50 [V52,T26] ( 4, 0.29) ref -> rdi
+; V51 tmp49 [V51,T26] ( 2, 0.39) ref -> rdx class-hnd exact single-def "dup spill" <System.String>
+; V52 tmp50 [V52,T24] ( 5, 0.49) ref -> rdx
;* V53 tmp51 [V53,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V54 tmp52 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V55 tmp53 [V55 ] ( 0, 0 ) int -> zero-ref "Single return block return value"
-; V56 tmp54 [V56,T30] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V57 tmp55 [V57,T31] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V58 cse0 [V58,T29] ( 8, 0 ) ref -> rdi multi-def "CSE - conservative"
-; V59 cse1 [V59,T12] ( 3, 1.25) int -> r8 "CSE - moderate"
+; V56 tmp54 [V56,T29] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V57 tmp55 [V57,T30] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V58 cse0 [V58,T12] ( 3, 1.25) int -> r8 "CSE - moderate"
;
; Lcl frame size = 32
@@ -136,10 +135,10 @@ G_M25213_IG09: ; bbWeight=0.68, gcVars=0000000000000000 {}, gcrefRegs=004
;; size=13 bbWeight=0.68 PerfScore 3.59
G_M25213_IG10: ; bbWeight=0.30, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRegs=0000 {}, byref
test rcx, rcx
- je G_M25213_IG49
+ je G_M25213_IG41
;; size=9 bbWeight=0.30 PerfScore 0.37
G_M25213_IG11: ; bbWeight=0.29, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRegs=0000 {}, byref
- jmp G_M25213_IG47
+ jmp G_M25213_IG39
;; size=5 bbWeight=0.29 PerfScore 0.58
G_M25213_IG12: ; bbWeight=0.68, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRegs=0000 {}, byref
add rcx, 12
@@ -153,7 +152,7 @@ G_M25213_IG12: ; bbWeight=0.68, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRe
; byrRegs -[rcx rdx]
; gcr arg pop 0
test eax, eax
- je G_M25213_IG49
+ je G_M25213_IG41
;; size=25 bbWeight=0.68 PerfScore 3.42
G_M25213_IG13: ; bbWeight=0.68, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x30], 0
@@ -179,19 +178,19 @@ G_M25213_IG16: ; bbWeight=0.01, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRe
G_M25213_IG17: ; bbWeight=0.15, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
test rdx, rdx
- jne G_M25213_IG49
+ jne G_M25213_IG41
jmp SHORT G_M25213_IG19
;; size=11 bbWeight=0.15 PerfScore 0.47
G_M25213_IG18: ; bbWeight=0.16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdx]
test eax, eax
- je G_M25213_IG49
+ je G_M25213_IG41
;; size=8 bbWeight=0.16 PerfScore 0.20
G_M25213_IG19: ; bbWeight=0.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbx+0x20]
; gcrRegs +[rcx]
test rcx, rcx
- je G_M25213_IG36
+ je G_M25213_IG32
;; size=13 bbWeight=0.63 PerfScore 2.05
G_M25213_IG20: ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Globalization.CultureInfo
@@ -222,10 +221,10 @@ G_M25213_IG24: ; bbWeight=0.95, epilog, nogc, extend
G_M25213_IG25: ; bbWeight=0.63, gcVars=0000000000000000 {}, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rax rbx rsi]
test rax, rax
- je G_M25213_IG36
+ je SHORT G_M25213_IG32
cmp dword ptr [rax+0x08], 0
- je SHORT G_M25213_IG36
- ;; size=15 bbWeight=0.63 PerfScore 3.32
+ je SHORT G_M25213_IG32
+ ;; size=11 bbWeight=0.63 PerfScore 3.32
G_M25213_IG26: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, rbx
@@ -267,134 +266,110 @@ G_M25213_IG29: ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0
mov rax, gword ptr [rcx+0x48]
; gcrRegs +[rax]
test rax, rax
- jne SHORT G_M25213_IG35
+ jne SHORT G_M25213_IG31
;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG30: ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG30: ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdx, gword ptr [rcx+0x30]
; gcrRegs +[rdx]
- mov rdi, gword ptr [rdx+0x18]
+ mov rdx, gword ptr [rdx+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rdx, rdx
+ cmove rdx, rax
+ mov rdi, rdx
; gcrRegs +[rdi]
test rdi, rdi
- jne SHORT G_M25213_IG32
- ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG31: ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdx rdi]
- mov rdi, 0xD1FFAB1E
- ; gcrRegs +[rdi]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG32: ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- test rdi, rdi
- jne SHORT G_M25213_IG34
- ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG33: ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdi]
- mov rdi, 0xD1FFAB1E
- ; gcrRegs +[rdi]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG34: ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref
+ cmove rdi, rax
lea rcx, bword ptr [rcx+0x48]
; gcrRegs -[rcx]
; byrRegs +[rcx]
mov rdx, rdi
- ; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rdx]
+ ; gcrRegs -[rax rdx]
; byrRegs -[rcx]
mov rax, rdi
; gcrRegs +[rax]
- ;; size=15 bbWeight=0.10 PerfScore 0.20
-G_M25213_IG35: ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+ ;; size=50 bbWeight=0.10 PerfScore 0.74
+G_M25213_IG31: ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
- jmp G_M25213_IG25
- ;; size=5 bbWeight=0.37 PerfScore 0.74
-G_M25213_IG36: ; bbWeight=0.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M25213_IG25
+ ;; size=2 bbWeight=0.37 PerfScore 0.74
+G_M25213_IG32: ; bbWeight=0.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, gword ptr [rsi+0x20]
; gcrRegs +[rcx]
test rcx, rcx
je G_M25213_IG23
;; size=13 bbWeight=0.63 PerfScore 2.05
-G_M25213_IG37: ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG33: ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Globalization.CultureInfo
cmp qword ptr [rcx], rdx
- je SHORT G_M25213_IG40
+ je SHORT G_M25213_IG36
;; size=15 bbWeight=0.37 PerfScore 1.57
-G_M25213_IG38: ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
+G_M25213_IG34: ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0x48]
call [rax+0x38]System.Globalization.CultureInfo:get_Name():System.String:this
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG39: ; bbWeight=0.63, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M25213_IG35: ; bbWeight=0.63, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
test rax, rax
je G_M25213_IG23
cmp dword ptr [rax+0x08], 0
je G_M25213_IG23
jmp G_M25213_IG26
;; size=24 bbWeight=0.63 PerfScore 4.58
-G_M25213_IG40: ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG36: ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rcx]
mov rax, gword ptr [rcx+0x48]
; gcrRegs +[rax]
test rax, rax
- jne SHORT G_M25213_IG46
+ jne SHORT G_M25213_IG38
;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG41: ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG37: ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdx, gword ptr [rcx+0x30]
; gcrRegs +[rdx]
- mov rdi, gword ptr [rdx+0x18]
+ mov rdx, gword ptr [rdx+0x18]
+ mov rax, 0xD1FFAB1E
+ ; gcrRegs +[rax]
+ test rdx, rdx
+ cmove rdx, rax
+ test rdx, rdx
+ cmove rdx, rax
+ mov rdi, rdx
; gcrRegs +[rdi]
- test rdi, rdi
- jne SHORT G_M25213_IG43
- ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG42: ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdx rdi]
- mov rdi, 0xD1FFAB1E
- ; gcrRegs +[rdi]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG43: ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- test rdi, rdi
- jne SHORT G_M25213_IG45
- ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG44: ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdi]
- mov rdi, 0xD1FFAB1E
- ; gcrRegs +[rdi]
- ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG45: ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref
lea rcx, bword ptr [rcx+0x48]
; gcrRegs -[rcx]
; byrRegs +[rcx]
mov rdx, rdi
- ; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rdx]
+ ; gcrRegs -[rax rdx]
; byrRegs -[rcx]
mov rax, rdi
; gcrRegs +[rax]
- ;; size=15 bbWeight=0.10 PerfScore 0.20
-G_M25213_IG46: ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ;; size=50 bbWeight=0.10 PerfScore 0.74
+G_M25213_IG38: ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
- jmp SHORT G_M25213_IG39
+ jmp SHORT G_M25213_IG35
;; size=2 bbWeight=0.37 PerfScore 0.74
...
-5 (-1.92%) : 277569.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
@@ -8,31 +8,29 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T03] ( 10, 3.65) ref -> rsi this class-hnd single-def <System.RuntimeType>
+; V00 this [V00,T04] ( 10, 3.65) ref -> rsi this class-hnd single-def <System.RuntimeType>
; V01 arg1 [V01,T02] ( 11, 11.33) ref -> rbx class-hnd single-def <System.Type>
-; V02 loc0 [V02,T07] ( 4, 0.60) ref -> rcx class-hnd exact <System.RuntimeType>
-; V03 loc1 [V03,T04] ( 3, 5.60) ref -> rsi class-hnd single-def <System.Type[]>
+; V02 loc0 [V02,T06] ( 4, 0.60) ref -> rcx class-hnd exact <System.RuntimeType>
+; V03 loc1 [V03,T03] ( 4, 10 ) ref -> rsi class-hnd single-def <System.Type[]>
; V04 loc2 [V04,T01] ( 5, 18.80) int -> rdi
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T06] ( 2, 0.96) ref -> rcx single-def "CASTCLASS eval op1"
+; V06 tmp1 [V06,T05] ( 2, 0.96) ref -> rcx single-def "CASTCLASS eval op1"
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.RuntimeType>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Single return block return value"
; V09 tmp4 [V09,T00] ( 3, 33.60) ref -> rcx "argument with side effect"
-; V10 cse0 [V10,T05] ( 3, 4.40) int -> rbp "CSE - aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M35267_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rdi
push rsi
- push rbp
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rsi, rcx
; gcrRegs +[rsi]
mov rbx, rdx
; gcrRegs +[rbx]
- ;; size=14 bbWeight=1 PerfScore 4.75
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M35267_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
test rbx, rbx
je G_M35267_IG16
@@ -66,14 +64,13 @@ G_M35267_IG06: ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {},
; gcrRegs +[rdx]
;; size=3 bbWeight=0 PerfScore 0.00
G_M35267_IG07: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rbp
pop rsi
pop rdi
jmp <unknown method>
; gcr arg pop 0
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M35267_IG08: ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rdx] +[rbx]
mov rdx, rbx
@@ -111,14 +108,13 @@ G_M35267_IG09: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs +[rdx]
;; size=42 bbWeight=0 PerfScore 0.00
G_M35267_IG10: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rbp
pop rsi
pop rdi
tail.jmp [System.Type:ImplementInterface(System.Type):ubyte:this]
; gcr arg pop 0
- ;; size=14 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
G_M35267_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx rdx]
cmp byte ptr [rsi], sil
@@ -137,10 +133,9 @@ G_M35267_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {
mov rsi, rax
; gcrRegs +[rsi]
xor edi, edi
- mov ebp, dword ptr [rsi+0x08]
- test ebp, ebp
+ cmp dword ptr [rsi+0x08], 0
jle SHORT G_M35267_IG14
- ;; size=36 bbWeight=0 PerfScore 0.00
+ ;; size=35 bbWeight=0 PerfScore 0.00
G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov ecx, edi
@@ -158,34 +153,32 @@ G_M35267_IG12: ; bbWeight=5.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
;; size=27 bbWeight=5.60 PerfScore 60.20
G_M35267_IG13: ; bbWeight=4.40, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
inc edi
- cmp ebp, edi
- jg SHORT G_M35267_IG12
- ;; size=6 bbWeight=4.40 PerfScore 6.60
+ cmp edi, dword ptr [rsi+0x08]
+ jl SHORT G_M35267_IG12
+ ;; size=7 bbWeight=4.40 PerfScore 18.70
G_M35267_IG14: ; bbWeight=2.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx rsi]
mov eax, 1
;; size=5 bbWeight=2.36 PerfScore 0.59
G_M35267_IG15: ; bbWeight=2.36, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rbp
pop rsi
pop rdi
ret
- ;; size=9 bbWeight=2.36 PerfScore 7.67
+ ;; size=8 bbWeight=2.36 PerfScore 6.49
G_M35267_IG16: ; bbWeight=30.24, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
xor eax, eax
;; size=2 bbWeight=30.24 PerfScore 7.56
G_M35267_IG17: ; bbWeight=30.24, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rbp
pop rsi
pop rdi
ret
- ;; size=9 bbWeight=30.24 PerfScore 98.28
+ ;; size=8 bbWeight=30.24 PerfScore 83.16
-; Total bytes of code 261, prolog size 8, PerfScore 194.42, instruction count 89, allocated bytes for code 261 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 256, prolog size 7, PerfScore 189.22, instruction count 83, allocated bytes for code 256 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -193,13 +186,12 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x08
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x07
+ CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
-7 (-1.57%) : 227599.dasm - NumericSortRect:Run():double:this (Tier1)
@@ -12,36 +12,34 @@
; V00 this [V00,T01] ( 16,152.25) ref -> rbx this class-hnd single-def <NumericSortRect>
; V01 loc0 [V01,T03] ( 4, 52.50) ref -> registers class-hnd <int[,]>
; V02 loc1 [V02,T02] ( 5,128 ) long -> rdi
-; V03 loc2 [V03,T15] ( 4, 86 ) double -> mm6
+; V03 loc2 [V03,T14] ( 4, 86 ) double -> mm6
; V04 loc3 [V04,T07] ( 3, 14.25) short -> rcx
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06 ] ( 6, 17.25) struct ( 8) [rsp+0x28] do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
-; V07 tmp2 [V07,T12] ( 2, 4 ) int -> r8 "impImportNewObjArray"
-; V08 tmp3 [V08,T13] ( 2, 4 ) int -> rcx "impImportNewObjArray"
+; V07 tmp2 [V07,T11] ( 2, 4 ) int -> r8 "impImportNewObjArray"
+; V08 tmp3 [V08,T12] ( 2, 4 ) int -> rcx "impImportNewObjArray"
;* V09 tmp4 [V09 ] ( 0, 0 ) double -> zero-ref "impAppendStmt"
; V10 tmp5 [V10,T04] ( 2, 19 ) int -> r8 "impImportNewObjArray"
; V11 tmp6 [V11,T05] ( 2, 19 ) int -> rcx "impImportNewObjArray"
-; V12 tmp7 [V12,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V13 tmp8 [V13,T14] ( 2, 4 ) long -> r8 "argument with side effect"
+; V12 tmp7 [V12,T16] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V13 tmp8 [V13,T13] ( 2, 4 ) long -> r8 "argument with side effect"
; V14 tmp9 [V14,T06] ( 2, 19 ) long -> r8 "argument with side effect"
-; V15 tmp10 [V15,T18] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V16 cse0 [V16,T08] ( 3, 14.25) int -> rbp "CSE - aggressive"
-; V17 cse1 [V17,T09] ( 3, 14.25) int -> r14 "CSE - aggressive"
-; V18 cse2 [V18,T16] ( 2, 43 ) double -> mm7 hoist "CSE - aggressive"
-; V19 cse3 [V19,T11] ( 2, 4.75) long -> rdi hoist "CSE - moderate"
-; V20 cse4 [V20,T10] ( 4, 6.75) long -> rsi hoist multi-def "CSE - aggressive"
-; V21 rat0 [V21,T00] ( 3,252 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
+; V15 tmp10 [V15,T17] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V16 cse0 [V16,T08] ( 3, 14.25) int -> rdi "CSE - aggressive"
+; V17 cse1 [V17,T09] ( 3, 14.25) int -> rbp "CSE - aggressive"
+; V18 cse2 [V18,T15] ( 2, 43 ) double -> mm7 hoist "CSE - aggressive"
+; V19 cse3 [V19,T10] ( 4, 6.75) long -> rsi hoist multi-def "CSE - aggressive"
+; V20 rat0 [V20,T00] ( 3,252 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 88
+; Lcl frame size = 80
G_M15242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r15
push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 88
+ sub rsp, 80
vzeroupper
vmovaps xmmword ptr [rsp+0x40], xmm6
vmovaps xmmword ptr [rsp+0x30], xmm7
@@ -49,7 +47,7 @@ G_M15242_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rsp+0x28], rax
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=37 bbWeight=1 PerfScore 12.75
+ ;; size=35 bbWeight=1 PerfScore 11.75
G_M15242_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
cmp dword ptr [rbx+0x10], 0
je G_M15242_IG11
@@ -112,20 +110,19 @@ G_M15242_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M15242_IG07: ; bbWeight=1, epilog, nogc, extend
vmovaps xmm6, xmmword ptr [rsp+0x40]
vmovaps xmm7, xmmword ptr [rsp+0x30]
- add rsp, 88
+ add rsp, 80
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
- pop r15
ret
- ;; size=25 bbWeight=1 PerfScore 12.25
+ ;; size=23 bbWeight=1 PerfScore 11.75
G_M15242_IG08: ; bbWeight=4.75, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- movsx rbp, word ptr [rbx+0x20]
- mov r8d, ebp
- mov r14d, dword ptr [rbx+0x1C]
- mov ecx, r14d
+ movsx rdi, word ptr [rbx+0x20]
+ mov r8d, edi
+ mov ebp, dword ptr [rbx+0x1C]
+ mov ecx, ebp
mov dword ptr [rsp+0x28], r8d
mov dword ptr [rsp+0x2C], ecx
lea r8, [rsp+0x28]
@@ -134,17 +131,18 @@ G_M15242_IG08: ; bbWeight=4.75, gcVars=0000000000000000 {}, gcrefRegs=000
call CORINFO_HELP_NEW_MDARR
; gcrRegs +[rax]
; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
- mov r8d, ebp
- mov edx, r14d
- mov rcx, r15
+ mov r14, rax
+ ; gcrRegs +[r14]
+ mov r8d, edi
+ mov edx, ebp
+ mov rcx, r14
; gcrRegs +[rcx]
call [NumericSortRect:DoNumSortIteration(int[,],int,int):int]
; gcrRegs -[rax rcx]
; gcr arg pop 0
movsxd rcx, eax
- cmp rcx, qword ptr [rdi]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ cmp rcx, qword ptr [rax]
jg SHORT G_M15242_IG09
movsx rcx, word ptr [rbx+0x20]
lea eax, [rcx+0x01]
@@ -152,23 +150,22 @@ G_M15242_IG08: ; bbWeight=4.75, gcVars=0000000000000000 {}, gcrefRegs=000
cmp ecx, 0x3E8
jg SHORT G_M15242_IG12
jmp SHORT G_M15242_IG08
- ;; size=90 bbWeight=4.75 PerfScore 130.62
-G_M15242_IG09: ; bbWeight=2.38, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- mov rsi, r15
+ ;; size=97 bbWeight=4.75 PerfScore 131.81
+G_M15242_IG09: ; bbWeight=2.38, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ mov rsi, r14
; gcrRegs +[rsi]
jmp G_M15242_IG03
;; size=8 bbWeight=2.38 PerfScore 5.34
G_M15242_IG10: ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi r15]
+ ; gcrRegs -[rsi r14]
mov dword ptr [rbx+0x10], 1
jmp G_M15242_IG06
;; size=12 bbWeight=0.25 PerfScore 0.75
G_M15242_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov word ptr [rbx+0x20], 1
mov rsi, 0xD1FFAB1E ; int[,]
- mov rdi, 0xD1FFAB1E ; static handle
jmp G_M15242_IG08
- ;; size=31 bbWeight=0 PerfScore 0.00
+ ;; size=21 bbWeight=0 PerfScore 0.00
G_M15242_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -199,7 +196,7 @@ RWD00 dq 3FF0000000000000h ; 1
RWD08 dq 408F400000000000h ; 1000
-; Total bytes of code 445, prolog size 34, PerfScore 1142.97, instruction count 108, allocated bytes for code 445 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
+Total bytes of code 438, prolog size 32, PerfScore 1142.66, instruction count 106, allocated bytes for code 438 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
; ============================================================
Unwind Info:
@@ -207,19 +204,18 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x1B
- CountOfUnwindCodes: 11
+ SizeOfProlog : 0x19
+ CountOfUnwindCodes: 10
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x1B UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7)
+ CodeOffset: 0x19 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7)
Scaled Small Offset: 3 * 16 = 48 = 0x00030
- CodeOffset: 0x15 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
+ CodeOffset: 0x13 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6)
Scaled Small Offset: 4 * 16 = 64 = 0x00040
- CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 10 * 8 + 8 = 88 = 0x58
- CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
- CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15)
+ CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 9 * 8 + 8 = 80 = 0x50
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+19 (+4.12%) : 369099.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
@@ -9,11 +9,11 @@
; 11 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 19, 9.03) ref -> rbx class-hnd single-def <Internal.TypeSystem.FieldDesc>
+; V00 arg0 [V00,T00] ( 18, 9.03) ref -> rbx class-hnd single-def <Internal.TypeSystem.FieldDesc>
; V01 arg1 [V01,T04] ( 4, 4 ) long -> rbp single-def
; V02 arg2 [V02,T01] ( 9, 9 ) int -> rsi single-def
; V03 arg3 [V03,T02] ( 6, 6 ) int -> rdi single-def
-; V04 loc0 [V04,T14] ( 2, 2 ) ref -> rcx class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
+; V04 loc0 [V04,T15] ( 2, 2 ) ref -> rcx class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
;* V05 loc1 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;* V06 loc2 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,23 +23,23 @@
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
;* V12 tmp5 [V12 ] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-; V14 tmp7 [V14,T21] ( 2, 0 ) int -> rax "guarded devirt return temp"
+; V14 tmp7 [V14,T22] ( 2, 0 ) int -> rax "guarded devirt return temp"
;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
;* V16 tmp9 [V16,T23] ( 0, 0 ) int -> zero-ref "guarded devirt return temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-; V18 tmp11 [V18,T15] ( 3, 2 ) int -> rax "Inline return value spill temp"
+; V18 tmp11 [V18,T16] ( 3, 2 ) int -> rax "Inline return value spill temp"
; V19 tmp12 [V19,T09] ( 3, 2.99) int -> rax single-def "Inline stloc first use temp"
;* V20 tmp13 [V20 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V21 tmp14 [V21,T16] ( 3, 2 ) int -> rax "Inline return value spill temp"
+; V21 tmp14 [V21,T17] ( 3, 2 ) int -> rax "Inline return value spill temp"
; V22 tmp15 [V22,T10] ( 3, 2.99) int -> rax single-def "Inline stloc first use temp"
;* V23 tmp16 [V23 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V24 tmp17 [V24,T17] ( 3, 2 ) int -> rax "Inline return value spill temp"
+; V24 tmp17 [V24,T18] ( 3, 2 ) int -> rax "Inline return value spill temp"
; V25 tmp18 [V25,T11] ( 3, 2.99) int -> rax single-def "Inline stloc first use temp"
;* V26 tmp19 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V27 tmp20 [V27,T18] ( 3, 2 ) int -> rax "Inline return value spill temp"
+; V27 tmp20 [V27,T19] ( 3, 2 ) int -> rax "Inline return value spill temp"
; V28 tmp21 [V28,T12] ( 3, 2.99) int -> rax single-def "Inline stloc first use temp"
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T19] ( 3, 2 ) int -> rax "Inline return value spill temp"
+; V30 tmp23 [V30,T20] ( 3, 2 ) int -> rax "Inline return value spill temp"
; V31 tmp24 [V31,T13] ( 3, 2.99) int -> rax single-def "Inline stloc first use temp"
;* V32 tmp25 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V33 tmp26 [V33,T03] ( 4, 8 ) ref -> rax class-hnd single-def "Inlining Arg" <ubyte[]>
@@ -54,7 +54,7 @@
;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref single-def "field V05._length (fldOffset=0x8)" P-INDEP
;* V43 tmp36 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP
;* V44 tmp37 [V44 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP
-; V45 tmp38 [V45,T20] ( 2, 2.00) byref -> rcx single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V45 tmp38 [V45,T21] ( 2, 2.00) byref -> rcx single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V46 tmp39 [V46 ] ( 0, 0 ) int -> zero-ref single-def "field V09._length (fldOffset=0x8)" P-INDEP
; V47 tmp40 [V47,T08] ( 3, 3 ) byref -> rbx "field V34._reference (fldOffset=0x0)" P-INDEP
; V48 tmp41 [V48,T05] ( 5, 5 ) int -> rcx "field V34._length (fldOffset=0x8)" P-INDEP
@@ -62,22 +62,23 @@
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref single-def "field V35._length (fldOffset=0x8)" P-INDEP
;* V51 tmp44 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
;* V52 tmp45 [V52 ] ( 0, 0 ) int -> zero-ref single-def "field V37._length (fldOffset=0x8)" P-INDEP
-; V53 cse0 [V53,T22] ( 5, 0 ) long -> rsi "CSE - moderate"
+; V53 cse0 [V53,T14] ( 6, 2 ) long -> r14 "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M56569_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+ push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 40
+ sub rsp, 32
mov rbx, rcx
; gcrRegs +[rbx]
mov rbp, rdx
mov esi, r8d
mov edi, r9d
- ;; size=20 bbWeight=1 PerfScore 5.25
+ ;; size=22 bbWeight=1 PerfScore 6.25
G_M56569_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
test rbp, rbp
@@ -94,23 +95,23 @@ G_M56569_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
shr ecx, 31
call [<unknown method>]
; gcr arg pop 0
+ mov r14, qword ptr [rbx]
mov rcx, 0xD1FFAB1E ; Internal.TypeSystem.Ecma.EcmaField
- cmp qword ptr [rbx], rcx
+ cmp r14, rcx
je SHORT G_M56569_IG04
- ;; size=55 bbWeight=1 PerfScore 17.25
+ ;; size=58 bbWeight=1 PerfScore 16.50
G_M56569_IG03: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
- mov rax, qword ptr [rbx]
- mov rsi, qword ptr [rax+0x50]
- call [rsi+0x18]<unknown method>
+ mov rax, qword ptr [r14+0x50]
+ call [rax+0x18]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
mov ecx, eax
call [<unknown method>]
; gcr arg pop 0
jmp G_M56569_IG28
- ;; size=26 bbWeight=0 PerfScore 0.00
+ ;; size=23 bbWeight=0 PerfScore 0.00
G_M56569_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov eax, dword ptr [rbx+0x2C]
and eax, 3
@@ -184,13 +185,14 @@ G_M56569_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0 PerfScore 0.00
G_M56569_IG14: ; bbWeight=0, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
+ pop r14
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M56569_IG15: ; bbWeight=0.99, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx]
jmp SHORT G_M56569_IG12
@@ -224,8 +226,8 @@ G_M56569_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=7 bbWeight=0 PerfScore 0.00
G_M56569_IG19: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
; byrRegs +[rbx]
- mov edi, edi
- add rbx, rdi
+ mov r14d, edi
+ add rbx, r14
mov ecx, esi
not ecx
shr ecx, 31
@@ -242,15 +244,16 @@ G_M56569_IG19: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
; byrRegs -[rcx rdx rbx]
; gcr arg pop 0
mov eax, 1
- ;; size=42 bbWeight=1.00 PerfScore 9.75
+ ;; size=43 bbWeight=1.00 PerfScore 9.75
G_M56569_IG20: ; bbWeight=1.00, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
pop rbp
pop rsi
pop rdi
+ pop r14
ret
- ;; size=9 bbWeight=1.00 PerfScore 3.25
+ ;; size=11 bbWeight=1.00 PerfScore 3.75
G_M56569_IG21: ; bbWeight=0.99, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
jmp G_M56569_IG10
@@ -297,7 +300,8 @@ G_M56569_IG27: ; bbWeight=0.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M56569_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
- call [rsi+0x30]<unknown method>
+ mov rax, qword ptr [r14+0x50]
+ call [rax+0x30]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
mov ecx, eax
@@ -305,20 +309,22 @@ G_M56569_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov rcx, rbx
; gcrRegs +[rcx]
- call [rsi+0x28]<unknown method>
+ mov rax, qword ptr [r14+0x50]
+ call [rax+0x28]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
test eax, eax
jne G_M56569_IG13
mov rcx, rbx
; gcrRegs +[rcx]
- call [rsi+0x20]<unknown method>
+ mov rax, qword ptr [r14+0x50]
+ call [rax+0x20]<unknown method>
; gcrRegs -[rcx rbx]
; gcr arg pop 0
jmp G_M56569_IG13
- ;; size=39 bbWeight=0 PerfScore 0.00
+ ;; size=51 bbWeight=0 PerfScore 0.00
-; Total bytes of code 461, prolog size 8, PerfScore 89.29, instruction count 140, allocated bytes for code 461 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
+Total bytes of code 480, prolog size 10, PerfScore 90.04, instruction count 146, allocated bytes for code 480 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -326,13 +332,14 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x08
- CountOfUnwindCodes: 5
+ SizeOfProlog : 0x0A
+ CountOfUnwindCodes: 6
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
+ CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
+ CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
+18 (+6.36%) : 277624.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)
@@ -29,17 +29,17 @@
;* V18 tmp16 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp17 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp18 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V21 tmp19 [V21,T11] ( 3, 0 ) ubyte -> rdx "Inline return value spill temp"
+; V21 tmp19 [V21,T10] ( 3, 0 ) ubyte -> rdx "Inline return value spill temp"
; V22 tmp20 [V22,T05] ( 10, 4.50) int -> rsi "Inline stloc first use temp"
; V23 tmp21 [V23 ] ( 2, 9 ) struct ( 8) [rsp+0x28] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
; V24 tmp22 [V24 ] ( 2, 9 ) struct ( 8) [rsp+0x20] do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-; V25 tmp23 [V25,T14] ( 2, 0 ) float -> mm6 "impAppendStmt"
-; V26 tmp24 [V26,T12] ( 3, 0 ) int -> rcx
+; V25 tmp23 [V25,T13] ( 2, 0 ) float -> mm6 "impAppendStmt"
+; V26 tmp24 [V26,T11] ( 3, 0 ) int -> rcx
;* V27 tmp25 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp27 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) float -> zero-ref "Inline return value spill temp"
-; V31 tmp29 [V31,T13] ( 3, 0 ) int -> rcx
+; V31 tmp29 [V31,T12] ( 3, 0 ) int -> rcx
;* V32 tmp30 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V33 tmp31 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V34 tmp32 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -48,7 +48,6 @@
; V37 tmp35 [V37 ] ( 3,1620 ) long -> [rsp+0x30] do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
; V38 tmp36 [V38 ] ( 2, 4.50) long -> [rsp+0x28] do-not-enreg[X] addr-exposed "field V23._00 (fldOffset=0x0)" P-DEP
; V39 tmp37 [V39 ] ( 2, 4.50) long -> [rsp+0x20] do-not-enreg[X] addr-exposed "field V24._00 (fldOffset=0x0)" P-DEP
-; V40 cse0 [V40,T10] ( 6, 0 ) ref -> rdx multi-def "CSE - aggressive"
;
; Lcl frame size = 120
@@ -129,14 +128,14 @@ G_M21877_IG08: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M21877_IG09: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test cl, cl
jne SHORT G_M21877_IG10
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=30 bbWeight=0 PerfScore 0.00
G_M21877_IG10: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
movsxd rcx, esi
lea rdx, bword ptr [rsp+0x28]
@@ -156,14 +155,14 @@ G_M21877_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M21877_IG12: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test cl, cl
jne SHORT G_M21877_IG13
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=30 bbWeight=0 PerfScore 0.00
G_M21877_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
movsxd rcx, esi
lea rdx, bword ptr [rsp+0x20]
@@ -173,11 +172,11 @@ G_M21877_IG13: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
jae SHORT G_M21877_IG14
inc esi
cmp esi, 2
- jl SHORT G_M21877_IG07
+ jl G_M21877_IG07
xor edx, edx
; byrRegs -[rdx]
jmp SHORT G_M21877_IG15
- ;; size=29 bbWeight=0 PerfScore 0.00
+ ;; size=33 bbWeight=0 PerfScore 0.00
G_M21877_IG14: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edx, 1
;; size=5 bbWeight=0 PerfScore 0.00
@@ -185,7 +184,7 @@ G_M21877_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
jmp G_M21877_IG05
;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 283, prolog size 14, PerfScore 13961.25, instruction count 79, allocated bytes for code 283 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 301, prolog size 14, PerfScore 13961.25, instruction count 79, allocated bytes for code 301 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
; ============================================================
Unwind Info:
+18 (+17.65%) : 516183.dasm - TestApp:test22(int):int (FullOpts)
@@ -7,19 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 5 ) int -> rcx single-def
-; V01 loc0 [V01,T08] ( 3, 2 ) int -> rax
+; V00 arg0 [V00,T00] ( 7, 6.50) int -> rcx single-def
+; V01 loc0 [V01,T05] ( 3, 2 ) int -> rax
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T00] ( 8, 7 ) ref -> registers "Field obj"
+; V03 tmp1 [V03,T01] ( 8, 7 ) ref -> rax "Field obj"
; V04 tmp2 [V04,T02] ( 3, 6 ) ref -> rax single-def "arr expr"
; V05 tmp3 [V05,T03] ( 3, 6 ) ref -> rax single-def "arr expr"
-;* V06 tmp4 [V06,T11] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
-; V07 cse0 [V07,T04] ( 3, 3 ) long -> rdx "CSE - stress mode"
-; V08 cse1 [V08,T05] ( 2, 2 ) ref -> rax "CSE - stress mode"
-; V09 cse2 [V09,T10] ( 2, 2 ) int -> r10 "CSE - stress mode"
-; V10 cse3 [V10,T09] ( 2, 2 ) ref -> rax "CSE - stress mode"
-; V11 cse4 [V11,T06] ( 3, 2.50) ref -> rax "CSE - stress mode"
-; V12 cse5 [V12,T07] ( 3, 2.50) ref -> rdx "CSE - stress mode"
+; V06 tmp4 [V06,T06] ( 2, 2 ) ref -> rax single-def "arr expr"
+; V07 cse0 [V07,T07] ( 2, 2 ) int -> r8 "CSE - unknown"
+; V08 cse1 [V08,T04] ( 3, 2.50) ref -> r8 "CSE - unknown"
;
; Lcl frame size = 40
@@ -35,39 +31,41 @@ G_M47962_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edx, ecx
mov rax, gword ptr [rax+8*rdx+0x10]
cmp byte ptr [rax], al
- mov r8, gword ptr [rax+0x10]
- ; gcrRegs +[r8]
+ mov rdx, gword ptr [rax+0x10]
+ ; gcrRegs +[rdx]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
; gcrRegs -[rax]
mov rax, gword ptr [rax]
; gcrRegs +[rax]
- mov r10d, dword ptr [rax+0x08]
- cmp ecx, r10d
+ mov r8d, dword ptr [rax+0x08]
+ cmp ecx, r8d
jae SHORT G_M47962_IG06
- mov rax, gword ptr [rax+8*rdx+0x10]
- mov rcx, rax
- ; gcrRegs +[rcx]
- cmp byte ptr [rcx], cl
- mov rdx, gword ptr [rcx+0x10]
- ; gcrRegs +[rdx]
- cmp r8, rdx
+ mov r8d, ecx
+ mov rax, gword ptr [rax+8*r8+0x10]
+ cmp byte ptr [rax], al
+ mov r8, gword ptr [rax+0x10]
+ ; gcrRegs +[r8]
+ cmp rdx, r8
je SHORT G_M47962_IG04
;; size=72 bbWeight=1 PerfScore 27.50
G_M47962_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax rcx rdx r8]
+ ; gcrRegs -[rax rdx r8]
mov eax, 100
jmp SHORT G_M47962_IG05
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M47962_IG04: ; bbWeight=0.50, gcrefRegs=0005 {rax rdx}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rax rdx]
- mov rcx, rax
- ; gcrRegs +[rcx]
- cmp byte ptr [rcx], cl
- mov eax, dword ptr [rdx+0x08]
+G_M47962_IG04: ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[r8]
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
+ mov rax, gword ptr [rax]
+ ; gcrRegs +[rax]
+ mov ecx, ecx
+ mov rax, gword ptr [rax+8*rcx+0x10]
+ cmp byte ptr [rax], al
+ mov eax, dword ptr [r8+0x08]
; gcrRegs -[rax]
- ;; size=8 bbWeight=0.50 PerfScore 2.62
+ ;; size=26 bbWeight=0.50 PerfScore 4.75
G_M47962_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rcx rdx]
+ ; gcrRegs -[r8]
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
@@ -77,7 +75,7 @@ G_M47962_IG06: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 102, prolog size 4, PerfScore 32.75, instruction count 29, allocated bytes for code 102 (MethodHash=eca744a5) for method TestApp:test_2_2(int):int (FullOpts)
+Total bytes of code 120, prolog size 4, PerfScore 34.88, instruction count 32, allocated bytes for code 120 (MethodHash=eca744a5) for method TestApp:test_2_2(int):int (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch
-10 (-0.83%) : 134786.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
@@ -14,24 +14,24 @@
; V03 arg3 [V03,T05] ( 12, 2 ) ref -> [rbp+0x28] class-hnd EH-live single-def <System.Xml.XmlTextReaderImpl+NodeData>
;* V04 loc0 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T31] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V06 tmp1 [V06,T30] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
; V08 tmp3 [V08,T04] ( 2, 4 ) int -> r8 "spilling unroll qmark"
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V10 tmp5 [V10,T19] ( 3, 0 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V11 tmp6 [V11,T23] ( 3, 0 ) int -> rbx "Inlining Arg"
-; V12 tmp7 [V12,T24] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V10 tmp5 [V10,T18] ( 3, 0 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V11 tmp6 [V11,T22] ( 3, 0 ) int -> rbx "Inlining Arg"
+; V12 tmp7 [V12,T23] ( 3, 0 ) int -> rdi "Inlining Arg"
; V13 tmp8 [V13,T10] ( 11, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V14 tmp9 [V14,T14] ( 4, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <System.String[]>
-; V15 tmp10 [V15,T32] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
-; V16 tmp11 [V16,T33] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V17 tmp12 [V17,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V18 tmp13 [V18,T25] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V19 tmp14 [V19,T26] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V15 tmp10 [V15,T31] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
+; V16 tmp11 [V16,T32] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V17 tmp12 [V17,T19] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V18 tmp13 [V18,T24] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V19 tmp14 [V19,T25] ( 3, 0 ) int -> r14 "Inlining Arg"
; V20 tmp15 [V20,T11] ( 11, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V21 tmp16 [V21,T15] ( 4, 0 ) ref -> r12 class-hnd exact single-def "dup spill" <System.String[]>
-; V22 tmp17 [V22,T34] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
-; V23 tmp18 [V23,T35] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V22 tmp17 [V22,T33] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
+; V23 tmp18 [V23,T34] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V25 tmp20 [V25,T07] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
@@ -39,25 +39,24 @@
;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V30 tmp25 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V31 tmp26 [V31,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V32 tmp27 [V32,T27] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V33 tmp28 [V33,T28] ( 3, 0 ) int -> r14 "Inlining Arg"
+; V31 tmp26 [V31,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V32 tmp27 [V32,T26] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V33 tmp28 [V33,T27] ( 3, 0 ) int -> r14 "Inlining Arg"
; V34 tmp29 [V34,T12] ( 11, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V35 tmp30 [V35,T16] ( 4, 0 ) ref -> r12 class-hnd exact single-def "dup spill" <System.String[]>
-; V36 tmp31 [V36,T36] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
-; V37 tmp32 [V37,T37] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
-; V38 tmp33 [V38,T22] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
-; V39 tmp34 [V39,T29] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V40 tmp35 [V40,T30] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V36 tmp31 [V36,T35] ( 2, 0 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
+; V37 tmp32 [V37,T36] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V38 tmp33 [V38,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V39 tmp34 [V39,T28] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V40 tmp35 [V40,T29] ( 3, 0 ) int -> rdi "Inlining Arg"
; V41 tmp36 [V41,T13] ( 11, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
; V42 tmp37 [V42,T17] ( 4, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <System.String[]>
-; V43 tmp38 [V43,T38] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
-; V44 tmp39 [V44,T39] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
+; V43 tmp38 [V43,T37] ( 2, 0 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.String>
+; V44 tmp39 [V44,T38] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V45 tmp40 [V45,T03] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V46 PSPSym [V46,T08] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-; V47 cse0 [V47,T18] ( 4, 0 ) ref -> rdx multi-def "CSE - moderate"
-; V48 cse1 [V48,T06] ( 3, 3 ) ref -> rdx "CSE - aggressive"
-; V49 rat0 [V49,T09] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V47 cse0 [V47,T06] ( 3, 3 ) ref -> rdx "CSE - aggressive"
+; V48 rat0 [V48,T09] ( 3, 6 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 40
@@ -136,14 +135,14 @@ G_M20580_IG09: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
cmp rsi, gword ptr [rcx+0xD0]
je SHORT G_M20580_IG10
cmp byte ptr [rcx+0x17E], 0
- je G_M20580_IG16
+ je G_M20580_IG15
;; size=26 bbWeight=1 PerfScore 9.00
G_M20580_IG10: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
cmp dword ptr [rbx+0x08], 0
jne SHORT G_M20580_IG11
cmp dword ptr [rsi+0x08], 0
- jg G_M20580_IG17
+ jg G_M20580_IG16
;; size=16 bbWeight=1 PerfScore 8.00
G_M20580_IG11: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp+0x10]
@@ -183,7 +182,7 @@ G_M20580_IG13: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
cmp rsi, gword ptr [rcx+0xD8]
- jne G_M20580_IG15
+ jne G_M20580_IG14
call [<unknown method>]
; gcrRegs -[rcx rsi] +[rax]
; gcr arg pop 0
@@ -211,21 +210,16 @@ G_M20580_IG13: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcr arg pop 0
mov r13, rax
; gcrRegs +[r13]
- lea rcx, bword ptr [r13+0x10]
- ; byrRegs +[rcx]
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov rcx, rsi
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
+ mov gword ptr [r13+0x10], rcx
+ mov rcx, rsi
mov rdx, r13
; gcrRegs +[rdx]
mov r8d, ebx
mov r9d, edi
call [<unknown method>]
- ; gcrRegs -[rcx rdx] +[rax]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E
mov qword ptr [r14+0x70], rcx
@@ -266,8 +260,6 @@ G_M20580_IG13: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
mov dword ptr [r14+0x9C], edi
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
- ;; size=227 bbWeight=0 PerfScore 0.00
-G_M20580_IG14: ; bbWeight=0, extend
mov rdx, r14
; gcrRegs +[rdx]
; GC ptr vars -{V00}
@@ -275,7 +267,100 @@ G_M20580_IG14: ; bbWeight=0, extend
; gcrRegs -[rcx rdx r14]
; gcr arg pop 0
int3
- ;; size=10 bbWeight=0 PerfScore 0.00
+ ;; size=232 bbWeight=0 PerfScore 0.00
+G_M20580_IG14: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[rsi]
+ ; GC ptr vars +{V00 V01 V03}
+ call [<unknown method>]
+ ; gcrRegs +[rax]
+ ; gcr arg pop 0
+ mov rbx, rax
+ ; gcrRegs +[rbx]
+ mov r9, gword ptr [rbp+0x28]
+ ; gcrRegs +[r9]
+ mov edi, dword ptr [r9+0x70]
+ mov r14d, dword ptr [r9+0x74]
+ mov rcx, 0xD1FFAB1E ; System.Xml.XmlException
+ ; GC ptr vars -{V01 V03}
+ call CORINFO_HELP_NEWSFAST
+ ; gcrRegs -[r9]
+ ; gcr arg pop 0
+ mov r15, rax
+ ; gcrRegs +[r15]
+ mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
+ mov r13, gword ptr [rcx+0x1B8]
+ ; gcrRegs +[r13]
+ mov rcx, 0xD1FFAB1E ; System.String[]
+ ; gcrRegs -[rcx]
+ mov edx, 1
+ call CORINFO_HELP_NEWARR_1_OBJ
+ ; gcr arg pop 0
+ mov r12, rax
+ ; gcrRegs +[r12]
+ lea rcx, bword ptr [r12+0x10]
+ ; byrRegs +[rcx]
+ mov rdx, rsi
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rax rdx rsi]
+ ; byrRegs -[rcx]
+ mov rcx, rbx
+ ; gcrRegs +[rcx]
+ mov rdx, r12
+ ; gcrRegs +[rdx]
+ mov r8d, edi
+ mov r9d, r14d
+ call [<unknown method>]
+ ; gcrRegs -[rcx rdx] +[rax]
+ ; gcr arg pop 0
+ mov rcx, 0xD1FFAB1E
+ mov qword ptr [r15+0x70], rcx
+ lea rcx, bword ptr [r15+0x10]
+ ; byrRegs +[rcx]
+ mov rdx, rax
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rax rdx]
+ ; byrRegs -[rcx]
+ xor rcx, rcx
+ ; gcrRegs +[rcx]
+ mov gword ptr [r15+0x20], rcx
+ mov dword ptr [r15+0x74], 0xD1FFAB1E
+ lea rcx, bword ptr [r15+0x78]
+ ; gcrRegs -[rcx]
+ ; byrRegs +[rcx]
+ mov rdx, rbx
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx rbx]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [r15+0x80]
+ ; byrRegs +[rcx]
+ mov rdx, r12
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx r12]
+ ; byrRegs -[rcx]
+ lea rcx, bword ptr [r15+0x88]
+ ; byrRegs +[rcx]
+ mov rdx, r13
+ ; gcrRegs +[rdx]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rdx r13]
+ ; byrRegs -[rcx]
+ mov dword ptr [r15+0x98], edi
+ mov dword ptr [r15+0x9C], r14d
+ mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ ; GC ptr vars -{V00}
+ call [System.Xml.XmlTextReaderImpl:Throw(System.Exception):this]
+ ; gcrRegs -[rcx rdx r15]
+ ; gcr arg pop 0
+ int3
+ ;; size=214 bbWeight=0 PerfScore 0.00
G_M20580_IG15: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rsi]
; GC ptr vars +{V00 V01 V03}
@@ -369,100 +454,7 @@ G_M20580_IG15: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
; gcr arg pop 0
int3
;; size=214 bbWeight=0 PerfScore 0.00
-G_M20580_IG16: ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rsi]
- ; GC ptr vars +{V00 V01 V03}
- call [<unknown method>]
- ; gcrRegs +[rax]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- mov r9, gword ptr [rbp+0x28]
...
-5 (-0.44%) : 134713.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
@@ -56,11 +56,10 @@
; V45 tmp40 [V45,T08] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V46 tmp41 [V46,T15] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V47 PSPSym [V47,T24] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
-; V48 cse0 [V48,T36] ( 2, 0 ) ref -> rdx "CSE - moderate"
-; V49 cse1 [V49,T10] ( 8, 5 ) int -> rbx multi-def "CSE - moderate"
-; V50 cse2 [V50,T21] ( 3, 2.75) int -> r8 "CSE - moderate"
-; V51 rat0 [V51,T25] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
-; V52 rat1 [V52,T26] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V48 cse0 [V48,T10] ( 8, 5 ) int -> rbx multi-def "CSE - moderate"
+; V49 cse1 [V49,T21] ( 3, 2.75) int -> r8 "CSE - moderate"
+; V50 rat0 [V50,T25] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V51 rat1 [V51,T26] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 48
@@ -427,21 +426,16 @@ G_M23682_IG36: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
mov r14, rax
; gcrRegs +[r14]
- lea rcx, bword ptr [r14+0x10]
- ; byrRegs +[rcx]
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov rcx, rbx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
+ mov gword ptr [r14+0x10], rcx
+ mov rcx, rbx
mov rdx, r14
; gcrRegs +[rdx]
xor r8d, r8d
xor r9d, r9d
call [<unknown method>]
- ; gcrRegs -[rcx rdx] +[rax]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E
mov qword ptr [rsi+0x70], rcx
@@ -489,7 +483,7 @@ G_M23682_IG36: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcrRegs -[rcx rdx rsi]
; gcr arg pop 0
int3
- ;; size=212 bbWeight=0 PerfScore 0.00
+ ;; size=207 bbWeight=0 PerfScore 0.00
G_M23682_IG37: ; bbWeight=0, gcVars=0000000000000013 {V00 V01 V02}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; gcrRegs +[rdx]
; GC ptr vars +{V00 V01 V02}
@@ -580,7 +574,7 @@ RWD48 dq 0075002D00360034h, 0032002D00730063h
RWD64 dq 002D006600740075h, 0045004200360031h
-; Total bytes of code 1147, prolog size 33, PerfScore 181.17, instruction count 282, allocated bytes for code 1147 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
+Total bytes of code 1142, prolog size 33, PerfScore 181.17, instruction count 281, allocated bytes for code 1142 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
; ============================================================
Unwind Info:
-9 (-0.32%) : 227184.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
@@ -24,16 +24,16 @@
; V13 loc11 [V13,T14] ( 3, 8.50) ubyte -> rbp ld-addr-op
; V14 loc12 [V14,T15] ( 3, 8.50) ubyte -> r15 ld-addr-op
; V15 OutArgs [V15 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V16 tmp1 [V16,T95] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V16 tmp1 [V16,T94] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V17 tmp2 [V17 ] ( 0, 0 ) int -> zero-ref "dup spill"
-; V18 tmp3 [V18,T96] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V19 tmp4 [V19,T97] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V20 tmp5 [V20,T98] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V21 tmp6 [V21,T99] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V22 tmp7 [V22,T100] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V23 tmp8 [V23,T101] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V24 tmp9 [V24,T102] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V25 tmp10 [V25,T103] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V18 tmp3 [V18,T95] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V19 tmp4 [V19,T96] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V20 tmp5 [V20,T97] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V21 tmp6 [V21,T98] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V22 tmp7 [V22,T99] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V23 tmp8 [V23,T100] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V24 tmp9 [V24,T101] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V25 tmp10 [V25,T102] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V26 tmp11 [V26,T82] ( 3, 1.50) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
; V27 tmp12 [V27,T28] ( 4, 6 ) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.String>
; V28 tmp13 [V28,T45] ( 5, 3.08) int -> r14 single-def "Inline stloc first use temp"
@@ -119,7 +119,7 @@
;* V108 tmp93 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V109 tmp94 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
; V110 tmp95 [V110,T51] ( 3, 3 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.String>
-; V111 tmp96 [V111,T104] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V111 tmp96 [V111,T103] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
; V112 tmp97 [V112,T12] ( 4, 10 ) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
; V113 tmp98 [V113,T00] ( 4, 24 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
; V114 tmp99 [V114,T02] ( 5, 12.34) int -> r13 "Inline stloc first use temp"
@@ -134,7 +134,7 @@
; V123 tmp108 [V123,T24] ( 2, 8 ) long -> r8 "Inlining Arg"
;* V124 tmp109 [V124 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V125 tmp110 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V126 tmp111 [V126,T105] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V126 tmp111 [V126,T104] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
; V127 tmp112 [V127,T13] ( 4, 10 ) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
; V128 tmp113 [V128,T01] ( 4, 24 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
; V129 tmp114 [V129,T03] ( 5, 12.34) int -> r13 "Inline stloc first use temp"
@@ -173,32 +173,32 @@
;* V162 tmp147 [V162 ] ( 0, 0 ) int -> zero-ref single-def "field V106._length (fldOffset=0x8)" P-INDEP
;* V163 tmp148 [V163 ] ( 0, 0 ) byref -> zero-ref single-def "field V108._reference (fldOffset=0x0)" P-INDEP
;* V164 tmp149 [V164 ] ( 0, 0 ) int -> zero-ref single-def "field V108._length (fldOffset=0x8)" P-INDEP
-; V165 tmp150 [V165,T106] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V166 tmp151 [V166,T107] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V167 tmp152 [V167,T108] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V168 tmp153 [V168,T109] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V169 tmp154 [V169,T110] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V170 tmp155 [V170,T111] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V171 tmp156 [V171,T112] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V172 tmp157 [V172,T113] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V173 tmp158 [V173,T114] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V174 tmp159 [V174,T115] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V175 tmp160 [V175,T116] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V176 tmp161 [V176,T117] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V177 tmp162 [V177,T118] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V178 tmp163 [V178,T119] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
-; V179 tmp164 [V179,T120] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V180 tmp165 [V180,T121] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V181 tmp166 [V181,T122] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V182 tmp167 [V182,T123] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V183 tmp168 [V183,T124] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V184 tmp169 [V184,T125] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V185 tmp170 [V185,T126] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V186 tmp171 [V186,T127] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V187 tmp172 [V187,T128] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V188 tmp173 [V188,T129] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V189 tmp174 [V189,T130] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V190 tmp175 [V190,T131] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V165 tmp150 [V165,T105] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V166 tmp151 [V166,T106] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V167 tmp152 [V167,T107] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V168 tmp153 [V168,T108] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V169 tmp154 [V169,T109] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V170 tmp155 [V170,T110] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V171 tmp156 [V171,T111] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V172 tmp157 [V172,T112] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V173 tmp158 [V173,T113] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V174 tmp159 [V174,T114] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V175 tmp160 [V175,T115] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V176 tmp161 [V176,T116] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V177 tmp162 [V177,T117] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V178 tmp163 [V178,T118] ( 2, 0 ) ref -> r13 single-def "argument with side effect"
+; V179 tmp164 [V179,T119] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V180 tmp165 [V180,T120] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V181 tmp166 [V181,T121] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V182 tmp167 [V182,T122] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V183 tmp168 [V183,T123] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V184 tmp169 [V184,T124] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V185 tmp170 [V185,T125] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V186 tmp171 [V186,T126] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V187 tmp172 [V187,T127] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V188 tmp173 [V188,T128] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V189 tmp174 [V189,T129] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V190 tmp175 [V190,T130] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V191 cse0 [V191,T83] ( 3, 1.50) byref -> r13 "CSE - conservative"
; V192 cse1 [V192,T84] ( 3, 1.50) byref -> r13 "CSE - conservative"
; V193 cse2 [V193,T85] ( 3, 1.50) byref -> r13 "CSE - conservative"
@@ -206,7 +206,6 @@
; V195 cse4 [V195,T06] ( 3, 12 ) ref -> r13 "CSE - aggressive"
; V196 cse5 [V196,T07] ( 3, 12 ) ref -> r13 "CSE - aggressive"
; V197 cse6 [V197,T08] ( 3, 12 ) ref -> r13 "CSE - aggressive"
-; V198 cse7 [V198,T94] ( 12, 0 ) ref -> registers multi-def "CSE - conservative"
;
; Lcl frame size = 104
@@ -1113,33 +1112,31 @@ G_M39588_IG56: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=37 bbWeight=0 PerfScore 0.00
G_M39588_IG57: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
- mov r15, 0xD1FFAB1E
- ; gcrRegs +[r15]
- mov rcx, r15
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
jmp G_M39588_IG12
- ;; size=18 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M39588_IG58: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx rbx r15]
+ ; gcrRegs -[rcx rbx]
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
+ mov rbx, rax
+ ; gcrRegs +[rbx]
call [<unknown method>]
; gcr arg pop 0
mov rdx, rax
; gcrRegs +[rdx]
- mov rcx, r15
+ mov rcx, rbx
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
- mov rcx, r15
+ mov rcx, rbx
; gcrRegs +[rcx]
call CORINFO_HELP_THROW
- ; gcrRegs -[rcx r15]
+ ; gcrRegs -[rcx rbx]
; gcr arg pop 0
;; size=44 bbWeight=0 PerfScore 0.00
G_M39588_IG59: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -1159,36 +1156,12 @@ G_M39588_IG59: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=38 bbWeight=0 PerfScore 0.00
G_M39588_IG60: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
- mov r15, 0xD1FFAB1E
- ; gcrRegs +[r15]
- mov rcx, r15
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
jmp G_M39588_IG15
- ;; size=18 bbWeight=0 PerfScore 0.00
+ ;; size=15 bbWeight=0 PerfScore 0.00
G_M39588_IG61: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx rbx r15]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_NEWSFAST
- ; gcrRegs +[rax]
- ; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
- call [<unknown method>]
- ; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov rcx, r15
- ; gcrRegs +[rcx]
- call [<unknown method>]
- ; gcrRegs -[rax rcx rdx]
- ; gcr arg pop 0
- mov rcx, r15
- ; gcrRegs +[rcx]
- call CORINFO_HELP_THROW
- ; gcrRegs -[rcx r15]
- ; gcr arg pop 0
- ;; size=44 bbWeight=0 PerfScore 0.00
-G_M39588_IG62: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rcx rbx]
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -1197,38 +1170,60 @@ G_M39588_IG62: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
call [<unknown method>]
; gcr arg pop 0
+ mov rdx, rax
+ ; gcrRegs +[rdx]
+ mov rcx, rsi
+ ; gcrRegs +[rcx]
+ call [<unknown method>]
+ ; gcrRegs -[rax rcx rdx]
+ ; gcr arg pop 0
+ mov rcx, rsi
+ ; gcrRegs +[rcx]
+ call CORINFO_HELP_THROW
+ ; gcrRegs -[rcx rsi]
+ ; gcr arg pop 0
+ ;; size=44 bbWeight=0 PerfScore 0.00
+G_M39588_IG62: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov rcx, 0xD1FFAB1E ; <unknown class>
+ call CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[rax]
+ ; gcr arg pop 0
mov rdi, rax
; gcrRegs +[rdi]
+ call [<unknown method>]
+ ; gcr arg pop 0
+ mov rbx, rax
+ ; gcrRegs +[rbx]
mov ecx, 0x1329
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
; gcr arg pop 0
mov rdx, rax
; gcrRegs +[rdx]
- mov rcx, rdi
+ mov rcx, rbx
; gcrRegs +[rcx]
call [<unknown method>]
- ; gcrRegs -[rcx rdx rdi]
+ ; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
+ mov r13, rax
+ ; gcrRegs +[r13]
mov ecx, 0x12F9
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
; gcr arg pop 0
mov r8, rax
; gcrRegs +[r8]
- mov rdx, rbx
+ mov rdx, r13
; gcrRegs +[rdx]
- mov rcx, rsi
+ mov rcx, rdi
; gcrRegs +[rcx]
...
+28 (+2.54%) : 232825.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> r14
; V10 loc7 [V10,T08] ( 3, 12 ) ref -> r8 class-hnd <System.Xml.XmlDictionaryString>
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T23] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T24] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T20] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V17 tmp6 [V17,T19] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T26] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V19 tmp8 [V19,T25] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V20 tmp9 [V20,T29] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V26 tmp15 [V26,T30] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T21] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V28 tmp17 [V28,T20] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T27] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> rbp "Inlining Arg"
+; V30 tmp19 [V30,T26] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V31 tmp20 [V31,T31] ( 2, 0 ) byref -> rbp "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V37 tmp26 [V37,T32] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T22] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V41 tmp30 [V41,T21] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T28] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V43 tmp32 [V43,T27] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V44 tmp33 [V44,T33] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V50 tmp39 [V50,T34] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T23] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V52 tmp41 [V52,T22] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T29] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> rsi "Inlining Arg"
+; V54 tmp43 [V54,T28] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V55 tmp44 [V55,T35] ( 2, 0 ) byref -> rsi "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V61 tmp50 [V61,T36] ( 2, 0 ) byref -> rcx "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> rdi "Inline return value spill temp"
; V63 tmp52 [V63,T06] ( 4, 12 ) int -> r13 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.24) ref -> r15 class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T09] ( 3, 12 ) ref -> r8 "arr expr"
-; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V98 tmp87 [V98,T37] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V99 tmp88 [V99,T38] ( 2, 0 ) ref -> rdx "argument with side effect"
; V100 cse0 [V100,T17] ( 3, 3 ) ref -> rcx "CSE - moderate"
; V101 cse1 [V101,T10] ( 6, 10 ) int -> rbp multi-def "CSE - aggressive"
-; V102 cse2 [V102,T19] ( 12, 0 ) ref -> rdx multi-def "CSE - moderate"
;
; Lcl frame size = 80
@@ -384,15 +383,15 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov esi, dword ptr [rsp+0x48]
sub esi, ecx
jns SHORT G_M45430_IG30
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=74 bbWeight=0 PerfScore 0.00
+ ;; size=81 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp esi, 11
jb SHORT G_M45430_IG31
@@ -433,15 +432,15 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rsp+0x48]
sub r15d, ecx
jns SHORT G_M45430_IG33
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=67 bbWeight=0 PerfScore 0.00
+ ;; size=74 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
test r15d, r15d
je SHORT G_M45430_IG34
@@ -513,15 +512,15 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov esi, dword ptr [rsp+0x48]
sub esi, ecx
jns SHORT G_M45430_IG38
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=74 bbWeight=0 PerfScore 0.00
+ ;; size=81 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp esi, 11
jb SHORT G_M45430_IG39
@@ -569,15 +568,15 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, dword ptr [rsp+0x48]
sub edi, ebx
jns SHORT G_M45430_IG43
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- mov rcx, rdx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
; byrRegs -[rcx]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
test edi, edi
je SHORT G_M45430_IG44
@@ -625,7 +624,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=50 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1104, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1104 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1132, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1132 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
+18 (+3.56%) : 233543.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T02] ( 4, 12.50) ref -> r15 class-hnd <System.Xml.XmlDictionaryString>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [rsp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T14] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T13] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T12] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V10 tmp3 [V10,T11] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T15] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V13 tmp6 [V13,T17] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V12 tmp5 [V12,T14] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V13 tmp6 [V13,T16] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T18] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V19 tmp12 [V19,T17] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T13] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V21 tmp14 [V21,T12] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T16] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V24 tmp17 [V24,T19] ( 2, 0 ) byref -> rsi "Inlining Arg"
+; V23 tmp16 [V23,T15] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V24 tmp17 [V24,T18] ( 2, 0 ) byref -> rsi "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T20] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V30 tmp23 [V30,T19] ( 2, 0 ) byref -> rcx "Inlining Arg"
; V31 tmp24 [V31,T00] ( 5, 26.98) ref -> rcx class-hnd exact "Inlining Arg" <System.String>
; V32 tmp25 [V32,T10] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
; V33 tmp26 [V33,T05] ( 2, 8 ) byref -> rcx "impAppendStmt"
@@ -59,10 +59,9 @@
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V51 tmp44 [V51,T21] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V52 cse0 [V52,T11] ( 6, 0 ) ref -> rdx multi-def "CSE - aggressive"
-; V53 cse1 [V53,T07] ( 3, 6 ) int -> r14 "CSE - aggressive"
-; V54 cse2 [V54,T09] ( 3, 5.49) int -> r8 "CSE - aggressive"
+; V51 tmp44 [V51,T20] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V52 cse0 [V52,T07] ( 3, 6 ) int -> r14 "CSE - aggressive"
+; V53 cse1 [V53,T09] ( 3, 5.49) int -> r8 "CSE - aggressive"
;
; Lcl frame size = 72
@@ -207,7 +206,7 @@ G_M28309_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
mov ecx, dword ptr [rsp+0x30]
cmp ecx, dword ptr [rsp+0x40]
- ja SHORT G_M28309_IG19
+ ja G_M28309_IG19
mov rdx, bword ptr [rsp+0x38]
; byrRegs +[rdx]
mov eax, ecx
@@ -216,15 +215,15 @@ G_M28309_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov esi, dword ptr [rsp+0x40]
sub esi, ecx
jns SHORT G_M28309_IG16
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=81 bbWeight=0 PerfScore 0.00
G_M28309_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp esi, 8
jb SHORT G_M28309_IG17
@@ -270,15 +269,15 @@ G_M28309_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, dword ptr [rsp+0x40]
sub edi, ebx
jns SHORT G_M28309_IG21
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- mov rcx, rdx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
; byrRegs -[rcx]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M28309_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
test edi, edi
je SHORT G_M28309_IG22
@@ -326,7 +325,7 @@ G_M28309_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=50 bbWeight=0 PerfScore 0.00
-; Total bytes of code 506, prolog size 38, PerfScore 88.54, instruction count 141, allocated bytes for code 506 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 524, prolog size 38, PerfScore 88.54, instruction count 141, allocated bytes for code 524 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
+18 (+3.63%) : 233542.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
@@ -16,29 +16,29 @@
; V05 loc2 [V05,T01] ( 6, 16.25) ref -> r15 class-hnd exact <System.String>
; V06 loc3 [V06 ] ( 17, 0 ) struct (40) [rsp+0x20] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T13] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V08 tmp1 [V08,T12] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp3 [V10,T11] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V10 tmp3 [V10,T10] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V11 tmp4 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp5 [V12,T14] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V13 tmp6 [V13,T16] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V12 tmp5 [V12,T13] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V13 tmp6 [V13,T15] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V14 tmp7 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp9 [V16,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp9 [V16,T20] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T17] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V19 tmp12 [V19,T16] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V21 tmp14 [V21,T12] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V21 tmp14 [V21,T11] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V23 tmp16 [V23,T15] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V24 tmp17 [V24,T18] ( 2, 0 ) byref -> rsi "Inlining Arg"
+; V23 tmp16 [V23,T14] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V24 tmp17 [V24,T17] ( 2, 0 ) byref -> rsi "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp20 [V27,T22] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V27 tmp20 [V27,T21] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V30 tmp23 [V30,T19] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V30 tmp23 [V30,T18] ( 2, 0 ) byref -> rcx "Inlining Arg"
; V31 tmp24 [V31,T09] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
; V32 tmp25 [V32,T04] ( 2, 8 ) byref -> rcx "impAppendStmt"
;* V33 tmp26 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -58,10 +58,9 @@
;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
-; V50 tmp43 [V50,T20] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V51 cse0 [V51,T10] ( 6, 0 ) ref -> rdx multi-def "CSE - aggressive"
-; V52 cse1 [V52,T06] ( 3, 6 ) int -> r14 "CSE - aggressive"
-; V53 cse2 [V53,T08] ( 3, 5.49) int -> r8 "CSE - aggressive"
+; V50 tmp43 [V50,T19] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V51 cse0 [V51,T06] ( 3, 6 ) int -> r14 "CSE - aggressive"
+; V52 cse1 [V52,T08] ( 3, 5.49) int -> r8 "CSE - aggressive"
;
; Lcl frame size = 72
@@ -199,7 +198,7 @@ G_M58179_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
mov ecx, dword ptr [rsp+0x30]
cmp ecx, dword ptr [rsp+0x40]
- ja SHORT G_M58179_IG18
+ ja G_M58179_IG18
mov rdx, bword ptr [rsp+0x38]
; byrRegs +[rdx]
mov eax, ecx
@@ -208,15 +207,15 @@ G_M58179_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov esi, dword ptr [rsp+0x40]
sub esi, ecx
jns SHORT G_M58179_IG15
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=70 bbWeight=0 PerfScore 0.00
+ ;; size=81 bbWeight=0 PerfScore 0.00
G_M58179_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp esi, 8
jb SHORT G_M58179_IG16
@@ -262,15 +261,15 @@ G_M58179_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, dword ptr [rsp+0x40]
sub edi, ebx
jns SHORT G_M58179_IG20
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- mov rcx, rdx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
; byrRegs -[rcx]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M58179_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
test edi, edi
je SHORT G_M58179_IG21
@@ -318,7 +317,7 @@ G_M58179_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=50 bbWeight=0 PerfScore 0.00
-; Total bytes of code 496, prolog size 38, PerfScore 77.99, instruction count 138, allocated bytes for code 496 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 514, prolog size 38, PerfScore 77.99, instruction count 138, allocated bytes for code 514 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-20 (-2.50%) : 386559.dasm - System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this (Tier1)
@@ -26,35 +26,35 @@
; V14 tmp12 [V14,T13] ( 4, 3 ) ref -> rdi
;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V16 tmp14 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
-; V17 tmp15 [V17,T23] ( 5, 0 ) ref -> rdi
+; V17 tmp15 [V17,T22] ( 6, 0 ) ref -> rdi
;* V18 tmp16 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V19 tmp17 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V20 tmp18 [V20,T32] ( 2, 0 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
-; V21 tmp19 [V21,T27] ( 4, 0 ) ref -> rdi
+; V20 tmp18 [V20,T31] ( 2, 0 ) ref -> rcx class-hnd exact single-def "dup spill" <System.String>
+; V21 tmp19 [V21,T26] ( 5, 0 ) ref -> rcx
; V22 tmp20 [V22,T09] ( 2, 4 ) ref -> rbp class-hnd exact single-def "dup spill" <System.String>
; V23 tmp21 [V23,T14] ( 4, 3 ) ref -> rbp
;* V24 tmp22 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp24 [V26,T24] ( 5, 0 ) ref -> rbp
+; V26 tmp24 [V26,T23] ( 6, 0 ) ref -> rbp
;* V27 tmp25 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V28 tmp26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V29 tmp27 [V29,T33] ( 2, 0 ) ref -> rbp class-hnd exact single-def "dup spill" <System.String>
-; V30 tmp28 [V30,T28] ( 4, 0 ) ref -> rbp
+; V29 tmp27 [V29,T32] ( 2, 0 ) ref -> rcx class-hnd exact single-def "dup spill" <System.String>
+; V30 tmp28 [V30,T27] ( 5, 0 ) ref -> rcx
; V31 tmp29 [V31,T15] ( 2, 2 ) ubyte -> rax "Inline return value spill temp"
; V32 tmp30 [V32,T10] ( 2, 4 ) byref -> rcx single-def "impAppendStmt"
; V33 tmp31 [V33,T17] ( 2, 2 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String>
; V34 tmp32 [V34,T19] ( 4, 1.50) ref -> r14
;* V35 tmp33 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V36 tmp34 [V36 ] ( 0, 0 ) ref -> zero-ref single-def
-; V37 tmp35 [V37,T25] ( 5, 0 ) ref -> r14
+; V37 tmp35 [V37,T24] ( 6, 0 ) ref -> r14
;* V38 tmp36 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V39 tmp37 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V40 tmp38 [V40,T34] ( 2, 0 ) ref -> r14 class-hnd exact single-def "dup spill" <System.String>
-; V41 tmp39 [V41,T29] ( 4, 0 ) ref -> r14
+; V40 tmp38 [V40,T33] ( 2, 0 ) ref -> rcx class-hnd exact single-def "dup spill" <System.String>
+; V41 tmp39 [V41,T28] ( 5, 0 ) ref -> rcx
;* V42 tmp40 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V43 tmp41 [V43,T01] ( 5, 10.50) int -> r15 "Inline stloc first use temp"
; V44 tmp42 [V44,T03] ( 6, 8 ) ushort -> r12 "Inline stloc first use temp"
-; V45 tmp43 [V45,T31] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V45 tmp43 [V45,T30] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
; V46 tmp44 [V46,T07] ( 3, 5 ) int -> rax
;* V47 tmp45 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V48 tmp46 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -67,11 +67,11 @@
; V55 tmp53 [V55,T20] ( 4, 1.50) ref -> r8
;* V56 tmp54 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
;* V57 tmp55 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
-; V58 tmp56 [V58,T26] ( 5, 0 ) ref -> rdi
+; V58 tmp56 [V58,T25] ( 6, 0 ) ref -> rdi
;* V59 tmp57 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
;* V60 tmp58 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-; V61 tmp59 [V61,T35] ( 2, 0 ) ref -> rdi class-hnd exact single-def "dup spill" <System.String>
-; V62 tmp60 [V62,T30] ( 4, 0 ) ref -> rdi
+; V61 tmp59 [V61,T34] ( 2, 0 ) ref -> rcx class-hnd exact single-def "dup spill" <System.String>
+; V62 tmp60 [V62,T29] ( 5, 0 ) ref -> rcx
;* V63 tmp61 [V63 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
;* V64 tmp62 [V64 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V65 tmp63 [V65 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
@@ -84,10 +84,9 @@
;* V72 tmp70 [V72 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP
;* V73 tmp71 [V73 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
;* V74 tmp72 [V74 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V75 tmp73 [V75,T36] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V76 tmp74 [V76,T37] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V77 cse0 [V77,T22] ( 16, 0 ) ref -> registers multi-def "CSE - aggressive"
-; V78 cse1 [V78,T12] ( 3, 3.50) int -> r13 "CSE - moderate"
+; V75 tmp73 [V75,T35] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V76 tmp74 [V76,T36] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V77 cse0 [V77,T12] ( 3, 3.50) int -> r13 "CSE - moderate"
;
; Lcl frame size = 40
@@ -109,88 +108,76 @@ G_M51875_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M51875_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; System.Globalization.CultureInfo
cmp qword ptr [rbx], rax
- jne G_M51875_IG38
+ jne G_M51875_IG31
mov rdi, gword ptr [rbx+0x48]
; gcrRegs +[rdi]
test rdi, rdi
- jne SHORT G_M51875_IG06
+ jne SHORT G_M51875_IG04
;; size=28 bbWeight=1 PerfScore 7.50
-G_M51875_IG03: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG03: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rcx, gword ptr [rbx+0x30]
; gcrRegs +[rcx]
- mov rdi, gword ptr [rcx+0x18]
+ mov rcx, gword ptr [rcx+0x18]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
+ test rcx, rcx
+ cmove rcx, rdx
+ mov rdi, rcx
; gcrRegs +[rdi]
test rdi, rdi
- jne SHORT G_M51875_IG04
- mov rdi, 0xD1FFAB1E
- ;; size=23 bbWeight=0 PerfScore 0.00
-G_M51875_IG04: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
- test rdi, rdi
- jne SHORT G_M51875_IG05
- mov rdi, 0xD1FFAB1E
- ;; size=15 bbWeight=0 PerfScore 0.00
-G_M51875_IG05: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+ cmove rdi, rdx
lea rcx, bword ptr [rbx+0x48]
+ ; gcrRegs -[rcx]
; byrRegs +[rcx]
mov rdx, rdi
- ; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
; byrRegs -[rcx]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG06: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG04: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
call [<unknown method>]
; gcrRegs +[rax]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E ; System.Globalization.CultureInfo
cmp qword ptr [rax], rcx
- jne G_M51875_IG39
+ jne G_M51875_IG32
mov rbp, gword ptr [rax+0x48]
; gcrRegs +[rbp]
test rbp, rbp
- jne SHORT G_M51875_IG10
+ jne SHORT G_M51875_IG06
;; size=34 bbWeight=1 PerfScore 10.50
-G_M51875_IG07: ; bbWeight=0, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG05: ; bbWeight=0, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rcx, gword ptr [rax+0x30]
; gcrRegs +[rcx]
- mov rbp, gword ptr [rcx+0x18]
+ mov rcx, gword ptr [rcx+0x18]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
+ test rcx, rcx
+ cmove rcx, rdx
+ mov rbp, rcx
; gcrRegs +[rbp]
test rbp, rbp
- jne SHORT G_M51875_IG08
- mov rcx, 0xD1FFAB1E
- mov rbp, rcx
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M51875_IG08: ; bbWeight=0, gcrefRegs=00E9 {rax rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
- test rbp, rbp
- jne SHORT G_M51875_IG09
- mov rcx, 0xD1FFAB1E
- ; gcrRegs +[rcx]
- mov rbp, rcx
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M51875_IG09: ; bbWeight=0, gcrefRegs=00E9 {rax rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx]
+ cmove rbp, rdx
lea rcx, bword ptr [rax+0x48]
+ ; gcrRegs -[rcx]
; byrRegs +[rcx]
mov rdx, rbp
- ; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
- ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG10: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG06: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
cmp rdi, rbp
- je SHORT G_M51875_IG11
+ je SHORT G_M51875_IG07
test rdi, rdi
- je G_M51875_IG16
+ je G_M51875_IG12
test rbp, rbp
- je G_M51875_IG16
+ je G_M51875_IG12
mov ecx, dword ptr [rdi+0x08]
cmp ecx, dword ptr [rbp+0x08]
- jne G_M51875_IG16
+ jne G_M51875_IG12
mov ecx, 1
call [<unknown method>]
; gcr arg pop 0
@@ -214,9 +201,9 @@ G_M51875_IG10: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
; byrRegs -[rcx rdx]
; gcr arg pop 0
test eax, eax
- je SHORT G_M51875_IG16
+ je SHORT G_M51875_IG12
;; size=100 bbWeight=1 PerfScore 33.00
-G_M51875_IG11: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M51875_IG07: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rcx, gword ptr [rsi+0x08]
; gcrRegs +[rcx]
@@ -227,7 +214,7 @@ G_M51875_IG11: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
; gcr arg pop 0
nop
;; size=21 bbWeight=0.50 PerfScore 2.75
-G_M51875_IG12: ; bbWeight=0.50, epilog, nogc, extend
+G_M51875_IG08: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -239,32 +226,32 @@ G_M51875_IG12: ; bbWeight=0.50, epilog, nogc, extend
pop r15
ret
;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M51875_IG13: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, gcvars, byref
+G_M51875_IG09: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax] +[rbx rsi r14]
xor r15d, r15d
mov r13d, dword ptr [r14+0x08]
test r13d, r13d
- jle G_M51875_IG28
+ jle G_M51875_IG22
;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M51875_IG14: ; bbWeight=2.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG10: ; bbWeight=2.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
mov ecx, r15d
movzx r12, word ptr [r14+2*rcx+0x0C]
cmp r12d, 256
- jb SHORT G_M51875_IG23
+ jb SHORT G_M51875_IG17
;; size=18 bbWeight=2.50 PerfScore 8.75
-G_M51875_IG15: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG11: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
mov ecx, r12d
call [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
; gcr arg pop 0
- jmp SHORT G_M51875_IG24
+ jmp SHORT G_M51875_IG18
;; size=11 bbWeight=0 PerfScore 0.00
-G_M51875_IG16: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG12: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14]
mov rcx, 0xD1FFAB1E ; System.Globalization.CultureInfo
cmp qword ptr [rbx], rcx
- je SHORT G_M51875_IG18
...
-49 (-2.30%) : 308760.dasm - System.IO.Tests.DirectoryGetFileSystemEntriesstr_str:PrepareDirectory(System.String[],ubyte):System.String:this (Tier1)
@@ -9,194 +9,194 @@
; 32 inlinees with PGO data; 63 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T40] ( 10, 5 ) ref -> rsi this class-hnd single-def <System.IO.Tests.Directory_GetFileSystemEntries_str_str>
-; V01 arg1 [V01,T55] ( 3, 3 ) ref -> rdi class-hnd single-def <System.String[]>
-; V02 arg2 [V02,T39] ( 3, 7.76) ubyte -> rbx single-def
-; V03 loc0 [V03,T24] ( 14, 19.26) ref -> rbp class-hnd exact single-def <System.String>
+; V00 this [V00,T38] ( 10, 5 ) ref -> rsi this class-hnd single-def <System.IO.Tests.Directory_GetFileSystemEntries_str_str>
+; V01 arg1 [V01,T53] ( 3, 3 ) ref -> rdi class-hnd single-def <System.String[]>
+; V02 arg2 [V02,T37] ( 3, 7.76) ubyte -> rbx single-def
+; V03 loc0 [V03,T23] ( 14, 19.26) ref -> rbp class-hnd exact single-def <System.String>
;* V04 loc1 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[int]>
-; V05 loc2 [V05,T34] ( 4, 13.52) ref -> rdi class-hnd exact single-def <System.String[]>
+; V05 loc2 [V05,T33] ( 4, 13.52) ref -> rdi class-hnd exact single-def <System.String[]>
; V06 loc3 [V06,T22] ( 5, 24.03) int -> r14
; V07 loc4 [V07,T04] ( 13,115.15) ref -> r13 class-hnd exact <System.String>
; V08 OutArgs [V08 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref
-; V11 tmp3 [V11,T35] ( 15, 10.91) ref -> r13
-; V12 tmp4 [V12,T54] ( 8, 5.64) ref -> r15 "guarded devirt return temp"
+; V11 tmp3 [V11,T13] ( 23, 58.17) ref -> r13
+; V12 tmp4 [V12,T52] ( 8, 5.64) ref -> r15 "guarded devirt return temp"
;* V13 tmp5 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.IO.Tests.Directory_EnumDir_str_str_so>
;* V14 tmp6 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Nullable`1[int]>
-; V15 tmp7 [V15,T64] ( 7, 2.88) ref -> rbp class-hnd exact single-def "non-inline candidate call" <System.String>
-; V16 tmp8 [V16,T56] ( 9, 4.32) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String>
-; V17 tmp9 [V17,T87] ( 4, 0 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
+; V15 tmp7 [V15,T62] ( 7, 2.88) ref -> rbp class-hnd exact single-def "non-inline candidate call" <System.String>
+; V16 tmp8 [V16,T54] ( 9, 4.32) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String>
+; V17 tmp9 [V17,T85] ( 4, 0 ) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
;* V18 tmp10 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V19 tmp11 [V19 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V20 tmp12 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V21 tmp13 [V21,T80] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V22 tmp14 [V22,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V21 tmp13 [V21,T78] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V22 tmp14 [V22,T79] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V23 tmp15 [V23 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V24 tmp16 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V25 tmp17 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V26 tmp18 [V26,T71] ( 2, 1.44) int -> r12 "Inlining Arg"
-; V27 tmp19 [V27,T70] ( 2, 1.44) byref -> r15 single-def "Inlining Arg"
-;* V28 tmp20 [V28,T123] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V26 tmp18 [V26,T69] ( 2, 1.44) int -> r12 "Inlining Arg"
+; V27 tmp19 [V27,T68] ( 2, 1.44) byref -> r15 single-def "Inlining Arg"
+;* V28 tmp20 [V28,T121] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V29 tmp21 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V30 tmp22 [V30 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-;* V31 tmp23 [V31,T82] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V32 tmp24 [V32,T68] ( 3, 2.09) ushort -> rcx "Inlining Arg"
+;* V31 tmp23 [V31,T80] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V32 tmp24 [V32,T66] ( 3, 2.09) ushort -> rcx "Inlining Arg"
;* V33 tmp25 [V33 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V34 tmp26 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V35 tmp27 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V36 tmp28 [V36,T124] ( 2, 0 ) int -> r13 "Inlining Arg"
-; V37 tmp29 [V37,T94] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
+; V36 tmp28 [V36,T122] ( 2, 0 ) int -> r13 "Inlining Arg"
+; V37 tmp29 [V37,T92] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
;* V38 tmp30 [V38 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V39 tmp31 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V40 tmp32 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V41 tmp33 [V41,T125] ( 2, 0 ) int -> rbp "Inlining Arg"
-; V42 tmp34 [V42,T95] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
+; V41 tmp33 [V41,T123] ( 2, 0 ) int -> rbp "Inlining Arg"
+; V42 tmp34 [V42,T93] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
;* V43 tmp35 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.IO.DirectoryInfo>
-; V44 tmp36 [V44,T63] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" <System.String>
-; V45 tmp37 [V45,T33] ( 7, 14 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
-;* V46 tmp38 [V46,T74] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V47 tmp39 [V47,T38] ( 5, 10 ) ref -> r14 class-hnd "Inlining Arg" <System.String>
+; V44 tmp36 [V44,T61] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V45 tmp37 [V45,T32] ( 7, 14 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+;* V46 tmp38 [V46,T72] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V47 tmp39 [V47,T36] ( 5, 10 ) ref -> r14 class-hnd "Inlining Arg" <System.String>
;* V48 tmp40 [V48 ] ( 0, 0 ) ref -> zero-ref
;* V49 tmp41 [V49 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Runtime.InteropServices.OSPlatform>
;* V50 tmp42 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform>
;* V51 tmp43 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V52 tmp44 [V52 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
-;* V53 tmp45 [V53,T52] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
-; V54 tmp46 [V54,T88] ( 4, 0 ) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
+;* V53 tmp45 [V53,T50] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+; V54 tmp46 [V54,T86] ( 4, 0 ) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
;* V55 tmp47 [V55 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V56 tmp48 [V56 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V57 tmp49 [V57 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V58 tmp50 [V58,T65] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V59 tmp51 [V59,T66] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V58 tmp50 [V58,T63] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V59 tmp51 [V59,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V60 tmp52 [V60 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V61 tmp53 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V62 tmp54 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V63 tmp55 [V63,T03] ( 2,158.90) int -> [rsp+0x84] spill-single-def "Inlining Arg"
+; V63 tmp55 [V63,T03] ( 2,158.90) int -> [rsp+0x64] spill-single-def "Inlining Arg"
; V64 tmp56 [V64,T02] ( 2,158.90) byref -> r15 "Inlining Arg"
-;* V65 tmp57 [V65,T126] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V65 tmp57 [V65,T124] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V66 tmp58 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V67 tmp59 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V68 tmp60 [V68,T67] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V69 tmp61 [V69,T32] ( 3, 14.39) ushort -> rax "Inlining Arg"
+;* V68 tmp60 [V68,T65] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V69 tmp61 [V69,T31] ( 3, 14.39) ushort -> rax "Inlining Arg"
;* V70 tmp62 [V70 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V71 tmp63 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V72 tmp64 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V73 tmp65 [V73,T127] ( 2, 0 ) int -> [rsp+0x80] spill-single-def "Inlining Arg"
-; V74 tmp66 [V74,T96] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V73 tmp65 [V73,T125] ( 2, 0 ) int -> [rsp+0x60] spill-single-def "Inlining Arg"
+; V74 tmp66 [V74,T94] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V75 tmp67 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V76 tmp68 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V77 tmp69 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V78 tmp70 [V78,T128] ( 2, 0 ) int -> r12 "Inlining Arg"
-; V79 tmp71 [V79,T97] ( 2, 0 ) byref -> r13 "Inlining Arg"
-; V80 tmp72 [V80,T89] ( 4, 0 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
+; V78 tmp70 [V78,T126] ( 2, 0 ) int -> r12 "Inlining Arg"
+; V79 tmp71 [V79,T95] ( 2, 0 ) byref -> r13 "Inlining Arg"
+; V80 tmp72 [V80,T87] ( 4, 0 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
;* V81 tmp73 [V81 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V82 tmp74 [V82 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V83 tmp75 [V83 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V84 tmp76 [V84,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V85 tmp77 [V85,T61] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V84 tmp76 [V84,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V85 tmp77 [V85,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V86 tmp78 [V86 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V87 tmp79 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V88 tmp80 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V89 tmp81 [V89,T01] ( 2,209.66) int -> [rsp+0x7C] spill-single-def "Inlining Arg"
+; V89 tmp81 [V89,T01] ( 2,209.66) int -> [rsp+0x5C] spill-single-def "Inlining Arg"
; V90 tmp82 [V90,T00] ( 2,209.66) byref -> r15 "Inlining Arg"
-;* V91 tmp83 [V91,T129] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V91 tmp83 [V91,T127] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V92 tmp84 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V93 tmp85 [V93 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V94 tmp86 [V94,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V95 tmp87 [V95,T25] ( 3, 18.99) ushort -> rcx "Inlining Arg"
+;* V94 tmp86 [V94,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V95 tmp87 [V95,T24] ( 3, 18.99) ushort -> rcx "Inlining Arg"
;* V96 tmp88 [V96 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V97 tmp89 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V98 tmp90 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V99 tmp91 [V99,T130] ( 2, 0 ) int -> [rsp+0x78] spill-single-def "Inlining Arg"
-; V100 tmp92 [V100,T98] ( 2, 0 ) byref -> r15 "Inlining Arg"
+; V99 tmp91 [V99,T128] ( 2, 0 ) int -> [rsp+0x58] spill-single-def "Inlining Arg"
+; V100 tmp92 [V100,T96] ( 2, 0 ) byref -> r15 "Inlining Arg"
;* V101 tmp93 [V101 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V102 tmp94 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V103 tmp95 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V104 tmp96 [V104,T131] ( 2, 0 ) int -> r12 "Inlining Arg"
-; V105 tmp97 [V105,T99] ( 2, 0 ) byref -> r13 "Inlining Arg"
-; V106 tmp98 [V106,T92] ( 2, 0 ) int -> rax "guarded devirt return temp"
+; V104 tmp96 [V104,T129] ( 2, 0 ) int -> r12 "Inlining Arg"
+; V105 tmp97 [V105,T97] ( 2, 0 ) byref -> r13 "Inlining Arg"
+; V106 tmp98 [V106,T90] ( 2, 0 ) int -> rax "guarded devirt return temp"
;* V107 tmp99 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.Directory_EnumDir_str_str_so>
-; V108 tmp100 [V108,T100] ( 2, 0 ) ref -> r15 class-hnd "dup spill" <System.Text.Encoding>
-; V109 tmp101 [V109,T86] ( 5, 0 ) ref -> r15
-; V110 tmp102 [V110,T85] ( 6, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Text.UTF8Encoding>
-;* V111 tmp103 [V111,T147] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V108 tmp100 [V108,T98] ( 2, 0 ) ref -> r15 class-hnd "dup spill" <System.Text.Encoding>
+; V109 tmp101 [V109,T84] ( 5, 0 ) ref -> r15
+; V110 tmp102 [V110,T83] ( 6, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Text.UTF8Encoding>
+;* V111 tmp103 [V111,T145] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V112 tmp104 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.IO.DirectoryInfo>
-; V113 tmp105 [V113,T37] ( 3, 10.91) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.String>
-; V114 tmp106 [V114,T16] ( 6, 43.63) ref -> r12 class-hnd exact "NewObj constructor temp" <System.IO.DirectoryInfo>
-;* V115 tmp107 [V115,T148] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V113 tmp105 [V113,T35] ( 3, 10.91) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.String>
+; V114 tmp106 [V114,T17] ( 6, 43.63) ref -> r15 class-hnd exact "NewObj constructor temp" <System.IO.DirectoryInfo>
+;* V115 tmp107 [V115,T146] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V116 tmp108 [V116 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V117 tmp109 [V117,T90] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.ArgumentException>
-; V118 tmp110 [V118,T91] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentException>
+; V117 tmp109 [V117,T88] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.ArgumentException>
+; V118 tmp110 [V118,T89] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentException>
;* V119 tmp111 [V119 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V120 tmp112 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V121 tmp113 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V122 tmp114 [V122,T132] ( 2, 0 ) int -> [rsp+0x74] spill-single-def "Inlining Arg"
-; V123 tmp115 [V123,T101] ( 2, 0 ) byref -> [rsp+0x30] spill-single-def "Inlining Arg"
-;* V124 tmp116 [V124,T27] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V122 tmp114 [V122,T130] ( 2, 0 ) int -> r12 "Inlining Arg"
+; V123 tmp115 [V123,T99] ( 2, 0 ) byref -> r15 "Inlining Arg"
+;* V124 tmp116 [V124,T26] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V125 tmp117 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V126 tmp118 [V126 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-; V127 tmp119 [V127,T26] ( 6, 18.18) int -> rax "Inline stloc first use temp"
+; V127 tmp119 [V127,T25] ( 6, 18.18) int -> rcx "Inline stloc first use temp"
;* V128 tmp120 [V128 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-; V129 tmp121 [V129,T18] ( 2, 29.09) ubyte -> rax "Inline return value spill temp"
-; V130 tmp122 [V130,T13] ( 2, 58.17) byref -> [rsp+0x28] spill-single-def "Inlining Arg"
-;* V131 tmp123 [V131,T19] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V132 tmp124 [V132,T14] ( 2, 58.17) int -> [rsp+0x70] spill-single-def "Inlining Arg"
-;* V133 tmp125 [V133,T20] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V134 tmp126 [V134,T43] ( 3, 7.27) ref -> r15 class-hnd "Inline return value spill temp" <System.String>
+; V129 tmp121 [V129,T19] ( 2, 29.09) ubyte -> rax "Inline return value spill temp"
+; V130 tmp122 [V130,T14] ( 2, 58.17) byref -> r15 "Inlining Arg"
+;* V131 tmp123 [V131,T20] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
+; V132 tmp124 [V132,T15] ( 2, 58.17) int -> r12 "Inlining Arg"
+;* V133 tmp125 [V133,T21] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
+; V134 tmp126 [V134,T41] ( 3, 7.27) ref -> r12 class-hnd "Inline return value spill temp" <System.String>
;* V135 tmp127 [V135 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V136 tmp128 [V136,T46] ( 2, 7.27) ubyte -> rcx "Inline return value spill temp"
-; V137 tmp129 [V137,T47] ( 2, 7.27) ubyte -> rax "Inline return value spill temp"
-; V138 tmp130 [V138,T28] ( 2, 14.54) byref -> [rsp+0x20] spill-single-def "Inlining Arg"
-;* V139 tmp131 [V139,T50] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V140 tmp132 [V140,T30] ( 2, 14.54) int -> [rsp+0x6C] spill-single-def "Inlining Arg"
-;* V141 tmp133 [V141,T51] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
+; V136 tmp128 [V136,T44] ( 2, 7.27) ubyte -> rcx "Inline return value spill temp"
+; V137 tmp129 [V137,T45] ( 2, 7.27) ubyte -> rax "Inline return value spill temp"
+; V138 tmp130 [V138,T27] ( 2, 14.54) byref -> r15 "Inlining Arg"
+;* V139 tmp131 [V139,T48] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
+; V140 tmp132 [V140,T29] ( 2, 14.54) int -> r12 "Inlining Arg"
+;* V141 tmp133 [V141,T49] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V142 tmp134 [V142 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V143 tmp135 [V143 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V144 tmp136 [V144 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V145 tmp137 [V145,T31] ( 2, 14.54) int -> r15 "Inlining Arg"
-; V146 tmp138 [V146,T29] ( 2, 14.54) byref -> r12 "Inlining Arg"
-; V147 tmp139 [V147,T57] ( 2, 0 ) ubyte -> rcx "Inline return value spill temp"
+; V145 tmp137 [V145,T30] ( 2, 14.54) int -> r12 "Inlining Arg"
+; V146 tmp138 [V146,T28] ( 2, 14.54) byref -> r15 "Inlining Arg"
+; V147 tmp139 [V147,T55] ( 2, 0 ) ubyte -> rcx "Inline return value spill temp"
;* V148 tmp140 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V149 tmp141 [V149,T17] ( 4, 29.09) ref -> r15 class-hnd "Inlining Arg" <System.String>
+; V149 tmp141 [V149,T18] ( 4, 29.09) ref -> r12 class-hnd "Inlining Arg" <System.String>
;* V150 tmp142 [V150 ] ( 0, 0 ) ref -> zero-ref
-;* V151 tmp143 [V151,T75] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V152 tmp144 [V152,T76] ( 0, 0 ) int -> zero-ref single-def "field V04.value (fldOffset=0x4)" P-INDEP
-;* V153 tmp145 [V153,T83] ( 0, 0 ) ubyte -> zero-ref single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP
-;* V154 tmp146 [V154,T84] ( 0, 0 ) int -> zero-ref single-def "field V14.value (fldOffset=0x4)" P-INDEP
+;* V151 tmp143 [V151,T73] ( 0, 0 ) ubyte -> zero-ref single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V152 tmp144 [V152,T74] ( 0, 0 ) int -> zero-ref single-def "field V04.value (fldOffset=0x4)" P-INDEP
+;* V153 tmp145 [V153,T81] ( 0, 0 ) ubyte -> zero-ref single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP
+;* V154 tmp146 [V154,T82] ( 0, 0 ) int -> zero-ref single-def "field V14.value (fldOffset=0x4)" P-INDEP
;* V155 tmp147 [V155 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
;* V156 tmp148 [V156 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-; V157 tmp149 [V157,T102] ( 2, 0 ) byref -> r15 "field V19._reference (fldOffset=0x0)" P-INDEP
-; V158 tmp150 [V158,T133] ( 2, 0 ) int -> r13 "field V19._length (fldOffset=0x8)" P-INDEP
+; V157 tmp149 [V157,T100] ( 2, 0 ) byref -> r15 "field V19._reference (fldOffset=0x0)" P-INDEP
+; V158 tmp150 [V158,T131] ( 2, 0 ) int -> r13 "field V19._length (fldOffset=0x8)" P-INDEP
;* V159 tmp151 [V159 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V160 tmp152 [V160 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
-; V161 tmp153 [V161,T69] ( 4, 1.44) byref -> r15 "field V23._reference (fldOffset=0x0)" P-INDEP
...
-35 (-1.19%) : 311311.dasm - System.IO.Tests.BaseSymbolicLinksFileSystem:ResolveLinkTargetSucceeds(System.String,ubyte):this (Tier1)
@@ -11,82 +11,82 @@
;
; V00 this [V00,T05] ( 16, 6 ) ref -> [rbp+0x10] this class-hnd single-def <System.IO.Tests.BaseSymbolicLinks_FileSystem>
; V01 arg1 [V01,T08] ( 27, 5.20) ref -> [rbp+0x18] class-hnd single-def <System.String>
-; V02 arg2 [V02,T18] ( 4, 2 ) ubyte -> rdi single-def
-; V03 loc0 [V03,T72] ( 12, 0.02) ref -> [rbp-0xB0] class-hnd exact spill-single-def <System.String>
-; V04 loc1 [V04,T73] ( 20, 0 ) ref -> registers class-hnd <System.IO.FileSystemInfo>
-; V05 loc2 [V05,T60] ( 6, 1 ) ref -> rbx class-hnd single-def <System.IO.FileSystemInfo>
-; V06 loc3 [V06,T36] ( 2, 2 ) ref -> rsi class-hnd single-def <System.String>
+; V02 arg2 [V02,T19] ( 4, 2 ) ubyte -> rdi single-def
+; V03 loc0 [V03,T15] ( 19, 5.57) ref -> [rbp-0xA0] class-hnd exact spill-single-def <System.String>
+; V04 loc1 [V04,T70] ( 20, 0 ) ref -> registers class-hnd <System.IO.FileSystemInfo>
+; V05 loc2 [V05,T34] ( 8, 2 ) ref -> rbx class-hnd single-def <System.IO.FileSystemInfo>
+; V06 loc3 [V06,T37] ( 2, 2 ) ref -> rsi class-hnd single-def <System.String>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T40] ( 3, 1.80) ref -> rsi
+; V08 tmp1 [V08,T41] ( 3, 1.80) ref -> rsi
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "guarded devirt return temp"
;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
-; V13 tmp6 [V13,T89] ( 3, 0 ) ref -> rbx "guarded devirt return temp"
+; V13 tmp6 [V13,T86] ( 3, 0 ) ref -> rbx "guarded devirt return temp"
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
-; V15 tmp8 [V15,T35] ( 3, 2 ) ref -> rdx "guarded devirt return temp"
+; V15 tmp8 [V15,T36] ( 3, 2 ) ref -> rdx "guarded devirt return temp"
;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.FileInfo>
;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" <System.String>
-; V18 tmp11 [V18,T19] ( 2, 4 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
+; V18 tmp11 [V18,T20] ( 2, 4 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
; V19 tmp12 [V19,T13] ( 9, 6.00) ref -> r15
; V20 tmp13 [V20,T10] ( 3, 6 ) ref -> r15 class-hnd exact single-def "dup spill" <System.String>
;* V21 tmp14 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.String>
;* V22 tmp15 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
; V23 tmp16 [V23,T04] ( 9, 11.99) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
-; V24 tmp17 [V24,T82] ( 4, 0 ) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
+; V24 tmp17 [V24,T79] ( 4, 0 ) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
;* V25 tmp18 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V26 tmp19 [V26 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V27 tmp20 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V28 tmp21 [V28,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V29 tmp22 [V29,T63] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V28 tmp21 [V28,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V29 tmp22 [V29,T61] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V30 tmp23 [V30 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V33 tmp26 [V33,T22] ( 2, 4 ) int -> [rbp-0x3C] spill-single-def "Inlining Arg"
-; V34 tmp27 [V34,T20] ( 2, 4 ) byref -> r12 single-def "Inlining Arg"
-;* V35 tmp28 [V35,T128] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V33 tmp26 [V33,T23] ( 2, 4 ) int -> [rbp-0x3C] spill-single-def "Inlining Arg"
+; V34 tmp27 [V34,T21] ( 2, 4 ) byref -> r12 single-def "Inlining Arg"
+;* V35 tmp28 [V35,T125] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V36 tmp29 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V37 tmp30 [V37 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-;* V38 tmp31 [V38,T64] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V38 tmp31 [V38,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V39 tmp32 [V39,T11] ( 3, 6 ) ushort -> rax "Inlining Arg"
;* V40 tmp33 [V40 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V41 tmp34 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp35 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V43 tmp36 [V43,T129] ( 2, 0 ) int -> r15 "Inlining Arg"
-; V44 tmp37 [V44,T109] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
+; V43 tmp36 [V43,T126] ( 2, 0 ) int -> r15 "Inlining Arg"
+; V44 tmp37 [V44,T106] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
;* V45 tmp38 [V45 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V46 tmp39 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V48 tmp41 [V48,T130] ( 2, 0 ) int -> r13 "Inlining Arg"
-; V49 tmp42 [V49,T110] ( 2, 0 ) byref -> [rbp-0xB8] spill-single-def "Inlining Arg"
-; V50 tmp43 [V50,T78] ( 7, 0 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.IO.FileInfo>
-; V51 tmp44 [V51,T90] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
+; V48 tmp41 [V48,T127] ( 2, 0 ) int -> r13 "Inlining Arg"
+; V49 tmp42 [V49,T107] ( 2, 0 ) byref -> [rbp-0xA8] spill-single-def "Inlining Arg"
+; V50 tmp43 [V50,T75] ( 7, 0 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.IO.FileInfo>
+; V51 tmp44 [V51,T87] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
;* V52 tmp45 [V52 ] ( 0, 0 ) ref -> zero-ref single-def
;* V53 tmp46 [V53 ] ( 0, 0 ) ref -> zero-ref single-def
-; V54 tmp47 [V54,T91] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V55 tmp48 [V55,T92] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;* V56 tmp49 [V56,T152] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V57 tmp50 [V57,T131] ( 2, 0 ) ubyte -> rax "Inline return value spill temp"
-; V58 tmp51 [V58,T111] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
-;* V59 tmp52 [V59,T153] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-; V60 tmp53 [V60,T132] ( 2, 0 ) int -> [rbp-0x40] spill-single-def "Inlining Arg"
+; V54 tmp47 [V54,T88] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V55 tmp48 [V55,T89] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;* V56 tmp49 [V56,T149] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V57 tmp50 [V57,T128] ( 2, 0 ) ubyte -> rax "Inline return value spill temp"
+; V58 tmp51 [V58,T108] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
+;* V59 tmp52 [V59,T150] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
+; V60 tmp53 [V60,T129] ( 2, 0 ) int -> [rbp-0x40] spill-single-def "Inlining Arg"
;* V61 tmp54 [V61 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
;* V62 tmp55 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V63 tmp56 [V63,T79] ( 5, 0 ) ref -> [rbp-0xC8] class-hnd "Inlining Arg" <System.String>
-; V64 tmp57 [V64,T74] ( 11, 0 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-;* V65 tmp58 [V65,T150] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
-; V66 tmp59 [V66,T99] ( 3, 0 ) int -> [rbp-0x44] "Inline stloc first use temp"
-; V67 tmp60 [V67,T83] ( 4, 0 ) ref -> rcx class-hnd exact single-def "Inline stloc first use temp" <System.Version>
-; V68 tmp61 [V68,T81] ( 5, 0 ) int -> rcx
+; V63 tmp56 [V63,T76] ( 5, 0 ) ref -> [rbp-0xB8] class-hnd "Inlining Arg" <System.String>
+; V64 tmp57 [V64,T71] ( 11, 0 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+;* V65 tmp58 [V65,T147] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.String>
+; V66 tmp59 [V66,T96] ( 3, 0 ) int -> [rbp-0x44] "Inline stloc first use temp"
+; V67 tmp60 [V67,T80] ( 4, 0 ) ref -> rcx class-hnd exact single-def "Inline stloc first use temp" <System.Version>
+; V68 tmp61 [V68,T78] ( 5, 0 ) int -> rcx
;* V69 tmp62 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V70 tmp63 [V70 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V71 tmp64 [V71,T93] ( 3, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
-;* V72 tmp65 [V72,T133] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V73 tmp66 [V73,T100] ( 3, 0 ) ushort -> rcx single-def "Inline stloc first use temp"
+; V71 tmp64 [V71,T90] ( 3, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.String>
+;* V72 tmp65 [V72,T130] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V73 tmp66 [V73,T97] ( 3, 0 ) ushort -> rcx single-def "Inline stloc first use temp"
;* V74 tmp67 [V74 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
-; V75 tmp68 [V75,T84] ( 4, 0 ) ref -> [rbp-0xD8] class-hnd "Inline return value spill temp" <System.String>
-;* V76 tmp69 [V76,T134] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V77 tmp70 [V77,T101] ( 3, 0 ) ushort -> rcx single-def "Inline stloc first use temp"
+; V75 tmp68 [V75,T81] ( 4, 0 ) ref -> [rbp-0xC8] class-hnd "Inline return value spill temp" <System.String>
+;* V76 tmp69 [V76,T131] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V77 tmp70 [V77,T98] ( 3, 0 ) ushort -> rcx single-def "Inline stloc first use temp"
;* V78 tmp71 [V78 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
;* V79 tmp72 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.OperatingSystem>
;* V80 tmp73 [V80 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp"
@@ -94,15 +94,15 @@
;* V82 tmp75 [V82 ] ( 0, 0 ) long -> zero-ref single-def "Inline stloc first use temp"
; V83 tmp76 [V83 ] ( 2, 0 ) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp"
;* V84 tmp77 [V84 ] ( 0, 0 ) long -> zero-ref single-def "Inline stloc first use temp"
-; V85 tmp78 [V85,T135] ( 2, 0 ) ubyte -> rbx single-def "Inline stloc first use temp"
-; V86 tmp79 [V86,T136] ( 2, 0 ) int -> rcx single-def "Inline stloc first use temp"
-; V87 tmp80 [V87,T137] ( 2, 0 ) ubyte -> rbx single-def "Inline stloc first use temp"
-; V88 tmp81 [V88,T85] ( 4, 0 ) byref -> rdx "Inline return value spill temp"
-; V89 tmp82 [V89,T86] ( 4, 0 ) byref -> r8 "Inline return value spill temp"
+; V85 tmp78 [V85,T132] ( 2, 0 ) ubyte -> rbx single-def "Inline stloc first use temp"
+; V86 tmp79 [V86,T133] ( 2, 0 ) int -> rcx single-def "Inline stloc first use temp"
+; V87 tmp80 [V87,T134] ( 2, 0 ) ubyte -> rbx single-def "Inline stloc first use temp"
+; V88 tmp81 [V88,T82] ( 4, 0 ) byref -> rdx "Inline return value spill temp"
+; V89 tmp82 [V89,T83] ( 4, 0 ) byref -> r8 "Inline return value spill temp"
;* V90 tmp83 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V91 tmp84 [V91 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
;* V92 tmp85 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
-;* V93 tmp86 [V93,T151] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.IO.FileInfo>
+;* V93 tmp86 [V93,T148] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.IO.FileInfo>
;* V94 tmp87 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
;* V95 tmp88 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
;* V96 tmp89 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -113,18 +113,18 @@
;* V101 tmp94 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V102 tmp95 [V102 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
;* V103 tmp96 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
-; V104 tmp97 [V104,T112] ( 2, 0 ) ref -> rcx class-hnd exact single-def "bubbling QMark2" <System.String>
-; V105 tmp98 [V105,T113] ( 2, 0 ) ref -> rdx class-hnd "spilling QMark2" <<unknown class>>
+; V104 tmp97 [V104,T109] ( 2, 0 ) ref -> rcx class-hnd exact single-def "bubbling QMark2" <System.String>
+; V105 tmp98 [V105,T110] ( 2, 0 ) ref -> rdx class-hnd "spilling QMark2" <<unknown class>>
;* V106 tmp99 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V107 tmp100 [V107,T94] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
+; V107 tmp100 [V107,T91] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
;* V108 tmp101 [V108 ] ( 0, 0 ) ref -> zero-ref single-def
;* V109 tmp102 [V109 ] ( 0, 0 ) ref -> zero-ref single-def
-; V110 tmp103 [V110,T95] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V111 tmp104 [V111,T96] ( 3, 0 ) ref -> rbx class-hnd "Inline return value spill temp" <System.IO.FileSystemInfo>
-; V112 tmp105 [V112,T97] ( 3, 0 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.String>
-; V113 tmp106 [V113,T87] ( 4, 0 ) ref -> rdi
+; V110 tmp103 [V110,T92] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V111 tmp104 [V111,T93] ( 3, 0 ) ref -> rbx class-hnd "Inline return value spill temp" <System.IO.FileSystemInfo>
+; V112 tmp105 [V112,T94] ( 3, 0 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.String>
+; V113 tmp106 [V113,T84] ( 4, 0 ) ref -> rdi
;* V114 tmp107 [V114 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.String>
-; V115 tmp108 [V115,T98] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
+; V115 tmp108 [V115,T95] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
;* V116 tmp109 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
;* V117 tmp110 [V117 ] ( 0, 0 ) ref -> zero-ref single-def
;* V118 tmp111 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -135,50 +135,50 @@
;* V123 tmp116 [V123 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V124 tmp117 [V124 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V125 tmp118 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V126 tmp119 [V126,T138] ( 2, 0 ) int -> r15 "Inlining Arg"
-; V127 tmp120 [V127,T114] ( 2, 0 ) byref -> r14 single-def "Inlining Arg"
-; V128 tmp121 [V128,T88] ( 2, 0 ) ubyte -> rcx "Inline return value spill temp"
+; V126 tmp119 [V126,T135] ( 2, 0 ) int -> r14 "Inlining Arg"
+; V127 tmp120 [V127,T111] ( 2, 0 ) byref -> rdi single-def "Inlining Arg"
+; V128 tmp121 [V128,T85] ( 2, 0 ) ubyte -> rcx "Inline return value spill temp"
;* V129 tmp122 [V129 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V130 tmp123 [V130,T154] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V131 tmp124 [V131,T102] ( 3, 0 ) ushort -> rcx "Inlining Arg"
-; V132 tmp125 [V132,T103] ( 3, 0 ) ubyte -> rcx "Inline return value spill temp"
-; V133 tmp126 [V133,T104] ( 3, 0 ) ushort -> rcx "Inlining Arg"
-;* V134 tmp127 [V134,T155] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V135 tmp128 [V135,T105] ( 3, 0 ) ushort -> rax "Inlining Arg"
+;* V130 tmp123 [V130,T151] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V131 tmp124 [V131,T99] ( 3, 0 ) ushort -> rcx "Inlining Arg"
+; V132 tmp125 [V132,T100] ( 3, 0 ) ubyte -> rcx "Inline return value spill temp"
+; V133 tmp126 [V133,T101] ( 3, 0 ) ushort -> rcx "Inlining Arg"
+;* V134 tmp127 [V134,T152] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V135 tmp128 [V135,T102] ( 3, 0 ) ushort -> rax "Inlining Arg"
;* V136 tmp129 [V136 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V137 tmp130 [V137,T15] ( 7, 4.80) ref -> registers class-hnd "Inline return value spill temp" <System.String>
+; V137 tmp130 [V137,T16] ( 7, 4.80) ref -> registers class-hnd "Inline return value spill temp" <System.String>
;* V138 tmp131 [V138 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V139 tmp132 [V139 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V140 tmp133 [V140 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V141 tmp134 [V141 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V142 tmp135 [V142 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V143 tmp136 [V143 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V144 tmp137 [V144,T139] ( 2, 0 ) int -> [rbp-0x5C] spill-single-def "Inlining Arg"
-; V145 tmp138 [V145,T115] ( 2, 0 ) byref -> r15 single-def "Inlining Arg"
-;* V146 tmp139 [V146,T50] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V144 tmp137 [V144,T136] ( 2, 0 ) int -> r14 "Inlining Arg"
+; V145 tmp138 [V145,T112] ( 2, 0 ) byref -> rdi single-def "Inlining Arg"
+;* V146 tmp139 [V146,T51] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V147 tmp140 [V147 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V148 tmp141 [V148 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-; V149 tmp142 [V149,T16] ( 6, 4 ) int -> rax "Inline stloc first use temp"
+; V149 tmp142 [V149,T17] ( 6, 4 ) int -> rcx "Inline stloc first use temp"
;* V150 tmp143 [V150 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V151 tmp144 [V151 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V152 tmp145 [V152 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V153 tmp146 [V153 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V154 tmp147 [V154,T26] ( 2, 3.20) int -> [rbp-0x60] spill-single-def "Inlining Arg"
-; V155 tmp148 [V155,T23] ( 2, 3.20) byref -> r15 single-def "Inlining Arg"
+; V154 tmp147 [V154,T27] ( 2, 3.20) int -> r14 "Inlining Arg"
+; V155 tmp148 [V155,T24] ( 2, 3.20) byref -> rdi single-def "Inlining Arg"
; V156 tmp149 [V156,T09] ( 10, 6.35) int -> r15 "Inline return value spill temp"
;* V157 tmp150 [V157 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
; V158 tmp151 [V158,T03] ( 4, 13.78) int -> rax single-def "Inline stloc first use temp"
; V159 tmp152 [V159,T01] ( 12, 36.71) int -> rcx "Inline stloc first use temp"
; V160 tmp153 [V160,T02] ( 2, 22.84) int -> rcx "dup spill"
;* V161 tmp154 [V161,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V162 tmp155 [V162,T00] ( 3,114.20) ushort -> r8 "Inlining Arg"
-;* V163 tmp156 [V163,T71] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V164 tmp157 [V164,T67] ( 3, 0.90) ushort -> r8 "Inlining Arg"
-; V165 tmp158 [V165,T41] ( 4, 1.60) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
+; V162 tmp155 [V162,T00] ( 3,114.20) ushort -> rdx "Inlining Arg"
+;* V163 tmp156 [V163,T69] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V164 tmp157 [V164,T65] ( 3, 0.90) ushort -> rdx "Inlining Arg"
+; V165 tmp158 [V165,T42] ( 4, 1.60) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
;* V166 tmp159 [V166 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
;* V167 tmp160 [V167 ] ( 0, 0 ) int -> zero-ref
; V168 tmp161 [V168,T58] ( 2, 1.57) int -> rcx
-; V169 tmp162 [V169,T30] ( 4, 3.14) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V169 tmp162 [V169,T30] ( 4, 3.14) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" <System.String>
; V170 tmp163 [V170,T59] ( 2, 1.57) long -> r8 single-def "Inline stloc first use temp"
;* V171 tmp164 [V171 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V172 tmp165 [V172 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -186,71 +186,71 @@
;* V174 tmp167 [V174 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V175 tmp168 [V175,T31] ( 2, 3.14) byref -> rcx single-def "Inlining Arg"
; V176 tmp169 [V176,T32] ( 2, 3.14) byref -> rdx single-def "Inlining Arg"
-; V177 tmp170 [V177,T42] ( 4, 1.60) ref -> rax class-hnd "Inline return value spill temp" <System.String>
...
+14 (+3.55%) : 166160.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
@@ -9,17 +9,17 @@
; 4 inlinees with PGO data; 17 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 23, 11.85) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-; V01 loc0 [V01,T10] ( 3, 1.32) ref -> rdi class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+; V00 arg0 [V00,T00] ( 24, 11.93) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+; V01 loc0 [V01,T09] ( 3, 1.32) ref -> rdi class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T01] ( 2, 4 ) int -> rsi "impAppendStmt"
-; V06 tmp2 [V06,T14] ( 2, 0 ) ref -> rsi class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-; V07 tmp3 [V07,T15] ( 2, 0 ) int -> rdi "impAppendStmt"
-; V08 tmp4 [V08,T09] ( 4, 1.32) ref -> rsi
+; V06 tmp2 [V06,T13] ( 2, 0 ) ref -> rsi class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+; V07 tmp3 [V07,T14] ( 2, 0 ) int -> rdi "impAppendStmt"
+; V08 tmp4 [V08,T08] ( 4, 1.32) ref -> rsi
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-; V10 tmp6 [V10,T02] ( 3, 3.98) int -> rbp "impAppendStmt"
+; V10 tmp6 [V10,T02] ( 3, 3.98) int -> rdi "impAppendStmt"
; V11 tmp7 [V11,T04] ( 3, 2 ) int -> rbp "guarded devirt return temp"
;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -34,15 +34,14 @@
;* V22 tmp18 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp19 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
;* V24 tmp20 [V24 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V25 tmp21 [V25,T13] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V25 tmp21 [V25,T12] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V26 tmp22 [V26,T05] ( 5, 1.99) ref -> r8 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
; V27 tmp23 [V27 ] ( 3, 0.89) ref -> [rsp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-; V28 tmp24 [V28,T11] ( 2, 0.59) ref -> rcx class-hnd exact single-def "Inlining Arg" <<unknown class>>
-; V29 tmp25 [V29,T12] ( 4, 0 ) ref -> registers "field V03._node (fldOffset=0x0)" P-INDEP
+; V28 tmp24 [V28,T10] ( 2, 0.59) ref -> rcx class-hnd exact single-def "Inlining Arg" <<unknown class>>
+; V29 tmp25 [V29,T11] ( 4, 0 ) ref -> registers "field V03._node (fldOffset=0x0)" P-INDEP
;* V30 tmp26 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._node (fldOffset=0x0)" P-INDEP
;* V31 tmp27 [V31 ] ( 0, 0 ) ref -> zero-ref single-def "field V17._node (fldOffset=0x0)" P-INDEP
-; V32 cse0 [V32,T08] ( 3, 1.40) long -> rdi "CSE - conservative"
-; V33 cse1 [V33,T03] ( 3, 2.66) long -> rdi "CSE - aggressive"
+; V32 cse0 [V32,T03] ( 3, 2.66) long -> rdi "CSE - aggressive"
;
; Lcl frame size = 48
@@ -125,7 +124,7 @@ G_M12665_IG07: ; bbWeight=0.66, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
test byte ptr [rbx+0x0E], 1
je G_M12665_IG16
;; size=13 bbWeight=0.66 PerfScore 2.82
-G_M12665_IG08: ; bbWeight=0.15, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M12665_IG08: ; bbWeight=0.15, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
@@ -138,13 +137,13 @@ G_M12665_IG08: ; bbWeight=0.15, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
test eax, eax
- je SHORT G_M12665_IG16
- ;; size=37 bbWeight=0.15 PerfScore 1.79
-G_M12665_IG09: ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+ je G_M12665_IG16
+ ;; size=41 bbWeight=0.15 PerfScore 1.79
+G_M12665_IG09: ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
mov r8, gword ptr [rsp+0x28]
; gcrRegs +[r8]
- jmp SHORT G_M12665_IG17
- ;; size=7 bbWeight=0.08 PerfScore 0.23
+ jmp G_M12665_IG17
+ ;; size=10 bbWeight=0.08 PerfScore 0.23
G_M12665_IG10: ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi rdi r8] +[rbx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia
@@ -170,8 +169,8 @@ G_M12665_IG12: ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov rcx, rbx
; gcrRegs +[rcx]
mov rax, qword ptr [rbx]
- mov rdi, qword ptr [rax+0x68]
- call [rdi+0x20]<unknown method>
+ mov rax, qword ptr [rax+0x68]
+ call [rax+0x20]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rsi, rax
@@ -184,11 +183,11 @@ G_M12665_IG12: ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [rax+0x10]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ebp, eax
+ mov edi, eax
jmp SHORT G_M12665_IG14
;; size=33 bbWeight=0.66 PerfScore 11.26
G_M12665_IG13: ; bbWeight=0.66, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- movzx rbp, word ptr [rbx+0x20]
+ movzx rdi, word ptr [rbx+0x20]
mov r8, gword ptr [rbx+0x30]
; gcrRegs +[r8]
jmp SHORT G_M12665_IG15
@@ -197,15 +196,17 @@ G_M12665_IG14: ; bbWeight=0.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[r8]
mov rcx, rbx
; gcrRegs +[rcx]
- call [rdi+0x28]<unknown method>
+ mov rax, qword ptr [rbx]
+ mov rax, qword ptr [rax+0x68]
+ call [rax+0x28]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov r8, rax
; gcrRegs +[r8]
- ;; size=9 bbWeight=0.08 PerfScore 0.28
+ ;; size=16 bbWeight=0.08 PerfScore 0.60
G_M12665_IG15: ; bbWeight=0.66, gcrefRegs=0148 {rbx rsi r8}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- mov ecx, ebp
+ mov ecx, edi
mov rdx, rsi
; gcrRegs +[rdx]
call [<unknown method>]
@@ -269,7 +270,7 @@ G_M12665_IG22: ; bbWeight=0.34, epilog, nogc, extend
ret
;; size=11 bbWeight=0.34 PerfScore 1.27
-; Total bytes of code 394, prolog size 17, PerfScore 56.81, instruction count 113, allocated bytes for code 394 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 408, prolog size 17, PerfScore 57.13, instruction count 115, allocated bytes for code 408 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
; ============================================================
Unwind Info:
+14 (+3.61%) : 87589.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
@@ -9,17 +9,17 @@
; 3 inlinees with PGO data; 17 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 23, 12.02) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-; V01 loc0 [V01,T10] ( 3, 1.35) ref -> rdi class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+; V00 arg0 [V00,T00] ( 24, 12.33) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+; V01 loc0 [V01,T09] ( 3, 1.35) ref -> rdi class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T02] ( 2, 4 ) int -> rsi "impAppendStmt"
-; V06 tmp2 [V06,T13] ( 2, 0 ) ref -> rsi class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-; V07 tmp3 [V07,T14] ( 2, 0 ) int -> rdi "impAppendStmt"
-; V08 tmp4 [V08,T09] ( 4, 1.35) ref -> rsi
+; V06 tmp2 [V06,T12] ( 2, 0 ) ref -> rsi class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+; V07 tmp3 [V07,T13] ( 2, 0 ) int -> rdi "impAppendStmt"
+; V08 tmp4 [V08,T08] ( 4, 1.35) ref -> rsi
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-; V10 tmp6 [V10,T01] ( 3, 4.04) int -> rbp "impAppendStmt"
+; V10 tmp6 [V10,T01] ( 3, 4.04) int -> rdi "impAppendStmt"
; V11 tmp7 [V11,T06] ( 3, 2 ) int -> rbp "guarded devirt return temp"
;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -34,14 +34,13 @@
;* V22 tmp18 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp19 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
;* V24 tmp20 [V24 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V25 tmp21 [V25,T12] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V25 tmp21 [V25,T11] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V26 tmp22 [V26,T04] ( 5, 2.02) ref -> r8 class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
; V27 tmp23 [V27 ] ( 3, 0.68) ref -> [rsp+0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-; V28 tmp24 [V28,T11] ( 4, 0 ) ref -> registers "field V03._node (fldOffset=0x0)" P-INDEP
+; V28 tmp24 [V28,T10] ( 4, 0 ) ref -> registers "field V03._node (fldOffset=0x0)" P-INDEP
;* V29 tmp25 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._node (fldOffset=0x0)" P-INDEP
;* V30 tmp26 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V17._node (fldOffset=0x0)" P-INDEP
-; V31 cse0 [V31,T08] ( 3, 1.66) long -> rdi "CSE - conservative"
-; V32 cse1 [V32,T03] ( 3, 2.67) long -> rdi "CSE - aggressive"
+; V31 cse0 [V31,T03] ( 3, 2.67) long -> rdi "CSE - aggressive"
;
; Lcl frame size = 48
@@ -124,7 +123,7 @@ G_M12665_IG07: ; bbWeight=0.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
test byte ptr [rbx+0x0E], 1
je G_M12665_IG16
;; size=13 bbWeight=0.67 PerfScore 2.86
-G_M12665_IG08: ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M12665_IG08: ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
@@ -135,13 +134,13 @@ G_M12665_IG08: ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
test eax, eax
- je SHORT G_M12665_IG16
- ;; size=31 bbWeight=0.00 PerfScore 0.01
-G_M12665_IG09: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+ je G_M12665_IG16
+ ;; size=35 bbWeight=0.00 PerfScore 0.01
+G_M12665_IG09: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
mov r8, gword ptr [rsp+0x28]
; gcrRegs +[r8]
- jmp SHORT G_M12665_IG17
- ;; size=7 bbWeight=0.00 PerfScore 0.00
+ jmp G_M12665_IG17
+ ;; size=10 bbWeight=0.00 PerfScore 0.00
G_M12665_IG10: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi rdi r8] +[rbx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia
@@ -167,8 +166,8 @@ G_M12665_IG12: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov rcx, rbx
; gcrRegs +[rcx]
mov rax, qword ptr [rbx]
- mov rdi, qword ptr [rax+0x68]
- call [rdi+0x20]<unknown method>
+ mov rax, qword ptr [rax+0x68]
+ call [rax+0x20]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov rsi, rax
@@ -181,11 +180,11 @@ G_M12665_IG12: ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [rax+0x10]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ebp, eax
+ mov edi, eax
jmp SHORT G_M12665_IG14
;; size=33 bbWeight=0.67 PerfScore 11.44
G_M12665_IG13: ; bbWeight=0.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- movzx rbp, word ptr [rbx+0x20]
+ movzx rdi, word ptr [rbx+0x20]
mov r8, gword ptr [rbx+0x30]
; gcrRegs +[r8]
jmp SHORT G_M12665_IG15
@@ -194,15 +193,17 @@ G_M12665_IG14: ; bbWeight=0.31, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[r8]
mov rcx, rbx
; gcrRegs +[rcx]
- call [rdi+0x28]<unknown method>
+ mov rax, qword ptr [rbx]
+ mov rax, qword ptr [rax+0x68]
+ call [rax+0x28]<unknown method>
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
mov r8, rax
; gcrRegs +[r8]
- ;; size=9 bbWeight=0.31 PerfScore 1.08
+ ;; size=16 bbWeight=0.31 PerfScore 2.32
G_M12665_IG15: ; bbWeight=0.67, gcrefRegs=0148 {rbx rsi r8}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- mov ecx, ebp
+ mov ecx, edi
mov rdx, rsi
; gcrRegs +[rdx]
call [<unknown method>]
@@ -266,7 +267,7 @@ G_M12665_IG22: ; bbWeight=0.33, epilog, nogc, extend
ret
;; size=11 bbWeight=0.33 PerfScore 1.23
-; Total bytes of code 388, prolog size 17, PerfScore 56.16, instruction count 111, allocated bytes for code 388 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 402, prolog size 17, PerfScore 57.39, instruction count 113, allocated bytes for code 402 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
; ============================================================
Unwind Info:
+44 (+3.79%) : 386597.dasm - System.DateTimeFormat:TryFormatOushort:ubyte (Tier1)
@@ -9,129 +9,128 @@
; 11 inlinees with PGO data; 32 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00 ] ( 7, 5 ) struct ( 8) [rsp+0xA0] do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+; V00 arg0 [V00 ] ( 7, 5 ) struct ( 8) [rsp+0x90] do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.TimeSpan>
; V02 arg2 [V02,T04] ( 4, 4 ) byref -> rbx ld-addr-op single-def
; V03 arg3 [V03,T13] ( 4, 2 ) byref -> rdi single-def
-; V04 loc0 [V04,T27] ( 6, 1 ) int -> rbp
+; V04 loc0 [V04,T26] ( 6, 1 ) int -> rbp
; V05 loc1 [V05,T12] ( 6, 4 ) int -> r14
-; V06 loc2 [V06 ] ( 2, 0 ) int -> [rsp+0x50] do-not-enreg[X] addr-exposed ld-addr-op
-; V07 loc3 [V07 ] ( 2, 0 ) int -> [rsp+0x48] do-not-enreg[X] addr-exposed ld-addr-op
-; V08 loc4 [V08 ] ( 2, 0 ) int -> [rsp+0x40] do-not-enreg[X] addr-exposed ld-addr-op
-; V09 loc5 [V09,T34] ( 3, 0 ) int -> r13 ld-addr-op
-; V10 loc6 [V10,T35] ( 3, 0 ) int -> r15 ld-addr-op
-; V11 loc7 [V11,T36] ( 3, 0 ) int -> rbp ld-addr-op
-; V12 loc8 [V12,T48] ( 2, 0 ) int -> rdi ld-addr-op
+; V06 loc2 [V06 ] ( 2, 0 ) int -> [rsp+0x40] do-not-enreg[X] addr-exposed ld-addr-op
+; V07 loc3 [V07 ] ( 2, 0 ) int -> [rsp+0x38] do-not-enreg[X] addr-exposed ld-addr-op
+; V08 loc4 [V08 ] ( 2, 0 ) int -> [rsp+0x30] do-not-enreg[X] addr-exposed ld-addr-op
+; V09 loc5 [V09,T33] ( 3, 0 ) int -> r13 ld-addr-op
+; V10 loc6 [V10,T34] ( 3, 0 ) int -> r15 ld-addr-op
+; V11 loc7 [V11,T35] ( 3, 0 ) int -> rbp ld-addr-op
+; V12 loc8 [V12,T47] ( 2, 0 ) int -> rdi ld-addr-op
; V13 loc9 [V13,T11] ( 19, 4 ) long -> r12
-; V14 loc10 [V14 ] ( 2, 1 ) byref -> [rsp+0x38] must-init pinned
+; V14 loc10 [V14 ] ( 2, 1 ) byref -> [rsp+0x28] must-init pinned
; V15 loc11 [V15,T09] ( 7, 5 ) int -> r14
-; V16 loc12 [V16,T20] ( 3, 2 ) ushort -> r8
+; V16 loc12 [V16,T19] ( 3, 2 ) ushort -> r8
;* V17 loc13 [V17 ] ( 0, 0 ) int -> zero-ref
;* V18 loc14 [V18 ] ( 0, 0 ) int -> zero-ref
; V19 OutArgs [V19 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V20 tmp1 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[int,int]>
; V21 tmp2 [V21,T18] ( 3, 2.40) long -> rcx "Inline stloc first use temp"
-; V22 tmp3 [V22,T21] ( 3, 2 ) int -> r14 "Inline stloc first use temp"
+; V22 tmp3 [V22,T20] ( 3, 2 ) int -> r14 "Inline stloc first use temp"
; V23 tmp4 [V23,T06] ( 3, 6 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
; V24 tmp5 [V24,T15] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
; V25 tmp6 [V25,T10] ( 5, 5 ) ref -> rax
;* V26 tmp7 [V26 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
-; V27 tmp8 [V27,T37] ( 3, 0 ) long -> rdi "Inline stloc first use temp"
-; V28 tmp9 [V28,T28] ( 4, 0 ) long -> rbp "Inline stloc first use temp"
-; V29 tmp10 [V29,T29] ( 4, 0 ) long -> r15 "Inline stloc first use temp"
-; V30 tmp11 [V30,T30] ( 4, 0 ) long -> rdx "Inline stloc first use temp"
+; V27 tmp8 [V27,T36] ( 3, 0 ) long -> rdi "Inline stloc first use temp"
+; V28 tmp9 [V28,T27] ( 4, 0 ) long -> rbp "Inline stloc first use temp"
+; V29 tmp10 [V29,T28] ( 4, 0 ) long -> r15 "Inline stloc first use temp"
+; V30 tmp11 [V30,T29] ( 4, 0 ) long -> rdx "Inline stloc first use temp"
;* V31 tmp12 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V32 tmp13 [V32 ] ( 0, 0 ) int -> zero-ref
-; V33 tmp14 [V33,T31] ( 4, 0 ) int -> [rsp+0x34] spill-single-def "Inlining Arg"
+; V33 tmp14 [V33,T30] ( 4, 0 ) int -> [rsp+0x24] spill-single-def "Inlining Arg"
;* V34 tmp15 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" <System.ValueTuple`2[uint,uint]>
;* V35 tmp16 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V36 tmp17 [V36,T42] ( 2, 0 ) ref -> r8 single-def
-; V37 tmp18 [V37,T32] ( 3, 0 ) byref -> r8 single-def "Inline stloc first use temp"
-; V38 tmp19 [V38,T38] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V36 tmp17 [V36,T41] ( 2, 0 ) ref -> rdx single-def
+; V37 tmp18 [V37,T31] ( 3, 0 ) byref -> rdx single-def "Inline stloc first use temp"
+; V38 tmp19 [V38,T37] ( 3, 0 ) int -> rax "Inline stloc first use temp"
;* V39 tmp20 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
;* V40 tmp21 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V41 tmp22 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp23 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V43 tmp24 [V43 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V44 tmp25 [V44 ] ( 0, 0 ) int -> zero-ref
-; V45 tmp26 [V45,T39] ( 3, 0 ) int -> rbx "Inlining Arg"
+; V45 tmp26 [V45,T38] ( 3, 0 ) int -> rbx "Inlining Arg"
;* V46 tmp27 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V47 tmp28 [V47 ] ( 0, 0 ) long -> zero-ref
-; V48 tmp29 [V48,T49] ( 2, 0 ) long -> rcx
-; V49 tmp30 [V49,T43] ( 2, 0 ) ref -> rdx single-def
+; V48 tmp29 [V48,T48] ( 2, 0 ) long -> rcx
+; V49 tmp30 [V49,T42] ( 2, 0 ) ref -> rax single-def
;* V50 tmp31 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V51 tmp32 [V51 ] ( 0, 0 ) int -> zero-ref
-; V52 tmp33 [V52,T40] ( 3, 0 ) int -> rbx "Inlining Arg"
+; V52 tmp33 [V52,T39] ( 3, 0 ) int -> rbx "Inlining Arg"
;* V53 tmp34 [V53 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V54 tmp35 [V54 ] ( 0, 0 ) long -> zero-ref
-; V55 tmp36 [V55,T50] ( 2, 0 ) long -> rcx
-; V56 tmp37 [V56,T44] ( 2, 0 ) ref -> rdx single-def
+; V55 tmp36 [V55,T49] ( 2, 0 ) long -> rcx
+; V56 tmp37 [V56,T43] ( 2, 0 ) ref -> rax single-def
;* V57 tmp38 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V58 tmp39 [V58 ] ( 0, 0 ) int -> zero-ref
;* V59 tmp40 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V60 tmp41 [V60 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V61 tmp42 [V61 ] ( 0, 0 ) long -> zero-ref
-; V62 tmp43 [V62,T51] ( 2, 0 ) long -> rcx
-; V63 tmp44 [V63,T45] ( 2, 0 ) ref -> rax single-def
+; V62 tmp43 [V62,T50] ( 2, 0 ) long -> rcx
+; V63 tmp44 [V63,T44] ( 2, 0 ) ref -> rax single-def
;* V64 tmp45 [V64 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V65 tmp46 [V65 ] ( 0, 0 ) int -> zero-ref
;* V66 tmp47 [V66 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V67 tmp48 [V67 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V68 tmp49 [V68 ] ( 0, 0 ) long -> zero-ref
-; V69 tmp50 [V69,T52] ( 2, 0 ) long -> rcx
-; V70 tmp51 [V70,T46] ( 2, 0 ) ref -> rax single-def
+; V69 tmp50 [V69,T51] ( 2, 0 ) long -> rcx
+; V70 tmp51 [V70,T45] ( 2, 0 ) ref -> rax single-def
;* V71 tmp52 [V71 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V72 tmp53 [V72 ] ( 0, 0 ) int -> zero-ref
;* V73 tmp54 [V73 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V74 tmp55 [V74 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V75 tmp56 [V75 ] ( 0, 0 ) long -> zero-ref
-; V76 tmp57 [V76,T53] ( 2, 0 ) long -> rcx
-; V77 tmp58 [V77,T47] ( 2, 0 ) ref -> rax single-def
+; V76 tmp57 [V76,T52] ( 2, 0 ) long -> rcx
+; V77 tmp58 [V77,T46] ( 2, 0 ) ref -> rax single-def
;* V78 tmp59 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V79 tmp60 [V79,T02] ( 5, 14 ) long -> rbp "Inlining Arg"
-; V80 tmp61 [V80,T01] ( 8, 26 ) long -> r15 "Inline stloc first use temp"
+; V79 tmp60 [V79,T02] ( 5, 14 ) long -> rbx "Inlining Arg"
+; V80 tmp61 [V80,T01] ( 8, 26 ) long -> rbp "Inline stloc first use temp"
; V81 tmp62 [V81,T00] ( 7, 52 ) int -> rdi "Inlining Arg"
; V82 tmp63 [V82,T03] ( 2, 12 ) int -> rcx "Inline stloc first use temp"
;* V83 tmp64 [V83 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V84 tmp65 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V85 tmp66 [V85,T14] ( 4, 4 ) int -> rsi "Inline stloc first use temp"
+; V85 tmp66 [V85,T14] ( 4, 4 ) int -> rbx "Inline stloc first use temp"
;* V86 tmp67 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
;* V87 tmp68 [V87 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V88 tmp69 [V88 ] ( 0, 0 ) int -> zero-ref
;* V89 tmp70 [V89 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V90 tmp71 [V90 ] ( 0, 0 ) long -> zero-ref
-; V91 tmp72 [V91,T24] ( 2, 2 ) long -> rcx
-; V92 tmp73 [V92,T22] ( 2, 2 ) ref -> rax single-def
+; V91 tmp72 [V91,T23] ( 2, 2 ) long -> rcx
+; V92 tmp73 [V92,T21] ( 2, 2 ) ref -> rax single-def
;* V93 tmp74 [V93 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V94 tmp75 [V94 ] ( 0, 0 ) int -> zero-ref
;* V95 tmp76 [V95 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V96 tmp77 [V96 ] ( 0, 0 ) long -> zero-ref
-; V97 tmp78 [V97,T25] ( 2, 2 ) long -> r12
-; V98 tmp79 [V98,T23] ( 2, 2 ) ref -> rbx single-def
+; V97 tmp78 [V97,T24] ( 2, 2 ) long -> r12
+; V98 tmp79 [V98,T22] ( 2, 2 ) ref -> rax single-def
;* V99 tmp80 [V99 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V100 tmp81 [V100 ] ( 7, 5 ) long -> [rsp+0xA0] do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
+; V100 tmp81 [V100 ] ( 7, 5 ) long -> [rsp+0x90] do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
; V101 tmp82 [V101,T05] ( 4, 4 ) long -> rsi single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
;* V102 tmp83 [V102 ] ( 0, 0 ) byref -> zero-ref "field V02._reference (fldOffset=0x0)" P-INDEP
;* V103 tmp84 [V103 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
;* V104 tmp85 [V104 ] ( 0, 0 ) int -> zero-ref "field V20.Item1 (fldOffset=0x0)" P-INDEP
;* V105 tmp86 [V105 ] ( 0, 0 ) int -> zero-ref "field V20.Item2 (fldOffset=0x4)" P-INDEP
-; V106 tmp87 [V106,T26] ( 2, 2 ) long -> rdx "field V26._dateData (fldOffset=0x0)" P-INDEP
-; V107 tmp88 [V107,T33] ( 3, 0 ) byref -> rbx single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+; V106 tmp87 [V106,T25] ( 2, 2 ) long -> rdx "field V26._dateData (fldOffset=0x0)" P-INDEP
+; V107 tmp88 [V107,T32] ( 3, 0 ) byref -> rbx single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V108 tmp89 [V108 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V109 tmp90 [V109 ] ( 0, 0 ) int -> zero-ref "field V34.Item1 (fldOffset=0x0)" P-INDEP
;* V110 tmp91 [V110 ] ( 0, 0 ) int -> zero-ref "field V34.Item2 (fldOffset=0x4)" P-INDEP
;* V111 tmp92 [V111 ] ( 0, 0 ) int -> zero-ref "field V39.Item1 (fldOffset=0x0)" P-INDEP
-; V112 tmp93 [V112,T54] ( 2, 0 ) int -> rcx "field V39.Item2 (fldOffset=0x4)" P-INDEP
+; V112 tmp93 [V112,T53] ( 2, 0 ) int -> rcx "field V39.Item2 (fldOffset=0x4)" P-INDEP
;* V113 tmp94 [V113 ] ( 0, 0 ) int -> zero-ref "field V86.Item1 (fldOffset=0x0)" P-INDEP
; V114 tmp95 [V114,T16] ( 3, 3 ) int -> r14 "field V86.Item2 (fldOffset=0x4)" P-INDEP
;* V115 tmp96 [V115 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Span`1[ushort]>
-; V116 tmp97 [V116,T41] ( 3, 0 ) long -> rbx "Cast away GC"
-; V117 cse0 [V117,T19] ( 9, 2 ) ref -> [rsp+0x28] spill-single-def "CSE - moderate"
-; V118 cse1 [V118,T17] ( 3, 3 ) long -> rsi "CSE - aggressive"
-; V119 rat0 [V119,T07] ( 3, 6 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
-; V120 rat1 [V120,T08] ( 3, 6 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
+; V116 tmp97 [V116,T40] ( 3, 0 ) long -> rbx "Cast away GC"
+; V117 cse0 [V117,T17] ( 3, 3 ) long -> rsi "CSE - aggressive"
+; V118 rat0 [V118,T07] ( 3, 6 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
+; V119 rat1 [V119,T08] ( 3, 6 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 88
+; Lcl frame size = 72
G_M27030_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push r15
@@ -142,10 +141,10 @@ G_M27030_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rsi
push rbp
push rbx
- sub rsp, 88
+ sub rsp, 72
xor eax, eax
- mov qword ptr [rsp+0x38], rax
- mov qword ptr [rsp+0xA0], rcx
+ mov qword ptr [rsp+0x28], rax
+ mov qword ptr [rsp+0x90], rcx
mov rsi, rdx
mov rbx, r8
; byrRegs +[rbx]
@@ -165,7 +164,7 @@ G_M27030_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
;; size=10 bbWeight=0 PerfScore 0.00
G_M27030_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
mov rcx, 0xD1FFAB1E
- and rcx, qword ptr [rsp+0xA0]
+ and rcx, qword ptr [rsp+0x90]
je SHORT G_M27030_IG06
;; size=20 bbWeight=1 PerfScore 3.25
G_M27030_IG05: ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
@@ -202,7 +201,7 @@ G_M27030_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
; gcr arg pop 0
;; size=28 bbWeight=1 PerfScore 8.50
G_M27030_IG10: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0088 {rbx rdi}, byref
- mov rdx, qword ptr [rsp+0xA0]
+ mov rdx, qword ptr [rsp+0x90]
cmp byte ptr [rax], al
mov r9, gword ptr [rsi]
; gcrRegs +[r9]
@@ -215,10 +214,8 @@ G_M27030_IG10: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0088 {rbx rd
mov rsi, rax
jmp G_M27030_IG03
;; size=36 bbWeight=1 PerfScore 11.75
-G_M27030_IG11: ; bbWeight=6, gcVars=0000000000080000 {V117}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx]
+G_M27030_IG11: ; bbWeight=6, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[rbx rdi]
- ; GC ptr vars +{V117}
lea ecx, [rdi+0x30]
mov eax, 0xD1FFAB1E
mov edi, edi
@@ -227,37 +224,33 @@ G_M27030_IG11: ; bbWeight=6, gcVars=0000000000080000 {V117}, gcrefRegs=00
lea eax, [rdi+4*rdi]
add eax, eax
sub ecx, eax
- mov word ptr [r15], cx
- add r15, -2
- cmp r15, rbp
+ mov word ptr [rbp], cx
+ add rbp, -2
+ cmp rbp, rbx
ja SHORT G_M27030_IG11
;; size=38 bbWeight=6 PerfScore 42.00
-G_M27030_IG12: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M27030_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
cmp edi, 10
setb cl
call [<unknown method>]
; gcr arg pop 0
xor ecx, ecx
- cmp r15, rbp
+ cmp rbp, rbx
sete cl
call [<unknown method>]
; gcr arg pop 0
add edi, 48
- mov word ptr [r15], di
+ mov word ptr [rbp], di
...
librariestestsnotieredcompilation.run.windows.x64.Release.mch
-4 (-3.60%) : 85488.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
@@ -11,21 +11,19 @@
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.ComponentModel.Composition.CompositionExceptionTests>
;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.ComponentModel.Composition.CompositionException>
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T00] ( 5, 10 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
+; V03 tmp1 [V03,T00] ( 6, 12 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
-; V07 tmp5 [V07,T02] ( 2, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
+; V07 tmp5 [V07,T01] ( 2, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
;* V08 tmp6 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
-; V09 cse0 [V09,T01] ( 3, 3 ) ref -> rsi "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 32
G_M14507_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push rsi
push rbx
- sub rsp, 40
- ;; size=6 bbWeight=1 PerfScore 2.25
+ sub rsp, 32
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M14507_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.ComponentModel.Composition.CompositionException
call CORINFO_HELP_NEWSFAST
@@ -54,27 +52,24 @@ G_M14507_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs -[rdx r8]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E ; const ptr
- mov rsi, gword ptr [rcx]
- ; gcrRegs +[rsi]
- mov rdx, rsi
+ mov rdx, gword ptr [rcx]
; gcrRegs +[rdx]
lea rcx, bword ptr [rbx+0x78]
; byrRegs +[rcx]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rdx rbx]
+ ; gcrRegs -[rdx]
; byrRegs -[rcx]
- mov rcx, rsi
+ mov rcx, gword ptr [rbx+0x78]
; gcrRegs +[rcx]
- ;; size=60 bbWeight=1 PerfScore 9.00
+ ;; size=58 bbWeight=1 PerfScore 10.50
G_M14507_IG04: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
+ add rsp, 32
pop rbx
- pop rsi
tail.jmp [<unknown method>]
; gcr arg pop 0
- ;; size=12 bbWeight=1 PerfScore 3.25
+ ;; size=11 bbWeight=1 PerfScore 2.75
-; Total bytes of code 111, prolog size 6, PerfScore 20.50, instruction count 25, allocated bytes for code 111 (MethodHash=8581c754) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
+Total bytes of code 107, prolog size 5, PerfScore 20.50, instruction count 22, allocated bytes for code 107 (MethodHash=8581c754) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
; ============================================================
Unwind Info:
@@ -82,11 +77,10 @@ Unwind Info:
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Flags : 0x00
- SizeOfProlog : 0x06
- CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05
+ CountOfUnwindCodes: 2
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28
- CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
- CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
-12 (-2.85%) : 222650.dasm - System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
@@ -11,25 +11,24 @@
;* V00 loc0 [V00 ] ( 0, 0 ) long -> zero-ref single-def
;* V01 loc1 [V01 ] ( 0, 0 ) long -> zero-ref single-def
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1 [V03,T10] ( 0, 0 ) double -> zero-ref "Inline return value spill temp"
-;* V04 tmp2 [V04,T11] ( 0, 0 ) double -> zero-ref single-def "Inline stloc first use temp"
+;* V03 tmp1 [V03,T09] ( 0, 0 ) double -> zero-ref "Inline return value spill temp"
+;* V04 tmp2 [V04,T10] ( 0, 0 ) double -> zero-ref single-def "Inline stloc first use temp"
;* V05 tmp3 [V05 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
; V06 tmp4 [V06,T04] ( 3, 6.11) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[double]>
;* V07 tmp5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
; V08 tmp6 [V08,T06] ( 3, 3.06) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
; V09 tmp7 [V09,T00] ( 5, 10.18) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V10 tmp8 [V10,T02] ( 4, 8.15) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V11 tmp9 [V11,T12] ( 0, 0 ) double -> zero-ref "Inline return value spill temp"
-;* V12 tmp10 [V12,T13] ( 0, 0 ) double -> zero-ref single-def "Inline stloc first use temp"
+;* V11 tmp9 [V11,T11] ( 0, 0 ) double -> zero-ref "Inline return value spill temp"
+;* V12 tmp10 [V12,T12] ( 0, 0 ) double -> zero-ref single-def "Inline stloc first use temp"
;* V13 tmp11 [V13 ] ( 0, 0 ) double -> zero-ref "Inlining Arg"
; V14 tmp12 [V14,T05] ( 3, 6.11) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[double]>
;* V15 tmp13 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
; V16 tmp14 [V16,T07] ( 3, 3.06) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
; V17 tmp15 [V17,T01] ( 5, 10.18) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V18 tmp16 [V18,T03] ( 4, 8.15) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V19 cse0 [V19,T09] ( 2, 2.04) double -> [rsp+0x20] spill-single-def "CSE - moderate"
-;* V20 cse1 [V20,T14] ( 0, 0 ) double -> zero-ref "CSE - aggressive"
-; V21 cse2 [V21,T08] ( 3, 3.06) long -> rbx "CSE - aggressive"
+;* V19 cse0 [V19,T13] ( 0, 0 ) double -> zero-ref "CSE - aggressive"
+; V20 cse1 [V20,T08] ( 3, 3.06) long -> rbx "CSE - aggressive"
;
; Lcl frame size = 40
@@ -42,8 +41,6 @@ G_M54943_IG01: ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
vzeroupper
;; size=11 bbWeight=1.02 PerfScore 5.35
G_M54943_IG02: ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- vmovsd xmm0, qword ptr [reloc @RWD00]
- vmovsd qword ptr [rsp+0x20], xmm0
mov rbx, 0xD1FFAB1E ; Xunit.Sdk.AssertEqualityComparer`1[double]
mov rcx, rbx
call CORINFO_HELP_NEWSFAST
@@ -113,7 +110,7 @@ G_M54943_IG02: ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx rdi]
; byrRegs -[rcx]
- vmovsd xmm0, qword ptr [rsp+0x20]
+ vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD00]
mov r8, rsi
; gcrRegs +[r8]
@@ -159,8 +156,6 @@ G_M54943_IG02: ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- ;; size=322 bbWeight=1.02 PerfScore 47.61
-G_M54943_IG03: ; bbWeight=1.02, extend
call [<unknown method>]
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
@@ -168,6 +163,8 @@ G_M54943_IG03: ; bbWeight=1.02, extend
; byrRegs +[rcx]
mov rdx, rdi
; gcrRegs +[rdx]
+ ;; size=323 bbWeight=1.02 PerfScore 47.36
+G_M54943_IG03: ; bbWeight=1.02, extend
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx rdi]
; byrRegs -[rcx]
@@ -194,7 +191,7 @@ G_M54943_IG03: ; bbWeight=1.02, extend
vmovsd xmm1, qword ptr [reloc @RWD08]
mov r8, rbx
; gcrRegs +[r8]
- ;; size=74 bbWeight=1.02 PerfScore 18.33
+ ;; size=61 bbWeight=1.02 PerfScore 14.51
G_M54943_IG04: ; bbWeight=1.02, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -208,7 +205,7 @@ RWD00 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD08 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 421, prolog size 11, PerfScore 75.62, instruction count 90, allocated bytes for code 421 (MethodHash=9e7c2960) for method System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
+Total bytes of code 409, prolog size 11, PerfScore 71.54, instruction count 88, allocated bytes for code 409 (MethodHash=9e7c2960) for method System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
; ============================================================
Unwind Info:
-8 (-1.79%) : 178999.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
@@ -16,7 +16,7 @@
; V05 tmp1 [V05,T03] ( 2, 4 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.XslCompiledTransform>
; V06 tmp2 [V06,T00] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlReaderSettings>
; V07 tmp3 [V07,T14] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V08 tmp4 [V08,T13] ( 3, 0 ) ref -> rsi class-hnd exact single-def "dup spill" <<unknown class>>
+; V08 tmp4 [V08,T13] ( 3, 0 ) ref -> rax class-hnd exact single-def "dup spill" <<unknown class>>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref
;* V10 tmp6 [V10 ] ( 0, 0 ) ref -> zero-ref
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref
@@ -37,11 +37,10 @@
; V26 tmp22 [V26,T04] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
; V27 tmp23 [V27,T05] ( 2, 4 ) byref -> rdx single-def "Inlining Arg"
;* V28 tmp24 [V28 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V29 tmp25 [V29,T17] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V29 tmp25 [V29,T16] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V30 tmp26 [V30,T15] ( 2, 0 ) ref -> rcx class-hnd "Inlining Arg" <System.Xml.XmlReaderSettings>
; V31 PSPSym [V31,T11] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[V] "PSPSym"
-; V32 cse0 [V32,T16] ( 2, 0 ) ref -> rdx "CSE - moderate"
-; V33 cse1 [V33,T09] ( 2, 2 ) ref -> rsi "CSE - aggressive"
+; V32 cse0 [V32,T09] ( 2, 2 ) ref -> rsi "CSE - aggressive"
;
; Lcl frame size = 48
@@ -210,19 +209,12 @@ G_M40434_IG10: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
call CORINFO_HELP_NEWARR_1_OBJ
; gcrRegs +[rax]
; gcr arg pop 0
- mov rsi, rax
- ; gcrRegs +[rsi]
- lea rcx, bword ptr [rsi+0x10]
- ; byrRegs +[rcx]
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov gword ptr [rsp+0x20], rsi
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
+ mov gword ptr [rax+0x10], rcx
+ mov gword ptr [rsp+0x20], rax
; gcr arg write
mov rcx, gword ptr [rbp+0x10]
- ; gcrRegs +[rcx]
mov rdx, rbx
; gcrRegs +[rdx]
mov r8, 0xD1FFAB1E
@@ -231,10 +223,10 @@ G_M40434_IG10: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcrRegs +[r9]
; GC ptr vars -{V00 V01}
call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rsi r8-r9]
+ ; gcrRegs -[rax rcx rdx rbx r8-r9]
; gcr arg pop 0
lea rax, G_M40434_IG08
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M40434_IG11: ; bbWeight=0, funclet epilog, nogc, extend
add rsp, 48
pop rbx
@@ -243,7 +235,7 @@ G_M40434_IG11: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 446, prolog size 20, PerfScore 34.50, instruction count 103, allocated bytes for code 446 (MethodHash=6790620d) for method System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
+Total bytes of code 438, prolog size 20, PerfScore 34.50, instruction count 101, allocated bytes for code 438 (MethodHash=6790620d) for method System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
; ============================================================
Unwind Info:
+7 (+0.66%) : 158215.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerCancellationTest+<>cDisplayClass10+<<PostAsyncCancelDuringRequestContentSend_TaskCanceledQuickly>b1>d:MoveNext():this (FullOpts)
@@ -23,10 +23,10 @@
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
; V13 tmp5 [V13,T06] ( 4, 4 ) ref -> rax
; V14 tmp6 [V14,T01] ( 5, 10 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V15 tmp7 [V15,T30] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V15 tmp7 [V15,T29] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
; V16 tmp8 [V16 ] ( 2, 0 ) struct (40) [rbp-0x80] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V17 tmp9 [V17,T31] ( 2, 0 ) ref -> rsi class-hnd single-def "impAppendStmt" <<unknown class>>
-; V18 tmp10 [V18,T32] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V17 tmp9 [V17,T30] ( 2, 0 ) ref -> rsi class-hnd single-def "impAppendStmt" <<unknown class>>
+; V18 tmp10 [V18,T31] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
; V19 tmp11 [V19,T04] ( 3, 6 ) ref -> rax class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
;* V20 tmp12 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
;* V21 tmp13 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -40,14 +40,14 @@
;* V29 tmp21 [V29 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V30 tmp22 [V30,T27] ( 4, 0 ) int -> rdi "Inlining Arg"
;* V31 tmp23 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V32 tmp24 [V32,T29] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V33 tmp25 [V33,T33] ( 2, 0 ) byref -> r14 single-def "Inlining Arg"
+; V32 tmp24 [V32,T28] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V33 tmp25 [V33,T32] ( 2, 0 ) byref -> r14 single-def "Inlining Arg"
;* V34 tmp26 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp27 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V36 tmp28 [V36,T37] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V36 tmp28 [V36,T36] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V37 tmp29 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V38 tmp30 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V39 tmp31 [V39,T34] ( 2, 0 ) byref -> rcx single-def "Inlining Arg"
+; V39 tmp31 [V39,T33] ( 2, 0 ) byref -> rcx single-def "Inlining Arg"
; V40 tmp32 [V40,T02] ( 4, 6.00) byref -> rcx single-def "Inlining Arg"
;* V41 tmp33 [V41 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
; V42 tmp34 [V42,T14] ( 12, 0.06) ref -> rbx class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
@@ -75,12 +75,11 @@
;* V64 tmp56 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP
;* V65 tmp57 [V65 ] ( 0, 0 ) int -> zero-ref single-def "field V37._length (fldOffset=0x8)" P-INDEP
; V66 tmp58 [V66,T09] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
-; V67 tmp59 [V67,T35] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V68 tmp60 [V68,T36] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V67 tmp59 [V67,T34] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V68 tmp60 [V68,T35] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V69 PSPSym [V69,T13] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[V] "PSPSym"
; V70 cse0 [V70,T21] ( 3, 0.01) int -> rdx "CSE - conservative"
; V71 cse1 [V71,T20] ( 3, 0.01) ref -> rsi "CSE - conservative"
-; V72 cse2 [V72,T28] ( 3, 0 ) ref -> rdx "CSE - conservative"
;
; Lcl frame size = 168
@@ -456,15 +455,15 @@ G_M41068_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
mov r15d, dword ptr [rbp-0x38]
sub r15d, edi
jns SHORT G_M41068_IG28
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- mov rcx, rdx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
; byrRegs -[rcx]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M41068_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, byref, isz
cmp r15d, 18
jb SHORT G_M41068_IG29
@@ -568,7 +567,7 @@ G_M41068_IG34: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1063, prolog size 62, PerfScore 92.37, instruction count 268, allocated bytes for code 1063 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
+Total bytes of code 1070, prolog size 62, PerfScore 92.37, instruction count 268, allocated bytes for code 1070 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:
+7 (+0.99%) : 258261.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTestsDefault+PropertyNameTestsContextDefault:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
@@ -15,7 +15,7 @@
; V04 loc1 [V04,T02] ( 4, 12 ) ref -> rdi class-hnd exact <System.String>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-; V07 tmp2 [V07,T29] ( 2, 0 ) int -> rcx
+; V07 tmp2 [V07,T28] ( 2, 0 ) int -> rcx
; V08 tmp3 [V08,T26] ( 3, 0 ) ref -> rdi
; V09 tmp4 [V09,T27] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -72,8 +72,7 @@
; V61 PSPSym [V61,T23] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"
; V62 cse0 [V62,T19] ( 4, 2 ) int -> rcx "CSE - moderate"
; V63 cse1 [V63,T20] ( 4, 2 ) int -> rcx "CSE - moderate"
-; V64 cse2 [V64,T28] ( 3, 0 ) ref -> rdx "CSE - moderate"
-; V65 cse3 [V65,T13] ( 3, 5 ) long -> rsi "CSE - moderate"
+; V64 cse2 [V64,T13] ( 3, 5 ) long -> rsi "CSE - moderate"
;
; Lcl frame size = 96
@@ -279,14 +278,14 @@ G_M32222_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sete cl
test cl, cl
jne SHORT G_M32222_IG20
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M32222_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbp-0x24], -1
je SHORT G_M32222_IG21
@@ -433,7 +432,7 @@ G_M32222_IG33: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 705, prolog size 42, PerfScore 219.46, instruction count 196, allocated bytes for code 705 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
+Total bytes of code 712, prolog size 42, PerfScore 219.46, instruction count 196, allocated bytes for code 712 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
; ============================================================
Unwind Info:
+28 (+2.54%) : 106899.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
@@ -20,56 +20,56 @@
; V09 loc6 [V09,T03] ( 7, 17 ) int -> r14
; V10 loc7 [V10,T08] ( 3, 12 ) ref -> r8 class-hnd <System.Xml.XmlDictionaryString>
; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T24] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-; V13 tmp2 [V13,T25] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V12 tmp1 [V12,T23] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V13 tmp2 [V13,T24] ( 3, 0 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V16 tmp5 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V17 tmp6 [V17,T20] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V17 tmp6 [V17,T19] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V18 tmp7 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V19 tmp8 [V19,T26] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V20 tmp9 [V20,T30] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V19 tmp8 [V19,T25] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V20 tmp9 [V20,T29] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V21 tmp10 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp11 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V23 tmp12 [V23,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp12 [V23,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp13 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V25 tmp14 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V26 tmp15 [V26,T31] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V26 tmp15 [V26,T30] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V28 tmp17 [V28,T21] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V28 tmp17 [V28,T20] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V30 tmp19 [V30,T27] ( 3, 0 ) int -> r15 "Inlining Arg"
-; V31 tmp20 [V31,T32] ( 2, 0 ) byref -> rbp "Inlining Arg"
+; V30 tmp19 [V30,T26] ( 3, 0 ) int -> r15 "Inlining Arg"
+; V31 tmp20 [V31,T31] ( 2, 0 ) byref -> rbp "Inlining Arg"
;* V32 tmp21 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V33 tmp22 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V34 tmp23 [V34,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V34 tmp23 [V34,T40] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V37 tmp26 [V37,T33] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V37 tmp26 [V37,T32] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V38 tmp27 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp30 [V41,T22] ( 4, 0 ) int -> rcx "Inlining Arg"
+; V41 tmp30 [V41,T21] ( 4, 0 ) int -> rcx "Inlining Arg"
;* V42 tmp31 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp32 [V43,T28] ( 3, 0 ) int -> rsi "Inlining Arg"
-; V44 tmp33 [V44,T34] ( 2, 0 ) byref -> rbx "Inlining Arg"
+; V43 tmp32 [V43,T27] ( 3, 0 ) int -> rsi "Inlining Arg"
+; V44 tmp33 [V44,T33] ( 2, 0 ) byref -> rbx "Inlining Arg"
;* V45 tmp34 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp35 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V47 tmp36 [V47,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V47 tmp36 [V47,T41] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp38 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V50 tmp39 [V50,T35] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V50 tmp39 [V50,T34] ( 2, 0 ) byref -> rcx "Inlining Arg"
;* V51 tmp40 [V51 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V52 tmp41 [V52,T23] ( 4, 0 ) int -> rbx "Inlining Arg"
+; V52 tmp41 [V52,T22] ( 4, 0 ) int -> rbx "Inlining Arg"
;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V54 tmp43 [V54,T29] ( 3, 0 ) int -> rdi "Inlining Arg"
-; V55 tmp44 [V55,T36] ( 2, 0 ) byref -> rsi "Inlining Arg"
+; V54 tmp43 [V54,T28] ( 3, 0 ) int -> rdi "Inlining Arg"
+; V55 tmp44 [V55,T35] ( 2, 0 ) byref -> rsi "Inlining Arg"
;* V56 tmp45 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V58 tmp47 [V58,T43] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V58 tmp47 [V58,T42] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V59 tmp48 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V60 tmp49 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V61 tmp50 [V61,T37] ( 2, 0 ) byref -> rcx "Inlining Arg"
+; V61 tmp50 [V61,T36] ( 2, 0 ) byref -> rcx "Inlining Arg"
; V62 tmp51 [V62,T11] ( 3, 8 ) ubyte -> rdi "Inline return value spill temp"
; V63 tmp52 [V63,T06] ( 4, 12 ) int -> r13 "Inline stloc first use temp"
; V64 tmp53 [V64,T00] ( 6, 25.24) ref -> r15 class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
;* V95 tmp84 [V95 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
;* V96 tmp85 [V96 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
; V97 tmp86 [V97,T09] ( 3, 12 ) ref -> r8 "arr expr"
-; V98 tmp87 [V98,T38] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V99 tmp88 [V99,T39] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V98 tmp87 [V98,T37] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V99 tmp88 [V99,T38] ( 2, 0 ) ref -> rdx "argument with side effect"
; V100 cse0 [V100,T17] ( 3, 3 ) ref -> rcx "CSE - moderate"
; V101 cse1 [V101,T10] ( 6, 10 ) int -> rbp multi-def "CSE - aggressive"
-; V102 cse2 [V102,T19] ( 12, 0 ) ref -> rdx multi-def "CSE - moderate"
;
; Lcl frame size = 80
@@ -384,15 +383,15 @@ G_M45430_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov esi, dword ptr [rsp+0x48]
sub esi, ecx
jns SHORT G_M45430_IG30
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=74 bbWeight=0 PerfScore 0.00
+ ;; size=81 bbWeight=0 PerfScore 0.00
G_M45430_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp esi, 11
jb SHORT G_M45430_IG31
@@ -433,15 +432,15 @@ G_M45430_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov r15d, dword ptr [rsp+0x48]
sub r15d, ecx
jns SHORT G_M45430_IG33
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=67 bbWeight=0 PerfScore 0.00
+ ;; size=74 bbWeight=0 PerfScore 0.00
G_M45430_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
test r15d, r15d
je SHORT G_M45430_IG34
@@ -513,15 +512,15 @@ G_M45430_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov esi, dword ptr [rsp+0x48]
sub esi, ecx
jns SHORT G_M45430_IG38
+ mov rcx, 0xD1FFAB1E
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E
; gcrRegs +[rdx]
; byrRegs -[rdx]
- mov rcx, rdx
- ; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=74 bbWeight=0 PerfScore 0.00
+ ;; size=81 bbWeight=0 PerfScore 0.00
G_M45430_IG38: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
cmp esi, 11
jb SHORT G_M45430_IG39
@@ -569,15 +568,15 @@ G_M45430_IG42: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, dword ptr [rsp+0x48]
sub edi, ebx
jns SHORT G_M45430_IG43
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- mov rcx, rdx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
; byrRegs -[rcx]
+ mov rdx, 0xD1FFAB1E
+ ; gcrRegs +[rdx]
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=45 bbWeight=0 PerfScore 0.00
G_M45430_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
test edi, edi
je SHORT G_M45430_IG44
@@ -625,7 +624,7 @@ G_M45430_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=50 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1104, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1104 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1132, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1132 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch
-5 (-0.44%) : 1779.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
@@ -56,11 +56,10 @@
; V45 tmp40 [V45,T08] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V46 tmp41 [V46,T16] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V47 PSPSym [V47,T24] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
-; V48 cse0 [V48,T36] ( 2, 0 ) ref -> rdx "CSE - moderate"
-; V49 cse1 [V49,T10] ( 8, 5 ) int -> rbx multi-def "CSE - moderate"
-; V50 cse2 [V50,T17] ( 3, 3 ) int -> r8 "CSE - moderate"
-; V51 rat0 [V51,T25] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
-; V52 rat1 [V52,T26] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V48 cse0 [V48,T10] ( 8, 5 ) int -> rbx multi-def "CSE - moderate"
+; V49 cse1 [V49,T17] ( 3, 3 ) int -> r8 "CSE - moderate"
+; V50 rat0 [V50,T25] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V51 rat1 [V51,T26] ( 3, 6 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 48
@@ -418,21 +417,16 @@ G_M23682_IG32: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcr arg pop 0
mov r14, rax
; gcrRegs +[r14]
- lea rcx, bword ptr [r14+0x10]
- ; byrRegs +[rcx]
- mov rdx, 0xD1FFAB1E
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov rcx, rbx
+ mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
+ mov gword ptr [r14+0x10], rcx
+ mov rcx, rbx
mov rdx, r14
; gcrRegs +[rdx]
xor r8d, r8d
xor r9d, r9d
call [<unknown method>]
- ; gcrRegs -[rcx rdx] +[rax]
+ ; gcrRegs -[rcx rdx]
; gcr arg pop 0
mov rcx, 0xD1FFAB1E
mov qword ptr [rsi+0x70], rcx
@@ -480,7 +474,7 @@ G_M23682_IG32: ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
; gcrRegs -[rcx rdx rsi]
; gcr arg pop 0
int3
- ;; size=212 bbWeight=0 PerfScore 0.00
+ ;; size=207 bbWeight=0 PerfScore 0.00
G_M23682_IG33: ; bbWeight=0, gcVars=0000000000000013 {V00 V01 V02}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; gcrRegs +[rdx]
; GC ptr vars +{V00 V01 V02}
@@ -571,7 +565,7 @@ RWD48 dq 0075002D00360034h, 0032002D00730063h
RWD64 dq 002D006600740075h, 0045004200360031h
-; Total bytes of code 1147, prolog size 33, PerfScore 182.25, instruction count 282, allocated bytes for code 1147 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
+Total bytes of code 1142, prolog size 33, PerfScore 182.25, instruction count 281, allocated bytes for code 1142 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
; ============================================================
Unwind Info:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
To reproduce these diffs on Windows x64:
Details
Improvements/regressions per collection
Collection
Contexts with diffs
Improvements
Regressions
Same size
Improvements (bytes)
Regressions (bytes)
aspnet.run.windows.x64.checked.mch
171
124
43
4
-1,605
+295
benchmarks.run.windows.x64.checked.mch
0
0
0
0
-0
+0
benchmarks.run_pgo.windows.x64.checked.mch
6
1
5
0
-15
+127
benchmarks.run_tiered.windows.x64.checked.mch
1
1
0
0
-10
+0
coreclr_tests.run.windows.x64.checked.mch
20
8
12
0
-56
+358
libraries.crossgen2.windows.x64.checked.mch
0
0
0
0
-0
+0
libraries.pmi.windows.x64.checked.mch
12
5
7
0
-38
+122
libraries_tests.run.windows.x64.Release.mch
127
76
51
0
-1,802
+553
librariestestsnotieredcompilation.run.windows.x64.Release.mch
17
10
6
1
-57
+51
realworld.run.windows.x64.checked.mch
1
1
0
0
-5
+0
smoke_tests.nativeaot.windows.x64.checked.mch
0
0
0
0
-0
+0
355
226
124
5
-3,588
+1,506
Context information
Collection
Diffed contexts
MinOpts
FullOpts
Missed, base
Missed, diff
aspnet.run.windows.x64.checked.mch
113,444
48,462
64,982
967 (0.85%)
970 (0.85%)
benchmarks.run.windows.x64.checked.mch
28,178
4
28,174
0 (0.00%)
0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch
101,027
50,170
50,857
126 (0.12%)
126 (0.12%)
benchmarks.run_tiered.windows.x64.checked.mch
54,255
36,844
17,411
0 (0.00%)
0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch
574,112
341,113
232,999
300 (0.05%)
300 (0.05%)
libraries.crossgen2.windows.x64.checked.mch
243,023
15
243,008
0 (0.00%)
0 (0.00%)
libraries.pmi.windows.x64.checked.mch
307,639
6
307,633
2 (0.00%)
2 (0.00%)
libraries_tests.run.windows.x64.Release.mch
682,159
485,176
196,983
2,458 (0.36%)
2,458 (0.36%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch
319,780
21,886
297,894
6 (0.00%)
6 (0.00%)
realworld.run.windows.x64.checked.mch
36,888
3
36,885
0 (0.00%)
0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch
32,444
10
32,434
0 (0.00%)
0 (0.00%)
2,492,949
983,689
1,509,260
3,859 (0.15%)
3,862 (0.15%)
jit-analyze output
aspnet.run.windows.x64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 41760738 (overridden on cmd)
Total bytes of diff: 41759428 (overridden on cmd)
Total bytes of delta: -1310 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-4124 : 100649.dasm (-100.00 % of base)
-4124 : 91235.dasm (-100.00 % of base)
-3402 : 63726.dasm (-100.00 % of base)
-3399 : 100878.dasm (-100.00 % of base)
-3399 : 91609.dasm (-100.00 % of base)
-3387 : 62031.dasm (-100.00 % of base)
-3301 : 6349.dasm (-100.00 % of base)
-3268 : 63727.dasm (-100.00 % of base)
-3251 : 62032.dasm (-100.00 % of base)
-2717 : 54206.dasm (-100.00 % of base)
-2689 : 38813.dasm (-100.00 % of base)
-2666 : 42559.dasm (-100.00 % of base)
-2431 : 94593.dasm (-100.00 % of base)
-2390 : 100601.dasm (-100.00 % of base)
-2390 : 91161.dasm (-100.00 % of base)
-2239 : 54075.dasm (-100.00 % of base)
-2204 : 38610.dasm (-100.00 % of base)
-2176 : 63799.dasm (-100.00 % of base)
-2176 : 17369.dasm (-100.00 % of base)
-2176 : 35316.dasm (-100.00 % of base)
68 total files with Code Size differences (68 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-4124 (-100.00 % of base) : 100649.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-4124 (-100.00 % of base) : 91235.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-3402 (-100.00 % of base) : 63726.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
-3399 (-100.00 % of base) : 100878.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager+<GetShapeTableAsync>d__11:MoveNext():this (Tier1-OSR)
-3399 (-100.00 % of base) : 91609.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager+<GetShapeTableAsync>d__11:MoveNext():this (Tier1-OSR)
-3387 (-100.00 % of base) : 62031.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
-3301 (-100.00 % of base) : 6349.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (Tier1-OSR)
-3268 (-100.00 % of base) : 63727.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
-3251 (-100.00 % of base) : 62032.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
-2717 (-100.00 % of base) : 54206.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
-2689 (-100.00 % of base) : 38813.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
-2666 (-100.00 % of base) : 42559.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
-2431 (-100.00 % of base) : 94593.dasm - System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Instrumented Tier1)
-2390 (-100.00 % of base) : 100601.dasm - OrchardCore.Environment.Extensions.ExtensionManager+<EnsureInitializedAsync>d__33:MoveNext():this (Tier1-OSR)
-2390 (-100.00 % of base) : 91161.dasm - OrchardCore.Environment.Extensions.ExtensionManager+<EnsureInitializedAsync>d__33:MoveNext():this (Tier1-OSR)
-2239 (-100.00 % of base) : 54075.dasm - System.Net.Security.SslStreamPal:EncryptMessage(System.Net.Security.SafeDeleteSslContext,System.ReadOnlyMemory`1[ubyte],int,int):System.Net.Security.ProtocolToken (Tier1)
-2204 (-100.00 % of base) : 38610.dasm - System.Net.Security.SslStreamPal:EncryptMessage(System.Net.Security.SafeDeleteSslContext,System.ReadOnlyMemory`1[ubyte],int,int):System.Net.Security.ProtocolToken (Tier1)
-2176 (-100.00 % of base) : 63799.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-2176 (-100.00 % of base) : 17369.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-2176 (-100.00 % of base) : 35316.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
Top method improvements (percentages):
-2176 (-100.00 % of base) : 63799.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-2176 (-100.00 % of base) : 17369.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-4124 (-100.00 % of base) : 100649.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-2176 (-100.00 % of base) : 35316.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-4124 (-100.00 % of base) : 91235.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
-2689 (-100.00 % of base) : 38813.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
-2666 (-100.00 % of base) : 42559.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
-2717 (-100.00 % of base) : 54206.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
-1619 (-100.00 % of base) : 65644.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
-1640 (-100.00 % of base) : 34349.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
-1597 (-100.00 % of base) : 53625.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
-1608 (-100.00 % of base) : 31991.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
-1622 (-100.00 % of base) : 38481.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
-1580 (-100.00 % of base) : 42969.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
-1014 (-100.00 % of base) : 100653.dasm - Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents:EnsureFilesAreInitialized():this (Tier1-OSR)
-1014 (-100.00 % of base) : 91243.dasm - Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents:EnsureFilesAreInitialized():this (Tier1-OSR)
-3268 (-100.00 % of base) : 63727.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
-3251 (-100.00 % of base) : 62032.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
-3387 (-100.00 % of base) : 62031.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
-3402 (-100.00 % of base) : 63726.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
benchmarks.run_pgo.windows.x64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34741684 (overridden on cmd)
Total bytes of diff: 34741796 (overridden on cmd)
Total bytes of delta: 112 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-6944 : 91209.dasm (-100.00 % of base)
-3024 : 100328.dasm (-100.00 % of base)
-2778 : 98182.dasm (-100.00 % of base)
-1632 : 100334.dasm (-100.00 % of base)
-1427 : 89050.dasm (-100.00 % of base)
-1409 : 85532.dasm (-100.00 % of base)
6 total files with Code Size differences (6 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-6944 (-100.00 % of base) : 91209.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
-3024 (-100.00 % of base) : 100328.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-2778 (-100.00 % of base) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1632 (-100.00 % of base) : 100334.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1427 (-100.00 % of base) : 89050.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1409 (-100.00 % of base) : 85532.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
Top method improvements (percentages):
-3024 (-100.00 % of base) : 100328.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1632 (-100.00 % of base) : 100334.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
-1427 (-100.00 % of base) : 89050.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-2778 (-100.00 % of base) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
-1409 (-100.00 % of base) : 85532.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
-6944 (-100.00 % of base) : 91209.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
6 total methods with Code Size differences (6 improved, 0 regressed).
benchmarks.run_tiered.windows.x64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 12662284 (overridden on cmd)
Total bytes of diff: 12662274 (overridden on cmd)
Total bytes of delta: -10 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1250 : 48441.dasm (-100.00 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1250 (-100.00 % of base) : 48441.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
Top method improvements (percentages):
-1250 (-100.00 % of base) : 48441.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
1 total methods with Code Size differences (1 improved, 0 regressed).
coreclr_tests.run.windows.x64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 392866349 (overridden on cmd)
Total bytes of diff: 392866651 (overridden on cmd)
Total bytes of delta: 302 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-2150 : 57181.dasm (-100.00 % of base)
-1859 : 227903.dasm (-100.00 % of base)
-1854 : 494324.dasm (-100.00 % of base)
-1842 : 227911.dasm (-100.00 % of base)
-1250 : 516564.dasm (-100.00 % of base)
-1147 : 516543.dasm (-100.00 % of base)
-1135 : 235869.dasm (-100.00 % of base)
-1104 : 479846.dasm (-100.00 % of base)
-965 : 32331.dasm (-100.00 % of base)
-531 : 236714.dasm (-100.00 % of base)
-526 : 277612.dasm (-100.00 % of base)
-461 : 369099.dasm (-100.00 % of base)
-445 : 227599.dasm (-100.00 % of base)
-389 : 277631.dasm (-100.00 % of base)
-283 : 277624.dasm (-100.00 % of base)
-261 : 277569.dasm (-100.00 % of base)
-245 : 516181.dasm (-100.00 % of base)
-238 : 513451.dasm (-100.00 % of base)
-238 : 277299.dasm (-100.00 % of base)
-102 : 516183.dasm (-100.00 % of base)
20 total files with Code Size differences (20 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-2150 (-100.00 % of base) : 57181.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-1859 (-100.00 % of base) : 227903.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1854 (-100.00 % of base) : 494324.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-1842 (-100.00 % of base) : 227911.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1250 (-100.00 % of base) : 516564.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1147 (-100.00 % of base) : 516543.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1135 (-100.00 % of base) : 235869.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
-1104 (-100.00 % of base) : 479846.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-965 (-100.00 % of base) : 32331.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-531 (-100.00 % of base) : 236714.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
-526 (-100.00 % of base) : 277612.dasm - System.StartupHookProvider:ProcessStartupHooks(System.String) (FullOpts)
-461 (-100.00 % of base) : 369099.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-445 (-100.00 % of base) : 227599.dasm - NumericSortRect:Run():double:this (Tier1)
-389 (-100.00 % of base) : 277631.dasm - System.Runtime.Loader.AssemblyLoadContext:OnProcessExit() (FullOpts)
-283 (-100.00 % of base) : 277624.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
-261 (-100.00 % of base) : 277569.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
-245 (-100.00 % of base) : 516181.dasm - AA:reset() (FullOpts)
-238 (-100.00 % of base) : 513451.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-238 (-100.00 % of base) : 277299.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-102 (-100.00 % of base) : 516183.dasm - TestApp:test_2_2(int):int (FullOpts)
Top method improvements (percentages):
-245 (-100.00 % of base) : 516181.dasm - AA:reset() (FullOpts)
-531 (-100.00 % of base) : 236714.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
-1854 (-100.00 % of base) : 494324.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
-1859 (-100.00 % of base) : 227903.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-1842 (-100.00 % of base) : 227911.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
-461 (-100.00 % of base) : 369099.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
-283 (-100.00 % of base) : 277624.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
-445 (-100.00 % of base) : 227599.dasm - NumericSortRect:Run():double:this (Tier1)
-238 (-100.00 % of base) : 513451.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-238 (-100.00 % of base) : 277299.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
-2150 (-100.00 % of base) : 57181.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
-965 (-100.00 % of base) : 32331.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
-1135 (-100.00 % of base) : 235869.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
-389 (-100.00 % of base) : 277631.dasm - System.Runtime.Loader.AssemblyLoadContext:OnProcessExit() (FullOpts)
-261 (-100.00 % of base) : 277569.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
-526 (-100.00 % of base) : 277612.dasm - System.StartupHookProvider:ProcessStartupHooks(System.String) (FullOpts)
-1104 (-100.00 % of base) : 479846.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1250 (-100.00 % of base) : 516564.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1147 (-100.00 % of base) : 516543.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-102 (-100.00 % of base) : 516183.dasm - TestApp:test_2_2(int):int (FullOpts)
20 total methods with Code Size differences (20 improved, 0 regressed).
libraries.pmi.windows.x64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 61196926 (overridden on cmd)
Total bytes of diff: 61197010 (overridden on cmd)
Total bytes of delta: 84 (0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-7932 : 218737.dasm (-100.00 % of base)
-3210 : 227165.dasm (-100.00 % of base)
-2822 : 227184.dasm (-100.00 % of base)
-2050 : 185631.dasm (-100.00 % of base)
-1210 : 134786.dasm (-100.00 % of base)
-1168 : 232824.dasm (-100.00 % of base)
-1147 : 134713.dasm (-100.00 % of base)
-1104 : 232825.dasm (-100.00 % of base)
-612 : 233527.dasm (-100.00 % of base)
-586 : 233526.dasm (-100.00 % of base)
-506 : 233543.dasm (-100.00 % of base)
-496 : 233542.dasm (-100.00 % of base)
12 total files with Code Size differences (12 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-7932 (-100.00 % of base) : 218737.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
-3210 (-100.00 % of base) : 227165.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
-2822 (-100.00 % of base) : 227184.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
-2050 (-100.00 % of base) : 185631.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
-1210 (-100.00 % of base) : 134786.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1168 (-100.00 % of base) : 232824.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1147 (-100.00 % of base) : 134713.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1104 (-100.00 % of base) : 232825.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-612 (-100.00 % of base) : 233527.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-586 (-100.00 % of base) : 233526.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-506 (-100.00 % of base) : 233543.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-496 (-100.00 % of base) : 233542.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
Top method improvements (percentages):
-2050 (-100.00 % of base) : 185631.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
-7932 (-100.00 % of base) : 218737.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
-3210 (-100.00 % of base) : 227165.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
-2822 (-100.00 % of base) : 227184.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
-1168 (-100.00 % of base) : 232824.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-1104 (-100.00 % of base) : 232825.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-586 (-100.00 % of base) : 233526.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
-612 (-100.00 % of base) : 233527.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-496 (-100.00 % of base) : 233542.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
-506 (-100.00 % of base) : 233543.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
-1210 (-100.00 % of base) : 134786.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1147 (-100.00 % of base) : 134713.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
12 total methods with Code Size differences (12 improved, 0 regressed).
libraries_tests.run.windows.x64.Release.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 279034736 (overridden on cmd)
Total bytes of diff: 279033487 (overridden on cmd)
Total bytes of delta: -1249 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-20978 : 627105.dasm (-100.00 % of base)
-10380 : 54512.dasm (-100.00 % of base)
-9557 : 618898.dasm (-100.00 % of base)
-9100 : 310007.dasm (-100.00 % of base)
-8343 : 54867.dasm (-100.00 % of base)
-8264 : 619990.dasm (-100.00 % of base)
-7486 : 630509.dasm (-100.00 % of base)
-6840 : 59797.dasm (-100.00 % of base)
-6428 : 92287.dasm (-100.00 % of base)
-6387 : 620996.dasm (-100.00 % of base)
-6262 : 621066.dasm (-100.00 % of base)
-5924 : 310312.dasm (-100.00 % of base)
-5914 : 310319.dasm (-100.00 % of base)
-4276 : 312494.dasm (-100.00 % of base)
-4166 : 54875.dasm (-100.00 % of base)
-4135 : 641232.dasm (-100.00 % of base)
-4091 : 310285.dasm (-100.00 % of base)
-4059 : 430710.dasm (-100.00 % of base)
-3930 : 54510.dasm (-100.00 % of base)
-3332 : 656743.dasm (-100.00 % of base)
63 total files with Code Size differences (63 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-20978 (-100.00 % of base) : 627105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-10380 (-100.00 % of base) : 54512.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-9557 (-100.00 % of base) : 618898.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-9100 (-100.00 % of base) : 310007.dasm - System.IO.Tests.VirtualDrive_SymbolicLinks:VirtualDrive_SymbolicLinks_WithIndirection(ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier1)
-8343 (-100.00 % of base) : 54867.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-8264 (-100.00 % of base) : 619990.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-7486 (-100.00 % of base) : 630509.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
-6840 (-100.00 % of base) : 59797.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6428 (-100.00 % of base) : 92287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6387 (-100.00 % of base) : 620996.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6262 (-100.00 % of base) : 621066.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-5924 (-100.00 % of base) : 310312.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithTrailingStar():this (Tier1)
-5914 (-100.00 % of base) : 310319.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithLeadingStar():this (Tier1)
-4276 (-100.00 % of base) : 312494.dasm - System.IO.Tests.FileStream_LockUnlock:OverlappingRegionsFromOtherProcess_ThrowsException(long,long,long,long,long):this (Tier1)
-4166 (-100.00 % of base) : 54875.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
-4135 (-100.00 % of base) : 641232.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.BoundLocalFunctionStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
-4091 (-100.00 % of base) : 310285.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternDotIsStar():this (Tier1)
-4059 (-100.00 % of base) : 430710.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-3930 (-100.00 % of base) : 54510.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
-3332 (-100.00 % of base) : 656743.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)
Top method improvements (percentages):
-4059 (-100.00 % of base) : 430710.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-2656 (-100.00 % of base) : 428451.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
-20978 (-100.00 % of base) : 627105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
-4166 (-100.00 % of base) : 54875.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
-1251 (-100.00 % of base) : 60485.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetRewrittenAttributeConstructorArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]:this (Tier1)
-497 (-100.00 % of base) : 652792.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
-2538 (-100.00 % of base) : 621173.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:GetOrCreateSlot(Microsoft.CodeAnalysis.CSharp.Symbol,int,ubyte,ubyte):int:this (Tier1)
-4135 (-100.00 % of base) : 641232.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.BoundLocalFunctionStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
-7486 (-100.00 % of base) : 630509.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
-10380 (-100.00 % of base) : 54512.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-9557 (-100.00 % of base) : 618898.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
-2912 (-100.00 % of base) : 630511.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParameterTypes(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref,byref) (Tier1)
-8343 (-100.00 % of base) : 54867.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-8264 (-100.00 % of base) : 619990.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
-3930 (-100.00 % of base) : 54510.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
-963 (-100.00 % of base) : 619234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
-6428 (-100.00 % of base) : 92287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6840 (-100.00 % of base) : 59797.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-6387 (-100.00 % of base) : 620996.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
-1106 (-100.00 % of base) : 59842.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
librariestestsnotieredcompilation.run.windows.x64.Release.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 133435993 (overridden on cmd)
Total bytes of diff: 133435987 (overridden on cmd)
Total bytes of delta: -6 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1859 : 161486.dasm (-100.00 % of base)
-1719 : 158245.dasm (-100.00 % of base)
-1374 : 207440.dasm (-100.00 % of base)
-1315 : 209674.dasm (-100.00 % of base)
-1250 : 21345.dasm (-100.00 % of base)
-1147 : 3683.dasm (-100.00 % of base)
-1104 : 106899.dasm (-100.00 % of base)
-1063 : 158215.dasm (-100.00 % of base)
-705 : 258261.dasm (-100.00 % of base)
-527 : 85313.dasm (-100.00 % of base)
-505 : 178996.dasm (-100.00 % of base)
-494 : 85494.dasm (-100.00 % of base)
-446 : 178999.dasm (-100.00 % of base)
-421 : 222650.dasm (-100.00 % of base)
-154 : 85481.dasm (-100.00 % of base)
-154 : 85504.dasm (-100.00 % of base)
-111 : 85488.dasm (-100.00 % of base)
17 total files with Code Size differences (17 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1859 (-100.00 % of base) : 161486.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
-1719 (-100.00 % of base) : 158245.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
-1374 (-100.00 % of base) : 207440.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1315 (-100.00 % of base) : 209674.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1250 (-100.00 % of base) : 21345.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1147 (-100.00 % of base) : 3683.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-1104 (-100.00 % of base) : 106899.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1063 (-100.00 % of base) : 158215.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
-705 (-100.00 % of base) : 258261.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
-527 (-100.00 % of base) : 85313.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-505 (-100.00 % of base) : 178996.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader5():this (FullOpts)
-494 (-100.00 % of base) : 85494.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-446 (-100.00 % of base) : 178999.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
-421 (-100.00 % of base) : 222650.dasm - System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
-154 (-100.00 % of base) : 85504.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-154 (-100.00 % of base) : 85481.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-111 (-100.00 % of base) : 85488.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
Top method improvements (percentages):
-111 (-100.00 % of base) : 85488.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
-494 (-100.00 % of base) : 85494.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-154 (-100.00 % of base) : 85504.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-527 (-100.00 % of base) : 85313.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
-154 (-100.00 % of base) : 85481.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
-1063 (-100.00 % of base) : 158215.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
-1719 (-100.00 % of base) : 158245.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
-1859 (-100.00 % of base) : 161486.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
-421 (-100.00 % of base) : 222650.dasm - System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
-705 (-100.00 % of base) : 258261.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
-1104 (-100.00 % of base) : 106899.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
-1250 (-100.00 % of base) : 21345.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
-1147 (-100.00 % of base) : 3683.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
-446 (-100.00 % of base) : 178999.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
-505 (-100.00 % of base) : 178996.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader5():this (FullOpts)
-1374 (-100.00 % of base) : 207440.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
-1315 (-100.00 % of base) : 209674.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
17 total methods with Code Size differences (17 improved, 0 regressed).
realworld.run.windows.x64.checked.mch
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 14170685 (overridden on cmd)
Total bytes of diff: 14170680 (overridden on cmd)
Total bytes of delta: -5 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-1147 : 1779.dasm (-100.00 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.
Top method improvements (bytes):
-1147 (-100.00 % of base) : 1779.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
Top method improvements (percentages):
-1147 (-100.00 % of base) : 1779.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
1 total methods with Code Size differences (1 improved, 0 regressed).