Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
MihuBot opened this issue Oct 17, 2024 · 2 comments
Open

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

MihuBot opened this issue Oct 17, 2024 · 2 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Oct 17, 2024

Job completed in 20 minutes 34 seconds.
dotnet/runtime#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
Copy link
Owner Author

MihuBot commented Oct 17, 2024

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
 ; 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 <System.Text.RegularExpressions.RegexLWCGCompiler>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T01] (  5,  4   )     ref  ->  r15         class-hnd single-def <System.Text.RegularExpressions.RegexTree>
 ;  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 <System.String>
 ;* V07 loc2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Reflection.Emit.DynamicMethod>
 ;* V08 loc3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Reflection.Emit.DynamicMethod>
 ;  V09 loc4         [V09    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
-;  V10 loc5         [V10    ] ( 85, 42.50)  struct (40) [rbp-0x58]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+;  V10 loc5         [V10    ] ( 84, 42   )  struct (40) [rbp-0x58]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;  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" <System.Type[]>
 ;  V13 tmp2         [V13,T32] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "impAppendStmt" <System.String>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V16 tmp5         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V17 tmp6         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Reflection.Emit.DynamicMethod>
-;  V18 tmp7         [V18,T24] (  3,  3   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Collections.Generic.List`1[System.Object]>
+;  V18 tmp7         [V18,T23] (  3,  3   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Collections.Generic.List`1[System.Object]>
 ;* 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" <System.Text.RegularExpressions.CompiledRegexRunnerFactory>
 ;* V24 tmp13        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
 ;  V25 tmp14        [V25,T03] (  5,  5   )     ref  ->  rax         class-hnd single-def "dup spill" <ushort[]>
 ;* V26 tmp15        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <ushort[]>
 ;* 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" <System.Span`1[ushort]>
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
-;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
-;  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" <System.Span`1[ushort]>
-;  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" <System.Span`1[ushort]>
 ;* 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" <System.Reflection.Emit.DynamicMethod>
-;  V58 tmp47        [V58,T34] (  2,  2   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V59 tmp48        [V59,T35] (  2,  2   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inlining Arg" <System.Type[]>
+;  V58 tmp47        [V58,T33] (  2,  2   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V59 tmp48        [V59,T34] (  2,  2   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inlining Arg" <System.Type[]>
 ;  V60 tmp49        [V60,T10] (  4,  4   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.DynamicMethod>
 ;* V61 tmp50        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Emit.DynamicMethod>
 ;* V62 tmp51        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
 ;  V63 tmp52        [V63,T04] (  5,  5   )     ref  ->  rax         class-hnd single-def "dup spill" <ushort[]>
 ;* V64 tmp53        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <ushort[]>
 ;* 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" <System.Span`1[ushort]>
 ;* V67 tmp56        [V67    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
-;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;* 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" <System.Reflection.Emit.DynamicMethod>
-;  V96 tmp85        [V96,T36] (  2,  2   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V97 tmp86        [V97,T37] (  2,  2   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def "Inlining Arg" <System.Type[]>
+;  V96 tmp85        [V96,T35] (  2,  2   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V97 tmp86        [V97,T36] (  2,  2   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def "Inlining Arg" <System.Type[]>
 ;  V98 tmp87        [V98,T12] (  4,  4   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.DynamicMethod>
 ;* V99 tmp88        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Emit.DynamicMethod>
 ;* V100 tmp89       [V100    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
 ;  V101 tmp90       [V101,T05] (  5,  5   )     ref  ->  rax         class-hnd single-def "dup spill" <ushort[]>
 ;* V102 tmp91       [V102    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <ushort[]>
 ;* 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" <System.Span`1[ushort]>
 ;* V105 tmp94       [V105    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
-;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
-;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;  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" <System.Span`1[ushort]>
 ;* 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" <System.Span`1[ushort]>
 ;* 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" <System.Reflection.Emit.DynamicMethod>
 ;* V134 tmp123      [V134    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Emit.DynamicMethod>
-;  V135 tmp124      [V135,T38] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Globalization.CultureInfo>
-;  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" <System.Globalization.CultureInfo>
+;  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
Copy link
Owner Author

MihuBot commented Oct 17, 2024

@EgorBo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant