Skip to content

Instantly share code, notes, and snippets.

@AndyAyersMS
Created June 28, 2023 15:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndyAyersMS/5f8bd9ce5f68d55e94346da3da76db98 to your computer and use it in GitHub Desktop.
Save AndyAyersMS/5f8bd9ce5f68d55e94346da3da76db98 to your computer and use it in GitHub Desktop.
Block jump thread phi if block has memory phi

Diffs are based on 1,514,429 contexts (459,672 MinOpts, 1,054,757 FullOpts).

MISSED contexts: base: 12,403 (0.82%), diff: 12,404 (0.82%)

Overall (+117,686 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 38,046,237 +30,260
benchmarks.run.windows.x64.checked.mch 7,293,703 +3,252
benchmarks.run_pgo.windows.x64.checked.mch 27,312,724 +24,278
benchmarks.run_tiered.windows.x64.checked.mch 10,236,085 +2,421
coreclr_tests.run.windows.x64.checked.mch 369,434,284 +26,015
libraries.crossgen2.windows.x64.checked.mch 6,295,320 +217
libraries.pmi.windows.x64.checked.mch 59,196,125 +10,403
libraries_tests.pmi.windows.x64.checked.mch 115,763,833 +19,722
realworld.run.windows.x64.checked.mch 13,758,228 +1,118
FullOpts (+117,686 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 24,231,656 +30,260
benchmarks.run.windows.x64.checked.mch 6,919,181 +3,252
benchmarks.run_pgo.windows.x64.checked.mch 17,126,945 +24,278
benchmarks.run_tiered.windows.x64.checked.mch 2,632,580 +2,421
coreclr_tests.run.windows.x64.checked.mch 106,337,741 +26,015
libraries.crossgen2.windows.x64.checked.mch 6,295,320 +217
libraries.pmi.windows.x64.checked.mch 57,674,046 +10,403
libraries_tests.pmi.windows.x64.checked.mch 109,405,287 +19,722
realworld.run.windows.x64.checked.mch 12,608,898 +1,118
Example diffs
aspnet.run.windows.x64.checked.mch
-15 (-5.12%) : 63414.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
@@ -12,11 +12,11 @@
 ;  V00 this         [V00,T00] (  6,  3.50)     ref  ->  rsi         this class-hnd single-def
 ;  V01 arg1         [V01,T03] (  5,  3.13)     ref  ->  rbx         class-hnd single-def
 ;  V02 arg2         [V02,T02] (  4,  3.25)     int  ->  rdi         single-def
-;  V03 loc0         [V03    ] (  5,  1.63)     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
+;  V03 loc0         [V03    ] (  5,  1.75)     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
 ;  V04 loc1         [V04,T08] (  7,  1.63)     int  ->  rbp        
 ;  V05 loc2         [V05,T11] (  3,  0.50)     ref  ->  r14         class-hnd
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T07] (  2,  1.75)    bool  ->  rax         "Inline return value spill temp"
+;  V07 tmp1         [V07,T07] (  3,  1.75)    bool  ->  rbp         "Inline return value spill temp"
 ;  V08 tmp2         [V08,T01] (  4,  5.26)     ref  ->  rcx         class-hnd single-def "spilling ret_expr"
 ;  V09 tmp3         [V09,T06] (  4,  1.75)     int  ->   r9         "guarded devirt return temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp"
@@ -51,10 +51,10 @@ G_M24577_IG03:        ; bbWeight=0.88, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rcx, gword ptr [rsi+18H]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       G_M24577_IG18
+       je       G_M24577_IG16
        mov      rdx, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary`2[System.String,Newtonsoft.Json.Serialization.JsonProperty]
        cmp      qword ptr [rcx], rdx
-       jne      G_M24577_IG19
+       jne      G_M24577_IG18
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
@@ -71,17 +71,17 @@ G_M24577_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
        mov      gword ptr [rsp+28H], rax
        mov      r9d, 1
 						;; size=14 bbWeight=0.50 PerfScore 1.63
-G_M24577_IG05:        ; bbWeight=0.88, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M24577_IG05:        ; bbWeight=0.88, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       movzx    rax, r9b
-       test     eax, eax
-       je       SHORT G_M24577_IG14
-						;; size=8 bbWeight=0.88 PerfScore 1.32
-G_M24577_IG06:        ; bbWeight=0.75, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rsp+28H]
+       movzx    rbp, r9b
+						;; size=4 bbWeight=0.88 PerfScore 0.22
+G_M24577_IG06:        ; bbWeight=0.88, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      rax, rax
        ; gcrRegs +[rax]
-						;; size=5 bbWeight=0.75 PerfScore 0.75
-G_M24577_IG07:        ; bbWeight=0.75, epilog, nogc, extend
+       test     ebp, ebp
+       cmovne   rax, gword ptr [rsp+28H]
+						;; size=10 bbWeight=0.88 PerfScore 2.19
+G_M24577_IG07:        ; bbWeight=0.88, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -89,7 +89,7 @@ G_M24577_IG07:        ; bbWeight=0.75, epilog, nogc, extend
        pop      rdi
        pop      r14
        ret      
-						;; size=11 bbWeight=0.75 PerfScore 2.82
+						;; size=11 bbWeight=0.88 PerfScore 3.29
 G_M24577_IG08:        ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        xor      r9, r9
@@ -113,10 +113,10 @@ G_M24577_IG11:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rdx, gword ptr [rsi+30H]
        ; gcrRegs +[rdx]
        cmp      ebp, dword ptr [rdx+10H]
-       jae      G_M24577_IG20
+       jae      SHORT G_M24577_IG19
        mov      rdx, gword ptr [rdx+08H]
        cmp      ebp, dword ptr [rdx+08H]
-       jae      G_M24577_IG21
+       jae      SHORT G_M24577_IG20
        mov      ecx, ebp
        mov      r14, gword ptr [rdx+8*rcx+10H]
        ; gcrRegs +[r14]
@@ -128,13 +128,13 @@ G_M24577_IG11:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M24577_IG16
+       jne      SHORT G_M24577_IG14
        inc      ebp
        mov      rax, gword ptr [rsi+30H]
        ; gcrRegs +[rax]
        cmp      ebp, dword ptr [rax+10H]
        jl       SHORT G_M24577_IG11
-						;; size=64 bbWeight=0.25 PerfScore 6.85
+						;; size=56 bbWeight=0.25 PerfScore 6.85
 G_M24577_IG12:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rbx rsi r14]
        xor      rax, rax
@@ -149,26 +149,12 @@ G_M24577_IG13:        ; bbWeight=0.12, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.12 PerfScore 0.46
-G_M24577_IG14:        ; bbWeight=0.12, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       xor      rax, rax
-       ; gcrRegs +[rax]
-						;; size=2 bbWeight=0.12 PerfScore 0.03
-G_M24577_IG15:        ; bbWeight=0.12, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       ret      
-						;; size=11 bbWeight=0.12 PerfScore 0.47
-G_M24577_IG16:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
+G_M24577_IG14:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[r14]
        mov      rax, r14
        ; gcrRegs +[rax]
 						;; size=3 bbWeight=0.00 PerfScore 0.00
-G_M24577_IG17:        ; bbWeight=0.00, epilog, nogc, extend
+G_M24577_IG15:        ; bbWeight=0.00, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -177,15 +163,19 @@ G_M24577_IG17:        ; bbWeight=0.00, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M24577_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M24577_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax r14]
        xor      r8, r8
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+28H], r8
-       jmp      SHORT G_M24577_IG14
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M24577_IG19:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r8] +[rcx rbx]
+						;; size=8 bbWeight=0 PerfScore 0.00
+G_M24577_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r8]
+       xor      ebp, ebp
+       jmp      G_M24577_IG06
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M24577_IG18:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx rbx]
        lea      r8, [rsp+28H]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -196,18 +186,18 @@ G_M24577_IG19:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
        mov      r9d, eax
        jmp      G_M24577_IG05
 						;; size=29 bbWeight=0 PerfScore 0.00
-G_M24577_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24577_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M24577_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24577_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 293, prolog size 17, PerfScore 64.67, instruction count 99, allocated bytes for code 293 (MethodHash=ce1d9ffe) for method Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
+; Total bytes of code 278, prolog size 17, PerfScore 63.48, instruction count 92, allocated bytes for code 278 (MethodHash=ce1d9ffe) for method Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
 ; ============================================================
 
 Unwind Info:
-15 (-5.12%) : 67028.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
@@ -12,11 +12,11 @@
 ;  V00 this         [V00,T00] (  6,  3.50)     ref  ->  rsi         this class-hnd single-def
 ;  V01 arg1         [V01,T03] (  5,  3.13)     ref  ->  rbx         class-hnd single-def
 ;  V02 arg2         [V02,T02] (  4,  3.25)     int  ->  rdi         single-def
-;  V03 loc0         [V03    ] (  5,  1.63)     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
+;  V03 loc0         [V03    ] (  5,  1.75)     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
 ;  V04 loc1         [V04,T08] (  7,  1.61)     int  ->  rbp        
 ;  V05 loc2         [V05,T11] (  3,  0.50)     ref  ->  r14         class-hnd
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T07] (  2,  1.75)    bool  ->  rax         "Inline return value spill temp"
+;  V07 tmp1         [V07,T07] (  3,  1.75)    bool  ->  rbp         "Inline return value spill temp"
 ;  V08 tmp2         [V08,T01] (  4,  5.26)     ref  ->  rcx         class-hnd single-def "spilling ret_expr"
 ;  V09 tmp3         [V09,T06] (  4,  1.75)     int  ->   r9         "guarded devirt return temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp"
@@ -51,10 +51,10 @@ G_M24577_IG03:        ; bbWeight=0.88, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rcx, gword ptr [rsi+18H]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       G_M24577_IG18
+       je       G_M24577_IG16
        mov      rdx, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary`2[System.String,Newtonsoft.Json.Serialization.JsonProperty]
        cmp      qword ptr [rcx], rdx
-       jne      G_M24577_IG19
+       jne      G_M24577_IG18
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
@@ -71,17 +71,17 @@ G_M24577_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
        mov      gword ptr [rsp+28H], rax
        mov      r9d, 1
 						;; size=14 bbWeight=0.50 PerfScore 1.63
-G_M24577_IG05:        ; bbWeight=0.88, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M24577_IG05:        ; bbWeight=0.88, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       movzx    rax, r9b
-       test     eax, eax
-       je       SHORT G_M24577_IG14
-						;; size=8 bbWeight=0.88 PerfScore 1.31
-G_M24577_IG06:        ; bbWeight=0.75, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rsp+28H]
+       movzx    rbp, r9b
+						;; size=4 bbWeight=0.88 PerfScore 0.22
+G_M24577_IG06:        ; bbWeight=0.88, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      rax, rax
        ; gcrRegs +[rax]
-						;; size=5 bbWeight=0.75 PerfScore 0.75
-G_M24577_IG07:        ; bbWeight=0.75, epilog, nogc, extend
+       test     ebp, ebp
+       cmovne   rax, gword ptr [rsp+28H]
+						;; size=10 bbWeight=0.88 PerfScore 2.19
+G_M24577_IG07:        ; bbWeight=0.88, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -89,7 +89,7 @@ G_M24577_IG07:        ; bbWeight=0.75, epilog, nogc, extend
        pop      rdi
        pop      r14
        ret      
-						;; size=11 bbWeight=0.75 PerfScore 2.82
+						;; size=11 bbWeight=0.88 PerfScore 3.29
 G_M24577_IG08:        ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        xor      r9, r9
@@ -113,10 +113,10 @@ G_M24577_IG11:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rdx, gword ptr [rsi+30H]
        ; gcrRegs +[rdx]
        cmp      ebp, dword ptr [rdx+10H]
-       jae      G_M24577_IG20
+       jae      SHORT G_M24577_IG19
        mov      rdx, gword ptr [rdx+08H]
        cmp      ebp, dword ptr [rdx+08H]
-       jae      G_M24577_IG21
+       jae      SHORT G_M24577_IG20
        mov      ecx, ebp
        mov      r14, gword ptr [rdx+8*rcx+10H]
        ; gcrRegs +[r14]
@@ -128,13 +128,13 @@ G_M24577_IG11:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M24577_IG16
+       jne      SHORT G_M24577_IG14
        inc      ebp
        mov      rax, gword ptr [rsi+30H]
        ; gcrRegs +[rax]
        cmp      ebp, dword ptr [rax+10H]
        jl       SHORT G_M24577_IG11
-						;; size=64 bbWeight=0.25 PerfScore 6.77
+						;; size=56 bbWeight=0.25 PerfScore 6.77
 G_M24577_IG12:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rbx rsi r14]
        xor      rax, rax
@@ -149,26 +149,12 @@ G_M24577_IG13:        ; bbWeight=0.12, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.12 PerfScore 0.46
-G_M24577_IG14:        ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       xor      rax, rax
-       ; gcrRegs +[rax]
-						;; size=2 bbWeight=0.13 PerfScore 0.03
-G_M24577_IG15:        ; bbWeight=0.13, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       ret      
-						;; size=11 bbWeight=0.13 PerfScore 0.47
-G_M24577_IG16:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
+G_M24577_IG14:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[r14]
        mov      rax, r14
        ; gcrRegs +[rax]
 						;; size=3 bbWeight=0.00 PerfScore 0.00
-G_M24577_IG17:        ; bbWeight=0.00, epilog, nogc, extend
+G_M24577_IG15:        ; bbWeight=0.00, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -177,15 +163,19 @@ G_M24577_IG17:        ; bbWeight=0.00, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M24577_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M24577_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax r14]
        xor      r8, r8
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+28H], r8
-       jmp      SHORT G_M24577_IG14
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M24577_IG19:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r8] +[rcx rbx]
+						;; size=8 bbWeight=0 PerfScore 0.00
+G_M24577_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r8]
+       xor      ebp, ebp
+       jmp      G_M24577_IG06
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M24577_IG18:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx rbx]
        lea      r8, [rsp+28H]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -196,18 +186,18 @@ G_M24577_IG19:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
        mov      r9d, eax
        jmp      G_M24577_IG05
 						;; size=29 bbWeight=0 PerfScore 0.00
-G_M24577_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24577_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M24577_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24577_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 293, prolog size 17, PerfScore 64.59, instruction count 99, allocated bytes for code 293 (MethodHash=ce1d9ffe) for method Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
+; Total bytes of code 278, prolog size 17, PerfScore 63.40, instruction count 92, allocated bytes for code 278 (MethodHash=ce1d9ffe) for method Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
 ; ============================================================
 
 Unwind Info:
-15 (-5.12%) : 79619.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
@@ -12,11 +12,11 @@
 ;  V00 this         [V00,T00] (  6,  3.50)     ref  ->  rsi         this class-hnd single-def
 ;  V01 arg1         [V01,T03] (  5,  3.12)     ref  ->  rbx         class-hnd single-def
 ;  V02 arg2         [V02,T01] (  4,  3.25)     int  ->  rdi         single-def
-;  V03 loc0         [V03    ] (  5,  1.62)     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
+;  V03 loc0         [V03    ] (  5,  1.75)     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
 ;  V04 loc1         [V04,T08] (  7,  1.63)     int  ->  rbp        
 ;  V05 loc2         [V05,T11] (  3,  0.50)     ref  ->  r14         class-hnd
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T07] (  2,  1.75)    bool  ->  rax         "Inline return value spill temp"
+;  V07 tmp1         [V07,T07] (  3,  1.75)    bool  ->  rbp         "Inline return value spill temp"
 ;  V08 tmp2         [V08,T02] (  4,  5.24)     ref  ->  rcx         class-hnd single-def "spilling ret_expr"
 ;  V09 tmp3         [V09,T06] (  4,  1.75)     int  ->   r9         "guarded devirt return temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp"
@@ -51,10 +51,10 @@ G_M24577_IG03:        ; bbWeight=0.87, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rcx, gword ptr [rsi+18H]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       G_M24577_IG18
+       je       G_M24577_IG16
        mov      rdx, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary`2[System.String,Newtonsoft.Json.Serialization.JsonProperty]
        cmp      qword ptr [rcx], rdx
-       jne      G_M24577_IG19
+       jne      G_M24577_IG18
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
@@ -71,17 +71,17 @@ G_M24577_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
        mov      gword ptr [rsp+28H], rax
        mov      r9d, 1
 						;; size=14 bbWeight=0.50 PerfScore 1.63
-G_M24577_IG05:        ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M24577_IG05:        ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       movzx    rax, r9b
-       test     eax, eax
-       je       SHORT G_M24577_IG14
-						;; size=8 bbWeight=0.87 PerfScore 1.31
-G_M24577_IG06:        ; bbWeight=0.75, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rsp+28H]
+       movzx    rbp, r9b
+						;; size=4 bbWeight=0.87 PerfScore 0.22
+G_M24577_IG06:        ; bbWeight=0.87, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      rax, rax
        ; gcrRegs +[rax]
-						;; size=5 bbWeight=0.75 PerfScore 0.75
-G_M24577_IG07:        ; bbWeight=0.75, epilog, nogc, extend
+       test     ebp, ebp
+       cmovne   rax, gword ptr [rsp+28H]
+						;; size=10 bbWeight=0.87 PerfScore 2.18
+G_M24577_IG07:        ; bbWeight=0.87, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -89,7 +89,7 @@ G_M24577_IG07:        ; bbWeight=0.75, epilog, nogc, extend
        pop      rdi
        pop      r14
        ret      
-						;; size=11 bbWeight=0.75 PerfScore 2.80
+						;; size=11 bbWeight=0.87 PerfScore 3.28
 G_M24577_IG08:        ; bbWeight=0.37, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        xor      r9, r9
@@ -113,10 +113,10 @@ G_M24577_IG11:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rdx, gword ptr [rsi+30H]
        ; gcrRegs +[rdx]
        cmp      ebp, dword ptr [rdx+10H]
-       jae      G_M24577_IG20
+       jae      SHORT G_M24577_IG19
        mov      rdx, gword ptr [rdx+08H]
        cmp      ebp, dword ptr [rdx+08H]
-       jae      G_M24577_IG21
+       jae      SHORT G_M24577_IG20
        mov      ecx, ebp
        mov      r14, gword ptr [rdx+8*rcx+10H]
        ; gcrRegs +[r14]
@@ -128,13 +128,13 @@ G_M24577_IG11:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M24577_IG16
+       jne      SHORT G_M24577_IG14
        inc      ebp
        mov      rax, gword ptr [rsi+30H]
        ; gcrRegs +[rax]
        cmp      ebp, dword ptr [rax+10H]
        jl       SHORT G_M24577_IG11
-						;; size=64 bbWeight=0.25 PerfScore 6.84
+						;; size=56 bbWeight=0.25 PerfScore 6.84
 G_M24577_IG12:        ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rbx rsi r14]
        xor      rax, rax
@@ -149,26 +149,12 @@ G_M24577_IG13:        ; bbWeight=0.13, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.13 PerfScore 0.47
-G_M24577_IG14:        ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       xor      rax, rax
-       ; gcrRegs +[rax]
-						;; size=2 bbWeight=0.13 PerfScore 0.03
-G_M24577_IG15:        ; bbWeight=0.13, epilog, nogc, extend
-       add      rsp, 48
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       ret      
-						;; size=11 bbWeight=0.13 PerfScore 0.47
-G_M24577_IG16:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
+G_M24577_IG14:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[r14]
        mov      rax, r14
        ; gcrRegs +[rax]
 						;; size=3 bbWeight=0.00 PerfScore 0.00
-G_M24577_IG17:        ; bbWeight=0.00, epilog, nogc, extend
+G_M24577_IG15:        ; bbWeight=0.00, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rbp
@@ -177,15 +163,19 @@ G_M24577_IG17:        ; bbWeight=0.00, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M24577_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M24577_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax r14]
        xor      r8, r8
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+28H], r8
-       jmp      SHORT G_M24577_IG14
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M24577_IG19:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r8] +[rcx rbx]
+						;; size=8 bbWeight=0 PerfScore 0.00
+G_M24577_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[r8]
+       xor      ebp, ebp
+       jmp      G_M24577_IG06
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M24577_IG18:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx rbx]
        lea      r8, [rsp+28H]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
@@ -196,18 +186,18 @@ G_M24577_IG19:        ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
        mov      r9d, eax
        jmp      G_M24577_IG05
 						;; size=29 bbWeight=0 PerfScore 0.00
-G_M24577_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24577_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M24577_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M24577_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 293, prolog size 17, PerfScore 64.62, instruction count 99, allocated bytes for code 293 (MethodHash=ce1d9ffe) for method Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
+; Total bytes of code 278, prolog size 17, PerfScore 63.44, instruction count 92, allocated bytes for code 278 (MethodHash=ce1d9ffe) for method Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
 ; ============================================================
 
 Unwind Info:
+30 (+11.76%) : 24480.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
@@ -9,20 +9,19 @@
 ; 3 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 12,  8.99)     ref  ->  rsi         class-hnd single-def
+;  V00 arg0         [V00,T00] ( 13,  9.99)     ref  ->  rsi         class-hnd single-def
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rdi         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg"
 ;* V05 tmp3         [V05    ] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp4         [V06,T05] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
-;  V07 tmp5         [V07,T06] (  3,  2   )     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp"
-;  V08 tmp6         [V08,T07] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
+;  V06 tmp4         [V06,T03] (  3,  2.99)    bool  ->  rbx         "Inline stloc first use temp"
+;  V07 tmp5         [V07,T05] (  3,  2   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp"
+;  V08 tmp6         [V08,T06] (  3,  0   )    bool  ->  rax         "Inline return value spill temp"
 ;  V09 tmp7         [V09,T01] (  5,  5   )     int  ->  [rsp+2CH]   spill-single-def "Inline stloc first use temp"
 ;  V10 tmp8         [V10,T04] (  3,  2.98)     ref  ->  rax         class-hnd single-def "Inline stloc first use temp"
-;  V11 tmp9         [V11,T09] (  2,  0   )     int  ->  rdx         "argument with side effect"
-;  V12 tmp10        [V12,T08] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V13 cse0         [V13,T03] (  3,  3   )   byref  ->  rbx         "CSE - aggressive"
+;  V11 tmp9         [V11,T08] (  2,  0   )     int  ->  rdx         "argument with side effect"
+;  V12 tmp10        [V12,T07] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
@@ -35,41 +34,45 @@ G_M57458_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      edi, edx
 						;; size=12 bbWeight=1 PerfScore 3.75
-G_M57458_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M57458_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rax, 0xD1FFAB1E      ; const ptr
        mov      rax, gword ptr [rax]
        ; gcrRegs +[rax]
        cmp      byte  ptr [rax+9DH], 0
-       jne      SHORT G_M57458_IG09
-						;; size=22 bbWeight=1 PerfScore 6.25
-G_M57458_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       jne      G_M57458_IG10
+						;; size=26 bbWeight=1 PerfScore 6.25
+G_M57458_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
+       xor      ebx, ebx
        mov      eax, dword ptr [rsi+34H]
        mov      dword ptr [rsp+2CH], eax
        test     eax, 0xD1FFAB1E
        jne      G_M57458_IG12
-       lea      rbx, bword ptr [rsi+34H]
-       ; byrRegs +[rbx]
-       mov      ecx, eax
-       or       ecx, 0xD1FFAB1E
+       lea      rcx, bword ptr [rsi+34H]
+       ; byrRegs +[rcx]
+       mov      edx, eax
+       or       edx, 0xD1FFAB1E
        lock     
-       cmpxchg  dword ptr [rbx], ecx
+       cmpxchg  dword ptr [rcx], edx
        cmp      eax, dword ptr [rsp+2CH]
-       jne      SHORT G_M57458_IG10
-						;; size=40 bbWeight=1 PerfScore 26.25
-G_M57458_IG04:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M57458_IG11
+						;; size=46 bbWeight=1 PerfScore 26.50
+G_M57458_IG04:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; byrRegs -[rcx]
        mov      dword ptr [rsi+38H], edi
-       mov      ecx, dword ptr [rsi+34H]
-       or       ecx, 0xD1FFAB1E
-       xchg     dword ptr [rbx], ecx
-       mov      rbx, gword ptr [rsi+28H]
-       ; gcrRegs +[rbx]
-       ; byrRegs -[rbx]
-       test     rbx, rbx
-       jne      SHORT G_M57458_IG11
-						;; size=23 bbWeight=1 PerfScore 26.50
+       lea      rcx, bword ptr [rsi+34H]
+       ; byrRegs +[rcx]
+       mov      edx, dword ptr [rsi+34H]
+       or       edx, 0xD1FFAB1E
+       xchg     dword ptr [rcx], edx
+       mov      rdi, gword ptr [rsi+28H]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
+       jne      G_M57458_IG14
+						;; size=31 bbWeight=1 PerfScore 27.00
 G_M57458_IG05:        ; bbWeight=0.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rcx]
        lea      rcx, bword ptr [rsi+20H]
        ; byrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E      ; const ptr
@@ -91,17 +94,21 @@ G_M57458_IG06:        ; bbWeight=1.00, gcrefRegs=0041 {rax rsi}, byrefRegs=0000
        ; gcrRegs -[rax rcx rdx rsi]
        ; gcr arg pop 0
 						;; size=12 bbWeight=1.00 PerfScore 3.51
-G_M57458_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       nop      
-						;; size=1 bbWeight=1 PerfScore 0.25
-G_M57458_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M57458_IG07:        ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ebx, 1
+						;; size=5 bbWeight=0.99 PerfScore 0.25
+G_M57458_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M57458_IG15
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M57458_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M57458_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M57458_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rbx, gword ptr [rcx]
@@ -121,8 +128,7 @@ G_M57458_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        ; gcr arg pop 0
        jmp      G_M57458_IG03
 						;; size=46 bbWeight=0 PerfScore 0.00
-G_M57458_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       ; byrRegs +[rbx]
+G_M57458_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 0xD1FFAB1E
@@ -130,26 +136,31 @@ G_M57458_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        call     [System.Threading.Tasks.Task:AtomicStateUpdateSlow(int,int):bool:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       jmp      SHORT G_M57458_IG13
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       xor      eax, eax
+						;; size=2 bbWeight=0 PerfScore 0.00
+G_M57458_IG13:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M57458_IG12
+       je       SHORT G_M57458_IG08
        jmp      G_M57458_IG04
-						;; size=29 bbWeight=0 PerfScore 0.00
-G_M57458_IG11:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
-       ; byrRegs -[rbx]
+						;; size=9 bbWeight=0 PerfScore 0.00
+G_M57458_IG14:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, rbx
+       mov      rcx, rdi
        ; gcrRegs +[rcx]
        call     [System.Threading.Tasks.Task+ContingentProperties:SetCompleted():this]
-       ; gcrRegs -[rcx rbx]
+       ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
        jmp      G_M57458_IG05
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57458_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      ecx, 24
        call     [System.ThrowHelper:ThrowInvalidOperationException(int)]
@@ -157,7 +168,7 @@ G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 255, prolog size 7, PerfScore 99.69, instruction count 68, allocated bytes for code 255 (MethodHash=2c691f8d) for method System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
+; Total bytes of code 285, prolog size 7, PerfScore 104.69, instruction count 74, allocated bytes for code 285 (MethodHash=2c691f8d) for method System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
 ; ============================================================
 
 Unwind Info:
+30 (+11.76%) : 24576.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
@@ -9,20 +9,19 @@
 ; 3 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 12,  9.00)     ref  ->  rsi         class-hnd single-def
+;  V00 arg0         [V00,T00] ( 13, 10.00)     ref  ->  rsi         class-hnd single-def
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rdi         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg"
 ;* V05 tmp3         [V05    ] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp4         [V06,T05] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
-;  V07 tmp5         [V07,T06] (  3,  2.00)     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp"
-;  V08 tmp6         [V08,T07] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
+;  V06 tmp4         [V06,T04] (  3,  2.99)    bool  ->  rbx         "Inline stloc first use temp"
+;  V07 tmp5         [V07,T05] (  3,  2.00)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp"
+;  V08 tmp6         [V08,T06] (  3,  0   )    bool  ->  rax         "Inline return value spill temp"
 ;  V09 tmp7         [V09,T01] (  5,  5   )     int  ->  [rsp+2CH]   spill-single-def "Inline stloc first use temp"
 ;  V10 tmp8         [V10,T03] (  3,  2.99)     ref  ->  rax         class-hnd single-def "Inline stloc first use temp"
-;  V11 tmp9         [V11,T09] (  2,  0   )     int  ->  rdx         "argument with side effect"
-;  V12 tmp10        [V12,T08] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V13 cse0         [V13,T04] (  3,  3.00)   byref  ->  rbx         "CSE - aggressive"
+;  V11 tmp9         [V11,T08] (  2,  0   )     int  ->  rdx         "argument with side effect"
+;  V12 tmp10        [V12,T07] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
@@ -35,43 +34,47 @@ G_M57458_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      edi, edx
 						;; size=12 bbWeight=1 PerfScore 3.75
-G_M57458_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M57458_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rax, 0xD1FFAB1E      ; const ptr
        mov      rax, gword ptr [rax]
        ; gcrRegs +[rax]
        cmp      byte  ptr [rax+9DH], 0
-       jne      SHORT G_M57458_IG10
-						;; size=22 bbWeight=1 PerfScore 6.25
+       jne      G_M57458_IG11
+						;; size=26 bbWeight=1 PerfScore 6.25
 G_M57458_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
+       xor      ebx, ebx
        mov      eax, dword ptr [rsi+34H]
        mov      dword ptr [rsp+2CH], eax
        test     eax, 0xD1FFAB1E
        jne      G_M57458_IG13
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M57458_IG04:        ; bbWeight=1.00, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       lea      rbx, bword ptr [rsi+34H]
-       ; byrRegs +[rbx]
-       mov      ecx, eax
-       or       ecx, 0xD1FFAB1E
+						;; size=20 bbWeight=1 PerfScore 4.50
+G_M57458_IG04:        ; bbWeight=1.00, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       lea      rcx, bword ptr [rsi+34H]
+       ; byrRegs +[rcx]
+       mov      edx, eax
+       or       edx, 0xD1FFAB1E
        lock     
-       cmpxchg  dword ptr [rbx], ecx
+       cmpxchg  dword ptr [rcx], edx
        cmp      eax, dword ptr [rsp+2CH]
-       jne      SHORT G_M57458_IG11
-						;; size=22 bbWeight=1.00 PerfScore 22.00
-G_M57458_IG05:        ; bbWeight=1.00, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M57458_IG12
+						;; size=26 bbWeight=1.00 PerfScore 22.00
+G_M57458_IG05:        ; bbWeight=1.00, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; byrRegs -[rcx]
        mov      dword ptr [rsi+38H], edi
-       mov      ecx, dword ptr [rsi+34H]
-       or       ecx, 0xD1FFAB1E
-       xchg     dword ptr [rbx], ecx
-       mov      rbx, gword ptr [rsi+28H]
-       ; gcrRegs +[rbx]
-       ; byrRegs -[rbx]
-       test     rbx, rbx
-       jne      SHORT G_M57458_IG12
-						;; size=23 bbWeight=1.00 PerfScore 26.50
+       lea      rcx, bword ptr [rsi+34H]
+       ; byrRegs +[rcx]
+       mov      edx, dword ptr [rsi+34H]
+       or       edx, 0xD1FFAB1E
+       xchg     dword ptr [rcx], edx
+       mov      rdi, gword ptr [rsi+28H]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
+       jne      G_M57458_IG15
+						;; size=31 bbWeight=1.00 PerfScore 27.00
 G_M57458_IG06:        ; bbWeight=0.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rcx]
        lea      rcx, bword ptr [rsi+20H]
        ; byrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E      ; const ptr
@@ -93,17 +96,21 @@ G_M57458_IG07:        ; bbWeight=1.01, gcrefRegs=0041 {rax rsi}, byrefRegs=0000
        ; gcrRegs -[rax rcx rdx rsi]
        ; gcr arg pop 0
 						;; size=12 bbWeight=1.01 PerfScore 3.53
-G_M57458_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       nop      
-						;; size=1 bbWeight=1 PerfScore 0.25
-G_M57458_IG09:        ; bbWeight=1, epilog, nogc, extend
+G_M57458_IG08:        ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      ebx, 1
+						;; size=5 bbWeight=0.99 PerfScore 0.25
+G_M57458_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M57458_IG16
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M57458_IG10:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M57458_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M57458_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rbx, gword ptr [rcx]
@@ -123,8 +130,7 @@ G_M57458_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        ; gcr arg pop 0
        jmp      G_M57458_IG03
 						;; size=46 bbWeight=0 PerfScore 0.00
-G_M57458_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       ; byrRegs +[rbx]
+G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 0xD1FFAB1E
@@ -132,26 +138,31 @@ G_M57458_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        call     [System.Threading.Tasks.Task:AtomicStateUpdateSlow(int,int):bool:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       jmp      SHORT G_M57458_IG14
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M57458_IG13:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       xor      eax, eax
+						;; size=2 bbWeight=0 PerfScore 0.00
+G_M57458_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M57458_IG13
+       je       SHORT G_M57458_IG09
        jmp      G_M57458_IG05
-						;; size=29 bbWeight=0 PerfScore 0.00
-G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
-       ; byrRegs -[rbx]
+						;; size=9 bbWeight=0 PerfScore 0.00
+G_M57458_IG15:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, rbx
+       mov      rcx, rdi
        ; gcrRegs +[rcx]
        call     [System.Threading.Tasks.Task+ContingentProperties:SetCompleted():this]
-       ; gcrRegs -[rcx rbx]
+       ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
        jmp      G_M57458_IG06
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M57458_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57458_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      ecx, 24
        call     [System.ThrowHelper:ThrowInvalidOperationException(int)]
@@ -159,7 +170,7 @@ G_M57458_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 255, prolog size 7, PerfScore 99.74, instruction count 68, allocated bytes for code 255 (MethodHash=2c691f8d) for method System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
+; Total bytes of code 285, prolog size 7, PerfScore 104.74, instruction count 74, allocated bytes for code 285 (MethodHash=2c691f8d) for method System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
 ; ============================================================
 
 Unwind Info:
+30 (+11.76%) : 30876.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
@@ -9,20 +9,19 @@
 ; 3 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 12,  9.05)     ref  ->  rsi         class-hnd single-def
+;  V00 arg0         [V00,T00] ( 13, 10.06)     ref  ->  rsi         class-hnd single-def
 ;  V01 arg1         [V01,T01] (  3,  3.01)     int  ->  rdi         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg"
 ;* V05 tmp3         [V05    ] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp4         [V06,T06] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
-;  V07 tmp5         [V07,T05] (  3,  2.02)     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp"
-;  V08 tmp6         [V08,T07] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
+;  V06 tmp4         [V06,T04] (  3,  3.01)    bool  ->  rbx         "Inline stloc first use temp"
+;  V07 tmp5         [V07,T05] (  3,  2.02)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp"
+;  V08 tmp6         [V08,T06] (  3,  0   )    bool  ->  rax         "Inline return value spill temp"
 ;  V09 tmp7         [V09,T02] (  5,  5   )     int  ->  [rsp+2CH]   spill-single-def "Inline stloc first use temp"
 ;  V10 tmp8         [V10,T03] (  3,  3.02)     ref  ->  rax         class-hnd single-def "Inline stloc first use temp"
-;  V11 tmp9         [V11,T09] (  2,  0   )     int  ->  rdx         "argument with side effect"
-;  V12 tmp10        [V12,T08] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V13 cse0         [V13,T04] (  3,  3.01)   byref  ->  rbx         "CSE - aggressive"
+;  V11 tmp9         [V11,T08] (  2,  0   )     int  ->  rdx         "argument with side effect"
+;  V12 tmp10        [V12,T07] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
@@ -35,41 +34,45 @@ G_M57458_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      edi, edx
 						;; size=12 bbWeight=1 PerfScore 3.75
-G_M57458_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M57458_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rax, 0xD1FFAB1E      ; const ptr
        mov      rax, gword ptr [rax]
        ; gcrRegs +[rax]
        cmp      byte  ptr [rax+9DH], 0
-       jne      SHORT G_M57458_IG09
-						;; size=22 bbWeight=1 PerfScore 6.25
-G_M57458_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       jne      G_M57458_IG10
+						;; size=26 bbWeight=1 PerfScore 6.25
+G_M57458_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
+       xor      ebx, ebx
        mov      eax, dword ptr [rsi+34H]
        mov      dword ptr [rsp+2CH], eax
        test     eax, 0xD1FFAB1E
        jne      G_M57458_IG12
-       lea      rbx, bword ptr [rsi+34H]
-       ; byrRegs +[rbx]
-       mov      ecx, eax
-       or       ecx, 0xD1FFAB1E
+       lea      rcx, bword ptr [rsi+34H]
+       ; byrRegs +[rcx]
+       mov      edx, eax
+       or       edx, 0xD1FFAB1E
        lock     
-       cmpxchg  dword ptr [rbx], ecx
+       cmpxchg  dword ptr [rcx], edx
        cmp      eax, dword ptr [rsp+2CH]
-       jne      SHORT G_M57458_IG10
-						;; size=40 bbWeight=1 PerfScore 26.25
-G_M57458_IG04:        ; bbWeight=1.01, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       jne      G_M57458_IG11
+						;; size=46 bbWeight=1 PerfScore 26.50
+G_M57458_IG04:        ; bbWeight=1.01, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; byrRegs -[rcx]
        mov      dword ptr [rsi+38H], edi
-       mov      ecx, dword ptr [rsi+34H]
-       or       ecx, 0xD1FFAB1E
-       xchg     dword ptr [rbx], ecx
-       mov      rbx, gword ptr [rsi+28H]
-       ; gcrRegs +[rbx]
-       ; byrRegs -[rbx]
-       test     rbx, rbx
-       jne      SHORT G_M57458_IG11
-						;; size=23 bbWeight=1.01 PerfScore 26.80
+       lea      rcx, bword ptr [rsi+34H]
+       ; byrRegs +[rcx]
+       mov      edx, dword ptr [rsi+34H]
+       or       edx, 0xD1FFAB1E
+       xchg     dword ptr [rcx], edx
+       mov      rdi, gword ptr [rsi+28H]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
+       jne      G_M57458_IG14
+						;; size=31 bbWeight=1.01 PerfScore 27.30
 G_M57458_IG05:        ; bbWeight=1.01, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[rdi]
+       ; byrRegs -[rcx]
        lea      rcx, bword ptr [rsi+20H]
        ; byrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E      ; const ptr
@@ -92,16 +95,20 @@ G_M57458_IG06:        ; bbWeight=1.00, gcrefRegs=0041 {rax rsi}, byrefRegs=0000
        ; gcr arg pop 0
 						;; size=12 bbWeight=1.00 PerfScore 3.50
 G_M57458_IG07:        ; bbWeight=1.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       nop      
-						;; size=1 bbWeight=1.01 PerfScore 0.25
-G_M57458_IG08:        ; bbWeight=1.01, epilog, nogc, extend
+       mov      ebx, 1
+						;; size=5 bbWeight=1.01 PerfScore 0.25
+G_M57458_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       test     ebx, ebx
+       je       SHORT G_M57458_IG15
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M57458_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
-						;; size=8 bbWeight=1.01 PerfScore 2.78
-G_M57458_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+						;; size=8 bbWeight=1 PerfScore 2.75
+G_M57458_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rbx, gword ptr [rcx]
@@ -121,8 +128,7 @@ G_M57458_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        ; gcr arg pop 0
        jmp      G_M57458_IG03
 						;; size=46 bbWeight=0 PerfScore 0.00
-G_M57458_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       ; byrRegs +[rbx]
+G_M57458_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      edx, 0xD1FFAB1E
@@ -130,26 +136,31 @@ G_M57458_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        call     [System.Threading.Tasks.Task:AtomicStateUpdateSlow(int,int):bool:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       jmp      SHORT G_M57458_IG13
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       xor      eax, eax
+						;; size=2 bbWeight=0 PerfScore 0.00
+G_M57458_IG13:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M57458_IG12
+       je       SHORT G_M57458_IG08
        jmp      G_M57458_IG04
-						;; size=29 bbWeight=0 PerfScore 0.00
-G_M57458_IG11:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rbx]
-       ; byrRegs -[rbx]
+						;; size=9 bbWeight=0 PerfScore 0.00
+G_M57458_IG14:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     [System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, rbx
+       mov      rcx, rdi
        ; gcrRegs +[rcx]
        call     [System.Threading.Tasks.Task+ContingentProperties:SetCompleted():this]
-       ; gcrRegs -[rcx rbx]
+       ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
        jmp      G_M57458_IG05
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57458_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      ecx, 24
        call     [System.ThrowHelper:ThrowInvalidOperationException(int)]
@@ -157,7 +168,7 @@ G_M57458_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 255, prolog size 7, PerfScore 100.14, instruction count 68, allocated bytes for code 255 (MethodHash=2c691f8d) for method System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
+; Total bytes of code 285, prolog size 7, PerfScore 105.12, instruction count 74, allocated bytes for code 285 (MethodHash=2c691f8d) for method System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
 ; ============================================================
 
 Unwind Info:
benchmarks.run.windows.x64.checked.mch
-4 (-1.81%) : 20972.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
@@ -31,13 +31,13 @@ G_M45147_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      rdi, rdx
        ; gcrRegs +[rdi]
 						;; size=14 bbWeight=1 PerfScore 4.75
-G_M45147_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+G_M45147_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        xor      ebx, ebx
        cmp      dword ptr [rsi+34H], 45
-       jne      G_M45147_IG07
+       jne      SHORT G_M45147_IG04
        lea      rbp, bword ptr [rsi+08H]
        ; byrRegs +[rbp]
-						;; size=16 bbWeight=1 PerfScore 4.75
+						;; size=12 bbWeight=1 PerfScore 4.75
 G_M45147_IG03:        ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0060 {rbp rsi}, byref, isz
        mov      rcx, rbp
        ; byrRegs +[rcx]
@@ -136,7 +136,7 @@ G_M45147_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        ; gcr arg pop 0
 						;; size=14 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 221, prolog size 14, PerfScore 80.35, instruction count 61, allocated bytes for code 221 (MethodHash=6aa94fa4) for method MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
+; Total bytes of code 217, prolog size 14, PerfScore 79.95, instruction count 61, allocated bytes for code 217 (MethodHash=6aa94fa4) for method MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
 ; ============================================================
 
 Unwind Info:
-4 (-0.70%) : 10557.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo
@@ -160,10 +160,10 @@ G_M5905_IG05:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        mov      r12d, 1
        xor      r13d, r13d
        test     r14d, r14d
-       jle      G_M5905_IG17
+       jle      SHORT G_M5905_IG13
        cmp      r15d, r14d
        jl       SHORT G_M5905_IG10
-						;; size=23 bbWeight=4 PerfScore 12.00
+						;; size=19 bbWeight=4 PerfScore 12.00
 G_M5905_IG06:        ; bbWeight=31.68, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r15d, r13d
        mov      rcx, gword ptr [rbx+8*r15+10H]
@@ -353,7 +353,7 @@ G_M5905_IG28:        ; bbWeight=1, funclet epilog, nogc, extend
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 574, prolog size 43, PerfScore 911.88, instruction count 171, allocated bytes for code 574 (MethodHash=3fefe8ee) for method Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo
+; Total bytes of code 570, prolog size 43, PerfScore 911.48, instruction count 171, allocated bytes for code 570 (MethodHash=3fefe8ee) for method Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo
 ; ============================================================
 
 Unwind Info:
-4 (-0.67%) : 7979.dasm - System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
@@ -101,14 +101,14 @@ G_M63624_IG06:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        ; gcrRegs -[rax]
        xor      r14d, r14d
        test     rsi, rsi
-       je       G_M63624_IG15
+       je       G_M63624_IG12
 						;; size=12 bbWeight=4 PerfScore 6.00
-G_M63624_IG07:        ; bbWeight=2, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M63624_IG07:        ; bbWeight=2, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        xor      r15d, r15d
        mov      r12d, dword ptr [rsi+08H]
        test     r12d, r12d
-       jle      G_M63624_IG15
-						;; size=16 bbWeight=2 PerfScore 7.00
+       jle      SHORT G_M63624_IG12
+						;; size=12 bbWeight=2 PerfScore 7.00
 G_M63624_IG08:        ; bbWeight=16, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      ecx, r15d
        mov      r13, gword ptr [rsi+8*rcx+10H]
@@ -329,7 +329,7 @@ G_M63624_IG24:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 593, prolog size 31, PerfScore 492.05, instruction count 166, allocated bytes for code 593 (MethodHash=c5b80777) for method System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
+; Total bytes of code 589, prolog size 31, PerfScore 491.65, instruction count 166, allocated bytes for code 589 (MethodHash=c5b80777) for method System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
 ; ============================================================
 
 Unwind Info:
+22 (+5.02%) : 15722.dasm - System.MathBenchmarks.Double:CopySignTest()
@@ -21,33 +21,33 @@
 ;  V11 tmp7         [V11,T05] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V13 tmp9         [V13,T08] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V14 tmp10        [V14,T10] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
-;* V15 tmp11        [V15,T19] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V14 tmp10        [V14,T12] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V15 tmp11        [V15,T09] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V18 tmp14        [V18,T11] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V18 tmp14        [V18,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V20 tmp16        [V20,T06] (  4,  0   )     int  ->  rsi         "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V22 tmp18        [V22,T09] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V23 tmp19        [V23,T12] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V24 tmp20        [V24,T20] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V22 tmp18        [V22,T10] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V23 tmp19        [V23,T14] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V24 tmp20        [V24,T11] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V26 tmp22        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V27 tmp23        [V27,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V27 tmp23        [V27,T15] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V28 tmp24        [V28    ] (  0,  0   )   byref  ->  zero-ref    V10._reference(offs=0x00) P-INDEP "field V10._reference (fldOffset=0x0)"
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    V10._length(offs=0x08) P-INDEP "field V10._length (fldOffset=0x8)"
-;  V30 tmp26        [V30,T14] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
+;  V30 tmp26        [V30,T16] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
 ;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def V12._length(offs=0x08) P-INDEP "field V12._length (fldOffset=0x8)"
-;  V32 tmp28        [V32,T15] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
+;  V32 tmp28        [V32,T17] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def V16._length(offs=0x08) P-INDEP "field V16._length (fldOffset=0x8)"
 ;* V34 tmp30        [V34    ] (  0,  0   )   byref  ->  zero-ref    V19._reference(offs=0x00) P-INDEP "field V19._reference (fldOffset=0x0)"
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    V19._length(offs=0x08) P-INDEP "field V19._length (fldOffset=0x8)"
-;  V36 tmp32        [V36,T16] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
+;  V36 tmp32        [V36,T18] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
 ;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    single-def V21._length(offs=0x08) P-INDEP "field V21._length (fldOffset=0x8)"
-;  V38 tmp34        [V38,T17] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
+;  V38 tmp34        [V38,T19] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def V25._length(offs=0x08) P-INDEP "field V25._length (fldOffset=0x8)"
-;  V40 tmp36        [V40,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V40 tmp36        [V40,T20] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V41 cse0         [V41,T03] (  3,  9   )  simd16  ->  mm2         "CSE - aggressive"
 ;  V42 cse1         [V42,T04] (  2,  5   )  double  ->  mm1         "CSE - aggressive"
 ;
@@ -107,7 +107,7 @@ G_M64933_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+38H]
        cmp      ecx, dword ptr [rsp+48H]
-       ja       SHORT G_M64933_IG09
+       ja       SHORT G_M64933_IG10
        mov      rax, bword ptr [rsp+40H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -121,20 +121,26 @@ G_M64933_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      edi, 16
        jb       SHORT G_M64933_IG07
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rsi], ymm0
-       mov      ecx, dword ptr [rsp+38H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=92 bbWeight=0 PerfScore 0.00
+G_M64933_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rsi]
+       test     ecx, ecx
+       je       SHORT G_M64933_IG08
+       mov      ecx, dword ptr [rsp+38H]
        add      ecx, 16
        mov      dword ptr [rsp+38H], ecx
-       jmp      SHORT G_M64933_IG08
-						;; size=98 bbWeight=0 PerfScore 0.00
-G_M64933_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rsi]
+       jmp      SHORT G_M64933_IG09
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M64933_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+28H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -142,21 +148,21 @@ G_M64933_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M64933_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M64933_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [rsp+28H]
        xor      edx, edx
        call     [<unknown method>]
        ; gcr arg pop 0
        mov      esi, dword ptr [rsp+38H]
        cmp      esi, dword ptr [rsp+48H]
-       jbe      SHORT G_M64933_IG10
+       jbe      SHORT G_M64933_IG11
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M64933_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M64933_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M64933_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M64933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, bword ptr [rsp+40H]
        ; byrRegs +[rcx]
        mov      eax, esi
@@ -170,20 +176,26 @@ G_M64933_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        shr      ecx, 31
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebx, 16
-       jb       SHORT G_M64933_IG11
+       jb       SHORT G_M64933_IG12
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rdi], ymm0
-       mov      ecx, dword ptr [rsp+38H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=60 bbWeight=0 PerfScore 0.00
+G_M64933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M64933_IG13
+       mov      ecx, dword ptr [rsp+38H]
        add      ecx, 16
        mov      dword ptr [rsp+38H], ecx
-       jmp      SHORT G_M64933_IG12
-						;; size=66 bbWeight=0 PerfScore 0.00
-G_M64933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M64933_IG14
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M64933_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+28H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -191,7 +203,7 @@ G_M64933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M64933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M64933_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+28H]
        vmovaps  xmm1, xmm6
        call     [<unknown method>]
@@ -226,7 +238,7 @@ RWD24  	dd	00000000h, 00000000h
 RWD32  	dq	8000000000000000h, 8000000000000000h
 
 
-; Total bytes of code 438, prolog size 39, PerfScore 114.97, instruction count 107, allocated bytes for code 438 (MethodHash=99c5025a) for method System.MathBenchmarks.Double:CopySignTest()
+; Total bytes of code 460, prolog size 39, PerfScore 117.17, instruction count 115, allocated bytes for code 460 (MethodHash=99c5025a) for method System.MathBenchmarks.Double:CopySignTest()
 ; ============================================================
 
 Unwind Info:
+22 (+5.02%) : 18725.dasm - System.MathBenchmarks.Single:CopySignTest()
@@ -21,33 +21,33 @@
 ;  V11 tmp7         [V11,T05] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V13 tmp9         [V13,T08] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V14 tmp10        [V14,T10] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
-;* V15 tmp11        [V15,T19] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V14 tmp10        [V14,T12] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V15 tmp11        [V15,T09] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V18 tmp14        [V18,T11] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V18 tmp14        [V18,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V20 tmp16        [V20,T06] (  4,  0   )     int  ->  rsi         "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V22 tmp18        [V22,T09] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V23 tmp19        [V23,T12] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V24 tmp20        [V24,T20] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V22 tmp18        [V22,T10] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V23 tmp19        [V23,T14] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V24 tmp20        [V24,T11] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V26 tmp22        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V27 tmp23        [V27,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V27 tmp23        [V27,T15] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V28 tmp24        [V28    ] (  0,  0   )   byref  ->  zero-ref    V10._reference(offs=0x00) P-INDEP "field V10._reference (fldOffset=0x0)"
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    V10._length(offs=0x08) P-INDEP "field V10._length (fldOffset=0x8)"
-;  V30 tmp26        [V30,T14] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
+;  V30 tmp26        [V30,T16] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
 ;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def V12._length(offs=0x08) P-INDEP "field V12._length (fldOffset=0x8)"
-;  V32 tmp28        [V32,T15] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
+;  V32 tmp28        [V32,T17] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def V16._length(offs=0x08) P-INDEP "field V16._length (fldOffset=0x8)"
 ;* V34 tmp30        [V34    ] (  0,  0   )   byref  ->  zero-ref    V19._reference(offs=0x00) P-INDEP "field V19._reference (fldOffset=0x0)"
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    V19._length(offs=0x08) P-INDEP "field V19._length (fldOffset=0x8)"
-;  V36 tmp32        [V36,T16] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
+;  V36 tmp32        [V36,T18] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
 ;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    single-def V21._length(offs=0x08) P-INDEP "field V21._length (fldOffset=0x8)"
-;  V38 tmp34        [V38,T17] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
+;  V38 tmp34        [V38,T19] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def V25._length(offs=0x08) P-INDEP "field V25._length (fldOffset=0x8)"
-;  V40 tmp36        [V40,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V40 tmp36        [V40,T20] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V41 cse0         [V41,T03] (  3,  9   )  simd16  ->  mm2         "CSE - aggressive"
 ;  V42 cse1         [V42,T04] (  2,  5   )   float  ->  mm1         "CSE - aggressive"
 ;
@@ -107,7 +107,7 @@ G_M19210_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+38H]
        cmp      ecx, dword ptr [rsp+48H]
-       ja       SHORT G_M19210_IG09
+       ja       SHORT G_M19210_IG10
        mov      rax, bword ptr [rsp+40H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -121,20 +121,26 @@ G_M19210_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      edi, 16
        jb       SHORT G_M19210_IG07
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rsi], ymm0
-       mov      ecx, dword ptr [rsp+38H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=92 bbWeight=0 PerfScore 0.00
+G_M19210_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rsi]
+       test     ecx, ecx
+       je       SHORT G_M19210_IG08
+       mov      ecx, dword ptr [rsp+38H]
        add      ecx, 16
        mov      dword ptr [rsp+38H], ecx
-       jmp      SHORT G_M19210_IG08
-						;; size=98 bbWeight=0 PerfScore 0.00
-G_M19210_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rsi]
+       jmp      SHORT G_M19210_IG09
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M19210_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+28H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -142,21 +148,21 @@ G_M19210_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M19210_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M19210_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [rsp+28H]
        xor      edx, edx
        call     [<unknown method>]
        ; gcr arg pop 0
        mov      esi, dword ptr [rsp+38H]
        cmp      esi, dword ptr [rsp+48H]
-       jbe      SHORT G_M19210_IG10
+       jbe      SHORT G_M19210_IG11
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M19210_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M19210_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M19210_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M19210_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, bword ptr [rsp+40H]
        ; byrRegs +[rcx]
        mov      eax, esi
@@ -170,20 +176,26 @@ G_M19210_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        shr      ecx, 31
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebx, 16
-       jb       SHORT G_M19210_IG11
+       jb       SHORT G_M19210_IG12
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rdi], ymm0
-       mov      ecx, dword ptr [rsp+38H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=60 bbWeight=0 PerfScore 0.00
+G_M19210_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M19210_IG13
+       mov      ecx, dword ptr [rsp+38H]
        add      ecx, 16
        mov      dword ptr [rsp+38H], ecx
-       jmp      SHORT G_M19210_IG12
-						;; size=66 bbWeight=0 PerfScore 0.00
-G_M19210_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M19210_IG14
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M19210_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+28H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -191,7 +203,7 @@ G_M19210_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M19210_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M19210_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+28H]
        vmovaps  xmm1, xmm6
        call     [<unknown method>]
@@ -226,7 +238,7 @@ RWD12  	dd	00000000h
 RWD16  	dq	8000000080000000h, 8000000080000000h
 
 
-; Total bytes of code 438, prolog size 39, PerfScore 114.97, instruction count 107, allocated bytes for code 438 (MethodHash=d136b4f5) for method System.MathBenchmarks.Single:CopySignTest()
+; Total bytes of code 460, prolog size 39, PerfScore 117.17, instruction count 115, allocated bytes for code 460 (MethodHash=d136b4f5) for method System.MathBenchmarks.Single:CopySignTest()
 ; ============================================================
 
 Unwind Info:
+14 (+5.69%) : 8590.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryCreateParameterMap(System.Reflection.ParameterInfo[],System.Type[],byref):bool
@@ -7,25 +7,25 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T09] (  4, 11   )     ref  ->  rdi         class-hnd single-def
-;  V01 arg1         [V01,T11] (  4,  7   )     ref  ->  rbx         class-hnd single-def
-;  V02 arg2         [V02,T04] (  5, 23   )   byref  ->  rsi         single-def
-;  V03 loc0         [V03,T08] (  6, 21   )     int  ->  r14        
-;* V04 loc1         [V04,T12] (  0,  0   )    bool  ->  zero-ref   
-;  V05 loc2         [V05,T10] (  2, 12   )     ref  ->  r12         class-hnd
-;  V06 loc3         [V06,T00] (  9,100   )     int  ->  r13        
+;  V00 arg0         [V00,T07] (  4, 11   )     ref  ->  rdi         class-hnd single-def
+;  V01 arg1         [V01,T12] (  4,  7   )     ref  ->  rbx         class-hnd single-def
+;  V02 arg2         [V02,T04] (  5, 21   )   byref  ->  rsi         single-def
+;  V03 loc0         [V03,T06] (  6, 19   )     int  ->  r14        
+;  V04 loc1         [V04,T11] (  3, 10   )    bool  ->  r12        
+;  V05 loc2         [V05,T10] (  2, 12   )     ref  ->  r13         class-hnd
+;  V06 loc3         [V06,T00] (  9, 96   )     int  ->  [rsp+24H]  
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V09 tmp2         [V09,T05] (  3, 24   )     ref  ->  rax         class-hnd "impAppendStmt"
+;  V09 tmp2         [V09,T08] (  3, 12   )     ref  ->  rdx         class-hnd "impAppendStmt"
 ;* V10 tmp3         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp4         [V11,T15] (  0,  0   )    bool  ->  zero-ref    V08.hasValue(offs=0x00) P-INDEP "field V08.hasValue (fldOffset=0x0)"
-;  V12 tmp5         [V12,T13] (  2,  8   )     int  ->  rdx         V08.value(offs=0x04) P-INDEP "field V08.value (fldOffset=0x4)"
+;  V12 tmp5         [V12,T14] (  2,  4   )     int  ->  rcx         V08.value(offs=0x04) P-INDEP "field V08.value (fldOffset=0x4)"
 ;  V13 tmp6         [V13,T01] (  3, 96   )     ref  ->  rcx         "arr expr"
 ;  V14 tmp7         [V14,T02] (  3, 48   )     ref  ->  rcx         "argument with side effect"
 ;  V15 tmp8         [V15,T03] (  3, 48   )     ref  ->  rax         "argument with side effect"
-;  V16 tmp9         [V16,T06] (  3, 24   )   byref  ->  rax         "BlockOp address local"
-;  V17 cse0         [V17,T07] (  4, 22   )     int  ->  rbp         "CSE - aggressive"
-;  V18 cse1         [V18,T14] (  3,  6   )     int  ->  r15         "CSE - aggressive"
+;  V16 tmp9         [V16,T09] (  3, 12   )   byref  ->  rax         "BlockOp address local"
+;  V17 cse0         [V17,T05] (  4, 22   )     int  ->  rbp         "CSE - aggressive"
+;  V18 cse1         [V18,T13] (  3,  6   )     int  ->  r15         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -63,38 +63,40 @@ G_M13032_IG02:        ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rs
        xor      r14d, r14d
        mov      r15d, dword ptr [rbx+08H]
        test     r15d, r15d
-       jle      G_M13032_IG09
+       jle      G_M13032_IG10
 						;; size=47 bbWeight=1 PerfScore 8.50
-G_M13032_IG03:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref
+G_M13032_IG03:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       xor      r12d, r12d
        mov      ecx, r14d
-       mov      r12, gword ptr [rbx+8*rcx+10H]
-       ; gcrRegs +[r12]
-       xor      r13d, r13d
+       mov      r13, gword ptr [rbx+8*rcx+10H]
+       ; gcrRegs +[r13]
+       xor      eax, eax
        test     ebp, ebp
-       jle      G_M13032_IG11
-						;; size=19 bbWeight=4 PerfScore 15.00
-G_M13032_IG04:        ; bbWeight=16, gcrefRegs=1088 {rbx rdi r12}, byrefRegs=0040 {rsi}, byref, isz
+       jle      SHORT G_M13032_IG09
+						;; size=17 bbWeight=4 PerfScore 16.00
+G_M13032_IG04:        ; bbWeight=16, gcrefRegs=2088 {rbx rdi r13}, byrefRegs=0040 {rsi}, byref, isz
        mov      rcx, gword ptr [rsi]
        ; gcrRegs +[rcx]
-       cmp      r13d, dword ptr [rcx+08H]
-       jae      G_M13032_IG13
-       mov      eax, r13d
-       cmp      byte  ptr [rcx+8*rax+10H], 0
+       cmp      eax, dword ptr [rcx+08H]
+       jae      G_M13032_IG14
+       mov      edx, eax
+       cmp      byte  ptr [rcx+8*rdx+10H], 0
        jne      SHORT G_M13032_IG06
-						;; size=23 bbWeight=16 PerfScore 164.00
-G_M13032_IG05:        ; bbWeight=8, gcrefRegs=1088 {rbx rdi r12}, byrefRegs=0040 {rsi}, byref, isz
+						;; size=21 bbWeight=16 PerfScore 164.00
+G_M13032_IG05:        ; bbWeight=8, gcrefRegs=2088 {rbx rdi r13}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[rcx]
-       mov      ecx, r13d
+       mov      dword ptr [rsp+24H], eax
+       mov      ecx, eax
        mov      rcx, gword ptr [rdi+8*rcx+10H]
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
-       mov      rax, qword ptr [rax+48H]
-       call     [rax+38H]<unknown method>
+       mov      rdx, qword ptr [rcx]
+       mov      rdx, qword ptr [rdx+48H]
+       call     [rdx+38H]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      rdx, r12
+       mov      rdx, r13
        ; gcrRegs +[rdx]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
@@ -103,42 +105,46 @@ G_M13032_IG05:        ; bbWeight=8, gcrefRegs=1088 {rbx rdi r12}, byrefRegs=0040
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
+       mov      eax, dword ptr [rsp+24H]
        jne      SHORT G_M13032_IG08
-						;; size=41 bbWeight=8 PerfScore 144.00
-G_M13032_IG06:        ; bbWeight=16, gcrefRegs=1088 {rbx rdi r12}, byrefRegs=0040 {rsi}, byref, isz
-       inc      r13d
-       cmp      ebp, r13d
+						;; size=48 bbWeight=8 PerfScore 160.00
+G_M13032_IG06:        ; bbWeight=16, gcrefRegs=2088 {rbx rdi r13}, byrefRegs=0040 {rsi}, byref, isz
+       inc      eax
+       cmp      ebp, eax
        jg       SHORT G_M13032_IG04
-						;; size=8 bbWeight=16 PerfScore 24.00
-G_M13032_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rdi r12]
-       ; byrRegs -[rsi]
-       jmp      SHORT G_M13032_IG11
+						;; size=6 bbWeight=16 PerfScore 24.00
+G_M13032_IG07:        ; bbWeight=2, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       ; gcrRegs -[r13]
+       jmp      SHORT G_M13032_IG09
 						;; size=2 bbWeight=2 PerfScore 4.00
-G_M13032_IG08:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
-       ; gcrRegs +[rbx rdi]
-       ; byrRegs +[rsi]
-       mov      rax, gword ptr [rsi]
-       ; gcrRegs +[rax]
-       mov      edx, r14d
-       cmp      r13d, dword ptr [rax+08H]
-       jae      SHORT G_M13032_IG13
-       mov      ecx, r13d
-       lea      rax, bword ptr [rax+8*rcx+10H]
-       ; gcrRegs -[rax]
+G_M13032_IG08:        ; bbWeight=2, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       mov      r12d, 1
+       mov      rdx, gword ptr [rsi]
+       ; gcrRegs +[rdx]
+       mov      ecx, r14d
+       cmp      eax, dword ptr [rdx+08H]
+       jae      SHORT G_M13032_IG14
+       mov      eax, eax
+       lea      rax, bword ptr [rdx+8*rax+10H]
        ; byrRegs +[rax]
        mov      byte  ptr [rax], 1
-       mov      dword ptr [rax+04H], edx
+       mov      dword ptr [rax+04H], ecx
+						;; size=30 bbWeight=2 PerfScore 19.50
+G_M13032_IG09:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       ; gcrRegs -[rdx]
+       ; byrRegs -[rax]
+       test     r12d, r12d
+       je       SHORT G_M13032_IG12
        inc      r14d
        cmp      r15d, r14d
-       jg       SHORT G_M13032_IG03
-						;; size=34 bbWeight=4 PerfScore 44.00
-G_M13032_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jg       G_M13032_IG03
+						;; size=17 bbWeight=4 PerfScore 11.00
+G_M13032_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rdi]
-       ; byrRegs -[rax rsi]
+       ; byrRegs -[rsi]
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M13032_IG10:        ; bbWeight=0.50, epilog, nogc, extend
+G_M13032_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -150,10 +156,10 @@ G_M13032_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M13032_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M13032_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M13032_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M13032_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -165,13 +171,13 @@ G_M13032_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M13032_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M13032_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 246, prolog size 25, PerfScore 442.60, instruction count 85, allocated bytes for code 246 (MethodHash=1892cd17) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryCreateParameterMap(System.Reflection.ParameterInfo[],System.Type[],byref):bool
+; Total bytes of code 260, prolog size 25, PerfScore 447.50, instruction count 91, allocated bytes for code 260 (MethodHash=1892cd17) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryCreateParameterMap(System.Reflection.ParameterInfo[],System.Type[],byref):bool
 ; ============================================================
 
 Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-49 (-10.72%) : 61405.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
@@ -19,39 +19,36 @@
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    "guarded devirt return temp"
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
 ;  V08 tmp3         [V08,T11] (  2,199.98)     int  ->  rdx         "guarded devirt return temp"
-;  V09 tmp4         [V09,T14] (  2, 99.99)     ref  ->  r12         class-hnd exact "guarded devirt this exact temp"
+;  V09 tmp4         [V09,T14] (  2, 99.99)     ref  ->  rdi         class-hnd exact "guarded devirt this exact temp"
 ;  V10 tmp5         [V10,T12] (  2,199.98)     int  ->  rax         "guarded devirt return temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "guarded devirt this exact temp"
-;  V12 tmp7         [V12,T01] (  3,200   )     int  ->  r14         "guarded devirt return temp"
-;  V13 tmp8         [V13,T02] (  3,600   )     ref  ->  r14         class-hnd exact "guarded devirt this exact temp"
+;  V12 tmp7         [V12,T01] (  4,600   )     int  ->   r8         "guarded devirt return temp"
+;  V13 tmp8         [V13,T02] (  3,600   )     ref  ->  rcx         class-hnd exact "guarded devirt this exact temp"
 ;* V14 tmp9         [V14,T16] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
 ;* V15 tmp10        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp"
 ;  V16 tmp11        [V16,T10] (  3,299.97)     int  ->  rcx         "Inline stloc first use temp"
 ;  V17 tmp12        [V17,T09] (  3,299.97)     ref  ->  rdx         class-hnd "Inline stloc first use temp"
-;  V18 tmp13        [V18,T03] (  3,600   )     int  ->  rcx         "Inline stloc first use temp"
-;  V19 tmp14        [V19,T05] (  3,300   )     int  ->  r15         "Inline stloc first use temp"
-;  V20 PSPSym       [V20,T17] (  1,  1   )    long  ->  [rbp-40H]   do-not-enreg[V] "PSPSym"
+;  V18 tmp13        [V18,T03] (  3,600   )     int  ->  rdx         "Inline stloc first use temp"
+;  V19 tmp14        [V19,T05] (  3,300   )     int  ->  rax         "Inline stloc first use temp"
+;  V20 PSPSym       [V20,T17] (  1,  1   )    long  ->  [rbp-20H]   do-not-enreg[V] "PSPSym"
 ;  V21 cse0         [V21,T13] (  2,199.98)     int  ->  rax         "CSE - aggressive"
 ;  V22 cse1         [V22,T06] (  3,299.99)    long  ->  rdi         "CSE - aggressive"
 ;  V23 cse2         [V23,T07] (  3,299.99)    long  ->  rbx         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M23419_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        mov      rax, qword ptr [rbp]
        push     rax
-       sub      rsp, 96
-       mov      qword ptr [rsp+138H], r15
-       mov      qword ptr [rsp+130H], r14
-       mov      qword ptr [rsp+128H], r12
-       mov      qword ptr [rsp+120H], rdi
-       mov      qword ptr [rsp+118H], rsi
-       mov      qword ptr [rsp+110H], rbx
-       lea      rbp, [rsp+60H]
-       mov      qword ptr [rbp-40H], rsp
+       sub      rsp, 64
+       mov      qword ptr [rsp+118H], rdi
+       mov      qword ptr [rsp+110H], rsi
+       mov      qword ptr [rsp+108H], rbx
+       lea      rbp, [rsp+40H]
+       mov      qword ptr [rbp-20H], rsp
        mov      rsi, gword ptr [rbp+F8H]
        ; gcrRegs +[rsi]
-						;; size=73 bbWeight=0.01 PerfScore 0.13
+						;; size=49 bbWeight=0.01 PerfScore 0.10
 G_M23419_IG02:        ; bbWeight=0.01, gcVars=0000000000000001 {V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; GC ptr vars +{V03}
        jmp      G_M23419_IG10
@@ -61,14 +58,14 @@ G_M23419_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_OVERFLOW
        ; gcr arg pop 0
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M23419_IG04:        ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[r12]
-       mov      ecx, dword ptr [r12+10H]
+G_M23419_IG04:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
+       mov      ecx, dword ptr [rdi+10H]
        call     [System.ThrowHelper:ThrowInvalidOperationException_EnumCurrent(int)]
-       ; gcrRegs -[r12]
+       ; gcrRegs -[rdi]
        ; gcr arg pop 0
        int3     
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=10 bbWeight=0 PerfScore 0.00
 G_M23419_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rcx, gword ptr [rbp+98H]
@@ -87,7 +84,7 @@ G_M23419_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r14d, eax
+       mov      r8d, eax
        jmp      G_M23419_IG14
 						;; size=28 bbWeight=0 PerfScore 0.00
 G_M23419_IG07:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
@@ -101,8 +98,8 @@ G_M23419_IG07:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
 G_M23419_IG08:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        cmp      rdi, rbx
        jne      SHORT G_M23419_IG05
-       mov      r12, gword ptr [rbp+98H]
-       ; gcrRegs +[r12]
+       mov      rdi, gword ptr [rbp+98H]
+       ; gcrRegs +[rdi]
        mov      rcx, gword ptr [rbp+98H]
        ; gcrRegs +[rcx]
        mov      ecx, dword ptr [rcx+10H]
@@ -112,13 +109,13 @@ G_M23419_IG08:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        mov      rdx, gword ptr [rdx+08H]
        mov      eax, dword ptr [rdx+08H]
        cmp      eax, ecx
-       jbe      G_M23419_IG04
+       jbe      SHORT G_M23419_IG04
        movzx    rdx, word  ptr [rdx+2*rcx+0CH]
        ; gcrRegs -[rdx]
        jmp      SHORT G_M23419_IG07
-						;; size=51 bbWeight=99.99 PerfScore 1549.84
+						;; size=47 bbWeight=99.99 PerfScore 1549.84
 G_M23419_IG09:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r12]
+       ; gcrRegs -[rdi]
        mov      rcx, gword ptr [rsi+08H]
        ; gcrRegs +[rcx]
        call     [rsi+18H]System.Func`2[ushort,bool]:Invoke(ushort):bool:this
@@ -134,40 +131,41 @@ G_M23419_IG10:        ; bbWeight=100, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
        mov      rbx, 0xD1FFAB1E      ; System.CharEnumerator
        cmp      rdi, rbx
        jne      G_M23419_IG06
-       mov      r14, gword ptr [rbp+98H]
-       ; gcrRegs +[r14]
        mov      rcx, gword ptr [rbp+98H]
-       mov      ecx, dword ptr [rcx+10H]
-       ; gcrRegs -[rcx]
-       inc      ecx
        mov      rdx, gword ptr [rbp+98H]
        ; gcrRegs +[rdx]
-       mov      rdx, gword ptr [rdx+08H]
-       mov      r15d, dword ptr [rdx+08H]
-       cmp      ecx, r15d
-       jge      SHORT G_M23419_IG13
-						;; size=68 bbWeight=100 PerfScore 1500.00
-G_M23419_IG11:        ; bbWeight=400, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
+       mov      edx, dword ptr [rdx+10H]
        ; gcrRegs -[rdx]
-       mov      dword ptr [r14+10H], ecx
-       jmp      G_M23419_IG08
-						;; size=9 bbWeight=400 PerfScore 1200.00
+       inc      edx
+       mov      rax, gword ptr [rbp+98H]
+       ; gcrRegs +[rax]
+       mov      rax, gword ptr [rax+08H]
+       mov      eax, dword ptr [rax+08H]
+       ; gcrRegs -[rax]
+       cmp      edx, eax
+       jge      SHORT G_M23419_IG13
+						;; size=66 bbWeight=100 PerfScore 1500.00
+G_M23419_IG11:        ; bbWeight=400, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rcx+10H], edx
+       mov      r8d, 1
+       jmp      SHORT G_M23419_IG14
+						;; size=11 bbWeight=400 PerfScore 1300.00
 G_M23419_IG12:        ; bbWeight=5.68, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
+       ; gcrRegs -[rcx]
        mov      ecx, dword ptr [rbp+A4H]
        add      ecx, 1
        jo       G_M23419_IG03
        mov      dword ptr [rbp+A4H], ecx
        jmp      SHORT G_M23419_IG10
 						;; size=23 bbWeight=5.68 PerfScore 29.81
-G_M23419_IG13:        ; bbWeight=100, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[r14]
-       mov      dword ptr [r14+10H], r15d
-       xor      r14d, r14d
-       ; gcrRegs -[r14]
-						;; size=7 bbWeight=100 PerfScore 125.00
+G_M23419_IG13:        ; bbWeight=100, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx]
+       mov      dword ptr [rcx+10H], eax
+       xor      r8d, r8d
+						;; size=6 bbWeight=100 PerfScore 125.00
 G_M23419_IG14:        ; bbWeight=100, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       test     r14d, r14d
+       ; gcrRegs -[rcx]
+       test     r8d, r8d
        jne      G_M23419_IG08
 						;; size=9 bbWeight=100 PerfScore 125.00
 G_M23419_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -183,29 +181,23 @@ G_M23419_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      eax, dword ptr [rbp+A4H]
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M23419_IG18:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 272
+       add      rsp, 264
        pop      rbx
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=12 bbWeight=0 PerfScore 0.00
 G_M23419_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
-       push     r14
-       push     r12
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+20H]
        mov      qword ptr [rsp+20H], rbp
-       lea      rbp, [rbp+60H]
-						;; size=27 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+40H]
+						;; size=21 bbWeight=0 PerfScore 0.00
 G_M23419_IG20:        ; bbWeight=0, gcVars=0000000000000001 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars +{V03}
        cmp      gword ptr [rbp+98H], 0
@@ -222,18 +214,15 @@ G_M23419_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M23419_IG22:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 40
        pop      rbx
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 457, prolog size 73, PerfScore 5950.36, instruction count 113, allocated bytes for code 457 (MethodHash=5c03a484) for method System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
+; Total bytes of code 408, prolog size 49, PerfScore 6045.43, instruction count 102, allocated bytes for code 408 (MethodHash=5c03a484) for method System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
 ; ============================================================
 
 Unwind Info:
@@ -241,24 +230,18 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x39
-  CountOfUnwindCodes: 17
+  SizeOfProlog      : 0x21
+  CountOfUnwindCodes: 11
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x39 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+    CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+      Scaled Small Offset: 33 * 8 = 264 = 0x00108
+    CodeOffset: 0x19 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
       Scaled Small Offset: 34 * 8 = 272 = 0x00110
-    CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
+    CodeOffset: 0x11 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rdi (7)
...
-49 (-10.72%) : 78818.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
@@ -19,39 +19,36 @@
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    "guarded devirt return temp"
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
 ;  V08 tmp3         [V08,T11] (  2,199.98)     int  ->  rdx         "guarded devirt return temp"
-;  V09 tmp4         [V09,T14] (  2, 99.99)     ref  ->  r12         class-hnd exact "guarded devirt this exact temp"
+;  V09 tmp4         [V09,T14] (  2, 99.99)     ref  ->  rdi         class-hnd exact "guarded devirt this exact temp"
 ;  V10 tmp5         [V10,T12] (  2,199.98)     int  ->  rax         "guarded devirt return temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "guarded devirt this exact temp"
-;  V12 tmp7         [V12,T01] (  3,200   )     int  ->  r14         "guarded devirt return temp"
-;  V13 tmp8         [V13,T02] (  3,600   )     ref  ->  r14         class-hnd exact "guarded devirt this exact temp"
+;  V12 tmp7         [V12,T01] (  4,600   )     int  ->   r8         "guarded devirt return temp"
+;  V13 tmp8         [V13,T02] (  3,600   )     ref  ->  rcx         class-hnd exact "guarded devirt this exact temp"
 ;* V14 tmp9         [V14,T16] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
 ;* V15 tmp10        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp"
 ;  V16 tmp11        [V16,T10] (  3,299.97)     int  ->  rcx         "Inline stloc first use temp"
 ;  V17 tmp12        [V17,T09] (  3,299.97)     ref  ->  rdx         class-hnd "Inline stloc first use temp"
-;  V18 tmp13        [V18,T03] (  3,600   )     int  ->  rcx         "Inline stloc first use temp"
-;  V19 tmp14        [V19,T05] (  3,300   )     int  ->  r15         "Inline stloc first use temp"
-;  V20 PSPSym       [V20,T17] (  1,  1   )    long  ->  [rbp-40H]   do-not-enreg[V] "PSPSym"
+;  V18 tmp13        [V18,T03] (  3,600   )     int  ->  rdx         "Inline stloc first use temp"
+;  V19 tmp14        [V19,T05] (  3,300   )     int  ->  rax         "Inline stloc first use temp"
+;  V20 PSPSym       [V20,T17] (  1,  1   )    long  ->  [rbp-20H]   do-not-enreg[V] "PSPSym"
 ;  V21 cse0         [V21,T13] (  2,199.98)     int  ->  rax         "CSE - aggressive"
 ;  V22 cse1         [V22,T06] (  3,299.99)    long  ->  rdi         "CSE - aggressive"
 ;  V23 cse2         [V23,T07] (  3,299.99)    long  ->  rbx         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M23419_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        mov      rax, qword ptr [rbp]
        push     rax
-       sub      rsp, 96
-       mov      qword ptr [rsp+138H], r15
-       mov      qword ptr [rsp+130H], r14
-       mov      qword ptr [rsp+128H], r12
-       mov      qword ptr [rsp+120H], rdi
-       mov      qword ptr [rsp+118H], rsi
-       mov      qword ptr [rsp+110H], rbx
-       lea      rbp, [rsp+60H]
-       mov      qword ptr [rbp-40H], rsp
+       sub      rsp, 64
+       mov      qword ptr [rsp+118H], rdi
+       mov      qword ptr [rsp+110H], rsi
+       mov      qword ptr [rsp+108H], rbx
+       lea      rbp, [rsp+40H]
+       mov      qword ptr [rbp-20H], rsp
        mov      rsi, gword ptr [rbp+F8H]
        ; gcrRegs +[rsi]
-						;; size=73 bbWeight=0.01 PerfScore 0.13
+						;; size=49 bbWeight=0.01 PerfScore 0.10
 G_M23419_IG02:        ; bbWeight=0.01, gcVars=0000000000000001 {V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; GC ptr vars +{V03}
        jmp      G_M23419_IG10
@@ -61,14 +58,14 @@ G_M23419_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_OVERFLOW
        ; gcr arg pop 0
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M23419_IG04:        ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[r12]
-       mov      ecx, dword ptr [r12+10H]
+G_M23419_IG04:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
+       mov      ecx, dword ptr [rdi+10H]
        call     [System.ThrowHelper:ThrowInvalidOperationException_EnumCurrent(int)]
-       ; gcrRegs -[r12]
+       ; gcrRegs -[rdi]
        ; gcr arg pop 0
        int3     
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=10 bbWeight=0 PerfScore 0.00
 G_M23419_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rcx, gword ptr [rbp+98H]
@@ -87,7 +84,7 @@ G_M23419_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r14d, eax
+       mov      r8d, eax
        jmp      G_M23419_IG14
 						;; size=28 bbWeight=0 PerfScore 0.00
 G_M23419_IG07:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
@@ -101,8 +98,8 @@ G_M23419_IG07:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
 G_M23419_IG08:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        cmp      rdi, rbx
        jne      SHORT G_M23419_IG05
-       mov      r12, gword ptr [rbp+98H]
-       ; gcrRegs +[r12]
+       mov      rdi, gword ptr [rbp+98H]
+       ; gcrRegs +[rdi]
        mov      rcx, gword ptr [rbp+98H]
        ; gcrRegs +[rcx]
        mov      ecx, dword ptr [rcx+10H]
@@ -112,13 +109,13 @@ G_M23419_IG08:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        mov      rdx, gword ptr [rdx+08H]
        mov      eax, dword ptr [rdx+08H]
        cmp      eax, ecx
-       jbe      G_M23419_IG04
+       jbe      SHORT G_M23419_IG04
        movzx    rdx, word  ptr [rdx+2*rcx+0CH]
        ; gcrRegs -[rdx]
        jmp      SHORT G_M23419_IG07
-						;; size=51 bbWeight=99.99 PerfScore 1549.84
+						;; size=47 bbWeight=99.99 PerfScore 1549.84
 G_M23419_IG09:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r12]
+       ; gcrRegs -[rdi]
        mov      rcx, gword ptr [rsi+08H]
        ; gcrRegs +[rcx]
        call     [rsi+18H]System.Func`2[ushort,bool]:Invoke(ushort):bool:this
@@ -134,40 +131,41 @@ G_M23419_IG10:        ; bbWeight=100, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
        mov      rbx, 0xD1FFAB1E      ; System.CharEnumerator
        cmp      rdi, rbx
        jne      G_M23419_IG06
-       mov      r14, gword ptr [rbp+98H]
-       ; gcrRegs +[r14]
        mov      rcx, gword ptr [rbp+98H]
-       mov      ecx, dword ptr [rcx+10H]
-       ; gcrRegs -[rcx]
-       inc      ecx
        mov      rdx, gword ptr [rbp+98H]
        ; gcrRegs +[rdx]
-       mov      rdx, gword ptr [rdx+08H]
-       mov      r15d, dword ptr [rdx+08H]
-       cmp      ecx, r15d
-       jge      SHORT G_M23419_IG13
-						;; size=68 bbWeight=100 PerfScore 1500.00
-G_M23419_IG11:        ; bbWeight=400, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
+       mov      edx, dword ptr [rdx+10H]
        ; gcrRegs -[rdx]
-       mov      dword ptr [r14+10H], ecx
-       jmp      G_M23419_IG08
-						;; size=9 bbWeight=400 PerfScore 1200.00
+       inc      edx
+       mov      rax, gword ptr [rbp+98H]
+       ; gcrRegs +[rax]
+       mov      rax, gword ptr [rax+08H]
+       mov      eax, dword ptr [rax+08H]
+       ; gcrRegs -[rax]
+       cmp      edx, eax
+       jge      SHORT G_M23419_IG13
+						;; size=66 bbWeight=100 PerfScore 1500.00
+G_M23419_IG11:        ; bbWeight=400, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rcx+10H], edx
+       mov      r8d, 1
+       jmp      SHORT G_M23419_IG14
+						;; size=11 bbWeight=400 PerfScore 1300.00
 G_M23419_IG12:        ; bbWeight=5.36, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
+       ; gcrRegs -[rcx]
        mov      ecx, dword ptr [rbp+A4H]
        add      ecx, 1
        jo       G_M23419_IG03
        mov      dword ptr [rbp+A4H], ecx
        jmp      SHORT G_M23419_IG10
 						;; size=23 bbWeight=5.36 PerfScore 28.13
-G_M23419_IG13:        ; bbWeight=100, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[r14]
-       mov      dword ptr [r14+10H], r15d
-       xor      r14d, r14d
-       ; gcrRegs -[r14]
-						;; size=7 bbWeight=100 PerfScore 125.00
+G_M23419_IG13:        ; bbWeight=100, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx]
+       mov      dword ptr [rcx+10H], eax
+       xor      r8d, r8d
+						;; size=6 bbWeight=100 PerfScore 125.00
 G_M23419_IG14:        ; bbWeight=100, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       test     r14d, r14d
+       ; gcrRegs -[rcx]
+       test     r8d, r8d
        jne      G_M23419_IG08
 						;; size=9 bbWeight=100 PerfScore 125.00
 G_M23419_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -183,29 +181,23 @@ G_M23419_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      eax, dword ptr [rbp+A4H]
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M23419_IG18:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 272
+       add      rsp, 264
        pop      rbx
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=12 bbWeight=0 PerfScore 0.00
 G_M23419_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
-       push     r14
-       push     r12
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+20H]
        mov      qword ptr [rsp+20H], rbp
-       lea      rbp, [rbp+60H]
-						;; size=27 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+40H]
+						;; size=21 bbWeight=0 PerfScore 0.00
 G_M23419_IG20:        ; bbWeight=0, gcVars=0000000000000001 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars +{V03}
        cmp      gword ptr [rbp+98H], 0
@@ -222,18 +214,15 @@ G_M23419_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M23419_IG22:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 40
        pop      rbx
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 457, prolog size 73, PerfScore 5948.68, instruction count 113, allocated bytes for code 457 (MethodHash=5c03a484) for method System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
+; Total bytes of code 408, prolog size 49, PerfScore 6043.75, instruction count 102, allocated bytes for code 408 (MethodHash=5c03a484) for method System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
 ; ============================================================
 
 Unwind Info:
@@ -241,24 +230,18 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x39
-  CountOfUnwindCodes: 17
+  SizeOfProlog      : 0x21
+  CountOfUnwindCodes: 11
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x39 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+    CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+      Scaled Small Offset: 33 * 8 = 264 = 0x00108
+    CodeOffset: 0x19 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
       Scaled Small Offset: 34 * 8 = 272 = 0x00110
-    CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
+    CodeOffset: 0x11 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rdi (7)
...
-49 (-10.72%) : 39687.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
@@ -19,39 +19,36 @@
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    "guarded devirt return temp"
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
 ;  V08 tmp3         [V08,T11] (  2,199.98)     int  ->  rdx         "guarded devirt return temp"
-;  V09 tmp4         [V09,T14] (  2, 99.99)     ref  ->  r12         class-hnd exact "guarded devirt this exact temp"
+;  V09 tmp4         [V09,T14] (  2, 99.99)     ref  ->  rdi         class-hnd exact "guarded devirt this exact temp"
 ;  V10 tmp5         [V10,T12] (  2,199.98)     int  ->  rax         "guarded devirt return temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "guarded devirt this exact temp"
-;  V12 tmp7         [V12,T01] (  3,200   )     int  ->  r14         "guarded devirt return temp"
-;  V13 tmp8         [V13,T02] (  3,600   )     ref  ->  r14         class-hnd exact "guarded devirt this exact temp"
+;  V12 tmp7         [V12,T01] (  4,600   )     int  ->   r8         "guarded devirt return temp"
+;  V13 tmp8         [V13,T02] (  3,600   )     ref  ->  rcx         class-hnd exact "guarded devirt this exact temp"
 ;* V14 tmp9         [V14,T16] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
 ;* V15 tmp10        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp"
 ;  V16 tmp11        [V16,T10] (  3,299.97)     int  ->  rcx         "Inline stloc first use temp"
 ;  V17 tmp12        [V17,T09] (  3,299.97)     ref  ->  rdx         class-hnd "Inline stloc first use temp"
-;  V18 tmp13        [V18,T03] (  3,600   )     int  ->  rcx         "Inline stloc first use temp"
-;  V19 tmp14        [V19,T05] (  3,300   )     int  ->  r15         "Inline stloc first use temp"
-;  V20 PSPSym       [V20,T17] (  1,  1   )    long  ->  [rbp-40H]   do-not-enreg[V] "PSPSym"
+;  V18 tmp13        [V18,T03] (  3,600   )     int  ->  rdx         "Inline stloc first use temp"
+;  V19 tmp14        [V19,T05] (  3,300   )     int  ->  rax         "Inline stloc first use temp"
+;  V20 PSPSym       [V20,T17] (  1,  1   )    long  ->  [rbp-20H]   do-not-enreg[V] "PSPSym"
 ;  V21 cse0         [V21,T13] (  2,199.98)     int  ->  rax         "CSE - aggressive"
 ;  V22 cse1         [V22,T06] (  3,299.99)    long  ->  rdi         "CSE - aggressive"
 ;  V23 cse2         [V23,T07] (  3,299.99)    long  ->  rbx         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M23419_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        mov      rax, qword ptr [rbp]
        push     rax
-       sub      rsp, 96
-       mov      qword ptr [rsp+138H], r15
-       mov      qword ptr [rsp+130H], r14
-       mov      qword ptr [rsp+128H], r12
-       mov      qword ptr [rsp+120H], rdi
-       mov      qword ptr [rsp+118H], rsi
-       mov      qword ptr [rsp+110H], rbx
-       lea      rbp, [rsp+60H]
-       mov      qword ptr [rbp-40H], rsp
+       sub      rsp, 64
+       mov      qword ptr [rsp+118H], rdi
+       mov      qword ptr [rsp+110H], rsi
+       mov      qword ptr [rsp+108H], rbx
+       lea      rbp, [rsp+40H]
+       mov      qword ptr [rbp-20H], rsp
        mov      rsi, gword ptr [rbp+F8H]
        ; gcrRegs +[rsi]
-						;; size=73 bbWeight=0.01 PerfScore 0.13
+						;; size=49 bbWeight=0.01 PerfScore 0.10
 G_M23419_IG02:        ; bbWeight=0.01, gcVars=0000000000000001 {V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; GC ptr vars +{V03}
        jmp      G_M23419_IG10
@@ -61,14 +58,14 @@ G_M23419_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_OVERFLOW
        ; gcr arg pop 0
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M23419_IG04:        ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[r12]
-       mov      ecx, dword ptr [r12+10H]
+G_M23419_IG04:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
+       mov      ecx, dword ptr [rdi+10H]
        call     [System.ThrowHelper:ThrowInvalidOperationException_EnumCurrent(int)]
-       ; gcrRegs -[r12]
+       ; gcrRegs -[rdi]
        ; gcr arg pop 0
        int3     
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=10 bbWeight=0 PerfScore 0.00
 G_M23419_IG05:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi]
        mov      rcx, gword ptr [rbp+98H]
@@ -87,7 +84,7 @@ G_M23419_IG06:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r14d, eax
+       mov      r8d, eax
        jmp      G_M23419_IG14
 						;; size=28 bbWeight=0 PerfScore 0.00
 G_M23419_IG07:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
@@ -101,8 +98,8 @@ G_M23419_IG07:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
 G_M23419_IG08:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        cmp      rdi, rbx
        jne      SHORT G_M23419_IG05
-       mov      r12, gword ptr [rbp+98H]
-       ; gcrRegs +[r12]
+       mov      rdi, gword ptr [rbp+98H]
+       ; gcrRegs +[rdi]
        mov      rcx, gword ptr [rbp+98H]
        ; gcrRegs +[rcx]
        mov      ecx, dword ptr [rcx+10H]
@@ -112,13 +109,13 @@ G_M23419_IG08:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        mov      rdx, gword ptr [rdx+08H]
        mov      eax, dword ptr [rdx+08H]
        cmp      eax, ecx
-       jbe      G_M23419_IG04
+       jbe      SHORT G_M23419_IG04
        movzx    rdx, word  ptr [rdx+2*rcx+0CH]
        ; gcrRegs -[rdx]
        jmp      SHORT G_M23419_IG07
-						;; size=51 bbWeight=99.99 PerfScore 1549.84
+						;; size=47 bbWeight=99.99 PerfScore 1549.84
 G_M23419_IG09:        ; bbWeight=99.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r12]
+       ; gcrRegs -[rdi]
        mov      rcx, gword ptr [rsi+08H]
        ; gcrRegs +[rcx]
        call     [rsi+18H]System.Func`2[ushort,bool]:Invoke(ushort):bool:this
@@ -134,40 +131,41 @@ G_M23419_IG10:        ; bbWeight=100, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
        mov      rbx, 0xD1FFAB1E      ; System.CharEnumerator
        cmp      rdi, rbx
        jne      G_M23419_IG06
-       mov      r14, gword ptr [rbp+98H]
-       ; gcrRegs +[r14]
        mov      rcx, gword ptr [rbp+98H]
-       mov      ecx, dword ptr [rcx+10H]
-       ; gcrRegs -[rcx]
-       inc      ecx
        mov      rdx, gword ptr [rbp+98H]
        ; gcrRegs +[rdx]
-       mov      rdx, gword ptr [rdx+08H]
-       mov      r15d, dword ptr [rdx+08H]
-       cmp      ecx, r15d
-       jge      SHORT G_M23419_IG13
-						;; size=68 bbWeight=100 PerfScore 1500.00
-G_M23419_IG11:        ; bbWeight=400, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
+       mov      edx, dword ptr [rdx+10H]
        ; gcrRegs -[rdx]
-       mov      dword ptr [r14+10H], ecx
-       jmp      G_M23419_IG08
-						;; size=9 bbWeight=400 PerfScore 1200.00
+       inc      edx
+       mov      rax, gword ptr [rbp+98H]
+       ; gcrRegs +[rax]
+       mov      rax, gword ptr [rax+08H]
+       mov      eax, dword ptr [rax+08H]
+       ; gcrRegs -[rax]
+       cmp      edx, eax
+       jge      SHORT G_M23419_IG13
+						;; size=66 bbWeight=100 PerfScore 1500.00
+G_M23419_IG11:        ; bbWeight=400, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref, isz
+       mov      dword ptr [rcx+10H], edx
+       mov      r8d, 1
+       jmp      SHORT G_M23419_IG14
+						;; size=11 bbWeight=400 PerfScore 1300.00
 G_M23419_IG12:        ; bbWeight=5.81, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
+       ; gcrRegs -[rcx]
        mov      ecx, dword ptr [rbp+A4H]
        add      ecx, 1
        jo       G_M23419_IG03
        mov      dword ptr [rbp+A4H], ecx
        jmp      SHORT G_M23419_IG10
 						;; size=23 bbWeight=5.81 PerfScore 30.48
-G_M23419_IG13:        ; bbWeight=100, gcrefRegs=4040 {rsi r14}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[r14]
-       mov      dword ptr [r14+10H], r15d
-       xor      r14d, r14d
-       ; gcrRegs -[r14]
-						;; size=7 bbWeight=100 PerfScore 125.00
+G_M23419_IG13:        ; bbWeight=100, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rcx]
+       mov      dword ptr [rcx+10H], eax
+       xor      r8d, r8d
+						;; size=6 bbWeight=100 PerfScore 125.00
 G_M23419_IG14:        ; bbWeight=100, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       test     r14d, r14d
+       ; gcrRegs -[rcx]
+       test     r8d, r8d
        jne      G_M23419_IG08
 						;; size=9 bbWeight=100 PerfScore 125.00
 G_M23419_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -183,29 +181,23 @@ G_M23419_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      eax, dword ptr [rbp+A4H]
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M23419_IG18:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 272
+       add      rsp, 264
        pop      rbx
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=12 bbWeight=0 PerfScore 0.00
 G_M23419_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        push     rbp
-       push     r15
-       push     r14
-       push     r12
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+20H]
        mov      qword ptr [rsp+20H], rbp
-       lea      rbp, [rbp+60H]
-						;; size=27 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+40H]
+						;; size=21 bbWeight=0 PerfScore 0.00
 G_M23419_IG20:        ; bbWeight=0, gcVars=0000000000000001 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars +{V03}
        cmp      gword ptr [rbp+98H], 0
@@ -222,18 +214,15 @@ G_M23419_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M23419_IG22:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 40
        pop      rbx
        pop      rsi
        pop      rdi
-       pop      r12
-       pop      r14
-       pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 457, prolog size 73, PerfScore 5951.03, instruction count 113, allocated bytes for code 457 (MethodHash=5c03a484) for method System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
+; Total bytes of code 408, prolog size 49, PerfScore 6046.10, instruction count 102, allocated bytes for code 408 (MethodHash=5c03a484) for method System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
 ; ============================================================
 
 Unwind Info:
@@ -241,24 +230,18 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x39
-  CountOfUnwindCodes: 17
+  SizeOfProlog      : 0x21
+  CountOfUnwindCodes: 11
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x39 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+    CodeOffset: 0x21 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rbx (3)
+      Scaled Small Offset: 33 * 8 = 264 = 0x00108
+    CodeOffset: 0x19 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
       Scaled Small Offset: 34 * 8 = 272 = 0x00110
-    CodeOffset: 0x31 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rsi (6)
+    CodeOffset: 0x11 UnwindOp: UWOP_SAVE_NONVOL (4)     OpInfo: rdi (7)
...
+34 (+10.79%) : 65796.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
@@ -21,7 +21,7 @@
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp2         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V12 tmp3         [V12,T13] (  3,  0.98)     int  ->  rax         "guarded devirt return temp"
+;  V12 tmp3         [V12,T13] (  5,  1.31)     int  ->  r12         "guarded devirt return temp"
 ;  V13 tmp4         [V13,T11] (  4,  1.33)     ref  ->  rcx         class-hnd exact "guarded devirt this exact temp"
 ;* V14 tmp5         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V15 tmp6         [V15,T09] (  3,  1.62)     int  ->  rax         "Inline return value spill temp"
@@ -40,21 +40,22 @@
 ;  V28 cse0         [V28,T14] (  2,  1.21)    long  ->  r15         "CSE - moderate"
 ;  V29 cse1         [V29,T15] (  3,  1.00)     int  ->   r8         "CSE - conservative"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 48
 
 G_M33817_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
+       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
-       mov      qword ptr [rsp+20H], rdx
+       sub      rsp, 48
+       mov      qword ptr [rsp+28H], rdx
        mov      rdi, rdx
        mov      rsi, r8
        ; gcrRegs +[rsi]
-						;; size=23 bbWeight=1 PerfScore 7.75
+						;; size=25 bbWeight=1 PerfScore 8.75
 G_M33817_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0002 {rcx}, byref, isz
        ; byrRegs +[rcx]
        mov      rbx, gword ptr [rcx]
@@ -79,7 +80,7 @@ G_M33817_IG05:        ; bbWeight=0.81, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       jmp      SHORT G_M33817_IG13
+       jmp      SHORT G_M33817_IG12
 						;; size=10 bbWeight=0.81 PerfScore 6.49
 G_M33817_IG06:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rsi]
@@ -87,16 +88,17 @@ G_M33817_IG06:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rax]
 						;; size=2 bbWeight=0.19 PerfScore 0.05
 G_M33817_IG07:        ; bbWeight=0.19, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 48
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r12
        pop      r14
        pop      r15
        ret      
-						;; size=13 bbWeight=0.19 PerfScore 0.80
-G_M33817_IG08:        ; bbWeight=1.21, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+						;; size=15 bbWeight=0.19 PerfScore 0.90
+G_M33817_IG08:        ; bbWeight=1.21, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[rbx rbp rsi]
        mov      r8, qword ptr [r15]
        movsxd   rdx, r14d
@@ -109,25 +111,25 @@ G_M33817_IG08:        ; bbWeight=1.21, gcVars=0000000000000000 {}, gcrefRegs=006
        mov      rcx, gword ptr [rax]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       SHORT G_M33817_IG15
-						;; size=22 bbWeight=1.21 PerfScore 8.15
+       je       G_M33817_IG19
+						;; size=26 bbWeight=1.21 PerfScore 8.15
 G_M33817_IG09:        ; bbWeight=0.49, gcrefRegs=006A {rcx rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rax]
        mov      r8, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rcx], r8
-       jne      SHORT G_M33817_IG14
+       jne      SHORT G_M33817_IG13
 						;; size=15 bbWeight=0.49 PerfScore 2.08
 G_M33817_IG10:        ; bbWeight=0.33, gcrefRegs=006A {rcx rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
        cmp      rcx, rsi
-       je       SHORT G_M33817_IG19
+       je       G_M33817_IG22
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        mov      r8, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rdx], r8
-       jne      SHORT G_M33817_IG17
+       jne      SHORT G_M33817_IG11
        mov      r8d, dword ptr [rcx+08H]
        cmp      r8d, dword ptr [rdx+08H]
-       jne      SHORT G_M33817_IG17
+       jne      SHORT G_M33817_IG11
        add      rcx, 12
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -138,15 +140,14 @@ G_M33817_IG10:        ; bbWeight=0.33, gcrefRegs=006A {rcx rbx rbp rsi}, byrefRe
        call     [<unknown method>]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
-						;; size=50 bbWeight=0.33 PerfScore 5.17
-G_M33817_IG11:        ; bbWeight=0.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       test     eax, eax
-       jne      SHORT G_M33817_IG19
-						;; size=4 bbWeight=0.49 PerfScore 0.61
-G_M33817_IG12:        ; bbWeight=0.40, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M33817_IG17
-						;; size=2 bbWeight=0.40 PerfScore 0.79
-G_M33817_IG13:        ; bbWeight=0.81, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       mov      r12d, eax
+       jmp      SHORT G_M33817_IG14
+						;; size=59 bbWeight=0.33 PerfScore 5.92
+G_M33817_IG11:        ; bbWeight=0.33, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       xor      r12d, r12d
+       jmp      SHORT G_M33817_IG14
+						;; size=5 bbWeight=0.33 PerfScore 0.75
+G_M33817_IG12:        ; bbWeight=0.81, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbp]
        mov      edx, eax
        not      edx
@@ -157,9 +158,9 @@ G_M33817_IG13:        ; bbWeight=0.81, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        cdq      
        idiv     edx:eax, dword ptr [rbp+08H]
        mov      r14d, edx
-       jmp      SHORT G_M33817_IG22
+       jmp      SHORT G_M33817_IG23
 						;; size=22 bbWeight=0.81 PerfScore 24.95
-G_M33817_IG14:        ; bbWeight=0.16, gcrefRegs=006A {rcx rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M33817_IG13:        ; bbWeight=0.16, gcrefRegs=006A {rcx rbx rbp rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        mov      rdx, rsi
        ; gcrRegs +[rdx]
@@ -168,54 +169,59 @@ G_M33817_IG14:        ; bbWeight=0.16, gcrefRegs=006A {rcx rbx rbp rsi}, byrefRe
        call     [rax+10H]<unknown method>
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       jmp      SHORT G_M33817_IG11
-						;; size=15 bbWeight=0.16 PerfScore 1.45
-G_M33817_IG15:        ; bbWeight=0.72, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx rbp rsi]
-       xor      rax, rax
-       ; gcrRegs +[rax]
-						;; size=2 bbWeight=0.72 PerfScore 0.18
-G_M33817_IG16:        ; bbWeight=0.72, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
-       pop      rsi
-       pop      rdi
-       pop      r14
-       pop      r15
-       ret      
-						;; size=13 bbWeight=0.72 PerfScore 3.05
-G_M33817_IG17:        ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax] +[rbx rbp rsi]
+       mov      r12d, eax
+						;; size=16 bbWeight=0.16 PerfScore 1.18
+G_M33817_IG14:        ; bbWeight=0.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+       test     r12d, r12d
+       jne      SHORT G_M33817_IG17
+						;; size=5 bbWeight=0.49 PerfScore 0.61
+G_M33817_IG15:        ; bbWeight=0.40, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        inc      r14d
        cmp      dword ptr [rbp+08H], r14d
        jg       G_M33817_IG08
 						;; size=13 bbWeight=0.40 PerfScore 1.68
-G_M33817_IG18:        ; bbWeight=0.03, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M33817_IG16:        ; bbWeight=0.03, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
        sub      r14d, dword ptr [rbp+08H]
-       jmp      SHORT G_M33817_IG22
+       jmp      SHORT G_M33817_IG23
 						;; size=6 bbWeight=0.03 PerfScore 0.14
-G_M33817_IG19:        ; bbWeight=0.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M33817_IG17:        ; bbWeight=0.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbp rsi]
        mov      rax, gword ptr [rbx+10H]
        ; gcrRegs +[rax]
        cmp      r14d, dword ptr [rax+08H]
-       jae      SHORT G_M33817_IG23
+       jae      SHORT G_M33817_IG24
        mov      edx, r14d
        mov      rax, gword ptr [rax+8*rdx+10H]
 						;; size=18 bbWeight=0.09 PerfScore 0.78
-G_M33817_IG20:        ; bbWeight=0.09, epilog, nogc, extend
-       add      rsp, 40
+G_M33817_IG18:        ; bbWeight=0.09, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r12
        pop      r14
        pop      r15
        ret      
-						;; size=13 bbWeight=0.09 PerfScore 0.40
+						;; size=15 bbWeight=0.09 PerfScore 0.45
+G_M33817_IG19:        ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax rbx]
+       xor      rax, rax
+       ; gcrRegs +[rax]
+						;; size=2 bbWeight=0.72 PerfScore 0.18
+G_M33817_IG20:        ; bbWeight=0.72, epilog, nogc, extend
+       add      rsp, 48
+       pop      rbx
+       pop      rbp
+       pop      rsi
+       pop      rdi
+       pop      r12
+       pop      r14
+       pop      r15
+       ret      
+						;; size=15 bbWeight=0.72 PerfScore 3.41
 G_M33817_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax] +[rsi]
+       ; gcrRegs -[rax] +[rbx rsi]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rsi]
@@ -223,22 +229,26 @@ G_M33817_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {
        call     [rax+18H]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       jmp      SHORT G_M33817_IG13
+       jmp      SHORT G_M33817_IG12
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M33817_IG22:        ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M33817_IG22:        ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbp]
+       mov      r12d, 1
+       jmp      SHORT G_M33817_IG14
+						;; size=8 bbWeight=0 PerfScore 0.00
+G_M33817_IG23:        ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
        mov      r8, qword ptr [rdi+38H]
        mov      r15, qword ptr [r8]
        jmp      G_M33817_IG08
 						;; size=12 bbWeight=0 PerfScore 0.00
-G_M33817_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M33817_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rbp rsi]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 315, prolog size 23, PerfScore 102.22, instruction count 108, allocated bytes for code 315 (MethodHash=f7327be6) for method System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
+; Total bytes of code 349, prolog size 25, PerfScore 107.56, instruction count 117, allocated bytes for code 349 (MethodHash=f7327be6) for method System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
 ; ============================================================
...
+43 (+11.68%) : 5896.dasm - System.Reflection.RuntimeMethodInfo:get_InvocationFlags():uint:this
@@ -15,10 +15,10 @@
 ;  V03 tmp1         [V03,T05] (  6,  1.60)     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp"
 ;  V04 tmp2         [V04,T07] (  2,  0.80)     ref  ->  rdi         class-hnd single-def "dup spill"
 ;  V05 tmp3         [V05,T08] (  4,  0.64)     ref  ->  rdi        
-;  V06 tmp4         [V06,T09] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
-;  V07 tmp5         [V07,T11] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
-;  V08 tmp6         [V08,T10] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
-;  V09 tmp7         [V09,T12] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
+;  V06 tmp4         [V06,T09] (  3,  0   )    bool  ->  rdi         "Inline return value spill temp"
+;  V07 tmp5         [V07,T11] (  4,  0   )    bool  ->  rdi         "Inline return value spill temp"
+;  V08 tmp6         [V08,T10] (  3,  0   )    bool  ->  rdi         "Inline return value spill temp"
+;  V09 tmp7         [V09,T12] (  4,  0   )    bool  ->  rdi         "Inline return value spill temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp"
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill"
 ;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref   
@@ -107,7 +107,7 @@ G_M61080_IG08:        ; bbWeight=0.20, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
 						;; size=51 bbWeight=0.20 PerfScore 1.80
 G_M61080_IG09:        ; bbWeight=0.20, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jge      G_M61080_IG15
+       jge      G_M61080_IG18
 						;; size=13 bbWeight=0.20 PerfScore 0.80
 G_M61080_IG10:        ; bbWeight=0.20, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [rsi+48H]
@@ -132,7 +132,11 @@ G_M61080_IG11:        ; bbWeight=0.04, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
 G_M61080_IG12:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax rdi] +[rbx]
        cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jg       SHORT G_M61080_IG13
+       jle      SHORT G_M61080_IG13
+       mov      edi, 1
+       jmp      SHORT G_M61080_IG14
+						;; size=16 bbWeight=0 PerfScore 0.00
+G_M61080_IG13:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
@@ -141,32 +145,23 @@ G_M61080_IG12:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; byrRegs -[rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       je       SHORT G_M61080_IG09
-						;; size=39 bbWeight=0 PerfScore 0.00
-G_M61080_IG13:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jl       SHORT G_M61080_IG14
-       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jg       SHORT G_M61080_IG09
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       ; byrRegs +[rdx]
-       call     [System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):bool]
-       ; gcrRegs -[rcx]
-       ; byrRegs -[rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      G_M61080_IG09
-						;; size=52 bbWeight=0 PerfScore 0.00
+       mov      edi, eax
+						;; size=28 bbWeight=0 PerfScore 0.00
 G_M61080_IG14:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       mov      byte  ptr [rbx+25H], 1
-       jmp      SHORT G_M61080_IG10
-						;; size=6 bbWeight=0 PerfScore 0.00
+       test     edi, edi
+       je       SHORT G_M61080_IG09
+       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
+       jge      SHORT G_M61080_IG15
+       xor      edi, edi
+       jmp      SHORT G_M61080_IG17
+						;; size=17 bbWeight=0 PerfScore 0.00
 G_M61080_IG15:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jg       SHORT G_M61080_IG16
+       jle      SHORT G_M61080_IG16
+       mov      edi, 1
+       jmp      SHORT G_M61080_IG17
+						;; size=16 bbWeight=0 PerfScore 0.00
+G_M61080_IG16:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
@@ -175,31 +170,64 @@ G_M61080_IG15:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; byrRegs -[rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       je       G_M61080_IG10
-						;; size=43 bbWeight=0 PerfScore 0.00
-G_M61080_IG16:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jl       SHORT G_M61080_IG17
-       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       jg       G_M61080_IG10
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       ; byrRegs +[rdx]
-       call     [System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):bool]
-       ; gcrRegs -[rcx]
-       ; byrRegs -[rdx]
-       ; gcr arg pop 0
-       test     eax, eax
-       jne      G_M61080_IG10
-						;; size=56 bbWeight=0 PerfScore 0.00
+       mov      edi, eax
+						;; size=28 bbWeight=0 PerfScore 0.00
 G_M61080_IG17:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       test     edi, edi
+       jne      G_M61080_IG09
+       mov      byte  ptr [rbx+25H], 1
+       jmp      G_M61080_IG10
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M61080_IG18:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
+       jle      SHORT G_M61080_IG19
+       mov      edi, 1
+       jmp      SHORT G_M61080_IG20
+						;; size=16 bbWeight=0 PerfScore 0.00
+G_M61080_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       ; byrRegs +[rdx]
+       call     [System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):bool]
+       ; gcrRegs -[rcx]
+       ; byrRegs -[rdx]
+       ; gcr arg pop 0
+       mov      edi, eax
+						;; size=28 bbWeight=0 PerfScore 0.00
+G_M61080_IG20:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       test     edi, edi
+       je       G_M61080_IG10
+       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
+       jge      SHORT G_M61080_IG21
+       xor      edi, edi
+       jmp      SHORT G_M61080_IG23
+						;; size=21 bbWeight=0 PerfScore 0.00
+G_M61080_IG21:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
+       jle      SHORT G_M61080_IG22
+       mov      edi, 1
+       jmp      SHORT G_M61080_IG23
+						;; size=16 bbWeight=0 PerfScore 0.00
+G_M61080_IG22:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       ; byrRegs +[rdx]
+       call     [System.LocalAppContextSwitches:GetCachedSwitchValueInternal(System.String,byref):bool]
+       ; gcrRegs -[rcx]
+       ; byrRegs -[rdx]
+       ; gcr arg pop 0
+       mov      edi, eax
+						;; size=28 bbWeight=0 PerfScore 0.00
+G_M61080_IG23:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       test     edi, edi
+       jne      G_M61080_IG10
        mov      byte  ptr [rbx+24H], 1
        jmp      G_M61080_IG10
-						;; size=9 bbWeight=0 PerfScore 0.00
+						;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 368, prolog size 7, PerfScore 61.16, instruction count 83, allocated bytes for code 368 (MethodHash=18b21167) for method System.Reflection.RuntimeMethodInfo:get_InvocationFlags():uint:this
+; Total bytes of code 411, prolog size 7, PerfScore 65.46, instruction count 99, allocated bytes for code 411 (MethodHash=18b21167) for method System.Reflection.RuntimeMethodInfo:get_InvocationFlags():uint:this
 ; ============================================================
 
 Unwind Info:
+34 (+12.06%) : 75649.dasm - System.Net.Sockets.Socket:SetToConnected():this
@@ -11,17 +11,17 @@
 ;
 ;  V00 this         [V00,T00] ( 12,  8   )     ref  ->  rsi         this class-hnd single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T08] (  2,  2   )    bool  ->  rax         "Inline return value spill temp"
+;  V02 tmp1         [V02,T08] (  5,  1.67)    bool  ->  rax         "Inline return value spill temp"
 ;  V03 tmp2         [V03,T01] (  3,  5.33)     ref  ->  rdx         class-hnd single-def "Inlining Arg"
 ;  V04 tmp3         [V04,T06] (  3,  2.00)     ref  ->  rax         class-hnd single-def "Inline stloc first use temp"
 ;  V05 tmp4         [V05,T02] (  6,  4.00)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp"
-;  V06 tmp5         [V06,T10] (  2,  1.33)    bool  ->  rax         "Inline return value spill temp"
+;  V06 tmp5         [V06,T09] (  3,  1.33)    bool  ->  rax         "Inline return value spill temp"
 ;  V07 tmp6         [V07,T12] (  2,  1.33)     ref  ->  rdx         class-hnd single-def "Inline stloc first use temp"
 ;  V08 tmp7         [V08,T03] (  2,  2.67)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg"
-;  V09 tmp8         [V09,T11] (  2,  1.33)    bool  ->  rax         "Inline return value spill temp"
+;  V09 tmp8         [V09,T10] (  3,  1.33)    bool  ->  rax         "Inline return value spill temp"
 ;  V10 tmp9         [V10,T13] (  2,  1.33)     ref  ->  rdx         class-hnd single-def "Inline stloc first use temp"
 ;  V11 tmp10        [V11,T04] (  2,  2.67)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg"
-;  V12 tmp11        [V12,T09] (  3,  1.67)    bool  ->  rax         "Inline return value spill temp"
+;  V12 tmp11        [V12,T11] (  3,  1.33)    bool  ->  rax         "Inline return value spill temp"
 ;  V13 tmp12        [V13,T07] (  3,  2.00)     ref  ->  rdx         class-hnd single-def "Inline stloc first use temp"
 ;  V14 tmp13        [V14,T05] (  2,  2.67)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg"
 ;* V15 tmp14        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg"
@@ -49,15 +49,15 @@ G_M14876_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        mov      gword ptr [rsi+28H], rdx
        mov      rdx, gword ptr [rsi+20H]
        test     rdx, rdx
-       je       G_M14876_IG08
+       je       G_M14876_IG16
 						;; size=19 bbWeight=1 PerfScore 4.50
-G_M14876_IG04:        ; bbWeight=0.67, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref, isz
+G_M14876_IG04:        ; bbWeight=0.67, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; System.Net.IPEndPoint
        call     [CORINFO_HELP_ISINSTANCEOFCLASS]
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M14876_IG08
+       je       G_M14876_IG16
        mov      rdi, gword ptr [rax+08H]
        ; gcrRegs +[rdi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
@@ -66,51 +66,51 @@ G_M14876_IG04:        ; bbWeight=0.67, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M14876_IG05
+       je       G_M14876_IG12
        mov      rdx, rdi
        call     [System.Net.IPAddress:Equals(System.Net.IPAddress):bool:this]
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M14876_IG13
-						;; size=59 bbWeight=0.67 PerfScore 9.84
+						;; size=63 bbWeight=0.67 PerfScore 9.01
 G_M14876_IG05:        ; bbWeight=0.67, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+       test     eax, eax
+       jne      G_M14876_IG15
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M14876_IG06
+       je       SHORT G_M14876_IG13
        mov      rdx, rdi
        call     [System.Net.IPAddress:Equals(System.Net.IPAddress):bool:this]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M14876_IG13
-						;; size=34 bbWeight=0.67 PerfScore 5.51
+						;; size=38 bbWeight=0.67 PerfScore 5.51
 G_M14876_IG06:        ; bbWeight=0.67, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+       test     eax, eax
+       jne      SHORT G_M14876_IG15
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M14876_IG12
+       je       SHORT G_M14876_IG14
        call     [System.Net.IPAddress:Equals(System.Net.IPAddress):bool:this]
        ; gcrRegs -[rcx rdx rdi]
        ; gcr arg pop 0
-						;; size=27 bbWeight=0.67 PerfScore 4.51
+						;; size=31 bbWeight=0.67 PerfScore 5.34
 G_M14876_IG07:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
-       jne      SHORT G_M14876_IG13
+       jne      SHORT G_M14876_IG17
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M14876_IG08:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; const ptr
        mov      rdx, gword ptr [rdx]
        ; gcrRegs +[rdx]
        cmp      byte  ptr [rdx+9DH], 0
-       jne      SHORT G_M14876_IG14
+       jne      SHORT G_M14876_IG18
 						;; size=22 bbWeight=1 PerfScore 6.25
 G_M14876_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
@@ -136,17 +136,35 @@ G_M14876_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        ; byrRegs -[rcx]
        jmp      G_M14876_IG03
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M14876_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M14876_IG12:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdi]
+       xor      eax, eax
+       jmp      G_M14876_IG05
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M14876_IG13:        ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+       xor      eax, eax
+       jmp      SHORT G_M14876_IG06
+						;; size=4 bbWeight=0 PerfScore 0.00
+G_M14876_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi]
        xor      eax, eax
        jmp      SHORT G_M14876_IG07
 						;; size=4 bbWeight=0 PerfScore 0.00
-G_M14876_IG13:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M14876_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M14876_IG07
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M14876_IG16:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       xor      eax, eax
+       je       SHORT G_M14876_IG08
+						;; size=4 bbWeight=0 PerfScore 0.00
+G_M14876_IG17:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        xor      rcx, rcx
        ; gcrRegs +[rcx]
        mov      gword ptr [rsi+20H], rcx
        jmp      SHORT G_M14876_IG08
 						;; size=8 bbWeight=0 PerfScore 0.00
-G_M14876_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M14876_IG18:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -155,7 +173,7 @@ G_M14876_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        mov      r8, 0xD1FFAB1E
        ; gcrRegs +[r8]
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M14876_IG15:        ; bbWeight=0, epilog, nogc, extend
+G_M14876_IG19:        ; bbWeight=0, epilog, nogc, extend
        add      rsp, 40
        pop      rsi
        pop      rdi
@@ -163,7 +181,7 @@ G_M14876_IG15:        ; bbWeight=0, epilog, nogc, extend
        ; gcr arg pop 0
 						;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 282, prolog size 9, PerfScore 74.81, instruction count 74, allocated bytes for code 282 (MethodHash=96ffc5e3) for method System.Net.Sockets.Socket:SetToConnected():this
+; Total bytes of code 316, prolog size 9, PerfScore 78.21, instruction count 82, allocated bytes for code 316 (MethodHash=96ffc5e3) for method System.Net.Sockets.Socket:SetToConnected():this
 ; ============================================================
 
 Unwind Info:
benchmarks.run_tiered.windows.x64.checked.mch
-4 (-0.27%) : 7818.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
@@ -198,7 +198,7 @@ G_M24617_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        je       G_M24617_IG32
        jmp      G_M24617_IG17
 						;; size=94 bbWeight=0.50 PerfScore 12.25
-G_M24617_IG08:        ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, byref
+G_M24617_IG08:        ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -223,8 +223,8 @@ G_M24617_IG08:        ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0
        ; gcrRegs -[rax]
        mov      dword ptr [rbp-44H], eax
        test     eax, eax
-       jle      G_M24617_IG42
-						;; size=74 bbWeight=0.50 PerfScore 6.88
+       jle      SHORT G_M24617_IG12
+						;; size=70 bbWeight=0.50 PerfScore 6.88
 G_M24617_IG09:        ; bbWeight=4, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, r13d
        mov      rdx, gword ptr [rbx+8*rdx+10H]
@@ -778,7 +778,7 @@ G_M24617_IG46:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {},
        int3     
 						;; size=106 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1489, prolog size 33, PerfScore 430.84, instruction count 379, allocated bytes for code 1489 (MethodHash=a0569fd6) for method System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
+; Total bytes of code 1485, prolog size 33, PerfScore 430.44, instruction count 379, allocated bytes for code 1485 (MethodHash=a0569fd6) for method System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
 ; ============================================================
 
 Unwind Info:
+0 (0.00%) : 31754.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this
@@ -2125,7 +2125,7 @@ G_M21650_IG108:        ; bbWeight=4, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=00A
        xor      eax, eax
        ; gcrRegs -[rax]
        cmp      dword ptr [r12+08H], 0
-       jle      G_M21650_IG124
+       jle      G_M21650_IG123
 						;; size=29 bbWeight=4 PerfScore 32.00
 G_M21650_IG109:        ; bbWeight=16, gcrefRegs=9048 {rbx rsi r12 r15}, byrefRegs=00A0 {rbp rdi}, byref
        mov      dword ptr [rsp+14CH], eax
+0 (0.00%) : 19173.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],bool,bool):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
@@ -359,7 +359,7 @@ G_M11912_IG22:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        xor      r15d, r15d
        xor      r12d, r12d
        cmp      dword ptr [rbp+10H], 0
-       jle      G_M11912_IG32
+       jle      G_M11912_IG27
 						;; size=116 bbWeight=0.50 PerfScore 10.88
 G_M11912_IG23:        ; bbWeight=4, gcrefRegs=4068 {rbx rbp rsi r14}, byrefRegs=0000 {}, byref, isz
        cmp      r12d, dword ptr [rbp+10H]
+22 (+4.04%) : 37768.dasm - System.MathBenchmarks.Double:ILogBTest()
@@ -19,34 +19,34 @@
 ;  V07 tmp3         [V07,T04] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V09 tmp5         [V09,T07] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V10 tmp6         [V10,T09] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
-;* V11 tmp7         [V11,T19] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V10 tmp6         [V10,T11] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V11 tmp7         [V11,T08] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V14 tmp10        [V14,T10] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V14 tmp10        [V14,T12] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V16 tmp12        [V16,T05] (  4,  0   )     int  ->  rsi         "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V18 tmp14        [V18,T08] (  3,  0   )     int  ->  rbp         "Inlining Arg"
-;  V19 tmp15        [V19,T11] (  2,  0   )   byref  ->  rbx         single-def "Inlining Arg"
-;* V20 tmp16        [V20,T20] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V18 tmp14        [V18,T09] (  3,  0   )     int  ->  rbp         "Inlining Arg"
+;  V19 tmp15        [V19,T13] (  2,  0   )   byref  ->  rbx         single-def "Inlining Arg"
+;  V20 tmp16        [V20,T10] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V23 tmp19        [V23,T12] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V23 tmp19        [V23,T14] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V24 tmp20        [V24    ] (  0,  0   )   byref  ->  zero-ref    V06._reference(offs=0x00) P-INDEP "field V06._reference (fldOffset=0x0)"
 ;* V25 tmp21        [V25    ] (  0,  0   )     int  ->  zero-ref    V06._length(offs=0x08) P-INDEP "field V06._length (fldOffset=0x8)"
-;  V26 tmp22        [V26,T13] (  2,  0   )   byref  ->  rsi         single-def V08._reference(offs=0x00) P-INDEP "field V08._reference (fldOffset=0x0)"
+;  V26 tmp22        [V26,T15] (  2,  0   )   byref  ->  rsi         single-def V08._reference(offs=0x00) P-INDEP "field V08._reference (fldOffset=0x0)"
 ;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def V08._length(offs=0x08) P-INDEP "field V08._length (fldOffset=0x8)"
-;  V28 tmp24        [V28,T14] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
+;  V28 tmp24        [V28,T16] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def V12._length(offs=0x08) P-INDEP "field V12._length (fldOffset=0x8)"
 ;* V30 tmp26        [V30    ] (  0,  0   )   byref  ->  zero-ref    V15._reference(offs=0x00) P-INDEP "field V15._reference (fldOffset=0x0)"
 ;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref    V15._length(offs=0x08) P-INDEP "field V15._length (fldOffset=0x8)"
-;  V32 tmp28        [V32,T15] (  2,  0   )   byref  ->  rbx         single-def V17._reference(offs=0x00) P-INDEP "field V17._reference (fldOffset=0x0)"
+;  V32 tmp28        [V32,T17] (  2,  0   )   byref  ->  rbx         single-def V17._reference(offs=0x00) P-INDEP "field V17._reference (fldOffset=0x0)"
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def V17._length(offs=0x08) P-INDEP "field V17._length (fldOffset=0x8)"
-;  V34 tmp30        [V34,T16] (  2,  0   )   byref  ->  rbx         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
+;  V34 tmp30        [V34,T18] (  2,  0   )   byref  ->  rbx         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def V21._length(offs=0x08) P-INDEP "field V21._length (fldOffset=0x8)"
-;  V36 tmp32        [V36,T17] (  2,  0   )     ref  ->   r9         single-def "argument with side effect"
-;  V37 tmp33        [V37,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V36 tmp32        [V36,T19] (  2,  0   )     ref  ->   r9         single-def "argument with side effect"
+;  V37 tmp33        [V37,T20] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V38 cse0         [V38,T03] (  2,  5   )  double  ->  mm7         "CSE - aggressive"
 ;
 ; Lcl frame size = 72
@@ -100,7 +100,7 @@ G_M18268_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+D8H]
        cmp      ecx, dword ptr [rsp+E8H]
-       ja       G_M18268_IG09
+       ja       G_M18268_IG10
        mov      rax, bword ptr [rsp+E0H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -114,20 +114,26 @@ G_M18268_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebx, 16
        jb       SHORT G_M18268_IG07
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rsi], ymm0
-       mov      ecx, dword ptr [rsp+D8H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=111 bbWeight=0 PerfScore 0.00
+G_M18268_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rsi]
+       test     ecx, ecx
+       je       SHORT G_M18268_IG08
+       mov      ecx, dword ptr [rsp+D8H]
        add      ecx, 16
        mov      dword ptr [rsp+D8H], ecx
-       jmp      SHORT G_M18268_IG08
-						;; size=123 bbWeight=0 PerfScore 0.00
-G_M18268_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rsi]
+       jmp      SHORT G_M18268_IG09
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M18268_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+C8H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -135,7 +141,7 @@ G_M18268_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M18268_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M18268_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [rsp+C8H]
        mov      edx, 0x9C3
        mov      r8d, 20
@@ -146,14 +152,14 @@ G_M18268_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcr arg pop 0
        mov      esi, dword ptr [rsp+D8H]
        cmp      esi, dword ptr [rsp+E8H]
-       jbe      SHORT G_M18268_IG10
+       jbe      SHORT G_M18268_IG11
 						;; size=51 bbWeight=0 PerfScore 0.00
-G_M18268_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M18268_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M18268_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M18268_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, bword ptr [rsp+E0H]
        ; byrRegs +[rcx]
        mov      eax, esi
@@ -167,20 +173,26 @@ G_M18268_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        shr      ecx, 31
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebp, 16
-       jb       SHORT G_M18268_IG11
+       jb       SHORT G_M18268_IG12
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rbx], ymm0
-       mov      ecx, dword ptr [rsp+D8H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=66 bbWeight=0 PerfScore 0.00
+G_M18268_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rbx]
+       test     ecx, ecx
+       je       SHORT G_M18268_IG13
+       mov      ecx, dword ptr [rsp+D8H]
        add      ecx, 16
        mov      dword ptr [rsp+D8H], ecx
-       jmp      SHORT G_M18268_IG12
-						;; size=78 bbWeight=0 PerfScore 0.00
-G_M18268_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rbx]
+       jmp      SHORT G_M18268_IG14
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M18268_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+C8H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -188,7 +200,7 @@ G_M18268_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M18268_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M18268_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, 0x5E93
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -228,7 +240,7 @@ G_M18268_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 RWD00  	dq	3F3A36E2EB1C432Dh	;       0.0004
 
 
-; Total bytes of code 545, prolog size 43, PerfScore 119.50, instruction count 108, allocated bytes for code 545 (MethodHash=60edb8a3) for method System.MathBenchmarks.Double:ILogBTest()
+; Total bytes of code 567, prolog size 43, PerfScore 121.70, instruction count 116, allocated bytes for code 567 (MethodHash=60edb8a3) for method System.MathBenchmarks.Double:ILogBTest()
 ; ============================================================
 
 Unwind Info:
+22 (+4.29%) : 28594.dasm - System.MathBenchmarks.Double:CopySignTest()
@@ -23,33 +23,33 @@
 ;  V11 tmp7         [V11,T05] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V13 tmp9         [V13,T08] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V14 tmp10        [V14,T10] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
-;* V15 tmp11        [V15,T19] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V14 tmp10        [V14,T12] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V15 tmp11        [V15,T09] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V18 tmp14        [V18,T11] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V18 tmp14        [V18,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V20 tmp16        [V20,T06] (  4,  0   )     int  ->  rsi         "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V22 tmp18        [V22,T09] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V23 tmp19        [V23,T12] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V24 tmp20        [V24,T20] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V22 tmp18        [V22,T10] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V23 tmp19        [V23,T14] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V24 tmp20        [V24,T11] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V26 tmp22        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V27 tmp23        [V27,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V27 tmp23        [V27,T15] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V28 tmp24        [V28    ] (  0,  0   )   byref  ->  zero-ref    V10._reference(offs=0x00) P-INDEP "field V10._reference (fldOffset=0x0)"
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    V10._length(offs=0x08) P-INDEP "field V10._length (fldOffset=0x8)"
-;  V30 tmp26        [V30,T14] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
+;  V30 tmp26        [V30,T16] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
 ;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def V12._length(offs=0x08) P-INDEP "field V12._length (fldOffset=0x8)"
-;  V32 tmp28        [V32,T15] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
+;  V32 tmp28        [V32,T17] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def V16._length(offs=0x08) P-INDEP "field V16._length (fldOffset=0x8)"
 ;* V34 tmp30        [V34    ] (  0,  0   )   byref  ->  zero-ref    V19._reference(offs=0x00) P-INDEP "field V19._reference (fldOffset=0x0)"
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    V19._length(offs=0x08) P-INDEP "field V19._length (fldOffset=0x8)"
-;  V36 tmp32        [V36,T16] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
+;  V36 tmp32        [V36,T18] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
 ;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    single-def V21._length(offs=0x08) P-INDEP "field V21._length (fldOffset=0x8)"
-;  V38 tmp34        [V38,T17] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
+;  V38 tmp34        [V38,T19] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def V25._length(offs=0x08) P-INDEP "field V25._length (fldOffset=0x8)"
-;  V40 tmp36        [V40,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V40 tmp36        [V40,T20] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V41 cse0         [V41,T03] (  3,  9   )  simd16  ->  mm2         "CSE - aggressive"
 ;  V42 cse1         [V42,T04] (  2,  5   )  double  ->  mm1         "CSE - aggressive"
 ;
@@ -107,7 +107,7 @@ G_M64933_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+A8H]
        cmp      ecx, dword ptr [rsp+B8H]
-       ja       G_M64933_IG09
+       ja       G_M64933_IG10
        mov      rax, bword ptr [rsp+B0H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -121,20 +121,26 @@ G_M64933_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      edi, 16
        jb       SHORT G_M64933_IG07
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rsi], ymm0
-       mov      ecx, dword ptr [rsp+A8H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=111 bbWeight=0 PerfScore 0.00
+G_M64933_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rsi]
+       test     ecx, ecx
+       je       SHORT G_M64933_IG08
+       mov      ecx, dword ptr [rsp+A8H]
        add      ecx, 16
        mov      dword ptr [rsp+A8H], ecx
-       jmp      SHORT G_M64933_IG08
-						;; size=123 bbWeight=0 PerfScore 0.00
-G_M64933_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rsi]
+       jmp      SHORT G_M64933_IG09
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M64933_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+98H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -142,21 +148,21 @@ G_M64933_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M64933_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M64933_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [rsp+98H]
        xor      edx, edx
        call     [<unknown method>]
        ; gcr arg pop 0
        mov      esi, dword ptr [rsp+A8H]
        cmp      esi, dword ptr [rsp+B8H]
-       jbe      SHORT G_M64933_IG10
+       jbe      SHORT G_M64933_IG11
 						;; size=32 bbWeight=0 PerfScore 0.00
-G_M64933_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M64933_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M64933_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M64933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, bword ptr [rsp+B0H]
        ; byrRegs +[rcx]
        mov      eax, esi
@@ -170,20 +176,26 @@ G_M64933_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        shr      ecx, 31
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebx, 16
-       jb       SHORT G_M64933_IG11
+       jb       SHORT G_M64933_IG12
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rdi], ymm0
-       mov      ecx, dword ptr [rsp+A8H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=66 bbWeight=0 PerfScore 0.00
+G_M64933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M64933_IG13
+       mov      ecx, dword ptr [rsp+A8H]
        add      ecx, 16
        mov      dword ptr [rsp+A8H], ecx
-       jmp      SHORT G_M64933_IG12
-						;; size=78 bbWeight=0 PerfScore 0.00
-G_M64933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M64933_IG14
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M64933_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+98H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -191,7 +203,7 @@ G_M64933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M64933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M64933_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+98H]
        vmovaps  xmm1, xmm6
        call     [<unknown method>]
@@ -224,7 +236,7 @@ RWD08  	dd	00000000h, 00000000h
 RWD16  	dq	8000000000000000h, 8000000000000000h
 
 
-; Total bytes of code 513, prolog size 62, PerfScore 122.38, instruction count 105, allocated bytes for code 513 (MethodHash=99c5025a) for method System.MathBenchmarks.Double:CopySignTest()
+; Total bytes of code 535, prolog size 62, PerfScore 124.58, instruction count 113, allocated bytes for code 535 (MethodHash=99c5025a) for method System.MathBenchmarks.Double:CopySignTest()
 ; ============================================================
 
 Unwind Info:
+22 (+4.29%) : 33599.dasm - System.MathBenchmarks.Single:CopySignTest()
@@ -23,33 +23,33 @@
 ;  V11 tmp7         [V11,T05] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V13 tmp9         [V13,T08] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V14 tmp10        [V14,T10] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
-;* V15 tmp11        [V15,T19] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V14 tmp10        [V14,T12] (  2,  0   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V15 tmp11        [V15,T09] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V18 tmp14        [V18,T11] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V18 tmp14        [V18,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V20 tmp16        [V20,T06] (  4,  0   )     int  ->  rsi         "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V22 tmp18        [V22,T09] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V23 tmp19        [V23,T12] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V24 tmp20        [V24,T20] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V22 tmp18        [V22,T10] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V23 tmp19        [V23,T14] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V24 tmp20        [V24,T11] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V26 tmp22        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V27 tmp23        [V27,T13] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V27 tmp23        [V27,T15] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V28 tmp24        [V28    ] (  0,  0   )   byref  ->  zero-ref    V10._reference(offs=0x00) P-INDEP "field V10._reference (fldOffset=0x0)"
 ;* V29 tmp25        [V29    ] (  0,  0   )     int  ->  zero-ref    V10._length(offs=0x08) P-INDEP "field V10._length (fldOffset=0x8)"
-;  V30 tmp26        [V30,T14] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
+;  V30 tmp26        [V30,T16] (  2,  0   )   byref  ->  rsi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
 ;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def V12._length(offs=0x08) P-INDEP "field V12._length (fldOffset=0x8)"
-;  V32 tmp28        [V32,T15] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
+;  V32 tmp28        [V32,T17] (  2,  0   )   byref  ->  rsi         single-def V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def V16._length(offs=0x08) P-INDEP "field V16._length (fldOffset=0x8)"
 ;* V34 tmp30        [V34    ] (  0,  0   )   byref  ->  zero-ref    V19._reference(offs=0x00) P-INDEP "field V19._reference (fldOffset=0x0)"
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    V19._length(offs=0x08) P-INDEP "field V19._length (fldOffset=0x8)"
-;  V36 tmp32        [V36,T16] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
+;  V36 tmp32        [V36,T18] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
 ;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    single-def V21._length(offs=0x08) P-INDEP "field V21._length (fldOffset=0x8)"
-;  V38 tmp34        [V38,T17] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
+;  V38 tmp34        [V38,T19] (  2,  0   )   byref  ->  rdi         single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def V25._length(offs=0x08) P-INDEP "field V25._length (fldOffset=0x8)"
-;  V40 tmp36        [V40,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V40 tmp36        [V40,T20] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V41 cse0         [V41,T03] (  3,  9   )  simd16  ->  mm2         "CSE - aggressive"
 ;  V42 cse1         [V42,T04] (  2,  5   )   float  ->  mm1         "CSE - aggressive"
 ;
@@ -107,7 +107,7 @@ G_M19210_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+B0H]
        cmp      ecx, dword ptr [rsp+C0H]
-       ja       G_M19210_IG09
+       ja       G_M19210_IG10
        mov      rax, bword ptr [rsp+B8H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -121,20 +121,26 @@ G_M19210_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      edi, 16
        jb       SHORT G_M19210_IG07
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rsi], ymm0
-       mov      ecx, dword ptr [rsp+B0H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=111 bbWeight=0 PerfScore 0.00
+G_M19210_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rsi]
+       test     ecx, ecx
+       je       SHORT G_M19210_IG08
+       mov      ecx, dword ptr [rsp+B0H]
        add      ecx, 16
        mov      dword ptr [rsp+B0H], ecx
-       jmp      SHORT G_M19210_IG08
-						;; size=123 bbWeight=0 PerfScore 0.00
-G_M19210_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rsi]
+       jmp      SHORT G_M19210_IG09
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M19210_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+A0H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -142,21 +148,21 @@ G_M19210_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M19210_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M19210_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [rsp+A0H]
        xor      edx, edx
        call     [<unknown method>]
        ; gcr arg pop 0
        mov      esi, dword ptr [rsp+B0H]
        cmp      esi, dword ptr [rsp+C0H]
-       jbe      SHORT G_M19210_IG10
+       jbe      SHORT G_M19210_IG11
 						;; size=32 bbWeight=0 PerfScore 0.00
-G_M19210_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M19210_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M19210_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M19210_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, bword ptr [rsp+B8H]
        ; byrRegs +[rcx]
        mov      eax, esi
@@ -170,20 +176,26 @@ G_M19210_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        shr      ecx, 31
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebx, 16
-       jb       SHORT G_M19210_IG11
+       jb       SHORT G_M19210_IG12
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymmword ptr [rdi], ymm0
-       mov      ecx, dword ptr [rsp+B0H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=66 bbWeight=0 PerfScore 0.00
+G_M19210_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M19210_IG13
+       mov      ecx, dword ptr [rsp+B0H]
        add      ecx, 16
        mov      dword ptr [rsp+B0H], ecx
-       jmp      SHORT G_M19210_IG12
-						;; size=78 bbWeight=0 PerfScore 0.00
-G_M19210_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M19210_IG14
+						;; size=23 bbWeight=0 PerfScore 0.00
+G_M19210_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+A0H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -191,7 +203,7 @@ G_M19210_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M19210_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M19210_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+A0H]
        vmovaps  xmm1, xmm6
        call     [<unknown method>]
@@ -224,7 +236,7 @@ RWD04  	dd	00000000h, 00000000h, 00000000h
 RWD16  	dq	8000000080000000h, 8000000080000000h
 
 
-; Total bytes of code 513, prolog size 62, PerfScore 122.38, instruction count 105, allocated bytes for code 513 (MethodHash=d136b4f5) for method System.MathBenchmarks.Single:CopySignTest()
+; Total bytes of code 535, prolog size 62, PerfScore 124.58, instruction count 113, allocated bytes for code 535 (MethodHash=d136b4f5) for method System.MathBenchmarks.Single:CopySignTest()
 ; ============================================================
 
 Unwind Info:
coreclr_tests.run.windows.x64.checked.mch
-12 (-4.07%) : 231367.dasm - System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
@@ -6,19 +6,18 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  7, 14.50)     ref  ->  rdi         this class-hnd single-def
+;  V00 this         [V00,T03] (  9, 17   )     ref  ->  rdi         this class-hnd single-def
 ;  V01 arg1         [V01,T00] ( 12, 21.50)     ref  ->  rsi         class-hnd single-def
-;  V02 loc0         [V02,T11] (  2,  1.50)     ref  ->  rbx         class-hnd single-def
-;  V03 loc1         [V03,T10] (  3,  4   )    bool  ->  rbp        
+;  V02 loc0         [V02,T10] (  2,  1.50)     ref  ->  rbx         class-hnd single-def
+;  V03 loc1         [V03,T09] (  3,  4   )    bool  ->  rbp        
 ;  V04 loc2         [V04,T01] (  7, 23   )     int  ->  r14        
 ;  V05 loc3         [V05,T02] (  7, 20   )     ref  ->  r12         class-hnd
-;  V06 loc4         [V06,T04] (  7, 16   )     ref  ->  [rsp+20H]   class-hnd
-;  V07 loc5         [V07,T09] (  2,  6   )     ref  ->  r13         class-hnd
+;  V06 loc4         [V06,T04] (  7, 16   )     ref  ->  [rsp+28H]   class-hnd
+;  V07 loc5         [V07,T08] (  2,  6   )     ref  ->  r13         class-hnd
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T08] (  3,  8   )     ref  ->  r13        
+;  V09 tmp1         [V09,T07] (  3,  8   )     ref  ->  r13        
 ;  V10 cse0         [V10,T05] (  5, 12   )    long  ->  r15         "CSE - aggressive"
-;  V11 cse1         [V11,T07] (  3, 10   )    long  ->  [rsp+30H]   spill-single-def "CSE - aggressive"
-;  V12 cse2         [V12,T06] (  4, 10.50)    long  ->  [rsp+28H]   "CSE - aggressive"
+;  V11 cse1         [V11,T06] (  3, 10   )    long  ->  [rsp+30H]   spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 56
 
@@ -58,7 +57,7 @@ G_M46494_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jle      G_M46494_IG15
+       jle      G_M46494_IG13
 						;; size=42 bbWeight=1 PerfScore 16.50
 G_M46494_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
@@ -98,38 +97,37 @@ G_M46494_IG06:        ; bbWeight=4, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefR
        ; gcrRegs +[rdx]
        mov      r8d, r14d
        mov      rax, qword ptr [rdi]
-       mov      qword ptr [rsp+28H], rax
-       mov      r9, qword ptr [rax+48H]
-       mov      qword ptr [rsp+30H], r9
-       call     [r9+30H]<unknown method>
+       mov      rax, qword ptr [rax+48H]
+       mov      qword ptr [rsp+30H], rax
+       call     [rax+30H]<unknown method>
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M46494_IG08
-						;; size=34 bbWeight=4 PerfScore 44.00
+						;; size=28 bbWeight=4 PerfScore 40.00
 G_M46494_IG07:        ; bbWeight=2, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, r12
        ; gcrRegs +[rdx]
-       mov      rax, qword ptr [rsp+28H]
-       mov      r8, qword ptr [rax+50H]
-       call     [r8]<unknown method>
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+50H]
+       call     [rax]<unknown method>
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
        jmp      SHORT G_M46494_IG09
-						;; size=20 bbWeight=2 PerfScore 17.00
+						;; size=17 bbWeight=2 PerfScore 19.00
 G_M46494_IG08:        ; bbWeight=2, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, r12
        ; gcrRegs +[rdx]
-       mov      r9, qword ptr [rsp+30H]
-       call     [r9+38H]<unknown method>
+       mov      rax, qword ptr [rsp+30H]
+       call     [rax+38H]<unknown method>
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-						;; size=15 bbWeight=2 PerfScore 9.00
+						;; size=14 bbWeight=2 PerfScore 9.00
 G_M46494_IG09:        ; bbWeight=4, gcrefRegs=30C9 {rax rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref, isz
        cmp      r12, rax
        jne      SHORT G_M46494_IG11
@@ -140,7 +138,7 @@ G_M46494_IG10:        ; bbWeight=2, gcrefRegs=20C9 {rax rbx rsi rdi r13}, byrefR
        je       SHORT G_M46494_IG12
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+20H], rax
+       mov      gword ptr [rsp+28H], rax
        ; GC ptr vars +{V06}
        mov      rdx, qword ptr [rax]
        mov      rdx, qword ptr [rdx+48H]
@@ -148,7 +146,7 @@ G_M46494_IG10:        ; bbWeight=2, gcrefRegs=20C9 {rax rbx rsi rdi r13}, byrefR
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        cmp      rax, r13
-       mov      rax, gword ptr [rsp+20H]
+       mov      rax, gword ptr [rsp+28H]
        je       SHORT G_M46494_IG12
 						;; size=33 bbWeight=2 PerfScore 23.50
 G_M46494_IG11:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
@@ -175,10 +173,9 @@ G_M46494_IG12:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        jg       G_M46494_IG03
 						;; size=18 bbWeight=4 PerfScore 19.00
 G_M46494_IG13:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      r14, qword ptr [rsp+28H]
        test     ebp, ebp
        je       SHORT G_M46494_IG15
-						;; size=9 bbWeight=1 PerfScore 2.25
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M46494_IG14:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        ; gcrRegs +[rcx]
@@ -186,11 +183,12 @@ G_M46494_IG14:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs +[rdx]
        mov      r8, rbx
        ; gcrRegs +[r8]
-       mov      rax, qword ptr [r14+C0H]
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+C0H]
        call     [rax+08H]<unknown method>
        ; gcrRegs -[rcx rdx rbx rdi r8]
        ; gcr arg pop 0
-						;; size=19 bbWeight=0.50 PerfScore 2.88
+						;; size=22 bbWeight=0.50 PerfScore 3.88
 G_M46494_IG15:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rax, rsi
        ; gcrRegs +[rax]
@@ -208,7 +206,7 @@ G_M46494_IG16:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 295, prolog size 16, PerfScore 230.38, instruction count 98, allocated bytes for code 295 (MethodHash=b0604a61) for method System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
+; Total bytes of code 283, prolog size 16, PerfScore 227.18, instruction count 97, allocated bytes for code 283 (MethodHash=b0604a61) for method System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
 ; ============================================================
 
 Unwind Info:
-22 (-2.27%) : 438673.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon])
@@ -5,7 +5,7 @@
 ; optimized using Dynamic PGO
 ; rsp based frame
 ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 10
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 10
 ; 2 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
@@ -31,12 +31,12 @@
 ;* V19 tmp12        [V19    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp14        [V21    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
-;  V22 tmp15        [V22,T10] (  5, 30.80)     int  ->  r14         "Inline stloc first use temp"
+;  V22 tmp15        [V22,T10] (  5, 30.80)     int  ->  rbx         "Inline stloc first use temp"
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
-;  V24 tmp17        [V24,T02] (  7,113.80)     ref  ->  r12         class-hnd "Inline stloc first use temp"
-;  V25 tmp18        [V25,T01] (  9,165.90)     int  ->  r14         "Inline stloc first use temp"
-;  V26 tmp19        [V26,T08] (  3, 49.40)     int  ->  rax         "guarded devirt return temp"
-;  V27 tmp20        [V27,T00] (  6,247   )     ref  ->  r13         "guarded devirt arg temp"
+;  V24 tmp17        [V24,T02] (  7,113.80)     ref  ->  r13         class-hnd "Inline stloc first use temp"
+;  V25 tmp18        [V25,T01] (  9,165.90)     int  ->  rbx         "Inline stloc first use temp"
+;  V26 tmp19        [V26,T08] (  6, 49.40)     int  ->  rax         "guarded devirt return temp"
+;  V27 tmp20        [V27,T00] (  6,247   )     ref  ->  rax         "guarded devirt arg temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "guarded devirt this exact temp"
 ;  V29 tmp22        [V29,T03] (  2, 98.80)   byref  ->  rcx         "impAppendStmt"
 ;  V30 tmp23        [V30,T04] (  2, 98.80)     int  ->  rdx         "impAppendStmt"
@@ -50,8 +50,8 @@
 ;  V38 tmp31        [V38,T43] (  2,  0   )     int  ->  [rsp+58H]   do-not-enreg[H] hidden-struct-arg V14._length(offs=0x08) P-DEP "field V14._length (fldOffset=0x8)"
 ;  V39 tmp32        [V39,T34] (  2,  2.40)   byref  ->  [rsp+40H]   do-not-enreg[H] hidden-struct-arg V16._reference(offs=0x00) P-DEP "field V16._reference (fldOffset=0x0)"
 ;  V40 tmp33        [V40,T35] (  2,  2.40)     int  ->  [rsp+48H]   do-not-enreg[H] hidden-struct-arg V16._length(offs=0x08) P-DEP "field V16._length (fldOffset=0x8)"
-;  V41 tmp34        [V41,T06] (  6, 78.10)   byref  ->  rbx         single-def V23._reference(offs=0x00) P-INDEP "field V23._reference (fldOffset=0x0)"
-;  V42 tmp35        [V42,T07] (  5, 52.60)     int  ->  r15         V23._length(offs=0x08) P-INDEP "field V23._length (fldOffset=0x8)"
+;  V41 tmp34        [V41,T06] (  6, 78.10)   byref  ->  r15         single-def V23._reference(offs=0x00) P-INDEP "field V23._reference (fldOffset=0x0)"
+;  V42 tmp35        [V42,T07] (  5, 52.60)     int  ->  r14         V23._length(offs=0x08) P-INDEP "field V23._length (fldOffset=0x8)"
 ;* V43 tmp36        [V43    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Promoted implicit byref"
 ;  V44 tmp37        [V44    ] ( 14, 16.80)  struct (16) [rsp+30H]   do-not-enreg[XS] must-init addr-exposed "by-value struct argument"
 ;  V45 tmp38        [V45,T36] (  2,  0.40)    long  ->  rcx         "argument with side effect"
@@ -66,9 +66,9 @@
 ;  V54 tmp47        [V54,T25] (  2,  7.60)    long  ->   r8         "argument with side effect"
 ;* V55 tmp48        [V55,T31] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
 ;  V56 cse0         [V56,T26] (  7,  7.30)    long  ->  r15         "CSE - moderate"
-;  V57 cse1         [V57,T05] (  6, 78.90)     int  ->  registers   "CSE - aggressive"
-;  V58 cse2         [V58,T11] (  3, 22.50)     int  ->  rbp         "CSE - aggressive"
-;  V59 cse3         [V59,T17] (  3,  9.10)     int  ->  rdi         "CSE - moderate"
+;  V57 cse1         [V57,T05] (  6, 78.90)     int  ->  rdi         "CSE - aggressive"
+;  V58 cse2         [V58,T11] (  3, 22.50)     int  ->  r12         "CSE - aggressive"
+;  V59 cse3         [V59,T17] (  3,  9.10)     int  ->  rbp         "CSE - moderate"
 ;  V60 cse4         [V60,T18] (  9,  9   )     ref  ->  rdx         "CSE - moderate"
 ;  V61 rat0         [V61,T19] (  3,  7.60)    long  ->  r15         "runtime lookup"
 ;  V62 rat1         [V62,T16] (  3, 10.64)    long  ->  r15         "fgMakeTemp is creating a new local variable"
@@ -140,25 +140,53 @@ G_M39096_IG04:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi},
 G_M39096_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
        mov      r14d, dword ptr [rdi+08H]
        cmp      r14d, 1
-       jle      G_M39096_IG29
+       jle      G_M39096_IG38
 						;; size=14 bbWeight=1 PerfScore 3.25
-G_M39096_IG06:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+G_M39096_IG06:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref, isz
        cmp      r14d, 16
-       jle      G_M39096_IG19
-						;; size=10 bbWeight=1.90 PerfScore 2.38
-G_M39096_IG07:        ; bbWeight=0.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       jg       SHORT G_M39096_IG11
+						;; size=6 bbWeight=1.90 PerfScore 2.38
+G_M39096_IG07:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       cmp      r14d, 2
+       je       G_M39096_IG27
+						;; size=10 bbWeight=1 PerfScore 1.25
+G_M39096_IG08:        ; bbWeight=0.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       cmp      r14d, 3
+       je       G_M39096_IG21
+						;; size=10 bbWeight=0.90 PerfScore 1.12
+G_M39096_IG09:        ; bbWeight=0.80, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       mov      rcx, qword ptr [rbx+38H]
+       mov      rcx, qword ptr [rcx]
+       mov      r15, qword ptr [rcx+30H]
+       test     r15, r15
+       je       G_M39096_IG30
+						;; size=20 bbWeight=0.80 PerfScore 5.80
+G_M39096_IG10:        ; bbWeight=0.64, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       jmp      G_M39096_IG31
+						;; size=5 bbWeight=0.64 PerfScore 1.28
+G_M39096_IG11:        ; bbWeight=0.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
        test     ebp, ebp
-       je       G_M39096_IG40
+       je       G_M39096_IG43
 						;; size=8 bbWeight=0.90 PerfScore 1.12
-G_M39096_IG08:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+G_M39096_IG12:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref, isz
        dec      ebp
        mov      rcx, qword ptr [rbx+38H]
        mov      rcx, qword ptr [rcx]
        mov      r15, qword ptr [rcx+30H]
        test     r15, r15
-       je       G_M39096_IG15
-						;; size=22 bbWeight=1.90 PerfScore 14.25
-G_M39096_IG09:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       je       SHORT G_M39096_IG14
+						;; size=18 bbWeight=1.90 PerfScore 14.25
+G_M39096_IG13:        ; bbWeight=1.52, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref, isz
+       jmp      SHORT G_M39096_IG15
+						;; size=2 bbWeight=1.52 PerfScore 3.04
+G_M39096_IG14:        ; bbWeight=0.38, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+       mov      rcx, rbx
+       mov      rdx, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       ; gcr arg pop 0
+       mov      r15, rax
+						;; size=21 bbWeight=0.38 PerfScore 0.67
+G_M39096_IG15:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
        mov      r8, r15
        mov      dword ptr [rsp+20H], r14d
        lea      rdx, [rsp+70H]
@@ -169,11 +197,11 @@ G_M39096_IG09:        ; bbWeight=1.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
        ; byrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=25 bbWeight=1.90 PerfScore 9.97
-G_M39096_IG10:        ; bbWeight=1.90, nogc, extend
+G_M39096_IG16:        ; bbWeight=1.90, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rsp+70H]
        vmovdqu  xmmword ptr [rsp+30H], xmm0
 						;; size=12 bbWeight=1.90 PerfScore 7.60
-G_M39096_IG11:        ; bbWeight=1.90, extend
+G_M39096_IG17:        ; bbWeight=1.90, extend
        mov      rcx, rbx
        lea      rdx, [rsp+30H]
        mov      r8, rsi
@@ -193,11 +221,11 @@ G_M39096_IG11:        ; bbWeight=1.90, extend
        ; byrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=50 bbWeight=1.90 PerfScore 19.00
-G_M39096_IG12:        ; bbWeight=1.90, nogc, extend
+G_M39096_IG18:        ; bbWeight=1.90, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rsp+60H]
        vmovdqu  xmmword ptr [rsp+30H], xmm0
 						;; size=12 bbWeight=1.90 PerfScore 7.60
-G_M39096_IG13:        ; bbWeight=1.90, extend
+G_M39096_IG19:        ; bbWeight=1.90, extend
        mov      rcx, rbx
        lea      rdx, [rsp+30H]
        mov      r8d, ebp
@@ -210,168 +238,18 @@ G_M39096_IG13:        ; bbWeight=1.90, extend
        cmp      r14d, 1
        jg       G_M39096_IG06
 						;; size=33 bbWeight=1.90 PerfScore 10.92
-G_M39096_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M39096_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        ; byrRegs -[rdi]
-       jmp      G_M39096_IG29
+       jmp      G_M39096_IG38
 						;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M39096_IG15:        ; bbWeight=0.38, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
-       ; gcrRegs +[rsi]
-       ; byrRegs +[rdi]
-       mov      rcx, rbx
-       mov      rdx, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       ; gcr arg pop 0
-       mov      r15, rax
-       jmp      G_M39096_IG09
-						;; size=26 bbWeight=0.38 PerfScore 1.43
-G_M39096_IG16:        ; bbWeight=18.80, gcrefRegs=1040 {rsi r12}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs +[r12]
-       ; byrRegs -[rdi] +[rbx]
-       lea      edx, [r14+01H]
-       cmp      edx, r15d
-       jae      G_M39096_IG45
-       lea      rcx, bword ptr [rbx+8*rdx]
-       ; byrRegs +[rcx]
-       mov      edx, r14d
-       mov      rdx, gword ptr [rbx+8*rdx]
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rdx]
-       ; byrRegs -[rcx]
-       dec      r14d
-						;; size=32 bbWeight=18.80 PerfScore 108.10
-G_M39096_IG17:        ; bbWeight=26.30, gcrefRegs=1040 {rsi r12}, byrefRegs=0008 {rbx}, byref
-       test     r14d, r14d
-       jl       G_M39096_IG26
-						;; size=9 bbWeight=26.30 PerfScore 32.88
-G_M39096_IG18:        ; bbWeight=24.70, gcrefRegs=1040 {rsi r12}, byrefRegs=0008 {rbx}, byref, isz
-       jmp      SHORT G_M39096_IG24
-						;; size=2 bbWeight=24.70 PerfScore 49.40
-G_M39096_IG19:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
-       ; gcrRegs -[r12]
-       ; byrRegs -[rbx] +[rdi]
-       cmp      r14d, 2
-       je       G_M39096_IG36
-						;; size=10 bbWeight=1 PerfScore 1.25
-G_M39096_IG20:        ; bbWeight=0.90, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
-       cmp      r14d, 3
-       je       G_M39096_IG30
-						;; size=10 bbWeight=0.90 PerfScore 1.12
-G_M39096_IG21:        ; bbWeight=0.80, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
-       mov      rcx, qword ptr [rbx+38H]
-       mov      rcx, qword ptr [rcx]
-       mov      r15, qword ptr [rcx+30H]
-       test     r15, r15
-       je       G_M39096_IG28
-						;; size=20 bbWeight=0.80 PerfScore 5.80
-G_M39096_IG22:        ; bbWeight=0.80, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
-       mov      r8, r15
-       mov      dword ptr [rsp+20H], r14d
-       lea      rdx, [rsp+40H]
-       mov      rcx, rdi
-       ; byrRegs +[rcx]
-       xor      r9d, r9d
-       call     [System.Span`1[System.__Canon]:Slice(int,int):System.Span`1[System.__Canon]:this]
-       ; byrRegs -[rcx rdi]
-       ; gcr arg pop 0
-       mov      rbx, bword ptr [rsp+40H]
-       ; byrRegs +[rbx]
-       mov      r15d, dword ptr [rsp+48H]
-       xor      r14d, r14d
-       lea      edi, [r15-01H]
-       test     edi, edi
-       jle      G_M39096_IG29
-						;; size=50 bbWeight=0.80 PerfScore 7.40
-G_M39096_IG23:        ; bbWeight=7.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
-       lea      ebp, [r14+01H]
-       mov      edx, ebp
-       mov      r12, gword ptr [rbx+8*rdx]
-       ; gcrRegs +[r12]
-       jmp      SHORT G_M39096_IG17
-						;; size=12 bbWeight=7.50 PerfScore 35.62
-G_M39096_IG24:        ; bbWeight=24.70, gcrefRegs=1040 {rsi r12}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      r14d, r15d
-       jae      G_M39096_IG45
-       mov      edx, r14d
-       mov      r13, gword ptr [rbx+8*rdx]
-       ; gcrRegs +[r13]
-       mov      rdx, 0xD1FFAB1E      ; code for System.OrdinalIgnoreCaseComparer:Compare(System.String,System.String):int:this
-       cmp      qword ptr [rsi+18H], rdx
-       jne      G_M39096_IG39
-       cmp      r12, r13
-       je       SHORT G_M39096_IG26
-       test     r12, r12
-       je       G_M39096_IG16
-       test     r13, r13
-       je       SHORT G_M39096_IG26
-       lea      rcx, bword ptr [r12+0CH]
-       ; byrRegs +[rcx]
-       mov      edx, dword ptr [r12+08H]
-       lea      r8, bword ptr [r13+0CH]
-       ; byrRegs +[r8]
-       mov      r9d, dword ptr [r13+08H]
...
-9 (-1.14%) : 460997.dasm - ILCompiler.TypeExtensions:AcquiresInstMethodTableFromThis(Internal.TypeSystem.MethodDesc):bool
@@ -9,28 +9,28 @@
 ; 15 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 19,  6.98)     ref  ->  rsi         class-hnd single-def
+;  V00 arg0         [V00,T00] ( 19,  6.29)     ref  ->  rsi         class-hnd single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T23] (  3,  0.55)     ref  ->  rax         "guarded devirt return temp"
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
 ;  V04 tmp3         [V04,T33] (  4,  0.00)     int  ->  rbx         "guarded devirt return temp"
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
-;  V06 tmp5         [V06,T05] (  2,  2   )     int  ->  rax         "guarded devirt return temp"
+;  V06 tmp5         [V06,T12] (  3,  1.31)     int  ->  rax         "guarded devirt return temp"
 ;  V07 tmp6         [V07,T14] (  2,  1.38)     ref  ->  rcx         class-hnd exact single-def "guarded devirt this exact temp"
 ;* V08 tmp7         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V10 tmp9         [V10,T06] (  3,  2.50)     ref  ->  rcx         class-hnd "Inline stloc first use temp"
+;  V10 tmp9         [V10,T05] (  3,  2.50)     ref  ->  rcx         class-hnd "Inline stloc first use temp"
 ;  V11 tmp10        [V11,T31] (  5,  0.00)     ref  ->  rcx         class-hnd single-def "spilling ret_expr"
 ;  V12 tmp11        [V12,T36] (  4,  0.00)     int  ->  rax         "guarded devirt return temp"
 ;* V13 tmp12        [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
-;  V14 tmp13        [V14,T07] (  2,  1.67)     int  ->  rax         "guarded devirt return temp"
+;  V14 tmp13        [V14,T06] (  2,  1.67)     int  ->  rax         "guarded devirt return temp"
 ;* V15 tmp14        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
-;  V16 tmp15        [V16,T11] (  6,  2.07)     ref  ->  rbx         "guarded devirt return temp"
-;  V17 tmp16        [V17,T03] (  5,  4.14)     ref  ->  rcx         single-def "guarded devirt arg temp"
+;  V16 tmp15        [V16,T10] (  6,  2.07)     ref  ->  rbx         "guarded devirt return temp"
+;  V17 tmp16        [V17,T02] (  5,  4.14)     ref  ->  rcx         single-def "guarded devirt arg temp"
 ;* V18 tmp17        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
 ;* V19 tmp18        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V20 tmp19        [V20    ] (  0,  0   )  struct ( 8) zero-ref    single-def "guarded devirt return temp"
-;  V21 tmp20        [V21,T12] (  4,  2.07)     ref  ->  rbx         class-hnd exact single-def "guarded devirt this exact temp"
+;  V21 tmp20        [V21,T11] (  4,  2.07)     ref  ->  rbx         class-hnd exact single-def "guarded devirt this exact temp"
 ;* V22 tmp21        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp"
 ;* V23 tmp22        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
 ;  V24 tmp23        [V24,T37] (  3,  0.00)     ref  ->  rcx         "guarded devirt return temp"
@@ -38,7 +38,7 @@
 ;* V26 tmp25        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp"
 ;* V27 tmp26        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;* V28 tmp27        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
-;* V29 tmp28        [V29,T10] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
+;* V29 tmp28        [V29,T09] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp29        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V31 tmp30        [V31    ] (  0,  0   )  struct ( 8) zero-ref    single-def "guarded devirt return temp"
 ;  V32 tmp31        [V32,T19] (  2,  0.94)     ref  ->  rcx         class-hnd exact single-def "guarded devirt this exact temp"
@@ -58,7 +58,7 @@
 ;  V46 tmp45        [V46,T30] (  3,  0.00)     int  ->  rdx         single-def "Inline stloc first use temp"
 ;* V47 tmp46        [V47    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V48 tmp47        [V48,T15] (  2,  1.38)     ref  ->  rbx         single-def V08._genericParameters(offs=0x00) P-INDEP "field V08._genericParameters (fldOffset=0x0)"
-;  V49 tmp48        [V49,T09] (  3,  2.21)     ref  ->  rbx         single-def V09._collection(offs=0x00) P-INDEP "field V09._collection (fldOffset=0x0)"
+;  V49 tmp48        [V49,T08] (  3,  2.21)     ref  ->  rbx         single-def V09._collection(offs=0x00) P-INDEP "field V09._collection (fldOffset=0x0)"
 ;  V50 tmp49        [V50,T01] (  6,  6.83)     int  ->  rbp         V09._currentIndex(offs=0x08) P-INDEP "field V09._currentIndex (fldOffset=0x8)"
 ;* V51 tmp50        [V51    ] (  0,  0   )     ref  ->  zero-ref    single-def V19._genericParameters(offs=0x00) P-INDEP "field V19._genericParameters (fldOffset=0x0)"
 ;  V52 tmp51        [V52,T13] (  3,  1.38)     ref  ->  rax         single-def V20._genericParameters(offs=0x00) P-INDEP "field V20._genericParameters (fldOffset=0x0)"
@@ -69,8 +69,8 @@
 ;  V57 tmp56        [V57,T18] (  3,  0.94)     ref  ->  rax         single-def V31._genericParameters(offs=0x00) P-INDEP "field V31._genericParameters (fldOffset=0x0)"
 ;  V58 tmp57        [V58,T20] (  2,  0.94)     ref  ->  rax         single-def V33._genericParameters(offs=0x00) P-INDEP "field V33._genericParameters (fldOffset=0x0)"
 ;  V59 cse0         [V59,T04] (  3,  3.02)     int  ->  r14         "CSE - aggressive"
-;  V60 cse1         [V60,T02] ( 14,  4.14)    long  ->  rdi         "CSE - aggressive"
-;  V61 cse2         [V61,T08] (  3,  2.50)    long  ->  rax         "CSE - moderate"
+;  V60 cse1         [V60,T03] ( 13,  3.45)    long  ->  rdi         "CSE - aggressive"
+;  V61 cse2         [V61,T07] (  3,  2.50)    long  ->  rax         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -153,7 +153,7 @@ G_M9921_IG10:        ; bbWeight=0.68, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
        ; gcrRegs -[rbx rsi]
        jmp      SHORT G_M9921_IG21
 						;; size=2 bbWeight=0.68 PerfScore 1.35
-G_M9921_IG11:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M9921_IG11:        ; bbWeight=0.31, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rsi]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -162,20 +162,20 @@ G_M9921_IG11:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byre
        call     [rax+28H]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+						;; size=15 bbWeight=0.31 PerfScore 1.70
+G_M9921_IG12:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
        je       SHORT G_M9921_IG21
-						;; size=19 bbWeight=1 PerfScore 6.75
-G_M9921_IG12:        ; bbWeight=0.47, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M9921_IG13:        ; bbWeight=0.47, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; Internal.TypeSystem.Ecma.EcmaMethod
        cmp      rdi, rcx
        jne      G_M9921_IG47
-						;; size=19 bbWeight=0.47 PerfScore 0.71
-G_M9921_IG13:        ; bbWeight=0.47, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        cmp      gword ptr [rcx+28H], 0
        je       SHORT G_M9921_IG20
-						;; size=10 bbWeight=0.47 PerfScore 2.00
+						;; size=29 bbWeight=0.47 PerfScore 2.70
 G_M9921_IG14:        ; bbWeight=0.47, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rax, gword ptr [rsi+28H]
@@ -421,10 +421,9 @@ G_M9921_IG45:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {},
        je       G_M9921_IG07
 						;; size=23 bbWeight=0 PerfScore 0.00
 G_M9921_IG46:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       mov      rcx, 0xD1FFAB1E      ; Internal.TypeSystem.Ecma.EcmaMethod
-       cmp      rdi, rcx
-       je       G_M9921_IG13
-						;; size=19 bbWeight=0 PerfScore 0.00
+       mov      eax, 1
+       jmp      G_M9921_IG12
+						;; size=10 bbWeight=0 PerfScore 0.00
 G_M9921_IG47:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -480,7 +479,7 @@ G_M9921_IG52:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 788, prolog size 13, PerfScore 145.30, instruction count 208, allocated bytes for code 788 (MethodHash=896bd93e) for method ILCompiler.TypeExtensions:AcquiresInstMethodTableFromThis(Internal.TypeSystem.MethodDesc):bool
+; Total bytes of code 779, prolog size 13, PerfScore 140.61, instruction count 207, allocated bytes for code 779 (MethodHash=896bd93e) for method ILCompiler.TypeExtensions:AcquiresInstMethodTableFromThis(Internal.TypeSystem.MethodDesc):bool
 ; ============================================================
 
 Unwind Info:
+22 (+11.17%) : 414395.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:SwapIfGreater(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon],int,int)
@@ -16,7 +16,7 @@
 ;  V04 arg3         [V04,T11] (  3,  3   )     int  ->  rbx         single-def
 ;  V05 loc0         [V05,T14] (  2,  1.33)     ref  ->  rdi         class-hnd single-def
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T13] (  3,  2   )     int  ->  rax         "guarded devirt return temp"
+;  V07 tmp1         [V07,T13] (  6,  2   )     int  ->  rax         "guarded devirt return temp"
 ;  V08 tmp2         [V08,T00] (  6, 10   )     ref  ->  rdx         single-def "guarded devirt arg temp"
 ;  V09 tmp3         [V09,T01] (  6, 10   )     ref  ->  r14         single-def "guarded devirt arg temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "guarded devirt this exact temp"
@@ -63,24 +63,24 @@ G_M47099_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0004 {rdx},
 						;; size=30 bbWeight=1 PerfScore 8.75
 G_M47099_IG03:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0020 {rbp}, byref, isz
        cmp      esi, r14d
-       jae      G_M47099_IG09
+       jae      G_M47099_IG12
        mov      esi, esi
        mov      rdx, gword ptr [rbp+8*rsi]
        ; gcrRegs +[rdx]
        cmp      ebx, r14d
-       jae      SHORT G_M47099_IG09
+       jae      G_M47099_IG12
        mov      ebx, ebx
        mov      r14, gword ptr [rbp+8*rbx]
        ; gcrRegs +[r14]
        mov      r8, 0xD1FFAB1E      ; code for System.OrdinalIgnoreCaseComparer:Compare(System.String,System.String):int:this
        cmp      qword ptr [rdi+18H], r8
-       jne      SHORT G_M47099_IG08
+       jne      SHORT G_M47099_IG11
        cmp      rdx, r14
-       je       SHORT G_M47099_IG06
+       je       SHORT G_M47099_IG08
        test     rdx, rdx
-       je       SHORT G_M47099_IG06
+       je       SHORT G_M47099_IG09
        test     r14, r14
-       je       SHORT G_M47099_IG05
+       je       SHORT G_M47099_IG10
        lea      rcx, bword ptr [rdx+0CH]
        ; byrRegs +[rcx]
        mov      edx, dword ptr [rdx+08H]
@@ -92,7 +92,7 @@ G_M47099_IG03:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0020 {rbp},
        ; gcrRegs -[rdi r14]
        ; byrRegs -[rcx r8]
        ; gcr arg pop 0
-						;; size=80 bbWeight=1 PerfScore 23.00
+						;; size=84 bbWeight=1 PerfScore 23.00
 G_M47099_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
        test     eax, eax
        jle      SHORT G_M47099_IG06
@@ -127,9 +127,21 @@ G_M47099_IG07:        ; bbWeight=1, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.75
-G_M47099_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4084 {rdx rdi r14}, byrefRegs=0020 {rbp}, gcvars, byref, isz
-       ; gcrRegs +[rdx rdi r14]
+G_M47099_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, gcvars, byref, isz
        ; byrRegs +[rbp]
+       xor      eax, eax
+       jmp      SHORT G_M47099_IG04
+						;; size=4 bbWeight=0 PerfScore 0.00
+G_M47099_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
+       mov      eax, -1
+       jmp      SHORT G_M47099_IG04
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M47099_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M47099_IG04
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M47099_IG11:        ; bbWeight=0, gcrefRegs=4084 {rdx rdi r14}, byrefRegs=0020 {rbp}, byref, isz
+       ; gcrRegs +[rdx rdi r14]
        mov      rcx, gword ptr [rdi+08H]
        ; gcrRegs +[rcx]
        mov      r8, r14
@@ -139,14 +151,14 @@ G_M47099_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4084 {
        ; gcr arg pop 0
        jmp      SHORT G_M47099_IG04
 						;; size=12 bbWeight=0 PerfScore 0.00
-G_M47099_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M47099_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbp]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 197, prolog size 10, PerfScore 70.28, instruction count 61, allocated bytes for code 197 (MethodHash=50934804) for method System.Collections.Generic.ArraySortHelper`1[System.__Canon]:SwapIfGreater(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon],int,int)
+; Total bytes of code 219, prolog size 10, PerfScore 72.48, instruction count 67, allocated bytes for code 219 (MethodHash=50934804) for method System.Collections.Generic.ArraySortHelper`1[System.__Canon]:SwapIfGreater(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon],int,int)
 ; ============================================================
 
 Unwind Info:
+22 (+11.17%) : 484079.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:SwapIfGreater(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon],int,int)
@@ -16,7 +16,7 @@
 ;  V04 arg3         [V04,T11] (  3,  3   )     int  ->  rbx         single-def
 ;  V05 loc0         [V05,T14] (  2,  1.25)     ref  ->  rdi         class-hnd single-def
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T13] (  3,  2   )     int  ->  rax         "guarded devirt return temp"
+;  V07 tmp1         [V07,T13] (  6,  2   )     int  ->  rax         "guarded devirt return temp"
 ;  V08 tmp2         [V08,T00] (  6, 10   )     ref  ->  rdx         single-def "guarded devirt arg temp"
 ;  V09 tmp3         [V09,T01] (  6, 10   )     ref  ->  r14         single-def "guarded devirt arg temp"
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "guarded devirt this exact temp"
@@ -63,24 +63,24 @@ G_M47099_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0004 {rdx},
 						;; size=30 bbWeight=1 PerfScore 8.75
 G_M47099_IG03:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0020 {rbp}, byref, isz
        cmp      esi, r14d
-       jae      G_M47099_IG09
+       jae      G_M47099_IG12
        mov      esi, esi
        mov      rdx, gword ptr [rbp+8*rsi]
        ; gcrRegs +[rdx]
        cmp      ebx, r14d
-       jae      SHORT G_M47099_IG09
+       jae      G_M47099_IG12
        mov      ebx, ebx
        mov      r14, gword ptr [rbp+8*rbx]
        ; gcrRegs +[r14]
        mov      r8, 0xD1FFAB1E      ; code for System.OrdinalIgnoreCaseComparer:Compare(System.String,System.String):int:this
        cmp      qword ptr [rdi+18H], r8
-       jne      SHORT G_M47099_IG08
+       jne      SHORT G_M47099_IG11
        cmp      rdx, r14
-       je       SHORT G_M47099_IG06
+       je       SHORT G_M47099_IG08
        test     rdx, rdx
-       je       SHORT G_M47099_IG06
+       je       SHORT G_M47099_IG09
        test     r14, r14
-       je       SHORT G_M47099_IG05
+       je       SHORT G_M47099_IG10
        lea      rcx, bword ptr [rdx+0CH]
        ; byrRegs +[rcx]
        mov      edx, dword ptr [rdx+08H]
@@ -92,7 +92,7 @@ G_M47099_IG03:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0020 {rbp},
        ; gcrRegs -[rdi r14]
        ; byrRegs -[rcx r8]
        ; gcr arg pop 0
-						;; size=80 bbWeight=1 PerfScore 23.00
+						;; size=84 bbWeight=1 PerfScore 23.00
 G_M47099_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
        test     eax, eax
        jle      SHORT G_M47099_IG06
@@ -127,9 +127,21 @@ G_M47099_IG07:        ; bbWeight=1, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.75
-G_M47099_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4084 {rdx rdi r14}, byrefRegs=0020 {rbp}, gcvars, byref, isz
-       ; gcrRegs +[rdx rdi r14]
+G_M47099_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, gcvars, byref, isz
        ; byrRegs +[rbp]
+       xor      eax, eax
+       jmp      SHORT G_M47099_IG04
+						;; size=4 bbWeight=0 PerfScore 0.00
+G_M47099_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
+       mov      eax, -1
+       jmp      SHORT G_M47099_IG04
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M47099_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
+       mov      eax, 1
+       jmp      SHORT G_M47099_IG04
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M47099_IG11:        ; bbWeight=0, gcrefRegs=4084 {rdx rdi r14}, byrefRegs=0020 {rbp}, byref, isz
+       ; gcrRegs +[rdx rdi r14]
        mov      rcx, gword ptr [rdi+08H]
        ; gcrRegs +[rcx]
        mov      r8, r14
@@ -139,14 +151,14 @@ G_M47099_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4084 {
        ; gcr arg pop 0
        jmp      SHORT G_M47099_IG04
 						;; size=12 bbWeight=0 PerfScore 0.00
-G_M47099_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M47099_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbp]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 197, prolog size 10, PerfScore 69.86, instruction count 61, allocated bytes for code 197 (MethodHash=50934804) for method System.Collections.Generic.ArraySortHelper`1[System.__Canon]:SwapIfGreater(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon],int,int)
+; Total bytes of code 219, prolog size 10, PerfScore 72.06, instruction count 67, allocated bytes for code 219 (MethodHash=50934804) for method System.Collections.Generic.ArraySortHelper`1[System.__Canon]:SwapIfGreater(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon],int,int)
 ; ============================================================
 
 Unwind Info:
+39 (+12.38%) : 225595.dasm - Test_static_none:Main(System.String[]):int
@@ -7,43 +7,44 @@
 ; 1 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T08] (  5,  7.50)     ref  ->  rsi         class-hnd single-def
-;  V01 loc0         [V01,T12] (  3,  3.50)    bool  ->  rdi        
-;  V02 loc1         [V02,T11] (  4,  6.50)     ref  ->  rbx         class-hnd single-def
+;  V00 arg0         [V00,T07] (  5,  7.50)     ref  ->  rsi         class-hnd single-def
+;  V01 loc0         [V01,T11] (  3,  3.50)    bool  ->  rdi        
+;  V02 loc1         [V02,T09] (  4,  6.50)     ref  ->  rbx         class-hnd single-def
 ;  V03 loc2         [V03,T03] (  5, 16.50)     int  ->  r15        
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd
-;  V05 loc4         [V05,T13] (  3,  2   )     int  ->  rax        
+;  V05 loc4         [V05,T12] (  3,  2   )     int  ->  rax        
 ;* V06 loc5         [V06    ] (  0,  0   )    bool  ->  zero-ref   
-;  V07 loc6         [V07,T10] (  4,  9   )     ref  ->  rsi         class-hnd
-;  V08 loc7         [V08,T02] ( 10, 33   )     int  ->  rdi        
+;  V07 loc6         [V07,T08] (  4,  9   )     ref  ->  rsi         class-hnd
+;  V08 loc7         [V08,T01] ( 10, 33   )     int  ->  r12        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T09] (  2,  8   )    bool  ->  rax         "Inline return value spill temp"
-;  V11 tmp2         [V11,T00] (  6, 51.58)     ref  ->   r8         class-hnd "Inlining Arg"
-;  V12 tmp3         [V12,T01] (  5, 37.02)     ref  ->  rdx         class-hnd "Inlining Arg"
-;  V13 tmp4         [V13,T05] (  2, 16   )   byref  ->  rcx         "impAppendStmt"
+;  V10 tmp1         [V10,T10] (  4,  5.68)    bool  ->  r12         "Inline return value spill temp"
+;  V11 tmp2         [V11,T00] (  6, 37.19)     ref  ->   r8         class-hnd "Inlining Arg"
+;  V12 tmp3         [V12,T02] (  5, 29.83)     ref  ->  rdx         class-hnd "Inlining Arg"
+;  V13 tmp4         [V13,T13] (  2,  1.61)   byref  ->  rcx         "impAppendStmt"
 ;* V14 tmp5         [V14    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp7         [V16    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp8         [V17    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp9         [V18    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
-;  V19 cse0         [V19,T06] (  6, 11   )     int  ->  r14         "CSE - aggressive"
-;  V20 cse1         [V20,T07] (  5, 10.50)     int  ->  rbp         "CSE - aggressive"
+;  V19 cse0         [V19,T05] (  6, 11   )     int  ->  r14         "CSE - aggressive"
+;  V20 cse1         [V20,T06] (  5, 10.50)     int  ->  rbp         "CSE - aggressive"
 ;  V21 cse2         [V21,T04] (  4, 16   )     int  ->  r15         "CSE - aggressive"
 ;* V22 cse3         [V22    ] (  0,  0   )     ref  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M5183_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
+       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rsi, rcx
        ; gcrRegs +[rsi]
-						;; size=15 bbWeight=1 PerfScore 6.50
+						;; size=17 bbWeight=1 PerfScore 7.50
 G_M5183_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      edi, 1
        mov      rax, 0xD1FFAB1E      ; code for <unknown method>
@@ -56,13 +57,13 @@ G_M5183_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byre
        lea      r8d, [rbp-01H]
        mov      r14d, dword ptr [rsi+08H]
        cmp      r8d, r14d
-       jne      SHORT G_M5183_IG11
+       jne      SHORT G_M5183_IG13
 						;; size=36 bbWeight=1 PerfScore 9.50
 G_M5183_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        xor      r15d, r15d
        test     r14d, r14d
-       jle      SHORT G_M5183_IG13
+       jle      SHORT G_M5183_IG14
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M5183_IG04:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      r8d, r15d
@@ -70,24 +71,30 @@ G_M5183_IG04:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[r8]
        inc      r15d
        cmp      r15d, ebp
-       jae      G_M5183_IG20
+       jae      G_M5183_IG22
        mov      edx, r15d
        mov      rdx, gword ptr [rbx+8*rdx+10H]
        ; gcrRegs +[rdx]
        cmp      byte  ptr [r8], r8b
        cmp      r8, rdx
-       je       SHORT G_M5183_IG09
+       jne      SHORT G_M5183_IG06
 						;; size=36 bbWeight=4 PerfScore 41.00
-G_M5183_IG05:        ; bbWeight=0.72, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=0000 {}, byref, isz
+G_M5183_IG05:        ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdx r8]
+       mov      r12d, 1
+       jmp      SHORT G_M5183_IG09
+						;; size=8 bbWeight=1.28 PerfScore 2.87
+G_M5183_IG06:        ; bbWeight=0.72, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdx r8]
        test     rdx, rdx
-       je       SHORT G_M5183_IG08
-						;; size=5 bbWeight=0.72 PerfScore 0.90
-G_M5183_IG06:        ; bbWeight=5.79, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=0000 {}, byref, isz
+       je       G_M5183_IG21
+						;; size=9 bbWeight=0.72 PerfScore 0.90
+G_M5183_IG07:        ; bbWeight=5.79, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=0000 {}, byref
        mov      ecx, dword ptr [r8+08H]
        cmp      ecx, dword ptr [rdx+08H]
-       jne      SHORT G_M5183_IG08
-						;; size=9 bbWeight=5.79 PerfScore 34.73
-G_M5183_IG07:        ; bbWeight=4, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=0000 {}, byref, isz
+       jne      G_M5183_IG21
+						;; size=13 bbWeight=5.79 PerfScore 34.73
+G_M5183_IG08:        ; bbWeight=0.40, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [r8+0CH]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [r8+08H]
@@ -99,42 +106,42 @@ G_M5183_IG07:        ; bbWeight=4, gcrefRegs=014C {rdx rbx rsi r8}, byrefRegs=00
        call     [<unknown method>]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M5183_IG09
-						;; size=25 bbWeight=4 PerfScore 29.00
-G_M5183_IG08:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       mov      r12d, eax
+						;; size=24 bbWeight=0.40 PerfScore 2.52
+G_M5183_IG09:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       test     r12d, r12d
+       jne      SHORT G_M5183_IG11
+						;; size=5 bbWeight=4 PerfScore 5.00
+G_M5183_IG10:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
-G_M5183_IG09:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M5183_IG11:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      r14d, r15d
        jg       SHORT G_M5183_IG04
 						;; size=5 bbWeight=4 PerfScore 5.00
-G_M5183_IG10:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M5183_IG12
+G_M5183_IG12:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M5183_IG14
 						;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M5183_IG11:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M5183_IG13:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       jmp      SHORT G_M5183_IG14
+       jmp      SHORT G_M5183_IG15
 						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M5183_IG12:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M5183_IG14:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        test     edi, edi
-       je       SHORT G_M5183_IG14
-						;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M5183_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rsi]
+       je       SHORT G_M5183_IG15
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rcx rbx rsi]
        ; gcr arg pop 0
        mov      eax, 100
-       jmp      SHORT G_M5183_IG19
-						;; size=23 bbWeight=0.50 PerfScore 2.75
-G_M5183_IG14:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M5183_IG20
+						;; size=27 bbWeight=0.50 PerfScore 3.38
+G_M5183_IG15:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx rsi]
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -146,22 +153,22 @@ G_M5183_IG14:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       xor      edi, edi
+       xor      r12d, r12d
        test     r14d, r14d
-       jle      SHORT G_M5183_IG16
-						;; size=39 bbWeight=0.50 PerfScore 4.00
-G_M5183_IG15:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, edi
+       jle      SHORT G_M5183_IG17
+						;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M5183_IG16:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, r12d
        mov      rcx, gword ptr [rsi+8*rcx+10H]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       inc      edi
-       cmp      r14d, edi
-       jg       SHORT G_M5183_IG15
-						;; size=20 bbWeight=4 PerfScore 27.00
-G_M5183_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       inc      r12d
+       cmp      r14d, r12d
+       jg       SHORT G_M5183_IG16
+						;; size=22 bbWeight=4 PerfScore 27.00
+G_M5183_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -170,43 +177,50 @@ G_M5183_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        ; gcr arg pop 0
        mov      rsi, rbx
        ; gcrRegs +[rsi]
-       xor      edi, edi
+       xor      r12d, r12d
        test     ebp, ebp
-       jle      SHORT G_M5183_IG18
-						;; size=25 bbWeight=0.50 PerfScore 2.50
-G_M5183_IG17:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       jle      SHORT G_M5183_IG19
+						;; size=26 bbWeight=0.50 PerfScore 2.50
+G_M5183_IG18:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
-       mov      ecx, edi
+       mov      ecx, r12d
        mov      rcx, gword ptr [rsi+8*rcx+10H]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       inc      edi
-       cmp      ebp, edi
-       jg       SHORT G_M5183_IG17
-						;; size=19 bbWeight=4 PerfScore 27.00
-G_M5183_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       inc      r12d
+       cmp      ebp, r12d
+       jg       SHORT G_M5183_IG18
+						;; size=22 bbWeight=4 PerfScore 27.00
+G_M5183_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M5183_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       add      rsp, 40
+G_M5183_IG20:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+       add      rsp, 32
        pop      rbx
        pop      rbp
...
libraries.crossgen2.windows.x64.checked.mch
-2 (-0.55%) : 34250.dasm - Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this
@@ -78,7 +78,7 @@ G_M56290_IG04:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M56290_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M56290_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rbx rdi]
        mov      rcx, rsi
        call     [CORINFO_HELP_READYTORUN_GENERIC_HANDLE]
@@ -109,8 +109,8 @@ G_M56290_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=008
        call     [<unknown method>]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M56290_IG11
-						;; size=91 bbWeight=0.50 PerfScore 11.38
+       je       SHORT G_M56290_IG09
+						;; size=87 bbWeight=0.50 PerfScore 11.38
 G_M56290_IG06:        ; bbWeight=4, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
        mov      rdx, rbp
        lea      rcx, [rsp+28H]
@@ -168,11 +168,12 @@ G_M56290_IG09:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
        mov      rcx, r14
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
+       cmp      dword ptr [rcx], ecx
        call     [r11]<unknown method>
        ; gcrRegs -[rcx r14] +[rax]
        ; gcr arg pop 0
        nop      
-						;; size=19 bbWeight=0.50 PerfScore 2.62
+						;; size=21 bbWeight=0.50 PerfScore 4.12
 G_M56290_IG10:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 64
        pop      rbx
@@ -208,7 +209,7 @@ G_M56290_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.38
 
-; Total bytes of code 365, prolog size 31, PerfScore 169.75, instruction count 110, allocated bytes for code 365 (MethodHash=8c52241d) for method Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this
+; Total bytes of code 363, prolog size 31, PerfScore 171.05, instruction count 111, allocated bytes for code 363 (MethodHash=8c52241d) for method Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this
 ; ============================================================
 
 Unwind Info:
-17 (-0.51%) : 10507.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this
@@ -19,7 +19,7 @@
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def
 ;  V09 loc7         [V09,T80] (  2,  1   )     int  ->   r8         single-def
 ;  V10 loc8         [V10,T70] (  3,  1.50)     int  ->  rbx         single-def
-;  V11 loc9         [V11,T62] (  3,  1.50)     ref  ->  rbp         class-hnd single-def
+;  V11 loc9         [V11,T62] (  3,  1.50)     ref  ->  r14         class-hnd single-def
 ;  V12 loc10        [V12,T03] (  8,  4   )     ref  ->  rbx         class-hnd
 ;  V13 loc11        [V13,T71] (  3,  1.50)     int  ->  rdx         single-def
 ;  V14 loc12        [V14,T72] (  3,  1.50)  ushort  ->  rbx         single-def
@@ -29,19 +29,19 @@
 ;  V18 tmp1         [V18,T11] (  2,  2   )     ref  ->  rax         class-hnd single-def "dup spill"
 ;  V19 tmp2         [V19,T63] (  3,  1.50)     ref  ->  rax         single-def
 ;  V20 tmp3         [V20,T64] (  3,  1.50)     ref  ->  rcx        
-;  V21 tmp4         [V21,T12] (  2,  2   )     ref  ->  rbp         class-hnd "non-inline candidate call"
-;  V22 tmp5         [V22    ] (  2,  2   )  struct (24) [rsp+160H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V21 tmp4         [V21,T12] (  2,  2   )     ref  ->  rbx         class-hnd "non-inline candidate call"
+;  V22 tmp5         [V22    ] (  2,  2   )  struct (24) [rsp+168H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;* V23 tmp6         [V23,T82] (  0,  0   )     ref  ->  zero-ref   
 ;* V24 tmp7         [V24,T65] (  0,  0   )     ref  ->  zero-ref   
 ;  V25 tmp8         [V25,T10] (  4,  2   )     int  ->  rcx        
 ;* V26 tmp9         [V26,T83] (  0,  0   )     ref  ->  zero-ref   
 ;  V27 tmp10        [V27,T13] (  2,  2   )     ref  ->  rbx         class-hnd single-def "non-inline candidate call"
-;  V28 tmp11        [V28    ] (  2,  2   )  struct (24) [rsp+148H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
-;  V29 tmp12        [V29,T14] (  2,  2   )     ref  ->  rbp         class-hnd single-def "non-inline candidate call"
-;  V30 tmp13        [V30    ] (  2,  2   )  struct (24) [rsp+130H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V28 tmp11        [V28    ] (  2,  2   )  struct (24) [rsp+150H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V29 tmp12        [V29,T14] (  2,  2   )     ref  ->  r14         class-hnd single-def "non-inline candidate call"
+;  V30 tmp13        [V30    ] (  2,  2   )  struct (24) [rsp+138H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;* V31 tmp14        [V31    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument"
 ;  V32 tmp15        [V32,T15] (  2,  2   )     ref  ->  rbx         class-hnd single-def "non-inline candidate call"
-;  V33 tmp16        [V33    ] (  2,  2   )  struct (24) [rsp+118H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V33 tmp16        [V33    ] (  2,  2   )  struct (24) [rsp+120H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V34 tmp17        [V34,T16] (  2,  2   )     ref  ->  rcx         class-hnd single-def "dup spill"
 ;  V35 tmp18        [V35,T66] (  3,  1.50)     ref  ->  rcx         single-def
 ;  V36 tmp19        [V36,T67] (  3,  1.50)     ref  ->  rcx        
@@ -49,34 +49,34 @@
 ;* V38 tmp21        [V38,T84] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V39 tmp22        [V39,T75] (  0,  0   )     ref  ->  zero-ref   
 ;  V40 tmp23        [V40,T74] (  3,  1.50)     int  ->  rdx        
-;  V41 tmp24        [V41,T17] (  2,  2   )     ref  ->  rbp         class-hnd single-def "non-inline candidate call"
-;  V42 tmp25        [V42    ] (  2,  2   )  struct (24) [rsp+100H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
-;  V43 tmp26        [V43,T18] (  2,  2   )     ref  ->  rbp         class-hnd single-def "non-inline candidate call"
-;  V44 tmp27        [V44    ] (  2,  2   )  struct (24) [rsp+E8H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V41 tmp24        [V41,T17] (  2,  2   )     ref  ->  r14         class-hnd single-def "non-inline candidate call"
+;  V42 tmp25        [V42    ] (  2,  2   )  struct (24) [rsp+108H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V43 tmp26        [V43,T18] (  2,  2   )     ref  ->  r14         class-hnd single-def "non-inline candidate call"
+;  V44 tmp27        [V44    ] (  2,  2   )  struct (24) [rsp+F0H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V45 tmp28        [V45,T19] (  2,  2   )     ref  ->  rbx         class-hnd "non-inline candidate call"
-;  V46 tmp29        [V46    ] (  2,  2   )  struct (24) [rsp+D0H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V46 tmp29        [V46    ] (  2,  2   )  struct (24) [rsp+D8H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V47 tmp30        [V47,T20] (  2,  2   )     ref  ->  rbx         class-hnd single-def "non-inline candidate call"
-;  V48 tmp31        [V48    ] (  2,  2   )  struct (24) [rsp+B8H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V48 tmp31        [V48    ] (  2,  2   )  struct (24) [rsp+C0H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V49 tmp32        [V49,T21] (  2,  2   )     ref  ->  rbx         class-hnd single-def "non-inline candidate call"
-;  V50 tmp33        [V50    ] (  2,  2   )  struct (24) [rsp+A0H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V50 tmp33        [V50    ] (  2,  2   )  struct (24) [rsp+A8H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V51 tmp34        [V51,T68] (  3,  1.50)     ref  ->  rbx        
-;  V52 tmp35        [V52,T22] (  2,  2   )     ref  ->  rbp         class-hnd single-def "impAppendStmt"
-;  V53 tmp36        [V53    ] (  2,  2   )  struct (24) [rsp+88H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V52 tmp35        [V52,T22] (  2,  2   )     ref  ->  r14         class-hnd single-def "impAppendStmt"
+;  V53 tmp36        [V53    ] (  2,  2   )  struct (24) [rsp+90H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;* V54 tmp37        [V54    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument"
 ;* V55 tmp38        [V55    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument"
 ;* V56 tmp39        [V56    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument"
 ;  V57 tmp40        [V57,T23] (  2,  2   )     ref  ->  rax         class-hnd single-def "dup spill"
 ;  V58 tmp41        [V58,T07] (  5,  2.50)     ref  ->  rax        
 ;  V59 tmp42        [V59,T24] (  2,  2   )     ref  ->  rbx         class-hnd single-def "non-inline candidate call"
-;  V60 tmp43        [V60    ] (  2,  2   )  struct (24) [rsp+70H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V60 tmp43        [V60    ] (  2,  2   )  struct (24) [rsp+78H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V61 tmp44        [V61,T25] (  2,  2   )     ref  ->  rbx         class-hnd single-def "impAppendStmt"
-;  V62 tmp45        [V62    ] (  2,  2   )  struct (24) [rsp+58H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
-;  V63 tmp46        [V63,T26] (  2,  2   )     ref  ->  rbp         class-hnd "non-inline candidate call"
-;  V64 tmp47        [V64    ] (  2,  2   )  struct (24) [rsp+40H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V62 tmp45        [V62    ] (  2,  2   )  struct (24) [rsp+60H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V63 tmp46        [V63,T26] (  2,  2   )     ref  ->  rbx         class-hnd "non-inline candidate call"
+;  V64 tmp47        [V64    ] (  2,  2   )  struct (24) [rsp+48H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V65 tmp48        [V65,T81] (  2,  1   )    bool  ->  rax         "Inline return value spill temp"
 ;* V66 tmp49        [V66    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V67 tmp50        [V67,T27] (  2,  2   )     ref  ->  rsi         class-hnd "non-inline candidate call"
-;  V68 tmp51        [V68    ] (  2,  2   )  struct (24) [rsp+28H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V67 tmp50        [V67,T27] (  2,  2   )     ref  ->  rbx         class-hnd "non-inline candidate call"
+;  V68 tmp51        [V68    ] (  2,  2   )  struct (24) [rsp+30H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;* V69 tmp52        [V69,T85] (  0,  0   )     ref  ->  zero-ref    single-def V16.array(offs=0x00) P-INDEP "field V16.array (fldOffset=0x0)"
 ;  V70 tmp53        [V70,T76] (  2,  1   )     ref  ->   r8         V31.array(offs=0x00) P-INDEP "field V31.array (fldOffset=0x0)"
 ;  V71 tmp54        [V71,T77] (  2,  1   )     ref  ->  rdx         V54.array(offs=0x00) P-INDEP "field V54.array (fldOffset=0x0)"
@@ -118,31 +118,27 @@
 ;  V107 rat0        [V107,T05] (  3,  3   )     int  ->  rbp         "ReplaceWithLclVar is creating a new local variable"
 ;  V108 rat1        [V108,T06] (  3,  3   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 376
+; Lcl frame size = 384
 
 G_M32006_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 376
-       xor      eax, eax
-       mov      qword ptr [rsp+28H], rax
+       sub      rsp, 384
        xorps    xmm4, xmm4
-       movaps   xmmword ptr [rsp+30H], xmm4
-       movaps   xmmword ptr [rsp+40H], xmm4
-       mov      rax, -288
-       movaps   xmmword ptr [rsp+rax+170H], xmm4
+       mov      rax, -336
        movaps   xmmword ptr [rsp+rax+180H], xmm4
        movaps   xmmword ptr [rsp+rax+190H], xmm4
+       movaps   xmmword ptr [rsp+rax+1A0H], xmm4
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rsp+170H], rax
        mov      rdi, rcx
        ; gcrRegs +[rdi]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
-						;; size=85 bbWeight=1 PerfScore 18.83
+						;; size=62 bbWeight=1 PerfScore 13.58
 G_M32006_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -162,7 +158,7 @@ G_M32006_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        ; gcrRegs +[rdx]
        mov      gword ptr [rsp+20H], rdx
        ; gcr arg write
-       lea      rdx, [rsp+58H]
+       lea      rdx, [rsp+60H]
        ; gcrRegs -[rdx]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
@@ -172,7 +168,7 @@ G_M32006_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        call     [Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:CreatePart(int,Microsoft.CodeAnalysis.ISymbol,System.String):Microsoft.CodeAnalysis.SymbolDisplayPart:this]
        ; gcrRegs -[rcx rsi rdi r9]
        ; gcr arg pop 0
-       lea      rdx, [rsp+58H]
+       lea      rdx, [rsp+60H]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -183,13 +179,14 @@ G_M32006_IG03:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        nop      
 						;; size=70 bbWeight=0.50 PerfScore 10.38
 G_M32006_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 376
+       add      rsp, 384
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-						;; size=12 bbWeight=0.50 PerfScore 1.62
+						;; size=14 bbWeight=0.50 PerfScore 1.88
 G_M32006_IG05:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rsi rdi]
        mov      rcx, rsi
@@ -226,7 +223,7 @@ G_M32006_IG07:        ; bbWeight=0.50, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0
        ; gcr arg pop 0
        mov      gword ptr [rsp+20H], rax
        ; gcr arg write
-       lea      rdx, [rsp+70H]
+       lea      rdx, [rsp+78H]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      r9, rsi
@@ -235,7 +232,7 @@ G_M32006_IG07:        ; bbWeight=0.50, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0
        call     [Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:CreatePart(int,Microsoft.CodeAnalysis.ISymbol,System.String):Microsoft.CodeAnalysis.SymbolDisplayPart:this]
        ; gcrRegs -[rax rcx rsi rdi r9]
        ; gcr arg pop 0
-       lea      rdx, [rsp+70H]
+       lea      rdx, [rsp+78H]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -246,13 +243,14 @@ G_M32006_IG07:        ; bbWeight=0.50, gcrefRegs=00C2 {rcx rsi rdi}, byrefRegs=0
        nop      
 						;; size=84 bbWeight=0.50 PerfScore 12.38
 G_M32006_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 376
+       add      rsp, 384
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-						;; size=12 bbWeight=0.50 PerfScore 1.62
+						;; size=14 bbWeight=0.50 PerfScore 1.88
 G_M32006_IG09:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rsi rdi]
        mov      rcx, rsi
@@ -273,13 +271,14 @@ G_M32006_IG09:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {
        nop      
 						;; size=31 bbWeight=0.50 PerfScore 4.38
 G_M32006_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 376
+       add      rsp, 384
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-						;; size=12 bbWeight=0.50 PerfScore 1.62
+						;; size=14 bbWeight=0.50 PerfScore 1.88
 G_M32006_IG11:        ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rsi rdi]
        mov      rcx, rsi
@@ -734,7 +733,7 @@ G_M32006_IG29:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        ; gcr arg pop 0
        dec      eax
        cmp      eax, 16
-       ja       G_M32006_IG61
+       ja       G_M32006_IG60
        mov      ecx, eax
        lea      r11, [reloc @RWD16]
        mov      r11d, dword ptr [r11+4*rcx]
@@ -754,7 +753,7 @@ G_M32006_IG30:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        ; gcr arg pop 0
        mov      gword ptr [rsp+20H], rax
        ; gcr arg write
-       lea      rdx, [rsp+D0H]
+       lea      rdx, [rsp+D8H]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      r9, rsi
@@ -763,7 +762,7 @@ G_M32006_IG30:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        call     [Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:CreatePart(int,Microsoft.CodeAnalysis.ISymbol,System.String):Microsoft.CodeAnalysis.SymbolDisplayPart:this]
        ; gcrRegs -[rax rcx r9]
        ; gcr arg pop 0
-       lea      rdx, [rsp+D0H]
+       lea      rdx, [rsp+D8H]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -771,12 +770,12 @@ G_M32006_IG30:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
-       jmp      G_M32006_IG60
+       jmp      G_M32006_IG57
 						;; size=83 bbWeight=0.50 PerfScore 11.12
 G_M32006_IG31:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, qword ptr [(reloc)]      ; const ptr
-       mov      rbp, gword ptr [rdi+rcx]
-       ; gcrRegs +[rbp]
+       mov      rbx, gword ptr [rdi+rcx]
+       ; gcrRegs +[rbx]
...
-2 (-0.34%) : 28148.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInFunctionPointer(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):bool
@@ -121,7 +121,7 @@ G_M20499_IG04:        ; bbWeight=1, extend
        cmp      dword ptr [rax+08H], 0
        jle      G_M20499_IG12
 						;; size=59 bbWeight=1 PerfScore 24.00
-G_M20499_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
+G_M20499_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref, isz
        ; gcrRegs -[rax rbp]
        mov      rdx, gword ptr [rdi]
        ; gcrRegs +[rdx]
@@ -158,8 +158,8 @@ G_M20499_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
        call     [<unknown method>]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M20499_IG10
-						;; size=119 bbWeight=0.50 PerfScore 20.75
+       je       SHORT G_M20499_IG09
+						;; size=115 bbWeight=0.50 PerfScore 20.75
 G_M20499_IG06:        ; bbWeight=4, gcrefRegs=4040 {rsi r14}, byrefRegs=0080 {rdi}, byref
        lea      rcx, [rsp+60H]
        mov      rdx, r15
@@ -212,13 +212,14 @@ G_M20499_IG09:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0080 {rdi
        mov      rcx, r14
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
+       cmp      dword ptr [rcx], ecx
        call     [r11]<unknown method>
        ; gcrRegs -[rcx r14] +[rax]
        ; gcr arg pop 0
        mov      rbp, rax
        ; gcrRegs +[rbp]
        jmp      SHORT G_M20499_IG13
-						;; size=22 bbWeight=0.50 PerfScore 3.62
+						;; size=24 bbWeight=0.50 PerfScore 5.12
 G_M20499_IG10:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0080 {rdi}, byref, isz
        ; gcrRegs -[rax rbp] +[r14]
        mov      rdx, gword ptr [rdi]
@@ -323,7 +324,7 @@ G_M20499_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=16 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 597, prolog size 45, PerfScore 303.03, instruction count 152, allocated bytes for code 597 (MethodHash=f8ddafec) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInFunctionPointer(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):bool
+; Total bytes of code 595, prolog size 45, PerfScore 304.33, instruction count 153, allocated bytes for code 595 (MethodHash=f8ddafec) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInFunctionPointer(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):bool
 ; ============================================================
 
 Unwind Info:
+7 (+3.14%) : 6260.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeForStandaloneSyntax(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager,System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol]):this
@@ -7,20 +7,20 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 10,  6.50)     ref  ->  rsi         this class-hnd single-def
+;  V00 this         [V00,T00] ( 10,  6   )     ref  ->  rsi         this class-hnd single-def
 ;  V01 arg1         [V01,T02] (  5,  3.50)     ref  ->  rbx         class-hnd single-def
-;  V02 arg2         [V02,T01] (  6,  5   )     ref  ->  rdi         class-hnd single-def
-;  V03 arg3         [V03,T04] (  4,  3   )     ref  ->  rbp         class-hnd single-def
+;  V02 arg2         [V02,T01] (  6,  4.50)     ref  ->  rdi         class-hnd single-def
+;  V03 arg3         [V03,T03] (  4,  3   )     ref  ->  rbp         class-hnd single-def
 ;  V04 arg4         [V04,T10] (  1,  0.50)     ref  ->  [rsp+80H]   class-hnd single-def
-;  V05 loc0         [V05,T05] (  2,  2   )    bool  ->  rax        
+;  V05 loc0         [V05,T05] (  3,  2.50)    bool  ->  r14        
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call"
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call"
 ;  V09 tmp3         [V09,T06] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
 ;  V10 tmp4         [V10,T07] (  2,  2   )     ref  ->  rbx         single-def "argument with side effect"
 ;  V11 tmp5         [V11,T08] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V12 tmp6         [V12,T09] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
-;  V13 cse0         [V13,T03] (  8,  5   )    long  ->  r14         "CSE - aggressive"
+;  V12 tmp6         [V12,T09] (  2,  2   )     ref  ->  r14         single-def "argument with side effect"
+;  V13 cse0         [V13,T04] (  8,  4   )    long  ->  r15         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -42,10 +42,13 @@ G_M60993_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rbp]
 						;; size=24 bbWeight=1 PerfScore 7.25
 G_M60993_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       xor      r14d, r14d
        test     rdi, rdi
-       je       SHORT G_M60993_IG03
-       mov      r14, qword ptr [(reloc)]      ; const ptr
-       mov      rcx, gword ptr [rsi+r14+18H]
+       je       SHORT G_M60993_IG04
+						;; size=8 bbWeight=1 PerfScore 1.50
+G_M60993_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+       mov      r15, qword ptr [(reloc)]      ; const ptr
+       mov      rcx, gword ptr [rsi+r15+18H]
        ; gcrRegs +[rcx]
        mov      rdx, gword ptr [rdi+08H]
        ; gcrRegs +[rdx]
@@ -54,24 +57,27 @@ G_M60993_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       jne      G_M60993_IG07
-						;; size=41 bbWeight=1 PerfScore 15.00
-G_M60993_IG03:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      r14, qword ptr [(reloc)]      ; const ptr
-       cmp      gword ptr [rsi+r14+08H], rbx
-       je       SHORT G_M60993_IG04
+       mov      r14d, eax
+						;; size=31 bbWeight=0.50 PerfScore 6.38
+G_M60993_IG04:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+       test     r14d, r14d
+       jne      G_M60993_IG09
+						;; size=9 bbWeight=1 PerfScore 1.25
+G_M60993_IG05:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       mov      r15, qword ptr [(reloc)]      ; const ptr
+       cmp      gword ptr [rsi+r15+08H], rbx
+       je       SHORT G_M60993_IG06
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       SHORT G_M60993_IG05
+       je       SHORT G_M60993_IG07
 						;; size=28 bbWeight=0.50 PerfScore 5.25
-G_M60993_IG04:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M60993_IG06:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax rbx]
-       mov      rbx, gword ptr [rsi+r14+18H]
+       mov      rbx, gword ptr [rsi+r15+18H]
        ; gcrRegs +[rbx]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -91,12 +97,12 @@ G_M60993_IG04:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx rbx rdi r8-r9]
        ; gcr arg pop 0
-       jmp      SHORT G_M60993_IG06
+       jmp      SHORT G_M60993_IG08
 						;; size=40 bbWeight=0.50 PerfScore 7.38
-G_M60993_IG05:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M60993_IG07:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rdi]
-       mov      r15, gword ptr [rsi+r14+18H]
-       ; gcrRegs +[r15]
+       mov      r14, gword ptr [rsi+r15+18H]
+       ; gcrRegs +[r14]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -106,27 +112,27 @@ G_M60993_IG05:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        ; gcr arg pop 0
        mov      r8, rax
        ; gcrRegs +[r8]
-       mov      rdx, r15
+       mov      rdx, r14
        ; gcrRegs +[rdx]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      r9, rbx
        ; gcrRegs +[r9]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rbx rdi r8-r9 r15]
+       ; gcrRegs -[rax rcx rdx rbx rdi r8-r9 r14]
        ; gcr arg pop 0
 						;; size=38 bbWeight=0.50 PerfScore 6.38
-G_M60993_IG06:        ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M60993_IG08:        ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
        test     rbp, rbp
-       je       SHORT G_M60993_IG07
-       lea      rcx, bword ptr [rsi+r14+30H]
+       je       SHORT G_M60993_IG09
+       lea      rcx, bword ptr [rsi+r15+30H]
        ; byrRegs +[rcx]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
        call     [CORINFO_HELP_ASSIGN_REF]
        ; gcrRegs -[rdx rbp]
        ; byrRegs -[rcx]
-       lea      rcx, bword ptr [rsi+r14+38H]
+       lea      rcx, bword ptr [rsi+r15+38H]
        ; byrRegs +[rcx]
        mov      rdx, gword ptr [rsp+80H]
        ; gcrRegs +[rdx]
@@ -134,10 +140,10 @@ G_M60993_IG06:        ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000
        ; gcrRegs -[rdx rsi]
        ; byrRegs -[rcx]
 						;; size=38 bbWeight=0.50 PerfScore 5.25
-G_M60993_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M60993_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M60993_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M60993_IG10:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -148,7 +154,7 @@ G_M60993_IG08:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=13 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 223, prolog size 12, PerfScore 73.30, instruction count 66, allocated bytes for code 223 (MethodHash=25e511be) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeForStandaloneSyntax(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager,System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol]):this
+; Total bytes of code 230, prolog size 12, PerfScore 68.13, instruction count 68, allocated bytes for code 230 (MethodHash=25e511be) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeForStandaloneSyntax(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager,System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol]):this
 ; ============================================================
 
 Unwind Info:
+8 (+3.59%) : 6258.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeAndGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this
@@ -7,31 +7,29 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6,  5   )     ref  ->  rsi         this class-hnd single-def
-;  V01 RetBuf       [V01,T02] (  6,  4   )   byref  ->  rbx         single-def
+;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  rsi         this class-hnd single-def
+;  V01 RetBuf       [V01,T01] (  6,  4   )   byref  ->  rbx         single-def
 ;  V02 arg1         [V02,T03] (  3,  3   )     ref  ->  rbp         class-hnd single-def
-;  V03 arg2         [V03,T01] (  5,  4.50)     ref  ->  rdi         class-hnd single-def
-;  V04 loc0         [V04,T05] (  2,  2   )    bool  ->  rax        
-;  V05 loc1         [V05    ] (  2,  1.50)  struct (16) [rsp+28H]   do-not-enreg[XS] must-init addr-exposed ld-addr-op
+;  V03 arg2         [V03,T02] (  5,  4   )     ref  ->  rdi         class-hnd single-def
+;  V04 loc0         [V04,T04] (  3,  2.50)    bool  ->  r14        
+;  V05 loc1         [V05    ] (  2,  1.50)  struct (16) [rsp+20H]   do-not-enreg[XS] must-init addr-exposed ld-addr-op
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call"
-;  V08 tmp2         [V08,T06] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V09 tmp3         [V09,T07] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
-;  V10 cse0         [V10,T04] (  5,  4   )    long  ->  r14         "CSE - aggressive"
+;  V08 tmp2         [V08,T05] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V09 tmp3         [V09,T06] (  2,  2   )     ref  ->  r14         single-def "argument with side effect"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M51358_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 56
+       sub      rsp, 48
        xor      eax, eax
+       mov      qword ptr [rsp+20H], rax
        mov      qword ptr [rsp+28H], rax
-       mov      qword ptr [rsp+30H], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
@@ -40,12 +38,15 @@ G_M51358_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[rbp]
        mov      rdi, r9
        ; gcrRegs +[rdi]
-						;; size=36 bbWeight=1 PerfScore 9.50
+						;; size=34 bbWeight=1 PerfScore 8.50
 G_M51358_IG02:        ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+       xor      r14d, r14d
        test     rdi, rdi
-       je       SHORT G_M51358_IG03
-       mov      r14, qword ptr [(reloc)]      ; const ptr
-       mov      rcx, gword ptr [rsi+r14+18H]
+       je       SHORT G_M51358_IG04
+						;; size=8 bbWeight=1 PerfScore 1.50
+G_M51358_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0008 {rbx}, byref
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      rcx, gword ptr [rsi+rcx+18H]
        ; gcrRegs +[rcx]
        mov      rdx, gword ptr [rdi+08H]
        ; gcrRegs +[rdx]
@@ -54,13 +55,16 @@ G_M51358_IG02:        ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0008
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M51358_IG04
-						;; size=37 bbWeight=1 PerfScore 15.00
-G_M51358_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0008 {rbx}, byref
-       mov      r14, qword ptr [(reloc)]      ; const ptr
-       mov      r15, gword ptr [rsi+r14+18H]
-       ; gcrRegs +[r15]
+       mov      r14d, eax
+						;; size=31 bbWeight=0.50 PerfScore 6.38
+G_M51358_IG04:        ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+       test     r14d, r14d
+       jne      SHORT G_M51358_IG06
+						;; size=5 bbWeight=1 PerfScore 1.25
+G_M51358_IG05:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0008 {rbx}, byref
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      r14, gword ptr [rsi+rcx+18H]
+       ; gcrRegs +[r14]
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -70,20 +74,21 @@ G_M51358_IG03:        ; bbWeight=0.50, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0
        ; gcr arg pop 0
        mov      r8, rax
        ; gcrRegs +[r8]
-       mov      rdx, r15
+       mov      rdx, r14
        ; gcrRegs +[rdx]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        xor      r9, r9
        ; gcrRegs +[r9]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx rdi r8-r9 r15]
+       ; gcrRegs -[rax rcx rdx rdi r8-r9 r14]
        ; gcr arg pop 0
 						;; size=45 bbWeight=0.50 PerfScore 7.38
-G_M51358_IG04:        ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rcx, gword ptr [rsi+r14+18H]
+G_M51358_IG06:        ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=0008 {rbx}, byref, isz
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       mov      rcx, gword ptr [rsi+rcx+18H]
        ; gcrRegs +[rcx]
-       lea      r8, [rsp+28H]
+       lea      r8, [rsp+20H]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
        lea      r11, [(reloc)]      ; function address
@@ -92,9 +97,9 @@ G_M51358_IG04:        ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=0008 {rb
        ; gcrRegs -[rcx rdx rbp rsi]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M51358_IG07
-						;; size=29 bbWeight=1 PerfScore 10.50
-G_M51358_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jne      SHORT G_M51358_IG09
+						;; size=36 bbWeight=1 PerfScore 12.50
+G_M51358_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
        ; byrRegs +[rax]
        ; gcr arg pop 0
@@ -108,39 +113,37 @@ G_M51358_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        mov      rax, rbx
        ; byrRegs +[rax]
 						;; size=27 bbWeight=0.50 PerfScore 4.88
-G_M51358_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
+G_M51358_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M51358_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+						;; size=11 bbWeight=0.50 PerfScore 1.88
+G_M51358_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
        ; byrRegs -[rax rsi rdi]
        mov      rdi, rbx
        ; byrRegs +[rdi]
-       lea      rsi, bword ptr [rsp+28H]
+       lea      rsi, bword ptr [rsp+20H]
        ; byrRegs +[rsi]
        call     [CORINFO_HELP_ASSIGN_BYREF]
        call     [CORINFO_HELP_ASSIGN_BYREF]
        mov      rax, rbx
        ; byrRegs +[rax]
 						;; size=23 bbWeight=0.50 PerfScore 3.50
-G_M51358_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
+G_M51358_IG10:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 2.12
+						;; size=11 bbWeight=0.50 PerfScore 1.88
 
-; Total bytes of code 223, prolog size 24, PerfScore 77.30, instruction count 70, allocated bytes for code 223 (MethodHash=c27d3761) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeAndGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this
+; Total bytes of code 231, prolog size 22, PerfScore 72.73, instruction count 70, allocated bytes for code 231 (MethodHash=c27d3761) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeAndGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this
 ; ============================================================
 
 Unwind Info:
@@ -148,15 +151,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+25 (+7.25%) : 7566.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetUpdatedSymbol(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):this
@@ -12,35 +12,38 @@
 ;  V01 arg1         [V01,T03] (  5,  3.50)     ref  ->  rbp         class-hnd single-def
 ;  V02 arg2         [V02,T00] (  7,  4.50)     ref  ->  rsi         class-hnd single-def
 ;  V03 arg3         [V03,T01] (  7,  4.50)     ref  ->  rdi         class-hnd single-def
-;  V04 loc0         [V04,T11] (  2,  1   )    bool  ->  rax        
-;  V05 loc1         [V05,T08] (  3,  1.50)     ref  ->  r15         class-hnd single-def
-;  V06 loc2         [V06,T09] (  3,  1.50)     ref  ->  r12         class-hnd single-def
+;  V04 loc0         [V04,T11] (  3,  1.50)    bool  ->  r15        
+;  V05 loc1         [V05,T08] (  3,  1.50)     ref  ->  r12         class-hnd single-def
+;  V06 loc2         [V06,T09] (  3,  1.50)     ref  ->  r13         class-hnd single-def
 ;  V07 loc3         [V07,T10] (  3,  1.50)     ref  ->  rax         class-hnd single-def
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T12] (  2,  1   )    bool  ->  rax         "Inline return value spill temp"
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
 ;  V11 tmp3         [V11,T05] (  2,  2   )     ref  ->  rbx         class-hnd single-def "impAppendStmt"
-;  V12 tmp4         [V12    ] (  2,  2   )  struct (16) [rsp+30H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V12 tmp4         [V12    ] (  2,  2   )  struct (16) [rsp+38H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
 ;  V14 tmp6         [V14,T06] (  2,  2   )     ref  ->  rbx         class-hnd single-def "impAppendStmt"
-;  V15 tmp7         [V15    ] (  2,  2   )  struct (16) [rsp+20H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
+;  V15 tmp7         [V15    ] (  2,  2   )  struct (16) [rsp+28H]   do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument"
 ;  V16 tmp8         [V16,T07] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V17 cse0         [V17,T04] (  4,  3   )    long  ->  r14         "CSE - aggressive"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 72
 
 G_M21353_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     r15
        push     r14
+       push     r13
        push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 72
+       xor      eax, eax
+       mov      qword ptr [rsp+28H], rax
        xorps    xmm4, xmm4
-       movaps   xmmword ptr [rsp+20H], xmm4
        movaps   xmmword ptr [rsp+30H], xmm4
+       mov      qword ptr [rsp+40H], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rbp, rdx
@@ -49,7 +52,7 @@ G_M21353_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[rsi]
        mov      rdi, r9
        ; gcrRegs +[rdi]
-						;; size=39 bbWeight=1 PerfScore 12.58
+						;; size=48 bbWeight=1 PerfScore 13.83
 G_M21353_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r14, qword ptr [(reloc)]      ; const ptr
        cmp      gword ptr [rbx+r14+30H], 0
@@ -57,35 +60,37 @@ G_M21353_IG02:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
 						;; size=15 bbWeight=1 PerfScore 6.00
 G_M21353_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rbx rbp rsi rdi]
-       add      rsp, 64
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r12
+       pop      r13
        pop      r14
        pop      r15
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.38
+						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M21353_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rbp rsi rdi]
+       xor      r15d, r15d
        mov      rcx, rbp
        ; gcrRegs +[rcx]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       test     r15, r15
+       mov      r12, rax
+       ; gcrRegs +[r12]
+       test     r12, r12
        je       SHORT G_M21353_IG07
        mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      r12, rax
-       ; gcrRegs +[r12]
-       test     r12, r12
+       mov      r13, rax
+       ; gcrRegs +[r13]
+       test     r13, r13
        je       SHORT G_M21353_IG07
        mov      rcx, rdi
        ; gcrRegs +[rcx]
@@ -94,32 +99,33 @@ G_M21353_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E
        ; gcr arg pop 0
        test     rax, rax
        je       SHORT G_M21353_IG07
-       mov      rcx, r12
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     [Microsoft.CodeAnalysis.CSharp.NullableWalker:AreLambdaAndNewDelegateSimilar(Microsoft.CodeAnalysis.CSharp.Symbols.LambdaSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):bool]
-       ; gcrRegs -[rax rcx rdx r12]
+       ; gcrRegs -[rax rcx rdx r13]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M21353_IG06
-						;; size=64 bbWeight=0.50 PerfScore 9.38
+						;; size=67 bbWeight=0.50 PerfScore 9.50
 G_M21353_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r12
+       pop      r13
        pop      r14
        pop      r15
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.38
-G_M21353_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80E8 {rbx rbp rsi rdi r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      rcx, gword ptr [r15+18H]
+						;; size=17 bbWeight=0.50 PerfScore 2.62
+G_M21353_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=10E8 {rbx rbp rsi rdi r12}, byrefRegs=0000 {}, gcvars, byref
+       mov      rcx, gword ptr [r12+18H]
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:GetDelegateType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]
-       ; gcrRegs -[rcx r15] +[rax]
+       ; gcrRegs -[rcx r12] +[rax]
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
@@ -131,16 +137,17 @@ G_M21353_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80E
        call     [r11]<unknown method>
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
-       test     eax, eax
-       jne      SHORT G_M21353_IG09
-						;; size=35 bbWeight=0.50 PerfScore 6.75
+       mov      r15d, eax
+						;; size=35 bbWeight=0.50 PerfScore 6.25
 G_M21353_IG07:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+       test     r15d, r15d
+       jne      SHORT G_M21353_IG09
        test     rsi, rsi
        jne      SHORT G_M21353_IG08
        test     rdi, rdi
        jne      SHORT G_M21353_IG11
        jmp      SHORT G_M21353_IG09
-						;; size=12 bbWeight=0.50 PerfScore 2.25
+						;; size=17 bbWeight=0.50 PerfScore 2.88
 G_M21353_IG08:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -159,7 +166,7 @@ G_M21353_IG09:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
        mov      rcx, gword ptr [rbx+r14+30H]
        ; gcrRegs +[rcx]
        mov      rbx, gword ptr [rcx+08H]
-       lea      rcx, [rsp+30H]
+       lea      rcx, [rsp+38H]
        ; gcrRegs -[rcx]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
@@ -168,7 +175,7 @@ G_M21353_IG09:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
        call     [Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager+Builder:GetKey(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol]]
        ; gcrRegs -[rdx rbp rsi r8]
        ; gcr arg pop 0
-       lea      rdx, [rsp+30H]
+       lea      rdx, [rsp+38H]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -179,22 +186,23 @@ G_M21353_IG09:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
        nop      
 						;; size=47 bbWeight=0.50 PerfScore 7.75
 G_M21353_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r12
+       pop      r13
        pop      r14
        pop      r15
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.38
+						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M21353_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx rbp rsi rdi]
        mov      rcx, gword ptr [rbx+r14+30H]
        ; gcrRegs +[rcx]
        mov      rbx, gword ptr [rcx+08H]
-       lea      rcx, [rsp+20H]
+       lea      rcx, [rsp+28H]
        ; gcrRegs -[rcx]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
@@ -203,7 +211,7 @@ G_M21353_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E
        call     [Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager+Builder:GetKey(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol]]
        ; gcrRegs -[rdx rbp rsi r8]
        ; gcr arg pop 0
-       lea      rdx, [rsp+20H]
+       lea      rdx, [rsp+28H]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r8, rdi
@@ -216,18 +224,19 @@ G_M21353_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E
        nop      
 						;; size=50 bbWeight=0.50 PerfScore 7.88
 G_M21353_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r12
+       pop      r13
        pop      r14
        pop      r15
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.38
+						;; size=17 bbWeight=0.50 PerfScore 2.62
 
-; Total bytes of code 345, prolog size 27, PerfScore 99.33, instruction count 120, allocated bytes for code 345 (MethodHash=7b46ac96) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:SetUpdatedSymbol(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):this
+; Total bytes of code 370, prolog size 36, PerfScore 104.33, instruction count 129, allocated bytes for code 370 (MethodHash=7b46ac96) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:SetUpdatedSymbol(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):this
 ; ============================================================
 
 Unwind Info:
@@ -235,16 +244,17 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0E
-  CountOfUnwindCodes: 8
+  SizeOfProlog      : 0x10
...
libraries.pmi.windows.x64.checked.mch
-12 (-4.07%) : 122582.dasm - System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
@@ -6,19 +6,18 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  7, 14.50)     ref  ->  rdi         this class-hnd single-def
+;  V00 this         [V00,T03] (  9, 17   )     ref  ->  rdi         this class-hnd single-def
 ;  V01 arg1         [V01,T00] ( 12, 21.50)     ref  ->  rsi         class-hnd single-def
-;  V02 loc0         [V02,T11] (  2,  1.50)     ref  ->  rbx         class-hnd single-def
-;  V03 loc1         [V03,T10] (  3,  4   )    bool  ->  rbp        
+;  V02 loc0         [V02,T10] (  2,  1.50)     ref  ->  rbx         class-hnd single-def
+;  V03 loc1         [V03,T09] (  3,  4   )    bool  ->  rbp        
 ;  V04 loc2         [V04,T01] (  7, 23   )     int  ->  r14        
 ;  V05 loc3         [V05,T02] (  7, 20   )     ref  ->  r12         class-hnd
-;  V06 loc4         [V06,T04] (  7, 16   )     ref  ->  [rsp+20H]   class-hnd
-;  V07 loc5         [V07,T09] (  2,  6   )     ref  ->  r13         class-hnd
+;  V06 loc4         [V06,T04] (  7, 16   )     ref  ->  [rsp+28H]   class-hnd
+;  V07 loc5         [V07,T08] (  2,  6   )     ref  ->  r13         class-hnd
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T08] (  3,  8   )     ref  ->  r13        
+;  V09 tmp1         [V09,T07] (  3,  8   )     ref  ->  r13        
 ;  V10 cse0         [V10,T05] (  5, 12   )    long  ->  r15         "CSE - aggressive"
-;  V11 cse1         [V11,T07] (  3, 10   )    long  ->  [rsp+30H]   spill-single-def "CSE - aggressive"
-;  V12 cse2         [V12,T06] (  4, 10.50)    long  ->  [rsp+28H]   "CSE - aggressive"
+;  V11 cse1         [V11,T06] (  3, 10   )    long  ->  [rsp+30H]   spill-single-def "CSE - aggressive"
 ;
 ; Lcl frame size = 56
 
@@ -58,7 +57,7 @@ G_M46494_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jle      G_M46494_IG15
+       jle      G_M46494_IG13
 						;; size=42 bbWeight=1 PerfScore 16.50
 G_M46494_IG03:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
@@ -98,38 +97,37 @@ G_M46494_IG06:        ; bbWeight=4, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefR
        ; gcrRegs +[rdx]
        mov      r8d, r14d
        mov      rax, qword ptr [rdi]
-       mov      qword ptr [rsp+28H], rax
-       mov      r9, qword ptr [rax+48H]
-       mov      qword ptr [rsp+30H], r9
-       call     [r9+30H]<unknown method>
+       mov      rax, qword ptr [rax+48H]
+       mov      qword ptr [rsp+30H], rax
+       call     [rax+30H]<unknown method>
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M46494_IG08
-						;; size=34 bbWeight=4 PerfScore 44.00
+						;; size=28 bbWeight=4 PerfScore 40.00
 G_M46494_IG07:        ; bbWeight=2, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, r12
        ; gcrRegs +[rdx]
-       mov      rax, qword ptr [rsp+28H]
-       mov      r8, qword ptr [rax+50H]
-       call     [r8]<unknown method>
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+50H]
+       call     [rax]<unknown method>
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
        jmp      SHORT G_M46494_IG09
-						;; size=20 bbWeight=2 PerfScore 17.00
+						;; size=17 bbWeight=2 PerfScore 19.00
 G_M46494_IG08:        ; bbWeight=2, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rdx, r12
        ; gcrRegs +[rdx]
-       mov      r9, qword ptr [rsp+30H]
-       call     [r9+38H]<unknown method>
+       mov      rax, qword ptr [rsp+30H]
+       call     [rax+38H]<unknown method>
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-						;; size=15 bbWeight=2 PerfScore 9.00
+						;; size=14 bbWeight=2 PerfScore 9.00
 G_M46494_IG09:        ; bbWeight=4, gcrefRegs=30C9 {rax rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref, isz
        cmp      r12, rax
        jne      SHORT G_M46494_IG11
@@ -140,7 +138,7 @@ G_M46494_IG10:        ; bbWeight=2, gcrefRegs=20C9 {rax rbx rsi rdi r13}, byrefR
        je       SHORT G_M46494_IG12
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+20H], rax
+       mov      gword ptr [rsp+28H], rax
        ; GC ptr vars +{V06}
        mov      rdx, qword ptr [rax]
        mov      rdx, qword ptr [rdx+48H]
@@ -148,7 +146,7 @@ G_M46494_IG10:        ; bbWeight=2, gcrefRegs=20C9 {rax rbx rsi rdi r13}, byrefR
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        cmp      rax, r13
-       mov      rax, gword ptr [rsp+20H]
+       mov      rax, gword ptr [rsp+28H]
        je       SHORT G_M46494_IG12
 						;; size=33 bbWeight=2 PerfScore 23.50
 G_M46494_IG11:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
@@ -175,10 +173,9 @@ G_M46494_IG12:        ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
        jg       G_M46494_IG03
 						;; size=18 bbWeight=4 PerfScore 19.00
 G_M46494_IG13:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       mov      r14, qword ptr [rsp+28H]
        test     ebp, ebp
        je       SHORT G_M46494_IG15
-						;; size=9 bbWeight=1 PerfScore 2.25
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M46494_IG14:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, rdi
        ; gcrRegs +[rcx]
@@ -186,11 +183,12 @@ G_M46494_IG14:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs +[rdx]
        mov      r8, rbx
        ; gcrRegs +[r8]
-       mov      rax, qword ptr [r14+C0H]
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+C0H]
        call     [rax+08H]<unknown method>
        ; gcrRegs -[rcx rdx rbx rdi r8]
        ; gcr arg pop 0
-						;; size=19 bbWeight=0.50 PerfScore 2.88
+						;; size=22 bbWeight=0.50 PerfScore 3.88
 G_M46494_IG15:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rax, rsi
        ; gcrRegs +[rax]
@@ -208,7 +206,7 @@ G_M46494_IG16:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 295, prolog size 16, PerfScore 230.38, instruction count 98, allocated bytes for code 295 (MethodHash=b0604a61) for method System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
+; Total bytes of code 283, prolog size 16, PerfScore 227.18, instruction count 97, allocated bytes for code 283 (MethodHash=b0604a61) for method System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
 ; ============================================================
 
 Unwind Info:
-19 (-2.14%) : 72520.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:EarlyDecodeWellKnownAttribute(byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:this
@@ -10,15 +10,15 @@
 ;  V00 this         [V00,T01] ( 12,  7   )     ref  ->  rdi         this class-hnd single-def
 ;  V01 arg1         [V01,T00] ( 17, 10   )   byref  ->  rsi         single-def
 ;  V02 loc0         [V02,T04] (  5,  3   )     ref  ->  rax         class-hnd
-;  V03 loc1         [V03    ] (  4,  2   )    bool  ->  [rsp+60H]   do-not-enreg[X] must-init addr-exposed ld-addr-op
-;  V04 loc2         [V04,T23] (  2,  1   )    bool  ->  rax        
-;  V05 loc3         [V05,T09] (  4,  2   )     ref  ->  rbx         class-hnd single-def
+;  V03 loc1         [V03    ] (  4,  2   )    bool  ->  [rsp+58H]   do-not-enreg[X] must-init addr-exposed ld-addr-op
+;  V04 loc2         [V04,T23] (  3,  1.50)    bool  ->  rbx        
+;  V05 loc3         [V05,T09] (  4,  2   )     ref  ->  rbp         class-hnd single-def
 ;* V06 loc4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def
 ;  V07 loc5         [V07,T16] (  3,  1.50)     ref  ->  rbx         class-hnd single-def
 ;  V08 loc6         [V08,T08] (  5,  2.50)     ref  ->  rdi         class-hnd single-def
 ;  V09 loc7         [V09,T17] (  3,  1.50)     ref  ->  rbx         class-hnd single-def
-;  V10 loc8         [V10    ] (  3,  1.50)     ref  ->  [rsp+58H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
-;  V11 loc9         [V11    ] (  4,  2   )     ref  ->  [rsp+50H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
+;  V10 loc8         [V10    ] (  3,  1.50)     ref  ->  [rsp+50H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
+;  V11 loc9         [V11    ] (  4,  2   )     ref  ->  [rsp+48H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt"
 ;* V14 tmp2         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt"
@@ -40,7 +40,7 @@
 ;  V30 tmp18        [V30,T05] (  3,  3   )     ref  ->  rsi         class-hnd single-def "Inlining Arg"
 ;* V31 tmp19        [V31    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp"
 ;* V32 tmp20        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V33 tmp21        [V33    ] (  4,  2   )  struct ( 8) [rsp+48H]   do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp"
+;  V33 tmp21        [V33    ] (  4,  2   )  struct ( 8) [rsp+40H]   do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp"
 ;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp"
 ;  V35 tmp23        [V35,T06] (  3,  3   )     ref  ->  rbp         class-hnd exact single-def "dup spill"
 ;* V36 tmp24        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp"
@@ -53,10 +53,10 @@
 ;  V43 tmp31        [V43,T27] (  3,  1   )     ref  ->  rbp         single-def V23._value(offs=0x08) P-INDEP "field V23._value (fldOffset=0x8)"
 ;  V44 tmp32        [V44,T32] (  2,  1   )     int  ->  rcx         single-def V23._kind(offs=0x10) P-INDEP "field V23._kind (fldOffset=0x10)"
 ;  V45 tmp33        [V45,T22] (  3,  1.50)     ref  ->  rdx         single-def V31.array(offs=0x00) P-INDEP "field V31.array (fldOffset=0x0)"
-;  V46 tmp34        [V46    ] (  4,  2   )     ref  ->  [rsp+48H]   do-not-enreg[X] addr-exposed V33.array(offs=0x00) P-DEP "field V33.array (fldOffset=0x0)"
+;  V46 tmp34        [V46    ] (  4,  2   )     ref  ->  [rsp+40H]   do-not-enreg[X] addr-exposed V33.array(offs=0x00) P-DEP "field V33.array (fldOffset=0x0)"
 ;* V47 tmp35        [V47    ] (  0,  0   )     ref  ->  zero-ref    V34.array(offs=0x00) P-INDEP "field V34.array (fldOffset=0x0)"
 ;  V48 tmp36        [V48,T31] (  2,  1   )     ref  ->  rdx         single-def V37.array(offs=0x00) P-INDEP "field V37.array (fldOffset=0x0)"
-;  V49 tmp37        [V49    ] (  4,  4   )  struct (32) [rsp+28H]   do-not-enreg[XS] must-init addr-exposed "by-value struct argument"
+;  V49 tmp37        [V49    ] (  4,  4   )  struct (32) [rsp+20H]   do-not-enreg[XS] must-init addr-exposed "by-value struct argument"
 ;  V50 tmp38        [V50,T12] (  2,  2   )     ref  ->  rbp         single-def "argument with side effect"
 ;  V51 tmp39        [V51,T13] (  2,  2   )     ref  ->  rbx         single-def "argument with side effect"
 ;  V52 tmp40        [V52,T07] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
@@ -64,31 +64,30 @@
 ;  V54 tmp42        [V54,T15] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
 ;  V55 tmp43        [V55,T02] (  4,  4   )   byref  ->  rax         single-def "BlockOp address local"
 ;* V56 cse0         [V56,T33] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V57 cse1         [V57,T24] (  3,  1.50)    long  ->  rbp         "CSE - moderate"
-;  V58 cse2         [V58,T25] (  3,  1.50)    long  ->  rbx         "CSE - moderate"
+;  V57 cse1         [V57,T24] (  3,  1.50)    long  ->  r14         "CSE - moderate"
+;  V58 cse2         [V58,T25] (  3,  1.50)    long  ->  rbp         "CSE - moderate"
 ;  V59 cse3         [V59,T26] (  3,  1.50)    long  ->  rbp         "CSE - moderate"
 ;
-; Lcl frame size = 104
+; Lcl frame size = 96
 
 G_M41689_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 104
+       sub      rsp, 96
        vzeroupper 
-       xor      eax, eax
-       mov      qword ptr [rsp+28H], rax
        vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+20H], xmm4
        vmovdqa  xmmword ptr [rsp+30H], xmm4
        vmovdqa  xmmword ptr [rsp+40H], xmm4
        vmovdqa  xmmword ptr [rsp+50H], xmm4
-       mov      qword ptr [rsp+60H], rax
        mov      rdi, rcx
        ; gcrRegs +[rdi]
        mov      rsi, rdx
        ; byrRegs +[rsi]
-						;; size=51 bbWeight=1 PerfScore 14.33
+						;; size=47 bbWeight=1 PerfScore 15.08
 G_M41689_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
        cmp      dword ptr [rsi+20H], 256
        je       G_M41689_IG22
@@ -108,10 +107,10 @@ G_M41689_IG04:        ; bbWeight=0.50, gcrefRegs=00A8 {rbx rbp rdi}, byrefRegs=0
 						;; size=13 bbWeight=0.50 PerfScore 1.12
 G_M41689_IG05:        ; bbWeight=0.50, nogc, extend
        vmovdqu  ymm0, ymmword ptr [r8+08H]
-       vmovdqu  ymmword ptr [rsp+28H], ymm0
+       vmovdqu  ymmword ptr [rsp+20H], ymm0
 						;; size=12 bbWeight=0.50 PerfScore 3.00
 G_M41689_IG06:        ; bbWeight=0.50, isz, extend
-       lea      r8, [rsp+28H]
+       lea      r8, [rsp+20H]
        ; gcrRegs -[r8]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
@@ -122,31 +121,32 @@ G_M41689_IG06:        ; bbWeight=0.50, isz, extend
        ; gcr arg pop 0
        test     eax, eax
        je       G_M41689_IG09
+       xor      ebx, ebx
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rdi]
-       mov      rbx, qword ptr [rax+D8H]
-       call     [rbx+20H]<unknown method>
+       mov      rbp, qword ptr [rax+D8H]
+       call     [rbp+20H]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        cmp      eax, 10
        je       SHORT G_M41689_IG07
        mov      rcx, rdi
        ; gcrRegs +[rcx]
-       call     [rbx+20H]<unknown method>
+       call     [rbp+20H]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        cmp      eax, 16
-       jne      G_M41689_IG22
-						;; size=61 bbWeight=0.50 PerfScore 9.12
-G_M41689_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+       jne      SHORT G_M41689_IG08
+						;; size=59 bbWeight=0.50 PerfScore 9.25
+G_M41689_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        mov      rcx, gword ptr [rdi+08H]
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbolExtensions:AllowsExtensionMethods(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol):bool]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M41689_IG22
+       je       SHORT G_M41689_IG08
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rdi]
@@ -155,7 +155,7 @@ G_M41689_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M41689_IG22
+       je       SHORT G_M41689_IG08
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        call     [rbp+20H]<unknown method>
@@ -163,32 +163,32 @@ G_M41689_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi
        ; gcr arg pop 0
        cmp      dword ptr [rax+08H], 0
        jbe      G_M41689_IG26
-       mov      rbx, gword ptr [rax+10H]
-       ; gcrRegs +[rbx]
-       mov      rcx, rbx
+       mov      rbp, gword ptr [rax+10H]
+       ; gcrRegs +[rbp]
+       mov      rcx, rbp
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rbp]
        ; gcrRegs -[rax]
-       mov      rbp, qword ptr [rax+C0H]
-       call     [rbp+20H]<unknown method>
+       mov      r14, qword ptr [rax+C0H]
+       call     [r14+20H]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M41689_IG22
-       mov      rcx, rbx
+       jne      SHORT G_M41689_IG08
+       mov      rcx, rbp
        ; gcrRegs +[rcx]
-       call     [rbp+18H]<unknown method>
-       ; gcrRegs -[rcx rbx]
+       call     [r14+18H]<unknown method>
+       ; gcrRegs -[rcx rbp]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M41689_IG22
+       jne      SHORT G_M41689_IG08
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M41689_IG22
+       je       SHORT G_M41689_IG08
        mov      rcx, gword ptr [rdi+08H]
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
@@ -196,7 +196,10 @@ G_M41689_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi
        call     [rax+08H]<unknown method>
        ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
-       test     eax, eax
+       mov      ebx, eax
+						;; size=119 bbWeight=0.50 PerfScore 25.38
+G_M41689_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+       test     ebx, ebx
        je       G_M41689_IG22
        mov      rcx, gword ptr [rsi+08H]
        ; gcrRegs +[rcx]
@@ -204,10 +207,8 @@ G_M41689_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi
        ; gcrRegs +[rdx]
        mov      r8, gword ptr [rsi+10H]
        ; gcrRegs +[r8]
-       lea      r9, [rsp+60H]
+       lea      r9, [rsp+58H]
        cmp      dword ptr [rcx], ecx
-						;; size=161 bbWeight=0.50 PerfScore 30.62
-G_M41689_IG08:        ; bbWeight=0.50, extend
        call     [Microsoft.CodeAnalysis.VisualBasic.EarlyWellKnownAttributeBinder:GetAttribute(Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:this]
        ; gcrRegs -[rcx rdx r8] +[rax]
        ; gcr arg pop 0
@@ -224,11 +225,11 @@ G_M41689_IG08:        ; bbWeight=0.50, extend
        mov      byte  ptr [rax+20H], 1
        xor      r8, r8
        ; gcrRegs +[r8]
-       cmp      byte  ptr [rsp+60H], 0
+       cmp      byte  ptr [rsp+58H], 0
        cmovne   rbx, r8
        mov      rax, rbx
        jmp      G_M41689_IG23
-						;; size=62 bbWeight=0.50 PerfScore 8.25
+						;; size=89 bbWeight=0.50 PerfScore 13.62
 G_M41689_IG09:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rax rbx r8] +[rdi]
        ; byrRegs +[rsi]
@@ -242,10 +243,10 @@ G_M41689_IG09:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi
 						;; size=21 bbWeight=0.50 PerfScore 3.12
 G_M41689_IG10:        ; bbWeight=0.50, nogc, extend
        vmovdqu  ymm0, ymmword ptr [r8+08H]
-       vmovdqu  ymmword ptr [rsp+28H], ymm0
+       vmovdqu  ymmword ptr [rsp+20H], ymm0
 						;; size=12 bbWeight=0.50 PerfScore 3.00
 G_M41689_IG11:        ; bbWeight=0.50, isz, extend
-       lea      r8, [rsp+28H]
+       lea      r8, [rsp+20H]
        ; gcrRegs -[r8]
        call     [Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:IsTargetEarlyAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.AttributeDescription):bool]
        ; gcrRegs -[rcx rdx]
@@ -258,7 +259,7 @@ G_M41689_IG11:        ; bbWeight=0.50, isz, extend
        ; gcrRegs +[rdx]
        mov      r8, gword ptr [rsi+10H]
        ; gcrRegs +[r8]
-       lea      r9, [rsp+60H]
+       lea      r9, [rsp+58H]
        cmp      dword ptr [rcx], ecx
        call     [Microsoft.CodeAnalysis.VisualBasic.EarlyWellKnownAttributeBinder:GetAttribute(Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:this]
        ; gcrRegs -[rcx rdx rdi r8] +[rax]
@@ -339,8 +340,8 @@ G_M41689_IG16:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040
...
-4 (-1.82%) : 241658.dasm - Microsoft.Win32.RegistryKey:FixupPath(System.Text.StringBuilder)
@@ -29,15 +29,15 @@ G_M4277_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        mov      rsi, rcx
        ; gcrRegs +[rsi]
 						;; size=13 bbWeight=1 PerfScore 5.50
-G_M4277_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M4277_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      edi, dword ptr [rsi+1CH]
        add      edi, dword ptr [rsi+18H]
        xor      ebx, ebx
        mov      ebp, 1
        lea      r14d, [rdi-01H]
        cmp      r14d, 1
-       jle      G_M4277_IG16
-						;; size=27 bbWeight=1 PerfScore 7.25
+       jle      SHORT G_M4277_IG08
+						;; size=23 bbWeight=1 PerfScore 7.25
 G_M4277_IG03:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -155,7 +155,7 @@ G_M4277_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.88
 
-; Total bytes of code 220, prolog size 13, PerfScore 247.63, instruction count 81, allocated bytes for code 220 (MethodHash=acd9ef4a) for method Microsoft.Win32.RegistryKey:FixupPath(System.Text.StringBuilder)
+; Total bytes of code 216, prolog size 13, PerfScore 247.23, instruction count 81, allocated bytes for code 216 (MethodHash=acd9ef4a) for method Microsoft.Win32.RegistryKey:FixupPath(System.Text.StringBuilder)
 ; ============================================================
 
 Unwind Info:
+19 (+11.66%) : 280591.dasm - System.Reflection.TypeLoading.RoEvent:GetRoRemoveMethod():System.Reflection.TypeLoading.RoMethod:this
@@ -15,19 +15,20 @@
 ;  V05 tmp3         [V05,T05] (  3,  1.50)     ref  ->  rcx         single-def
 ;* V06 tmp4         [V06,T06] (  0,  0   )     ref  ->  zero-ref   
 ;  V07 tmp5         [V07,T03] (  4,  2   )     ref  ->  rdi        
-;  V08 tmp6         [V08,T08] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
+;  V08 tmp6         [V08,T08] (  4,  0   )    bool  ->  rbx         "Inline return value spill temp"
 ;  V09 tmp7         [V09,T01] (  4,  4   )     ref  ->  rdx         class-hnd single-def "Inlining Arg"
 ;  V10 tmp8         [V10,T02] (  6,  3   )     ref  ->  rdi         class-hnd single-def "Inlining Arg"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M5222_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
-       sub      rsp, 40
+       push     rbx
+       sub      rsp, 32
        mov      rsi, rcx
        ; gcrRegs +[rsi]
-						;; size=9 bbWeight=1 PerfScore 2.50
+						;; size=10 bbWeight=1 PerfScore 3.50
 G_M5222_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdi, gword ptr [rsi+30H]
        ; gcrRegs +[rdi]
@@ -52,11 +53,12 @@ G_M5222_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, b
        ; gcrRegs +[rax]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M5222_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
+       pop      rbx
        pop      rsi
        pop      rdi
        ret      
-						;; size=7 bbWeight=0.50 PerfScore 1.12
+						;; size=8 bbWeight=0.50 PerfScore 1.38
 G_M5222_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        mov      rcx, rsi
@@ -95,11 +97,12 @@ G_M5222_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {
        ; gcrRegs +[rax]
 						;; size=15 bbWeight=0.50 PerfScore 1.00
 G_M5222_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
+       pop      rbx
        pop      rsi
        pop      rdi
        ret      
-						;; size=7 bbWeight=0.50 PerfScore 1.12
+						;; size=8 bbWeight=0.50 PerfScore 1.38
 G_M5222_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rsi]
        mov      rcx, 0xD1FFAB1E
@@ -111,9 +114,13 @@ G_M5222_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C0 {r
 G_M5222_IG12:        ; bbWeight=0, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
        cmp      rdi, rdx
-       je       SHORT G_M5222_IG07
+       jne      SHORT G_M5222_IG13
+       mov      ebx, 1
+       jmp      SHORT G_M5222_IG15
+						;; size=12 bbWeight=0 PerfScore 0.00
+G_M5222_IG13:        ; bbWeight=0, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rdi, rdi
-       je       SHORT G_M5222_IG05
+       je       SHORT G_M5222_IG14
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rdi]
@@ -121,12 +128,19 @@ G_M5222_IG12:        ; bbWeight=0, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000
        call     [rax+10H]<unknown method>
        ; gcrRegs -[rcx rdx rdi]
        ; gcr arg pop 0
-       test     eax, eax
+       mov      ebx, eax
+       jmp      SHORT G_M5222_IG15
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M5222_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       xor      ebx, ebx
+						;; size=2 bbWeight=0 PerfScore 0.00
+G_M5222_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       test     ebx, ebx
        jne      SHORT G_M5222_IG07
-       jmp      SHORT G_M5222_IG05
-						;; size=29 bbWeight=0 PerfScore 0.00
+       jmp      G_M5222_IG05
+						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 163, prolog size 6, PerfScore 40.30, instruction count 52, allocated bytes for code 163 (MethodHash=f1c8eb99) for method System.Reflection.TypeLoading.RoEvent:GetRoRemoveMethod():System.Reflection.TypeLoading.RoMethod:this
+; Total bytes of code 182, prolog size 7, PerfScore 43.70, instruction count 60, allocated bytes for code 182 (MethodHash=f1c8eb99) for method System.Reflection.TypeLoading.RoEvent:GetRoRemoveMethod():System.Reflection.TypeLoading.RoMethod:this
 ; ============================================================
 
 Unwind Info:
@@ -134,11 +148,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 4
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+19 (+11.66%) : 280592.dasm - System.Reflection.TypeLoading.RoEvent:GetRoRaiseMethod():System.Reflection.TypeLoading.RoMethod:this
@@ -15,19 +15,20 @@
 ;  V05 tmp3         [V05,T05] (  3,  1.50)     ref  ->  rcx         single-def
 ;* V06 tmp4         [V06,T06] (  0,  0   )     ref  ->  zero-ref   
 ;  V07 tmp5         [V07,T03] (  4,  2   )     ref  ->  rdi        
-;  V08 tmp6         [V08,T08] (  2,  0   )    bool  ->  rax         "Inline return value spill temp"
+;  V08 tmp6         [V08,T08] (  4,  0   )    bool  ->  rbx         "Inline return value spill temp"
 ;  V09 tmp7         [V09,T01] (  4,  4   )     ref  ->  rdx         class-hnd single-def "Inlining Arg"
 ;  V10 tmp8         [V10,T02] (  6,  3   )     ref  ->  rdi         class-hnd single-def "Inlining Arg"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M53644_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
-       sub      rsp, 40
+       push     rbx
+       sub      rsp, 32
        mov      rsi, rcx
        ; gcrRegs +[rsi]
-						;; size=9 bbWeight=1 PerfScore 2.50
+						;; size=10 bbWeight=1 PerfScore 3.50
 G_M53644_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdi, gword ptr [rsi+38H]
        ; gcrRegs +[rdi]
@@ -52,11 +53,12 @@ G_M53644_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rax]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M53644_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
+       pop      rbx
        pop      rsi
        pop      rdi
        ret      
-						;; size=7 bbWeight=0.50 PerfScore 1.12
+						;; size=8 bbWeight=0.50 PerfScore 1.38
 G_M53644_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax]
        mov      rcx, rsi
@@ -95,11 +97,12 @@ G_M53644_IG09:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        ; gcrRegs +[rax]
 						;; size=15 bbWeight=0.50 PerfScore 1.00
 G_M53644_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
+       pop      rbx
        pop      rsi
        pop      rdi
        ret      
-						;; size=7 bbWeight=0.50 PerfScore 1.12
+						;; size=8 bbWeight=0.50 PerfScore 1.38
 G_M53644_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rsi]
        mov      rcx, 0xD1FFAB1E
@@ -111,9 +114,13 @@ G_M53644_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C0 {
 G_M53644_IG12:        ; bbWeight=0, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
        cmp      rdi, rdx
-       je       SHORT G_M53644_IG07
+       jne      SHORT G_M53644_IG13
+       mov      ebx, 1
+       jmp      SHORT G_M53644_IG15
+						;; size=12 bbWeight=0 PerfScore 0.00
+G_M53644_IG13:        ; bbWeight=0, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rdi, rdi
-       je       SHORT G_M53644_IG05
+       je       SHORT G_M53644_IG14
        mov      rcx, rdi
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rdi]
@@ -121,12 +128,19 @@ G_M53644_IG12:        ; bbWeight=0, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000
        call     [rax+10H]<unknown method>
        ; gcrRegs -[rcx rdx rdi]
        ; gcr arg pop 0
-       test     eax, eax
+       mov      ebx, eax
+       jmp      SHORT G_M53644_IG15
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M53644_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       xor      ebx, ebx
+						;; size=2 bbWeight=0 PerfScore 0.00
+G_M53644_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       test     ebx, ebx
        jne      SHORT G_M53644_IG07
-       jmp      SHORT G_M53644_IG05
-						;; size=29 bbWeight=0 PerfScore 0.00
+       jmp      G_M53644_IG05
+						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 163, prolog size 6, PerfScore 40.30, instruction count 52, allocated bytes for code 163 (MethodHash=0d002e73) for method System.Reflection.TypeLoading.RoEvent:GetRoRaiseMethod():System.Reflection.TypeLoading.RoMethod:this
+; Total bytes of code 182, prolog size 7, PerfScore 43.70, instruction count 60, allocated bytes for code 182 (MethodHash=0d002e73) for method System.Reflection.TypeLoading.RoEvent:GetRoRaiseMethod():System.Reflection.TypeLoading.RoMethod:this
 ; ============================================================
 
 Unwind Info:
@@ -134,11 +148,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 4
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+40 (+11.73%) : 53.dasm - System.Text.RegularExpressions.RegexCache:Get(System.Text.RegularExpressions.RegexCache+Key):System.Text.RegularExpressions.Regex
@@ -9,24 +9,24 @@
 ;
 ;  V00 arg0         [V00,T00] (  7,  9   )   byref  ->  rsi         ld-addr-op single-def
 ;  V01 loc0         [V01,T06] (  3,  2   )    long  ->  rdi        
-;  V02 loc1         [V02,T03] (  8,  5   )     ref  ->  rbx         class-hnd single-def
-;  V03 loc2         [V03    ] (  4,  2   )     ref  ->  [rsp+28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
+;  V02 loc1         [V02,T01] (  8,  5   )     ref  ->  rbx         class-hnd single-def
+;  V03 loc2         [V03    ] (  4,  2   )     ref  ->  [rsp+20H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05,T18] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
+;* V05 tmp1         [V05,T16] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (32) zero-ref    "Inlining Arg"
-;  V07 tmp3         [V07,T10] (  2,  1   )    bool  ->  rax         "Inline return value spill temp"
-;  V08 tmp4         [V08,T01] (  6,  5.36)     ref  ->   r8         class-hnd single-def "Inlining Arg"
-;  V09 tmp5         [V09,T04] (  5,  3.72)     ref  ->  rdx         class-hnd single-def "Inlining Arg"
-;  V10 tmp6         [V10,T07] (  2,  2   )   byref  ->  rcx         single-def "impAppendStmt"
+;  V07 tmp3         [V07,T14] (  3,  0.60)    bool  ->  rax         "Inline return value spill temp"
+;  V08 tmp4         [V08,T02] (  6,  3.76)     ref  ->   r8         class-hnd single-def "Inlining Arg"
+;  V09 tmp5         [V09,T04] (  5,  2.92)     ref  ->  rdx         class-hnd single-def "Inlining Arg"
+;  V10 tmp6         [V10,T17] (  2,  0.40)   byref  ->  rcx         single-def "impAppendStmt"
 ;* V11 tmp7         [V11    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp10        [V14    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp11        [V15    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
-;  V16 tmp12        [V16,T11] (  2,  1   )    bool  ->  rax         "Inline return value spill temp"
-;  V17 tmp13        [V17,T02] (  6,  5.36)     ref  ->   r8         class-hnd single-def "Inlining Arg"
-;  V18 tmp14        [V18,T05] (  5,  3.72)     ref  ->  rdx         class-hnd single-def "Inlining Arg"
-;  V19 tmp15        [V19,T08] (  2,  2   )   byref  ->  rcx         single-def "impAppendStmt"
+;  V16 tmp12        [V16,T15] (  3,  0.60)    bool  ->  rax         "Inline return value spill temp"
+;  V17 tmp13        [V17,T03] (  6,  3.76)     ref  ->   r8         class-hnd single-def "Inlining Arg"
+;  V18 tmp14        [V18,T05] (  5,  2.92)     ref  ->  rdx         class-hnd single-def "Inlining Arg"
+;  V19 tmp15        [V19,T18] (  2,  0.40)   byref  ->  rcx         single-def "impAppendStmt"
 ;* V20 tmp16        [V20    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
@@ -41,64 +41,65 @@
 ;* V31 tmp27        [V31    ] (  0,  0   )     ref  ->  zero-ref    V40._culture(offs=0x08) P-INDEP "field V00._culture (fldOffset=0x8)"
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    V40._options(offs=0x10) P-INDEP "field V00._options (fldOffset=0x10)"
 ;* V33 tmp29        [V33    ] (  0,  0   )    long  ->  zero-ref    V40._matchTimeout(offs=0x18) P-INDEP "field V00._matchTimeout (fldOffset=0x18)"
-;  V34 tmp30        [V34,T12] (  2,  1   )     ref  ->  rdx         single-def V06._pattern(offs=0x00) P-INDEP "field V06._pattern (fldOffset=0x0)"
-;  V35 tmp31        [V35,T13] (  2,  1   )     ref  ->  rdi         single-def V06._culture(offs=0x08) P-INDEP "field V06._culture (fldOffset=0x8)"
-;  V36 tmp32        [V36,T14] (  2,  1   )     int  ->  rbp         V06._options(offs=0x10) P-INDEP "field V06._options (fldOffset=0x10)"
-;  V37 tmp33        [V37,T15] (  2,  1   )    long  ->  r14         V06._matchTimeout(offs=0x18) P-INDEP "field V06._matchTimeout (fldOffset=0x18)"
-;  V38 tmp34        [V38,T16] (  2,  1   )    long  ->  rax         V25._ticks(offs=0x00) P-INDEP "field V25._ticks (fldOffset=0x0)"
+;  V34 tmp30        [V34,T08] (  2,  1   )     ref  ->  rdx         single-def V06._pattern(offs=0x00) P-INDEP "field V06._pattern (fldOffset=0x0)"
+;  V35 tmp31        [V35,T09] (  2,  1   )     ref  ->  rbp         single-def V06._culture(offs=0x08) P-INDEP "field V06._culture (fldOffset=0x8)"
+;  V36 tmp32        [V36,T10] (  2,  1   )     int  ->  r14         V06._options(offs=0x10) P-INDEP "field V06._options (fldOffset=0x10)"
+;  V37 tmp33        [V37,T11] (  2,  1   )    long  ->  r15         V06._matchTimeout(offs=0x18) P-INDEP "field V06._matchTimeout (fldOffset=0x18)"
+;  V38 tmp34        [V38,T12] (  2,  1   )    long  ->  rax         V25._ticks(offs=0x00) P-INDEP "field V25._ticks (fldOffset=0x0)"
 ;* V39 tmp35        [V39    ] (  0,  0   )    long  ->  zero-ref    V26._ticks(offs=0x00) P-INDEP "field V26._ticks (fldOffset=0x0)"
 ;* V40 tmp36        [V40    ] (  0,  0   )  struct (32) zero-ref    "Promoted implicit byref"
-;  V41 tmp37        [V41,T09] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;* V42 cse0         [V42,T17] (  0,  0   )    long  ->  zero-ref    "CSE - aggressive"
+;  V41 tmp37        [V41,T07] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;* V42 cse0         [V42,T13] (  0,  0   )    long  ->  zero-ref    "CSE - aggressive"
 ;* V43 cse1         [V43    ] (  0,  0   )     ref  ->  zero-ref    "CSE - conservative"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M3825_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        xor      eax, eax
-       mov      qword ptr [rsp+28H], rax
+       mov      qword ptr [rsp+20H], rax
        mov      rsi, rcx
        ; byrRegs +[rsi]
-						;; size=20 bbWeight=1 PerfScore 6.75
+						;; size=22 bbWeight=1 PerfScore 7.75
 G_M3825_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
        xor      edi, edi
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       G_M3825_IG18
+       je       G_M3825_IG20
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M3825_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
        mov      r8, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rbx, gword ptr [r8]
        ; gcrRegs +[rbx]
        test     rbx, rbx
-       je       G_M3825_IG12
+       je       G_M3825_IG14
 						;; size=22 bbWeight=1 PerfScore 3.50
 G_M3825_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        mov      rdx, gword ptr [rbx+18H]
        ; gcrRegs +[rdx]
-       mov      rdi, gword ptr [rbx+20H]
-       ; gcrRegs +[rdi]
-       mov      ebp, dword ptr [rbx+28H]
-       mov      r14, qword ptr [rbx+30H]
+       mov      rbp, gword ptr [rbx+20H]
+       ; gcrRegs +[rbp]
+       mov      r14d, dword ptr [rbx+28H]
+       mov      r15, qword ptr [rbx+30H]
        mov      r8, gword ptr [rsi]
        ; gcrRegs +[r8]
        cmp      byte  ptr [r8], r8b
        cmp      r8, rdx
-       je       SHORT G_M3825_IG07
-						;; size=26 bbWeight=0.50 PerfScore 7.12
-G_M3825_IG05:        ; bbWeight=0.18, gcrefRegs=018C {rdx rbx rdi r8}, byrefRegs=0040 {rsi}, byref, isz
+       je       SHORT G_M3825_IG08
+						;; size=27 bbWeight=0.50 PerfScore 7.12
+G_M3825_IG05:        ; bbWeight=0.18, gcrefRegs=012C {rdx rbx rbp r8}, byrefRegs=0040 {rsi}, byref
        test     rdx, rdx
-       je       SHORT G_M3825_IG11
+       je       G_M3825_IG21
        mov      ecx, dword ptr [r8+08H]
        cmp      ecx, dword ptr [rdx+08H]
-       jne      SHORT G_M3825_IG11
-						;; size=14 bbWeight=0.18 PerfScore 1.31
-G_M3825_IG06:        ; bbWeight=0.50, gcrefRegs=018C {rdx rbx rdi r8}, byrefRegs=0040 {rsi}, byref, isz
+       jne      G_M3825_IG21
+						;; size=22 bbWeight=0.18 PerfScore 1.31
+G_M3825_IG06:        ; bbWeight=0.10, gcrefRegs=012C {rdx rbx rbp r8}, byrefRegs=0040 {rsi}, byref
        lea      rcx, bword ptr [r8+0CH]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [r8+08H]
@@ -110,27 +111,29 @@ G_M3825_IG06:        ; bbWeight=0.50, gcrefRegs=018C {rdx rbx rdi r8}, byrefRegs
        call     [<unknown method>]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
+						;; size=21 bbWeight=0.10 PerfScore 0.60
+G_M3825_IG07:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref, isz
        test     eax, eax
-       je       SHORT G_M3825_IG11
-						;; size=25 bbWeight=0.50 PerfScore 3.62
-G_M3825_IG07:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040 {rsi}, byref, isz
+       je       SHORT G_M3825_IG13
+						;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M3825_IG08:        ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0040 {rsi}, byref, isz
        mov      r8, gword ptr [rsi+08H]
        ; gcrRegs +[r8]
-       mov      rdx, rdi
+       mov      rdx, rbp
        ; gcrRegs +[rdx]
        cmp      byte  ptr [r8], r8b
        cmp      r8, rdx
-       je       SHORT G_M3825_IG10
+       je       SHORT G_M3825_IG12
 						;; size=15 bbWeight=0.50 PerfScore 3.25
-G_M3825_IG08:        ; bbWeight=0.18, gcrefRegs=010C {rdx rbx r8}, byrefRegs=0040 {rsi}, byref, isz
-       ; gcrRegs -[rdi]
+G_M3825_IG09:        ; bbWeight=0.18, gcrefRegs=010C {rdx rbx r8}, byrefRegs=0040 {rsi}, byref
+       ; gcrRegs -[rbp]
        test     rdx, rdx
-       je       SHORT G_M3825_IG11
+       je       G_M3825_IG22
        mov      ecx, dword ptr [r8+08H]
        cmp      ecx, dword ptr [rdx+08H]
-       jne      SHORT G_M3825_IG11
-						;; size=14 bbWeight=0.18 PerfScore 1.31
-G_M3825_IG09:        ; bbWeight=0.50, gcrefRegs=010C {rdx rbx r8}, byrefRegs=0040 {rsi}, byref, isz
+       jne      G_M3825_IG22
+						;; size=22 bbWeight=0.18 PerfScore 1.31
+G_M3825_IG10:        ; bbWeight=0.10, gcrefRegs=010C {rdx rbx r8}, byrefRegs=0040 {rsi}, byref
        lea      rcx, bword ptr [r8+0CH]
        ; byrRegs +[rcx]
        mov      r8d, dword ptr [r8+08H]
@@ -142,27 +145,29 @@ G_M3825_IG09:        ; bbWeight=0.50, gcrefRegs=010C {rdx rbx r8}, byrefRegs=004
        call     [<unknown method>]
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
+						;; size=21 bbWeight=0.10 PerfScore 0.60
+G_M3825_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        test     eax, eax
-       je       SHORT G_M3825_IG11
-						;; size=25 bbWeight=0.50 PerfScore 3.62
-G_M3825_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
-       cmp      dword ptr [rsi+10H], ebp
-       jne      SHORT G_M3825_IG11
+       je       SHORT G_M3825_IG13
+						;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M3825_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       cmp      dword ptr [rsi+10H], r14d
+       jne      SHORT G_M3825_IG13
        mov      rax, qword ptr [rsi+18H]
-       cmp      rax, r14
-       je       SHORT G_M3825_IG14
-						;; size=14 bbWeight=0.50 PerfScore 3.62
-G_M3825_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
+       cmp      rax, r15
+       je       SHORT G_M3825_IG16
+						;; size=15 bbWeight=0.50 PerfScore 3.62
+G_M3825_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        mov      rdi, qword ptr [rbx+10H]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M3825_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+G_M3825_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[rbx]
        cmp      dword ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
-       je       SHORT G_M3825_IG16
+       je       SHORT G_M3825_IG18
        mov      rcx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       lea      r8, [rsp+28H]
+       lea      r8, [rsp+20H]
        mov      rdx, rsi
        ; byrRegs +[rdx]
        cmp      dword ptr [rcx], ecx
@@ -171,57 +176,60 @@ G_M3825_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, b
        ; byrRegs -[rdx rsi]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M3825_IG16
-       mov      rdx, gword ptr [rsp+28H]
+       je       SHORT G_M3825_IG18
+       mov      rdx, gword ptr [rsp+20H]
        ; gcrRegs +[rdx]
        inc      rdi
        mov      qword ptr [rdx+10H], rdi
-       mov      rdx, gword ptr [rsp+28H]
+       mov      rdx, gword ptr [rsp+20H]
        mov      rcx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rdx]
-       mov      rax, gword ptr [rsp+28H]
+       mov      rax, gword ptr [rsp+20H]
        ; gcrRegs +[rax]
        mov      rax, gword ptr [rax+08H]
 						;; size=83 bbWeight=0.50 PerfScore 10.88
-G_M3825_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 48
+G_M3825_IG15:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M3825_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+						;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M3825_IG16:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[rbx]
        mov      rax, gword ptr [rbx+08H]
        ; gcrRegs +[rax]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M3825_IG15:        ; bbWeight=0.50, epilog, nogc, extend
...
libraries_tests.pmi.windows.x64.checked.mch
-12 (-1.06%) : 111526.dasm - System.Xml.XmlConvertTests.VerifyNameTests1:v2():int:this
@@ -8,25 +8,25 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T26] (  3,  3   )     ref  ->  rcx         this class-hnd single-def
-;  V01 loc0         [V01,T16] (  3, 12   )     int  ->  [rbp-0CH]   EH-live spill-single-def
-;  V02 loc1         [V02,T04] (  6, 33   )     int  ->  [rbp-10H]   do-not-enreg[Z] EH-live
-;  V03 loc2         [V03,T00] ( 14, 56   )  ushort  ->  [rbp-14H]   do-not-enreg[Z] EH-live
-;  V04 loc3         [V04,T03] ( 13, 42.01)     ref  ->  [rbp-40H]   do-not-enreg[Z] class-hnd EH-live
-;  V05 loc4         [V05,T05] (  8, 32   )     ref  ->  [rbp-48H]   do-not-enreg[Z] class-hnd EH-live
-;  V06 loc5         [V06,T19] (  3,  8   )    bool  ->  [rbp-18H]   do-not-enreg[Z] EH-live
-;  V07 loc6         [V07,T01] ( 10, 40   )    bool  ->  rdx        
+;  V01 loc0         [V01,T16] (  3, 12   )     int  ->  [rbp-14H]   EH-live spill-single-def
+;  V02 loc1         [V02,T04] (  6, 33   )     int  ->  [rbp-18H]   do-not-enreg[Z] EH-live
+;  V03 loc2         [V03,T00] ( 14, 56   )  ushort  ->  [rbp-1CH]   do-not-enreg[Z] EH-live
+;  V04 loc3         [V04,T03] ( 13, 42.01)     ref  ->  [rbp-48H]   do-not-enreg[Z] class-hnd EH-live
+;  V05 loc4         [V05,T05] (  8, 32   )     ref  ->  [rbp-50H]   do-not-enreg[Z] class-hnd EH-live
+;  V06 loc5         [V06,T19] (  3,  8   )    bool  ->  [rbp-20H]   do-not-enreg[Z] EH-live
+;  V07 loc6         [V07,T01] ( 11, 48   )    bool  ->  rsi        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T23] (  4,  7   )     ref  ->  rsi         single-def "inline UNBOX clone1"
 ;  V10 tmp2         [V10,T06] (  3, 24   )     ref  ->  rax         class-hnd exact "Single-def Box Helper"
 ;  V11 tmp3         [V11,T07] (  3, 24   )     ref  ->  rax         class-hnd exact "Single-def Box Helper"
-;  V12 tmp4         [V12,T17] (  3, 12   )     int  ->  rdx        
+;  V12 tmp4         [V12,T17] (  3, 12   )     int  ->  rax        
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff"
 ;* V14 tmp6         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
-;  V15 tmp7         [V15    ] (  2, 16   )     ref  ->  [rbp-20H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg"
+;  V15 tmp7         [V15    ] (  2, 16   )     ref  ->  [rbp-28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg"
 ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V17 tmp9         [V17,T20] (  3,  8   )     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp10        [V18,T27] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
-;  V19 tmp11        [V19    ] (  2, 16   )     ref  ->  [rbp-28H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg"
+;  V19 tmp11        [V19    ] (  2, 16   )     ref  ->  [rbp-30H]   do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg"
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V21 tmp13        [V21,T21] (  2,  8   )   byref  ->   r8         V16._reference(offs=0x00) P-INDEP "field V16._reference (fldOffset=0x0)"
 ;* V22 tmp14        [V22,T28] (  0,  0   )     int  ->  zero-ref    V16._length(offs=0x08) P-INDEP "field V16._length (fldOffset=0x8)"
@@ -34,34 +34,33 @@
 ;* V24 tmp16        [V24,T29] (  0,  0   )     int  ->  zero-ref    V20._length(offs=0x08) P-INDEP "field V20._length (fldOffset=0x8)"
 ;  V25 tmp17        [V25,T24] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
 ;  V26 tmp18        [V26,T25] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
-;  V27 tmp19        [V27    ] (  6, 48   )  struct (16) [rbp-38H]   do-not-enreg[XSF] must-init addr-exposed "by-value struct argument"
+;  V27 tmp19        [V27    ] (  6, 48   )  struct (16) [rbp-40H]   do-not-enreg[XSF] must-init addr-exposed "by-value struct argument"
 ;  V28 tmp20        [V28,T31] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V29 tmp21        [V29,T08] (  3, 24   )     ref  ->  rdx         "arr expr"
-;  V30 tmp22        [V30,T09] (  3, 24   )     ref  ->  rdx         "arr expr"
-;  V31 tmp23        [V31,T10] (  3, 24   )     ref  ->  rdx         "arr expr"
-;  V32 tmp24        [V32,T11] (  3, 24   )     ref  ->  rdx         "arr expr"
-;  V33 tmp25        [V33,T12] (  3, 24   )     ref  ->  rdx         "arr expr"
+;  V29 tmp21        [V29,T08] (  3, 24   )     ref  ->  rax         "arr expr"
+;  V30 tmp22        [V30,T09] (  3, 24   )     ref  ->  rax         "arr expr"
+;  V31 tmp23        [V31,T10] (  3, 24   )     ref  ->  rax         "arr expr"
+;  V32 tmp24        [V32,T11] (  3, 24   )     ref  ->  rax         "arr expr"
+;  V33 tmp25        [V33,T12] (  3, 24   )     ref  ->  rax         "arr expr"
 ;  V34 tmp26        [V34,T14] (  2, 16   )     ref  ->  rdx         "argument with side effect"
 ;  V35 tmp27        [V35,T15] (  2, 16   )     int  ->  rsi         "argument with side effect"
-;  V36 PSPSym       [V36,T30] (  1,  1   )    long  ->  [rbp-50H]   do-not-enreg[V] "PSPSym"
+;  V36 PSPSym       [V36,T30] (  1,  1   )    long  ->  [rbp-60H]   do-not-enreg[V] "PSPSym"
 ;  V37 cse0         [V37,T18] (  3,  8.02)     int  ->  rsi         "CSE - moderate"
 ;  V38 rat0         [V38,T13] (  3, 24   )     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
-;  V39 rat1         [V39,T02] (  3, 48   )     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
+;  V39 rat1         [V39,T02] (  3, 48   )     int  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 104
+; Lcl frame size = 112
 
 G_M19725_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
+       push     rdi
        push     rsi
-       sub      rsp, 104
-       lea      rbp, [rsp+70H]
-       xor      eax, eax
-       mov      qword ptr [rbp-38H], rax
+       sub      rsp, 112
+       lea      rbp, [rsp+80H]
        vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rbp-40H], xmm4
        vmovdqa  xmmword ptr [rbp-30H], xmm4
-       mov      qword ptr [rbp-20H], rax
-       mov      qword ptr [rbp-50H], rsp
-						;; size=34 bbWeight=1 PerfScore 8.33
+       mov      qword ptr [rbp-60H], rsp
+						;; size=33 bbWeight=1 PerfScore 9.08
 G_M19725_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        mov      rcx, gword ptr [rcx+20H]
@@ -95,28 +94,28 @@ G_M19725_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
 						;; size=19 bbWeight=0.50 PerfScore 1.75
 G_M19725_IG04:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      ecx, dword ptr [rsi+08H]
-       mov      dword ptr [rbp-0CH], ecx
+       mov      dword ptr [rbp-14H], ecx
        xor      eax, eax
-       mov      dword ptr [rbp-10H], eax
+       mov      dword ptr [rbp-18H], eax
 						;; size=11 bbWeight=1 PerfScore 4.25
 G_M19725_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
-       cmp      dword ptr [rbp-10H], 0xFFFF
+       cmp      dword ptr [rbp-18H], 0xFFFF
        ja       G_M19725_IG37
-       movzx    rax, word  ptr [rbp-10H]
-       mov      dword ptr [rbp-14H], eax
+       movzx    rax, word  ptr [rbp-18H]
+       mov      dword ptr [rbp-1CH], eax
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r8d, dword ptr [rbp-14H]
+       mov      r8d, dword ptr [rbp-1CH]
        mov      word  ptr [rax+08H], r8w
-       mov      gword ptr [rbp-20H], rax
-       lea      r8, bword ptr [rbp-20H]
+       mov      gword ptr [rbp-28H], rax
+       lea      r8, bword ptr [rbp-28H]
        ; byrRegs +[r8]
-       mov      bword ptr [rbp-38H], r8
-       mov      dword ptr [rbp-30H], 1
-       lea      r8, [rbp-38H]
+       mov      bword ptr [rbp-40H], r8
+       mov      dword ptr [rbp-38H], 1
+       lea      r8, [rbp-40H]
        ; byrRegs -[r8]
        xor      rcx, rcx
        ; gcrRegs +[rcx]
@@ -125,19 +124,19 @@ G_M19725_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-40H], rax
+       mov      gword ptr [rbp-48H], rax
        ; GC ptr vars +{V04}
        xor      rcx, rcx
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-48H], rcx
+       mov      gword ptr [rbp-50H], rcx
        ; GC ptr vars +{V05}
 						;; size=95 bbWeight=4 PerfScore 72.00
 G_M19725_IG06:        ; bbWeight=4, gcVars=0000000000000028 {V04 V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rcx]
-       mov      dword ptr [rbp-18H], ecx
+       mov      dword ptr [rbp-20H], ecx
 						;; size=3 bbWeight=4 PerfScore 4.00
 G_M19725_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      ecx, dword ptr [rbp-0CH]
+       mov      ecx, dword ptr [rbp-14H]
        lea      edx, [rcx-01H]
        cmp      edx, 6
        ja       G_M19725_IG18
@@ -148,32 +147,32 @@ G_M19725_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        jmp      rax
 						;; size=37 bbWeight=4 PerfScore 34.00
 G_M19725_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
        mov      edx, 1
        call     [System.Xml.XmlConvert:VerifyNMTOKEN(System.String,int):System.String]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-48H], rax
+       mov      gword ptr [rbp-50H], rax
        jmp      G_M19725_IG18
 						;; size=24 bbWeight=4 PerfScore 29.00
 G_M19725_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
        call     [System.Xml.XmlConvert:VerifyName(System.String):System.String]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-48H], rax
+       mov      gword ptr [rbp-50H], rax
        jmp      G_M19725_IG18
 						;; size=19 bbWeight=4 PerfScore 28.00
 G_M19725_IG10:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      gword ptr [rbp-40H], 0
+       cmp      gword ptr [rbp-48H], 0
        je       SHORT G_M19725_IG15
 						;; size=7 bbWeight=4 PerfScore 12.00
 G_M19725_IG11:        ; bbWeight=2.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rdx, gword ptr [rbp-40H]
+       mov      rdx, gword ptr [rbp-48H]
        ; gcrRegs +[rdx]
        mov      esi, dword ptr [rdx+08H]
        test     esi, esi
@@ -181,7 +180,7 @@ G_M19725_IG11:        ; bbWeight=2.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 						;; size=11 bbWeight=2.01 PerfScore 8.54
 G_M19725_IG12:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
        xor      edx, edx
        call     [System.Xml.ValidateNames:ParseNCName(System.String,int):int]
@@ -189,29 +188,29 @@ G_M19725_IG12:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcr arg pop 0
        cmp      esi, eax
        jne      SHORT G_M19725_IG16
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-48H], rcx
+       mov      gword ptr [rbp-50H], rcx
        jmp      SHORT G_M19725_IG18
 						;; size=26 bbWeight=4 PerfScore 38.00
 G_M19725_IG13:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
        call     [System.Xml.XmlConvert:VerifyXmlChars(System.String):System.String]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-48H], rax
+       mov      gword ptr [rbp-50H], rax
        jmp      SHORT G_M19725_IG18
 						;; size=16 bbWeight=4 PerfScore 28.00
 G_M19725_IG14:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
        call     [System.Xml.XmlConvert:VerifyPublicId(System.String):System.String]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-48H], rax
+       mov      gword ptr [rbp-50H], rax
        jmp      SHORT G_M19725_IG18
 						;; size=16 bbWeight=4 PerfScore 28.00
 G_M19725_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -223,7 +222,7 @@ G_M19725_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
        call     [System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)]
        ; gcrRegs -[rax rcx rdx]
@@ -231,7 +230,7 @@ G_M19725_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=34 bbWeight=0 PerfScore 0.00
 G_M19725_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, gword ptr [rbp-40H]
+       mov      rcx, gword ptr [rbp-48H]
        ; gcrRegs +[rcx]
...
-17 (-1.01%) : 115.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Text.RegularExpressions.RegexCache+Key,System.__Canon],System.Text.RegularExpressions.RegexCache+Key,System.Nullable`1[int],System.__Canon,bool,bool,byref):bool:this
@@ -7,34 +7,34 @@
 ; 3 inlinees with PGO data; 28 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T25] (  8, 17   )     ref  ->  [rbp+10H]   this class-hnd EH-live single-def
-;  V01 arg1         [V01,T23] ( 11, 29   )     ref  ->  [rbp+18H]   do-not-enreg[Z] class-hnd EH-live
-;  V02 arg2         [V02,T35] (  6, 12   )   byref  ->   r8         single-def
+;  V00 this         [V00,T23] (  8, 17   )     ref  ->  [rbp+10H]   this class-hnd EH-live single-def
+;  V01 arg1         [V01,T19] ( 11, 29   )     ref  ->  [rbp+18H]   do-not-enreg[Z] class-hnd EH-live
+;  V02 arg2         [V02,T33] (  6, 12   )   byref  ->   r8         single-def
 ;  V03 arg3         [V03,T47] (  4,  4   )  struct ( 8) [rbp+28H]   do-not-enreg[SF] single-def
 ;  V04 arg4         [V04,T42] (  4, 10   )     ref  ->  [rbp+30H]   class-hnd EH-live single-def
 ;  V05 arg5         [V05,T61] (  1,  4   )    bool  ->  [rbp+38H]   do-not-enreg[H] EH-live single-def
 ;  V06 arg6         [V06,T62] (  1,  4   )    bool  ->  [rbp+40H]   do-not-enreg[H] EH-live single-def
 ;  V07 arg7         [V07,T44] (  3,  9   )   byref  ->  [rbp+48H]   EH-live single-def
-;  V08 loc0         [V08,T10] (  9, 51   )     ref  ->  [rbp-B8H]   do-not-enreg[Z] must-init class-hnd EH-live
-;  V09 loc1         [V09,T15] (  5, 42   )     int  ->  [rbp-44H]   do-not-enreg[Z] EH-live
+;  V08 loc0         [V08,T08] (  9, 51   )     ref  ->  [rbp-B8H]   do-not-enreg[Z] must-init class-hnd EH-live
+;  V09 loc1         [V09,T11] (  5, 42   )     int  ->  [rbp-44H]   do-not-enreg[Z] EH-live
 ;* V10 loc2         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op
-;  V11 loc3         [V11,T29] (  7, 16   )     ref  ->  [rbp-C0H]   do-not-enreg[Z] class-hnd EH-live
+;  V11 loc3         [V11,T27] (  7, 16   )     ref  ->  [rbp-C0H]   do-not-enreg[Z] class-hnd EH-live
 ;  V12 loc4         [V12,T43] (  4, 10   )   byref  ->  rsi        
-;  V13 loc5         [V13,T26] ( 10, 19   )     int  ->  [rbp-48H]   do-not-enreg[Z] ld-addr-op EH-live
+;  V13 loc5         [V13,T24] ( 10, 19   )     int  ->  [rbp-48H]   do-not-enreg[Z] ld-addr-op EH-live
 ;  V14 loc6         [V14,T45] (  5,  8   )    bool  ->  rdi        
 ;* V15 loc7         [V15,T63] (  0,  0   )    bool  ->  zero-ref   
 ;  V16 loc8         [V16    ] (  6, 18   )    bool  ->  [rbp-50H]   do-not-enreg[X] addr-exposed ld-addr-op
 ;* V17 loc9         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 loc10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd
 ;* V19 loc11        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def
-;  V20 loc12        [V20,T02] ( 13,224   )     ref  ->  r14         class-hnd
+;  V20 loc12        [V20,T00] ( 13,224   )     ref  ->  r14         class-hnd
 ;* V21 loc13        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd
 ;  V22 loc14        [V22,T52] (  2,  5   )    bool  ->  [rbp-54H]   do-not-enreg[Z] EH-live
 ;  V23 OutArgs      [V23    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V24 tmp1         [V24,T66] (  3,  3   )     int  ->  registers  
 ;* V25 tmp2         [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V26 tmp3         [V26    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V27 tmp4         [V27,T27] (  9, 18   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp"
+;  V27 tmp4         [V27,T25] (  9, 18   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp"
 ;* V28 tmp5         [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V29 tmp6         [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V30 tmp7         [V30,T48] (  3,  6   )   byref  ->  rcx         single-def "dup spill"
@@ -47,30 +47,30 @@
 ;* V37 tmp14        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp15        [V38    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp16        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V40 tmp17        [V40,T30] (  4, 16   )     int  ->  r10         "Inline stloc first use temp"
-;  V41 tmp18        [V41,T32] (  2, 16   )     ref  ->  rcx         class-hnd "Inlining Arg"
-;  V42 tmp19        [V42,T34] (  2, 16   )    bool  ->  rcx         "Inlining Arg"
+;  V40 tmp17        [V40,T28] (  4, 16   )     int  ->  r10         "Inline stloc first use temp"
+;  V41 tmp18        [V41,T30] (  2, 16   )     ref  ->  rcx         class-hnd "Inlining Arg"
+;  V42 tmp19        [V42,T32] (  2, 16   )    bool  ->  rcx         "Inlining Arg"
 ;  V43 tmp20        [V43,T39] (  3, 12   )     int  ->  rax         "Inline return value spill temp"
 ;* V44 tmp21        [V44    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "Inlining Arg"
 ;* V45 tmp22        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V46 tmp23        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
-;  V47 tmp24        [V47,T11] (  3, 48   )    bool  ->  rax         "Inline return value spill temp"
+;  V47 tmp24        [V47,T09] (  3, 48   )    bool  ->  rax         "Inline return value spill temp"
 ;* V48 tmp25        [V48    ] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
 ;* V49 tmp26        [V49    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "Inlining Arg"
-;  V50 tmp27        [V50,T12] (  3, 48   )    bool  ->  rax         "Inline return value spill temp"
-;  V51 tmp28        [V51,T13] (  2, 32   )    bool  ->  rax         "Inline return value spill temp"
-;  V52 tmp29        [V52,T00] (  7,259.04)     ref  ->  r12         class-hnd "Inlining Arg"
+;  V50 tmp27        [V50,T10] (  3, 48   )    bool  ->  rax         "Inline return value spill temp"
+;  V51 tmp28        [V51,T20] (  3, 19.22)    bool  ->  rax         "Inline return value spill temp"
+;  V52 tmp29        [V52,T01] (  7,207.92)     ref  ->  r12         class-hnd "Inlining Arg"
 ;  V53 tmp30        [V53,T05] (  2, 64   )     ref  ->  rax         class-hnd "Inlining Arg"
-;  V54 tmp31        [V54,T06] (  2, 64   )   byref  ->  rcx         "impAppendStmt"
+;  V54 tmp31        [V54,T34] (  2, 12.88)   byref  ->  rcx         "impAppendStmt"
 ;* V55 tmp32        [V55    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V56 tmp33        [V56    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp34        [V57    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V58 tmp35        [V58    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V59 tmp36        [V59    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
-;  V60 tmp37        [V60,T14] (  2, 32   )    bool  ->  rax         "Inline return value spill temp"
-;  V61 tmp38        [V61,T01] (  7,259.04)     ref  ->  r13         class-hnd "Inlining Arg"
-;  V62 tmp39        [V62,T07] (  2, 64   )     ref  ->  rcx         class-hnd "Inlining Arg"
-;  V63 tmp40        [V63,T08] (  2, 64   )   byref  ->  rcx         "impAppendStmt"
+;  V60 tmp37        [V60,T21] (  3, 19.22)    bool  ->  rax         "Inline return value spill temp"
+;  V61 tmp38        [V61,T02] (  7,207.92)     ref  ->  r13         class-hnd "Inlining Arg"
+;  V62 tmp39        [V62,T06] (  2, 64   )     ref  ->  rcx         class-hnd "Inlining Arg"
+;  V63 tmp40        [V63,T35] (  2, 12.88)   byref  ->  rcx         "impAppendStmt"
 ;* V64 tmp41        [V64    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp42        [V65    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
 ;* V66 tmp43        [V66    ] (  0,  0   )    bool  ->  zero-ref    "Inlining Arg"
@@ -79,10 +79,10 @@
 ;* V69 tmp46        [V69    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg"
 ;* V70 tmp47        [V70    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg"
 ;  V71 tmp48        [V71,T56] (  2,  4   )     ref  ->  r12         class-hnd single-def "Inlining Arg"
-;  V72 tmp49        [V72,T03] ( 14,119.31)     ref  ->  [rbp-C8H]   must-init EH-live single-def V92._pattern(offs=0x00) P-INDEP "field V02._pattern (fldOffset=0x0)"
-;  V73 tmp50        [V73,T04] ( 10,109.31)     ref  ->  [rbp-D0H]   must-init EH-live single-def V92._culture(offs=0x08) P-INDEP "field V02._culture (fldOffset=0x8)"
-;  V74 tmp51        [V74,T16] (  6, 39   )     int  ->  [rbp-58H]   do-not-enreg[Z] EH-live V92._options(offs=0x10) P-INDEP "field V02._options (fldOffset=0x10)"
-;  V75 tmp52        [V75,T17] (  6, 39   )    long  ->  [rbp-60H]   do-not-enreg[Z] EH-live V92._matchTimeout(offs=0x18) P-INDEP "field V02._matchTimeout (fldOffset=0x18)"
+;  V72 tmp49        [V72,T03] ( 14,106.53)     ref  ->  [rbp-C8H]   must-init EH-live single-def V92._pattern(offs=0x00) P-INDEP "field V02._pattern (fldOffset=0x0)"
+;  V73 tmp50        [V73,T04] ( 10, 96.53)     ref  ->  [rbp-D0H]   must-init EH-live single-def V92._culture(offs=0x08) P-INDEP "field V02._culture (fldOffset=0x8)"
+;  V74 tmp51        [V74,T12] (  6, 39   )     int  ->  [rbp-58H]   do-not-enreg[Z] EH-live V92._options(offs=0x10) P-INDEP "field V02._options (fldOffset=0x10)"
+;  V75 tmp52        [V75,T13] (  6, 39   )    long  ->  [rbp-60H]   do-not-enreg[Z] EH-live V92._matchTimeout(offs=0x18) P-INDEP "field V02._matchTimeout (fldOffset=0x18)"
 ;  V76 tmp53        [V76,T70] (  2,  2   )    bool  ->  rdx         V10.hasValue(offs=0x00) P-INDEP "field V10.hasValue (fldOffset=0x0)"
 ;  V77 tmp54        [V77,T71] (  2,  2   )     int  ->  r14         V10.value(offs=0x04) P-INDEP "field V10.value (fldOffset=0x4)"
 ;* V78 tmp55        [V78,T74] (  0,  0   )     ref  ->  zero-ref    single-def V32._pattern(offs=0x00) P-INDEP "field V32._pattern (fldOffset=0x0)"
@@ -93,18 +93,18 @@
 ;* V83 tmp60        [V83,T60] (  0,  0   )     ref  ->  zero-ref    V44._culture(offs=0x08) P-INDEP "field V44._culture (fldOffset=0x8)"
 ;  V84 tmp61        [V84,T40] (  3, 12   )     int  ->  rsi         V44._options(offs=0x10) P-INDEP "field V44._options (fldOffset=0x10)"
 ;  V85 tmp62        [V85,T46] (  2,  8   )    long  ->  rcx         V44._matchTimeout(offs=0x18) P-INDEP "field V44._matchTimeout (fldOffset=0x18)"
-;  V86 tmp63        [V86,T18] (  2, 32   )     ref  ->  r12         V49._pattern(offs=0x00) P-INDEP "field V49._pattern (fldOffset=0x0)"
-;  V87 tmp64        [V87,T19] (  2, 32   )     ref  ->  r13         V49._culture(offs=0x08) P-INDEP "field V49._culture (fldOffset=0x8)"
-;  V88 tmp65        [V88,T20] (  2, 32   )     int  ->  [rbp-64H]   V49._options(offs=0x10) P-INDEP "field V49._options (fldOffset=0x10)"
-;  V89 tmp66        [V89,T21] (  2, 32   )    long  ->  [rbp-70H]   spill-single-def V49._matchTimeout(offs=0x18) P-INDEP "field V49._matchTimeout (fldOffset=0x18)"
+;  V86 tmp63        [V86,T14] (  2, 32   )     ref  ->  r12         V49._pattern(offs=0x00) P-INDEP "field V49._pattern (fldOffset=0x0)"
+;  V87 tmp64        [V87,T15] (  2, 32   )     ref  ->  r13         V49._culture(offs=0x08) P-INDEP "field V49._culture (fldOffset=0x8)"
+;  V88 tmp65        [V88,T16] (  2, 32   )     int  ->  [rbp-64H]   spill-single-def V49._options(offs=0x10) P-INDEP "field V49._options (fldOffset=0x10)"
+;  V89 tmp66        [V89,T17] (  2, 32   )    long  ->  [rbp-70H]   spill-single-def V49._matchTimeout(offs=0x18) P-INDEP "field V49._matchTimeout (fldOffset=0x18)"
 ;* V90 tmp67        [V90    ] (  0,  0   )    long  ->  zero-ref    V69._ticks(offs=0x00) P-INDEP "field V69._ticks (fldOffset=0x0)"
 ;* V91 tmp68        [V91    ] (  0,  0   )    long  ->  zero-ref    V70._ticks(offs=0x00) P-INDEP "field V70._ticks (fldOffset=0x0)"
 ;* V92 tmp69        [V92    ] (  0,  0   )  struct (32) zero-ref    "Promoted implicit byref"
 ;  V93 tmp70        [V93    ] ( 12,114   )  struct (32) [rbp-90H]   do-not-enreg[XSF] must-init addr-exposed "by-value struct argument"
 ;  V94 tmp71        [V94,T57] (  2,  4   )     ref  ->  r11         single-def "argument with side effect"
-;  V95 tmp72        [V95,T33] (  2, 16   )     ref  ->  rdx         "argument with side effect"
+;  V95 tmp72        [V95,T31] (  2, 16   )     ref  ->  rdx         "argument with side effect"
 ;  V96 tmp73        [V96    ] (  5,160   )  struct (32) [rbp-B0H]   do-not-enreg[XSF] must-init addr-exposed "by-value struct argument"
-;  V97 tmp74        [V97,T09] (  2, 64   )     ref  ->  rcx         "argument with side effect"
+;  V97 tmp74        [V97,T07] (  2, 64   )     ref  ->  rcx         "argument with side effect"
 ;  V98 tmp75        [V98,T49] (  3,  6   )     ref  ->  rcx         single-def "arr expr"
 ;  V99 tmp76        [V99,T58] (  2,  4   )     ref  ->  rdx         single-def "arr expr"
 ;  V100 PSPSym      [V100,T76] (  1,  1   )    long  ->  [rbp-E0H]   do-not-enreg[V] "PSPSym"
@@ -113,11 +113,11 @@
 ;  V103 cse2        [V103,T37] (  3, 12   )     ref  ->  rcx         "CSE - moderate"
 ;  V104 cse3        [V104,T38] (  3, 12   )     ref  ->  rcx         "CSE - moderate"
 ;  V105 cse4        [V105,T65] (  3,  3   )     ref  ->  rdx         "CSE - conservative"
-;  V106 cse5        [V106,T22] (  9, 31.32)     ref  ->  rdx         "CSE - aggressive"
+;  V106 cse5        [V106,T18] (  9, 31.32)     ref  ->  rdx         "CSE - aggressive"
 ;  V107 cse6        [V107,T41] (  3, 12   )     int  ->  r11         "CSE - moderate"
-;* V108 rat0        [V108,T28] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V109 rat1        [V109,T31] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V110 rat2        [V110,T24] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;* V108 rat0        [V108,T26] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V109 rat1        [V109,T29] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V110 rat2        [V110,T22] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;  V111 rat3        [V111,T53] (  3,  4.40)    long  ->  rcx         "Spilling to split statement for tree"
 ;  V112 rat4        [V112,T55] (  3,  4   )    long  ->  rdx         "runtime lookup"
 ;  V113 rat5        [V113,T50] (  3,  5.60)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
@@ -156,7 +156,7 @@ G_M58068_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, gword ptr [rbp+30H]
        ; gcrRegs +[rsi]
 						;; size=95 bbWeight=1 PerfScore 23.58
-G_M58068_IG02:        ; bbWeight=1, gcVars=00000000000000000000000002800000 {V00 V01}, gcrefRegs=0040 {rsi}, byrefRegs=0100 {r8}, gcvars, byref, isz
+G_M58068_IG02:        ; bbWeight=1, gcVars=00000000000000000000000000880000 {V00 V01}, gcrefRegs=0040 {rsi}, byrefRegs=0100 {r8}, gcvars, byref, isz
        ; byrRegs +[r8]
        mov      rdi, gword ptr [r8]
        ; gcrRegs +[rdi]
@@ -251,7 +251,7 @@ G_M58068_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        div      edx:eax, dword ptr [rcx+08H]
        mov      dword ptr [rbp-48H], edx
        cmp      r10d, r11d
-       jae      G_M58068_IG50
+       jae      G_M58068_IG56
        mov      edx, r10d
        lea      rsi, bword ptr [r9+8*rdx+10H]
        ; byrRegs +[rsi]
@@ -259,7 +259,7 @@ G_M58068_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      edx, edx
        mov      dword ptr [rbp-50H], edx
 						;; size=100 bbWeight=4 PerfScore 216.00
-G_M58068_IG08:        ; bbWeight=4, gcVars=00000000000000000000000022800418 {V00 V01 V08 V11 V72 V73}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, gcvars, byref, isz
+G_M58068_IG08:        ; bbWeight=4, gcVars=00000000000000000000000008880118 {V00 V01 V08 V11 V72 V73}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, gcvars, byref, isz
        ; gcrRegs -[rcx r8-r9]
        cmp      byte  ptr [rbp+40H], 0
        je       SHORT G_M58068_IG09
@@ -275,7 +275,7 @@ G_M58068_IG08:        ; bbWeight=4, gcVars=00000000000000000000000022800418 {V00
        mov      rcx, gword ptr [rdx+8*rcx+10H]
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rbp-50H], 0
-       jne      G_M58068_IG36
+       jne      G_M58068_IG42
        lea      rdx, [rbp-50H]
        ; gcrRegs -[rdx]
        call     <unknown method>
@@ -304,7 +304,7 @@ G_M58068_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        mov      rcx, gword ptr [rbp+18H]
        mov      rcx, gword ptr [rcx+08H]
        cmp      gword ptr [rbp-B8H], rcx
-       je       G_M58068_IG41
+       je       G_M58068_IG47
        mov      gword ptr [rbp-B8H], rcx
        mov      esi, dword ptr [rbp-58H]
        ; byrRegs -[rsi]
@@ -333,7 +333,7 @@ G_M58068_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
 						;; size=136 bbWeight=4 PerfScore 128.00
 G_M58068_IG10:        ; bbWeight=4, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
        mov      dword ptr [rbp-44H], eax
-       jmp      G_M58068_IG41
+       jmp      G_M58068_IG47
 						;; size=8 bbWeight=4 PerfScore 12.00
 G_M58068_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rdi]
@@ -363,12 +363,12 @@ G_M58068_IG13:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0040 {rsi}, b
        mov      r14, gword ptr [rsi]
        ; gcrRegs +[r14]
        test     r14, r14
-       je       G_M58068_IG31
+       je       G_M58068_IG36
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M58068_IG14:        ; bbWeight=32, gcrefRegs=4100 {r8 r14}, byrefRegs=0040 {rsi}, byref
        mov      ecx, dword ptr [rbp-44H]
        cmp      ecx, dword ptr [r14+18H]
-       jne      G_M58068_IG30
+       jne      G_M58068_IG35
 						;; size=13 bbWeight=32 PerfScore 160.00
 G_M58068_IG15:        ; bbWeight=16, gcrefRegs=4100 {r8 r14}, byrefRegs=0040 {rsi}, byref, isz
        cmp      gword ptr [rbp-B8H], 0
@@ -398,7 +398,7 @@ G_M58068_IG17:        ; bbWeight=16, extend
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       jmp      G_M58068_IG29
+       jmp      G_M58068_IG34
 						;; size=80 bbWeight=16 PerfScore 228.00
 G_M58068_IG18:        ; bbWeight=16, gcrefRegs=4100 {r8 r14}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[rbx r15] +[r8]
@@ -407,6 +407,7 @@ G_M58068_IG18:        ; bbWeight=16, gcrefRegs=4100 {r8 r14}, byrefRegs=0040 {rs
        mov      r13, gword ptr [r14+28H]
        ; gcrRegs +[r13]
        mov      r9d, dword ptr [r14+30H]
+       mov      dword ptr [rbp-64H], r9d
        mov      r10, qword ptr [r14+38H]
        mov      qword ptr [rbp-70H], r10
        mov      r15, gword ptr [rbp-C8H]
@@ -415,23 +416,19 @@ G_M58068_IG18:        ; bbWeight=16, gcrefRegs=4100 {r8 r14}, byrefRegs=0040 {rs
        ; gcrRegs +[rax]
        cmp      byte  ptr [r12], r12b
        cmp      r12, rax
-       je       SHORT G_M58068_IG23
-						;; size=39 bbWeight=16 PerfScore 232.00
-G_M58068_IG19:        ; bbWeight=5.79, gcrefRegs=F100 {r8 r12 r13 r14 r15}, byrefRegs=0040 {rsi}, byref
+       je       SHORT G_M58068_IG24
+						;; size=43 bbWeight=16 PerfScore 248.00
+G_M58068_IG19:        ; bbWeight=5.79, gcrefRegs=F100 {r8 r12 r13 r14 r15}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[rax]
        test     r15, r15
-       mov      rbx, gword ptr [rbp-D0H]
-       ; gcrRegs +[rbx]
-       je       G_M58068_IG33
-						;; size=16 bbWeight=5.79 PerfScore 13.02
-G_M58068_IG20:        ; bbWeight=46.30, gcrefRegs=F108 {rbx r8 r12 r13 r14 r15}, byrefRegs=0040 {rsi}, byref
-       mov      eax, r9d
+       je       SHORT G_M58068_IG27
+						;; size=5 bbWeight=5.79 PerfScore 7.23
+G_M58068_IG20:        ; bbWeight=46.30, gcrefRegs=F100 {r8 r12 r13 r14 r15}, byrefRegs=0040 {rsi}, byref, isz
...
-4 (-0.98%) : 109239.dasm - System.Xml.XslCompiledTransformApiTests.CTransformStrStrTest:TransformStrStr11(int,int):this
@@ -40,7 +40,7 @@ G_M46549_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      edi, edx
        mov      ebx, r8d
 						;; size=29 bbWeight=1 PerfScore 7.50
-G_M46549_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M46549_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        xor      ecx, ecx
        mov      dword ptr [rbp-1CH], ecx
        mov      rcx, 0xD1FFAB1E      ; System.Xml.XmlUrlResolver
@@ -59,11 +59,11 @@ G_M46549_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=004
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
        cmp      eax, 1
-       jne      G_M46549_IG10
+       jne      SHORT G_M46549_IG08
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        mov      gword ptr [rsi+90H], rcx
-						;; size=76 bbWeight=1 PerfScore 10.00
+						;; size=72 bbWeight=1 PerfScore 10.00
 G_M46549_IG03:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [rsi+60H]
@@ -119,10 +119,8 @@ G_M46549_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 G_M46549_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
        cmp      dword ptr [rbp-1CH], 3
-       mov      rsi, gword ptr [rbp+10H]
-       ; gcrRegs +[rsi]
        jne      SHORT G_M46549_IG10
-						;; size=10 bbWeight=1 PerfScore 4.00
+						;; size=6 bbWeight=1 PerfScore 3.00
 G_M46549_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
@@ -131,7 +129,9 @@ G_M46549_IG09:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
-G_M46549_IG10:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M46549_IG10:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       mov      rsi, gword ptr [rbp+10H]
+       ; gcrRegs +[rsi]
        mov      rcx, gword ptr [rsi+98H]
        ; gcrRegs +[rcx]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
@@ -150,7 +150,7 @@ G_M46549_IG10:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=004
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
        nop      
-						;; size=51 bbWeight=1 PerfScore 12.00
+						;; size=55 bbWeight=1 PerfScore 13.00
 G_M46549_IG11:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 72
        pop      rbx
@@ -231,7 +231,7 @@ G_M46549_IG20:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 409, prolog size 29, PerfScore 114.90, instruction count 124, allocated bytes for code 409 (MethodHash=e6884a2a) for method System.Xml.XslCompiledTransformApiTests.CTransformStrStrTest:TransformStrStr11(int,int):this
+; Total bytes of code 405, prolog size 29, PerfScore 114.50, instruction count 124, allocated bytes for code 405 (MethodHash=e6884a2a) for method System.Xml.XslCompiledTransformApiTests.CTransformStrStrTest:TransformStrStr11(int,int):this
 ; ============================================================
 
 Unwind Info:
+46 (+27.54%) : 309200.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass6_0:b__3():this
@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rcx         this class-hnd single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  2,  4   )     ref  ->  rcx         class-hnd single-def "dup spill"
+;  V02 tmp1         [V02,T03] (  2,  4   )     ref  ->  rax         class-hnd single-def "dup spill"
 ;* V03 tmp2         [V03    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
 ;* V04 tmp3         [V04    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V05 tmp4         [V05,T04] (  2,  2   )     ref  ->  rcx        
-;  V06 tmp5         [V06,T00] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp"
+;  V05 tmp4         [V05,T04] (  4,  3   )     ref  ->  rax        
+;  V06 tmp5         [V06,T00] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp"
 ;  V07 tmp6         [V07,T01] (  3,  6   )     ref  ->  rdx         class-hnd single-def "Inlining Arg"
 ;* V08 tmp7         [V08    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V09 tmp8         [V09    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
@@ -29,23 +29,21 @@ G_M15440_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        sub      rsp, 40
 						;; size=6 bbWeight=1 PerfScore 2.25
-G_M15440_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M15440_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       SHORT G_M15440_IG05
-						;; size=11 bbWeight=1 PerfScore 7.00
+       je       G_M15440_IG06
+						;; size=15 bbWeight=1 PerfScore 7.00
 G_M15440_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       mov      rcx, gword ptr [rsi]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
+       mov      rax, gword ptr [rsi]
+       ; gcrRegs +[rax]
+       test     rax, rax
        jne      SHORT G_M15440_IG04
        mov      rcx, 0xD1FFAB1E      ; System.Action`1[System.Reflection.Metadata.Ecma335.FixedArgumentsEncoder]
-       ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -53,7 +51,7 @@ G_M15440_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, gword ptr [rdx]
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M15440_IG06
+       je       G_M15440_IG07
        lea      rcx, bword ptr [rdi+08H]
        ; byrRegs +[rcx]
        call     CORINFO_HELP_ASSIGN_REF
@@ -65,9 +63,26 @@ G_M15440_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx rdi]
-						;; size=88 bbWeight=1 PerfScore 12.75
-G_M15440_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
+       mov      rax, rdi
+       ; gcrRegs +[rax]
+						;; size=95 bbWeight=1 PerfScore 13.00
+G_M15440_IG04:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi]
+       test     rax, rax
+       jne      SHORT G_M15440_IG05
+       mov      ecx, 0x2EBB
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcr arg pop 0
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       call     [System.Reflection.Throw:ArgumentNull(System.String)]
+       ; gcrRegs -[rax rcx]
+       ; gcr arg pop 0
+       int3     
+						;; size=35 bbWeight=0 PerfScore 0.00
+G_M15440_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, 0x2ED9
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -80,20 +95,20 @@ G_M15440_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
 						;; size=30 bbWeight=0 PerfScore 0.00
-G_M15440_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15440_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        mov      edx, 204
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
        ; gcr arg pop 0
        jmp      G_M15440_IG03
 						;; size=25 bbWeight=0 PerfScore 0.00
-G_M15440_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15440_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 167, prolog size 6, PerfScore 38.70, instruction count 36, allocated bytes for code 167 (MethodHash=ebf9c3af) for method System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass6_0:<BlobEncoder_CustomAttributeSignature>b__3():this
+; Total bytes of code 213, prolog size 6, PerfScore 43.55, instruction count 45, allocated bytes for code 213 (MethodHash=ebf9c3af) for method System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass6_0:<BlobEncoder_CustomAttributeSignature>b__3():this
 ; ============================================================
 
 Unwind Info:
+46 (+27.54%) : 309129.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass11_0:b__5():this
@@ -9,12 +9,12 @@
 ;
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rcx         this class-hnd single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  2,  4   )     ref  ->  rcx         class-hnd single-def "dup spill"
+;  V02 tmp1         [V02,T03] (  2,  4   )     ref  ->  rax         class-hnd single-def "dup spill"
 ;* V03 tmp2         [V03    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
 ;* V04 tmp3         [V04    ] (  0,  0   )   byref  ->  zero-ref    single-def
 ;* V05 tmp4         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 tmp5         [V06,T04] (  2,  2   )     ref  ->  rcx        
-;  V07 tmp6         [V07,T00] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp"
+;  V06 tmp5         [V06,T04] (  4,  3   )     ref  ->  rax        
+;  V07 tmp6         [V07,T00] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp"
 ;  V08 tmp7         [V08,T01] (  3,  6   )     ref  ->  rdx         class-hnd single-def "Inlining Arg"
 ;* V09 tmp8         [V09    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V10 tmp9         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
@@ -31,23 +31,21 @@ G_M49001_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        sub      rsp, 40
 						;; size=6 bbWeight=1 PerfScore 2.25
-G_M49001_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M49001_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       SHORT G_M49001_IG05
-						;; size=11 bbWeight=1 PerfScore 7.00
+       je       G_M49001_IG06
+						;; size=15 bbWeight=1 PerfScore 7.00
 G_M49001_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       mov      rcx, gword ptr [rsi]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
+       mov      rax, gword ptr [rsi]
+       ; gcrRegs +[rax]
+       test     rax, rax
        jne      SHORT G_M49001_IG04
        mov      rcx, 0xD1FFAB1E      ; System.Action`1[System.Reflection.Metadata.Ecma335.ReturnTypeEncoder]
-       ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -55,7 +53,7 @@ G_M49001_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, gword ptr [rdx]
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M49001_IG06
+       je       G_M49001_IG07
        lea      rcx, bword ptr [rdi+08H]
        ; byrRegs +[rcx]
        call     CORINFO_HELP_ASSIGN_REF
@@ -67,9 +65,26 @@ G_M49001_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx rdi]
-						;; size=88 bbWeight=1 PerfScore 12.75
-G_M49001_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
+       mov      rax, rdi
+       ; gcrRegs +[rax]
+						;; size=95 bbWeight=1 PerfScore 13.00
+G_M49001_IG04:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi]
+       test     rax, rax
+       jne      SHORT G_M49001_IG05
+       mov      ecx, 0x2F6B
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcr arg pop 0
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       call     [System.Reflection.Throw:ArgumentNull(System.String)]
+       ; gcrRegs -[rax rcx]
+       ; gcr arg pop 0
+       int3     
+						;; size=35 bbWeight=0 PerfScore 0.00
+G_M49001_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, 0x2F81
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -82,20 +97,20 @@ G_M49001_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
 						;; size=30 bbWeight=0 PerfScore 0.00
-G_M49001_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49001_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        mov      edx, 204
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
        ; gcr arg pop 0
        jmp      G_M49001_IG03
 						;; size=25 bbWeight=0 PerfScore 0.00
-G_M49001_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M49001_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 167, prolog size 6, PerfScore 38.70, instruction count 36, allocated bytes for code 167 (MethodHash=dcac4096) for method System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass11_0:<MethodSignatureEncoder_Parameters>b__5():this
+; Total bytes of code 213, prolog size 6, PerfScore 43.55, instruction count 45, allocated bytes for code 213 (MethodHash=dcac4096) for method System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass11_0:<MethodSignatureEncoder_Parameters>b__5():this
 ; ============================================================
 
 Unwind Info:
+46 (+27.54%) : 309141.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass25_0:b__3():this
@@ -9,11 +9,11 @@
 ;
 ;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rcx         this class-hnd single-def
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  2,  4   )     ref  ->  rcx         class-hnd single-def "dup spill"
+;  V02 tmp1         [V02,T03] (  2,  4   )     ref  ->  rax         class-hnd single-def "dup spill"
 ;* V03 tmp2         [V03    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
 ;* V04 tmp3         [V04    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V05 tmp4         [V05,T04] (  2,  2   )     ref  ->  rcx        
-;  V06 tmp5         [V06,T00] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp"
+;  V05 tmp4         [V05,T04] (  4,  3   )     ref  ->  rax        
+;  V06 tmp5         [V06,T00] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp"
 ;  V07 tmp6         [V07,T01] (  3,  6   )     ref  ->  rdx         class-hnd single-def "Inlining Arg"
 ;* V08 tmp7         [V08    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V09 tmp8         [V09    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
@@ -29,23 +29,21 @@ G_M53016_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        sub      rsp, 40
 						;; size=6 bbWeight=1 PerfScore 2.25
-G_M53016_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M53016_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       SHORT G_M53016_IG05
-						;; size=11 bbWeight=1 PerfScore 7.00
+       je       G_M53016_IG06
+						;; size=15 bbWeight=1 PerfScore 7.00
 G_M53016_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rsi, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       mov      rcx, gword ptr [rsi]
-       ; gcrRegs +[rcx]
-       test     rcx, rcx
+       mov      rax, gword ptr [rsi]
+       ; gcrRegs +[rax]
+       test     rax, rax
        jne      SHORT G_M53016_IG04
        mov      rcx, 0xD1FFAB1E      ; System.Action`1[System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder]
-       ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -53,7 +51,7 @@ G_M53016_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, gword ptr [rdx]
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M53016_IG06
+       je       G_M53016_IG07
        lea      rcx, bword ptr [rdi+08H]
        ; byrRegs +[rcx]
        call     CORINFO_HELP_ASSIGN_REF
@@ -65,9 +63,26 @@ G_M53016_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx rdi]
-						;; size=88 bbWeight=1 PerfScore 12.75
-G_M53016_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx]
+       mov      rax, rdi
+       ; gcrRegs +[rax]
+						;; size=95 bbWeight=1 PerfScore 13.00
+G_M53016_IG04:        ; bbWeight=0, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi]
+       test     rax, rax
+       jne      SHORT G_M53016_IG05
+       mov      ecx, 0x2FED
+       mov      rdx, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       ; gcr arg pop 0
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       call     [System.Reflection.Throw:ArgumentNull(System.String)]
+       ; gcrRegs -[rax rcx]
+       ; gcr arg pop 0
+       int3     
+						;; size=35 bbWeight=0 PerfScore 0.00
+G_M53016_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      ecx, 0x2FF7
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -80,20 +95,20 @@ G_M53016_IG04:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
 						;; size=30 bbWeight=0 PerfScore 0.00
-G_M53016_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53016_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        mov      edx, 204
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
        ; gcr arg pop 0
        jmp      G_M53016_IG03
 						;; size=25 bbWeight=0 PerfScore 0.00
-G_M53016_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53016_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 167, prolog size 6, PerfScore 38.70, instruction count 36, allocated bytes for code 167 (MethodHash=7b0630e7) for method System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass25_0:<LiteralEncoder_TaggedScalar>b__3():this
+; Total bytes of code 213, prolog size 6, PerfScore 43.55, instruction count 45, allocated bytes for code 213 (MethodHash=7b0630e7) for method System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass25_0:<LiteralEncoder_TaggedScalar>b__3():this
 ; ============================================================
 
 Unwind Info:
realworld.run.windows.x64.checked.mch
-4 (-1.81%) : 1994.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
@@ -31,13 +31,13 @@ G_M45147_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      rdi, rdx
        ; gcrRegs +[rdi]
 						;; size=14 bbWeight=1 PerfScore 4.75
-G_M45147_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
+G_M45147_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
        xor      ebx, ebx
        cmp      dword ptr [rsi+34H], 45
-       jne      G_M45147_IG07
+       jne      SHORT G_M45147_IG04
        lea      rbp, bword ptr [rsi+08H]
        ; byrRegs +[rbp]
-						;; size=16 bbWeight=1 PerfScore 4.75
+						;; size=12 bbWeight=1 PerfScore 4.75
 G_M45147_IG03:        ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0060 {rbp rsi}, byref, isz
        mov      rcx, rbp
        ; byrRegs +[rcx]
@@ -136,7 +136,7 @@ G_M45147_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        ; gcr arg pop 0
 						;; size=14 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 221, prolog size 14, PerfScore 80.35, instruction count 61, allocated bytes for code 221 (MethodHash=6aa94fa4) for method MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
+; Total bytes of code 217, prolog size 14, PerfScore 79.95, instruction count 61, allocated bytes for code 217 (MethodHash=6aa94fa4) for method MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
 ; ============================================================
 
 Unwind Info:
-4 (-0.27%) : 461.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
@@ -197,7 +197,7 @@ G_M24617_IG07:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        je       G_M24617_IG31
        jmp      G_M24617_IG17
 						;; size=94 bbWeight=0.50 PerfScore 12.25
-G_M24617_IG08:        ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, byref
+G_M24617_IG08:        ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rsi
        call     <unknown method>
        ; gcrRegs +[rax]
@@ -222,8 +222,8 @@ G_M24617_IG08:        ; bbWeight=0.50, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0
        ; gcrRegs -[rax]
        mov      dword ptr [rbp-44H], eax
        test     eax, eax
-       jle      G_M24617_IG41
-						;; size=74 bbWeight=0.50 PerfScore 6.88
+       jle      SHORT G_M24617_IG12
+						;; size=70 bbWeight=0.50 PerfScore 6.88
 G_M24617_IG09:        ; bbWeight=4, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, r13d
        mov      rdx, gword ptr [rbx+8*rdx+10H]
@@ -774,7 +774,7 @@ G_M24617_IG45:        ; bbWeight=0, gcrefRegs=4080 {rdi r14}, byrefRegs=0000 {},
        int3     
 						;; size=106 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1483, prolog size 33, PerfScore 430.11, instruction count 378, allocated bytes for code 1483 (MethodHash=a0569fd6) for method System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
+; Total bytes of code 1479, prolog size 33, PerfScore 429.71, instruction count 378, allocated bytes for code 1479 (MethodHash=a0569fd6) for method System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
 ; ============================================================
 
 Unwind Info:
-1 (-0.08%) : 23998.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this
@@ -28,8 +28,8 @@
 ;* V18 tmp4         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt"
 ;  V19 tmp5         [V19,T25] (  3, 32   )     int  ->  rax        
 ;  V20 tmp6         [V20,T67] (  3,  1.50)     int  ->  rdx        
-;  V21 tmp7         [V21,T39] (  4, 16   )     ref  ->  r15         class-hnd exact "NewObj constructor temp"
-;  V22 tmp8         [V22,T50] (  2,  8   )     int  ->  r14         "impAppendStmt"
+;  V21 tmp7         [V21,T39] (  4, 16   )     ref  ->  r12         class-hnd exact "NewObj constructor temp"
+;  V22 tmp8         [V22,T50] (  2,  8   )     int  ->  r15         "impAppendStmt"
 ;  V23 tmp9         [V23,T60] (  1,  4   )  struct (24) [rsp+68H]   do-not-enreg[HS] hidden-struct-arg "location for address-of(RValue)"
 ;  V24 tmp10        [V24,T20] (  4, 36   )   byref  ->  rcx         "Inlining Arg"
 ;* V25 tmp11        [V25,T62] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
@@ -59,17 +59,17 @@
 ;  V49 tmp35        [V49,T22] (  2, 32   )     int  ->  r13         "Inline stloc first use temp"
 ;* V50 tmp36        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
 ;* V51 tmp37        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
-;  V52 tmp38        [V52,T46] (  2,  8   )   byref  ->  r14         "Inlining Arg"
+;  V52 tmp38        [V52,T46] (  2,  8   )   byref  ->  r15         "Inlining Arg"
 ;* V53 tmp39        [V53    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp40        [V54    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V55 tmp41        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;* V56 tmp42        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
-;  V57 tmp43        [V57,T23] (  2, 32   )     int  ->  r15         "Inline stloc first use temp"
+;  V57 tmp43        [V57,T23] (  2, 32   )     int  ->  r12         "Inline stloc first use temp"
 ;* V58 tmp44        [V58    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V59 tmp45        [V59    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V60 tmp46        [V60    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;* V61 tmp47        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg"
-;  V62 tmp48        [V62,T24] (  2, 32   )     int  ->  r15         "Inline stloc first use temp"
+;  V62 tmp48        [V62,T24] (  2, 32   )     int  ->  r12         "Inline stloc first use temp"
 ;* V63 tmp49        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp50        [V64    ] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
 ;  V65 tmp51        [V65,T08] (  3, 68   )   byref  ->  rcx         "Inlining Arg"
@@ -92,8 +92,8 @@
 ;  V82 tmp68        [V82,T38] (  2, 18   )     ref  ->  r15         V09._array(offs=0x00) P-INDEP "field V09._array (fldOffset=0x0)"
 ;  V83 tmp69        [V83,T07] (  5, 66   )     int  ->  r13         V09._index(offs=0x08) P-INDEP "field V09._index (fldOffset=0x8)"
 ;* V84 tmp70        [V84    ] (  0,  0   )     ref  ->  zero-ref    V10.array(offs=0x00) P-INDEP "field V10.array (fldOffset=0x0)"
-;  V85 tmp71        [V85,T21] (  4, 36   )     ref  ->  registers   V12._array(offs=0x00) P-INDEP "field V12._array (fldOffset=0x0)"
-;  V86 tmp72        [V86,T00] ( 10,132   )     int  ->  r15         V12._index(offs=0x08) P-INDEP "field V12._index (fldOffset=0x8)"
+;  V85 tmp71        [V85,T21] (  4, 36   )     ref  ->  r15         V12._array(offs=0x00) P-INDEP "field V12._array (fldOffset=0x0)"
+;  V86 tmp72        [V86,T00] ( 10,132   )     int  ->  r12         V12._index(offs=0x08) P-INDEP "field V12._index (fldOffset=0x8)"
 ;  V87 tmp73        [V87,T51] (  3,  6   )     ref  ->  r15         V30.array(offs=0x00) P-INDEP "field V30.array (fldOffset=0x0)"
 ;  V88 tmp74        [V88,T57] (  2,  4   )     ref  ->  r15         V31._array(offs=0x00) P-INDEP "field V31._array (fldOffset=0x0)"
 ;* V89 tmp75        [V89,T64] (  0,  0   )     int  ->  zero-ref    V31._index(offs=0x08) P-INDEP "field V31._index (fldOffset=0x8)"
@@ -103,11 +103,11 @@
 ;* V93 tmp79        [V93    ] (  0,  0   )     int  ->  zero-ref    V38.<Length>k__BackingField(offs=0x04) P-INDEP "field V38.<Length>k__BackingField (fldOffset=0x4)"
 ;  V94 tmp80        [V94,T43] (  2, 16   )     int  ->  rdx         V40.<Start>k__BackingField(offs=0x00) P-INDEP "field V40.<Start>k__BackingField (fldOffset=0x0)"
 ;  V95 tmp81        [V95,T44] (  2, 16   )     int  ->   r8         V40.<Length>k__BackingField(offs=0x04) P-INDEP "field V40.<Length>k__BackingField (fldOffset=0x4)"
-;  V96 tmp82        [V96,T52] (  3,  6   )     ref  ->  r14         V54.array(offs=0x00) P-INDEP "field V54.array (fldOffset=0x0)"
-;  V97 tmp83        [V97,T58] (  2,  4   )     ref  ->  r14         V55._array(offs=0x00) P-INDEP "field V55._array (fldOffset=0x0)"
+;  V96 tmp82        [V96,T52] (  3,  6   )     ref  ->  r15         V54.array(offs=0x00) P-INDEP "field V54.array (fldOffset=0x0)"
+;  V97 tmp83        [V97,T58] (  2,  4   )     ref  ->  r15         V55._array(offs=0x00) P-INDEP "field V55._array (fldOffset=0x0)"
 ;* V98 tmp84        [V98,T65] (  0,  0   )     int  ->  zero-ref    V55._index(offs=0x08) P-INDEP "field V55._index (fldOffset=0x8)"
-;  V99 tmp85        [V99,T53] (  3,  6   )     ref  ->  rcx         V59.array(offs=0x00) P-INDEP "field V59.array (fldOffset=0x0)"
-;  V100 tmp86       [V100,T59] (  2,  4   )     ref  ->  rcx         V60._array(offs=0x00) P-INDEP "field V60._array (fldOffset=0x0)"
+;  V99 tmp85        [V99,T53] (  3,  6   )     ref  ->  r15         V59.array(offs=0x00) P-INDEP "field V59.array (fldOffset=0x0)"
+;  V100 tmp86       [V100,T59] (  2,  4   )     ref  ->  r15         V60._array(offs=0x00) P-INDEP "field V60._array (fldOffset=0x0)"
 ;* V101 tmp87       [V101,T66] (  0,  0   )     int  ->  zero-ref    V60._index(offs=0x08) P-INDEP "field V60._index (fldOffset=0x8)"
 ;  V102 tmp88       [V102    ] (  3,  8.50)     int  ->  [rsp+58H]   do-not-enreg[X] addr-exposed V74._count(offs=0x00) P-DEP "field V74._count (fldOffset=0x0)"
 ;  V103 tmp89       [V103    ] (  4, 10   )     ref  ->  [rsp+50H]   do-not-enreg[X] addr-exposed V75._source(offs=0x00) P-DEP "field V75._source (fldOffset=0x0)"
@@ -121,7 +121,7 @@
 ;  V111 cse2        [V111,T54] (  3,  6   )     ref  ->   r8         "CSE - conservative"
 ;  V112 cse3        [V112,T34] (  3, 20   )     int  ->  rbx         "CSE - moderate"
 ;  V113 cse4        [V113,T35] (  3, 20   )     int  ->  r12         "CSE - moderate"
-;  V114 cse5        [V114,T36] (  3, 20   )     int  ->  r12         "CSE - moderate"
+;  V114 cse5        [V114,T36] (  3, 20   )     int  ->  r13         "CSE - moderate"
 ;  TEMP_01                                     ref  ->  [rsp+0x80]
 ;
 ; Lcl frame size = 136
@@ -181,7 +181,7 @@ G_M12180_IG04:        ; bbWeight=2, gcrefRegs=0060 {rbp rsi}, byrefRegs=0002 {rc
        mov      rax, gword ptr [rcx]
        ; gcrRegs +[rax]
        cmp      dword ptr [rax+20H], 0
-       jne      G_M12180_IG47
+       jne      G_M12180_IG46
 						;; size=13 bbWeight=2 PerfScore 12.00
 G_M12180_IG05:        ; bbWeight=8, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
@@ -191,7 +191,7 @@ G_M12180_IG05:        ; bbWeight=8, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {},
        andn     ecx, ecx, eax
        lea      eax, [rcx-01H]
        andn     edi, eax, ecx
-       je       G_M12180_IG42
+       je       G_M12180_IG41
 						;; size=27 bbWeight=8 PerfScore 38.00
 G_M12180_IG06:        ; bbWeight=4, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
        cmp      edi, 0x800
@@ -246,7 +246,7 @@ G_M12180_IG12:        ; bbWeight=2, gcrefRegs=0060 {rbp rsi}, byrefRegs=0008 {rb
        mov      rcx, gword ptr [rsp+50H]
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx+20H], 0
-       jne      G_M12180_IG49
+       jne      G_M12180_IG48
 						;; size=15 bbWeight=2 PerfScore 10.00
 G_M12180_IG13:        ; bbWeight=4, gcrefRegs=0060 {rbp rsi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rcx]
@@ -428,7 +428,7 @@ G_M12180_IG25:        ; bbWeight=8, gcrefRegs=8068 {rbx rbp rsi r15}, byrefRegs=
        ; gcr arg pop 0
        mov      r9, rax
        test     r9, r9
-       je       G_M12180_IG48
+       je       G_M12180_IG47
        mov      rcx, gword ptr [rax]
        ; gcrRegs +[rcx]
        mov      r9, gword ptr [rbx+08H]
@@ -512,30 +512,30 @@ G_M12180_IG29:        ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000
        ; gcrRegs +[rcx]
        cmp      byte  ptr [rcx+8AH], 0
        je       G_M12180_IG33
-       lea      r14, bword ptr [rbx+10H]
-       ; byrRegs +[r14]
+       lea      r15, bword ptr [rbx+10H]
+       ; byrRegs +[r15]
        mov      rcx, 0xD1FFAB1E      ; System.Action`1[int]
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      rdx, gword ptr [r14]
+       mov      r12, rax
+       ; gcrRegs +[r12]
+       mov      rdx, gword ptr [r15]
        ; gcrRegs +[rdx]
-       mov      r14d, dword ptr [rdx+08H]
-       ; byrRegs -[r14]
-       lea      rcx, bword ptr [r15+08H]
+       mov      r15d, dword ptr [rdx+08H]
+       ; byrRegs -[r15]
+       lea      rcx, bword ptr [r12+08H]
        ; byrRegs +[rcx]
        mov      rdx, rbx
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
        mov      rcx, 0xD1FFAB1E      ; code for <unknown method>
-       mov      qword ptr [r15+18H], rcx
-       mov      rcx, r15
+       mov      qword ptr [r12+18H], rcx
+       mov      rcx, r12
        ; gcrRegs +[rcx]
        call     [Roslyn.Utilities.UICultureUtilities:WithCurrentUICulture[int](System.Action`1[int]):System.Action`1[int]]
-       ; gcrRegs -[rcx r15] +[rax]
+       ; gcrRegs -[rcx r12] +[rax]
        ; gcr arg pop 0
        mov      r9, rax
        ; gcrRegs +[r9]
@@ -546,22 +546,22 @@ G_M12180_IG29:        ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000
        ; gcr arg write
        lea      rcx, [rsp+68H]
        ; gcrRegs -[rcx]
-       mov      r8d, r14d
+       mov      r8d, r15d
        xor      edx, edx
        call     [Roslyn.Utilities.RoslynParallel:For(int,int,System.Action`1[int],System.Threading.CancellationToken):System.Threading.Tasks.ParallelLoopResult]
        ; gcrRegs -[rax r9]
        ; gcr arg pop 0
-       mov      r14, gword ptr [rbx+10H]
-       ; gcrRegs +[r14]
-       mov      ebx, dword ptr [r14+08H]
+       mov      r15, gword ptr [rbx+10H]
+       ; gcrRegs +[r15]
+       mov      ebx, dword ptr [r15+08H]
        ; gcrRegs -[rbx]
-       xor      r15d, r15d
+       xor      r12d, r12d
        test     ebx, ebx
-       jle      G_M12180_IG39
-						;; size=168 bbWeight=2 PerfScore 83.00
-G_M12180_IG30:        ; bbWeight=16, gcrefRegs=4060 {rbp rsi r14}, byrefRegs=0000 {}, byref, isz
-       mov      ecx, r15d
-       mov      rcx, gword ptr [r14+8*rcx+10H]
+       jle      G_M12180_IG38
+						;; size=170 bbWeight=2 PerfScore 83.00
+G_M12180_IG30:        ; bbWeight=16, gcrefRegs=8060 {rbp rsi r15}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, r12d
+       mov      rcx, gword ptr [r15+8*rcx+10H]
        ; gcrRegs +[rcx]
        mov      edx, 0x3FFFF
        mov      rax, qword ptr [rcx]
@@ -570,14 +570,14 @@ G_M12180_IG30:        ; bbWeight=16, gcrefRegs=4060 {rbp rsi r14}, byrefRegs=000
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M12180_IG43
-       inc      r15d
-       cmp      ebx, r15d
+       je       G_M12180_IG42
+       inc      r12d
+       cmp      ebx, r12d
        jg       SHORT G_M12180_IG30
 						;; size=39 bbWeight=16 PerfScore 196.00
 G_M12180_IG31:        ; bbWeight=2, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14]
-       jmp      SHORT G_M12180_IG39
+       ; gcrRegs -[r15]
+       jmp      SHORT G_M12180_IG38
 						;; size=2 bbWeight=2 PerfScore 4.00
 G_M12180_IG32:        ; bbWeight=4, gcVars=00000000000000000000000000000020 {V11}, gcrefRegs=C068 {rbx rbp rsi r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx r14-r15]
@@ -589,19 +589,16 @@ G_M12180_IG32:        ; bbWeight=4, gcVars=00000000000000000000000000000020 {V11
 G_M12180_IG33:        ; bbWeight=2, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax r14-r15]
        ; GC ptr vars -{V05 V11}
-       mov      rcx, gword ptr [rbx+10H]
-       ; gcrRegs +[rcx]
-       mov      r12d, dword ptr [rcx+08H]
-       mov      r13, rcx
-       ; gcrRegs +[r13]
-       xor      r15d, r15d
-       test     r12d, r12d
-       jle      SHORT G_M12180_IG39
-						;; size=19 bbWeight=2 PerfScore 11.50
-G_M12180_IG34:        ; bbWeight=16, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx]
-       mov      ecx, r15d
-       mov      rax, gword ptr [r13+8*rcx+10H]
+       mov      r15, gword ptr [rbx+10H]
+       ; gcrRegs +[r15]
+       mov      r13d, dword ptr [r15+08H]
+       xor      r12d, r12d
+       test     r13d, r13d
+       jle      SHORT G_M12180_IG38
+						;; size=16 bbWeight=2 PerfScore 11.00
+G_M12180_IG34:        ; bbWeight=16, gcrefRegs=8068 {rbx rbp rsi r15}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, r12d
+       mov      rax, gword ptr [r15+8*rcx+10H]
        ; gcrRegs +[rax]
        mov      gword ptr [rsp+30H], rax
        ; GC ptr vars +{V13}
@@ -618,7 +615,7 @@ G_M12180_IG34:        ; bbWeight=16, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs
        test     r14d, r14d
        je       SHORT G_M12180_IG36
 						;; size=39 bbWeight=16 PerfScore 220.00
-G_M12180_IG35:        ; bbWeight=8, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0000 {}, byref, isz
+G_M12180_IG35:        ; bbWeight=8, gcrefRegs=8068 {rbx rbp rsi r15}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rsp+30H]
        ; gcrRegs +[rcx]
        mov      edx, 0x3FFFF
@@ -630,25 +627,23 @@ G_M12180_IG35:        ; bbWeight=8, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=
        ; gcr arg pop 0
        jmp      SHORT G_M12180_IG37
 						;; size=22 bbWeight=8 PerfScore 82.00
-G_M12180_IG36:        ; bbWeight=8, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0000 {}, byref
+G_M12180_IG36:        ; bbWeight=8, gcrefRegs=8068 {rbx rbp rsi r15}, byrefRegs=0000 {}, byref
        xor      eax, eax
 						;; size=2 bbWeight=8 PerfScore 2.00
-G_M12180_IG37:        ; bbWeight=16, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0000 {}, byref, isz
+G_M12180_IG37:        ; bbWeight=16, gcrefRegs=8068 {rbx rbp rsi r15}, byrefRegs=0000 {}, byref, isz
        movzx    r14, al
-       inc      r15d
...
+32 (+4.83%) : 25207.dasm - System.Guid:TryParseExact(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],byref):bool
@@ -11,7 +11,7 @@
 ;  V01 arg1         [V01,T01] (  4,  8   )   byref  ->  rdx         ld-addr-op single-def
 ;  V02 arg2         [V02,T02] (  5,  3.50)   byref  ->  rsi         single-def
 ;  V03 loc0         [V03    ] ( 10,  5   )  struct (24) [rsp+48H]   do-not-enreg[XSF] addr-exposed ld-addr-op
-;  V04 loc1         [V04,T07] (  6,  3   )    bool  ->  rax        
+;  V04 loc1         [V04,T07] (  7,  3.50)    bool  ->  r14        
 ;  V05 loc2         [V05,T08] (  7,  3.50)  ushort  ->  rax        
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07    ] (  5,  2.50)  struct (16) [rsp+38H]   do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp"
@@ -33,16 +33,16 @@
 ;* V23 tmp17        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V24 tmp18        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;* V25 tmp19        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V26 tmp20        [V26,T17] (  3,  1.50)    bool  ->  rax         "Inline return value spill temp"
+;  V26 tmp20        [V26,T17] (  3,  1.50)    bool  ->  r14         "Inline return value spill temp"
 ;* V27 tmp21        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V28 tmp22        [V28    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;* V29 tmp23        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V30 tmp24        [V30,T13] (  2,  2   )   byref  ->  rbx         single-def "Inlining Arg"
-;  V31 tmp25        [V31,T18] (  3,  1.50)    bool  ->  rax         "Inline return value spill temp"
+;  V30 tmp24        [V30,T13] (  2,  2   )   byref  ->  r14         single-def "Inlining Arg"
+;  V31 tmp25        [V31,T18] (  3,  1.50)    bool  ->  r14         "Inline return value spill temp"
 ;* V32 tmp26        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V33 tmp27        [V33    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;* V34 tmp28        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V35 tmp29        [V35,T14] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V35 tmp29        [V35,T14] (  2,  2   )   byref  ->  r14         single-def "Inlining Arg"
 ;  V36 tmp30        [V36,T06] (  8,  4.50)   byref  ->  rbx         V80._reference(offs=0x00) P-INDEP "field V00._reference (fldOffset=0x0)"
 ;  V37 tmp31        [V37,T03] (  9,  5   )     int  ->  rbp         V80._length(offs=0x08) P-INDEP "field V00._length (fldOffset=0x8)"
 ;  V38 tmp32        [V38,T20] (  2,  1.50)   byref  ->  rdi         single-def V81._reference(offs=0x00) P-INDEP "field V01._reference (fldOffset=0x0)"
@@ -75,17 +75,17 @@
 ;* V65 tmp59        [V65    ] (  0,  0   )     int  ->  zero-ref    V24._length(offs=0x08) P-INDEP "field V24._length (fldOffset=0x8)"
 ;* V66 tmp60        [V66    ] (  0,  0   )   byref  ->  zero-ref    single-def V25._reference(offs=0x00) P-INDEP "field V25._reference (fldOffset=0x0)"
 ;* V67 tmp61        [V67    ] (  0,  0   )     int  ->  zero-ref    V25._length(offs=0x08) P-INDEP "field V25._length (fldOffset=0x8)"
-;  V68 tmp62        [V68,T11] (  4,  2   )   byref  ->  rbx         single-def V27._reference(offs=0x00) P-INDEP "field V27._reference (fldOffset=0x0)"
+;  V68 tmp62        [V68,T11] (  4,  2   )   byref  ->  r14         single-def V27._reference(offs=0x00) P-INDEP "field V27._reference (fldOffset=0x0)"
 ;  V69 tmp63        [V69,T25] (  2,  1   )     int  ->  rcx         V27._length(offs=0x08) P-INDEP "field V27._length (fldOffset=0x8)"
 ;* V70 tmp64        [V70    ] (  0,  0   )   byref  ->  zero-ref    V28._reference(offs=0x00) P-INDEP "field V28._reference (fldOffset=0x0)"
 ;* V71 tmp65        [V71    ] (  0,  0   )     int  ->  zero-ref    V28._length(offs=0x08) P-INDEP "field V28._length (fldOffset=0x8)"
-;  V72 tmp66        [V72,T21] (  2,  1   )   byref  ->  rbx         single-def V29._reference(offs=0x00) P-INDEP "field V29._reference (fldOffset=0x0)"
+;  V72 tmp66        [V72,T21] (  2,  1   )   byref  ->  r14         single-def V29._reference(offs=0x00) P-INDEP "field V29._reference (fldOffset=0x0)"
 ;* V73 tmp67        [V73,T26] (  0,  0   )     int  ->  zero-ref    V29._length(offs=0x08) P-INDEP "field V29._length (fldOffset=0x8)"
-;  V74 tmp68        [V74,T12] (  4,  2   )   byref  ->  rdi         single-def V32._reference(offs=0x00) P-INDEP "field V32._reference (fldOffset=0x0)"
+;  V74 tmp68        [V74,T12] (  4,  2   )   byref  ->  r14         single-def V32._reference(offs=0x00) P-INDEP "field V32._reference (fldOffset=0x0)"
 ;  V75 tmp69        [V75,T19] (  3,  1.50)     int  ->  rax         V32._length(offs=0x08) P-INDEP "field V32._length (fldOffset=0x8)"
 ;* V76 tmp70        [V76    ] (  0,  0   )   byref  ->  zero-ref    V33._reference(offs=0x00) P-INDEP "field V33._reference (fldOffset=0x0)"
 ;* V77 tmp71        [V77    ] (  0,  0   )     int  ->  zero-ref    V33._length(offs=0x08) P-INDEP "field V33._length (fldOffset=0x8)"
-;  V78 tmp72        [V78,T22] (  2,  1   )   byref  ->  rdi         single-def V34._reference(offs=0x00) P-INDEP "field V34._reference (fldOffset=0x0)"
+;  V78 tmp72        [V78,T22] (  2,  1   )   byref  ->  r14         single-def V34._reference(offs=0x00) P-INDEP "field V34._reference (fldOffset=0x0)"
 ;* V79 tmp73        [V79,T27] (  0,  0   )     int  ->  zero-ref    V34._length(offs=0x08) P-INDEP "field V34._length (fldOffset=0x8)"
 ;* V80 tmp74        [V80    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
 ;* V81 tmp75        [V81    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
@@ -210,14 +210,15 @@ G_M56778_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rd
        vmovdqu  xmmword ptr [rsp+48H], xmm0
        vmovdqu  xmmword ptr [rsp+4CH], xmm0
        mov      byte  ptr [rsp+58H], 0
+       xor      r14d, r14d
        movzx    rax, word  ptr [rdi]
        or       eax, 32
        cmp      eax, 100
        ja       SHORT G_M56778_IG13
        cmp      eax, 98
-       je       SHORT G_M56778_IG15
+       je       G_M56778_IG15
        cmp      eax, 100
-       jne      G_M56778_IG24
+       jne      G_M56778_IG22
        mov      bword ptr [rsp+28H], rbx
        mov      dword ptr [rsp+30H], ebp
        lea      rcx, [rsp+28H]
@@ -225,8 +226,9 @@ G_M56778_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rd
        call     [<unknown method>]
        ; byrRegs -[rbx rdi]
        ; gcr arg pop 0
+       mov      r14d, eax
        jmp      G_M56778_IG22
-						;; size=85 bbWeight=0.50 PerfScore 9.67
+						;; size=95 bbWeight=0.50 PerfScore 9.92
 G_M56778_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; byrRegs +[rbx]
        cmp      eax, 110
@@ -234,7 +236,7 @@ G_M56778_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
        cmp      eax, 112
        je       G_M56778_IG19
        cmp      eax, 120
-       jne      G_M56778_IG24
+       jne      G_M56778_IG22
        mov      bword ptr [rsp+28H], rbx
        mov      dword ptr [rsp+30H], ebp
        lea      rcx, [rsp+28H]
@@ -242,8 +244,9 @@ G_M56778_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
        call     [<unknown method>]
        ; byrRegs -[rbx]
        ; gcr arg pop 0
+       mov      r14d, eax
        jmp      G_M56778_IG22
-						;; size=53 bbWeight=0.50 PerfScore 5.88
+						;; size=56 bbWeight=0.50 PerfScore 6.00
 G_M56778_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
        ; byrRegs +[rbx]
        mov      bword ptr [rsp+28H], rbx
@@ -253,88 +256,93 @@ G_M56778_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
        call     [<unknown method>]
        ; byrRegs -[rbx]
        ; gcr arg pop 0
+       mov      r14d, eax
        jmp      G_M56778_IG22
-						;; size=30 bbWeight=0.50 PerfScore 4.00
+						;; size=33 bbWeight=0.50 PerfScore 4.12
 G_M56778_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; byrRegs +[rbx]
+       mov      r14, rbx
+       ; byrRegs +[r14]
        mov      ecx, ebp
        cmp      ecx, 38
        jne      SHORT G_M56778_IG16
-       cmp      word  ptr [rbx], 123
+       cmp      word  ptr [r14], 123
        jne      SHORT G_M56778_IG16
-       cmp      word  ptr [rbx+4AH], 125
+       cmp      word  ptr [r14+4AH], 125
        je       SHORT G_M56778_IG17
-						;; size=20 bbWeight=0.50 PerfScore 4.75
+						;; size=25 bbWeight=0.50 PerfScore 4.88
 G_M56778_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
-       ; byrRegs -[rbx]
+       ; byrRegs -[rbx r14]
        lea      rcx, [rsp+48H]
        mov      edx, 8
        call     [<unknown method>]
        ; gcr arg pop 0
-       xor      eax, eax
+       xor      r14d, r14d
        jmp      SHORT G_M56778_IG18
-						;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M56778_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
-       ; byrRegs +[rbx]
-       add      rbx, 2
+						;; size=21 bbWeight=0.50 PerfScore 3.00
+G_M56778_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref
+       ; byrRegs +[r14]
+       add      r14, 2
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      bword ptr [rsp+28H], rbx
+       mov      bword ptr [rsp+28H], r14
        mov      dword ptr [rsp+30H], 36
        lea      rcx, [rsp+28H]
        lea      rdx, [rsp+48H]
        call     [<unknown method>]
-       ; byrRegs -[rbx]
+       ; byrRegs -[r14]
        ; gcr arg pop 0
-						;; size=44 bbWeight=0.50 PerfScore 4.75
+       mov      r14d, eax
+						;; size=47 bbWeight=0.50 PerfScore 4.88
 G_M56778_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        jmp      SHORT G_M56778_IG22
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M56778_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; byrRegs +[rbx]
-       mov      rdi, rbx
-       ; byrRegs +[rdi]
+       mov      r14, rbx
+       ; byrRegs +[r14]
        mov      eax, ebp
        cmp      eax, 38
        jne      SHORT G_M56778_IG20
-       cmp      word  ptr [rdi], 40
+       cmp      word  ptr [r14], 40
        jne      SHORT G_M56778_IG20
-       cmp      word  ptr [rdi+4AH], 41
+       cmp      word  ptr [r14+4AH], 41
        je       SHORT G_M56778_IG21
-						;; size=23 bbWeight=0.50 PerfScore 4.88
+						;; size=25 bbWeight=0.50 PerfScore 4.88
 G_M56778_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
-       ; byrRegs -[rbx rdi]
+       ; byrRegs -[rbx r14]
        lea      rcx, [rsp+48H]
        mov      edx, 8
        call     [<unknown method>]
        ; gcr arg pop 0
-       xor      eax, eax
+       xor      r14d, r14d
        jmp      SHORT G_M56778_IG22
-						;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M56778_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       ; byrRegs +[rdi]
+						;; size=21 bbWeight=0.50 PerfScore 3.00
+G_M56778_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref, isz
+       ; byrRegs +[r14]
        cmp      eax, 37
        jb       SHORT G_M56778_IG26
-       add      rdi, 2
+       add      r14, 2
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      bword ptr [rsp+28H], rdi
+       mov      bword ptr [rsp+28H], r14
        mov      dword ptr [rsp+30H], 36
        lea      rcx, [rsp+28H]
        lea      rdx, [rsp+48H]
        call     [<unknown method>]
-       ; byrRegs -[rdi]
+       ; byrRegs -[r14]
        ; gcr arg pop 0
-						;; size=49 bbWeight=0.50 PerfScore 5.38
+       mov      r14d, eax
+						;; size=52 bbWeight=0.50 PerfScore 5.50
 G_M56778_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
-       test     eax, eax
+       test     r14d, r14d
        je       SHORT G_M56778_IG24
        vmovups  xmm0, xmmword ptr [rsp+48H]
        vmovups  xmmword ptr [rsi], xmm0
        mov      eax, 1
-						;; size=19 bbWeight=0.50 PerfScore 3.25
+						;; size=20 bbWeight=0.50 PerfScore 3.25
 G_M56778_IG23:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 96
        pop      rbx
@@ -365,7 +373,7 @@ G_M56778_IG26:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 663, prolog size 35, PerfScore 169.63, instruction count 180, allocated bytes for code 663 (MethodHash=ca302235) for method System.Guid:TryParseExact(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],byref):bool
+; Total bytes of code 695, prolog size 35, PerfScore 173.71, instruction count 187, allocated bytes for code 695 (MethodHash=ca302235) for method System.Guid:TryParseExact(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],byref):bool
 ; ============================================================
 
 Unwind Info:
+13 (+4.98%) : 15513.dasm - FSharp.Compiler.CodeAnalysis.ParseAndCheckFile:getLightSyntaxStatus(System.String,FSharp.Compiler.CodeAnalysis.FSharpParsingOptions):FSharp.Compiler.Lexhelp+LightSyntaxStatus
@@ -8,25 +8,25 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T05] (  4,  4   )     ref  ->  rax         class-hnd single-def
-;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  rsi         class-hnd single-def
-;  V02 loc0         [V02,T12] (  2,  2   )     ref  ->  rdi         class-hnd single-def
+;  V01 arg1         [V01,T07] (  4,  3   )     ref  ->  rsi         class-hnd single-def
+;  V02 loc0         [V02,T13] (  2,  2   )     ref  ->  rdi         class-hnd single-def
 ;* V03 loc1         [V03    ] (  0,  0   )    bool  ->  zero-ref    single-def
 ;  V04 loc2         [V04,T15] (  2,  2   )    bool  ->  rsi         single-def
-;  V05 loc3         [V05,T13] (  2,  2   )     ref  ->  rsi         class-hnd single-def
+;  V05 loc3         [V05,T16] (  2,  1   )     ref  ->  rsi         class-hnd single-def
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+00H]   do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T06] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp"
 ;  V09 tmp2         [V09,T14] (  2,  2   )     ref  ->  rsi         class-hnd single-def "impAppendStmt"
-;  V10 tmp3         [V10,T11] (  3,  2.50)     int  ->  rsi        
+;  V10 tmp3         [V10,T11] (  3,  2   )     int  ->  rsi        
 ;  V11 tmp4         [V11,T02] (  5, 10   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp"
-;  V12 tmp5         [V12,T09] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg"
-;* V13 tmp6         [V13,T16] (  0,  0   )    bool  ->  zero-ref    "Inline return value spill temp"
+;  V12 tmp5         [V12,T08] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg"
+;  V13 tmp6         [V13,T12] (  3,  2   )    bool  ->  rcx         "Inline return value spill temp"
 ;  V14 tmp7         [V14,T00] (  4, 34   )     ref  ->  rax         class-hnd "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp"
 ;  V16 tmp9         [V16,T04] (  2,  8   )     ref  ->  rdi         class-hnd "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp"
 ;  V18 tmp11        [V18,T03] (  2, 10   )     ref  ->  rbx         class-hnd single-def "Inlining Arg"
-;  V19 tmp12        [V19,T07] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp"
+;  V19 tmp12        [V19,T09] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp"
 ;  V20 tmp13        [V20,T10] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp"
 ;  V21 cse0         [V21,T01] (  3, 20   )     ref  ->  rdi         "CSE - aggressive"
 ;
@@ -74,7 +74,7 @@ G_M15017_IG03:        ; bbWeight=8, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000
        mov      rdi, gword ptr [rax+10H]
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       je       SHORT G_M15017_IG06
+       je       SHORT G_M15017_IG05
 						;; size=9 bbWeight=8 PerfScore 26.00
 G_M15017_IG04:        ; bbWeight=4, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, gword ptr [rax+08H]
@@ -87,13 +87,24 @@ G_M15017_IG04:        ; bbWeight=4, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M15017_IG05
+       jne      SHORT G_M15017_IG06
        mov      rax, rdi
        ; gcrRegs +[rax]
        jmp      SHORT G_M15017_IG03
 						;; size=26 bbWeight=4 PerfScore 43.00
-G_M15017_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M15017_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax rbx rdi]
+       xor      ecx, ecx
+       jmp      SHORT G_M15017_IG07
+						;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M15017_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       mov      ecx, 1
+						;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M15017_IG07:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       test     ecx, ecx
+       je       SHORT G_M15017_IG09
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M15017_IG08:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      rsi, gword ptr [rsi+28H]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[bool]
        call     CORINFO_HELP_NEWSFAST
@@ -111,9 +122,9 @@ G_M15017_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        xor      esi, esi
        test     eax, eax
        sete     sil
-       jmp      SHORT G_M15017_IG07
-						;; size=55 bbWeight=1 PerfScore 11.50
-G_M15017_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M15017_IG10
+						;; size=55 bbWeight=0.50 PerfScore 5.75
+G_M15017_IG09:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rsi]
        mov      rsi, gword ptr [rsi+28H]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[bool]
@@ -131,7 +142,7 @@ G_M15017_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      esi, eax
 						;; size=47 bbWeight=0.50 PerfScore 4.12
-G_M15017_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15017_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        movzx    rsi, sil
        mov      rcx, 0xD1FFAB1E      ; FSharp.Compiler.Lexhelp+LightSyntaxStatus
        call     CORINFO_HELP_NEWSFAST
@@ -143,7 +154,7 @@ G_M15017_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdx]
        mov      gword ptr [rax+08H], rdx
 						;; size=33 bbWeight=1 PerfScore 4.75
-G_M15017_IG08:        ; bbWeight=1, epilog, nogc, extend
+G_M15017_IG11:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
@@ -151,7 +162,7 @@ G_M15017_IG08:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 261, prolog size 7, PerfScore 136.23, instruction count 64, allocated bytes for code 261 (MethodHash=5d76c556) for method FSharp.Compiler.CodeAnalysis.ParseAndCheckFile:getLightSyntaxStatus(System.String,FSharp.Compiler.CodeAnalysis.FSharpParsingOptions):FSharp.Compiler.Lexhelp+LightSyntaxStatus
+; Total bytes of code 274, prolog size 7, PerfScore 134.28, instruction count 69, allocated bytes for code 274 (MethodHash=5d76c556) for method FSharp.Compiler.CodeAnalysis.ParseAndCheckFile:getLightSyntaxStatus(System.String,FSharp.Compiler.CodeAnalysis.FSharpParsingOptions):FSharp.Compiler.Lexhelp+LightSyntaxStatus
 ; ============================================================
 
 Unwind Info:
+33 (+5.46%) : 1078.dasm - BepuPhysics.CollisionDetection.NarrowPhase:RegisterContactConstraintAccessor(BepuPhysics.CollisionDetection.ContactConstraintAccessor):this
@@ -17,51 +17,51 @@
 ;  V07 tmp3         [V07,T06] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
 ;  V09 tmp5         [V09,T11] (  3,  0   )     int  ->  rbp         "Inlining Arg"
-;  V10 tmp6         [V10,T14] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V11 tmp7         [V11,T28] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V10 tmp6         [V10,T17] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V11 tmp7         [V11,T12] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V14 tmp10        [V14,T15] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V14 tmp10        [V14,T18] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V16 tmp12        [V16,T07] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V18 tmp14        [V18,T12] (  3,  0   )     int  ->  rbp         "Inlining Arg"
-;  V19 tmp15        [V19,T16] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V20 tmp16        [V20,T29] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V18 tmp14        [V18,T13] (  3,  0   )     int  ->  rbp         "Inlining Arg"
+;  V19 tmp15        [V19,T19] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V20 tmp16        [V20,T14] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V23 tmp19        [V23,T17] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V23 tmp19        [V23,T20] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V24 tmp20        [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument"
 ;  V25 tmp21        [V25,T08] (  4,  0   )     int  ->  rsi         "Inlining Arg"
 ;* V26 tmp22        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp"
-;  V27 tmp23        [V27,T13] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V28 tmp24        [V28,T18] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;* V29 tmp25        [V29,T30] (  0,  0   )    bool  ->  zero-ref    "Inline stloc first use temp"
+;  V27 tmp23        [V27,T15] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V28 tmp24        [V28,T21] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V29 tmp25        [V29,T16] (  3,  0   )    bool  ->  rcx         "Inline stloc first use temp"
 ;* V30 tmp26        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg"
 ;* V31 tmp27        [V31    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V32 tmp28        [V32,T19] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V32 tmp28        [V32,T22] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V33 tmp29        [V33    ] (  0,  0   )   byref  ->  zero-ref    V06._reference(offs=0x00) P-INDEP "field V06._reference (fldOffset=0x0)"
 ;* V34 tmp30        [V34    ] (  0,  0   )     int  ->  zero-ref    V06._length(offs=0x08) P-INDEP "field V06._length (fldOffset=0x8)"
-;  V35 tmp31        [V35,T20] (  2,  0   )   byref  ->  rdi         single-def V08._reference(offs=0x00) P-INDEP "field V08._reference (fldOffset=0x0)"
+;  V35 tmp31        [V35,T23] (  2,  0   )   byref  ->  rdi         single-def V08._reference(offs=0x00) P-INDEP "field V08._reference (fldOffset=0x0)"
 ;* V36 tmp32        [V36    ] (  0,  0   )     int  ->  zero-ref    V08._length(offs=0x08) P-INDEP "field V08._length (fldOffset=0x8)"
-;  V37 tmp33        [V37,T21] (  2,  0   )   byref  ->  rdi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
+;  V37 tmp33        [V37,T24] (  2,  0   )   byref  ->  rdi         single-def V12._reference(offs=0x00) P-INDEP "field V12._reference (fldOffset=0x0)"
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    V12._length(offs=0x08) P-INDEP "field V12._length (fldOffset=0x8)"
 ;* V39 tmp35        [V39    ] (  0,  0   )   byref  ->  zero-ref    V15._reference(offs=0x00) P-INDEP "field V15._reference (fldOffset=0x0)"
 ;* V40 tmp36        [V40    ] (  0,  0   )     int  ->  zero-ref    V15._length(offs=0x08) P-INDEP "field V15._length (fldOffset=0x8)"
-;  V41 tmp37        [V41,T22] (  2,  0   )   byref  ->  rdi         single-def V17._reference(offs=0x00) P-INDEP "field V17._reference (fldOffset=0x0)"
+;  V41 tmp37        [V41,T25] (  2,  0   )   byref  ->  rdi         single-def V17._reference(offs=0x00) P-INDEP "field V17._reference (fldOffset=0x0)"
 ;* V42 tmp38        [V42    ] (  0,  0   )     int  ->  zero-ref    V17._length(offs=0x08) P-INDEP "field V17._length (fldOffset=0x8)"
-;  V43 tmp39        [V43,T23] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
+;  V43 tmp39        [V43,T26] (  2,  0   )   byref  ->  rdi         single-def V21._reference(offs=0x00) P-INDEP "field V21._reference (fldOffset=0x0)"
 ;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    V21._length(offs=0x08) P-INDEP "field V21._length (fldOffset=0x8)"
 ;* V45 tmp41        [V45    ] (  0,  0   )   byref  ->  zero-ref    V24._reference(offs=0x00) P-INDEP "field V24._reference (fldOffset=0x0)"
 ;* V46 tmp42        [V46    ] (  0,  0   )     int  ->  zero-ref    V24._length(offs=0x08) P-INDEP "field V24._length (fldOffset=0x8)"
-;  V47 tmp43        [V47,T24] (  2,  0   )   byref  ->  rdi         single-def V26._reference(offs=0x00) P-INDEP "field V26._reference (fldOffset=0x0)"
+;  V47 tmp43        [V47,T27] (  2,  0   )   byref  ->  rdi         single-def V26._reference(offs=0x00) P-INDEP "field V26._reference (fldOffset=0x0)"
 ;* V48 tmp44        [V48    ] (  0,  0   )     int  ->  zero-ref    V26._length(offs=0x08) P-INDEP "field V26._length (fldOffset=0x8)"
-;  V49 tmp45        [V49,T25] (  2,  0   )   byref  ->  rdi         single-def V30._reference(offs=0x00) P-INDEP "field V30._reference (fldOffset=0x0)"
+;  V49 tmp45        [V49,T28] (  2,  0   )   byref  ->  rdi         single-def V30._reference(offs=0x00) P-INDEP "field V30._reference (fldOffset=0x0)"
 ;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref    V30._length(offs=0x08) P-INDEP "field V30._length (fldOffset=0x8)"
 ;  V51 tmp47        [V51,T02] (  3,  6   )     ref  ->  rdx         single-def "arr expr"
 ;  V52 tmp48        [V52,T10] (  3,  0   )     ref  ->   r8         single-def "arr expr"
-;  V53 tmp49        [V53,T26] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V54 tmp50        [V54,T27] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V53 tmp49        [V53,T29] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V54 tmp50        [V54,T30] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V55 cse0         [V55,T04] (  3,  3   )     ref  ->  rcx         "CSE - aggressive"
 ;  V56 cse1         [V56,T05] (  3,  2.50)     ref  ->  rdx         "CSE - aggressive"
 ;
@@ -117,7 +117,7 @@ G_M57740_IG05:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
        mov      rdx, rcx
        ; gcrRegs +[rdx]
        cmp      ebx, dword ptr [rdx+08H]
-       jae      G_M57740_IG16
+       jae      G_M57740_IG19
        mov      r8d, ebx
        cmp      gword ptr [rdx+8*r8+10H], 0
        jne      SHORT G_M57740_IG07
@@ -147,7 +147,7 @@ G_M57740_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+30H]
        cmp      ecx, dword ptr [rsp+40H]
-       ja       G_M57740_IG12
+       ja       G_M57740_IG14
        mov      rax, bword ptr [rsp+38H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -161,6 +161,7 @@ G_M57740_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebp, 37
        jb       SHORT G_M57740_IG08
        mov      rcx, 0xD1FFAB1E
@@ -171,14 +172,19 @@ G_M57740_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        vmovdqu  ymmword ptr [rdi], ymm0
        vmovdqu  ymmword ptr [rdi+20H], ymm1
        vmovdqu  xmmword ptr [rdi+3AH], xmm2
-       mov      ecx, dword ptr [rsp+30H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=116 bbWeight=0 PerfScore 0.00
+G_M57740_IG08:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M57740_IG09
+       mov      ecx, dword ptr [rsp+30H]
        add      ecx, 37
        mov      dword ptr [rsp+30H], ecx
-       jmp      SHORT G_M57740_IG09
-						;; size=122 bbWeight=0 PerfScore 0.00
-G_M57740_IG08:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M57740_IG10
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M57740_IG09:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+20H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -186,14 +192,14 @@ G_M57740_IG08:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M57740_IG09:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M57740_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        lea      rcx, [rsp+20H]
        mov      edx, ebx
        call     [<unknown method>]
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+30H]
        cmp      ecx, dword ptr [rsp+40H]
-       ja       G_M57740_IG12
+       ja       G_M57740_IG14
        mov      rax, bword ptr [rsp+38H]
        ; byrRegs +[rax]
        mov      edx, ecx
@@ -207,22 +213,28 @@ G_M57740_IG09:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; byrRegs -[rax]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebp, 30
-       jb       SHORT G_M57740_IG10
+       jb       SHORT G_M57740_IG11
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        vmovdqu  ymm0, ymmword ptr [rcx]
        vmovdqu  ymm1, ymmword ptr [rcx+1CH]
        vmovdqu  ymmword ptr [rdi], ymm0
        vmovdqu  ymmword ptr [rdi+1CH], ymm1
-       mov      ecx, dword ptr [rsp+30H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=97 bbWeight=0 PerfScore 0.00
+G_M57740_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M57740_IG12
+       mov      ecx, dword ptr [rsp+30H]
        add      ecx, 30
        mov      dword ptr [rsp+30H], ecx
-       jmp      SHORT G_M57740_IG11
-						;; size=103 bbWeight=0 PerfScore 0.00
-G_M57740_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M57740_IG13
+						;; size=17 bbWeight=0 PerfScore 0.00
+G_M57740_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+20H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -230,11 +242,11 @@ G_M57740_IG10:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M57740_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M57740_IG13:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        mov      r8, gword ptr [rsi+60H]
        ; gcrRegs +[r8]
        cmp      ebx, dword ptr [r8+08H]
-       jae      G_M57740_IG16
+       jae      G_M57740_IG19
        mov      ecx, ebx
        mov      r8, gword ptr [r8+8*rcx+10H]
        lea      rcx, [rsp+20H]
@@ -244,14 +256,14 @@ G_M57740_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      esi, dword ptr [rsp+30H]
        cmp      esi, dword ptr [rsp+40H]
-       jbe      SHORT G_M57740_IG13
+       jbe      SHORT G_M57740_IG15
 						;; size=52 bbWeight=0 PerfScore 0.00
-G_M57740_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57740_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M57740_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M57740_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, bword ptr [rsp+38H]
        ; byrRegs +[rcx]
        mov      eax, esi
@@ -265,20 +277,26 @@ G_M57740_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        shr      ecx, 31
        call     [System.Diagnostics.Debug:Assert(bool)]
        ; gcr arg pop 0
+       xor      ecx, ecx
        cmp      ebx, 1
-       jb       SHORT G_M57740_IG14
+       jb       SHORT G_M57740_IG16
        mov      rcx, 0xD1FFAB1E
        ; byrRegs +[rcx]
        movzx    rdx, word  ptr [rcx]
        mov      word  ptr [rdi], dx
-       mov      ecx, dword ptr [rsp+30H]
+       mov      ecx, 1
        ; byrRegs -[rcx]
+						;; size=58 bbWeight=0 PerfScore 0.00
+G_M57740_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; byrRegs -[rdi]
+       test     ecx, ecx
+       je       SHORT G_M57740_IG17
+       mov      ecx, dword ptr [rsp+30H]
        inc      ecx
        mov      dword ptr [rsp+30H], ecx
-       jmp      SHORT G_M57740_IG15
-						;; size=63 bbWeight=0 PerfScore 0.00
-G_M57740_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       jmp      SHORT G_M57740_IG18
+						;; size=16 bbWeight=0 PerfScore 0.00
+G_M57740_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rsp+20H]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -286,7 +304,7 @@ G_M57740_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
 						;; size=21 bbWeight=0 PerfScore 0.00
-G_M57740_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57740_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -310,13 +328,13 @@ G_M57740_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
...
Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 1,979 116 1,819 44 -1,683 +31,943
benchmarks.run.windows.x64.checked.mch 218 4 203 11 -16 +3,268
benchmarks.run_pgo.windows.x64.checked.mch 1,623 50 1,562 11 -1,134 +25,412
benchmarks.run_tiered.windows.x64.checked.mch 126 1 123 2 -4 +2,425
coreclr_tests.run.windows.x64.checked.mch 1,044 31 969 44 -265 +26,280
libraries.crossgen2.windows.x64.checked.mch 34 3 22 9 -21 +238
libraries.pmi.windows.x64.checked.mch 781 34 670 77 -267 +10,670
libraries_tests.pmi.windows.x64.checked.mch 1,181 24 1,135 22 -102 +19,824
realworld.run.windows.x64.checked.mch 84 3 66 15 -9 +1,127
7,070 266 6,569 235 -3,501 +121,187

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 113,918 47,775 66,143 6,056 (5.32%) 6,056 (5.32%)
benchmarks.run.windows.x64.checked.mch 24,333 1,115 23,218 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 79,218 36,123 43,095 0 (0.00%) 0 (0.00%)
benchmarks.run_tiered.windows.x64.checked.mch 42,543 30,136 12,407 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 537,267 326,978 210,289 6,347 (1.18%) 6,347 (1.18%)
libraries.crossgen2.windows.x64.checked.mch 35,164 0 35,164 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 295,189 5,593 289,596 0 (0.00%) 0 (0.00%)
libraries_tests.pmi.windows.x64.checked.mch 348,057 7,468 340,589 0 (0.00%) 1 (0.00%)
realworld.run.windows.x64.checked.mch 38,740 4,484 34,256 0 (0.00%) 0 (0.00%)
1,514,429 459,672 1,054,757 12,403 (0.82%) 12,404 (0.82%)

jit-analyze output

aspnet.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38046237 (overridden on cmd)
Total bytes of diff: 38076497 (overridden on cmd)
Total bytes of delta: 30260 (0.08 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         123 : 31175.dasm (1.82% of base)
         123 : 24004.dasm (1.82% of base)
         121 : 65703.dasm (10.34% of base)
         121 : 68000.dasm (2.51% of base)
         117 : 31894.dasm (1.74% of base)
         111 : 100982.dasm (5.57% of base)
         109 : 30490.dasm (1.65% of base)
         104 : 28367.dasm (1.58% of base)
         103 : 29400.dasm (1.55% of base)
         102 : 56546.dasm (4.19% of base)
         102 : 65939.dasm (4.19% of base)
         100 : 109253.dasm (5.66% of base)
          99 : 56042.dasm (2.46% of base)
          99 : 111445.dasm (5.41% of base)
          98 : 18209.dasm (4.86% of base)
          98 : 30937.dasm (4.86% of base)
          98 : 15297.dasm (4.86% of base)
          98 : 19787.dasm (4.86% of base)
          98 : 28981.dasm (4.86% of base)
          94 : 102816.dasm (4.67% of base)

Top file improvements (bytes):
        -126 : 65977.dasm (-2.32% of base)
        -126 : 57561.dasm (-2.32% of base)
        -112 : 58928.dasm (-1.78% of base)
        -112 : 61784.dasm (-1.80% of base)
        -108 : 66024.dasm (-1.72% of base)
         -34 : 104444.dasm (-3.09% of base)
         -34 : 111530.dasm (-3.09% of base)
         -34 : 115459.dasm (-3.09% of base)
         -34 : 19784.dasm (-3.09% of base)
         -28 : 80479.dasm (-0.40% of base)
         -24 : 87592.dasm (-3.34% of base)
         -24 : 102848.dasm (-3.34% of base)
         -22 : 80385.dasm (-1.88% of base)
         -22 : 63505.dasm (-1.99% of base)
         -22 : 66989.dasm (-1.99% of base)
         -21 : 65847.dasm (-0.90% of base)
         -21 : 54370.dasm (-0.90% of base)
         -18 : 65966.dasm (-1.10% of base)
         -18 : 113445.dasm (-2.49% of base)
         -18 : 57224.dasm (-1.10% of base)

92 total files with Code Size differences (35 improved, 57 regressed), 20 unchanged.

Top method regressions (bytes):
         123 ( 1.82% of base) : 31175.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
         123 ( 1.82% of base) : 24004.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
         121 ( 2.51% of base) : 68000.dasm - OrchardCore.ContentManagement.Display.ContentDisplay.ContentPartDisplayDriver`1+<>c__DisplayClass3_0[System.__Canon]:<Factory>b__0(OrchardCore.DisplayManagement.Implementation.ShapeDisplayContext):this
         121 (10.34% of base) : 65703.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         117 ( 1.74% of base) : 31894.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
         111 ( 5.57% of base) : 100982.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this
         109 ( 1.65% of base) : 30490.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
         104 ( 1.58% of base) : 28367.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
         103 ( 1.55% of base) : 29400.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
         102 ( 4.19% of base) : 56546.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddEndpoints(System.Collections.Generic.List`1[Microsoft.AspNetCore.Http.Endpoint],System.Collections.Generic.HashSet`1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.Collections.Generic.IReadOnlyList`1[Microsoft.AspNetCore.Mvc.Routing.ConventionalRouteEntry],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],bool,Microsoft.AspNetCore.Routing.Patterns.RoutePattern):this
         102 ( 4.19% of base) : 65939.dasm - Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory:AddEndpoints(System.Collections.Generic.List`1[Microsoft.AspNetCore.Http.Endpoint],System.Collections.Generic.HashSet`1[System.String],Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor,System.Collections.Generic.IReadOnlyList`1[Microsoft.AspNetCore.Mvc.Routing.ConventionalRouteEntry],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],System.Collections.Generic.IReadOnlyList`1[System.Action`1[Microsoft.AspNetCore.Builder.EndpointBuilder]],bool,Microsoft.AspNetCore.Routing.Patterns.RoutePattern):this
         100 ( 5.66% of base) : 109253.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
          99 ( 2.46% of base) : 56042.dasm - OrchardCore.Indexing.Services.IndexingTaskManager+<FlushAsync>d__8:MoveNext():this
          99 ( 5.41% of base) : 111445.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
          98 ( 4.86% of base) : 18209.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this
          98 ( 4.86% of base) : 30937.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this
          98 ( 4.86% of base) : 15297.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this
          98 ( 4.86% of base) : 19787.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this
          98 ( 4.86% of base) : 28981.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this
          94 ( 4.67% of base) : 102816.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequestsAsync>d__237`1[System.__Canon]:MoveNext():this

Top method improvements (bytes):
        -126 (-2.32% of base) : 65977.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__7:MoveNext():this
        -126 (-2.32% of base) : 57561.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__7:MoveNext():this
        -112 (-1.78% of base) : 58928.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__7:MoveNext():this
        -112 (-1.80% of base) : 61784.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__7:MoveNext():this
        -108 (-1.72% of base) : 66024.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__7:MoveNext():this
         -34 (-3.09% of base) : 104444.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -34 (-3.09% of base) : 111530.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -34 (-3.09% of base) : 115459.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -34 (-3.09% of base) : 19784.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -28 (-0.40% of base) : 80479.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayManager+<BuildDisplayAsync>d__7:MoveNext():this
         -24 (-3.34% of base) : 87592.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this
         -24 (-3.34% of base) : 102848.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this
         -22 (-1.88% of base) : 80385.dasm - Microsoft.Extensions.Caching.Memory.CacheExtensions:GetOrCreate[System.__Canon](Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func`2[System.__Canon,System.__Canon]):System.__Canon
         -22 (-1.99% of base) : 63505.dasm - OrchardCore.ContentManagement.ContentDefinitionManager:CheckDocumentIdentifier(OrchardCore.ContentManagement.Metadata.Records.ContentDefinitionRecord):this
         -22 (-1.99% of base) : 66989.dasm - OrchardCore.ContentManagement.ContentDefinitionManager:CheckDocumentIdentifier(OrchardCore.ContentManagement.Metadata.Records.ContentDefinitionRecord):this
         -21 (-0.90% of base) : 65847.dasm - OrchardCore.Environment.Shell.ShellDescriptorFeaturesManager+<>c__DisplayClass5_0+<<UpdateFeaturesAsync>b__12>d:MoveNext():this
         -21 (-0.90% of base) : 54370.dasm - OrchardCore.Environment.Shell.ShellDescriptorFeaturesManager+<>c__DisplayClass5_0+<<UpdateFeaturesAsync>b__12>d:MoveNext():this
         -18 (-2.49% of base) : 113445.dasm - Microsoft.AspNetCore.Mvc.Razor.ViewLocationCacheKey:Equals(Microsoft.AspNetCore.Mvc.Razor.ViewLocationCacheKey):bool:this
         -18 (-1.92% of base) : 66811.dasm - Microsoft.Extensions.Caching.Memory.CacheExtensions:TryGetValue[System.__Canon](Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,byref):bool
         -18 (-1.10% of base) : 65966.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager:BuildDescriptors(OrchardCore.DisplayManagement.Descriptors.IShapeTableProvider,System.Collections.Generic.IEnumerable`1[OrchardCore.DisplayManagement.Descriptors.ShapeAlteration],System.Collections.Generic.Dictionary`2[System.String,OrchardCore.DisplayManagement.Descriptors.FeatureShapeDescriptor]):this

Top method regressions (percentages):
          66 (16.18% of base) : 48526.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:InsertionSort(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon])
          62 (15.42% of base) : 81213.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:InsertionSort(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon])
          62 (15.42% of base) : 78321.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:InsertionSort(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon])
          30 (11.76% of base) : 84669.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 32301.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 96872.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 29501.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 30746.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 24576.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 28866.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 31591.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 28610.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 29855.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 30876.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 32249.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 89422.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 31537.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.76% of base) : 24480.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:SetExistingTaskResult(System.Threading.Tasks.Task`1[int],int)
          30 (11.72% of base) : 96792.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)
          30 (11.72% of base) : 117047.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:SetExistingTaskResult(System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult],System.Threading.Tasks.VoidTaskResult)

Top method improvements (percentages):
         -15 (-5.12% of base) : 63414.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
         -15 (-5.12% of base) : 79619.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
         -15 (-5.12% of base) : 67028.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
         -24 (-3.34% of base) : 87592.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this
         -24 (-3.34% of base) : 102848.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateLiteralFields(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,byref):this
         -34 (-3.09% of base) : 104444.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -34 (-3.09% of base) : 111530.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -34 (-3.09% of base) : 115459.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -34 (-3.09% of base) : 19784.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
          -5 (-2.75% of base) : 17423.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -5 (-2.75% of base) : 18379.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -5 (-2.75% of base) : 7960.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -5 (-2.75% of base) : 16055.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -5 (-2.75% of base) : 16790.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -5 (-2.75% of base) : 13708.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -5 (-2.75% of base) : 18988.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(ulong,System.Object):System.Object
          -7 (-2.65% of base) : 81370.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
          -7 (-2.65% of base) : 48985.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
          -7 (-2.65% of base) : 78480.dasm - Newtonsoft.Json.Serialization.JsonPropertyCollection:GetProperty(System.String,int):Newtonsoft.Json.Serialization.JsonProperty:this
         -18 (-2.49% of base) : 113445.dasm - Microsoft.AspNetCore.Mvc.Razor.ViewLocationCacheKey:Equals(Microsoft.AspNetCore.Mvc.Razor.ViewLocationCacheKey):bool:this


benchmarks.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 7293703 (overridden on cmd)
Total bytes of diff: 7296955 (overridden on cmd)
Total bytes of delta: 3252 (0.04 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          66 : 13135.dasm (0.88% of base)
          55 : 24181.dasm (5.64% of base)
          55 : 21851.dasm (5.72% of base)
          55 : 12749.dasm (5.64% of base)
          55 : 22076.dasm (5.64% of base)
          48 : 10385.dasm (4.21% of base)
          27 : 6940.dasm (2.01% of base)
          22 : 17334.dasm (4.27% of base)
          22 : 20148.dasm (4.54% of base)
          22 : 23399.dasm (4.24% of base)
          22 : 15255.dasm (4.54% of base)
          22 : 19775.dasm (4.20% of base)
          22 : 15332.dasm (4.54% of base)
          22 : 9252.dasm (4.24% of base)
          22 : 15722.dasm (5.02% of base)
          22 : 21028.dasm (4.54% of base)
          22 : 22272.dasm (4.06% of base)
          22 : 21143.dasm (4.14% of base)
          22 : 22629.dasm (4.27% of base)
          22 : 16821.dasm (4.66% of base)

Top file improvements (bytes):
          -4 : 10557.dasm (-0.70% of base)
          -4 : 20972.dasm (-1.81% of base)
          -4 : 7979.dasm (-0.67% of base)
          -4 : 468.dasm (-0.27% of base)

49 total files with Code Size differences (4 improved, 45 regressed), 11 unchanged.

Top method regressions (bytes):
          66 ( 0.88% of base) : 13135.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
          55 ( 5.64% of base) : 12749.dasm - System.MathBenchmarks.Double:SinCosPiTest()
          55 ( 5.64% of base) : 24181.dasm - System.MathBenchmarks.Double:SinCosTest()
          55 ( 5.64% of base) : 22076.dasm - System.MathBenchmarks.Single:SinCosPiTest()
          55 ( 5.72% of base) : 21851.dasm - System.MathBenchmarks.Single:SinCosTest()
          48 ( 4.21% of base) : 10385.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this
          27 ( 2.01% of base) : 6940.dasm - System.Text.Json.Serialization.ReadBufferState+<ReadFromStreamAsync>d__11:MoveNext():this
          22 ( 4.52% of base) : 4488.dasm - System.MathBenchmarks.Double:AbsTest()
          22 ( 4.24% of base) : 9252.dasm - System.MathBenchmarks.Double:AcosTest()
          22 ( 4.54% of base) : 15332.dasm - System.MathBenchmarks.Double:CeilingTest()
          22 ( 5.02% of base) : 15722.dasm - System.MathBenchmarks.Double:CopySignTest()
          22 ( 4.54% of base) : 20148.dasm - System.MathBenchmarks.Double:FloorTest()
          22 ( 4.66% of base) : 21169.dasm - System.MathBenchmarks.Double:ILogBTest()
          22 ( 4.06% of base) : 22272.dasm - System.MathBenchmarks.Double:Log10P1Test()
          22 ( 4.14% of base) : 22476.dasm - System.MathBenchmarks.Double:MaxTest()
          22 ( 4.54% of base) : 23433.dasm - System.MathBenchmarks.Double:RoundTest()
          22 ( 4.59% of base) : 15654.dasm - System.MathBenchmarks.Double:SqrtTest()
          22 ( 4.23% of base) : 17076.dasm - System.MathBenchmarks.Double:TanPiTest()
          22 ( 4.52% of base) : 18332.dasm - System.MathBenchmarks.Single:AbsTest()
          22 ( 4.19% of base) : 19607.dasm - System.MathBenchmarks.Single:AcoshTest()

Top method improvements (bytes):
          -4 (-0.70% of base) : 10557.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo
          -4 (-1.81% of base) : 20972.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
          -4 (-0.67% of base) : 7979.dasm - System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
          -4 (-0.27% of base) : 468.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase

Top method regressions (percentages):
          55 ( 5.72% of base) : 21851.dasm - System.MathBenchmarks.Single:SinCosTest()
          14 ( 5.69% of base) : 8590.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryCreateParameterMap(System.Reflection.ParameterInfo[],System.Type[],byref):bool
          55 ( 5.64% of base) : 24181.dasm - System.MathBenchmarks.Double:SinCosTest()
          55 ( 5.64% of base) : 12749.dasm - System.MathBenchmarks.Double:SinCosPiTest()
          55 ( 5.64% of base) : 22076.dasm - System.MathBenchmarks.Single:SinCosPiTest()
          22 ( 5.02% of base) : 15722.dasm - System.MathBenchmarks.Double:CopySignTest()
          22 ( 5.02% of base) : 18725.dasm - System.MathBenchmarks.Single:CopySignTest()
          22 ( 4.66% of base) : 21169.dasm - System.MathBenchmarks.Double:ILogBTest()
          22 ( 4.66% of base) : 16821.dasm - System.MathBenchmarks.Single:ILogBTest()
          13 ( 4.64% of base) : 11276.dasm - System.Threading.Channels.ChannelUtilities:Complete(System.Threading.Tasks.TaskCompletionSource,System.Exception)
          22 ( 4.59% of base) : 15654.dasm - System.MathBenchmarks.Double:SqrtTest()
          22 ( 4.59% of base) : 18659.dasm - System.MathBenchmarks.Single:SqrtTest()
          22 ( 4.54% of base) : 15332.dasm - System.MathBenchmarks.Double:CeilingTest()
          22 ( 4.54% of base) : 20148.dasm - System.MathBenchmarks.Double:FloorTest()
          22 ( 4.54% of base) : 23433.dasm - System.MathBenchmarks.Double:RoundTest()
          22 ( 4.54% of base) : 9257.dasm - System.MathBenchmarks.Single:CeilingTest()
          22 ( 4.54% of base) : 15255.dasm - System.MathBenchmarks.Single:FloorTest()
          22 ( 4.54% of base) : 21028.dasm - System.MathBenchmarks.Single:RoundTest()
          22 ( 4.52% of base) : 4488.dasm - System.MathBenchmarks.Double:AbsTest()
          22 ( 4.52% of base) : 18332.dasm - System.MathBenchmarks.Single:AbsTest()

Top method improvements (percentages):
          -4 (-1.81% of base) : 20972.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
          -4 (-0.70% of base) : 10557.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo
          -4 (-0.67% of base) : 7979.dasm - System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
          -4 (-0.27% of base) : 468.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase


benchmarks.run_pgo.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 27312724 (overridden on cmd)
Total bytes of diff: 27337002 (overridden on cmd)
Total bytes of delta: 24278 (0.09 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         424 : 50418.dasm (14.57% of base)
         296 : 78100.dasm (11.35% of base)
         263 : 63592.dasm (8.39% of base)
         237 : 20456.dasm (7.21% of base)
         235 : 78089.dasm (21.62% of base)
         229 : 8954.dasm (6.99% of base)
         229 : 69375.dasm (6.99% of base)
         189 : 50254.dasm (5.84% of base)
         179 : 45020.dasm (5.82% of base)
         157 : 78088.dasm (19.43% of base)
         155 : 26646.dasm (4.79% of base)
         152 : 74276.dasm (5.00% of base)
         150 : 64562.dasm (4.39% of base)
         135 : 47249.dasm (4.66% of base)
         131 : 38316.dasm (7.20% of base)
         127 : 62886.dasm (4.55% of base)
         126 : 65275.dasm (3.09% of base)
         124 : 50998.dasm (3.60% of base)
         114 : 38777.dasm (6.25% of base)
         112 : 44839.dasm (2.93% of base)

Top file improvements (bytes):
        -119 : 45545.dasm (-3.94% of base)
        -101 : 42548.dasm (-3.30% of base)
         -49 : 39687.dasm (-10.72% of base)
         -49 : 59304.dasm (-10.72% of base)
         -49 : 67500.dasm (-10.72% of base)
         -49 : 78818.dasm (-10.72% of base)
         -49 : 26496.dasm (-10.72% of base)
         -49 : 61405.dasm (-10.72% of base)
         -49 : 48639.dasm (-10.72% of base)
         -49 : 48906.dasm (-10.72% of base)
         -44 : 52878.dasm (-2.85% of base)
         -41 : 72613.dasm (-2.67% of base)
         -40 : 52951.dasm (-2.50% of base)
         -28 : 78099.dasm (-0.78% of base)
         -24 : 52029.dasm (-3.12% of base)
         -23 : 70720.dasm (-0.80% of base)
         -22 : 52883.dasm (-1.42% of base)
         -20 : 21635.dasm (-2.17% of base)
         -20 : 21634.dasm (-2.07% of base)
         -20 : 66038.dasm (-0.69% of base)

78 total files with Code Size differences (25 improved, 53 regressed), 11 unchanged.

Top method regressions (bytes):
         424 (14.57% of base) : 50418.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         296 (11.35% of base) : 78100.dasm - StringSort:DoStringSortIteration(System.String[][],int,int):int
         263 ( 8.39% of base) : 63592.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         237 ( 7.21% of base) : 20456.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         235 (21.62% of base) : 78089.dasm - StringSort:StrHeapSort(System.String[],int,int)
         229 ( 6.99% of base) : 8954.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         229 ( 6.99% of base) : 69375.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         189 ( 5.84% of base) : 50254.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         179 ( 5.82% of base) : 45020.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         157 (19.43% of base) : 78088.dasm - StringSort:StrHeapSort(System.String[],int,int)
         155 ( 4.79% of base) : 26646.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         152 ( 5.00% of base) : 74276.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         150 ( 4.39% of base) : 64562.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         135 ( 4.66% of base) : 47249.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         131 ( 7.20% of base) : 38316.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         127 ( 4.55% of base) : 62886.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         126 ( 3.09% of base) : 65275.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object
         124 ( 3.60% of base) : 50998.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         114 ( 6.25% of base) : 38777.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         112 ( 2.93% of base) : 44839.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object

Top method improvements (bytes):
        -119 (-3.94% of base) : 45545.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
        -101 (-3.30% of base) : 42548.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         -49 (-10.72% of base) : 39687.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 59304.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 67500.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 78818.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 26496.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 61405.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 48639.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 48906.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -44 (-2.85% of base) : 52878.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Create(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,int,ulong,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
         -41 (-2.67% of base) : 72613.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Create(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,int,ulong,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
         -40 (-2.50% of base) : 52951.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateLoop(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,int,bool):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
         -28 (-0.78% of base) : 78099.dasm - StringSort:Run():double:this
         -24 (-3.12% of base) : 52029.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter+ObjectMapInfo:IsCompatible(int,System.String[],System.Type[]):bool:this
         -23 (-0.80% of base) : 70720.dasm - System.Text.RegularExpressions.RegexCache:Add(System.Text.RegularExpressions.RegexCache+Key,System.Text.RegularExpressions.Regex)
         -22 (-1.42% of base) : 52883.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:TryInsert(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon,ubyte):bool:this
         -20 (-2.17% of base) : 21635.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this
         -20 (-2.07% of base) : 21634.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:TryGetValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],byref):bool:this
         -20 (-0.69% of base) : 66038.dasm - System.Text.RegularExpressions.RegexCache:Add(System.Text.RegularExpressions.RegexCache+Key,System.Text.RegularExpressions.Regex)

Top method regressions (percentages):
          87 (30.63% of base) : 78085.dasm - StringSort:strsift(System.String[],int,int)
         235 (21.62% of base) : 78089.dasm - StringSort:StrHeapSort(System.String[],int,int)
         157 (19.43% of base) : 78088.dasm - StringSort:StrHeapSort(System.String[],int,int)
          51 (15.60% of base) : 5832.dasm - System.Reflection.RuntimeMethodInfo:get_Invoker():System.Reflection.MethodInvoker:this
          51 (15.60% of base) : 58561.dasm - System.Reflection.RuntimeMethodInfo:get_Invoker():System.Reflection.MethodInvoker:this
         424 (14.57% of base) : 50418.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
          34 (12.06% of base) : 75649.dasm - System.Net.Sockets.Socket:SetToConnected():this
          43 (11.68% of base) : 5896.dasm - System.Reflection.RuntimeMethodInfo:get_InvocationFlags():uint:this
         296 (11.35% of base) : 78100.dasm - StringSort:DoStringSortIteration(System.String[][],int,int):int
          34 (10.79% of base) : 10622.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 48797.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 39187.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 53061.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 21941.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 28765.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 65796.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 70545.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          34 (10.79% of base) : 66267.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          32 (10.09% of base) : 68064.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this
          32 (10.09% of base) : 76676.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:get_Item(System.__Canon):System.__Canon:this

Top method improvements (percentages):
         -49 (-10.72% of base) : 39687.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 59304.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 67500.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 78818.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 26496.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 61405.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 48639.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
         -49 (-10.72% of base) : 48906.dasm - System.Linq.Enumerable:Count[ushort](System.Collections.Generic.IEnumerable`1[ushort],System.Func`2[ushort,bool]):int
        -119 (-3.94% of base) : 45545.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
        -101 (-3.30% of base) : 42548.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart()
         -24 (-3.12% of base) : 52029.dasm - System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter+ObjectMapInfo:IsCompatible(int,System.String[],System.Type[]):bool:this
         -44 (-2.85% of base) : 52878.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Create(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,int,ulong,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
         -41 (-2.67% of base) : 72613.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Create(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],int,System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,int,ulong,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
         -40 (-2.50% of base) : 52951.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateLoop(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,int,bool):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
         -20 (-2.17% of base) : 21635.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this
         -11 (-2.14% of base) : 42465.dasm - System.Linq.Enumerable+EnumerablePartition`1[ushort]:ToArray():ushort[]:this
         -11 (-2.14% of base) : 43798.dasm - System.Linq.Enumerable+EnumerablePartition`1[ushort]:ToArray():ushort[]:this
         -11 (-2.14% of base) : 49252.dasm - System.Linq.Enumerable+EnumerablePartition`1[ushort]:ToArray():ushort[]:this
         -11 (-2.14% of base) : 47679.dasm - System.Linq.Enumerable+EnumerablePartition`1[ushort]:ToArray():ushort[]:this
         -11 (-2.14% of base) : 46481.dasm - System.Linq.Enumerable+EnumerablePartition`1[ushort]:ToArray():ushort[]:this


benchmarks.run_tiered.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 10236085 (overridden on cmd)
Total bytes of diff: 10238506 (overridden on cmd)
Total bytes of delta: 2421 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          55 : 39351.dasm (4.95% of base)
          55 : 23218.dasm (4.95% of base)
          55 : 42226.dasm (4.93% of base)
          55 : 39045.dasm (4.94% of base)
          22 : 33599.dasm (4.29% of base)
          22 : 36086.dasm (3.74% of base)
          22 : 28696.dasm (3.94% of base)
          22 : 33288.dasm (3.94% of base)
          22 : 16609.dasm (3.91% of base)
          22 : 28154.dasm (3.93% of base)
          22 : 38134.dasm (3.74% of base)
          22 : 30671.dasm (3.74% of base)
          22 : 33611.dasm (3.70% of base)
          22 : 39886.dasm (3.74% of base)
          22 : 27743.dasm (3.93% of base)
          22 : 31884.dasm (3.74% of base)
          22 : 37163.dasm (3.93% of base)
          22 : 16542.dasm (3.74% of base)
          22 : 33131.dasm (3.70% of base)
          22 : 34758.dasm (3.74% of base)

Top file improvements (bytes):
          -4 : 7818.dasm (-0.27% of base)

62 total files with Code Size differences (1 improved, 61 regressed), 2 unchanged.

Top method regressions (bytes):
          55 ( 4.95% of base) : 23218.dasm - System.MathBenchmarks.Double:SinCosPiTest()
          55 ( 4.93% of base) : 42226.dasm - System.MathBenchmarks.Double:SinCosTest()
          55 ( 4.95% of base) : 39351.dasm - System.MathBenchmarks.Single:SinCosPiTest()
          55 ( 4.94% of base) : 39045.dasm - System.MathBenchmarks.Single:SinCosTest()
          22 ( 3.91% of base) : 16609.dasm - System.MathBenchmarks.Double:AbsTest()
          22 ( 3.70% of base) : 33611.dasm - System.MathBenchmarks.Double:AcoshTest()
          22 ( 3.93% of base) : 28154.dasm - System.MathBenchmarks.Double:CeilingTest()
          22 ( 4.29% of base) : 28594.dasm - System.MathBenchmarks.Double:CopySignTest()
          22 ( 3.74% of base) : 29604.dasm - System.MathBenchmarks.Double:CosDoubleTest()
          22 ( 3.74% of base) : 30671.dasm - System.MathBenchmarks.Double:CosPiDoubleTest()
          22 ( 3.93% of base) : 36174.dasm - System.MathBenchmarks.Double:FloorTest()
          22 ( 3.41% of base) : 36983.dasm - System.MathBenchmarks.Double:HypotTest()
          22 ( 4.04% of base) : 37768.dasm - System.MathBenchmarks.Double:ILogBTest()
          22 ( 3.70% of base) : 16536.dasm - System.MathBenchmarks.Double:Log2Test()
          22 ( 3.67% of base) : 40211.dasm - System.MathBenchmarks.Double:MinTest()
          22 ( 3.93% of base) : 40944.dasm - System.MathBenchmarks.Double:RoundTest()
          22 ( 3.94% of base) : 28696.dasm - System.MathBenchmarks.Double:SqrtTest()
          22 ( 3.91% of base) : 33069.dasm - System.MathBenchmarks.Single:AbsTest()
          22 ( 3.74% of base) : 34758.dasm - System.MathBenchmarks.Single:AcosTest()
          22 ( 3.74% of base) : 36086.dasm - System.MathBenchmarks.Single:AsinTest()

Top method improvements (bytes):
          -4 (-0.27% of base) : 7818.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase

Top method regressions (percentages):
          55 ( 4.95% of base) : 23218.dasm - System.MathBenchmarks.Double:SinCosPiTest()
          55 ( 4.95% of base) : 39351.dasm - System.MathBenchmarks.Single:SinCosPiTest()
          55 ( 4.94% of base) : 39045.dasm - System.MathBenchmarks.Single:SinCosTest()
          55 ( 4.93% of base) : 42226.dasm - System.MathBenchmarks.Double:SinCosTest()
          22 ( 4.29% of base) : 28594.dasm - System.MathBenchmarks.Double:CopySignTest()
          22 ( 4.29% of base) : 33599.dasm - System.MathBenchmarks.Single:CopySignTest()
          22 ( 4.04% of base) : 37768.dasm - System.MathBenchmarks.Double:ILogBTest()
          22 ( 4.04% of base) : 29869.dasm - System.MathBenchmarks.Single:ILogBTest()
          22 ( 3.94% of base) : 28696.dasm - System.MathBenchmarks.Double:SqrtTest()
          22 ( 3.94% of base) : 33288.dasm - System.MathBenchmarks.Single:SqrtTest()
          22 ( 3.93% of base) : 28154.dasm - System.MathBenchmarks.Double:CeilingTest()
          22 ( 3.93% of base) : 36174.dasm - System.MathBenchmarks.Double:FloorTest()
          22 ( 3.93% of base) : 40944.dasm - System.MathBenchmarks.Double:RoundTest()
          22 ( 3.93% of base) : 20172.dasm - System.MathBenchmarks.Single:CeilingTest()
          22 ( 3.93% of base) : 27743.dasm - System.MathBenchmarks.Single:FloorTest()
          22 ( 3.93% of base) : 37163.dasm - System.MathBenchmarks.Single:RoundTest()
          22 ( 3.91% of base) : 16609.dasm - System.MathBenchmarks.Double:AbsTest()
          22 ( 3.91% of base) : 33069.dasm - System.MathBenchmarks.Single:AbsTest()
          22 ( 3.74% of base) : 29604.dasm - System.MathBenchmarks.Double:CosDoubleTest()
          22 ( 3.74% of base) : 34758.dasm - System.MathBenchmarks.Single:AcosTest()

Top method improvements (percentages):
          -4 (-0.27% of base) : 7818.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase


coreclr_tests.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 369434284 (overridden on cmd)
Total bytes of diff: 369460299 (overridden on cmd)
Total bytes of delta: 26015 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         354 : 424266.dasm (11.93% of base)
         327 : 401797.dasm (10.99% of base)
         277 : 530402.dasm (21.83% of base)
         277 : 412867.dasm (21.83% of base)
         277 : 484078.dasm (21.83% of base)
         277 : 542572.dasm (21.83% of base)
         277 : 443468.dasm (21.83% of base)
         277 : 485905.dasm (21.83% of base)
         277 : 482798.dasm (21.91% of base)
         277 : 539697.dasm (21.83% of base)
         277 : 429453.dasm (21.83% of base)
         277 : 414394.dasm (21.83% of base)
         277 : 438674.dasm (21.83% of base)
         277 : 530935.dasm (21.83% of base)
         277 : 441296.dasm (21.83% of base)
         277 : 475745.dasm (21.83% of base)
         277 : 537817.dasm (21.83% of base)
         277 : 437740.dasm (21.91% of base)
         268 : 155025.dasm (9.29% of base)
         265 : 423765.dasm (20.34% of base)

Top file improvements (bytes):
         -22 : 438673.dasm (-2.27% of base)
         -12 : 231367.dasm (-4.07% of base)
         -11 : 413264.dasm (-0.92% of base)
         -11 : 166717.dasm (-0.91% of base)
         -11 : 470233.dasm (-0.92% of base)
         -11 : 415762.dasm (-0.92% of base)
         -11 : 475806.dasm (-0.92% of base)
         -11 : 166691.dasm (-0.92% of base)
         -11 : 166800.dasm (-0.92% of base)
         -11 : 413205.dasm (-0.92% of base)
         -11 : 472884.dasm (-0.92% of base)
         -11 : 472939.dasm (-0.91% of base)
         -11 : 166588.dasm (-0.92% of base)
         -11 : 413184.dasm (-0.92% of base)
         -11 : 184737.dasm (-0.91% of base)
         -11 : 541853.dasm (-0.92% of base)
         -11 : 414480.dasm (-0.92% of base)
         -11 : 227574.dasm (-0.92% of base)
         -11 : 413233.dasm (-0.91% of base)
          -9 : 462325.dasm (-0.74% of base)

58 total files with Code Size differences (22 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         354 (11.93% of base) : 424266.dasm - StringSort:DoStringSortIteration(System.String[][],int,int):int
         327 (10.99% of base) : 401797.dasm - StringSort:DoStringSortIteration(System.String[][],int,int):int
         277 (21.83% of base) : 530402.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 412867.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 484078.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 542572.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 443468.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 485905.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.91% of base) : 482798.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 539697.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 429453.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 414394.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 438674.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 530935.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 441296.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 475745.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 537817.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.91% of base) : 437740.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         268 ( 9.29% of base) : 155025.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
         265 (20.34% of base) : 423765.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int

Top method improvements (bytes):
         -22 (-2.27% of base) : 438673.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon])
         -12 (-4.07% of base) : 231367.dasm - System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
         -11 (-0.92% of base) : 413264.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 166717.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 470233.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 415762.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 475806.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 166691.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 166800.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 413205.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 472884.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 472939.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 166588.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 413184.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 184737.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 541853.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 414480.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 227574.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 413233.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
          -9 (-1.14% of base) : 460997.dasm - ILCompiler.TypeExtensions:AcquiresInstMethodTableFromThis(Internal.TypeSystem.MethodDesc):bool

Top method regressions (percentages):
          87 (30.63% of base) : 424257.dasm - StringSort:strsift(System.String[],int,int)
          76 (26.76% of base) : 401785.dasm - StringSort:strsift(System.String[],int,int)
         277 (21.91% of base) : 482798.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.91% of base) : 437740.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 530402.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 412867.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 484078.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 542572.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 443468.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 485905.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 539697.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 429453.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 414394.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 438674.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 530935.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 441296.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 475745.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         277 (21.83% of base) : 537817.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int
         239 (21.75% of base) : 401790.dasm - StringSort:StrHeapSort(System.String[],int,int)
         235 (21.56% of base) : 424260.dasm - StringSort:StrHeapSort(System.String[],int,int)

Top method improvements (percentages):
         -12 (-4.07% of base) : 231367.dasm - System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
         -22 (-2.27% of base) : 438673.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:IntroSort(System.Span`1[System.__Canon],int,System.Comparison`1[System.__Canon])
          -9 (-1.14% of base) : 460997.dasm - ILCompiler.TypeExtensions:AcquiresInstMethodTableFromThis(Internal.TypeSystem.MethodDesc):bool
          -9 (-1.00% of base) : 460905.dasm - ILCompiler.TypeExtensions:RequiresInstArg(Internal.TypeSystem.MethodDesc):bool
         -11 (-0.92% of base) : 413264.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 470233.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 415762.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 475806.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 166691.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 166800.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 413205.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 472884.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 166588.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 413184.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 541853.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 414480.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.92% of base) : 227574.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 166717.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 472939.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this
         -11 (-0.91% of base) : 184737.dasm - System.Resources.ResourceManager:GetFirstResourceSet(System.Globalization.CultureInfo):System.Resources.ResourceSet:this


libraries.crossgen2.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6295320 (overridden on cmd)
Total bytes of diff: 6295537 (overridden on cmd)
Total bytes of delta: 217 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          42 : 26548.dasm (1.03% of base)
          37 : 7771.dasm (2.36% of base)
          25 : 7566.dasm (7.25% of base)
          20 : 26899.dasm (1.82% of base)
          17 : 1830.dasm (1.11% of base)
          17 : 29106.dasm (1.50% of base)
          16 : 29890.dasm (1.24% of base)
          15 : 1453.dasm (1.26% of base)
           8 : 6258.dasm (3.59% of base)
           7 : 6260.dasm (3.14% of base)
           4 : 29640.dasm (3.08% of base)
           4 : 29641.dasm (2.23% of base)
           4 : 1868.dasm (0.43% of base)
           4 : 33213.dasm (0.38% of base)
           3 : 26494.dasm (1.06% of base)
           3 : 6457.dasm (0.44% of base)
           2 : 29072.dasm (0.40% of base)
           2 : 25282.dasm (0.31% of base)
           2 : 33234.dasm (0.33% of base)
           2 : 24898.dasm (0.26% of base)

Top file improvements (bytes):
         -17 : 10507.dasm (-0.51% of base)
          -2 : 34250.dasm (-0.55% of base)
          -2 : 28148.dasm (-0.34% of base)

25 total files with Code Size differences (3 improved, 22 regressed), 9 unchanged.

Top method regressions (bytes):
          42 ( 1.03% of base) : 26548.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this
          37 ( 2.36% of base) : 7771.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitIncrementOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this
          25 ( 7.25% of base) : 7566.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetUpdatedSymbol(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):this
          20 ( 1.82% of base) : 26899.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this
          17 ( 1.11% of base) : 1830.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalAccessExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess:this
          17 ( 1.50% of base) : 29106.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder:SubstituteNoPiaLocalType(byref,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,System.String,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol
          16 ( 1.24% of base) : 29890.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.Optimizer:RemoveIntersectingLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo])
          15 ( 1.26% of base) : 1453.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
           8 ( 3.59% of base) : 6258.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeAndGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this
           7 ( 3.14% of base) : 6260.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeForStandaloneSyntax(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager,System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol]):this
           4 ( 0.43% of base) : 1868.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindArgListOperator(Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
           4 ( 3.08% of base) : 29640.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePoint):this
           4 ( 2.23% of base) : 29641.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePointWithSpan):this
           4 ( 0.38% of base) : 33213.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Retargeting.RetargetingModuleSymbol+RetargetingSymbolTranslator:Retarget(Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol:this
           3 ( 1.06% of base) : 26494.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForUnmatchedOperator(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],System.String,System.Action`3[Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol])
           3 ( 0.44% of base) : 6457.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetMemberModel(int):Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:this
           2 ( 0.26% of base) : 34235.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInExpandedForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],bool,bool,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters
           2 ( 0.26% of base) : 24898.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteFunctionPointerType(Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol:this
           2 ( 0.31% of base) : 25282.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol:ApplyNullableTransforms(ubyte,System.Collections.Immutable.ImmutableArray`1[ubyte],byref):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol:this
           2 ( 0.40% of base) : 29072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.DynamicTypeDecoder:TransformTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this

Top method improvements (bytes):
         -17 (-0.51% of base) : 10507.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this
          -2 (-0.55% of base) : 34250.dasm - Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this
          -2 (-0.34% of base) : 28148.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInFunctionPointer(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):bool

Top method regressions (percentages):
          25 ( 7.25% of base) : 7566.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetUpdatedSymbol(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):this
           8 ( 3.59% of base) : 6258.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeAndGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this
           7 ( 3.14% of base) : 6260.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedAddBoundTreeForStandaloneSyntax(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+SnapshotManager,System.Collections.Immutable.ImmutableDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol]):this
           4 ( 3.08% of base) : 29640.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePoint):this
          37 ( 2.36% of base) : 7771.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitIncrementOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this
           4 ( 2.23% of base) : 29641.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitSequencePointStatement(Microsoft.CodeAnalysis.CSharp.BoundSequencePointWithSpan):this
          20 ( 1.82% of base) : 26899.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this
          17 ( 1.50% of base) : 29106.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder:SubstituteNoPiaLocalType(byref,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,System.String,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol
          15 ( 1.26% of base) : 1453.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
          16 ( 1.24% of base) : 29890.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.Optimizer:RemoveIntersectingLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol,Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.CodeGen.LocalDefUseInfo])
          17 ( 1.11% of base) : 1830.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalAccessExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess:this
           3 ( 1.06% of base) : 26494.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForUnmatchedOperator(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],System.String,System.Action`3[Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol])
          42 ( 1.03% of base) : 26548.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this
           3 ( 0.44% of base) : 6457.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetMemberModel(int):Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:this
           4 ( 0.43% of base) : 1868.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindArgListOperator(Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
           2 ( 0.40% of base) : 29072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.DynamicTypeDecoder:TransformTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
           4 ( 0.38% of base) : 33213.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Retargeting.RetargetingModuleSymbol+RetargetingSymbolTranslator:Retarget(Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol:this
           2 ( 0.33% of base) : 33234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Retargeting.RetargetingModuleSymbol+RetargetingSymbolTranslator:RetargetAttributeNamedArguments(System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[System.String,Microsoft.CodeAnalysis.TypedConstant]]):System.Collections.Immutable.ImmutableArray`1[System.Collections.Generic.KeyValuePair`2[System.String,Microsoft.CodeAnalysis.TypedConstant]]:this
           2 ( 0.31% of base) : 25282.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol:ApplyNullableTransforms(ubyte,System.Collections.Immutable.ImmutableArray`1[ubyte],byref):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol:this
           2 ( 0.27% of base) : 29624.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this

Top method improvements (percentages):
          -2 (-0.55% of base) : 34250.dasm - Microsoft.CodeAnalysis.CSharp.NullabilityRewriter:GetUpdatedArray[System.__Canon](Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this
         -17 (-0.51% of base) : 10507.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this
          -2 (-0.34% of base) : 28148.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInFunctionPointer(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):bool

25 total methods with Code Size differences (3 improved, 22 regressed).


libraries.pmi.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 59196125 (overridden on cmd)
Total bytes of diff: 59206528 (overridden on cmd)
Total bytes of delta: 10403 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         268 : 127627.dasm (9.24% of base)
         226 : 133758.dasm (11.78% of base)
         226 : 179018.dasm (11.78% of base)
         117 : 93729.dasm (4.42% of base)
          88 : 233333.dasm (3.49% of base)
          82 : 39931.dasm (1.43% of base)
          70 : 176059.dasm (3.62% of base)
          66 : 206537.dasm (0.85% of base)
          66 : 231950.dasm (1.44% of base)
          59 : 291854.dasm (0.89% of base)
          54 : 176212.dasm (3.33% of base)
          54 : 130841.dasm (3.33% of base)
          48 : 176052.dasm (4.28% of base)
          48 : 231951.dasm (2.38% of base)
          47 : 287765.dasm (5.75% of base)
          47 : 287779.dasm (5.75% of base)
          45 : 284991.dasm (2.27% of base)
          44 : 225596.dasm (4.59% of base)
          44 : 106736.dasm (3.29% of base)
          44 : 230229.dasm (6.40% of base)

Top file improvements (bytes):
         -88 : 62782.dasm (-4.71% of base)
         -21 : 57901.dasm (-1.75% of base)
         -19 : 72520.dasm (-2.14% of base)
         -17 : 115.dasm (-1.01% of base)
         -12 : 122582.dasm (-4.07% of base)
          -9 : 124562.dasm (-0.58% of base)
          -8 : 153257.dasm (-0.15% of base)
          -8 : 259871.dasm (-1.40% of base)
          -7 : 204546.dasm (-0.04% of base)
          -6 : 192284.dasm (-0.13% of base)
          -5 : 286329.dasm (-0.66% of base)
          -4 : 110572.dasm (-1.81% of base)
          -4 : 120691.dasm (-0.92% of base)
          -4 : 104713.dasm (-0.17% of base)
          -4 : 109901.dasm (-0.16% of base)
          -4 : 109804.dasm (-0.14% of base)
          -4 : 241658.dasm (-1.82% of base)
          -4 : 106467.dasm (-1.62% of base)
          -4 : 196073.dasm (-0.22% of base)
          -4 : 91084.dasm (-1.02% of base)

76 total files with Code Size differences (26 improved, 50 regressed), 20 unchanged.

Top method regressions (bytes):
         268 ( 9.24% of base) : 127627.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
         226 (11.78% of base) : 133758.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,bool,ushort,bool,byref):bool
         226 (11.78% of base) : 179018.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,bool,ushort,bool,byref):bool
         117 ( 4.42% of base) : 93729.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+ImportsBinder:BindMembersImportsClause(Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleImportsClauseSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.ImportData,Microsoft.CodeAnalysis.DiagnosticBag)
          88 ( 3.49% of base) : 233333.dasm - ILCompiler.ReadyToRunCodegenCompilation+<>c__DisplayClass50_0:<ComputeDependencyNodeDependencies>g__CompileOneMethod|5(ILCompiler.DependencyAnalysisFramework.DependencyNodeCore`1[ILCompiler.DependencyAnalysis.NodeFactory],int):this
          82 ( 1.43% of base) : 39931.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this
          70 ( 3.62% of base) : 176059.dasm - Microsoft.CodeAnalysis.Compilation:CreateAnonymousTypeSymbol(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[bool],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Location],System.Collections.Immutable.ImmutableArray`1[ubyte]):Microsoft.CodeAnalysis.INamedTypeSymbol:this
          66 ( 1.44% of base) : 231950.dasm - ILCompiler.IBC.IBCProfileParser:LookupIbcTypeToken(byref,uint,System.Collections.Generic.Dictionary`2[ILCompiler.IBC.IBCProfileParser+IBCBlobKey,ILCompiler.IBC.BlobEntry]):uint:this
          66 ( 0.85% of base) : 206537.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
          59 ( 0.89% of base) : 291854.dasm - Program:Main(System.String[]):int
          54 ( 3.33% of base) : 176212.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):bool:this
          54 ( 3.33% of base) : 130841.dasm - Microsoft.CodeAnalysis.CompilationOptions:EqualsHelper(Microsoft.CodeAnalysis.CompilationOptions):bool:this
          48 ( 2.38% of base) : 231951.dasm - ILCompiler.IBC.IBCProfileParser:LookupIbcMethodToken(Internal.TypeSystem.MetadataType,uint,System.Collections.Generic.Dictionary`2[ILCompiler.IBC.IBCProfileParser+IBCBlobKey,ILCompiler.IBC.BlobEntry]):uint:this
          48 ( 4.28% of base) : 176052.dasm - Microsoft.CodeAnalysis.Compilation:CreateTupleTypeSymbol(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Location],System.Collections.Immutable.ImmutableArray`1[ubyte]):Microsoft.CodeAnalysis.INamedTypeSymbol:this
          47 ( 5.75% of base) : 287765.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,System.Nullable`1[int]]:Dispose(bool):this
          47 ( 5.75% of base) : 287779.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[ubyte,System.Nullable`1[int]]:Dispose(bool):this
          45 ( 2.27% of base) : 284991.dasm - System.Security.Cryptography.Xml.EncryptedXml:DecryptEncryptedKey(System.Security.Cryptography.Xml.EncryptedKey):ubyte[]:this
          44 ( 6.40% of base) : 230229.dasm - ILLink.Shared.TypeSystemProxy.MethodProxy:GetParameter(ILLink.Shared.TypeSystemProxy.ParameterIndex):ILLink.Shared.TypeSystemProxy.ParameterProxy:this
          44 ( 3.29% of base) : 106736.dasm - System.Data.Merger:MergeRows(System.Data.DataRow[]):this
          44 ( 4.59% of base) : 225596.dasm - System.Text.Json.ThrowHelper:ThrowNotSupportedException(byref,byref,System.NotSupportedException)

Top method improvements (bytes):
         -88 (-4.71% of base) : 62782.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder:SubstituteNoPiaLocalType(byref,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,System.String,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol
         -21 (-1.75% of base) : 57901.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteFunctionPointerType(Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol:this
         -19 (-2.14% of base) : 72520.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:EarlyDecodeWellKnownAttribute(byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:this
         -17 (-1.01% of base) : 115.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Text.RegularExpressions.RegexCache+Key,System.__Canon],System.Text.RegularExpressions.RegexCache+Key,System.Nullable`1[int],System.__Canon,bool,bool,byref):bool:this
         -12 (-4.07% of base) : 122582.dasm - System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
          -9 (-0.58% of base) : 124562.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportMembersMapping(System.Xml.Serialization.XmlReflectionMember[],System.String,bool,bool,bool,System.Xml.Serialization.RecursionLimiter):System.Xml.Serialization.MembersMapping:this
          -8 (-0.15% of base) : 153257.dasm - Microsoft.Diagnostics.Tracing.Parsers.WppTraceEventParser:CreateTemplatesForTMFFile(System.Guid,System.String):System.Collections.Generic.List`1[Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData]:this
          -8 (-1.40% of base) : 259871.dasm - System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
          -7 (-0.04% of base) : 204546.dasm - System.Management.ManagementClassGenerator:GenerateMethods():this
          -6 (-0.13% of base) : 192284.dasm - System.Configuration.ConfigurationElementCollection:Unmerge(System.Configuration.ConfigurationElement,System.Configuration.ConfigurationElement,int):this
          -5 (-0.66% of base) : 286329.dasm - System.ServiceModel.Syndication.SyndicationFeed:TryReadSkipHoursFromExtension(System.ServiceModel.Syndication.SyndicationElementExtensionCollection,System.Collections.ObjectModel.Collection`1[int])
          -4 (-1.02% of base) : 91084.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeInferenceCollection:AddType(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):this
          -4 (-1.82% of base) : 241658.dasm - Microsoft.Win32.RegistryKey:FixupPath(System.Text.StringBuilder)
          -4 (-1.81% of base) : 110572.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
          -4 (-0.16% of base) : 109901.dasm - System.Data.Common.SqlByteStorage:Aggregate(int[],int):System.Object:this
          -4 (-0.16% of base) : 109790.dasm - System.Data.Common.SqlInt32Storage:Aggregate(int[],int):System.Object:this
          -4 (-0.14% of base) : 109804.dasm - System.Data.Common.SqlInt64Storage:Aggregate(int[],int):System.Object:this
          -4 (-1.62% of base) : 106467.dasm - System.Data.DataView:RowExist(System.Collections.Generic.List`1[System.Object[]],System.Object[]):bool
          -4 (-0.22% of base) : 196073.dasm - System.Data.OleDb.OleDbDataReader:CreateBindingsFromMetaData(bool):System.Data.OleDb.Bindings[]:this
          -4 (-0.17% of base) : 104713.dasm - System.Data.XSDSchema:HandleParticle(System.Xml.Schema.XmlSchemaParticle,System.Data.DataTable,System.Collections.ArrayList,bool):this

Top method regressions (percentages):
         226 (11.78% of base) : 133758.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,bool,ushort,bool,byref):bool
         226 (11.78% of base) : 179018.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,bool,ushort,bool,byref):bool
          40 (11.73% of base) : 53.dasm - System.Text.RegularExpressions.RegexCache:Get(System.Text.RegularExpressions.RegexCache+Key):System.Text.RegularExpressions.Regex
          19 (11.66% of base) : 280590.dasm - System.Reflection.TypeLoading.RoEvent:GetRoAddMethod():System.Reflection.TypeLoading.RoMethod:this
          19 (11.66% of base) : 280592.dasm - System.Reflection.TypeLoading.RoEvent:GetRoRaiseMethod():System.Reflection.TypeLoading.RoMethod:this
          19 (11.66% of base) : 280591.dasm - System.Reflection.TypeLoading.RoEvent:GetRoRemoveMethod():System.Reflection.TypeLoading.RoMethod:this
          37 (10.08% of base) : 117548.dasm - System.Xml.Schema.StringFacetsChecker:MatchEnumeration(System.String,System.Collections.ArrayList,System.Xml.Schema.XmlSchemaDatatype):bool
          34 ( 9.94% of base) : 283430.dasm - System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo:Position(System.String):int:this
          23 ( 9.91% of base) : 290468.dasm - System.Threading.Tasks.Parallel+ForEachAsyncState`1[System.__Canon]:Complete():this
          23 ( 9.91% of base) : 290476.dasm - System.Threading.Tasks.Parallel+ForEachAsyncState`1[ubyte]:Complete():this
          30 ( 9.29% of base) : 71241.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ConstraintsHelper:HasConflict(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeParameterConstraint,byref):bool
         268 ( 9.24% of base) : 127627.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
          40 ( 8.97% of base) : 190664.dasm - System.ComponentModel.TypeDescriptor+AttributeProvider+AttributeTypeDescriptor:GetAttributes():System.ComponentModel.AttributeCollection:this
          16 ( 8.84% of base) : 280796.dasm - System.Reflection.TypeLoading.RoConstructedGenericMethod:Equals(System.Object):bool:this
          34 ( 8.74% of base) : 121699.dasm - System.Xml.Xsl.Runtime.XmlAttributeCache:WriteStartAttribute(System.String,System.String,System.String):this
          15 ( 8.67% of base) : 263769.dasm - System.IO.Packaging.ZipPackage+ContentTypeHelper:AddContentType(System.IO.Packaging.PackUriHelper+ValidatedPartUri,System.IO.Packaging.ContentType,int):this
          16 ( 8.51% of base) : 90756.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:HasFriendAccessTo(Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.AssemblySymbol):bool
          30 ( 8.50% of base) : 115964.dasm - System.Xml.DomNameTable:GetName(System.String,System.String,System.String,System.Xml.Schema.IXmlSchemaInfo):System.Xml.XmlName:this
          21 ( 8.14% of base) : 203493.dasm - System.Dynamic.DynamicObject+MetaDynamic:IsOverridden(System.Reflection.MethodInfo):bool:this
          12 ( 7.95% of base) : 32450.dasm - Microsoft.CodeAnalysis.CSharp.AccessCheck:HasInternalAccessTo(Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):bool

Top method improvements (percentages):
         -88 (-4.71% of base) : 62782.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder:SubstituteNoPiaLocalType(byref,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,System.String,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol
         -12 (-4.07% of base) : 122582.dasm - System.Xml.Xsl.Qil.QilReplaceVisitor:VisitChildren(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this
         -19 (-2.14% of base) : 72520.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMethodSymbol:EarlyDecodeWellKnownAttribute(byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:this
          -4 (-1.82% of base) : 241658.dasm - Microsoft.Win32.RegistryKey:FixupPath(System.Text.StringBuilder)
          -4 (-1.81% of base) : 110572.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
         -21 (-1.75% of base) : 57901.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteFunctionPointerType(Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol:this
          -4 (-1.62% of base) : 106467.dasm - System.Data.DataView:RowExist(System.Collections.Generic.List`1[System.Object[]],System.Object[]):bool
          -8 (-1.40% of base) : 259871.dasm - System.Diagnostics.TraceUtils:VerifyAttributes(System.Collections.Specialized.StringDictionary,System.String[],System.Object)
          -4 (-1.02% of base) : 91084.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeInferenceCollection:AddType(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):this
         -17 (-1.01% of base) : 115.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Text.RegularExpressions.RegexCache+Key,System.__Canon],System.Text.RegularExpressions.RegexCache+Key,System.Nullable`1[int],System.__Canon,bool,bool,byref):bool:this
          -4 (-0.92% of base) : 120691.dasm - System.Xml.Xsl.XsltOld.ContainerAction:CompileSingleTemplate(System.Xml.Xsl.XsltOld.Compiler)
          -5 (-0.66% of base) : 286329.dasm - System.ServiceModel.Syndication.SyndicationFeed:TryReadSkipHoursFromExtension(System.ServiceModel.Syndication.SyndicationElementExtensionCollection,System.Collections.ObjectModel.Collection`1[int])
          -9 (-0.58% of base) : 124562.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportMembersMapping(System.Xml.Serialization.XmlReflectionMember[],System.String,bool,bool,bool,System.Xml.Serialization.RecursionLimiter):System.Xml.Serialization.MembersMapping:this
          -2 (-0.42% of base) : 229488.dasm - System.Transactions.TransactionScope:PopScope():this
          -3 (-0.39% of base) : 143124.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalysisState+PerAnalyzerState:OnCompilationEventGenerated(Microsoft.CodeAnalysis.Diagnostics.CompilationEvent,Microsoft.CodeAnalysis.Diagnostics.Telemetry.AnalyzerActionCounts):this
          -4 (-0.33% of base) : 217949.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CheckCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.Pkcs.SignerInfo,byref,byref,System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo):bool
          -1 (-0.24% of base) : 206191.dasm - System.Net.Http.Http2Connection+Http2Stream+<>c:<WaitFor100ContinueAsync>b__46_1(System.Object):this
          -4 (-0.22% of base) : 196073.dasm - System.Data.OleDb.OleDbDataReader:CreateBindingsFromMetaData(bool):System.Data.OleDb.Bindings[]:this
          -2 (-0.21% of base) : 199142.dasm - System.DirectoryServices.ActiveDirectory.DomainController:GetRoles():System.Collections.ArrayList:this
          -4 (-0.17% of base) : 104713.dasm - System.Data.XSDSchema:HandleParticle(System.Xml.Schema.XmlSchemaParticle,System.Data.DataTable,System.Collections.ArrayList,bool):this


libraries_tests.pmi.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 115763833 (overridden on cmd)
Total bytes of diff: 115783555 (overridden on cmd)
Total bytes of delta: 19722 (0.02 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         284 : 188204.dasm (14.06% of base)
         252 : 78380.dasm (14.63% of base)
         187 : 226265.dasm (6.46% of base)
         187 : 226264.dasm (5.81% of base)
         168 : 224745.dasm (5.63% of base)
         136 : 324411.dasm (6.01% of base)
         128 : 170941.dasm (16.78% of base)
         121 : 226076.dasm (2.94% of base)
         121 : 226077.dasm (3.72% of base)
         116 : 188530.dasm (16.84% of base)
         113 : 187151.dasm (22.92% of base)
         111 : 68059.dasm (5.78% of base)
          99 : 219202.dasm (4.30% of base)
          99 : 115809.dasm (4.30% of base)
          99 : 139318.dasm (4.30% of base)
          99 : 277629.dasm (4.30% of base)
          99 : 316196.dasm (4.30% of base)
          99 : 246347.dasm (4.30% of base)
          99 : 279798.dasm (8.28% of base)
          99 : 325684.dasm (4.30% of base)

Top file improvements (bytes):
         -17 : 115.dasm (-1.01% of base)
         -12 : 111526.dasm (-1.06% of base)
         -11 : 133272.dasm (-0.88% of base)
         -10 : 54123.dasm (-0.59% of base)
          -5 : 262289.dasm (-0.63% of base)
          -4 : 109239.dasm (-0.98% of base)
          -4 : 336555.dasm (-0.32% of base)
          -4 : 135017.dasm (-0.62% of base)
          -4 : 189514.dasm (-0.30% of base)
          -3 : 250089.dasm (-0.37% of base)
          -3 : 74609.dasm (-0.14% of base)
          -2 : 69281.dasm (-0.11% of base)
          -2 : 130353.dasm (-0.25% of base)
          -2 : 277969.dasm (-0.08% of base)
          -2 : 69298.dasm (-0.09% of base)
          -2 : 74176.dasm (-0.16% of base)
          -2 : 115988.dasm (-0.08% of base)
          -2 : 134739.dasm (-0.22% of base)
          -2 : 927.dasm (-0.06% of base)
          -2 : 136785.dasm (-0.26% of base)

77 total files with Code Size differences (22 improved, 55 regressed), 20 unchanged.

Top method regressions (bytes):
         284 (14.06% of base) : 188204.dasm - Microsoft.CodeAnalysis.CSharp.CodeStyle.CSharpIdeCodeStyleOptions:Equals(Microsoft.CodeAnalysis.CSharp.CodeStyle.CSharpIdeCodeStyleOptions):bool:this
         252 (14.63% of base) : 78380.dasm - Microsoft.CodeAnalysis.CodeStyle.IdeCodeStyleOptions:Equals(Microsoft.CodeAnalysis.CodeStyle.IdeCodeStyleOptions):bool:this
         187 ( 5.81% of base) : 226264.dasm - System.Buffers.Text.Tests.ParserTests:ValidateParserHelper[System.__Canon](System.Buffers.Text.Tests.ParserTestData`1[System.__Canon])
         187 ( 6.46% of base) : 226265.dasm - System.Buffers.Text.Tests.ParserTests:ValidateParserHelper[ubyte](System.Buffers.Text.Tests.ParserTestData`1[ubyte])
         168 ( 5.63% of base) : 224745.dasm - System.SpanTests.ReadOnlySpanTests:TestMatchMany_Char()
         136 ( 6.01% of base) : 324411.dasm - System.Text.RegularExpressions.Tests.RegexTreeAnalyzerTests:AssertNode(System.Text.RegularExpressions.AnalysisResults,System.Text.RegularExpressions.RegexNode,ubyte,bool,bool,bool,bool):System.Text.RegularExpressions.RegexNode
         128 (16.78% of base) : 170941.dasm - System.Runtime.Serialization.Formatters.Tests.ObjectWithIntStringUShortUIntULongAndCustomObjectFields:Equals(System.Object):bool:this
         121 ( 2.94% of base) : 226076.dasm - System.Buffers.Text.Tests.FormatterTests:ValidateFormatterHelper[System.__Canon](System.Buffers.Text.Tests.FormatterTestData`1[System.__Canon])
         121 ( 3.72% of base) : 226077.dasm - System.Buffers.Text.Tests.FormatterTests:ValidateFormatterHelper[ubyte](System.Buffers.Text.Tests.FormatterTestData`1[ubyte])
         116 (16.84% of base) : 188530.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpCodeGenerationOptions:Equals(Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpCodeGenerationOptions):bool:this
         113 (22.92% of base) : 187151.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplifierOptions:Equals(Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplifierOptions):bool:this
         111 ( 5.78% of base) : 68059.dasm - Microsoft.CodeAnalysis.SolutionState:GetOriginatingProjectId(Microsoft.CodeAnalysis.ISymbol):Microsoft.CodeAnalysis.ProjectId:this
          99 ( 8.28% of base) : 279798.dasm - System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests+LargeStruct:get_Value():long:this
          99 ( 4.30% of base) : 219202.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String
          99 ( 4.30% of base) : 115809.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String
          99 ( 4.30% of base) : 139318.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String
          99 ( 4.30% of base) : 277629.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String
          99 ( 4.30% of base) : 316196.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String
          99 ( 4.30% of base) : 246347.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String
          99 ( 4.30% of base) : 325684.dasm - System.Diagnostics.DebuggerAttributes:ValidateDebuggerDisplayReferences(System.Object):System.String

Top method improvements (bytes):
         -17 (-1.01% of base) : 115.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Text.RegularExpressions.RegexCache+Key,System.__Canon],System.Text.RegularExpressions.RegexCache+Key,System.Nullable`1[int],System.__Canon,bool,bool,byref):bool:this
         -12 (-1.06% of base) : 111526.dasm - System.Xml.XmlConvertTests.VerifyNameTests1:v2():int:this
         -11 (-0.88% of base) : 133272.dasm - Microsoft.NetCore.Analyzers.Runtime.DoNotPassLiteralsAsLocalizedParameters:ShouldBeLocalized(Microsoft.CodeAnalysis.IParameterSymbol,Microsoft.CodeAnalysis.IPropertySymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,System.Collections.Immutable.ImmutableHashSet`1[Microsoft.CodeAnalysis.INamedTypeSymbol],bool):bool
         -10 (-0.59% of base) : 54123.dasm - System.Text.Json.Serialization.Samples.JsonSerializerExtensions+JsonDynamicNumber:TryConvert(System.Type,byref):bool:this
          -5 (-0.63% of base) : 262289.dasm - Humanizer.Inflections.Vocabulary:ApplyRules(System.Collections.Generic.IList`1[Humanizer.Inflections.Vocabulary+Rule],System.String,bool):System.String:this
          -4 (-0.32% of base) : 336555.dasm - Castle.Components.DictionaryAdapter.DictionaryAdapterBase:CancelEdit():this
          -4 (-0.30% of base) : 189514.dasm - Microsoft.CodeAnalysis.CSharp.Extensions.ITypeSymbolExtensions+<FindApplicableAliasAsync>d__9:MoveNext():this
          -4 (-0.62% of base) : 135017.dasm - Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.InterfaceMethodsShouldBeCallableByChildTypesAnalyzer:AnalyzeOperationBlock(Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext,Microsoft.CodeAnalysis.INamedTypeSymbol)
          -4 (-0.98% of base) : 109239.dasm - System.Xml.XslCompiledTransformApiTests.CTransformStrStrTest:TransformStrStr11(int,int):this
          -3 (-0.37% of base) : 250089.dasm - Autofac.Util.TypeExtensions:ParameterCompatibleWithTypeConstraint(System.Type,System.Type):bool
          -3 (-0.14% of base) : 74609.dasm - Microsoft.CodeAnalysis.Options.GlobalOptionService:SetGlobalOptions(Roslyn.Utilities.OneOrMany`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.Options.OptionKey2,System.Object]]):bool:this
          -2 (-0.25% of base) : 130353.dasm - Analyzer.Utilities.BoundedCacheWithFactory`2[System.__Canon,System.Nullable`1[int]]:GetOrCreateValue(System.__Canon,System.Func`2[System.__Canon,System.Nullable`1[int]]):System.Nullable`1[int]:this
          -2 (-0.11% of base) : 69281.dasm - Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1[System.Numerics.Vector`1[float]]:RunCore(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.FlowAnalysis.BasicBlock],Microsoft.CodeAnalysis.FlowAnalysis.DataFlowAnalyzer`1[System.Numerics.Vector`1[float]],int,int,System.Numerics.Vector`1[float],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.FlowAnalysis.BasicBlock],System.Collections.Generic.SortedSet`1[int],Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowRegion,bool],Microsoft.CodeAnalysis.PooledObjects.PooledHashSet`1[Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowRegion],System.Threading.CancellationToken):System.Numerics.Vector`1[float]
          -2 (-0.09% of base) : 69298.dasm - Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageResult:IsInitialParameterValueUsed(Microsoft.CodeAnalysis.IParameterSymbol):bool:this
          -2 (-0.16% of base) : 74176.dasm - Microsoft.CodeAnalysis.Rename.ConflictEngine.DeclarationConflictHelpers:GetConflictLocations(Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol],bool,System.Func`2[Microsoft.CodeAnalysis.ISymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol]]]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Location]
          -2 (-0.22% of base) : 134739.dasm - Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.DefineAccessorsForAttributeArgumentsAnalyzer:AnalyzeParameters(Microsoft.CodeAnalysis.Compilation,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.IParameterSymbol],System.Collections.Generic.IDictionary`2[System.String,Microsoft.CodeAnalysis.IPropertySymbol],Microsoft.CodeAnalysis.INamedTypeSymbol,System.Action`1[Microsoft.CodeAnalysis.Diagnostic])
          -2 (-0.26% of base) : 136785.dasm - Microsoft.NetCore.Analyzers.Security.DoNotCallDangerousMethodsInDeserialization+<>c__DisplayClass6_0:<Initialize>g__FindCalledDangerousMethod|3(Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.ISymbol],System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.ISymbol]]):this
          -2 (-0.08% of base) : 277969.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:VerifyEnumerator(System.Collections.Generic.IEnumerator`1[System.__Canon],System.__Canon[],int,int,bool,bool):this
          -2 (-0.08% of base) : 115988.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:VerifyEnumerator(System.Collections.Generic.IEnumerator`1[System.__Canon],System.__Canon[],int,int,bool,bool):this
          -2 (-0.13% of base) : 292885.dasm - System.IO.Pipelines.Tests.StreamPipeReaderTests+<>c__DisplayClass3_0+<<CanReadMultipleTimes>g__DoAsyncRead|0>d:MoveNext():this

Top method regressions (percentages):
          46 (27.54% of base) : 309129.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass11_0:<MethodSignatureEncoder_Parameters>b__5():this
          46 (27.54% of base) : 309137.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass23_0:<LiteralEncoder_TaggedVector>b__3():this
          46 (27.54% of base) : 309141.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass25_0:<LiteralEncoder_TaggedScalar>b__3():this
          46 (27.54% of base) : 309164.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass45_0:<SignatureTypeEncoder_Array>b__3():this
          46 (27.54% of base) : 309200.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass6_0:<BlobEncoder_CustomAttributeSignature>b__3():this
         113 (22.92% of base) : 187151.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplifierOptions:Equals(Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplifierOptions):bool:this
          89 (21.14% of base) : 72901.dasm - Microsoft.CodeAnalysis.Simplification.SimplifierOptions:Equals(Microsoft.CodeAnalysis.Simplification.SimplifierOptions):bool:this
          74 (21.02% of base) : 75532.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeStyle.VisualBasicIdeCodeStyleOptions:Equals(Microsoft.CodeAnalysis.VisualBasic.CodeStyle.VisualBasicIdeCodeStyleOptions):bool:this
          57 (20.50% of base) : 69251.dasm - Microsoft.CodeAnalysis.NamingStyles.NamingStyle:Equals(Microsoft.CodeAnalysis.NamingStyles.NamingStyle):bool:this
          45 (20.27% of base) : 68120.dasm - Microsoft.CodeAnalysis.SourceGeneratorIdentity:op_Inequality(Microsoft.CodeAnalysis.SourceGeneratorIdentity,Microsoft.CodeAnalysis.SourceGeneratorIdentity):bool
          44 (17.81% of base) : 323535.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+RegexType:Equals(System.Text.RegularExpressions.Generator.RegexGenerator+RegexType):bool:this
          37 (17.79% of base) : 68124.dasm - Microsoft.CodeAnalysis.SourceGeneratorIdentity:Equals(Microsoft.CodeAnalysis.SourceGeneratorIdentity):bool:this
          34 (17.17% of base) : 68121.dasm - Microsoft.CodeAnalysis.SourceGeneratorIdentity:op_Equality(Microsoft.CodeAnalysis.SourceGeneratorIdentity,Microsoft.CodeAnalysis.SourceGeneratorIdentity):bool
         116 (16.84% of base) : 188530.dasm - Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpCodeGenerationOptions:Equals(Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpCodeGenerationOptions):bool:this
         128 (16.78% of base) : 170941.dasm - System.Runtime.Serialization.Formatters.Tests.ObjectWithIntStringUShortUIntULongAndCustomObjectFields:Equals(System.Object):bool:this
          41 (15.13% of base) : 68123.dasm - Microsoft.CodeAnalysis.SourceGeneratorIdentity:Equals(System.Object):bool:this
          95 (14.87% of base) : 323520.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod:Equals(System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod):bool:this
         252 (14.63% of base) : 78380.dasm - Microsoft.CodeAnalysis.CodeStyle.IdeCodeStyleOptions:Equals(Microsoft.CodeAnalysis.CodeStyle.IdeCodeStyleOptions):bool:this
          64 (14.13% of base) : 345344.dasm - Microsoft.Extensions.Configuration.Binder.SourceGeneration.TypeSpec:Equals(Microsoft.Extensions.Configuration.Binder.SourceGeneration.TypeSpec):bool:this
         284 (14.06% of base) : 188204.dasm - Microsoft.CodeAnalysis.CSharp.CodeStyle.CSharpIdeCodeStyleOptions:Equals(Microsoft.CodeAnalysis.CSharp.CodeStyle.CSharpIdeCodeStyleOptions):bool:this

Top method improvements (percentages):
         -12 (-1.06% of base) : 111526.dasm - System.Xml.XmlConvertTests.VerifyNameTests1:v2():int:this
         -17 (-1.01% of base) : 115.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.Text.RegularExpressions.RegexCache+Key,System.__Canon],System.Text.RegularExpressions.RegexCache+Key,System.Nullable`1[int],System.__Canon,bool,bool,byref):bool:this
          -4 (-0.98% of base) : 109239.dasm - System.Xml.XslCompiledTransformApiTests.CTransformStrStrTest:TransformStrStr11(int,int):this
         -11 (-0.88% of base) : 133272.dasm - Microsoft.NetCore.Analyzers.Runtime.DoNotPassLiteralsAsLocalizedParameters:ShouldBeLocalized(Microsoft.CodeAnalysis.IParameterSymbol,Microsoft.CodeAnalysis.IPropertySymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,Microsoft.CodeAnalysis.INamedTypeSymbol,System.Collections.Immutable.ImmutableHashSet`1[Microsoft.CodeAnalysis.INamedTypeSymbol],bool):bool
          -5 (-0.63% of base) : 262289.dasm - Humanizer.Inflections.Vocabulary:ApplyRules(System.Collections.Generic.IList`1[Humanizer.Inflections.Vocabulary+Rule],System.String,bool):System.String:this
          -4 (-0.62% of base) : 135017.dasm - Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.InterfaceMethodsShouldBeCallableByChildTypesAnalyzer:AnalyzeOperationBlock(Microsoft.CodeAnalysis.Diagnostics.OperationBlockAnalysisContext,Microsoft.CodeAnalysis.INamedTypeSymbol)
         -10 (-0.59% of base) : 54123.dasm - System.Text.Json.Serialization.Samples.JsonSerializerExtensions+JsonDynamicNumber:TryConvert(System.Type,byref):bool:this
          -1 (-0.58% of base) : 336393.dasm - Castle.Core.Configuration.ConfigurationCollection:get_Item(System.String):Castle.Core.Configuration.IConfiguration:this
          -3 (-0.37% of base) : 250089.dasm - Autofac.Util.TypeExtensions:ParameterCompatibleWithTypeConstraint(System.Type,System.Type):bool
          -4 (-0.32% of base) : 336555.dasm - Castle.Components.DictionaryAdapter.DictionaryAdapterBase:CancelEdit():this
          -4 (-0.30% of base) : 189514.dasm - Microsoft.CodeAnalysis.CSharp.Extensions.ITypeSymbolExtensions+<FindApplicableAliasAsync>d__9:MoveNext():this
          -2 (-0.26% of base) : 136785.dasm - Microsoft.NetCore.Analyzers.Security.DoNotCallDangerousMethodsInDeserialization+<>c__DisplayClass6_0:<Initialize>g__FindCalledDangerousMethod|3(Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.ISymbol],System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.ISymbol]]):this
          -2 (-0.25% of base) : 130353.dasm - Analyzer.Utilities.BoundedCacheWithFactory`2[System.__Canon,System.Nullable`1[int]]:GetOrCreateValue(System.__Canon,System.Func`2[System.__Canon,System.Nullable`1[int]]):System.Nullable`1[int]:this
          -2 (-0.22% of base) : 134739.dasm - Microsoft.CodeQuality.Analyzers.ApiDesignGuidelines.DefineAccessorsForAttributeArgumentsAnalyzer:AnalyzeParameters(Microsoft.CodeAnalysis.Compilation,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.IParameterSymbol],System.Collections.Generic.IDictionary`2[System.String,Microsoft.CodeAnalysis.IPropertySymbol],Microsoft.CodeAnalysis.INamedTypeSymbol,System.Action`1[Microsoft.CodeAnalysis.Diagnostic])
          -2 (-0.16% of base) : 74176.dasm - Microsoft.CodeAnalysis.Rename.ConflictEngine.DeclarationConflictHelpers:GetConflictLocations(Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ISymbol],bool,System.Func`2[Microsoft.CodeAnalysis.ISymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol]]]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Location]
          -3 (-0.14% of base) : 74609.dasm - Microsoft.CodeAnalysis.Options.GlobalOptionService:SetGlobalOptions(Roslyn.Utilities.OneOrMany`1[System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.Options.OptionKey2,System.Object]]):bool:this
          -2 (-0.13% of base) : 292885.dasm - System.IO.Pipelines.Tests.StreamPipeReaderTests+<>c__DisplayClass3_0+<<CanReadMultipleTimes>g__DoAsyncRead|0>d:MoveNext():this
          -2 (-0.11% of base) : 69281.dasm - Microsoft.CodeAnalysis.FlowAnalysis.CustomDataFlowAnalysis`1[System.Numerics.Vector`1[float]]:RunCore(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.FlowAnalysis.BasicBlock],Microsoft.CodeAnalysis.FlowAnalysis.DataFlowAnalyzer`1[System.Numerics.Vector`1[float]],int,int,System.Numerics.Vector`1[float],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.FlowAnalysis.BasicBlock],System.Collections.Generic.SortedSet`1[int],Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowRegion,bool],Microsoft.CodeAnalysis.PooledObjects.PooledHashSet`1[Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowRegion],System.Threading.CancellationToken):System.Numerics.Vector`1[float]
          -2 (-0.09% of base) : 69298.dasm - Microsoft.CodeAnalysis.FlowAnalysis.SymbolUsageAnalysis.SymbolUsageResult:IsInitialParameterValueUsed(Microsoft.CodeAnalysis.IParameterSymbol):bool:this
          -2 (-0.08% of base) : 277969.dasm - System.Collections.Tests.IEnumerable_Generic_Tests`1[System.__Canon]:VerifyEnumerator(System.Collections.Generic.IEnumerator`1[System.__Canon],System.__Canon[],int,int,bool,bool):this


realworld.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64:

superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13758228 (overridden on cmd)
Total bytes of diff: 13759346 (overridden on cmd)
Total bytes of delta: 1118 (0.01 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         166 : 23790.dasm (8.01% of base)
          82 : 37131.dasm (1.43% of base)
          66 : 1028.dasm (6.08% of base)
          66 : 19371.dasm (0.88% of base)
          46 : 34164.dasm (2.22% of base)
          45 : 24989.dasm (0.75% of base)
          33 : 1078.dasm (5.46% of base)
          32 : 25207.dasm (4.83% of base)
          28 : 29226.dasm (1.37% of base)
          23 : 37799.dasm (2.60% of base)
          22 : 36214.dasm (1.23% of base)
          21 : 27489.dasm (1.13% of base)
          20 : 16265.dasm (3.85% of base)
          18 : 32655.dasm (3.59% of base)
          17 : 25445.dasm (1.72% of base)
          13 : 13328.dasm (0.76% of base)
          13 : 16103.dasm (1.82% of base)
          13 : 5167.dasm (2.57% of base)
          13 : 13680.dasm (0.81% of base)
          13 : 15513.dasm (4.98% of base)

Top file improvements (bytes):
          -4 : 1994.dasm (-1.81% of base)
          -4 : 461.dasm (-0.27% of base)
          -1 : 23998.dasm (-0.08% of base)

35 total files with Code Size differences (3 improved, 32 regressed), 15 unchanged.

Top method regressions (bytes):
         166 ( 8.01% of base) : 23790.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,bool,ushort,bool,byref):bool
          82 ( 1.43% of base) : 37131.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this
          66 ( 6.08% of base) : 1028.dasm - BepuPhysics.Solver:Register[BepuPhysics.Constraints.BallSocket]():this
          66 ( 0.88% of base) : 19371.dasm - System.Net.Http.HttpConnectionPool+<SendWithVersionDetectionAndRetryAsync>d__86:MoveNext():this
          46 ( 2.22% of base) : 34164.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager+<GetAnalyzerActionsAsync>d__12:MoveNext():this
          45 ( 0.75% of base) : 24989.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this
          33 ( 5.46% of base) : 1078.dasm - BepuPhysics.CollisionDetection.NarrowPhase:RegisterContactConstraintAccessor(BepuPhysics.CollisionDetection.ContactConstraintAccessor):this
          32 ( 4.83% of base) : 25207.dasm - System.Guid:TryParseExact(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],byref):bool
          28 ( 1.37% of base) : 29226.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitIncrementOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this
          23 ( 2.60% of base) : 37799.dasm - Microsoft.CodeAnalysis.Diagnostics.AsyncQueue`1[System.__Canon]:CompleteCore():bool:this
          22 ( 1.23% of base) : 36214.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+<<GetPerSymbolAnalyzerActionsAsync>g__getSymbolActionsCoreAsync|153_2>d:MoveNext():this
          21 ( 1.13% of base) : 27489.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckFieldValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ushort,bool,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):bool:this
          20 ( 3.85% of base) : 16265.dasm - SixLabors.ImageSharp.Processing.Processors.Dithering.OrderedDitherFactory:CreateDitherMatrix(uint):SixLabors.ImageSharp.DenseMatrix`1[uint]
          18 ( 3.59% of base) : 32655.dasm - Microsoft.Cci.Extensions:ShouldInclude(Microsoft.Cci.ITypeDefinitionMember,Microsoft.CodeAnalysis.Emit.EmitContext):bool
          17 ( 1.72% of base) : 25445.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForStructBadInitializers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this
          13 ( 0.76% of base) : 13328.dasm - FSharp.Compiler.CheckExpressions:TcLookupThen$cont@9141(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.AccessibilityLogic+AccessorDomain,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.Text.Range,FSharp.Compiler.NameResolution+AfterResolution,FSharp.Compiler.Text.Range,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Infos+PropInfo],System.String,FSharp.Compiler.Infos+PropInfo,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+DelayedItem],int,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+DelayedItem],FSharp.Compiler.Text.Range,FSharp.Compiler.Syntax.SynExpr,Microsoft.FSharp.Core.Unit):System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]
          13 ( 0.81% of base) : 13680.dasm - FSharp.Compiler.CheckExpressions+TcAndPublishValSpec@12003:Invoke(FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.CheckExpressions+ValSpecResult):System.Tuple`2[FSharp.Compiler.TypedTree+Val,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]:this
          13 ( 4.98% of base) : 15513.dasm - FSharp.Compiler.CodeAnalysis.ParseAndCheckFile:getLightSyntaxStatus(System.String,FSharp.Compiler.CodeAnalysis.FSharpParsingOptions):FSharp.Compiler.Lexhelp+LightSyntaxStatus
          13 ( 0.46% of base) : 23469.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
          13 ( 1.82% of base) : 16103.dasm - System.Reflection.Metadata.MetadataReader:ReadStreamHeaders(byref):System.Reflection.Metadata.Ecma335.StreamHeader[]

Top method improvements (bytes):
          -4 (-1.81% of base) : 1994.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
          -4 (-0.27% of base) : 461.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
          -1 (-0.08% of base) : 23998.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this

Top method regressions (percentages):
         166 ( 8.01% of base) : 23790.dasm - Microsoft.CodeAnalysis.VersionHelper:TryParse(System.String,bool,ushort,bool,byref):bool
          66 ( 6.08% of base) : 1028.dasm - BepuPhysics.Solver:Register[BepuPhysics.Constraints.BallSocket]():this
          33 ( 5.46% of base) : 1078.dasm - BepuPhysics.CollisionDetection.NarrowPhase:RegisterContactConstraintAccessor(BepuPhysics.CollisionDetection.ContactConstraintAccessor):this
          13 ( 4.98% of base) : 15513.dasm - FSharp.Compiler.CodeAnalysis.ParseAndCheckFile:getLightSyntaxStatus(System.String,FSharp.Compiler.CodeAnalysis.FSharpParsingOptions):FSharp.Compiler.Lexhelp+LightSyntaxStatus
          32 ( 4.83% of base) : 25207.dasm - System.Guid:TryParseExact(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],byref):bool
          20 ( 3.85% of base) : 16265.dasm - SixLabors.ImageSharp.Processing.Processors.Dithering.OrderedDitherFactory:CreateDitherMatrix(uint):SixLabors.ImageSharp.DenseMatrix`1[uint]
          18 ( 3.59% of base) : 32655.dasm - Microsoft.Cci.Extensions:ShouldInclude(Microsoft.Cci.ITypeDefinitionMember,Microsoft.CodeAnalysis.Emit.EmitContext):bool
           5 ( 3.07% of base) : 25032.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForUnmatchedOperator(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],System.String,System.Action`3[Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol])
          23 ( 2.60% of base) : 37799.dasm - Microsoft.CodeAnalysis.Diagnostics.AsyncQueue`1[System.__Canon]:CompleteCore():bool:this
          13 ( 2.57% of base) : 5167.dasm - System.Threading.Tasks.Task:ContinueWithCore(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.CancellationToken,int):this
           8 ( 2.35% of base) : 19771.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetResult():this
          46 ( 2.22% of base) : 34164.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerManager+<GetAnalyzerActionsAsync>d__12:MoveNext():this
           4 ( 2.12% of base) : 36462.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel:UnwrapAliases(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]
           6 ( 1.90% of base) : 16933.dasm - SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:CheckIsValid():bool:this
          13 ( 1.82% of base) : 16103.dasm - System.Reflection.Metadata.MetadataReader:ReadStreamHeaders(byref):System.Reflection.Metadata.Ecma335.StreamHeader[]
          17 ( 1.72% of base) : 25445.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckForStructBadInitializers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this
          10 ( 1.68% of base) : 23905.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetUpdatedSymbol(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):this
          82 ( 1.43% of base) : 37131.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this
          28 ( 1.37% of base) : 29226.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitIncrementOperator(Microsoft.CodeAnalysis.CSharp.BoundIncrementOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this
          11 ( 1.35% of base) : 34113.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers+<GetAllDiagnosticsAsync>d__42:MoveNext():this

Top method improvements (percentages):
          -4 (-1.81% of base) : 1994.dasm - MS.Internal.Xml.XPath.XPathParser:ParseUnaryExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this
          -4 (-0.27% of base) : 461.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase
          -1 (-0.08% of base) : 23998.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment