; Assembly listing for method System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 20 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 18 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T21] ( 12, 24 ) ref -> [rbp-0x68] this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
-; V01 loc0 [V01,T10] ( 5, 33.50) int -> rbx
-; V02 loc1 [V02,T33] ( 5, 19 ) int -> r15
-; V03 loc2 [V03,T20] ( 7, 27 ) ref -> r14 class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-; V04 loc3 [V04,T38] ( 4, 10 ) ref -> [rbp-0x70] class-hnd spill-single-def <System.__Canon[]>
-; V05 loc4 [V05,T32] ( 6, 19 ) int -> r12
-; V06 loc5 [V06,T41] ( 7, 9 ) ref -> [rbp-0x78] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+; V00 this [V00,T15] ( 18, 27 ) ref -> [rbp-0x60] this class-hnd EH-live single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
+; V01 loc0 [V01,T07] ( 5, 33.50) int -> rbx
+; V02 loc1 [V02,T27] ( 5, 19 ) int -> r15
+; V03 loc2 [V03,T16] ( 7, 27 ) ref -> r14 class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+; V04 loc3 [V04,T31] ( 4, 10 ) ref -> [rbp-0x68] class-hnd spill-single-def <System.__Canon[]>
+; V05 loc4 [V05,T26] ( 6, 19 ) int -> r12
+; V06 loc5 [V06,T33] ( 7, 9 ) ref -> [rbp-0x70] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
-; V08 loc7 [V08,T42] ( 7, 9 ) ref -> [rbp-0x80] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+; V08 loc7 [V08,T34] ( 7, 9 ) ref -> [rbp-0x78] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
-; V10 loc9 [V10,T22] ( 3, 24 ) ref -> r15 class-hnd <System.Buffers.SharedArrayPool`1+ThreadLocalArray[System.__Canon][]>
+; V10 loc9 [V10,T17] ( 3, 24 ) ref -> r15 class-hnd <System.Buffers.SharedArrayPool`1+ThreadLocalArray[System.__Canon][]>
; V11 loc10 [V11,T00] ( 5, 68 ) int -> rbx
-; V12 loc11 [V12,T06] ( 4, 48 ) ref -> [rbp-0x88] class-hnd spill-single-def <System.__Canon[]>
-; V13 loc12 [V13,T45] ( 2, 8.50) int -> r12
-; V14 loc13 [V14,T81] ( 2, 1 ) int -> r12
-; V15 loc14 [V15,T43] ( 7, 9 ) ref -> [rbp-0x90] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+; V12 loc11 [V12,T05] ( 4, 48 ) ref -> [rbp-0x80] class-hnd spill-single-def <System.__Canon[]>
+; V13 loc12 [V13,T36] ( 2, 8.50) int -> r12
+; V14 loc13 [V14,T77] ( 2, 1 ) int -> r12
+; V15 loc14 [V15,T35] ( 7, 9 ) ref -> [rbp-0x88] class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
;* V16 loc15 [V16 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
-; V17 loc16 [V17,T05] ( 6, 48 ) ref -> [rbp-0x98] class-hnd spill-single-def <System.Buffers.SharedArrayPool`1+ThreadLocalArray[System.__Canon][]>
+; V17 loc16 [V17,T04] ( 6, 48 ) ref -> r15 class-hnd <System.Buffers.SharedArrayPool`1+ThreadLocalArray[System.__Canon][]>
; V18 loc17 [V18,T01] ( 5, 68 ) int -> [rbp-0x34]
-; V19 loc18 [V19,T23] ( 3, 24 ) int -> rsi
-; V20 loc19 [V20,T11] ( 4, 32 ) ref -> [rbp-0xA0] class-hnd spill-single-def <System.__Canon[]>
+; V19 loc18 [V19,T18] ( 3, 24 ) int -> rdx
+; V20 loc19 [V20,T08] ( 4, 32 ) ref -> [rbp-0x90] class-hnd spill-single-def <System.__Canon[]>
;# V21 OutArgs [V21 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V22 tmp1 [V22,T35] ( 2, 16 ) ref -> rax class-hnd "dup spill" <System.__Canon>
-; V23 tmp2 [V23,T39] ( 3, 10 ) ref -> [rbp-0xA8] spill-single-def
-; V24 tmp3 [V24,T08] ( 2, 36 ) int -> [rbp-0x38] spill-single-def "impAppendStmt"
+; V22 tmp1 [V22,T29] ( 2, 16 ) ref -> rax class-hnd "dup spill" <System.__Canon>
+; V23 tmp2 [V23,T32] ( 3, 10 ) ref -> [rbp-0x98] spill-single-def
+; V24 tmp3 [V24,T06] ( 2, 36 ) int -> [rbp-0x38] spill-single-def "impAppendStmt"
;* V25 tmp4 [V25 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V26 tmp5 [V26 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
;* V27 tmp6 [V27 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V28 tmp7 [V28,T24] ( 3, 24 ) long -> r11 "VirtualCall with runtime lookup"
+; V28 tmp7 [V28,T19] ( 3, 24 ) long -> r11 "VirtualCall with runtime lookup"
;* V29 tmp8 [V29 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
;* V30 tmp9 [V30 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V31 tmp10 [V31 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V32 tmp11 [V32,T14] ( 2, 32 ) int -> [rbp-0x3C] spill-single-def "impAppendStmt"
-; V33 tmp12 [V33,T15] ( 2, 32 ) int -> [rbp-0x40] spill-single-def "impAppendStmt"
-;* V34 tmp13 [V34 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V35 tmp14 [V35 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
-;* V36 tmp15 [V36 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V37 tmp16 [V37,T25] ( 3, 24 ) long -> r11 "VirtualCall with runtime lookup"
-;* V38 tmp17 [V38 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
-;* V39 tmp18 [V39 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V40 tmp19 [V40 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V41 tmp20 [V41,T16] ( 2, 32 ) int -> [rbp-0x44] spill-single-def "impAppendStmt"
-; V42 tmp21 [V42,T17] ( 2, 32 ) int -> [rbp-0x48] spill-single-def "impAppendStmt"
+; V31 tmp10 [V31,T09] ( 2, 32 ) int -> [rbp-0x3C] spill-single-def "impAppendStmt"
+; V32 tmp11 [V32,T10] ( 2, 32 ) int -> [rbp-0x40] spill-single-def "impAppendStmt"
+;* V33 tmp12 [V33 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V34 tmp13 [V34 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
+;* V35 tmp14 [V35 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+; V36 tmp15 [V36,T20] ( 3, 24 ) long -> r11 "VirtualCall with runtime lookup"
+;* V37 tmp16 [V37 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
+;* V38 tmp17 [V38 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+; V39 tmp18 [V39,T11] ( 2, 32 ) int -> [rbp-0x44] spill-single-def "impAppendStmt"
+; V40 tmp19 [V40,T12] ( 2, 32 ) int -> [rbp-0x48] spill-single-def "impAppendStmt"
+;* V41 tmp20 [V41 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V42 tmp21 [V42 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
;* V43 tmp22 [V43 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V44 tmp23 [V44 ] ( 0, 0 ) long -> zero-ref "VirtualCall with runtime lookup"
-;* V45 tmp24 [V45 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V46 tmp25 [V46,T26] ( 3, 24 ) long -> r11 "VirtualCall with runtime lookup"
-;* V47 tmp26 [V47 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
-;* V48 tmp27 [V48 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-; V49 tmp28 [V49,T34] ( 2, 18 ) int -> [rbp-0x4C] spill-single-def "Inline stloc first use temp"
-; V50 tmp29 [V50,T30] ( 3, 20 ) ref -> [rbp-0xB0] class-hnd spill-single-def "Inline stloc first use temp" <System.__Canon[]>
-; V51 tmp30 [V51,T02] ( 5, 66 ) int -> [rbp-0x50] "Inline stloc first use temp"
-;* V52 tmp31 [V52 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V53 tmp32 [V53,T03] ( 2, 64 ) ref -> rcx class-hnd "updating class info" <System.__Canon[]>
-; V54 tmp33 [V54,T18] ( 2, 32 ) int -> r8 "Inlining Arg"
-;* V55 tmp34 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V56 tmp35 [V56,T13] ( 2, 32 ) ref -> rsi class-hnd "updating class info" <System.__Canon[]>
-; V57 tmp36 [V57,T19] ( 2, 32 ) int -> r8 "Inlining Arg"
-; V58 tmp37 [V58,T47] ( 2, 8 ) ref -> rdi "field V07.key (fldOffset=0x0)" P-INDEP
-; V59 tmp38 [V59,T50] ( 1, 4 ) ref -> rdx "field V07.value (fldOffset=0x8)" P-INDEP
-; V60 tmp39 [V60,T48] ( 2, 8 ) ref -> r15 "field V09.key (fldOffset=0x0)" P-INDEP
-; V61 tmp40 [V61,T51] ( 1, 4 ) ref -> rdx "field V09.value (fldOffset=0x8)" P-INDEP
-; V62 tmp41 [V62,T49] ( 2, 8 ) ref -> rax "field V16.key (fldOffset=0x0)" P-INDEP
-; V63 tmp42 [V63,T52] ( 1, 4 ) ref -> rdx "field V16.value (fldOffset=0x8)" P-INDEP
-;* V64 tmp43 [V64 ] ( 0, 0 ) ref -> zero-ref "field V29.key (fldOffset=0x0)" P-DEP
-;* V65 tmp44 [V65 ] ( 0, 0 ) ref -> zero-ref "field V29.value (fldOffset=0x8)" P-DEP
-;* V66 tmp45 [V66 ] ( 0, 0 ) ref -> zero-ref "field V38.key (fldOffset=0x0)" P-DEP
-;* V67 tmp46 [V67 ] ( 0, 0 ) ref -> zero-ref "field V38.value (fldOffset=0x8)" P-DEP
-;* V68 tmp47 [V68 ] ( 0, 0 ) ref -> zero-ref "field V47.key (fldOffset=0x0)" P-DEP
-;* V69 tmp48 [V69 ] ( 0, 0 ) ref -> zero-ref "field V47.value (fldOffset=0x8)" P-DEP
-; V70 PSPSym [V70,T85] ( 1, 1 ) long -> [rbp-0xC0] do-not-enreg[V] "PSPSym"
-;* V71 cse0 [V71,T40] ( 0, 0 ) long -> zero-ref hoist multi-def "CSE - moderate"
-; V72 cse1 [V72,T36] ( 6, 13.50) long -> registers hoist multi-def "CSE - moderate"
-;* V73 cse2 [V73,T80] ( 0, 0 ) long -> zero-ref hoist multi-def "CSE - moderate"
-; V74 cse3 [V74,T04] ( 5, 56 ) long -> rdi "CSE - aggressive"
-; V75 cse4 [V75,T29] ( 17, 16.54) long -> r13 multi-def "CSE - moderate"
-; V76 cse5 [V76,T31] ( 3, 20 ) int -> [rbp-0x54] spill-single-def "CSE - moderate"
-; V77 cse6 [V77,T27] ( 3, 24 ) int -> [rbp-0x58] spill-single-def "CSE - moderate"
-; V78 cse7 [V78,T28] ( 3, 24 ) int -> [rbp-0x5C] spill-single-def "CSE - moderate"
-; V79 rat0 [V79,T62] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
-;* V80 rat1 [V80,T82] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V81 rat2 [V81,T53] ( 2, 2 ) long -> rax "spilling expr"
-;* V82 rat3 [V82,T65] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V83 rat4 [V83,T74] ( 3, 2 ) long -> r12 "runtime lookup"
-; V84 rat5 [V84,T54] ( 3, 2.80) long -> rdi "spilling expr"
-; V85 rat6 [V85,T66] ( 3, 2.24) long -> r12 "fgMakeTemp is creating a new local variable"
-;* V86 rat7 [V86,T75] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V87 rat8 [V87,T55] ( 2, 2 ) long -> rdi "spilling expr"
-;* V88 rat9 [V88,T67] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V89 rat10 [V89,T63] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
-;* V90 rat11 [V90,T83] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V91 rat12 [V91,T56] ( 2, 2 ) long -> rax "spilling expr"
-;* V92 rat13 [V92,T68] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V93 rat14 [V93,T76] ( 3, 2 ) long -> r12 "runtime lookup"
-; V94 rat15 [V94,T57] ( 3, 2.80) long -> rdi "spilling expr"
-; V95 rat16 [V95,T69] ( 3, 2.24) long -> r12 "fgMakeTemp is creating a new local variable"
-;* V96 rat17 [V96,T77] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V97 rat18 [V97,T58] ( 2, 2 ) long -> rdi "spilling expr"
-;* V98 rat19 [V98,T70] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-;* V99 rat20 [V99,T46] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V100 rat21 [V100,T37] ( 3, 11.20) long -> rdi "spilling expr"
-; V101 rat22 [V101,T44] ( 2, 6.40) long -> rdi "fgMakeTemp is creating a new local variable"
-; V102 rat23 [V102,T64] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
-;* V103 rat24 [V103,T84] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V104 rat25 [V104,T59] ( 2, 2 ) long -> rax "spilling expr"
-;* V105 rat26 [V105,T71] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-; V106 rat27 [V106,T78] ( 3, 2 ) long -> rax "runtime lookup"
-; V107 rat28 [V107,T60] ( 3, 2.80) long -> rdi "spilling expr"
-; V108 rat29 [V108,T72] ( 3, 2.24) long -> rax "fgMakeTemp is creating a new local variable"
-;* V109 rat30 [V109,T79] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V110 rat31 [V110,T61] ( 2, 2 ) long -> rdi "spilling expr"
-;* V111 rat32 [V111,T73] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
-;* V112 rat33 [V112,T12] ( 0, 0 ) long -> zero-ref "runtime lookup"
-; V113 rat34 [V113,T07] ( 2, 32 ) long -> rsi "spilling expr"
-;* V114 rat35 [V114,T09] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V44 tmp23 [V44,T21] ( 3, 24 ) long -> r11 "VirtualCall with runtime lookup"
+;* V45 tmp24 [V45 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]>
+;* V46 tmp25 [V46 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+; V47 tmp26 [V47,T28] ( 2, 18 ) int -> [rbp-0x4C] spill-single-def "Inline stloc first use temp"
+; V48 tmp27 [V48,T24] ( 3, 20 ) ref -> [rbp-0xA0] class-hnd spill-single-def "Inline stloc first use temp" <System.__Canon[]>
+; V49 tmp28 [V49,T02] ( 5, 66 ) int -> [rbp-0x50] "Inline stloc first use temp"
+; V50 tmp29 [V50,T13] ( 2, 32 ) int -> r8 "Inlining Arg"
+; V51 tmp30 [V51,T14] ( 2, 32 ) int -> r8 "Inlining Arg"
+; V52 tmp31 [V52,T37] ( 2, 8 ) ref -> rdi "field V07.key (fldOffset=0x0)" P-INDEP
+; V53 tmp32 [V53,T40] ( 1, 4 ) ref -> rdx "field V07.value (fldOffset=0x8)" P-INDEP
+; V54 tmp33 [V54,T38] ( 2, 8 ) ref -> r15 "field V09.key (fldOffset=0x0)" P-INDEP
+; V55 tmp34 [V55,T41] ( 1, 4 ) ref -> rdx "field V09.value (fldOffset=0x8)" P-INDEP
+; V56 tmp35 [V56,T39] ( 2, 8 ) ref -> r15 "field V16.key (fldOffset=0x0)" P-INDEP
+; V57 tmp36 [V57,T42] ( 1, 4 ) ref -> rdx "field V16.value (fldOffset=0x8)" P-INDEP
+;* V58 tmp37 [V58 ] ( 0, 0 ) ref -> zero-ref "field V29.key (fldOffset=0x0)" P-DEP
+;* V59 tmp38 [V59 ] ( 0, 0 ) ref -> zero-ref "field V29.value (fldOffset=0x8)" P-DEP
+;* V60 tmp39 [V60 ] ( 0, 0 ) ref -> zero-ref "field V37.key (fldOffset=0x0)" P-DEP
+;* V61 tmp40 [V61 ] ( 0, 0 ) ref -> zero-ref "field V37.value (fldOffset=0x8)" P-DEP
+;* V62 tmp41 [V62 ] ( 0, 0 ) ref -> zero-ref "field V45.key (fldOffset=0x0)" P-DEP
+;* V63 tmp42 [V63 ] ( 0, 0 ) ref -> zero-ref "field V45.value (fldOffset=0x8)" P-DEP
+; V64 PSPSym [V64,T81] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym"
+; V65 cse0 [V65,T30] ( 6, 13.50) long -> r13 hoist multi-def "CSE - moderate"
+;* V66 cse1 [V66,T76] ( 0, 0 ) long -> zero-ref hoist multi-def "CSE - moderate"
+; V67 cse2 [V67,T03] ( 5, 56 ) long -> rdi "CSE - aggressive"
+; V68 cse3 [V68,T25] ( 3, 20 ) int -> [rbp-0x54] spill-single-def "CSE - moderate"
+; V69 cse4 [V69,T22] ( 3, 24 ) int -> r12 "CSE - moderate"
+; V70 cse5 [V70,T23] ( 3, 24 ) int -> [rbp-0x58] spill-single-def "CSE - moderate"
+; V71 rat0 [V71,T52] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V72 rat1 [V72,T78] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V73 rat2 [V73,T43] ( 2, 2 ) long -> rax "spilling expr"
+;* V74 rat3 [V74,T61] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V75 rat4 [V75,T53] ( 3, 2.36) long -> rsi "Spilling to split statement for tree"
+; V76 rat5 [V76,T70] ( 3, 2 ) long -> r13 "runtime lookup"
+; V77 rat6 [V77,T44] ( 3, 2.80) long -> rax "spilling expr"
+; V78 rat7 [V78,T62] ( 3, 2.24) long -> r13 "fgMakeTemp is creating a new local variable"
+; V79 rat8 [V79,T54] ( 2, 2 ) long -> r11 "Spilling to split statement for tree"
+;* V80 rat9 [V80,T71] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V81 rat10 [V81,T45] ( 2, 2 ) long -> r11 "spilling expr"
+;* V82 rat11 [V82,T63] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V83 rat12 [V83,T55] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V84 rat13 [V84,T79] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V85 rat14 [V85,T46] ( 2, 2 ) long -> rax "spilling expr"
+;* V86 rat15 [V86,T64] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V87 rat16 [V87,T56] ( 3, 2.36) long -> rsi "Spilling to split statement for tree"
+; V88 rat17 [V88,T72] ( 3, 2 ) long -> r13 "runtime lookup"
+; V89 rat18 [V89,T47] ( 3, 2.80) long -> rax "spilling expr"
+; V90 rat19 [V90,T65] ( 3, 2.24) long -> r13 "fgMakeTemp is creating a new local variable"
+; V91 rat20 [V91,T57] ( 2, 2 ) long -> r11 "Spilling to split statement for tree"
+;* V92 rat21 [V92,T73] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V93 rat22 [V93,T48] ( 2, 2 ) long -> r11 "spilling expr"
+;* V94 rat23 [V94,T66] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V95 rat24 [V95,T58] ( 2, 2 ) long -> rax "Spilling to split statement for tree"
+;* V96 rat25 [V96,T80] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V97 rat26 [V97,T49] ( 2, 2 ) long -> rax "spilling expr"
+;* V98 rat27 [V98,T67] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
+; V99 rat28 [V99,T59] ( 3, 2.36) long -> rsi "Spilling to split statement for tree"
+; V100 rat29 [V100,T74] ( 3, 2 ) long -> r13 "runtime lookup"
+; V101 rat30 [V101,T50] ( 3, 2.80) long -> rax "spilling expr"
+; V102 rat31 [V102,T68] ( 3, 2.24) long -> r13 "fgMakeTemp is creating a new local variable"
+; V103 rat32 [V103,T60] ( 2, 2 ) long -> r11 "Spilling to split statement for tree"
+;* V104 rat33 [V104,T75] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V105 rat34 [V105,T51] ( 2, 2 ) long -> r11 "spilling expr"
+;* V106 rat35 [V106,T69] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 152
+; Lcl frame size = 136
G_M16529_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 152
- lea rbp, [rsp+0xC0]
- mov qword ptr [rbp-0xC0], rsp
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
+ mov qword ptr [rbp-0xB0], rsp
mov qword ptr [rbp-0x30], rdi
- mov gword ptr [rbp-0x68], rdi
+ mov gword ptr [rbp-0x60], rdi
;; size=40 bbWeight=1 PerfScore 9.75
G_M16529_IG02:
call System.Environment:get_TickCount():int
mov ebx, eax
mov rax, 0xD1FFAB1E ; code for System.Buffers.Utilities:GetMemoryPressure():int
call [rax]System.Buffers.Utilities:GetMemoryPressure():int
mov r15d, eax
mov rdi, 0xD1FFAB1E ; const ptr
mov r14, gword ptr [rdi]
cmp byte ptr [r14+0x9D], 0
je SHORT G_M16529_IG04
;; size=45 bbWeight=1 PerfScore 11.00
G_M16529_IG03:
mov rdi, r14
mov ecx, r15d
mov edx, ebx
mov esi, 5
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
;; size=25 bbWeight=0.50 PerfScore 2.12
G_M16529_IG04:
- mov rdi, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x60]
mov r13, gword ptr [rdi+0x10]
- mov gword ptr [rbp-0x70], r13
+ mov gword ptr [rbp-0x68], r13
xor r12d, r12d
cmp dword ptr [r13+0x08], 0
jle G_M16529_IG09
;; size=26 bbWeight=1 PerfScore 8.25
G_M16529_IG05:
- mov rdi, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x60]
mov eax, r12d
mov rax, gword ptr [r13+8*rax+0x10]
- mov gword ptr [rbp-0xA8], rax
+ mov gword ptr [rbp-0x98], rax
test rax, rax
je G_M16529_IG08
;; size=28 bbWeight=4 PerfScore 22.00
G_M16529_IG06:
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov dword ptr [rbp-0x38], eax
mov edi, 16
shlx r9d, edi, r12d
mov dword ptr [rbp-0x4C], r9d
- mov rdi, gword ptr [rbp-0xA8]
+ mov rdi, gword ptr [rbp-0x98]
mov r10, gword ptr [rdi+0x08]
- mov gword ptr [rbp-0xB0], r10
+ mov gword ptr [rbp-0xA0], r10
xor r11d, r11d
mov r8d, dword ptr [r10+0x08]
mov dword ptr [rbp-0x54], r8d
test r8d, r8d
jle SHORT G_M16529_IG08
;; size=56 bbWeight=2 PerfScore 24.50
G_M16529_IG07:
mov dword ptr [rbp-0x50], r11d
mov edi, r11d
mov rdi, gword ptr [r10+8*rdi+0x10]
mov esi, ebx
mov edx, eax
mov ecx, r15d
mov r8d, r9d
mov r13, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:Trim(int,int,int,int):this
cmp dword ptr [rdi], edi
call [r13]System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:Trim(int,int,int,int):this
mov r13d, dword ptr [rbp-0x50]
inc r13d
mov edi, dword ptr [rbp-0x54]
cmp edi, r13d
mov r11d, r13d
mov eax, dword ptr [rbp-0x38]
mov r9d, dword ptr [rbp-0x4C]
- mov r10, gword ptr [rbp-0xB0]
+ mov r10, gword ptr [rbp-0xA0]
jg SHORT G_M16529_IG07
;; size=70 bbWeight=16 PerfScore 276.00
G_M16529_IG08:
inc r12d
- mov r13, gword ptr [rbp-0x70]
+ mov r13, gword ptr [rbp-0x68]
cmp dword ptr [r13+0x08], r12d
jg G_M16529_IG05
;; size=17 bbWeight=4 PerfScore 21.00
G_M16529_IG09:
cmp r15d, 2
- jne G_M16529_IG36
+ jne G_M16529_IG34
;; size=10 bbWeight=1 PerfScore 1.25
G_M16529_IG10:
cmp byte ptr [r14+0x9D], 0
jne G_M16529_IG19
- mov rdi, gword ptr [rbp-0x68]
- mov r13, qword ptr [rdi]
- mov rax, r13
+ mov rdi, gword ptr [rbp-0x60]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x30]
mov rax, qword ptr [rax+0x08]
cmp qword ptr [rax+0x08], 72
jle SHORT G_M16529_IG11
- ;; size=39 bbWeight=0.50 PerfScore 7.62
+ ;; size=36 bbWeight=0.50 PerfScore 7.50
G_M16529_IG11:
mov rdi, gword ptr [rdi+0x08]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this
- mov gword ptr [rbp-0x78], rax
+ mov gword ptr [rbp-0x70], rax
;; size=22 bbWeight=0.50 PerfScore 4.62
G_M16529_IG12:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je SHORT G_M16529_IG18
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 80
+ mov rdi, gword ptr [rbp-0x60]
+ mov rsi, qword ptr [rdi]
+ mov rax, qword ptr [rsi+0x30]
+ mov rax, qword ptr [rax+0x08]
+ cmp qword ptr [rax+0x08], 80
jle SHORT G_M16529_IG15
- ;; size=35 bbWeight=0.50 PerfScore 6.38
+ ;; size=42 bbWeight=0.50 PerfScore 7.88
G_M16529_IG13:
- mov r12, qword ptr [rdi+0x50]
- test r12, r12
+ mov r13, qword ptr [rax+0x50]
+ test r13, r13
je SHORT G_M16529_IG15
;; size=9 bbWeight=0.40 PerfScore 1.30
G_M16529_IG14:
jmp SHORT G_M16529_IG16
;; size=2 bbWeight=0.32 PerfScore 0.64
G_M16529_IG15:
- mov rdi, r13
+ mov rdi, rsi
mov rsi, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- mov r12, rax
+ mov r13, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M16529_IG16:
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 88
+ mov rdi, gword ptr [rbp-0x60]
+ mov r11, qword ptr [rdi]
+ mov r11, qword ptr [r11+0x30]
+ mov r11, qword ptr [r11+0x08]
+ cmp qword ptr [r11+0x08], 88
jle SHORT G_M16529_IG17
- ;; size=15 bbWeight=0.50 PerfScore 4.00
+ ;; size=22 bbWeight=0.50 PerfScore 5.50
G_M16529_IG17:
- mov r11, r12
- mov rdi, gword ptr [rbp-0x78]
+ mov r11, r13
+ mov rdi, gword ptr [rbp-0x70]
call [r11]
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Array:Clear(System.Array)
call [rax]System.Array:Clear(System.Array)
- mov rdi, gword ptr [rbp-0x78]
+ mov rdi, gword ptr [rbp-0x70]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M16529_IG17
;; size=46 bbWeight=4 PerfScore 53.00
G_M16529_IG18:
- mov rdi, gword ptr [rbp-0x78]
+ mov rdi, gword ptr [rbp-0x70]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
- jmp G_M16529_IG55
+ jmp G_M16529_IG50
;; size=22 bbWeight=0.50 PerfScore 3.12
G_M16529_IG19:
- mov rdi, gword ptr [rbp-0x68]
- mov r13, qword ptr [rdi]
- mov rax, r13
+ mov rdi, gword ptr [rbp-0x60]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x30]
mov rax, qword ptr [rax+0x08]
cmp qword ptr [rax+0x08], 72
jle SHORT G_M16529_IG20
- ;; size=25 bbWeight=0.50 PerfScore 5.62
+ ;; size=22 bbWeight=0.50 PerfScore 5.50
G_M16529_IG20:
mov rdi, gword ptr [rdi+0x08]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x78], rax
;; size=22 bbWeight=0.50 PerfScore 4.62
G_M16529_IG21:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je G_M16529_IG35
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 80
+ je G_M16529_IG33
+ mov rdi, gword ptr [rbp-0x60]
+ mov rsi, qword ptr [rdi]
+ mov rax, qword ptr [rsi+0x30]
+ mov rax, qword ptr [rax+0x08]
+ cmp qword ptr [rax+0x08], 80
jle SHORT G_M16529_IG24
- ;; size=39 bbWeight=0.50 PerfScore 6.38
+ ;; size=46 bbWeight=0.50 PerfScore 7.88
G_M16529_IG22:
- mov r12, qword ptr [rdi+0x50]
- test r12, r12
+ mov r13, qword ptr [rax+0x50]
+ test r13, r13
je SHORT G_M16529_IG24
;; size=9 bbWeight=0.40 PerfScore 1.30
G_M16529_IG23:
jmp SHORT G_M16529_IG25
;; size=2 bbWeight=0.32 PerfScore 0.64
G_M16529_IG24:
- mov rdi, r13
+ mov rdi, rsi
mov rsi, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- mov r12, rax
+ mov r13, rax
;; size=21 bbWeight=0.18 PerfScore 0.32
G_M16529_IG25:
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 88
+ mov rdi, gword ptr [rbp-0x60]
+ mov r11, qword ptr [rdi]
+ mov r11, qword ptr [r11+0x30]
+ mov r11, qword ptr [r11+0x08]
+ cmp qword ptr [r11+0x08], 88
jle SHORT G_M16529_IG26
- ;; size=15 bbWeight=0.50 PerfScore 4.00
+ ;; size=22 bbWeight=0.50 PerfScore 5.50
G_M16529_IG26:
- mov r11, r12
- mov rdi, gword ptr [rbp-0x80]
+ mov r11, r13
+ mov rdi, gword ptr [rbp-0x78]
call [r11]
mov r15, rax
xor ebx, ebx
- mov eax, dword ptr [r15+0x08]
- mov dword ptr [rbp-0x58], eax
- test eax, eax
- jle SHORT G_M16529_IG32
- ;; size=26 bbWeight=4 PerfScore 36.00
+ mov r12d, dword ptr [r15+0x08]
+ test r12d, r12d
+ jle SHORT G_M16529_IG30
+ ;; size=24 bbWeight=4 PerfScore 32.00
G_M16529_IG27:
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 96
- jle SHORT G_M16529_IG29
- ;; size=15 bbWeight=2 PerfScore 16.00
-G_M16529_IG28:
- mov rdi, qword ptr [rdi+0x60]
- test rdi, rdi
- ;; size=7 bbWeight=1.60 PerfScore 3.60
-G_M16529_IG29:
mov edi, ebx
shl rdi, 4
lea rdi, bword ptr [r15+rdi+0x10]
- xor rcx, rcx
- xchg gword ptr [rdi], rcx
- mov gword ptr [rbp-0x88], rcx
- test rcx, rcx
- je SHORT G_M16529_IG31
- ;; size=28 bbWeight=16 PerfScore 388.00
-G_M16529_IG30:
- mov rdi, rcx
+ xor rax, rax
+ xchg gword ptr [rdi], rax
+ mov gword ptr [rbp-0x80], rax
+ test rax, rax
+ je SHORT G_M16529_IG29
+ ;; size=25 bbWeight=16 PerfScore 388.00
+G_M16529_IG28:
+ mov rdi, rax
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov dword ptr [rbp-0x44], eax
- mov rdi, gword ptr [rbp-0x88]
+ mov rdi, gword ptr [rbp-0x80]
mov ecx, dword ptr [rdi+0x08]
mov dword ptr [rbp-0x48], ecx
- mov rdi, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x60]
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov r8d, eax
mov rdi, r14
mov edx, dword ptr [rbp-0x44]
mov ecx, dword ptr [rbp-0x48]
mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
- ;; size=62 bbWeight=8 PerfScore 114.00
-G_M16529_IG31:
+ ;; size=59 bbWeight=8 PerfScore 114.00
+G_M16529_IG29:
inc ebx
- mov eax, dword ptr [rbp-0x58]
- cmp eax, ebx
- jg SHORT G_M16529_IG29
- ;; size=9 bbWeight=16 PerfScore 40.00
-G_M16529_IG32:
- mov rdi, gword ptr [rbp-0x80]
+ cmp r12d, ebx
+ jg SHORT G_M16529_IG27
+ ;; size=7 bbWeight=16 PerfScore 24.00
+G_M16529_IG30:
+ mov rdi, gword ptr [rbp-0x78]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne G_M16529_IG26
;; size=25 bbWeight=4 PerfScore 22.00
-G_M16529_IG33:
- jmp SHORT G_M16529_IG35
+G_M16529_IG31:
+ jmp SHORT G_M16529_IG33
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M16529_IG34:
+G_M16529_IG32:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M16529_IG35:
- mov rdi, gword ptr [rbp-0x80]
+G_M16529_IG33:
+ mov rdi, gword ptr [rbp-0x78]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
- jmp G_M16529_IG55
+ jmp G_M16529_IG50
;; size=22 bbWeight=0.50 PerfScore 3.12
-G_M16529_IG36:
+G_M16529_IG34:
mov r12d, 0x7530
mov edi, 0x3A98
cmp r15d, 1
cmove r12d, edi
- mov rdi, gword ptr [rbp-0x68]
- mov r13, qword ptr [rdi]
- mov rax, r13
+ mov rdi, gword ptr [rbp-0x60]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x30]
mov rax, qword ptr [rax+0x08]
cmp qword ptr [rax+0x08], 72
- jle SHORT G_M16529_IG37
- ;; size=44 bbWeight=0.50 PerfScore 6.12
-G_M16529_IG37:
+ jle SHORT G_M16529_IG35
+ ;; size=41 bbWeight=0.50 PerfScore 6.00
+G_M16529_IG35:
mov rdi, gword ptr [rdi+0x08]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this
cmp dword ptr [rdi], edi
call [rax]System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]:System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this
- mov gword ptr [rbp-0x90], rax
+ mov gword ptr [rbp-0x88], rax
;; size=25 bbWeight=0.50 PerfScore 4.62
-G_M16529_IG38:
+G_M16529_IG36:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je G_M16529_IG54
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 80
- jle SHORT G_M16529_IG41
- ;; size=39 bbWeight=0.50 PerfScore 6.38
-G_M16529_IG39:
- mov rax, qword ptr [rdi+0x50]
- test rax, rax
- je SHORT G_M16529_IG41
+ je G_M16529_IG49
+ mov rdi, gword ptr [rbp-0x60]
+ mov rsi, qword ptr [rdi]
+ mov rax, qword ptr [rsi+0x30]
+ mov rax, qword ptr [rax+0x08]
+ cmp qword ptr [rax+0x08], 80
+ jle SHORT G_M16529_IG39
+ ;; size=46 bbWeight=0.50 PerfScore 7.88
+G_M16529_IG37:
+ mov r13, qword ptr [rax+0x50]
+ test r13, r13
+ je SHORT G_M16529_IG39
;; size=9 bbWeight=0.40 PerfScore 1.30
-G_M16529_IG40:
- jmp SHORT G_M16529_IG42
+G_M16529_IG38:
+ jmp SHORT G_M16529_IG40
;; size=2 bbWeight=0.32 PerfScore 0.64
-G_M16529_IG41:
- mov rdi, r13
+G_M16529_IG39:
+ mov rdi, rsi
mov rsi, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=18 bbWeight=0.18 PerfScore 0.27
-G_M16529_IG42:
+ mov r13, rax
+ ;; size=21 bbWeight=0.18 PerfScore 0.32
+G_M16529_IG40:
+ mov rdi, gword ptr [rbp-0x60]
+ mov r11, qword ptr [rdi]
+ mov r11, qword ptr [r11+0x30]
+ mov r11, qword ptr [r11+0x08]
+ cmp qword ptr [r11+0x08], 88
+ jle SHORT G_M16529_IG41
+ ;; size=22 bbWeight=0.50 PerfScore 5.50
+G_M16529_IG41:
+ mov r11, r13
+ mov rdi, gword ptr [rbp-0x88]
+ call [r11]
mov r15, rax
- mov rdi, qword ptr [r13+0x30]
- mov rdi, qword ptr [rdi+0x08]
- cmp qword ptr [rdi+0x08], 88
- jle SHORT G_M16529_IG43
- ;; size=18 bbWeight=0.50 PerfScore 4.12
+ xor eax, eax
+ mov ecx, dword ptr [r15+0x08]
+ mov dword ptr [rbp-0x58], ecx
+ test ecx, ecx
+ jle SHORT G_M16529_IG45
+ ;; size=29 bbWeight=4 PerfScore 36.00
+G_M16529_IG42:
+ mov dword ptr [rbp-0x34], eax
+ mov edi, eax
+ shl rdi, 4
+ cmp gword ptr [r15+rdi+0x10], 0
+ je SHORT G_M16529_IG44
+ ;; size=17 bbWeight=16 PerfScore 92.00
G_M16529_IG43:
- mov r11, r15
- mov rdi, gword ptr [rbp-0x90]
- call [r11]
- mov gword ptr [rbp-0x98], rax
- xor ecx, ecx
- mov edx, dword ptr [rax+0x08]
- mov dword ptr [rbp-0x5C], edx
+ mov edx, dword ptr [r15+rdi+0x18]
test edx, edx
- jle SHORT G_M16529_IG47
- ;; size=32 bbWeight=4 PerfScore 39.00
+ jne SHORT G_M16529_IG48
+ mov dword ptr [r15+rdi+0x18], ebx
+ ;; size=14 bbWeight=8 PerfScore 34.00
G_M16529_IG44:
- mov dword ptr [rbp-0x34], ecx
- mov edi, ecx
- shl rdi, 4
- cmp gword ptr [rax+rdi+0x10], 0
- je SHORT G_M16529_IG46
- ;; size=17 bbWeight=16 PerfScore 92.00
-G_M16529_IG45:
- mov esi, dword ptr [rax+rdi+0x18]
- test esi, esi
- jne SHORT G_M16529_IG50
- mov dword ptr [rax+rdi+0x18], ebx
- ;; size=12 bbWeight=8 PerfScore 34.00
-G_M16529_IG46:
- mov ecx, dword ptr [rbp-0x34]
- inc ecx
- mov edx, dword ptr [rbp-0x5C]
- cmp edx, ecx
- jg SHORT G_M16529_IG44
+ mov eax, dword ptr [rbp-0x34]
+ inc eax
+ mov ecx, dword ptr [rbp-0x58]
+ cmp ecx, eax
+ jg SHORT G_M16529_IG42
;; size=12 bbWeight=16 PerfScore 56.00
-G_M16529_IG47:
- mov rdi, gword ptr [rbp-0x90]
+G_M16529_IG45:
+ mov rdi, gword ptr [rbp-0x88]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- jne SHORT G_M16529_IG43
+ jne SHORT G_M16529_IG41
;; size=24 bbWeight=4 PerfScore 22.00
-G_M16529_IG48:
- jmp G_M16529_IG54
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M16529_IG49:
+G_M16529_IG46:
+ jmp SHORT G_M16529_IG49
+ ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M16529_IG47:
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M16529_IG50:
- mov r8d, ebx
- sub r8d, esi
- movsxd rsi, r8d
- mov r8d, r12d
- cmp rsi, r8
- jl SHORT G_M16529_IG46
- mov rsi, qword ptr [r13+0x30]
- mov rsi, qword ptr [rsi+0x08]
- cmp qword ptr [rsi+0x08], 96
- jle SHORT G_M16529_IG51
- ;; size=32 bbWeight=8 PerfScore 82.00
-G_M16529_IG51:
- lea rdi, bword ptr [rax+rdi+0x10]
- xor rsi, rsi
- xchg gword ptr [rdi], rsi
- mov gword ptr [rbp-0xA0], rsi
- test rsi, rsi
- je SHORT G_M16529_IG53
+G_M16529_IG48:
+ mov esi, ebx
+ sub esi, edx
+ movsxd rdx, esi
+ mov esi, r12d
+ cmp rdx, rsi
+ jl SHORT G_M16529_IG44
+ lea rdi, bword ptr [r15+rdi+0x10]
+ xor rdx, rdx
+ xchg gword ptr [rdi], rdx
+ mov gword ptr [rbp-0x90], rdx
+ test rdx, rdx
+ je SHORT G_M16529_IG44
cmp byte ptr [r14+0x9D], 0
- je SHORT G_M16529_IG52
- mov rdi, rsi
+ je SHORT G_M16529_IG44
+ mov rdi, rdx
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov dword ptr [rbp-0x3C], eax
- mov rdi, gword ptr [rbp-0xA0]
+ mov rdi, gword ptr [rbp-0x90]
mov ecx, dword ptr [rdi+0x08]
mov dword ptr [rbp-0x40], ecx
- mov rdi, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x60]
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov r8d, eax
mov rdi, r14
mov edx, dword ptr [rbp-0x3C]
mov ecx, dword ptr [rbp-0x40]
mov esi, 4
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
- mov rax, gword ptr [rbp-0x98]
- jmp G_M16529_IG46
- ;; size=106 bbWeight=8 PerfScore 358.00
-G_M16529_IG52:
- mov rax, gword ptr [rbp-0x98]
- jmp G_M16529_IG46
- ;; size=12 bbWeight=4 PerfScore 12.00
-G_M16529_IG53:
- mov rax, gword ptr [rbp-0x98]
- jmp G_M16529_IG46
- ;; size=12 bbWeight=4 PerfScore 12.00
-G_M16529_IG54:
- mov rdi, gword ptr [rbp-0x90]
+ jmp G_M16529_IG44
+ ;; size=114 bbWeight=8 PerfScore 368.00
+G_M16529_IG49:
+ mov rdi, gword ptr [rbp-0x88]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=20 bbWeight=0.50 PerfScore 2.12
-G_M16529_IG55:
+G_M16529_IG50:
mov eax, 1
;; size=5 bbWeight=1 PerfScore 0.25
-G_M16529_IG56:
- add rsp, 152
+G_M16529_IG51:
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M16529_IG57:
+G_M16529_IG52:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M16529_IG58:
+G_M16529_IG53:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xC0]
+ lea rbp, [rbp+0xB0]
;; size=25 bbWeight=0 PerfScore 0.00
-G_M16529_IG59:
- cmp gword ptr [rbp-0x78], 0
- je SHORT G_M16529_IG60
- mov rdi, gword ptr [rbp-0x78]
+G_M16529_IG54:
+ cmp gword ptr [rbp-0x70], 0
+ je SHORT G_M16529_IG55
+ mov rdi, gword ptr [rbp-0x70]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
-G_M16529_IG60:
+G_M16529_IG55:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M16529_IG61:
+G_M16529_IG56:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M16529_IG62:
+G_M16529_IG57:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xC0]
+ lea rbp, [rbp+0xB0]
;; size=25 bbWeight=0 PerfScore 0.00
-G_M16529_IG63:
- cmp gword ptr [rbp-0x80], 0
- je SHORT G_M16529_IG64
- mov rdi, gword ptr [rbp-0x80]
+G_M16529_IG58:
+ cmp gword ptr [rbp-0x78], 0
+ je SHORT G_M16529_IG59
+ mov rdi, gword ptr [rbp-0x78]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
-G_M16529_IG64:
+G_M16529_IG59:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M16529_IG65:
+G_M16529_IG60:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M16529_IG66:
+G_M16529_IG61:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xC0]
+ lea rbp, [rbp+0xB0]
;; size=25 bbWeight=0 PerfScore 0.00
-G_M16529_IG67:
- cmp gword ptr [rbp-0x90], 0
- je SHORT G_M16529_IG68
- mov rdi, gword ptr [rbp-0x90]
+G_M16529_IG62:
+ cmp gword ptr [rbp-0x88], 0
+ je SHORT G_M16529_IG63
+ mov rdi, gword ptr [rbp-0x88]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=30 bbWeight=0 PerfScore 0.00
-G_M16529_IG68:
+G_M16529_IG63:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M16529_IG69:
+G_M16529_IG64:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1537, prolog size 40, PerfScore 1995.27, instruction count 405, allocated bytes for code 1537 (MethodHash=d29cbf6e) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
+; Total bytes of code 1486, prolog size 40, PerfScore 1860.12, instruction count 397, allocated bytes for code 1486 (MethodHash=d29cbf6e) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)