MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [EgorBo] Assign VN for COMMA in gtWrapWithSideEffects #732

Open MihuBot opened 2 days ago

MihuBot commented 2 days ago

Job completed in 20 minutes 34 seconds. https://github.com/dotnet/runtime/pull/108955

Diffs

Found 263 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39399018
Total bytes of diff: 39398992
Total bytes of delta: -26 (-0.00 % of base)
Total relative delta: -0.01
    diff is an improvement.
    relative diff is an improvement.

Top file improvements (bytes):
         -26 : System.Text.RegularExpressions.dasm (-0.00 % of base)

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

Top method improvements (bytes):
         -26 (-1.35 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts)

Top method improvements (percentages):
         -26 (-1.35 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts)

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

--------------------------------------------------------------------------------

Artifacts:

MihuBot commented 2 days ago

Top method improvements

-26 (-1.35 % of base) - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this ```diff ; Assembly listing for method System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 47 single block inlinees; 45 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 12, 7 ) ref -> rbx this class-hnd single-def ;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ; V02 arg2 [V02,T01] ( 5, 4 ) ref -> r15 class-hnd single-def ; V03 arg3 [V03,T06] ( 4, 3 ) int -> r14 single-def ; V04 arg4 [V04,T07] ( 3, 2.50) ubyte -> r13 single-def ; V05 loc0 [V05,T31] ( 4, 2 ) int -> r13 ;* V06 loc1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;* V07 loc2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ;* V08 loc3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ; V09 loc4 [V09 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd -; V10 loc5 [V10 ] ( 85, 42.50) struct (40) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op +; V10 loc5 [V10 ] ( 84, 42 ) struct (40) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V12 tmp1 [V12,T08] ( 4, 4 ) ref -> r12 class-hnd exact single-def "dup spill" ; V13 tmp2 [V13,T32] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" ;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" ;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" ;* V16 tmp5 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" ;* V17 tmp6 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" -; V18 tmp7 [V18,T24] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" +; V18 tmp7 [V18,T23] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" ;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref single-def ;* V20 tmp9 [V20 ] ( 0, 0 ) ref -> zero-ref single-def ;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref single-def -; V22 tmp11 [V22,T45] ( 3, 1.50) ref -> rbx +; V22 tmp11 [V22,T44] ( 3, 1.50) ref -> rbx ; V23 tmp12 [V23,T02] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" ;* V24 tmp13 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V25 tmp14 [V25,T03] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V26 tmp15 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V27 tmp16 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V28 tmp17 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V30 tmp19 [V30,T14] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V31 tmp20 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V32 tmp21 [V32,T25] ( 3, 3 ) byref -> rax single-def "Inlining Arg" -; V33 tmp22 [V33,T39] ( 2, 2 ) int -> rsi "Inlining Arg" +; V32 tmp21 [V32,T24] ( 3, 3 ) byref -> rax single-def "Inlining Arg" +; V33 tmp22 [V33,T38] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V34 tmp23 [V34,T58] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V37 tmp26 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V38 tmp27 [V38 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V39 tmp28 [V39,T15] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V41 tmp30 [V41,T09] ( 4, 4 ) byref -> rax single-def "Inlining Arg" -; V42 tmp31 [V42,T40] ( 2, 2 ) int -> rsi "Inlining Arg" +; V42 tmp31 [V42,T39] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V43 tmp32 [V43,T59] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V44 tmp33 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V45 tmp34 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V46 tmp35 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V47 tmp36 [V47 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V48 tmp37 [V48,T16] ( 3, 3 ) int -> rdx "Inlining Arg" +; V48 tmp37 [V48,T16] ( 2, 2 ) int -> rdi "Inlining Arg" ;* V49 tmp38 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V50 tmp39 [V50,T33] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" +;* V50 tmp39 [V50,T52] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V51 tmp40 [V51,T55] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V52 tmp41 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V54 tmp43 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V55 tmp44 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V56 tmp45 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V57 tmp46 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" -; V58 tmp47 [V58,T34] ( 2, 2 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" -; V59 tmp48 [V59,T35] ( 2, 2 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inlining Arg" +; V58 tmp47 [V58,T33] ( 2, 2 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" +; V59 tmp48 [V59,T34] ( 2, 2 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inlining Arg" ; V60 tmp49 [V60,T10] ( 4, 4 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" ;* V61 tmp50 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" ;* V62 tmp51 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V63 tmp52 [V63,T04] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V64 tmp53 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V65 tmp54 [V65 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V66 tmp55 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V67 tmp56 [V67 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V68 tmp57 [V68,T17] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V69 tmp58 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V70 tmp59 [V70,T26] ( 3, 3 ) byref -> rax single-def "Inlining Arg" -; V71 tmp60 [V71,T41] ( 2, 2 ) int -> rsi "Inlining Arg" +; V70 tmp59 [V70,T25] ( 3, 3 ) byref -> rax single-def "Inlining Arg" +; V71 tmp60 [V71,T40] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V72 tmp61 [V72,T61] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V73 tmp62 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V74 tmp63 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V75 tmp64 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V76 tmp65 [V76 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V77 tmp66 [V77,T18] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V78 tmp67 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V79 tmp68 [V79,T11] ( 4, 4 ) byref -> rax single-def "Inlining Arg" -; V80 tmp69 [V80,T42] ( 2, 2 ) int -> rsi "Inlining Arg" +; V80 tmp69 [V80,T41] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V81 tmp70 [V81,T62] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V82 tmp71 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V83 tmp72 [V83 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V84 tmp73 [V84 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V85 tmp74 [V85 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V86 tmp75 [V86,T19] ( 2, 2 ) int -> rdi "Inlining Arg" ;* V87 tmp76 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V88 tmp77 [V88,T53] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V89 tmp78 [V89,T56] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V90 tmp79 [V90,T63] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V91 tmp80 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V92 tmp81 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V93 tmp82 [V93 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V94 tmp83 [V94 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V95 tmp84 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" -; V96 tmp85 [V96,T36] ( 2, 2 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" -; V97 tmp86 [V97,T37] ( 2, 2 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "Inlining Arg" +; V96 tmp85 [V96,T35] ( 2, 2 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" +; V97 tmp86 [V97,T36] ( 2, 2 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "Inlining Arg" ; V98 tmp87 [V98,T12] ( 4, 4 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "NewObj constructor temp" ;* V99 tmp88 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" ;* V100 tmp89 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V101 tmp90 [V101,T05] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V102 tmp91 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V103 tmp92 [V103 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V104 tmp93 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V105 tmp94 [V105 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V106 tmp95 [V106,T20] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V107 tmp96 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V108 tmp97 [V108,T27] ( 3, 3 ) byref -> r12 single-def "Inlining Arg" -; V109 tmp98 [V109,T43] ( 2, 2 ) int -> rsi "Inlining Arg" +; V108 tmp97 [V108,T26] ( 3, 3 ) byref -> r12 single-def "Inlining Arg" +; V109 tmp98 [V109,T42] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V110 tmp99 [V110,T64] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V111 tmp100 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V112 tmp101 [V112 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V113 tmp102 [V113 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V114 tmp103 [V114 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V115 tmp104 [V115,T21] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V116 tmp105 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V117 tmp106 [V117,T28] ( 3, 3 ) byref -> r13 single-def "Inlining Arg" -; V118 tmp107 [V118,T44] ( 2, 2 ) int -> rsi "Inlining Arg" +; V117 tmp106 [V117,T27] ( 3, 3 ) byref -> r13 single-def "Inlining Arg" +; V118 tmp107 [V118,T43] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V119 tmp108 [V119,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V120 tmp109 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V121 tmp110 [V121 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V122 tmp111 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V123 tmp112 [V123 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V124 tmp113 [V124,T22] ( 2, 2 ) int -> rdi "Inlining Arg" ;* V125 tmp114 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V126 tmp115 [V126,T54] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V127 tmp116 [V127,T57] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V128 tmp117 [V128,T66] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ;* V129 tmp118 [V129 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V130 tmp119 [V130 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V131 tmp120 [V131 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V132 tmp121 [V132 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V133 tmp122 [V133,T13] ( 4, 4 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" ;* V134 tmp123 [V134 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V135 tmp124 [V135,T38] ( 2, 2 ) ref -> r15 class-hnd single-def "Inlining Arg" -; V136 tmp125 [V136,T46] ( 3, 1.50) byref -> rdi "field V28._reference (fldOffset=0x0)" P-INDEP -; V137 tmp126 [V137,T50] ( 3, 1.50) int -> rsi "field V28._length (fldOffset=0x8)" P-INDEP +; V135 tmp124 [V135,T37] ( 2, 2 ) ref -> r15 class-hnd single-def "Inlining Arg" +; V136 tmp125 [V136,T45] ( 3, 1.50) byref -> rdi "field V28._reference (fldOffset=0x0)" P-INDEP +; V137 tmp126 [V137,T49] ( 3, 1.50) int -> rsi "field V28._length (fldOffset=0x8)" P-INDEP ;* V138 tmp127 [V138 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP ;* V139 tmp128 [V139 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP ;* V140 tmp129 [V140 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP ;* V141 tmp130 [V141 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V142 tmp131 [V142 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP ;* V143 tmp132 [V143 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP ;* V144 tmp133 [V144 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP ;* V145 tmp134 [V145 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP ;* V146 tmp135 [V146 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP ;* V147 tmp136 [V147 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP ;* V148 tmp137 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP ;* V149 tmp138 [V149 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP ;* V150 tmp139 [V150 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP ;* V151 tmp140 [V151 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP ;* V152 tmp141 [V152 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP ;* V153 tmp142 [V153 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP ;* V154 tmp143 [V154 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP ;* V155 tmp144 [V155 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP -; V156 tmp145 [V156,T47] ( 3, 1.50) byref -> rdi "field V66._reference (fldOffset=0x0)" P-INDEP -; V157 tmp146 [V157,T51] ( 3, 1.50) int -> rsi "field V66._length (fldOffset=0x8)" P-INDEP +; V156 tmp145 [V156,T46] ( 3, 1.50) byref -> rdi "field V66._reference (fldOffset=0x0)" P-INDEP +; V157 tmp146 [V157,T50] ( 3, 1.50) int -> rsi "field V66._length (fldOffset=0x8)" P-INDEP ;* V158 tmp147 [V158 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP ;* V159 tmp148 [V159 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP ;* V160 tmp149 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP ;* V161 tmp150 [V161 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP ;* V162 tmp151 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V73._reference (fldOffset=0x0)" P-INDEP ;* V163 tmp152 [V163 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP ;* V164 tmp153 [V164 ] ( 0, 0 ) byref -> zero-ref "field V76._reference (fldOffset=0x0)" P-INDEP ;* V165 tmp154 [V165 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP ;* V166 tmp155 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP ;* V167 tmp156 [V167 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP ;* V168 tmp157 [V168 ] ( 0, 0 ) byref -> zero-ref single-def "field V82._reference (fldOffset=0x0)" P-INDEP ;* V169 tmp158 [V169 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP ;* V170 tmp159 [V170 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP ;* V171 tmp160 [V171 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP ;* V172 tmp161 [V172 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP ;* V173 tmp162 [V173 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP ;* V174 tmp163 [V174 ] ( 0, 0 ) byref -> zero-ref single-def "field V91._reference (fldOffset=0x0)" P-INDEP ;* V175 tmp164 [V175 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP -; V176 tmp165 [V176,T48] ( 3, 1.50) byref -> rdi "field V104._reference (fldOffset=0x0)" P-INDEP -; V177 tmp166 [V177,T52] ( 3, 1.50) int -> rsi "field V104._length (fldOffset=0x8)" P-INDEP +; V176 tmp165 [V176,T47] ( 3, 1.50) byref -> rdi "field V104._reference (fldOffset=0x0)" P-INDEP +; V177 tmp166 [V177,T51] ( 3, 1.50) int -> rsi "field V104._length (fldOffset=0x8)" P-INDEP ;* V178 tmp167 [V178 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP ;* V179 tmp168 [V179 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP ;* V180 tmp169 [V180 ] ( 0, 0 ) byref -> zero-ref single-def "field V107._reference (fldOffset=0x0)" P-INDEP ;* V181 tmp170 [V181 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP ;* V182 tmp171 [V182 ] ( 0, 0 ) byref -> zero-ref single-def "field V111._reference (fldOffset=0x0)" P-INDEP ;* V183 tmp172 [V183 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP ;* V184 tmp173 [V184 ] ( 0, 0 ) byref -> zero-ref "field V114._reference (fldOffset=0x0)" P-INDEP ;* V185 tmp174 [V185 ] ( 0, 0 ) int -> zero-ref "field V114._length (fldOffset=0x8)" P-INDEP ;* V186 tmp175 [V186 ] ( 0, 0 ) byref -> zero-ref single-def "field V116._reference (fldOffset=0x0)" P-INDEP ;* V187 tmp176 [V187 ] ( 0, 0 ) int -> zero-ref "field V116._length (fldOffset=0x8)" P-INDEP ;* V188 tmp177 [V188 ] ( 0, 0 ) byref -> zero-ref single-def "field V120._reference (fldOffset=0x0)" P-INDEP ;* V189 tmp178 [V189 ] ( 0, 0 ) int -> zero-ref "field V120._length (fldOffset=0x8)" P-INDEP ;* V190 tmp179 [V190 ] ( 0, 0 ) byref -> zero-ref "field V123._reference (fldOffset=0x0)" P-INDEP ;* V191 tmp180 [V191 ] ( 0, 0 ) int -> zero-ref "field V123._length (fldOffset=0x8)" P-INDEP ;* V192 tmp181 [V192 ] ( 0, 0 ) byref -> zero-ref single-def "field V125._reference (fldOffset=0x0)" P-INDEP ;* V193 tmp182 [V193 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP ;* V194 tmp183 [V194 ] ( 0, 0 ) byref -> zero-ref single-def "field V129._reference (fldOffset=0x0)" P-INDEP ;* V195 tmp184 [V195 ] ( 0, 0 ) int -> zero-ref "field V129._length (fldOffset=0x8)" P-INDEP ; V196 cse0 [V196,T30] ( 4, 2 ) ref -> r12 "CSE #08: conservative" -; V197 cse1 [V197,T49] ( 3, 1.50) ref -> [rbp-0x98] spill-single-def "CSE #16: conservative" -; V198 cse2 [V198,T23] ( 6, 3 ) ref -> [rbp-0xA0] multi-def "CSE #06: aggressive" +; V197 cse1 [V197,T48] ( 3, 1.50) ref -> [rbp-0x98] spill-single-def "CSE #16: conservative" +; V198 cse2 [V198,T28] ( 5, 2.50) ref -> [rbp-0xA0] multi-def "CSE #06: aggressive" ; V199 cse3 [V199,T29] ( 5, 2.50) ref -> [rbp-0xA8] multi-def "CSE #02: moderate" ; ; Lcl frame size = 168 G_M15201_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 168 lea rbp, [rsp+0xD0] xor eax, eax mov qword ptr [rbp-0x58], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 mov qword ptr [rbp-0x30], rax mov rbx, rdi mov r15, rdx mov r14d, ecx mov r13d, r8d ;; size=57 bbWeight=1 PerfScore 12.33 G_M15201_IG02: mov rdi, gword ptr [r15+0x08] lea rsi, [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:SupportsCompilation(byref):ubyte:this cmp dword ptr [rdi], edi call [rax]System.Text.RegularExpressions.RegexNode:SupportsCompilation(byref):ubyte:this test eax, eax je G_M15201_IG37 ;; size=30 bbWeight=1 PerfScore 10.00 G_M15201_IG03: lea rdi, bword ptr [rbx+0x10] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov dword ptr [rbx+0x30], r14d mov byte ptr [rbx+0x34], r13b mov rdi, 0xD1FFAB1E ; static handle mov esi, 1 mov r13d, esi lock xadd dword ptr [rdi], r13d inc r13d xor rdi, rdi mov gword ptr [rbp-0x58], rdi mov rdi, 0xD1FFAB1E ; const ptr mov r12, gword ptr [rdi] mov rdi, r12 mov esi, 256 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this mov gword ptr [rbp-0x50], rax test rax, rax je SHORT G_M15201_IG04 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] jmp SHORT G_M15201_IG05 ;; size=103 bbWeight=0.50 PerfScore 17.88 G_M15201_IG04: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M15201_IG05: mov bword ptr [rbp-0x40], rdi mov dword ptr [rbp-0x38], esi xor edi, edi mov dword ptr [rbp-0x48], edi mov byte ptr [rbp-0x44], 0 mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov rsi, bword ptr [rbp-0x40] mov eax, edi lea rax, bword ptr [rsi+2*rax] mov esi, dword ptr [rbp-0x38] sub esi, edi cmp esi, 5 jae SHORT G_M15201_IG06 lea rdi, [rbp-0x58] mov rcx, 0xD1FFAB1E ; 'Regex' mov gword ptr [rbp-0xA8], rcx mov rsi, rcx mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this jmp SHORT G_M15201_IG07 ;; size=86 bbWeight=0.50 PerfScore 9.88 G_M15201_IG06: mov rcx, 0xD1FFAB1E ; 'Regex' mov gword ptr [rbp-0xA8], rcx mov rdi, 0xD1FFAB1E mov qword ptr [rax], rdi mov word ptr [rax+0x08], 120 mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi ;; size=45 bbWeight=0.50 PerfScore 2.88 G_M15201_IG07: lea rdi, [rbp-0x58] mov esi, r13d mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov rsi, bword ptr [rbp-0x40] mov eax, edi lea rax, bword ptr [rsi+2*rax] mov esi, dword ptr [rbp-0x38] sub esi, edi cmp esi, 36 jae SHORT G_M15201_IG08 lea rdi, [rbp-0x58] mov rsi, 0xD1FFAB1E ; '_TryFindNextPossibleStartingPosition' mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this jmp SHORT G_M15201_IG09 ;; size=79 bbWeight=0.50 PerfScore 9.12 G_M15201_IG08: vmovups ymm0, ymmword ptr [reloc @RWD00] vmovups ymmword ptr [rax], ymm0 vmovups ymm0, ymmword ptr [reloc @RWD32] vmovups ymmword ptr [rax+0x20], ymm0 mov rdi, 0xD1FFAB1E mov qword ptr [rax+0x40], rdi mov edi, dword ptr [rbp-0x48] add edi, 36 mov dword ptr [rbp-0x48], edi ;; size=48 bbWeight=0.50 PerfScore 7.75 G_M15201_IG09: cmp byte ptr [rbp-0x44], 0 je SHORT G_M15201_IG10 lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; '' mov gword ptr [rbp-0xA0], rax mov rsi, rax mov rcx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this call [rcx]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this jmp SHORT G_M15201_IG11 ;; size=44 bbWeight=0.50 PerfScore 5.12 G_M15201_IG10: - mov edx, dword ptr [rbp-0x48] - cmp edx, dword ptr [rbp-0x38] + mov edi, dword ptr [rbp-0x48] + cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 - mov rsi, bword ptr [rbp-0x40] - lea rdi, bword ptr [rsi+2*rdx] mov rax, 0xD1FFAB1E ; '' - xor edx, edx mov gword ptr [rbp-0xA0], rax - lea rsi, bword ptr [rax+0x0C] - mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) - call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong) mov edi, dword ptr [rbp-0x48] mov dword ptr [rbp-0x48], edi - ;; size=61 bbWeight=0.50 PerfScore 6.38 + ;; size=35 bbWeight=0.50 PerfScore 3.62 G_M15201_IG11: lea rdi, [rbp-0x58] - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this + mov rcx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this + call [rcx]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this mov gword ptr [rbp-0x60], rax mov rdi, 0xD1FFAB1E ; const ptr mov rcx, gword ptr [rdi] mov gword ptr [rbp-0x98], rcx mov gword ptr [rbp-0x68], rcx mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.DynamicMethod call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x70], rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.CompiledRegexRunner' mov gword ptr [rsp], rdi xor rdi, rdi mov gword ptr [rsp+0x08], rdi ;; size=84 bbWeight=0.50 PerfScore 6.88 G_M15201_IG12: mov dword ptr [rsp+0x10], edi ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M15201_IG13: mov dword ptr [rsp+0x18], edi mov rdi, rax mov rsi, gword ptr [rbp-0x60] mov r9, gword ptr [rbp-0x68] mov edx, 22 mov ecx, 1 mov r8, 0xD1FFAB1E ; 'System.Boolean' mov r10, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this call [r10]System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this mov rdi, gword ptr [rbp-0x70] mov esi, 64 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this call [rax]System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this call [rax]System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this xor rdi, rdi mov gword ptr [rbp-0x58], rdi mov rdi, r12 mov esi, 256 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this mov gword ptr [rbp-0x50], rax test rax, rax je SHORT G_M15201_IG14 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] jmp SHORT G_M15201_IG15 ;; size=140 bbWeight=0.50 PerfScore 14.38 G_M15201_IG14: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M15201_IG15: mov bword ptr [rbp-0x40], rdi mov dword ptr [rbp-0x38], esi xor edi, edi mov dword ptr [rbp-0x48], edi mov byte ptr [rbp-0x44], 0 mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov rsi, bword ptr [rbp-0x40] mov eax, edi lea rax, bword ptr [rsi+2*rax] mov esi, dword ptr [rbp-0x38] sub esi, edi cmp esi, 5 jae SHORT G_M15201_IG16 lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA8] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this jmp SHORT G_M15201_IG17 ;; size=73 bbWeight=0.50 PerfScore 9.62 G_M15201_IG16: mov rdi, 0xD1FFAB1E mov qword ptr [rax], rdi mov word ptr [rax+0x08], 120 mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi ;; size=28 bbWeight=0.50 PerfScore 2.25 G_M15201_IG17: lea rdi, [rbp-0x58] mov esi, r13d mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov rsi, bword ptr [rbp-0x40] mov eax, edi lea rax, bword ptr [rsi+2*rax] mov esi, dword ptr [rbp-0x38] sub esi, edi cmp esi, 26 jae SHORT G_M15201_IG18 lea rdi, [rbp-0x58] mov rsi, 0xD1FFAB1E ; '_TryMatchAtCurrentPosition' mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this jmp SHORT G_M15201_IG19 ;; size=79 bbWeight=0.50 PerfScore 9.12 G_M15201_IG18: vmovups ymm0, ymmword ptr [reloc @RWD64] vmovups ymmword ptr [rax], ymm0 vmovups xmm0, xmmword ptr [reloc @RWD96] vmovups xmmword ptr [rax+0x20], xmm0 mov dword ptr [rax+0x30], 0xD1FFAB1E mov edi, dword ptr [rbp-0x48] add edi, 26 mov dword ptr [rbp-0x48], edi ;; size=41 bbWeight=0.50 PerfScore 7.12 G_M15201_IG19: cmp byte ptr [rbp-0x44], 0 je SHORT G_M15201_IG20 lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA0] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this jmp SHORT G_M15201_IG21 ;; size=31 bbWeight=0.50 PerfScore 4.88 G_M15201_IG20: mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov edi, dword ptr [rbp-0x48] mov dword ptr [rbp-0x48], edi ;; size=18 bbWeight=0.50 PerfScore 3.00 G_M15201_IG21: lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this mov gword ptr [rbp-0x78], rax mov rcx, gword ptr [rbp-0x98] mov gword ptr [rbp-0x80], rcx mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.DynamicMethod call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x88], rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.CompiledRegexRunner' mov gword ptr [rsp], rdi xor rdi, rdi mov gword ptr [rsp+0x08], rdi ;; size=74 bbWeight=0.50 PerfScore 5.75 G_M15201_IG22: mov dword ptr [rsp+0x10], edi ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M15201_IG23: mov dword ptr [rsp+0x18], edi mov rdi, rax mov rsi, gword ptr [rbp-0x78] mov r9, gword ptr [rbp-0x80] mov edx, 22 mov ecx, 1 mov r8, 0xD1FFAB1E ; 'System.Boolean' mov r10, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this call [r10]System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this mov rdi, gword ptr [rbp-0x88] mov esi, 64 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this call [rax]System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCompiler:EmitTryMatchAtCurrentPosition():this call [rax]System.Text.RegularExpressions.RegexCompiler:EmitTryMatchAtCurrentPosition():this xor rdi, rdi mov gword ptr [rbp-0x58], rdi mov rdi, r12 mov esi, 256 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this mov gword ptr [rbp-0x50], rax test rax, rax je SHORT G_M15201_IG24 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] jmp SHORT G_M15201_IG25 ;; size=143 bbWeight=0.50 PerfScore 14.38 G_M15201_IG24: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M15201_IG25: mov bword ptr [rbp-0x40], rdi mov dword ptr [rbp-0x38], esi xor edi, edi mov dword ptr [rbp-0x48], edi mov byte ptr [rbp-0x44], 0 mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov rsi, bword ptr [rbp-0x40] mov eax, edi lea r12, bword ptr [rsi+2*rax] mov esi, dword ptr [rbp-0x38] sub esi, edi cmp esi, 5 jae SHORT G_M15201_IG26 lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA8] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this jmp SHORT G_M15201_IG27 ;; size=73 bbWeight=0.50 PerfScore 9.62 G_M15201_IG26: mov rdi, 0xD1FFAB1E mov qword ptr [r12], rdi mov word ptr [r12+0x08], 120 mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi ;; size=31 bbWeight=0.50 PerfScore 2.25 G_M15201_IG27: lea rdi, [rbp-0x58] mov esi, r13d mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov rsi, bword ptr [rbp-0x40] mov eax, edi lea r13, bword ptr [rsi+2*rax] mov esi, dword ptr [rbp-0x38] sub esi, edi cmp esi, 5 jae SHORT G_M15201_IG28 lea rdi, [rbp-0x58] mov rsi, 0xD1FFAB1E ; '_Scan' mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this jmp SHORT G_M15201_IG29 ;; size=79 bbWeight=0.50 PerfScore 9.12 G_M15201_IG28: mov rdi, 0xD1FFAB1E mov qword ptr [r13], rdi mov word ptr [r13+0x08], 110 mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi ;; size=30 bbWeight=0.50 PerfScore 2.25 G_M15201_IG29: cmp byte ptr [rbp-0x44], 0 je SHORT G_M15201_IG30 lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA0] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this jmp SHORT G_M15201_IG31 ;; size=31 bbWeight=0.50 PerfScore 4.88 G_M15201_IG30: mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] ja G_M15201_IG39 mov edi, dword ptr [rbp-0x48] mov dword ptr [rbp-0x48], edi ;; size=18 bbWeight=0.50 PerfScore 3.00 G_M15201_IG31: lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this mov r13, rax mov rdi, 0xD1FFAB1E ; System.Type[] mov esi, 2 call CORINFO_HELP_NEWARR_1_OBJ mov r12, rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.RegexRunner' mov gword ptr [r12+0x10], rdi mov rdi, 0xD1FFAB1E ; 'System.ReadOnlySpan`1[System.Char]' mov gword ptr [r12+0x18], rdi mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.DynamicMethod call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x90], rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.CompiledRegexRunner' mov gword ptr [rsp], rdi xor rdi, rdi mov gword ptr [rsp+0x08], rdi ;; size=115 bbWeight=0.50 PerfScore 6.50 G_M15201_IG32: mov dword ptr [rsp+0x10], edi ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M15201_IG33: mov dword ptr [rsp+0x18], edi mov rdi, rax mov rsi, r13 mov r9, r12 mov edx, 22 mov ecx, 1 xor r8, r8 mov r10, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this call [r10]System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this mov rdi, gword ptr [rbp-0x90] mov esi, 64 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this call [rax]System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov esi, r14d mov rdx, gword ptr [rbp-0x70] mov rcx, gword ptr [rbp-0x88] mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCompiler:EmitScan(int,System.Reflection.MethodInfo,System.Reflection.MethodInfo):this call [rax]System.Text.RegularExpressions.RegexCompiler:EmitScan(int,System.Reflection.MethodInfo,System.Reflection.MethodInfo):this mov rdi, gword ptr [rbx+0x18] test rdi, rdi je SHORT G_M15201_IG34 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this call [rax]System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this mov rbx, rax jmp SHORT G_M15201_IG35 ;; size=130 bbWeight=0.50 PerfScore 13.25 G_M15201_IG34: xor rbx, rbx ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M15201_IG35: mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.CompiledRegexRunnerFactory call CORINFO_HELP_NEWSFAST mov r14, rax mov r15, gword ptr [r15+0x18] lea rdi, bword ptr [r14+0x08] mov rsi, gword ptr [rbp-0x90] call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r14+0x10] mov rsi, rbx call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r14+0x18] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov rax, r14 ;; size=65 bbWeight=0.50 PerfScore 4.88 G_M15201_IG36: vzeroupper add rsp, 168 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=21 bbWeight=0.50 PerfScore 2.62 G_M15201_IG37: xor rax, rax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M15201_IG38: vzeroupper add rsp, 168 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=21 bbWeight=0.50 PerfScore 2.62 G_M15201_IG39: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 RWD00 dq 007900720054005Fh, 0064006E00690046h, 007400780065004Eh, 00730073006F0050h RWD32 dq 0065006C00620069h, 0072006100740053h, 0067006E00690074h, 00690073006F0050h RWD64 dq 007900720054005Fh, 006300740061004Dh, 0043007400410068h, 0065007200720075h RWD96 dq 006F00500074006Eh, 0069007400690073h -; Total bytes of code 1919, prolog size 45, PerfScore 222.21, instruction count 441, allocated bytes for code 1919 (MethodHash=819ac49e) for method System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) +; Total bytes of code 1893, prolog size 45, PerfScore 219.46, instruction count 435, allocated bytes for code 1893 (MethodHash=819ac49e) for method System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) ; ============================================================ ```
MihuBot commented 2 days ago

@EgorBo