Skip to content

Instantly share code, notes, and snippets.

@AndyAyersMS
Created June 16, 2024 02:50
Show Gist options
  • Save AndyAyersMS/67ddf8009ea9605c592b2858cf90513c to your computer and use it in GitHub Desktop.
Save AndyAyersMS/67ddf8009ea9605c592b2858cf90513c to your computer and use it in GitHub Desktop.
Stack allocate boxes diffs as of 6/15

Diffs are based on 1,872,949 contexts (616,222 MinOpts, 1,256,727 FullOpts).

MISSED contexts: base: 3,555 (0.19%), diff: 0 (0.00%)

Base JIT options: JitObjectStackAllocation=0

Overall (-16,169 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x64.checked.mch 8,702,020 -209 -2.16%
libraries.crossgen2.windows.x64.checked.mch 39,436,711 +3 -1.18%
libraries.pmi.windows.x64.checked.mch 63,047,782 -2,618 -2.91%
libraries_tests.run.windows.x64.Release.mch 316,506,323 -1,634 -4.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 142,650,527 -11,626 -2.29%
realworld.run.windows.x64.checked.mch 11,307,920 +36 +1.36%
smoke_tests.nativeaot.windows.x64.checked.mch 5,030,993 -121 +9.54%
FullOpts (-16,169 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x64.checked.mch 8,701,598 -209 -2.16%
libraries.crossgen2.windows.x64.checked.mch 39,435,006 +3 -1.18%
libraries.pmi.windows.x64.checked.mch 62,934,821 -2,618 -2.91%
libraries_tests.run.windows.x64.Release.mch 130,738,272 -1,634 -4.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 132,125,988 -11,626 -2.29%
realworld.run.windows.x64.checked.mch 10,894,952 +36 +1.36%
smoke_tests.nativeaot.windows.x64.checked.mch 5,029,946 -121 +9.54%
Example diffs
benchmarks.run.windows.x64.checked.mch
-15 (-0.75%) : 5915.dasm - Sigil.Impl.ReturnTracer:TraceFrom(int,Sigil.Impl.LinqList`1[Sigil.Label],Sigil.Impl.LinqHashSet`1[Sigil.Label]):Sigil.Impl.ReturnTracerResult:this (FullOpts)
@@ -9,122 +9,123 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T05] ( 16, 18.50)     ref  ->  rbx         this class-hnd single-def <Sigil.Impl.ReturnTracer>
-;  V01 arg1         [V01,T44] (  3,  3   )     int  ->  r14         single-def
+;  V01 arg1         [V01,T43] (  3,  3   )     int  ->  r14         single-def
 ;  V02 arg2         [V02,T13] (  7, 10.50)     ref  ->  rdi         class-hnd single-def <Sigil.Impl.LinqList`1[Sigil.Label]>
 ;  V03 arg3         [V03,T10] (  7, 14   )     ref  ->  rsi         class-hnd single-def <Sigil.Impl.LinqHashSet`1[Sigil.Label]>
 ;  V04 loc0         [V04,T09] ( 17, 16   )     ref  ->  r15         class-hnd exact single-def <Sigil.Impl.ReturnTracer+<>c__DisplayClass7_0>
-;  V05 loc1         [V05,T89] (  2,  1   )     ref  ->  rsi         ld-addr-op class-hnd <Sigil.Impl.ReturnTracerResult>
-;  V06 loc2         [V06,T90] (  2,  1   )     int  ->  r14         single-def
-;  V07 loc3         [V07,T91] (  2,  1   )     int  ->  rax         single-def
-;  V08 loc4         [V08,T33] (  5,  7   )     ref  ->  r14         class-hnd exact single-def <Sigil.Impl.LinqList`1[Sigil.Impl.ReturnTracerResult]>
-;  V09 loc5         [V09,T22] (  7,  9   )     ref  ->  [rbp-0x58]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V10 loc6         [V10,T06] (  8, 20   )     ref  ->  r13         class-hnd <Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]>
+;  V05 loc1         [V05,T87] (  2,  1   )     ref  ->  rsi         ld-addr-op class-hnd <Sigil.Impl.ReturnTracerResult>
+;  V06 loc2         [V06,T88] (  2,  1   )     int  ->  r14         single-def
+;  V07 loc3         [V07,T89] (  2,  1   )     int  ->  rax         single-def
+;* V08 loc4         [V08,T92] (  0,  0   )    long  ->  zero-ref    class-hnd exact single-def <Sigil.Impl.LinqList`1[Sigil.Impl.ReturnTracerResult]>
+;  V09 loc5         [V09,T22] (  7,  9   )     ref  ->  [rbp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V10 loc6         [V10,T06] (  8, 20   )     ref  ->  r14         class-hnd <Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]>
 ;* V11 loc7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    <System.Reflection.Emit.OpCode>
 ;* V12 loc8         [V12    ] (  0,  0   )     int  ->  zero-ref   
-;  V13 loc9         [V13,T51] (  2,  4   )     int  ->  [rbp-0x3C]  spill-single-def
-;  V14 loc10        [V14,T21] (  5, 10   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <Sigil.Impl.ReturnTracerResult>
-;  V15 loc11        [V15,T50] (  2,  4   )     ref  ->  r13         class-hnd <Sigil.Impl.ReturnTracerResult>
+;  V13 loc9         [V13,T50] (  2,  4   )     int  ->  [rbp-0x3C]  spill-single-def
+;  V14 loc10        [V14,T21] (  5, 10   )     ref  ->  [rbp-0x68]  class-hnd spill-single-def <Sigil.Impl.ReturnTracerResult>
+;  V15 loc11        [V15,T49] (  2,  4   )     ref  ->  r14         class-hnd <Sigil.Impl.ReturnTracerResult>
 ;  V16 OutArgs      [V16    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V17 tmp1         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Sigil.Impl.ReturnTracer+<>c__DisplayClass7_0>
-;  V18 tmp2         [V18,T45] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V19 tmp3         [V19,T56] (  3,  3   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <Sigil.Impl.LinqList`1[Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]]>
-;  V20 tmp4         [V20,T75] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "dup spill" <Sigil.Impl.SigilFunc`2[Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int],int]>
-;  V21 tmp5         [V21,T57] (  3,  3   )     ref  ->  r14         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V18 tmp2         [V18,T44] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V19 tmp3         [V19,T55] (  3,  3   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <Sigil.Impl.LinqList`1[Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]]>
+;  V20 tmp4         [V20,T73] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "dup spill" <Sigil.Impl.SigilFunc`2[Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int],int]>
+;  V21 tmp5         [V21,T56] (  3,  3   )     ref  ->  r14         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V22 tmp6         [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp7         [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V24 tmp8         [V24,T73] (  4,  2   )     ref  ->  r13        
-;  V25 tmp9         [V25,T76] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "dup spill" <Sigil.Impl.SigilFunc`2[Sigil.Impl.IGrouping`2[int,Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]],int]>
-;  V26 tmp10        [V26,T58] (  3,  3   )     ref  ->  r14         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V24 tmp8         [V24,T71] (  4,  2   )     ref  ->  r13        
+;  V25 tmp9         [V25,T74] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "dup spill" <Sigil.Impl.SigilFunc`2[Sigil.Impl.IGrouping`2[int,Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]],int]>
+;  V26 tmp10        [V26,T57] (  3,  3   )     ref  ->  r14         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V27 tmp11        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp12        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V29 tmp13        [V29,T74] (  4,  2   )     ref  ->  r13        
-;  V30 tmp14        [V30,T46] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[int,ubyte]>
-;  V31 tmp15        [V31,T59] (  3,  3   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <Sigil.Impl.LinqList`1[int]>
-;  V32 tmp16        [V32,T47] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[int,ubyte]>
-;  V33 tmp17        [V33,T60] (  3,  3   )     ref  ->  r12         class-hnd single-def "impAppendStmt" <Sigil.Impl.LinqList`1[int]>
-;  V34 tmp18        [V34,T61] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.LinqList`1[Sigil.Impl.ReturnTracerResult]>
+;  V29 tmp13        [V29,T72] (  4,  2   )     ref  ->  r13        
+;  V30 tmp14        [V30,T45] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[int,ubyte]>
+;  V31 tmp15        [V31,T58] (  3,  3   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <Sigil.Impl.LinqList`1[int]>
+;  V32 tmp16        [V32,T46] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[int,ubyte]>
+;  V33 tmp17        [V33,T59] (  3,  3   )     ref  ->  r12         class-hnd single-def "impAppendStmt" <Sigil.Impl.LinqList`1[int]>
+;* V34 tmp18        [V34    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Sigil.Impl.LinqList`1[Sigil.Impl.ReturnTracerResult]>
 ;  V35 tmp19        [V35,T28] (  2,  8   )     ref  ->  rcx         class-hnd "impAppendStmt" <Sigil.Impl.LinqDictionary`2[Sigil.Label,int]>
-;  V36 tmp20        [V36,T11] (  4, 16   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
-;  V37 tmp21        [V37,T14] (  3, 12   )     ref  ->  r12         class-hnd "impSpillLclRefs" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V38 tmp22        [V38,T29] (  2,  8   )     int  ->  [rbp-0x40]  spill-single-def "impSpillLclRefs"
-;  V39 tmp23        [V39,T12] (  4, 16   )     ref  ->  r13         class-hnd "dup spill" <Sigil.Impl.ReturnTracerResult>
+;  V36 tmp20        [V36,T11] (  4, 16   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
+;  V37 tmp21        [V37,T14] (  3, 12   )     ref  ->  r13         class-hnd "impSpillLclRefs" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V38 tmp22        [V38,T29] (  2,  8   )     int  ->  r12         "impSpillLclRefs"
+;  V39 tmp23        [V39,T12] (  4, 16   )     ref  ->  r14         class-hnd "dup spill" <Sigil.Impl.ReturnTracerResult>
 ;  V40 tmp24        [V40,T15] (  3, 12   )     ref  ->  rcx         class-hnd "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
 ;  V41 tmp25        [V41,T30] (  2,  8   )     int  ->  rdx         "impAppendStmt"
-;  V42 tmp26        [V42,T16] (  3, 12   )     ref  ->  r13         class-hnd "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V43 tmp27        [V43,T31] (  2,  8   )     int  ->  r12         "impAppendStmt"
+;  V42 tmp26        [V42,T16] (  3, 12   )     ref  ->  r14         class-hnd "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V43 tmp27        [V43,T31] (  2,  8   )     int  ->  r13         "impAppendStmt"
 ;* V44 tmp28        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <Sigil.Impl.ReturnTracerResult>
-;  V45 tmp29        [V45,T62] (  3,  3   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V46 tmp30        [V46,T85] (  2,  2   )     int  ->  r15         "impAppendStmt"
-;  V47 tmp31        [V47,T63] (  3,  3   )     ref  ->  rsi         class-hnd single-def "dup spill" <Sigil.Impl.ReturnTracerResult>
-;  V48 tmp32        [V48,T64] (  3,  3   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V49 tmp33        [V49,T86] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V50 tmp34        [V50,T65] (  3,  3   )     ref  ->  r15         class-hnd single-def "dup spill" <Sigil.Impl.ReturnTracerResult>
-;  V51 tmp35        [V51,T66] (  3,  3   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V52 tmp36        [V52,T87] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V45 tmp29        [V45,T60] (  3,  3   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V46 tmp30        [V46,T83] (  2,  2   )     int  ->  r15         "impAppendStmt"
+;  V47 tmp31        [V47,T61] (  3,  3   )     ref  ->  rsi         class-hnd single-def "dup spill" <Sigil.Impl.ReturnTracerResult>
+;  V48 tmp32        [V48,T62] (  3,  3   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V49 tmp33        [V49,T84] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V50 tmp34        [V50,T63] (  3,  3   )     ref  ->  r15         class-hnd single-def "dup spill" <Sigil.Impl.ReturnTracerResult>
+;  V51 tmp35        [V51,T64] (  3,  3   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V52 tmp36        [V52,T85] (  2,  2   )     int  ->  rbx         "impAppendStmt"
 ;* V53 tmp37        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <Sigil.Impl.ReturnTracerResult>
-;  V54 tmp38        [V54,T67] (  3,  3   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V55 tmp39        [V55,T88] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V54 tmp38        [V54,T65] (  3,  3   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V55 tmp39        [V55,T86] (  2,  2   )     int  ->  rbx         "impAppendStmt"
 ;* V56 tmp40        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <Sigil.Impl.ReturnTracerResult>
-;  V57 tmp41        [V57,T42] (  5,  5   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[Sigil.Impl.IGrouping`2[int,Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]],int]>
-;  V58 tmp42        [V58,T43] (  5,  5   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int],int]>
-;* V59 tmp43        [V59,T92] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V60 tmp44        [V60,T34] (  3,  6   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
-;  V61 tmp45        [V61,T52] (  2,  4   )     int  ->  rdx         "Inlining Arg"
-;  V62 tmp46        [V62,T72] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
-;  V63 tmp47        [V63,T77] (  2,  2   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <Sigil.Impl.ReturnTracer+<>c>
-;  V64 tmp48        [V64,T78] (  2,  2   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <Sigil.Impl.ReturnTracer+<>c>
-;  V65 tmp49        [V65,T68] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Sigil.Impl.LinqRoot`1[System.__Canon]>
+;  V57 tmp41        [V57,T41] (  5,  5   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[Sigil.Impl.IGrouping`2[int,Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int]],int]>
+;  V58 tmp42        [V58,T42] (  5,  5   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.SigilFunc`2[Sigil.Impl.SigilTuple`3[System.Reflection.Emit.OpCode,Sigil.Label,int],int]>
+;* V59 tmp43        [V59,T90] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V60 tmp44        [V60,T33] (  3,  6   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[int,Sigil.Impl.ReturnTracerResult]>
+;  V61 tmp45        [V61,T51] (  2,  4   )     int  ->  rdx         "Inlining Arg"
+;  V62 tmp46        [V62,T70] (  3,  2.50)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V63 tmp47        [V63,T75] (  2,  2   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <Sigil.Impl.ReturnTracer+<>c>
+;  V64 tmp48        [V64,T76] (  2,  2   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <Sigil.Impl.ReturnTracer+<>c>
+;  V65 tmp49        [V65,T66] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Sigil.Impl.LinqRoot`1[System.__Canon]>
 ;* V66 tmp50        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Sigil.Impl.LinqRoot`1[int]>
 ;* V67 tmp51        [V67    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Sigil.Impl.LinqRoot`1[int]>
-;  V68 tmp52        [V68,T48] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.ReturnTracerResult>
-;  V69 tmp53        [V69,T49] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.ReturnTracerResult>
-;  V70 tmp54        [V70,T69] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V68 tmp52        [V68,T47] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.ReturnTracerResult>
+;  V69 tmp53        [V69,T48] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <Sigil.Impl.ReturnTracerResult>
+;  V70 tmp54        [V70,T67] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V71 tmp55        [V71    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
-;  V72 tmp56        [V72,T07] (  5, 20   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "NewObj constructor temp" <Sigil.Impl.ReturnTracerResult>
+;  V72 tmp56        [V72,T07] (  5, 20   )     ref  ->  r12         class-hnd exact "NewObj constructor temp" <Sigil.Impl.ReturnTracerResult>
 ;* V73 tmp57        [V73    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V74 tmp58        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Sigil.Impl.ReturnTracerResult>
 ;  V75 tmp59        [V75,T00] (  7, 28   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-;  V76 tmp60        [V76,T35] (  3,  6   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V77 tmp61        [V77,T23] (  4,  8   )     int  ->  r13         "Inline stloc first use temp"
+;  V76 tmp60        [V76,T34] (  3,  6   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V77 tmp61        [V77,T23] (  4,  8   )     int  ->  r14         "Inline stloc first use temp"
 ;  V78 tmp62        [V78,T27] (  3,  8   )     ref  ->  [rbp-0x78]  class-hnd spill-single-def "Inlining Arg" <System.__Canon>
-;  V79 tmp63        [V79,T53] (  2,  4   )     int  ->  [rbp-0x44]  spill-single-def "Inline return value spill temp"
+;  V79 tmp63        [V79,T52] (  2,  4   )     int  ->  [rbp-0x40]  spill-single-def "Inline return value spill temp"
 ;  V80 tmp64        [V80,T17] (  3, 12   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,int]>
-;  V81 tmp65        [V81,T36] (  3,  6   )   byref  ->  rax         "Inline stloc first use temp"
+;  V81 tmp65        [V81,T35] (  3,  6   )   byref  ->  rax         "Inline stloc first use temp"
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
 ;  V84 tmp68        [V84,T18] (  3, 12   )     ref  ->   r9         class-hnd "Inlining Arg" <System.__Canon>
 ;  V85 tmp69        [V85,T03] (  6, 24   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-;  V86 tmp70        [V86,T37] (  3,  6   )     ref  ->  r11         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V86 tmp70        [V86,T36] (  3,  6   )     ref  ->  r11         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V87 tmp71        [V87,T24] (  4,  8   )     int  ->   r8         "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V89 tmp73        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V90 tmp74        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Sigil.Impl.ReturnTracerResult>
 ;  V91 tmp75        [V91,T01] (  7, 28   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-;  V92 tmp76        [V92,T38] (  3,  6   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V93 tmp77        [V93,T25] (  4,  8   )     int  ->  r13         "Inline stloc first use temp"
+;  V92 tmp76        [V92,T37] (  3,  6   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V93 tmp77        [V93,T25] (  4,  8   )     int  ->  r14         "Inline stloc first use temp"
 ;* V94 tmp78        [V94    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V95 tmp79        [V95    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Sigil.Impl.ReturnTracerResult>
 ;  V96 tmp80        [V96,T02] (  7, 28   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.__Canon]>
-;  V97 tmp81        [V97,T39] (  3,  6   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V98 tmp82        [V98,T26] (  4,  8   )     int  ->  r12         "Inline stloc first use temp"
-;  V99 tmp83        [V99,T32] (  6,  7   )     ref  ->  rsi         "Single return block return value"
-;  V100 tmp84       [V100,T54] (  2,  4   )     int  ->  r12         "field V11.m_value (fldOffset=0x0)" P-INDEP
-;  V101 tmp85       [V101,T55] (  2,  4   )     int  ->  [rbp-0x48]  spill-single-def "field V11.m_flags (fldOffset=0x4)" P-INDEP
-;  V102 tmp86       [V102,T79] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V103 tmp87       [V103,T80] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V104 tmp88       [V104,T81] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V105 tmp89       [V105,T82] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V106 tmp90       [V106,T83] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V107 tmp91       [V107,T70] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V108 tmp92       [V108,T84] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V109 tmp93       [V109,T71] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V110 tmp94       [V110,T04] (  3, 24   )     ref  ->  rcx         "argument with side effect"
-;  V111 tmp95       [V111,T19] (  3, 12   )     ref  ->  rcx         "argument with side effect"
-;  V112 tmp96       [V112,T20] (  3, 12   )  struct ( 8) [rbp-0x50]  do-not-enreg[SF] "by-value struct argument" <System.Reflection.Emit.OpCode>
-;  V113 PSPSym      [V113,T93] (  1,  1   )    long  ->  [rbp-0x90]  do-not-enreg[V] "PSPSym"
-;  V114 cse0        [V114,T41] (  3,  6   )     int  ->   r8         "CSE #12: conservative"
-;  V115 cse1        [V115,T40] (  3,  6   )     ref  ->  rcx         "CSE #11: conservative"
-;  V116 cse2        [V116,T08] (  9, 18   )     ref  ->  [rbp-0x80]  multi-def "CSE #10: aggressive"
+;  V97 tmp81        [V97,T38] (  3,  6   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V98 tmp82        [V98,T26] (  4,  8   )     int  ->  r13         "Inline stloc first use temp"
+;  V99 tmp83        [V99    ] (  6,  7.50)  struct (16) [rbp-0x50]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Sigil.Impl.LinqList`1[Sigil.Impl.ReturnTracerResult]>
+;  V100 tmp84       [V100,T32] (  6,  7   )     ref  ->  rsi         "Single return block return value"
+;  V101 tmp85       [V101,T53] (  2,  4   )     int  ->  r13         "field V11.m_value (fldOffset=0x0)" P-INDEP
+;  V102 tmp86       [V102,T54] (  2,  4   )     int  ->  r12         "field V11.m_flags (fldOffset=0x4)" P-INDEP
+;  V103 tmp87       [V103,T77] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V104 tmp88       [V104,T78] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V105 tmp89       [V105,T79] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V106 tmp90       [V106,T80] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V107 tmp91       [V107,T81] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V108 tmp92       [V108,T68] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V109 tmp93       [V109,T82] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V110 tmp94       [V110,T69] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V111 tmp95       [V111,T04] (  3, 24   )     ref  ->  rcx         "argument with side effect"
+;  V112 tmp96       [V112,T19] (  3, 12   )     ref  ->  rcx         "argument with side effect"
+;  V113 tmp97       [V113,T20] (  3, 12   )  struct ( 8) [rbp-0x58]  do-not-enreg[SF] "by-value struct argument" <System.Reflection.Emit.OpCode>
+;  V114 PSPSym      [V114,T91] (  1,  1   )    long  ->  [rbp-0x90]  do-not-enreg[V] "PSPSym"
+;  V115 cse0        [V115,T40] (  3,  6   )     int  ->   r8         "CSE #12: conservative"
+;  V116 cse1        [V116,T39] (  3,  6   )     ref  ->  rcx         "CSE #11: conservative"
+;  V117 cse2        [V117,T08] (  9, 18   )     ref  ->  [rbp-0x80]  multi-def "CSE #10: aggressive"
 ;
 ; Lcl frame size = 120
 
@@ -139,6 +140,9 @@ G_M25496_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        sub      rsp, 120
        lea      rbp, [rsp+0xB0]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x50], rax
+       mov      qword ptr [rbp-0x48], rax
        mov      qword ptr [rbp-0x90], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
@@ -147,7 +151,7 @@ G_M25496_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rdi]
        mov      rsi, r9
        ; gcrRegs +[rsi]
-						;; size=43 bbWeight=1 PerfScore 10.75
+						;; size=53 bbWeight=1 PerfScore 13.00
 G_M25496_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; Sigil.Impl.ReturnTracer+<>c__DisplayClass7_0
        call     CORINFO_HELP_NEWSFAST
@@ -410,46 +414,37 @@ G_M25496_IG06:        ; bbWeight=0.50, extend
        cmp      gword ptr [r15+0x08], 0
        je       G_M25496_IG25
        mov      rcx, 0xD1FFAB1E      ; Sigil.Impl.LinqList`1[Sigil.Impl.ReturnTracerResult]
+       mov      qword ptr [rbp-0x50], rcx
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      r14, rax
        ; gcrRegs +[r14]
-       mov      rcx, 0xD1FFAB1E      ; <unknown class>
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       mov      r13, rax
-       ; gcrRegs +[r13]
        test     byte  ptr [(reloc)], 1      ; global ptr
        je       G_M25496_IG31
-						;; size=74 bbWeight=0.50 PerfScore 6.62
-G_M25496_IG07:        ; bbWeight=0.50, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref
+						;; size=70 bbWeight=0.50 PerfScore 6.50
+G_M25496_IG07:        ; bbWeight=0.50, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        mov      rdx, gword ptr [rcx]
        ; gcrRegs +[rdx]
-       lea      rcx, bword ptr [r13+0x08]
+       lea      rcx, bword ptr [r14+0x08]
...
+0 (0.00%) : 12602.dasm - System.Collections.Generic.SortedDictionary`2[int,int]:TryGetValue(int,byref):ubyte:this (FullOpts)
@@ -15,16 +15,17 @@
 ;* V04 loc1         [V04    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
+;* V07 tmp1         [V07    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
 ;  V08 tmp2         [V08,T04] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[int,int]]>
 ;* V09 tmp3         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int32>
 ;* V11 tmp5         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V12 tmp6         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V05.key (fldOffset=0x0)" P-INDEP
-;  V13 tmp7         [V13,T07] (  2,  1   )     int  ->  rax         "field V05.value (fldOffset=0x4)" P-INDEP
-;  V14 tmp8         [V14,T06] (  2,  2   )     int  ->  rdx         "field V09.key (fldOffset=0x0)" P-INDEP
-;* V15 tmp9         [V15,T08] (  0,  0   )     int  ->  zero-ref    "field V09.value (fldOffset=0x4)" P-INDEP
-;  V16 tmp10        [V16,T00] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,int]>
+;* V12 tmp6         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,int]>
+;* V13 tmp7         [V13    ] (  0,  0   )     int  ->  zero-ref    "field V05.key (fldOffset=0x0)" P-INDEP
+;  V14 tmp8         [V14,T07] (  2,  1   )     int  ->  rax         "field V05.value (fldOffset=0x4)" P-INDEP
+;  V15 tmp9         [V15,T06] (  2,  2   )     int  ->  rdx         "field V09.key (fldOffset=0x0)" P-INDEP
+;* V16 tmp10        [V16,T08] (  0,  0   )     int  ->  zero-ref    "field V09.value (fldOffset=0x4)" P-INDEP
+;  V17 tmp11        [V17,T00] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;
 ; Lcl frame size = 48
 
+0 (0.00%) : 23270.dasm - System.Collections.Generic.SortedDictionary`2[int,int]:Remove(int):ubyte:this (FullOpts)
@@ -12,17 +12,18 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
+;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
 ;  V05 tmp2         [V05,T03] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[int,int]]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int32>
 ;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[int,int]>
-;  V10 tmp7         [V10,T04] (  2,  2   )     int  ->  rdx         "field V06.key (fldOffset=0x0)" P-INDEP
-;* V11 tmp8         [V11,T05] (  0,  0   )     int  ->  zero-ref    "field V06.value (fldOffset=0x4)" P-INDEP
-;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V09.key (fldOffset=0x0)" P-INDEP
-;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V09.value (fldOffset=0x4)" P-INDEP
-;  V14 tmp11        [V14,T00] (  3,  6   )  struct ( 8) [rsp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,int]>
+;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,int]>
+;  V11 tmp8         [V11,T04] (  2,  2   )     int  ->  rdx         "field V06.key (fldOffset=0x0)" P-INDEP
+;* V12 tmp9         [V12,T05] (  0,  0   )     int  ->  zero-ref    "field V06.value (fldOffset=0x4)" P-INDEP
+;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V09.key (fldOffset=0x0)" P-INDEP
+;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "field V09.value (fldOffset=0x4)" P-INDEP
+;  V15 tmp12        [V15,T00] (  3,  6   )  struct ( 8) [rsp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;
 ; Lcl frame size = 40
 
+0 (0.00%) : 12318.dasm - System.Collections.Generic.SortedList`2[int,int]:IndexOfKey(int):int:this (FullOpts)
@@ -12,8 +12,9 @@
 ;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rdx         single-def
 ;  V02 loc0         [V02,T02] (  3,  3   )     int  ->  rax        
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
+;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int32>
+;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,int]>
 ;
 ; Lcl frame size = 40
 
+0 (0.00%) : 22052.dasm - System.Collections.Generic.SortedList`2[int,int]:Add(int,int):this (FullOpts)
@@ -13,13 +13,14 @@
 ;  V02 arg2         [V02,T02] (  3,  3   )     int  ->  rdi         single-def
 ;  V03 loc0         [V03,T03] (  3,  3   )     int  ->  rax        
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
+;* V05 tmp1         [V05    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
 ;  V06 tmp2         [V06,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
 ;  V07 tmp3         [V07,T06] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "impImportAndPushBox" <System.String>
 ;  V08 tmp4         [V08,T05] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int32>
-;  V10 tmp6         [V10,T07] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V11 tmp7         [V11,T08] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,int]>
+;  V11 tmp7         [V11,T07] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
+;  V12 tmp8         [V12,T08] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
+0 (0.00%) : 22932.dasm - System.Collections.Generic.SortedDictionary`2[int,int]:ContainsKey(int):ubyte:this (FullOpts)
@@ -12,17 +12,18 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
+;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int32>
 ;  V05 tmp2         [V05,T03] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[int,int]]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int32>
 ;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[int,int]>
-;  V10 tmp7         [V10,T04] (  2,  2   )     int  ->  rdx         "field V06.key (fldOffset=0x0)" P-INDEP
-;* V11 tmp8         [V11,T05] (  0,  0   )     int  ->  zero-ref    "field V06.value (fldOffset=0x4)" P-INDEP
-;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V09.key (fldOffset=0x0)" P-INDEP
-;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V09.value (fldOffset=0x4)" P-INDEP
-;  V14 tmp11        [V14,T00] (  3,  6   )  struct ( 8) [rsp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,int]>
+;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,int]>
+;  V11 tmp8         [V11,T04] (  2,  2   )     int  ->  rdx         "field V06.key (fldOffset=0x0)" P-INDEP
+;* V12 tmp9         [V12,T05] (  0,  0   )     int  ->  zero-ref    "field V06.value (fldOffset=0x4)" P-INDEP
+;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V09.key (fldOffset=0x0)" P-INDEP
+;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "field V09.value (fldOffset=0x4)" P-INDEP
+;  V15 tmp12        [V15,T00] (  3,  6   )  struct ( 8) [rsp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;
 ; Lcl frame size = 40
 
libraries.crossgen2.windows.x64.checked.mch
-16 (-3.59%) : 196390.dasm - System.Management.ManagementObjectCollection:GetEnumerator():System.Management.ManagementObjectCollection+ManagementObjectEnumerator:this (FullOpts)
@@ -13,41 +13,46 @@
 ;  V01 loc0         [V01    ] (  4,  4   )     ref  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Management.IEnumWbemClassObject>
 ;  V02 loc1         [V02,T01] (  8,  8   )     int  ->  [rbp-0x24]  do-not-enreg[M] EH-live
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T04] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Management.ManagementObjectCollection+ManagementObjectEnumerator>
-;  V05 tmp2         [V05,T10] (  2,  4   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.Management.IEnumWbemClassObject>
-;  V06 tmp3         [V06,T05] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Management.ManagementObjectCollection+ManagementObjectEnumerator>
-;  V07 tmp4         [V07,T11] (  2,  4   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.Management.IEnumWbemClassObject>
+;  V04 tmp1         [V04,T03] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Management.ManagementObjectCollection+ManagementObjectEnumerator>
+;  V05 tmp2         [V05,T09] (  2,  4   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.Management.IEnumWbemClassObject>
+;  V06 tmp3         [V06,T04] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Management.ManagementObjectCollection+ManagementObjectEnumerator>
+;  V07 tmp4         [V07,T10] (  2,  4   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.Management.IEnumWbemClassObject>
 ;  V08 tmp5         [V08,T17] (  2,  0   )     ref  ->  rcx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;  V09 tmp6         [V09,T16] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V10 tmp7         [V10,T18] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <<unknown class>>
-;  V11 tmp8         [V11,T06] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Management.EnumerationOptions>
-;  V12 tmp9         [V12,T07] (  3,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Management.ManagementScope>
-;  V13 tmp10        [V13,T12] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Management.IEnumWbemClassObject>
+;  V11 tmp8         [V11,T05] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Management.EnumerationOptions>
+;  V12 tmp9         [V12,T06] (  3,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Management.ManagementScope>
+;  V13 tmp10        [V13,T11] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Management.IEnumWbemClassObject>
 ;  V14 tmp11        [V14,T02] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Management.SecuredIEnumWbemClassObjectHandler>
-;  V15 tmp12        [V15,T08] (  3,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Management.ManagementScope>
-;  V16 tmp13        [V16,T13] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Management.IEnumWbemClassObject>
-;  V17 tmp14        [V17,T03] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Management.SecuredIEnumWbemClassObjectHandler>
-;  V18 tmp15        [V18,T14] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  V19 PSPSym       [V19,T15] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
-;  V20 rat0         [V20,T09] (  3,  6   )     ref  ->  rax         "delegate invoke call"
+;  V15 tmp12        [V15,T07] (  3,  6   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Management.ManagementScope>
+;  V16 tmp13        [V16,T12] (  2,  4   )     ref  ->  r11         class-hnd single-def "Inlining Arg" <System.Management.IEnumWbemClassObject>
+;* V17 tmp14        [V17    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Management.SecuredIEnumWbemClassObjectHandler>
+;  V18 tmp15        [V18,T14] (  3,  3   )  struct (24) [rbp-0x40]  do-not-enreg[SF] must-init "stack allocated ref class temp" <System.Management.SecuredIEnumWbemClassObjectHandler>
+;* V19 tmp16        [V19    ] (  0,  0   )    long  ->  zero-ref    single-def "V18.[000..008)"
+;  V20 tmp17        [V20,T13] (  2,  4   )    long  ->  rdx         "argument with side effect"
+;  V21 PSPSym       [V21,T15] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[V] "PSPSym"
+;  V22 rat0         [V22,T08] (  3,  6   )     ref  ->  rax         "delegate invoke call"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 88
 
 G_M64124_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 56
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 88
+       lea      rbp, [rsp+0x70]
+       xorps    xmm4, xmm4
+       movaps   xmmword ptr [rbp-0x40], xmm4
+       movaps   xmmword ptr [rbp-0x30], xmm4
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
-       mov      qword ptr [rbp-0x30], rsp
+       mov      qword ptr [rbp-0x50], rsp
        mov      gword ptr [rbp+0x10], rcx
        ; GC ptr vars +{V00}
        mov      rdx, rcx
        ; gcrRegs +[rdx]
-						;; size=30 bbWeight=1 PerfScore 8.25
+						;; size=41 bbWeight=1 PerfScore 12.58
 G_M64124_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, isz
        cmp      byte  ptr [rdx+0x20], 0
        jne      G_M64124_IG11
@@ -78,7 +83,7 @@ G_M64124_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=000
        ; gcrRegs +[rax]
 						;; size=61 bbWeight=1 PerfScore 25.00
 G_M64124_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 88
        pop      rbx
        pop      rsi
        pop      rdi
@@ -132,38 +137,21 @@ G_M64124_IG06:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
        jne      SHORT G_M64124_IG07
        mov      rdx, gword ptr [rbp+0x10]
        ; gcrRegs +[rdx]
-       mov      rbx, gword ptr [rdx+0x08]
-       ; gcrRegs +[rbx]
-       mov      rsi, gword ptr [rbp-0x20]
-       ; gcrRegs +[rsi]
-       cmp      byte  ptr [rbx], bl
-       call     [CORINFO_HELP_READYTORUN_NEW]
-       ; gcrRegs -[rdx] +[rax]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       lea      rcx, bword ptr [rdi+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       call     [CORINFO_HELP_ASSIGN_REF]
-       ; gcrRegs -[rax rdx rbx]
-       ; byrRegs -[rcx]
-       lea      rcx, bword ptr [rdi+0x08]
-       ; byrRegs +[rcx]
-       mov      rdx, rsi
-       ; gcrRegs +[rdx]
-       call     [CORINFO_HELP_ASSIGN_REF]
-       ; gcrRegs -[rdx rsi]
-       ; byrRegs -[rcx]
-       mov      rcx, gword ptr [rdi+0x08]
+       mov      rcx, gword ptr [rdx+0x08]
        ; gcrRegs +[rcx]
+       mov      r11, gword ptr [rbp-0x20]
+       ; gcrRegs +[r11]
+       cmp      byte  ptr [rcx], cl
+       mov      gword ptr [rbp-0x30], rcx
+       mov      gword ptr [rbp-0x38], r11
+       mov      rcx, gword ptr [rbp-0x38]
        lea      r11, [(reloc)]      ; function address
+       ; gcrRegs -[r11]
        call     [r11]<unknown method>
-       ; gcrRegs -[rcx rdi]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        mov      dword ptr [rbp-0x24], eax
-						;; size=136 bbWeight=1 PerfScore 49.75
+						;; size=109 bbWeight=1 PerfScore 40.00
 G_M64124_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        movsxd   rax, dword ptr [rbp-0x24]
        mov      ecx, 0xD1FFAB1E
@@ -217,7 +205,7 @@ G_M64124_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rax]
 						;; size=32 bbWeight=1 PerfScore 9.00
 G_M64124_IG10:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 88
        pop      rbx
        pop      rsi
        pop      rdi
@@ -261,7 +249,7 @@ G_M64124_IG12:        ; bbWeight=0, gcVars=0000000000000001 {V00}, gcrefRegs=000
        sub      rsp, 40
        mov      rbp, qword ptr [rcx+0x20]
        mov      qword ptr [rsp+0x20], rbp
-       lea      rbp, [rbp+0x50]
+       lea      rbp, [rbp+0x70]
 						;; size=21 bbWeight=0 PerfScore 0.00
 G_M64124_IG13:        ; bbWeight=0, gcVars=0000000000000001 {V00}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref
        mov      rcx, rdx
@@ -280,7 +268,7 @@ G_M64124_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=9 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 446, prolog size 30, PerfScore 129.00, instruction count 127, allocated bytes for code 446 (MethodHash=73e10583) for method System.Management.ManagementObjectCollection:GetEnumerator():System.Management.ManagementObjectCollection+ManagementObjectEnumerator:this (FullOpts)
+; Total bytes of code 430, prolog size 41, PerfScore 123.58, instruction count 124, allocated bytes for code 430 (MethodHash=73e10583) for method System.Management.ManagementObjectCollection:GetEnumerator():System.Management.ManagementObjectCollection+ManagementObjectEnumerator:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -293,7 +281,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-12 (-0.09%) : 166095.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)
@@ -14,71 +14,71 @@
 ;  V02 arg2         [V02,T20] ( 20, 39   )     ref  ->  r15         class-hnd single-def <System.Xml.Serialization.FieldModel>
 ;  V03 arg3         [V03,T01] ( 74, 95   )     ref  ->  rbx         class-hnd single-def <System.Xml.Serialization.XmlAttributes>
 ;  V04 arg4         [V04,T16] ( 37, 48.50)     ref  ->  r14         class-hnd single-def <System.String>
-;  V05 arg5         [V05,T341] (  1,  0.50)     ref  ->  [rbp+0x38]  class-hnd single-def <System.Type>
-;  V06 arg6         [V06,T339] (  1,  1   )   ubyte  ->  [rbp+0x40]  single-def
-;  V07 arg7         [V07,T204] (  2,  6   )   ubyte  ->  r12         single-def
+;  V05 arg5         [V05,T339] (  1,  0.50)     ref  ->  [rbp+0x38]  class-hnd single-def <System.Type>
+;  V06 arg6         [V06,T337] (  1,  1   )   ubyte  ->  [rbp+0x40]  single-def
+;  V07 arg7         [V07,T203] (  2,  6   )   ubyte  ->  r12         single-def
 ;  V08 arg8         [V08,T44] ( 11, 19   )     ref  ->  r13         class-hnd single-def <System.Xml.Serialization.RecursionLimiter>
-;* V09 loc0         [V09,T340] (  0,  0   )     int  ->  zero-ref   
-;  V10 loc1         [V10,T310] (  2,  2   )     int  ->  [rbp-0x3C]  spill-single-def
+;* V09 loc0         [V09,T338] (  0,  0   )     int  ->  zero-ref   
+;  V10 loc1         [V10,T308] (  2,  2   )     int  ->  [rbp-0x3C]  spill-single-def
 ;  V11 loc2         [V11,T25] ( 18, 32.50)     int  ->  [rbp-0x40] 
-;  V12 loc3         [V12,T257] (  2,  2   )     ref  ->  [rbp-0xB0]  class-hnd spill-single-def <System.Xml.Serialization.XmlArrayItemAttributes>
-;  V13 loc4         [V13,T258] (  2,  2   )     ref  ->  [rbp-0xB8]  class-hnd spill-single-def <System.String>
-;  V14 loc5         [V14,T36] ( 19, 24.50)     ref  ->  [rbp-0xC0]  class-hnd spill-single-def <System.Type>
-;  V15 loc6         [V15,T110] ( 18, 10   )     ref  ->  [rbp-0xC8]  class-hnd spill-single-def <System.String>
-;  V16 loc7         [V16,T45] (  8, 18.50)     ref  ->  [rbp-0xD0]  class-hnd exact spill-single-def <<unknown class>>
-;  V17 loc8         [V17,T43] (  8, 21   )     ref  ->  [rbp-0xD8]  class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
+;  V12 loc3         [V12,T255] (  2,  2   )     ref  ->  [rbp-0xC0]  class-hnd spill-single-def <System.Xml.Serialization.XmlArrayItemAttributes>
+;  V13 loc4         [V13,T256] (  2,  2   )     ref  ->  [rbp-0xC8]  class-hnd spill-single-def <System.String>
+;  V14 loc5         [V14,T36] ( 19, 24.50)     ref  ->  [rbp-0xD0]  class-hnd spill-single-def <System.Type>
+;  V15 loc6         [V15,T110] ( 18, 10   )     ref  ->  [rbp-0xD8]  class-hnd spill-single-def <System.String>
+;  V16 loc7         [V16,T45] (  8, 18.50)     ref  ->  [rbp-0xE0]  class-hnd exact spill-single-def <<unknown class>>
+;  V17 loc8         [V17,T43] (  8, 21   )     ref  ->  [rbp-0xE8]  class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
 ;  V18 loc9         [V18,T117] ( 14,  8   )     int  ->  [rbp-0x44]  spill-single-def
 ;* V19 loc10        [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 loc11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 loc12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;  V22 loc13        [V22,T56] ( 10, 16   )     ref  ->  r12         class-hnd single-def <System.Type>
-;  V23 loc14        [V23,T330] (  3,  1.50)   ubyte  ->  [rbp-0x48]  spill-single-def
-;  V24 loc15        [V24,T114] ( 18,  9   )     ref  ->  [rbp-0xE0]  class-hnd <System.Xml.Serialization.AttributeAccessor>
+;  V23 loc14        [V23,T328] (  3,  1.50)   ubyte  ->  [rbp-0x48]  spill-single-def
+;  V24 loc15        [V24,T114] ( 18,  9   )     ref  ->  [rbp-0xF0]  class-hnd <System.Xml.Serialization.AttributeAccessor>
 ;* V25 loc16        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
-;  V26 loc17        [V26,T190] (  3,  6.50)     ref  ->  [rbp-0xE8]  class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
-;  V27 loc18        [V27,T237] (  5,  2.50)     ref  ->  [rbp-0xF0]  class-hnd exact spill-single-def <System.Xml.Serialization.TextAccessor>
+;* V26 loc17        [V26,T340] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Xml.Serialization.NameTable>
+;  V27 loc18        [V27,T235] (  5,  2.50)     ref  ->  [rbp-0xF8]  class-hnd exact spill-single-def <System.Xml.Serialization.TextAccessor>
 ;* V28 loc19        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
-;  V29 loc20        [V29,T335] (  2,  1   )     ref  ->  [rbp-0xF8]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
+;  V29 loc20        [V29,T333] (  2,  1   )     ref  ->  [rbp-0x100]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
 ;  V30 loc21        [V30,T51] (  5, 16.50)     int  ->  [rbp-0x4C] 
-;  V31 loc22        [V31,T24] ( 11, 34   )     ref  ->  [rbp-0x100]  class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
+;  V31 loc22        [V31,T24] ( 11, 34   )     ref  ->  [rbp-0x108]  class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
 ;* V32 loc23        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
-;  V33 loc24        [V33,T137] (  2,  8   )     ref  ->  [rbp-0x108]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
-;  V34 loc25        [V34,T96] (  5, 12   )     ref  ->  [rbp-0x110]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
-;  V35 loc26        [V35,T12] ( 18, 56   )     ref  ->  [rbp-0x118]  class-hnd <System.Xml.Serialization.ElementAccessor>
+;  V33 loc24        [V33,T137] (  2,  8   )     ref  ->  [rbp-0x110]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
+;  V34 loc25        [V34,T96] (  5, 12   )     ref  ->  [rbp-0x118]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
+;  V35 loc26        [V35,T12] ( 18, 56   )     ref  ->  [rbp-0x120]  class-hnd <System.Xml.Serialization.ElementAccessor>
 ;  V36 loc27        [V36,T52] (  5, 16.50)     int  ->  [rbp-0x50] 
-;  V37 loc28        [V37,T42] (  9, 22   )     ref  ->  [rbp-0x120]  class-hnd spill-single-def <System.Xml.Serialization.XmlAnyElementAttribute>
+;  V37 loc28        [V37,T42] (  9, 22   )     ref  ->  [rbp-0x128]  class-hnd spill-single-def <System.Xml.Serialization.XmlAnyElementAttribute>
 ;* V38 loc29        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
 ;* V39 loc30        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;* V40 loc31        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V41 loc32        [V41,T19] ( 21, 42   )     ref  ->  [rbp-0x128]  class-hnd <System.Xml.Serialization.ElementAccessor>
-;  V42 loc33        [V42,T207] (  2,  4   )     ref  ->  [rbp-0x130]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
-;  V43 loc34        [V43,T192] (  3,  6   )     ref  ->  [rbp-0x138]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
+;  V41 loc32        [V41,T19] ( 21, 42   )     ref  ->  [rbp-0x130]  class-hnd <System.Xml.Serialization.ElementAccessor>
+;  V42 loc33        [V42,T206] (  2,  4   )     ref  ->  [rbp-0x138]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
+;  V43 loc34        [V43,T191] (  3,  6   )     ref  ->  [rbp-0x140]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
 ;  V44 loc35        [V44,T188] ( 14,  7   )     ref  ->  r15         class-hnd <System.Xml.Serialization.ElementAccessor>
-;  V45 loc36        [V45,T336] (  2,  1   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
+;  V45 loc36        [V45,T334] (  2,  1   )     ref  ->  rax         class-hnd exact single-def <<unknown class>>
 ;* V46 loc37        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Xml.Serialization.XmlAttributes>
 ;* V47 loc38        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Xml.Serialization.XmlArrayAttribute>
 ;* V48 loc39        [V48    ] (  0,  0   )     int  ->  zero-ref   
-;  V49 loc40        [V49,T115] ( 17,  8.50)     ref  ->  [rbp-0x140]  class-hnd <System.Xml.Serialization.AttributeAccessor>
-;  V50 loc41        [V50,T241] (  4,  2   )     ref  ->  [rbp-0x148]  class-hnd exact spill-single-def <System.Xml.Serialization.TextAccessor>
+;  V49 loc40        [V49,T115] ( 17,  8.50)     ref  ->  [rbp-0x148]  class-hnd <System.Xml.Serialization.AttributeAccessor>
+;  V50 loc41        [V50,T239] (  4,  2   )     ref  ->  [rbp-0x150]  class-hnd exact spill-single-def <System.Xml.Serialization.TextAccessor>
 ;  V51 loc42        [V51,T53] (  5, 16.50)     int  ->  [rbp-0x54] 
-;  V52 loc43        [V52,T18] ( 16, 46   )     ref  ->  [rbp-0x150]  class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
-;  V53 loc44        [V53,T13] ( 15, 54   )     ref  ->  [rbp-0x158]  class-hnd <System.Xml.Serialization.ElementAccessor>
-;  V54 loc45        [V54,T97] (  5, 12   )     ref  ->  [rbp-0x160]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
-;  V55 loc46        [V55,T191] (  3,  6.50)     ref  ->  [rbp-0x168]  class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
+;  V52 loc43        [V52,T18] ( 16, 46   )     ref  ->  [rbp-0x158]  class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
+;  V53 loc44        [V53,T13] ( 15, 54   )     ref  ->  [rbp-0x160]  class-hnd <System.Xml.Serialization.ElementAccessor>
+;  V54 loc45        [V54,T97] (  5, 12   )     ref  ->  [rbp-0x168]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
+;  V55 loc46        [V55,T190] (  3,  6.50)     ref  ->  [rbp-0x170]  class-hnd exact spill-single-def <System.Xml.Serialization.NameTable>
 ;  V56 loc47        [V56,T54] (  5, 16.50)     int  ->  [rbp-0x58] 
-;  V57 loc48        [V57,T17] ( 17, 46   )     ref  ->  [rbp-0x170]  class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
+;  V57 loc48        [V57,T17] ( 17, 46   )     ref  ->  [rbp-0x178]  class-hnd spill-single-def <System.Xml.Serialization.XmlElementAttribute>
 ;* V58 loc49        [V58    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
-;  V59 loc50        [V59,T138] (  2,  8   )     ref  ->  [rbp-0x178]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
-;  V60 loc51        [V60,T15] ( 15, 50   )     ref  ->  [rbp-0x180]  class-hnd <System.Xml.Serialization.ElementAccessor>
-;  V61 loc52        [V61,T98] (  5, 12   )     ref  ->  [rbp-0x188]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
+;  V59 loc50        [V59,T138] (  2,  8   )     ref  ->  [rbp-0x180]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
+;  V60 loc51        [V60,T15] ( 15, 50   )     ref  ->  [rbp-0x188]  class-hnd <System.Xml.Serialization.ElementAccessor>
+;  V61 loc52        [V61,T98] (  5, 12   )     ref  ->  [rbp-0x190]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
 ;  V62 loc53        [V62,T55] (  5, 16.50)     int  ->  [rbp-0x5C] 
-;  V63 loc54        [V63,T35] ( 12, 26   )     ref  ->  [rbp-0x190]  class-hnd spill-single-def <System.Xml.Serialization.XmlAnyElementAttribute>
+;  V63 loc54        [V63,T35] ( 12, 26   )     ref  ->  [rbp-0x198]  class-hnd spill-single-def <System.Xml.Serialization.XmlAnyElementAttribute>
 ;* V64 loc55        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
 ;* V65 loc56        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;* V66 loc57        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V67 loc58        [V67,T21] ( 18, 36   )     ref  ->  [rbp-0x198]  class-hnd <System.Xml.Serialization.ElementAccessor>
-;  V68 loc59        [V68,T208] (  2,  4   )     ref  ->  [rbp-0x1A0]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
-;  V69 loc60        [V69,T193] (  3,  6   )     ref  ->  [rbp-0x1A8]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
+;  V67 loc58        [V67,T21] ( 18, 36   )     ref  ->  [rbp-0x1A0]  class-hnd <System.Xml.Serialization.ElementAccessor>
+;  V68 loc59        [V68,T207] (  2,  4   )     ref  ->  [rbp-0x1A8]  class-hnd exact spill-single-def <System.Xml.Serialization.TypeDesc>
+;  V69 loc60        [V69,T192] (  3,  6   )     ref  ->  [rbp-0x1B0]  class-hnd spill-single-def <System.Xml.Serialization.TypeModel>
 ;  V70 loc61        [V70,T14] (  8, 50.50)     int  ->  rbx        
 ;* V71 loc62        [V71,T109] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V72 loc63        [V72,T10] ( 16, 60   )     ref  ->  r14         class-hnd exact <System.Xml.Serialization.ElementAccessor>
@@ -91,34 +91,34 @@
 ;* V79 loc70        [V79    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;* V80 loc71        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;  V81 OutArgs      [V81    ] (  1,  1   )  struct (72) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V82 tmp1         [V82,T194] (  3,  6   )     ref  ->  [rbp-0x1B0]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-;  V83 tmp2         [V83,T189] (  4,  7   )     ref  ->  [rbp-0x1B8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Serialization.NameTable>
+;  V82 tmp1         [V82,T193] (  3,  6   )     ref  ->  [rbp-0x1B8]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V83 tmp2         [V83,T189] (  4,  7   )     ref  ->  [rbp-0x1C0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Serialization.NameTable>
 ;* V84 tmp3         [V84    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Xml.Serialization.ChoiceIdentifierAccessor>
-;  V85 tmp4         [V85,T26] (  4, 32   )     ref  ->  [rbp-0x1C0] 
+;  V85 tmp4         [V85,T26] (  4, 32   )     ref  ->  [rbp-0x1C8] 
 ;  V86 tmp5         [V86,T38] (  3, 24   )     ref  ->  r12        
 ;* V87 tmp6         [V87    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <<unknown class>>
 ;  V88 tmp7         [V88,T30] (  2, 32   )     ref  ->  rax         class-hnd "dup spill" <System.String>
-;  V89 tmp8         [V89,T27] (  4, 32   )     ref  ->  [rbp-0x1C8] 
+;  V89 tmp8         [V89,T27] (  4, 32   )     ref  ->  [rbp-0x1D0] 
 ;* V90 tmp9         [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <<unknown class>>
-;  V91 tmp10        [V91,T346] (  3,  0   )     ref  ->  rbx        
-;  V92 tmp11        [V92,T342] (  6,  0   )     ref  ->  r15         class-hnd exact "dup spill" <<unknown class>>
-;  V93 tmp12        [V93,T380] (  2,  0   )     ref  ->  rsi         class-hnd "impAppendStmt" <System.String>
-;  V94 tmp13        [V94,T381] (  2,  0   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.String>
-;  V95 tmp14        [V95,T382] (  2,  0   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.String>
-;  V96 tmp15        [V96,T383] (  2,  0   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.String>
-;  V97 tmp16        [V97,T347] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V98 tmp17        [V98,T384] (  2,  0   )     ref  ->  rdi         class-hnd "finalizable newobj spill" <System.String>
+;  V91 tmp10        [V91,T345] (  3,  0   )     ref  ->  rbx        
+;  V92 tmp11        [V92,T341] (  6,  0   )     ref  ->  r15         class-hnd exact "dup spill" <<unknown class>>
+;  V93 tmp12        [V93,T379] (  2,  0   )     ref  ->  rsi         class-hnd "impAppendStmt" <System.String>
+;  V94 tmp13        [V94,T380] (  2,  0   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.String>
+;  V95 tmp14        [V95,T381] (  2,  0   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.String>
+;  V96 tmp15        [V96,T382] (  2,  0   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.String>
+;  V97 tmp16        [V97,T346] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V98 tmp17        [V98,T383] (  2,  0   )     ref  ->  rdi         class-hnd "finalizable newobj spill" <System.String>
 ;* V99 tmp18        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.String>
 ;* V100 tmp19       [V100    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
-;  V101 tmp20       [V101,T348] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V102 tmp21       [V102,T385] (  2,  0   )     ref  ->  rdi         class-hnd "finalizable newobj spill" <System.String>
+;  V101 tmp20       [V101,T347] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V102 tmp21       [V102,T384] (  2,  0   )     ref  ->  rdi         class-hnd "finalizable newobj spill" <System.String>
 ;* V103 tmp22       [V103    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.String>
-;  V104 tmp23       [V104,T349] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V105 tmp24       [V105,T386] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V104 tmp23       [V104,T348] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V105 tmp24       [V105,T385] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
 ;* V106 tmp25       [V106    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
-;  V107 tmp26       [V107,T350] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V108 tmp27       [V108,T387] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
-;  V109 tmp28       [V109,T22] (  6, 36   )     ref  ->  [rbp-0x1D0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Serialization.ElementAccessor>
+;  V107 tmp26       [V107,T349] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V108 tmp27       [V108,T386] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V109 tmp28       [V109,T22] (  6, 36   )     ref  ->  [rbp-0x1D8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Serialization.ElementAccessor>
 ;* V110 tmp29       [V110    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V111 tmp30       [V111    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V112 tmp31       [V112,T129] (  3,  8   )     ref  ->  rax        
@@ -131,7 +131,7 @@
 ;* V119 tmp38       [V119    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V120 tmp39       [V120    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V121 tmp40       [V121    ] (  0,  0   )     ref  ->  zero-ref   
-;  V122 tmp41       [V122,T130] (  3,  8   )     ref  ->  [rbp-0x1D8] 
+;  V122 tmp41       [V122,T130] (  3,  8   )     ref  ->  [rbp-0x1E0] 
 ;* V123 tmp42       [V123    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Xml.Serialization.TypeDesc>
 ;* V124 tmp43       [V124    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V125 tmp44       [V125    ] (  0,  0   )     ref  ->  zero-ref   
@@ -141,50 +141,50 @@
 ;  V129 tmp48       [V129,T111] (  4, 10   )     int  ->  rdx        
 ;* V130 tmp49       [V130    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V131 tmp50       [V131    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Xml.Serialization.TypeDesc>
-;  V132 tmp51       [V132,T351] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V133 tmp52       [V133,T388] (  2,  0   )     ref  ->  rbx         class-hnd "finalizable newobj spill" <System.String>
+;  V132 tmp51       [V132,T350] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V133 tmp52       [V133,T387] (  2,  0   )     ref  ->  rbx         class-hnd "finalizable newobj spill" <System.String>
 ;* V134 tmp53       [V134    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V135 tmp54       [V135    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V136 tmp55       [V136    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
-;  V137 tmp56       [V137,T352] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V138 tmp57       [V138,T389] (  2,  0   )     ref  ->  rbx         class-hnd "finalizable newobj spill" <System.String>
+;  V137 tmp56       [V137,T351] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V138 tmp57       [V138,T388] (  2,  0   )     ref  ->  rbx         class-hnd "finalizable newobj spill" <System.String>
 ;  V139 tmp58       [V139,T139] (  2,  8   )     ref  ->  rdx         class-hnd "dup spill" <System.String>
 ;* V140 tmp59       [V140    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Xml.Serialization.TypeScope>
 ;* V141 tmp60       [V141    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Xml.Serialization.TypeDesc>
-;  V142 tmp61       [V142,T353] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V143 tmp62       [V143,T390] (  2,  0   )     ref  ->  rbx         class-hnd "finalizable newobj spill" <System.String>
+;  V142 tmp61       [V142,T352] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V143 tmp62       [V143,T389] (  2,  0   )     ref  ->  rbx         class-hnd "finalizable newobj spill" <System.String>
 ;* V144 tmp63       [V144    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Xml.Serialization.XmlElementAttributes>
 ;* V145 tmp64       [V145    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Xml.Serialization.TextAccessor>
-;  V146 tmp65       [V146,T259] (  2,  2   )     ref  ->  rdx         class-hnd single-def "impAppendStmt" <System.Xml.Serialization.TypeModel>
-;  V147 tmp66       [V147,T354] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V148 tmp67       [V148,T391] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V146 tmp65       [V146,T257] (  2,  2   )     ref  ->  rdx         class-hnd single-def "impAppendStmt" <System.Xml.Serialization.TypeModel>
+;  V147 tmp66       [V147,T353] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V148 tmp67       [V148,T390] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.String>
 ;* V149 tmp68       [V149    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Xml.Serialization.AttributeAccessor>
 ;* V150 tmp69       [V150    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V151 tmp70       [V151    ] (  0,  0   )     ref  ->  zero-ref   
-;  V152 tmp71       [V152,T318] (  3,  1.50)     ref  ->  rcx        
-;  V153 tmp72       [V153,T260] (  2,  2   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.String>
+;  V152 tmp71       [V152,T316] (  3,  1.50)     ref  ->  rcx        
+;  V153 tmp72       [V153,T258] (  2,  2   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.String>
 ;* V154 tmp73       [V154    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V155 tmp74       [V155,T238] (  5,  2.50)     ref  ->  rdx        
+;  V155 tmp74       [V155,T236] (  5,  2.50)     ref  ->  rdx        
 ;* V156 tmp75       [V156    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V157 tmp76       [V157,T261] (  2,  2   )     ref  ->  rdx         class-hnd single-def "impAppendStmt" <System.Xml.Serialization.TypeModel>
+;  V157 tmp76       [V157,T259] (  2,  2   )     ref  ->  rdx         class-hnd single-def "impAppendStmt" <System.Xml.Serialization.TypeModel>
 ;* V158 tmp77       [V158    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Xml.Serialization.TypeDesc>
-;  V159 tmp78       [V159,T214] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Xml.Serialization.NameTable>
-;  V160 tmp79       [V160,T355] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V161 tmp80       [V161,T392] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.String>
-;  V162 tmp81       [V162,T356] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V163 tmp82       [V163,T393] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V159 tmp78       [V159,T213] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Xml.Serialization.NameTable>
+;  V160 tmp79       [V160,T354] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V161 tmp80       [V161,T391] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V162 tmp81       [V162,T355] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V163 tmp82       [V163,T392] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <System.String>
 ;* V164 tmp83       [V164    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
-;  V165 tmp84       [V165,T357] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V166 tmp85       [V166,T394] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V165 tmp84       [V165,T356] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V166 tmp85       [V166,T393] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
 ;* V167 tmp86       [V167    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
-;  V168 tmp87       [V168,T358] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V169 tmp88       [V169,T395] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V168 tmp87       [V168,T357] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V169 tmp88       [V169,T394] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
 ;* V170 tmp89       [V170    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
-;  V171 tmp90       [V171,T359] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V172 tmp91       [V172,T396] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
+;  V171 tmp90       [V171,T358] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V172 tmp91       [V172,T395] (  2,  0   )     ref  ->  rdi         class-hnd single-def "finalizable newobj spill" <System.String>
 ;  V173 tmp92       [V173,T62] (  2, 16   )     ref  ->  rax         class-hnd "dup spill" <System.Type>
-;  V174 tmp93       [V174,T46] (  5, 18   )     ref  ->  [rbp-0x1E0] 
-;  V175 tmp94       [V175,T23] (  6, 36   )     ref  ->  [rbp-0x1E8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Serialization.ElementAccessor>
+;  V174 tmp93       [V174,T46] (  5, 18   )     ref  ->  [rbp-0x1E8] 
+;  V175 tmp94       [V175,T23] (  6, 36   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.Serialization.ElementAccessor>
 ;* V176 tmp95       [V176    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V177 tmp96       [V177    ] (  0,  0   )     ref  ->  zero-ref   
...
+31 (+3.35%) : 201471.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Serialize(System.Object,System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter):this (FullOpts)
@@ -32,30 +32,31 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V22 tmp13        [V22,T07] (  3, 12   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit>
-;  V23 tmp14        [V23,T08] (  3, 12   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def "dup spill" <System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo>
+;  V23 tmp14        [V23,T08] (  3, 12   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "dup spill" <System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo>
 ;  V24 tmp15        [V24,T14] (  2,  8   )     ref  ->  r15         class-hnd "Inlining Arg" <System.Runtime.Serialization.ISurrogateSelector>
 ;  V25 tmp16        [V25    ] (  2,  8   )  struct (16) [rbp-0x58]  do-not-enreg[SB] must-init "Inlining Arg" <System.Runtime.Serialization.StreamingContext>
-;  V26 tmp17        [V26,T15] (  2,  8   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "Inlining Arg" <System.Runtime.Serialization.IFormatterConverter>
-;  V27 tmp18        [V27,T16] (  2,  8   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def "Inlining Arg" <System.Runtime.Serialization.SerializationBinder>
+;  V26 tmp17        [V26,T15] (  2,  8   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def "Inlining Arg" <System.Runtime.Serialization.IFormatterConverter>
+;  V27 tmp18        [V27,T16] (  2,  8   )     ref  ->  [rbp-0x98]  class-hnd spill-single-def "Inlining Arg" <System.Runtime.Serialization.SerializationBinder>
 ;  V28 tmp19        [V28,T05] (  2, 16   )     ref  ->  r12         class-hnd "impAppendStmt" <System.Type>
 ;  V29 tmp20        [V29,T13] (  3,  8   )     int  ->   r9         "Inline return value spill temp"
 ;  V30 tmp21        [V30,T03] (  4, 24   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Type>
 ;  V31 tmp22        [V31,T12] (  4,  8   )     int  ->  [rbp-0x5C]  spill-single-def "Inline stloc first use temp"
 ;* V32 tmp23        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit>
-;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.MessageEnd>
+;* V33 tmp24        [V33    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.Formatters.Binary.MessageEnd>
 ;  V34 tmp25        [V34,T25] (  3,  5   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.Runtime.Serialization.SerializationObjectManager>
 ;  V35 tmp26        [V35,T20] (  4,  6   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Runtime.Serialization.SerializationEventHandler>
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V37 tmp28        [V37,T17] (  2,  8   )     ref  ->  [rbp-0x58]  do-not-enreg[] "field V25._additionalContext (fldOffset=0x0)" P-DEP
-;  V38 tmp29        [V38,T18] (  2,  8   )     int  ->  [rbp-0x50]  do-not-enreg[] "field V25._state (fldOffset=0x8)" P-DEP
-;  V39 tmp30        [V39    ] (  4, 10   )  struct (16) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Runtime.Serialization.StreamingContext>
-;  V40 cse0         [V40,T09] (  3, 12   )     ref  ->  rdi         "CSE #07: aggressive"
-;  V41 cse1         [V41,T26] (  3,  4   )    long  ->  r13         "CSE #04: moderate"
-;  V42 cse2         [V42,T27] (  3,  4   )    long  ->  r14         "CSE #05: moderate"
-;  V43 cse3         [V43,T10] (  3, 10   )    long  ->  [rbp-0x78]  spill-single-def "CSE #08: aggressive"
-;  V44 cse4         [V44,T30] (  3,  3   )    long  ->  rcx         "CSE #01: moderate"
+;  V37 tmp28        [V37    ] (  2,  2   )  struct ( 8) [rbp-0x68]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <System.Runtime.Serialization.Formatters.Binary.MessageEnd>
+;  V38 tmp29        [V38,T17] (  2,  8   )     ref  ->  [rbp-0x58]  do-not-enreg[] "field V25._additionalContext (fldOffset=0x0)" P-DEP
+;  V39 tmp30        [V39,T18] (  2,  8   )     int  ->  [rbp-0x50]  do-not-enreg[] "field V25._state (fldOffset=0x8)" P-DEP
+;  V40 tmp31        [V40    ] (  4, 10   )  struct (16) [rbp-0x78]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Runtime.Serialization.StreamingContext>
+;  V41 cse0         [V41,T09] (  3, 12   )     ref  ->  rdi         "CSE #07: aggressive"
+;  V42 cse1         [V42,T26] (  3,  4   )    long  ->  r13         "CSE #04: moderate"
+;  V43 cse2         [V43,T27] (  3,  4   )    long  ->  r14         "CSE #05: moderate"
+;  V44 cse3         [V44,T10] (  3, 10   )    long  ->  [rbp-0x80]  spill-single-def "CSE #08: aggressive"
+;  V45 cse4         [V45,T30] (  3,  3   )    long  ->  rcx         "CSE #01: moderate"
 ;
-; Lcl frame size = 152
+; Lcl frame size = 168
 
 G_M45987_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -66,12 +67,13 @@ G_M45987_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 152
-       lea      rbp, [rsp+0xD0]
+       sub      rsp, 168
+       lea      rbp, [rsp+0xE0]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x78], rax
        xorps    xmm4, xmm4
        movaps   xmmword ptr [rbp-0x70], xmm4
        movaps   xmmword ptr [rbp-0x60], xmm4
-       xor      eax, eax
        mov      qword ptr [rbp-0x50], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
@@ -79,7 +81,7 @@ G_M45987_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rdi]
        mov      rsi, r8
        ; gcrRegs +[rsi]
-						;; size=53 bbWeight=1 PerfScore 15.08
+						;; size=57 bbWeight=1 PerfScore 16.08
 G_M45987_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rdx, qword ptr [(reloc)]      ; const ptr
        mov      rdx, gword ptr [rdx]
@@ -250,7 +252,7 @@ G_M45987_IG04:        ; bbWeight=4, gcrefRegs=9048 {rbx rsi r12 r15}, byrefRegs=
        call     [System.Runtime.Serialization.Formatters.Binary.SerStack:Push(System.Object):this]
        ; gcrRegs -[rcx rdx r15]
 						;; size=91 bbWeight=4 PerfScore 127.00
-G_M45987_IG05:        ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M45987_IG05:        ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        lea      rdx, [rbp-0x48]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -259,10 +261,14 @@ G_M45987_IG05:        ; bbWeight=8, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        mov      rdi, rax
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       jne      SHORT G_M45987_IG12
-						;; size=21 bbWeight=8 PerfScore 42.00
+       jne      G_M45987_IG12
+						;; size=25 bbWeight=8 PerfScore 42.00
 G_M45987_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax rdi]
+       xor      ecx, ecx
+       mov      qword ptr [rbp-0x68], rcx
+       mov      rcx, qword ptr [(reloc)]      ; System.Runtime.Serialization.Formatters.Binary.MessageEnd
+       mov      qword ptr [rbp-0x68], rcx
        mov      rcx, gword ptr [rsi+0x18]
        ; gcrRegs +[rcx]
        lea      r11, [(reloc)]      ; function address
@@ -284,17 +290,17 @@ G_M45987_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rax]
        test     rax, rax
        je       SHORT G_M45987_IG10
-						;; size=64 bbWeight=1 PerfScore 26.50
+						;; size=81 bbWeight=1 PerfScore 30.75
 G_M45987_IG07:        ; bbWeight=0.50, gcrefRegs=0005 {rax rdx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      rcx, qword ptr [(reloc)]      ; const ptr
 						;; size=7 bbWeight=0.50 PerfScore 1.00
 G_M45987_IG08:        ; bbWeight=0.50, nogc, extend
        movups   xmm0, xmmword ptr [rdx+rcx]
-       movups   xmmword ptr [rbp-0x70], xmm0
+       movups   xmmword ptr [rbp-0x78], xmm0
 						;; size=8 bbWeight=0.50 PerfScore 2.50
 G_M45987_IG09:        ; bbWeight=0.50, extend
-       lea      rdx, [rbp-0x70]
+       lea      rdx, [rbp-0x78]
        ; gcrRegs -[rdx]
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
@@ -305,7 +311,7 @@ G_M45987_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M45987_IG11:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 152
+       add      rsp, 168
        pop      rbx
        pop      rsi
        pop      rdi
@@ -341,32 +347,32 @@ G_M45987_IG15:        ; bbWeight=2, extend
        ; gcrRegs +[r12]
        mov      rax, gword ptr [rbx+r14]
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x88], rax
+       mov      gword ptr [rbp-0x90], rax
        ; GC ptr vars +{V26}
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      rdx, gword ptr [rbx+rcx]
        ; gcrRegs +[rdx]
-       mov      gword ptr [rbp-0x90], rdx
+       mov      gword ptr [rbp-0x98], rdx
        ; GC ptr vars +{V27}
        mov      rcx, r12
        ; gcrRegs +[rcx]
        call     [System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo:GetObjectInfo(System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit):System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo]
        ; gcrRegs -[rcx rdx]
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x88], rax
        ; GC ptr vars +{V23}
-						;; size=46 bbWeight=2 PerfScore 28.50
+						;; size=49 bbWeight=2 PerfScore 28.50
 G_M45987_IG16:        ; bbWeight=2, nogc, extend
        movups   xmm0, xmmword ptr [rbp-0x58]
-       movups   xmmword ptr [rbp-0x70], xmm0
+       movups   xmmword ptr [rbp-0x78], xmm0
 						;; size=8 bbWeight=2 PerfScore 8.00
 G_M45987_IG17:        ; bbWeight=2, isz, extend
        mov      gword ptr [rsp+0x20], r12
-       mov      r12, gword ptr [rbp-0x88]
+       mov      r12, gword ptr [rbp-0x90]
        mov      gword ptr [rsp+0x28], r12
        mov      gword ptr [rsp+0x30], rbx
-       mov      r12, gword ptr [rbp-0x90]
+       mov      r12, gword ptr [rbp-0x98]
        mov      gword ptr [rsp+0x38], r12
-       lea      r9, [rbp-0x70]
+       lea      r9, [rbp-0x78]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      r8, r15
@@ -377,7 +383,7 @@ G_M45987_IG17:        ; bbWeight=2, isz, extend
        ; GC ptr vars -{V26 V27}
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx rdi r8 r12 r15]
-       mov      r15, gword ptr [rbp-0x80]
+       mov      r15, gword ptr [rbp-0x88]
        ; gcrRegs +[r15]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -389,7 +395,7 @@ G_M45987_IG17:        ; bbWeight=2, isz, extend
        mov      rcx, qword ptr [(reloc)]      ; const ptr
        mov      qword ptr [r15+rcx], rax
        jmp      SHORT G_M45987_IG19
-						;; size=84 bbWeight=2 PerfScore 45.50
+						;; size=87 bbWeight=2 PerfScore 45.50
 G_M45987_IG18:        ; bbWeight=2, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r15] +[rdi]
        mov      rcx, rdi
@@ -410,7 +416,7 @@ G_M45987_IG19:        ; bbWeight=4, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000
        mov      r12, rdi
        ; gcrRegs +[r12]
        mov      rax, qword ptr [(reloc)]      ; const ptr
-       mov      qword ptr [rbp-0x78], rax
+       mov      qword ptr [rbp-0x80], rax
        cmp      gword ptr [rbx+rax], rdi
        je       SHORT G_M45987_IG22
 						;; size=46 bbWeight=4 PerfScore 61.00
@@ -423,7 +429,7 @@ G_M45987_IG20:        ; bbWeight=2, gcrefRegs=90C8 {rbx rsi rdi r12 r15}, byrefR
        mov      dword ptr [rbp-0x5C], r9d
        test     r9d, r9d
        je       SHORT G_M45987_IG21
-       mov      rcx, qword ptr [rbp-0x78]
+       mov      rcx, qword ptr [rbp-0x80]
        lea      rcx, bword ptr [rbx+rcx]
        ; byrRegs +[rcx]
        mov      rdx, rdi
@@ -445,7 +451,7 @@ G_M45987_IG22:        ; bbWeight=2, gcrefRegs=9048 {rbx rsi r12 r15}, byrefRegs=
        jmp      G_M45987_IG04
 						;; size=16 bbWeight=2 PerfScore 12.00
 
-; Total bytes of code 924, prolog size 44, PerfScore 569.58, instruction count 222, allocated bytes for code 924 (MethodHash=f4344c5c) for method System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Serialize(System.Object,System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter):this (FullOpts)
+; Total bytes of code 955, prolog size 48, PerfScore 574.83, instruction count 227, allocated bytes for code 955 (MethodHash=f4344c5c) for method System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Serialize(System.Object,System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -459,7 +465,7 @@ Unwind Info:
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
     CodeOffset: 0x13 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 19 * 8 = 152 = 0x00098
+      Size: 21 * 8 = 168 = 0x000A8
     CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
libraries.pmi.windows.x64.checked.mch
-42 (-39.62%) : 15855.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[long]:Equals(long,long):ubyte:this (FullOpts)
@@ -8,40 +8,28 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[long]>
-;  V01 arg1         [V01,T00] (  3,  2   )    long  ->  rbx         single-def
-;  V02 arg2         [V02,T01] (  3,  2   )    long  ->  rsi         single-def
-;* V03 loc0         [V03,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Int64>
-;* V04 loc1         [V04,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Int64>
+;* V01 arg1         [V01    ] (  0,  0   )    long  ->  zero-ref    single-def
+;* V02 arg2         [V02    ] (  0,  0   )    long  ->  zero-ref    single-def
+;* V03 loc0         [V03    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Int64>
+;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Int64>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V07 tmp2         [V07,T03] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V08 tmp3         [V08,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V09 tmp4         [V09,T06] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V10 cse0         [V10,T05] (  3,  0   )    long  ->  rdi         "CSE #01: aggressive"
+;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int64>
+;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int64>
+;  V08 tmp3         [V08,T00] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,long]>
+;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,long]>
+;  V11 tmp6         [V11,T01] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M39211_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rdi
-       push     rsi
        push     rbx
        sub      rsp, 32
-       mov      rbx, rdx
-       mov      rsi, r8
-						;; size=13 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=0 PerfScore 0.00
 G_M39211_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, 0xD1FFAB1E      ; System.Int64
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      qword ptr [rax+0x08], rbx
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       mov      qword ptr [rax+0x08], rsi
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
@@ -62,9 +50,9 @@ G_M39211_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=93 bbWeight=0 PerfScore 0.00
+						;; size=59 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 106, prolog size 7, PerfScore 0.00, instruction count 25, allocated bytes for code 106 (MethodHash=cd2566d4) for method Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[long]:Equals(long,long):ubyte:this (FullOpts)
+; Total bytes of code 64, prolog size 5, PerfScore 0.00, instruction count 14, allocated bytes for code 64 (MethodHash=cd2566d4) for method Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[long]:Equals(long,long):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,12 +60,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    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)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-41 (-39.05%) : 15847.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[short]:Equals(short,short):ubyte:this (FullOpts)
@@ -8,40 +8,28 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[short]>
-;  V01 arg1         [V01,T00] (  3,  2   )   short  ->  rbx         single-def
-;  V02 arg2         [V02,T01] (  3,  2   )   short  ->  rsi         single-def
-;* V03 loc0         [V03,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Int16>
-;* V04 loc1         [V04,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Int16>
+;* V01 arg1         [V01    ] (  0,  0   )   short  ->  zero-ref    single-def
+;* V02 arg2         [V02    ] (  0,  0   )   short  ->  zero-ref    single-def
+;* V03 loc0         [V03    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Int16>
+;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Int16>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int16>
-;  V07 tmp2         [V07,T03] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int16>
-;  V08 tmp3         [V08,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V09 tmp4         [V09,T06] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V10 cse0         [V10,T05] (  3,  0   )    long  ->  rdi         "CSE #01: aggressive"
+;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int16>
+;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int16>
+;  V08 tmp3         [V08,T00] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,short]>
+;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,short]>
+;  V11 tmp6         [V11,T01] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M61651_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rdi
-       push     rsi
        push     rbx
        sub      rsp, 32
-       mov      ebx, edx
-       mov      esi, r8d
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=0 PerfScore 0.00
 G_M61651_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, 0xD1FFAB1E      ; System.Int16
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      word  ptr [rax+0x08], bx
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       mov      word  ptr [rax+0x08], si
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
@@ -62,9 +50,9 @@ G_M61651_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=93 bbWeight=0 PerfScore 0.00
+						;; size=59 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 105, prolog size 7, PerfScore 0.00, instruction count 25, allocated bytes for code 105 (MethodHash=8fb60f2c) for method Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[short]:Equals(short,short):ubyte:this (FullOpts)
+; Total bytes of code 64, prolog size 5, PerfScore 0.00, instruction count 14, allocated bytes for code 64 (MethodHash=8fb60f2c) for method Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[short]:Equals(short,short):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,12 +60,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    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)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-40 (-38.46%) : 15844.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[ubyte]:Equals(ubyte,ubyte):ubyte:this (FullOpts)
@@ -8,40 +8,28 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[ubyte]>
-;  V01 arg1         [V01,T00] (  3,  2   )   ubyte  ->  rbx         single-def
-;  V02 arg2         [V02,T01] (  3,  2   )   ubyte  ->  rsi         single-def
-;* V03 loc0         [V03,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Byte>
-;* V04 loc1         [V04,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Byte>
+;* V01 arg1         [V01    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;* V02 arg2         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;* V03 loc0         [V03    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Byte>
+;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Byte>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Byte>
-;  V07 tmp2         [V07,T03] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Byte>
-;  V08 tmp3         [V08,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V09 tmp4         [V09,T06] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V10 cse0         [V10,T05] (  3,  0   )    long  ->  rdi         "CSE #01: aggressive"
+;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Byte>
+;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Byte>
+;  V08 tmp3         [V08,T00] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,ubyte]>
+;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,ubyte]>
+;  V11 tmp6         [V11,T01] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M58718_IG01:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rdi
-       push     rsi
        push     rbx
        sub      rsp, 32
-       mov      ebx, edx
-       mov      esi, r8d
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=0 PerfScore 0.00
 G_M58718_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, 0xD1FFAB1E      ; System.Byte
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      byte  ptr [rax+0x08], bl
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       mov      byte  ptr [rax+0x08], sil
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
@@ -62,9 +50,9 @@ G_M58718_IG02:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=92 bbWeight=0 PerfScore 0.00
+						;; size=59 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 104, prolog size 7, PerfScore 0.00, instruction count 25, allocated bytes for code 104 (MethodHash=4b931aa1) for method Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[ubyte]:Equals(ubyte,ubyte):ubyte:this (FullOpts)
+; Total bytes of code 64, prolog size 5, PerfScore 0.00, instruction count 14, allocated bytes for code 64 (MethodHash=4b931aa1) for method Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[ubyte]:Equals(ubyte,ubyte):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,12 +60,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    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)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+10 (+7.35%) : 35881.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]:b__1(System.Data.DataRow):ubyte:this (FullOpts)
@@ -8,22 +8,23 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]>
 ;  V01 arg1         [V01,T00] (  6,  5.25)     ref  ->  rbx         class-hnd single-def <System.Data.DataRow>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  3,  6   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <System.Func`2[ubyte,ubyte]>
-;  V04 tmp2         [V04,T02] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "Single-def Box Helper" <System.Byte>
-;  V05 tmp3         [V05,T06] (  2,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V06 tmp4         [V06,T05] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
-;  V07 cse0         [V07,T04] (  4,  3.25)    long  ->  rdi         "CSE #01: aggressive"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Byte>
+;  V05 tmp3         [V05,T05] (  2,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V06 tmp4         [V06,T04] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
+;  V07 tmp5         [V07    ] (  4,  4   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] addr-exposed "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,ubyte]>
+;  V08 cse0         [V08,T03] (  4,  3.25)    long  ->  rdi         "CSE #01: aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
 G_M17326_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
        mov      rbx, rdx
        ; gcrRegs +[rbx]
 						;; size=10 bbWeight=1 PerfScore 3.50
@@ -47,32 +48,30 @@ G_M17326_IG03:        ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcr arg pop 0
 						;; size=12 bbWeight=0.25 PerfScore 0.88
 G_M17326_IG04:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, rdi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
+       vxorps   xmm0, xmm0, xmm0
+       vmovups  xmmword ptr [rsp+0x20], xmm0
+       mov      qword ptr [rsp+0x20], rdi
        movzx    rdx, byte  ptr [rbx+0x08]
        mov      rcx, gword ptr [rsi+0x08]
        ; gcrRegs +[rcx]
        call     [rsi+0x18]<unknown method>
-       ; gcrRegs -[rax rcx rsi]
+       ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
-       mov      byte  ptr [rdi+0x08], al
-       cmp      rbx, rdi
+       mov      byte  ptr [rsp+0x28], al
+       lea      rax, [rsp+0x20]
+       cmp      rbx, rax
        jne      SHORT G_M17326_IG06
        mov      eax, 1
-						;; size=35 bbWeight=1 PerfScore 11.00
+						;; size=45 bbWeight=1 PerfScore 12.33
 G_M17326_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 G_M17326_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx rdi]
+       ; gcrRegs -[rbx]
        call     [<unknown method>]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -98,7 +97,7 @@ G_M17326_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 7, PerfScore 26.38, instruction count 39, allocated bytes for code 136 (MethodHash=632fbc51) for method System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]:<GetLinqDataView>b__1(System.Data.DataRow):ubyte:this (FullOpts)
+; Total bytes of code 146, prolog size 7, PerfScore 27.71, instruction count 40, allocated bytes for code 146 (MethodHash=632fbc51) for method System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]:<GetLinqDataView>b__1(System.Data.DataRow):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,7 +110,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     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)
+36 (+7.38%) : 317181.dasm - Xunit.Assert:NotEqual(double,double,double) (FullOpts)
@@ -8,49 +8,53 @@
 ; 1 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  5,  4   )  double  ->  [rsp+0x60]  do-not-enreg[X] addr-exposed ld-addr-op single-def
-;  V01 arg1         [V01    ] (  5,  4   )  double  ->  [rsp+0x68]  do-not-enreg[X] addr-exposed ld-addr-op single-def
-;  V02 arg2         [V02,T19] (  8,  7   )  double  ->  mm6         single-def
+;  V00 arg0         [V00    ] (  5,  4   )  double  ->  [rsp+0x80]  do-not-enreg[X] addr-exposed ld-addr-op single-def
+;  V01 arg1         [V01    ] (  5,  4   )  double  ->  [rsp+0x88]  do-not-enreg[X] addr-exposed ld-addr-op single-def
+;  V02 arg2         [V02,T14] (  8,  7   )  double  ->  mm6         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V06 tmp3         [V06,T01] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V07 tmp4         [V07,T09] (  2,  0   )     ref  ->  rsi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
-;  V08 tmp5         [V08,T10] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
-;  V09 tmp6         [V09,T08] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V10 tmp7         [V10,T11] (  2,  0   )     ref  ->  rbp         class-hnd single-def "impImportAndPushBox" <<unknown class>>
-;  V11 tmp8         [V11,T05] (  2,  1   )   ubyte  ->  rcx         "Inline return value spill temp"
-;  V12 tmp9         [V12,T02] (  3,  4.01)     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Double>
-;  V13 tmp10        [V13,T03] (  3,  4.01)     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Double>
-;  V14 tmp11        [V14,T06] (  2,  1   )   ubyte  ->  rcx         single-def "Inline return value spill temp"
-;  V15 tmp12        [V15,T21] (  4,  0.02)  double  ->  mm0         single-def "Inline stloc first use temp"
-;  V16 tmp13        [V16,T18] (  2,  0.02)   byref  ->  rsi         single-def "Inlining Arg"
-;  V17 tmp14        [V17,T07] (  4,  0.52)   ubyte  ->  rcx         "Inline return value spill temp"
-;  V18 tmp15        [V18,T20] (  3,  0.03)  double  ->  mm1         "Inlining Arg"
-;  V19 tmp16        [V19,T12] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V20 tmp17        [V20,T13] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V21 tmp18        [V21,T14] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V22 tmp19        [V22,T15] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V23 tmp20        [V23,T16] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V24 tmp21        [V24,T17] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V25 tmp22        [V25,T24] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V26 tmp23        [V26,T25] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V27 cse0         [V27,T22] (  3,  0.02)  double  ->  mm1         "CSE #02: conservative"
-;  V28 cse1         [V28,T04] (  4,  3   )    long  ->  rbx         "CSE #01: aggressive"
+;  V04 tmp1         [V04,T18] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;  V07 tmp4         [V07,T05] (  2,  0   )     ref  ->  rsi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
+;  V08 tmp5         [V08,T06] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
+;  V09 tmp6         [V09,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Double>
+;  V10 tmp7         [V10,T07] (  2,  0   )     ref  ->  rbp         class-hnd single-def "impImportAndPushBox" <<unknown class>>
+;  V11 tmp8         [V11,T01] (  2,  1   )   ubyte  ->  rcx         "Inline return value spill temp"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Double>
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Double>
+;  V14 tmp11        [V14,T02] (  2,  1   )   ubyte  ->  rcx         single-def "Inline return value spill temp"
+;  V15 tmp12        [V15,T16] (  4,  0.02)  double  ->  mm0         single-def "Inline stloc first use temp"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V17 tmp14        [V17,T03] (  4,  0.52)   ubyte  ->  rcx         "Inline return value spill temp"
+;  V18 tmp15        [V18,T15] (  3,  0.03)  double  ->  mm1         "Inlining Arg"
+;  V19 tmp16        [V19    ] (  4,  3.01)  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;  V20 tmp17        [V20    ] (  4,  3.01)  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;  V21 tmp18        [V21,T08] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V22 tmp19        [V22,T09] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V23 tmp20        [V23,T10] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V24 tmp21        [V24,T11] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V25 tmp22        [V25,T12] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V26 tmp23        [V26,T13] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V27 tmp24        [V27,T19] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V28 tmp25        [V28,T20] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V29 cse0         [V29,T00] (  4,  3   )    long  ->  rbx         "CSE #01: aggressive"
+;  V30 cse1         [V30,T17] (  3,  0.02)  double  ->  mm1         "CSE #02: conservative"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 88
 
 G_M52703_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 56
-       vmovaps  xmmword ptr [rsp+0x20], xmm6
-       vmovsd   qword ptr [rsp+0x60], xmm0
-       vmovsd   qword ptr [rsp+0x68], xmm1
+       sub      rsp, 88
+       vmovaps  xmmword ptr [rsp+0x40], xmm6
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovsd   qword ptr [rsp+0x80], xmm0
+       vmovsd   qword ptr [rsp+0x88], xmm1
        vmovaps  xmm6, xmm2
-						;; size=30 bbWeight=1 PerfScore 8.50
+						;; size=46 bbWeight=1 PerfScore 10.83
 G_M52703_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        vucomisd xmm6, xmm6
        jp       G_M52703_IG12
@@ -63,35 +67,25 @@ G_M52703_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        vucomisd xmm0, xmm6
        ja       G_M52703_IG12
        mov      rbx, 0xD1FFAB1E      ; System.Double
-       mov      rcx, rbx
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       vmovsd   xmm0, qword ptr [rsp+0x60]
-       vmovsd   qword ptr [rsi+0x08], xmm0
-       mov      rcx, rbx
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       vmovsd   xmm0, qword ptr [rsp+0x68]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       cmp      rsi, rax
+       mov      qword ptr [rsp+0x30], rbx
+       vmovsd   xmm0, qword ptr [rsp+0x80]
+       vmovsd   qword ptr [rsp+0x38], xmm0
+       mov      qword ptr [rsp+0x20], rbx
+       vmovsd   xmm0, qword ptr [rsp+0x88]
+       vmovsd   qword ptr [rsp+0x28], xmm0
+       lea      rcx, [rsp+0x30]
+       lea      rdx, [rsp+0x20]
+       cmp      rcx, rdx
        je       SHORT G_M52703_IG11
-						;; size=70 bbWeight=1 PerfScore 17.58
-G_M52703_IG04:        ; bbWeight=0.01, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref, isz
-       add      rsi, 8
-       ; gcrRegs -[rsi]
-       ; byrRegs +[rsi]
-       vmovsd   xmm0, qword ptr [rax+0x08]
-       vmovsd   xmm1, qword ptr [rsi]
+						;; size=79 bbWeight=1 PerfScore 15.83
+G_M52703_IG04:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       vmovsd   xmm0, qword ptr [rsp+0x28]
+       vmovsd   xmm1, qword ptr [rsp+0x38]
        vucomisd xmm0, xmm1
        jp       SHORT G_M52703_IG05
        je       SHORT G_M52703_IG07
-						;; size=21 bbWeight=0.01 PerfScore 0.06
+						;; size=20 bbWeight=0.01 PerfScore 0.05
 G_M52703_IG05:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       ; byrRegs -[rsi]
        vucomisd xmm0, xmm0
        jp       SHORT G_M52703_IG06
        jne      SHORT G_M52703_IG06
@@ -112,15 +106,15 @@ G_M52703_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        jne      SHORT G_M52703_IG11
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M52703_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       vmovsd   xmm0, qword ptr [rsp+0x60]
-       vsubsd   xmm0, xmm0, qword ptr [rsp+0x68]
+       vmovsd   xmm0, qword ptr [rsp+0x80]
+       vsubsd   xmm0, xmm0, qword ptr [rsp+0x88]
        vandps   xmm0, xmm0, xmmword ptr [reloc @RWD16]
        vucomisd xmm6, xmm0
        jae      SHORT G_M52703_IG11
-						;; size=26 bbWeight=1 PerfScore 13.00
+						;; size=32 bbWeight=1 PerfScore 13.00
 G_M52703_IG10:        ; bbWeight=1, epilog, nogc, extend
-       vmovaps  xmm6, xmmword ptr [rsp+0x20]
-       add      rsp, 56
+       vmovaps  xmm6, xmmword ptr [rsp+0x40]
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
@@ -141,7 +135,7 @@ G_M52703_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[r8]
        mov      rdx, rsi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x60]
+       lea      rcx, [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rdx rsi r8]
        ; gcr arg pop 0
@@ -159,7 +153,7 @@ G_M52703_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[r8]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x68]
+       lea      rcx, [rsp+0x88]
        call     [<unknown method>]
        ; gcrRegs -[rdx rdi r8]
        ; gcr arg pop 0
@@ -203,7 +197,7 @@ G_M52703_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        int3     
-						;; size=182 bbWeight=0 PerfScore 0.00
+						;; size=188 bbWeight=0 PerfScore 0.00
 G_M52703_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -242,7 +236,7 @@ RWD08  	dd	00000000h, 00000000h
 RWD16  	dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
 
 
-; Total bytes of code 488, prolog size 14, PerfScore 56.08, instruction count 116, allocated bytes for code 488 (MethodHash=6b663220) for method Xunit.Assert:NotEqual(double,double,double) (FullOpts)
+; Total bytes of code 524, prolog size 24, PerfScore 56.65, instruction count 116, allocated bytes for code 524 (MethodHash=6b663220) for method Xunit.Assert:NotEqual(double,double,double) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -256,8 +250,8 @@ Unwind Info:
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
     CodeOffset: 0x0E UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
-      Scaled Small Offset: 2 * 16 = 32 = 0x00020
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+      Scaled Small Offset: 4 * 16 = 64 = 0x00040
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+36 (+7.38%) : 317148.dasm - Xunit.Assert:Equal(double,double,double) (FullOpts)
@@ -8,49 +8,53 @@
 ; 1 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  5,  3.50)  double  ->  [rsp+0x60]  do-not-enreg[X] addr-exposed ld-addr-op single-def
-;  V01 arg1         [V01    ] (  5,  3.50)  double  ->  [rsp+0x68]  do-not-enreg[X] addr-exposed ld-addr-op single-def
-;  V02 arg2         [V02,T09] (  8,  6.50)  double  ->  mm6         single-def
+;  V00 arg0         [V00    ] (  5,  3.50)  double  ->  [rsp+0x80]  do-not-enreg[X] addr-exposed ld-addr-op single-def
+;  V01 arg1         [V01    ] (  5,  3.50)  double  ->  [rsp+0x88]  do-not-enreg[X] addr-exposed ld-addr-op single-def
+;  V02 arg2         [V02,T04] (  8,  6.50)  double  ->  mm6         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V06 tmp3         [V06,T01] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V07 tmp4         [V07,T15] (  2,  0   )     ref  ->  rsi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
-;  V08 tmp5         [V08,T16] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
-;  V09 tmp6         [V09,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V10 tmp7         [V10,T17] (  2,  0   )     ref  ->  rbp         class-hnd single-def "impImportAndPushBox" <<unknown class>>
-;  V11 tmp8         [V11,T05] (  2,  1   )   ubyte  ->  rcx         "Inline return value spill temp"
-;  V12 tmp9         [V12,T02] (  3,  4.01)     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Double>
-;  V13 tmp10        [V13,T03] (  3,  4.01)     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Double>
-;  V14 tmp11        [V14,T06] (  2,  1   )   ubyte  ->  rcx         single-def "Inline return value spill temp"
-;  V15 tmp12        [V15,T11] (  4,  0.02)  double  ->  mm0         single-def "Inline stloc first use temp"
-;  V16 tmp13        [V16,T08] (  2,  0.02)   byref  ->  rsi         single-def "Inlining Arg"
-;  V17 tmp14        [V17,T07] (  4,  0.52)   ubyte  ->  rcx         "Inline return value spill temp"
-;  V18 tmp15        [V18,T10] (  3,  0.03)  double  ->  mm1         "Inlining Arg"
-;  V19 tmp16        [V19,T18] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V20 tmp17        [V20,T19] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V21 tmp18        [V21,T20] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V22 tmp19        [V22,T21] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V23 tmp20        [V23,T22] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V24 tmp21        [V24,T23] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V25 tmp22        [V25,T24] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V26 tmp23        [V26,T25] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V27 cse0         [V27,T12] (  3,  0.02)  double  ->  mm1         "CSE #02: conservative"
-;  V28 cse1         [V28,T04] (  4,  3   )    long  ->  rbx         "CSE #01: aggressive"
+;  V04 tmp1         [V04,T08] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;  V07 tmp4         [V07,T10] (  2,  0   )     ref  ->  rsi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
+;  V08 tmp5         [V08,T11] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "non-inline candidate call" <<unknown class>>
+;  V09 tmp6         [V09,T09] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Double>
+;  V10 tmp7         [V10,T12] (  2,  0   )     ref  ->  rbp         class-hnd single-def "impImportAndPushBox" <<unknown class>>
+;  V11 tmp8         [V11,T01] (  2,  1   )   ubyte  ->  rcx         "Inline return value spill temp"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Double>
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Double>
+;  V14 tmp11        [V14,T02] (  2,  1   )   ubyte  ->  rcx         single-def "Inline return value spill temp"
+;  V15 tmp12        [V15,T06] (  4,  0.02)  double  ->  mm0         single-def "Inline stloc first use temp"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V17 tmp14        [V17,T03] (  4,  0.52)   ubyte  ->  rcx         "Inline return value spill temp"
+;  V18 tmp15        [V18,T05] (  3,  0.03)  double  ->  mm1         "Inlining Arg"
+;  V19 tmp16        [V19    ] (  4,  3.01)  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;  V20 tmp17        [V20    ] (  4,  3.01)  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;  V21 tmp18        [V21,T13] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V22 tmp19        [V22,T14] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V23 tmp20        [V23,T15] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V24 tmp21        [V24,T16] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V25 tmp22        [V25,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V26 tmp23        [V26,T18] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V27 tmp24        [V27,T19] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V28 tmp25        [V28,T20] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V29 cse0         [V29,T00] (  4,  3   )    long  ->  rbx         "CSE #01: aggressive"
+;  V30 cse1         [V30,T07] (  3,  0.02)  double  ->  mm1         "CSE #02: conservative"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 88
 
 G_M24874_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 56
-       vmovaps  xmmword ptr [rsp+0x20], xmm6
-       vmovsd   qword ptr [rsp+0x60], xmm0
-       vmovsd   qword ptr [rsp+0x68], xmm1
+       sub      rsp, 88
+       vmovaps  xmmword ptr [rsp+0x40], xmm6
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovsd   qword ptr [rsp+0x80], xmm0
+       vmovsd   qword ptr [rsp+0x88], xmm1
        vmovaps  xmm6, xmm2
-						;; size=30 bbWeight=1 PerfScore 8.50
+						;; size=46 bbWeight=1 PerfScore 10.83
 G_M24874_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        vucomisd xmm6, xmm6
        jp       G_M24874_IG11
@@ -63,35 +67,25 @@ G_M24874_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        vucomisd xmm0, xmm6
        ja       G_M24874_IG11
        mov      rbx, 0xD1FFAB1E      ; System.Double
-       mov      rcx, rbx
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       vmovsd   xmm0, qword ptr [rsp+0x60]
-       vmovsd   qword ptr [rsi+0x08], xmm0
-       mov      rcx, rbx
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       vmovsd   xmm0, qword ptr [rsp+0x68]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       cmp      rsi, rax
+       mov      qword ptr [rsp+0x30], rbx
+       vmovsd   xmm0, qword ptr [rsp+0x80]
+       vmovsd   qword ptr [rsp+0x38], xmm0
+       mov      qword ptr [rsp+0x20], rbx
+       vmovsd   xmm0, qword ptr [rsp+0x88]
+       vmovsd   qword ptr [rsp+0x28], xmm0
+       lea      rcx, [rsp+0x30]
+       lea      rdx, [rsp+0x20]
+       cmp      rcx, rdx
        je       SHORT G_M24874_IG09
-						;; size=70 bbWeight=1 PerfScore 17.58
-G_M24874_IG04:        ; bbWeight=0.01, gcrefRegs=0041 {rax rsi}, byrefRegs=0000 {}, byref, isz
-       add      rsi, 8
-       ; gcrRegs -[rsi]
-       ; byrRegs +[rsi]
-       vmovsd   xmm0, qword ptr [rax+0x08]
-       vmovsd   xmm1, qword ptr [rsi]
+						;; size=79 bbWeight=1 PerfScore 15.83
+G_M24874_IG04:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       vmovsd   xmm0, qword ptr [rsp+0x28]
+       vmovsd   xmm1, qword ptr [rsp+0x38]
        vucomisd xmm0, xmm1
        jp       SHORT G_M24874_IG05
        je       SHORT G_M24874_IG07
-						;; size=21 bbWeight=0.01 PerfScore 0.06
+						;; size=20 bbWeight=0.01 PerfScore 0.05
 G_M24874_IG05:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       ; byrRegs -[rsi]
        vucomisd xmm0, xmm0
        jp       SHORT G_M24874_IG06
        jne      SHORT G_M24874_IG06
@@ -110,15 +104,15 @@ G_M24874_IG07:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M24874_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        test     ecx, ecx
        jne      SHORT G_M24874_IG09
-       vmovsd   xmm0, qword ptr [rsp+0x60]
-       vsubsd   xmm0, xmm0, qword ptr [rsp+0x68]
+       vmovsd   xmm0, qword ptr [rsp+0x80]
+       vsubsd   xmm0, xmm0, qword ptr [rsp+0x88]
        vandps   xmm0, xmm0, xmmword ptr [reloc @RWD16]
        vucomisd xmm6, xmm0
        jb       SHORT G_M24874_IG10
-						;; size=30 bbWeight=0.50 PerfScore 7.12
+						;; size=36 bbWeight=0.50 PerfScore 7.12
 G_M24874_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       vmovaps  xmm6, xmmword ptr [rsp+0x20]
-       add      rsp, 56
+       vmovaps  xmm6, xmmword ptr [rsp+0x40]
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
@@ -139,7 +133,7 @@ G_M24874_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[r8]
        mov      rdx, rsi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x60]
+       lea      rcx, [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rdx rsi r8]
        ; gcr arg pop 0
@@ -157,7 +151,7 @@ G_M24874_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs +[r8]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x68]
+       lea      rcx, [rsp+0x88]
        call     [<unknown method>]
        ; gcrRegs -[rdx rdi r8]
        ; gcr arg pop 0
@@ -201,7 +195,7 @@ G_M24874_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        int3     
-						;; size=182 bbWeight=0 PerfScore 0.00
+						;; size=188 bbWeight=0 PerfScore 0.00
 G_M24874_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -240,7 +234,7 @@ RWD08  	dd	00000000h, 00000000h
 RWD16  	dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
 
 
-; Total bytes of code 488, prolog size 14, PerfScore 49.58, instruction count 116, allocated bytes for code 488 (MethodHash=7b599ed5) for method Xunit.Assert:Equal(double,double,double) (FullOpts)
+; Total bytes of code 524, prolog size 24, PerfScore 50.15, instruction count 116, allocated bytes for code 524 (MethodHash=7b599ed5) for method Xunit.Assert:Equal(double,double,double) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -254,8 +248,8 @@ Unwind Info:
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
     CodeOffset: 0x0E UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
-      Scaled Small Offset: 2 * 16 = 32 = 0x00020
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+      Scaled Small Offset: 4 * 16 = 64 = 0x00040
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
libraries_tests.run.windows.x64.Release.mch
-30 (-13.51%) : 307565.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
@@ -16,15 +16,16 @@
 ;  V03 arg3         [V03,T02] (  6,  2.92)     ref  ->  rdi         class-hnd single-def <System.Object>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06,T10] (  0,  0   )     int  ->  zero-ref   
-;  V07 tmp2         [V07,T07] (  3,  0.32)     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Decimal>
-;  V08 tmp3         [V08,T09] (  2,  0.22)     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Decimal>
-;  V09 tmp4         [V09,T08] (  3,  0.32)     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Decimal>
+;* V06 tmp1         [V06,T09] (  0,  0   )     int  ->  zero-ref   
+;  V07 tmp2         [V07,T07] (  3,  0.32)     ref  ->  rdx         class-hnd exact single-def "Single-def Box Helper" <System.Decimal>
+;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Decimal>
+;  V09 tmp4         [V09,T08] (  2,  0.22)     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.Decimal>
 ;  V10 tmp5         [V10,T03] (  2,  3.78)     int  ->  rdx         "impAppendStmt"
 ;  V11 tmp6         [V11,T06] (  3,  1.36)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Action`3[System.Runtime.CompilerServices.CallSite,System.Type,System.Object]>
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Runtime.CompilerServices.CallSite`1[System.Action`3[System.Runtime.CompilerServices.CallSite,System.Type,System.Object]]>
-;  V13 rat0         [V13,T04] (  4,  2.95)     ref  ->  rax         "replacement local"
-;  V14 rat1         [V14,T05] (  3,  2.04)    long  ->  rcx         "CSE for expectedClsNode"
+;* V13 tmp8         [V13    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,System.Decimal]>
+;  V14 rat0         [V14,T04] (  4,  2.95)     ref  ->  rax         "replacement local"
+;  V15 rat1         [V15,T05] (  3,  2.04)    long  ->  rcx         "CSE for expectedClsNode"
 ;
 ; Lcl frame size = 32
 
@@ -62,26 +63,17 @@ G_M32564_IG05:        ; bbWeight=0.05, gcrefRegs=0080 {rdi}, byrefRegs=0000 {},
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       vmovups  xmm0, xmmword ptr [rdi+0x08]
-       vmovups  xmmword ptr [rbx+0x08], xmm0
-       mov      rcx, 0xD1FFAB1E      ; System.Decimal
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs -[rdi]
-       ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       mov      rdx, rbx
+       mov      rdx, rax
        ; gcrRegs +[rdx]
+       vmovups  xmm0, xmmword ptr [rdi+0x08]
+       vmovups  xmmword ptr [rdx+0x08], xmm0
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rdi]
        ; gcr arg pop 0
-       vmovups  xmm0, xmmword ptr [rbx+0x08]
-       vmovups  xmmword ptr [rsi+0x08], xmm0
-						;; size=75 bbWeight=0.05 PerfScore 1.00
+       nop      
+						;; size=45 bbWeight=0.05 PerfScore 0.59
 G_M32564_IG06:        ; bbWeight=0.05, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -90,7 +82,7 @@ G_M32564_IG06:        ; bbWeight=0.05, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.05 PerfScore 0.15
 G_M32564_IG07:        ; bbWeight=0.95, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rdi]
+       ; gcrRegs +[rbx rsi rdi]
        movzx    rdx, byte  ptr [rbx+0x10]
        mov      byte  ptr [rbx+0x10], 0
        test     edx, edx
@@ -141,7 +133,7 @@ G_M32564_IG12:        ; bbWeight=0.45, epilog, nogc, extend
        tail.jmp [rax+0x18]<unknown method>
 						;; size=11 bbWeight=0.45 PerfScore 1.70
 
-; Total bytes of code 222, prolog size 16, PerfScore 20.93, instruction count 60, allocated bytes for code 222 (MethodHash=107680cb) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
+; Total bytes of code 192, prolog size 16, PerfScore 20.53, instruction count 55, allocated bytes for code 192 (MethodHash=107680cb) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
-47 (-11.72%) : 343148.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
@@ -10,38 +10,44 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  8,  4.50)    long  ->  rbx         single-def
-;  V01 arg1         [V01,T05] (  5,  3   )    long  ->  rbp         single-def
-;  V02 arg2         [V02,T04] (  6,  3.50)    long  ->  rdi         single-def
+;  V01 arg1         [V01,T03] (  5,  3   )    long  ->  rbp         single-def
+;  V02 arg2         [V02,T02] (  6,  3.50)    long  ->  rdi         single-def
 ;  V03 arg3         [V03,T01] (  6,  4   )     ref  ->  rsi         class-hnd single-def <System.Collections.Generic.IComparer`1[long]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T16] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V06 tmp2         [V06,T17] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V07 tmp3         [V07,T18] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V08 tmp4         [V08,T10] (  3,  2   )     int  ->  rax         "guarded devirt return temp"
+;  V05 tmp1         [V05,T12] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
+;  V06 tmp2         [V06,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
+;  V07 tmp3         [V07,T14] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
+;  V08 tmp4         [V08,T08] (  3,  2   )     int  ->  rax         "guarded devirt return temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Xunit.Sdk.AssertRangeComparer`1[long]>
-;  V10 tmp6         [V10,T11] (  3,  2   )     int  ->  rax         "guarded devirt return temp"
+;  V10 tmp6         [V10,T09] (  3,  2   )     int  ->  r10         "guarded devirt return temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Xunit.Sdk.AssertRangeComparer`1[long]>
-;  V12 tmp8         [V12,T19] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V12 tmp8         [V12,T15] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V13 tmp9         [V13    ] (  2,  4   )    long  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V14 tmp10        [V14    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V15 tmp11        [V15,T02] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V16 tmp12        [V16,T14] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "Inline stloc first use temp" <System.Int64>
-;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V18 tmp14        [V18,T12] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
-;  V19 tmp15        [V19,T06] (  3,  5   )   byref  ->  rax         single-def "Inlining Arg"
+;* V15 tmp11        [V15    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int64>
+;* V16 tmp12        [V16    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Int64>
+;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int64>
+;  V18 tmp14        [V18,T10] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
+;* V19 tmp15        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp16        [V20    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V21 tmp17        [V21    ] (  2,  4   )    long  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V23 tmp19        [V23,T03] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V24 tmp20        [V24,T15] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "Inline stloc first use temp" <System.Int64>
-;* V25 tmp21        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V26 tmp22        [V26,T13] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
-;  V27 tmp23        [V27,T07] (  3,  5   )   byref  ->  rax         single-def "Inlining Arg"
+;* V23 tmp19        [V23    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int64>
+;* V24 tmp20        [V24    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Int64>
+;* V25 tmp21        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int64>
+;  V26 tmp22        [V26,T11] (  3,  2   )     int  ->  r10         "Inline return value spill temp"
+;* V27 tmp23        [V27    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp24        [V28    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V29 tmp25        [V29,T20] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V30 tmp26        [V30,T21] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V31 cse0         [V31,T08] (  3,  3   )    long  ->  r14         "CSE #03: aggressive"
-;  V32 cse1         [V32,T09] (  3,  3   )    long  ->  r15         "CSE #04: aggressive"
+;* V29 tmp25        [V29    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,long]>
+;* V30 tmp26        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,long]>
+;* V31 tmp27        [V31    ] (  0,  0   )    long  ->  zero-ref    single-def "V29.[000..008)"
+;  V32 tmp28        [V32,T06] (  3,  2.50)    long  ->  rcx         single-def "V29.[008..016)"
+;* V33 tmp29        [V33    ] (  0,  0   )    long  ->  zero-ref    single-def "V30.[000..008)"
+;  V34 tmp30        [V34,T07] (  3,  2.50)    long  ->  rcx         single-def "V30.[008..016)"
+;  V35 tmp31        [V35,T16] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V36 tmp32        [V36,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V37 cse0         [V37,T04] (  3,  3   )    long  ->  r14         "CSE #01: aggressive"
+;  V38 cse1         [V38,T05] (  3,  3   )    long  ->  r15         "CSE #02: aggressive"
 ;
 ; Lcl frame size = 56
 
@@ -65,62 +71,45 @@ G_M42111_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        mov      r14, qword ptr [rsi]
        mov      r15, 0xD1FFAB1E      ; Xunit.Sdk.AssertRangeComparer`1[long]
        cmp      r14, r15
-       jne      G_M42111_IG10
+       jne      SHORT G_M42111_IG10
        mov      qword ptr [rsp+0x30], rbp
-       mov      rcx, 0xD1FFAB1E      ; System.Int64
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
        mov      rcx, qword ptr [rsp+0x30]
-       mov      qword ptr [rax+0x08], rcx
-       add      rax, 8
-       ; gcrRegs -[rax]
-       ; byrRegs +[rax]
-       cmp      qword ptr [rax], rbx
+       cmp      rcx, rbx
        jl       SHORT G_M42111_IG04
-						;; size=69 bbWeight=1 PerfScore 13.25
-G_M42111_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0001 {rax}, byref, isz
-       cmp      qword ptr [rax], rbx
+						;; size=42 bbWeight=1 PerfScore 8.00
+G_M42111_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       cmp      rcx, rbx
        setg     al
-       ; byrRegs -[rax]
        movzx    rax, al
        jmp      SHORT G_M42111_IG05
-						;; size=11 bbWeight=0.50 PerfScore 3.12
+						;; size=11 bbWeight=0.50 PerfScore 1.75
 G_M42111_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      eax, -1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M42111_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
-       jg       G_M42111_IG12
+       jg       SHORT G_M42111_IG12
        cmp      r14, r15
        jne      SHORT G_M42111_IG11
        mov      qword ptr [rsp+0x28], rbx
-       mov      rcx, 0xD1FFAB1E      ; System.Int64
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs -[rsi] +[rax]
-       ; gcr arg pop 0
        mov      rcx, qword ptr [rsp+0x28]
-       mov      qword ptr [rax+0x08], rcx
-       add      rax, 8
-       ; gcrRegs -[rax]
-       ; byrRegs +[rax]
-       cmp      qword ptr [rax], rdi
+       cmp      rcx, rdi
        jl       SHORT G_M42111_IG07
-						;; size=51 bbWeight=1 PerfScore 11.00
-G_M42111_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
-       cmp      qword ptr [rax], rdi
-       setg     al
-       ; byrRegs -[rax]
-       movzx    rax, al
+						;; size=24 bbWeight=1 PerfScore 5.75
+G_M42111_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rsi]
+       cmp      rcx, rdi
+       setg     r10b
+       movzx    r10, r10b
        jmp      SHORT G_M42111_IG08
-						;; size=11 bbWeight=0.50 PerfScore 3.12
+						;; size=13 bbWeight=0.50 PerfScore 1.75
 G_M42111_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      eax, -1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
+       mov      r10d, -1
+						;; size=6 bbWeight=0.50 PerfScore 0.12
 G_M42111_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       test     eax, eax
+       test     r10d, r10d
        jg       SHORT G_M42111_IG12
-						;; size=4 bbWeight=1 PerfScore 1.25
+						;; size=5 bbWeight=1 PerfScore 1.25
 G_M42111_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
@@ -152,8 +141,9 @@ G_M42111_IG11:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
+       mov      r10d, eax
        jmp      SHORT G_M42111_IG08
-						;; size=24 bbWeight=0 PerfScore 0.00
+						;; size=27 bbWeight=0 PerfScore 0.00
 G_M42111_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; System.Int64
        call     CORINFO_HELP_NEWSFAST
@@ -220,7 +210,7 @@ G_M42111_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=73 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 401, prolog size 12, PerfScore 43.50, instruction count 102, allocated bytes for code 401 (MethodHash=5e035b80) for method Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
+; Total bytes of code 354, prolog size 12, PerfScore 30.25, instruction count 95, allocated bytes for code 354 (MethodHash=5e035b80) for method Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
 ; ============================================================
 
 Unwind Info:
-24 (-11.54%) : 306678.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Func`2[System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC],System.Object) (FullOpts)
@@ -17,13 +17,14 @@
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05,T08] (  0,  0   )     int  ->  zero-ref   
 ;* V06 tmp2         [V06,T09] (  0,  0   )     int  ->  zero-ref   
-;  V07 tmp3         [V07,T07] (  3,  0.62)     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC>
+;  V07 tmp3         [V07,T07] (  3,  0.62)     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;* V08 tmp4         [V08    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC>
 ;  V09 tmp5         [V09,T03] (  2,  3.58)     int  ->  rdx         "impAppendStmt"
 ;  V10 tmp6         [V10,T06] (  3,  1.29)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Action`3[System.Runtime.CompilerServices.CallSite,System.Func`2[System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC],System.Object]>
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Runtime.CompilerServices.CallSite`1[System.Action`3[System.Runtime.CompilerServices.CallSite,System.Func`2[System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC],System.Object]]>
-;  V12 rat0         [V12,T04] (  4,  2.80)     ref  ->  rax         "replacement local"
-;  V13 rat1         [V13,T05] (  3,  1.94)    long  ->  rcx         "CSE for expectedClsNode"
+;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC]>
+;  V13 rat0         [V13,T04] (  4,  2.80)     ref  ->  rax         "replacement local"
+;  V14 rat1         [V14,T05] (  3,  1.94)    long  ->  rcx         "CSE for expectedClsNode"
 ;
 ; Lcl frame size = 32
 
@@ -61,25 +62,17 @@ G_M32981_IG05:        ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      ecx, dword ptr [rdi+0x08]
-       mov      dword ptr [rbx+0x08], ecx
-       mov      rcx, 0xD1FFAB1E      ; ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs -[rdi]
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       mov      rdx, rbx
+       mov      edx, dword ptr [rdi+0x08]
+       mov      dword ptr [rax+0x08], edx
+       mov      rdx, rax
        ; gcrRegs +[rdx]
        mov      rcx, gword ptr [rsi+0x08]
        ; gcrRegs +[rcx]
        call     [rsi+0x18]<unknown method>
-       ; gcrRegs -[rax rcx rdx rbx rsi]
+       ; gcrRegs -[rax rcx rdx rsi rdi]
        ; gcr arg pop 0
-       mov      qword ptr [rdi+0x08], rax
-						;; size=56 bbWeight=0.10 PerfScore 1.27
+       nop      
+						;; size=32 bbWeight=0.10 PerfScore 1.01
 G_M32981_IG06:        ; bbWeight=0.10, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -88,7 +81,7 @@ G_M32981_IG06:        ; bbWeight=0.10, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.10 PerfScore 0.29
 G_M32981_IG07:        ; bbWeight=0.90, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx rsi]
+       ; gcrRegs +[rbx rsi rdi]
        movzx    rdx, byte  ptr [rbx+0x10]
        mov      byte  ptr [rbx+0x10], 0
        test     edx, edx
@@ -139,7 +132,7 @@ G_M32981_IG12:        ; bbWeight=0.43, epilog, nogc, extend
        tail.jmp [rax+0x18]<unknown method>
 						;; size=11 bbWeight=0.43 PerfScore 1.61
 
-; Total bytes of code 208, prolog size 16, PerfScore 23.46, instruction count 61, allocated bytes for code 208 (MethodHash=76e07f2a) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Func`2[System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC],System.Object) (FullOpts)
+; Total bytes of code 184, prolog size 16, PerfScore 23.20, instruction count 57, allocated bytes for code 184 (MethodHash=76e07f2a) for method (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Func`2[System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC],System.Object) (FullOpts)
 ; ============================================================
 
 Unwind Info:
+32 (+8.49%) : 640978.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
@@ -9,31 +9,31 @@
 ; 5 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  6   )   byref  ->  [rbp+0x10]  ld-addr-op EH-live single-def
-;  V01 arg1         [V01,T01] (  4,  6   )   byref  ->  [rbp+0x18]  ld-addr-op EH-live single-def
+;  V00 arg0         [V00,T00] (  4,  8   )   byref  ->  rcx         ld-addr-op single-def
+;  V01 arg1         [V01,T01] (  4,  8   )   byref  ->  rdx         ld-addr-op single-def
 ;  V02 arg2         [V02,T02] (  4,  4   )     ref  ->  r11         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Int128]>
-;* V03 loc0         [V03,T43] (  0,  0   )     ref  ->  zero-ref    class-hnd EH-live single-def <Xunit.Sdk.CollectionTracker>
-;* V04 loc1         [V04,T44] (  0,  0   )     ref  ->  zero-ref    class-hnd EH-live single-def <Xunit.Sdk.CollectionTracker>
-;  V05 loc2         [V05,T03] (  3,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[M] class-hnd EH-live <<unknown class>>
+;* V03 loc0         [V03,T47] (  0,  0   )     ref  ->  zero-ref    class-hnd EH-live single-def <Xunit.Sdk.CollectionTracker>
+;* V04 loc1         [V04,T48] (  0,  0   )     ref  ->  zero-ref    class-hnd EH-live single-def <Xunit.Sdk.CollectionTracker>
+;  V05 loc2         [V05,T07] (  3,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[M] class-hnd EH-live <<unknown class>>
 ;* V06 loc3         [V06    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V07 loc4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V08 loc5         [V08    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
 ;* V09 loc6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Collections.IEqualityComparer>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <Xunit.Sdk.AssertEqualityComparer`1[System.Int128]>
-;* V11 loc8         [V11,T06] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;* V12 loc9         [V12,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
+;* V11 loc8         [V11,T10] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
+;* V12 loc9         [V12,T11] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;* V13 loc10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
 ;* V14 loc11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
-;* V15 loc12        [V15,T45] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[M] class-hnd EH-live <System.String>
-;* V16 loc13        [V16,T46] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[M] class-hnd EH-live <System.String>
-;* V17 loc14        [V17,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
+;* V15 loc12        [V15,T49] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[M] class-hnd EH-live <System.String>
+;* V16 loc13        [V16,T50] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[M] class-hnd EH-live <System.String>
+;* V17 loc14        [V17,T21] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V18 loc15        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
-;* V19 loc16        [V19,T47] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
+;* V19 loc16        [V19,T51] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
 ;* V20 loc17        [V20    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op
 ;* V21 loc18        [V21    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op
 ;* V22 loc19        [V22    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op
 ;* V23 loc20        [V23    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op
-;* V24 loc21        [V24,T48] (  0,  0   )   ubyte  ->  zero-ref   
+;* V24 loc21        [V24,T52] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V25 loc22        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V26 loc23        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V27 loc24        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Int128>
@@ -44,126 +44,132 @@
 ;* V32 loc29        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 loc30        [V33    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;  V34 OutArgs      [V34    ] (  1,  1   )  struct (72) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V35 tmp1         [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int128>
-;* V36 tmp2         [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int128>
-;* V37 tmp3         [V37,T04] (  0,  0   )     int  ->  zero-ref    single-def
-;* V38 tmp4         [V38,T10] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Int128>
-;* V39 tmp5         [V39,T11] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Int128>
+;* V35 tmp1         [V35    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int128>
+;* V36 tmp2         [V36    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Int128>
+;* V37 tmp3         [V37,T08] (  0,  0   )     int  ->  zero-ref    single-def
+;* V38 tmp4         [V38,T12] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Int128>
+;* V39 tmp5         [V39,T13] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Int128>
 ;* V40 tmp6         [V40    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V41 tmp7         [V41    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V42 tmp8         [V42    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V43 tmp9         [V43    ] (  0,  0   )     ref  ->  zero-ref   
-;* V44 tmp10        [V44,T18] (  0,  0   )     ref  ->  zero-ref   
-;* V45 tmp11        [V45,T19] (  0,  0   )     ref  ->  zero-ref   
+;* V44 tmp10        [V44,T22] (  0,  0   )     ref  ->  zero-ref   
+;* V45 tmp11        [V45,T23] (  0,  0   )     ref  ->  zero-ref   
 ;* V46 tmp12        [V46    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;* V47 tmp13        [V47    ] (  0,  0   )  struct ( 8) zero-ref    <System.Nullable`1[int]>
 ;* V48 tmp14        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;* V49 tmp15        [V49    ] (  0,  0   )  struct ( 8) zero-ref    <System.Nullable`1[int]>
-;* V50 tmp16        [V50,T20] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;* V51 tmp17        [V51,T21] (  0,  0   )     ref  ->  zero-ref   
-;* V52 tmp18        [V52,T22] (  0,  0   )     ref  ->  zero-ref   
-;* V53 tmp19        [V53,T23] (  0,  0   )     ref  ->  zero-ref   
-;* V54 tmp20        [V54,T24] (  0,  0   )     ref  ->  zero-ref   
-;* V55 tmp21        [V55,T25] (  0,  0   )     ref  ->  zero-ref   
-;* V56 tmp22        [V56,T26] (  0,  0   )     ref  ->  zero-ref   
+;* V50 tmp16        [V50,T24] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;* V51 tmp17        [V51,T25] (  0,  0   )     ref  ->  zero-ref   
+;* V52 tmp18        [V52,T26] (  0,  0   )     ref  ->  zero-ref   
+;* V53 tmp19        [V53,T27] (  0,  0   )     ref  ->  zero-ref   
+;* V54 tmp20        [V54,T28] (  0,  0   )     ref  ->  zero-ref   
+;* V55 tmp21        [V55,T29] (  0,  0   )     ref  ->  zero-ref   
+;* V56 tmp22        [V56,T30] (  0,  0   )     ref  ->  zero-ref   
 ;* V57 tmp23        [V57    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V58 tmp24        [V58    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V59 tmp25        [V59,T27] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V60 tmp26        [V60,T12] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Int128>
-;  V61 tmp27        [V61,T13] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int128>
-;  V62 tmp28        [V62,T28] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V63 tmp29        [V63,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V59 tmp25        [V59,T31] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V60 tmp26        [V60,T14] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Int128>
+;  V61 tmp27        [V61,T15] (  4,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Int128>
+;  V62 tmp28        [V62,T32] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V63 tmp29        [V63,T18] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V64 tmp30        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <Xunit.Sdk.CollectionTracker>
-;* V65 tmp31        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int128>
+;* V65 tmp31        [V65    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int128>
 ;* V66 tmp32        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Xunit.Sdk.CollectionTracker>
 ;* V67 tmp33        [V67    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <Xunit.Sdk.CollectionTracker>
-;* V68 tmp34        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int128>
+;* V68 tmp34        [V68    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int128>
 ;* V69 tmp35        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Xunit.Sdk.CollectionTracker>
-;* V70 tmp36        [V70,T49] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V71 tmp37        [V71,T50] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V72 tmp38        [V72,T51] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V70 tmp36        [V70,T53] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V71 tmp37        [V71,T54] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V72 tmp38        [V72,T55] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V73 tmp39        [V73    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V74 tmp40        [V74    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V75 tmp41        [V75    ] (  0,  0   )    long  ->  zero-ref    do-not-enreg[] "field V00._lower (fldOffset=0x0)" P-DEP
-;* V76 tmp42        [V76    ] (  0,  0   )    long  ->  zero-ref    do-not-enreg[] "field V00._upper (fldOffset=0x8)" P-DEP
-;* V77 tmp43        [V77    ] (  0,  0   )    long  ->  zero-ref    do-not-enreg[] "field V01._lower (fldOffset=0x0)" P-DEP
-;* V78 tmp44        [V78    ] (  0,  0   )    long  ->  zero-ref    do-not-enreg[] "field V01._upper (fldOffset=0x8)" P-DEP
-;* V79 tmp45        [V79    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[X] addr-exposed "field V08.hasValue (fldOffset=0x0)" P-DEP
-;* V80 tmp46        [V80    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed "field V08.value (fldOffset=0x4)" P-DEP
-;* V81 tmp47        [V81    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[X] addr-exposed "field V13.hasValue (fldOffset=0x0)" P-DEP
-;* V82 tmp48        [V82    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed "field V13.value (fldOffset=0x4)" P-DEP
-;* V83 tmp49        [V83    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.hasValue (fldOffset=0x0)" P-DEP
-;* V84 tmp50        [V84    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.value (fldOffset=0x4)" P-DEP
-;* V85 tmp51        [V85    ] (  0,  0   )    long  ->  zero-ref    "field V27._lower (fldOffset=0x0)" P-INDEP
-;* V86 tmp52        [V86    ] (  0,  0   )    long  ->  zero-ref    "field V27._upper (fldOffset=0x8)" P-INDEP
-;* V87 tmp53        [V87,T08] (  0,  0   )   ubyte  ->  zero-ref    "field V31.hasValue (fldOffset=0x0)" P-INDEP
-;* V88 tmp54        [V88,T09] (  0,  0   )     int  ->  zero-ref    "field V31.value (fldOffset=0x4)" P-INDEP
-;* V89 tmp55        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    "field V33.hasValue (fldOffset=0x0)" P-INDEP
-;* V90 tmp56        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V33.value (fldOffset=0x4)" P-INDEP
-;* V91 tmp57        [V91,T52] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V46.hasValue (fldOffset=0x0)" P-INDEP
-;* V92 tmp58        [V92,T35] (  0,  0   )     int  ->  zero-ref    single-def "field V46.value (fldOffset=0x4)" P-INDEP
-;* V93 tmp59        [V93,T36] (  0,  0   )   ubyte  ->  zero-ref    "field V47.hasValue (fldOffset=0x0)" P-INDEP
-;* V94 tmp60        [V94,T15] (  0,  0   )     int  ->  zero-ref    "field V47.value (fldOffset=0x4)" P-INDEP
-;* V95 tmp61        [V95,T53] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V48.hasValue (fldOffset=0x0)" P-INDEP
-;* V96 tmp62        [V96,T37] (  0,  0   )     int  ->  zero-ref    single-def "field V48.value (fldOffset=0x4)" P-INDEP
-;* V97 tmp63        [V97,T38] (  0,  0   )   ubyte  ->  zero-ref    "field V49.hasValue (fldOffset=0x0)" P-INDEP
-;* V98 tmp64        [V98,T16] (  0,  0   )     int  ->  zero-ref    "field V49.value (fldOffset=0x4)" P-INDEP
-;* V99 tmp65        [V99    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Promoted implicit byref" <System.Int128>
-;* V100 tmp66       [V100    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Promoted implicit byref" <System.Int128>
-;  V101 tmp67       [V101    ] (  2,  4   )  struct (16) [rbp-0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Int128>
-;  V102 tmp68       [V102    ] (  2,  4   )  struct (16) [rbp-0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Int128>
-;* V103 tmp69       [V103,T39] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;* V104 tmp70       [V104,T40] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
-;* V105 tmp71       [V105    ] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;* V106 tmp72       [V106    ] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
+;* V75 tmp41        [V75    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,System.Int128]>
+;* V76 tmp42        [V76    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,System.Int128]>
+;  V77 tmp43        [V77,T03] (  3,  1   )    long  ->  [rbp-0x10]  EH-live spill-single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;  V78 tmp44        [V78,T04] (  3,  1   )    long  ->  [rbp-0x18]  EH-live spill-single-def "field V00._upper (fldOffset=0x8)" P-INDEP
+;  V79 tmp45        [V79,T05] (  3,  1   )    long  ->  [rbp-0x20]  EH-live spill-single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;  V80 tmp46        [V80,T06] (  3,  1   )    long  ->  [rbp-0x28]  EH-live spill-single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;* V81 tmp47        [V81    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[X] addr-exposed "field V08.hasValue (fldOffset=0x0)" P-DEP
+;* V82 tmp48        [V82    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed "field V08.value (fldOffset=0x4)" P-DEP
+;* V83 tmp49        [V83    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[X] addr-exposed "field V13.hasValue (fldOffset=0x0)" P-DEP
+;* V84 tmp50        [V84    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed "field V13.value (fldOffset=0x4)" P-DEP
+;* V85 tmp51        [V85    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.hasValue (fldOffset=0x0)" P-DEP
+;* V86 tmp52        [V86    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.value (fldOffset=0x4)" P-DEP
+;* V87 tmp53        [V87    ] (  0,  0   )    long  ->  zero-ref    "field V27._lower (fldOffset=0x0)" P-INDEP
+;* V88 tmp54        [V88    ] (  0,  0   )    long  ->  zero-ref    "field V27._upper (fldOffset=0x8)" P-INDEP
+;* V89 tmp55        [V89,T16] (  0,  0   )   ubyte  ->  zero-ref    "field V31.hasValue (fldOffset=0x0)" P-INDEP
+;* V90 tmp56        [V90,T17] (  0,  0   )     int  ->  zero-ref    "field V31.value (fldOffset=0x4)" P-INDEP
+;* V91 tmp57        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "field V33.hasValue (fldOffset=0x0)" P-INDEP
+;* V92 tmp58        [V92    ] (  0,  0   )     int  ->  zero-ref    "field V33.value (fldOffset=0x4)" P-INDEP
+;* V93 tmp59        [V93,T56] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V46.hasValue (fldOffset=0x0)" P-INDEP
+;* V94 tmp60        [V94,T39] (  0,  0   )     int  ->  zero-ref    single-def "field V46.value (fldOffset=0x4)" P-INDEP
+;* V95 tmp61        [V95,T40] (  0,  0   )   ubyte  ->  zero-ref    "field V47.hasValue (fldOffset=0x0)" P-INDEP
+;* V96 tmp62        [V96,T19] (  0,  0   )     int  ->  zero-ref    "field V47.value (fldOffset=0x4)" P-INDEP
+;* V97 tmp63        [V97,T57] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V48.hasValue (fldOffset=0x0)" P-INDEP
+;* V98 tmp64        [V98,T41] (  0,  0   )     int  ->  zero-ref    single-def "field V48.value (fldOffset=0x4)" P-INDEP
+;* V99 tmp65        [V99,T42] (  0,  0   )   ubyte  ->  zero-ref    "field V49.hasValue (fldOffset=0x0)" P-INDEP
+;* V100 tmp66       [V100,T20] (  0,  0   )     int  ->  zero-ref    "field V49.value (fldOffset=0x4)" P-INDEP
+;* V101 tmp67       [V101    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Int128>
+;* V102 tmp68       [V102    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Int128>
+;  V103 tmp69       [V103    ] (  3,  6   )  struct (16) [rbp-0x38]  do-not-enreg[XSF] addr-exposed "by-value struct argument" <System.Int128>
+;  V104 tmp70       [V104    ] (  3,  6   )  struct (16) [rbp-0x48]  do-not-enreg[XSF] addr-exposed "by-value struct argument" <System.Int128>
+;* V105 tmp71       [V105,T43] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
+;* V106 tmp72       [V106,T44] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
 ;* V107 tmp73       [V107    ] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
 ;* V108 tmp74       [V108    ] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;* V109 tmp75       [V109,T29] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V110 tmp76       [V110,T30] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V111 tmp77       [V111,T31] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V112 tmp78       [V112,T32] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V113 tmp79       [V113,T41] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
-;* V114 tmp80       [V114,T42] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
-;  V115 tmp81       [V115,T33] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
-;  V116 tmp82       [V116,T34] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V117 PSPSym      [V117,T05] (  1,  1   )    long  ->  [rbp-0x38]  do-not-enreg[V] "PSPSym"
+;* V109 tmp75       [V109    ] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
+;* V110 tmp76       [V110    ] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
+;* V111 tmp77       [V111,T33] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V112 tmp78       [V112,T34] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V113 tmp79       [V113,T35] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V114 tmp80       [V114,T36] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V115 tmp81       [V115,T45] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
+;* V116 tmp82       [V116,T46] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
+;  V117 tmp83       [V117,T37] (  2,  0   )     ref  ->  rcx         single-def "argument with side effect"
+;  V118 tmp84       [V118,T38] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V119 PSPSym      [V119,T09] (  1,  1   )    long  ->  [rbp-0x58]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 120
+; Lcl frame size = 152
 
 G_M5157_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
        push     rbx
-       sub      rsp, 120
-       lea      rbp, [rsp+0x80]
-       mov      qword ptr [rbp-0x38], rsp
-       mov      bword ptr [rbp+0x10], rcx
-       ; GC ptr vars +{V00}
-       mov      bword ptr [rbp+0x18], rdx
-       ; GC ptr vars +{V01}
+       sub      rsp, 152
+       lea      rbp, [rsp+0xA0]
+       mov      qword ptr [rbp-0x58], rsp
        mov      r11, r8
        ; gcrRegs +[r11]
-						;; size=29 bbWeight=1 PerfScore 6.00
-G_M5157_IG02:        ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0800 {r11}, byrefRegs=0006 {rcx rdx}, gcvars, byref
+						;; size=24 bbWeight=1 PerfScore 4.00
+G_M5157_IG02:        ; bbWeight=1, gcrefRegs=0800 {r11}, byrefRegs=0006 {rcx rdx}, byref
        ; byrRegs +[rcx rdx]
+       mov      r8, qword ptr [rdx]
+       mov      qword ptr [rbp-0x20], r8
+       mov      rdx, qword ptr [rdx+0x08]
+       ; byrRegs -[rdx]
+       mov      qword ptr [rbp-0x28], rdx
+       mov      rax, qword ptr [rcx]
+       mov      qword ptr [rbp-0x10], rax
+       mov      rcx, qword ptr [rcx+0x08]
+       ; byrRegs -[rcx]
+       mov      qword ptr [rbp-0x18], rcx
        test     r11, r11
        je       G_M5157_IG08
-       xor      r8, r8
-       ; gcrRegs +[r8]
-       mov      gword ptr [rbp-0x30], r8
+       xor      r10, r10
+       ; gcrRegs +[r10]
+       mov      gword ptr [rbp-0x50], r10
        ; GC ptr vars +{V05}
-						;; size=16 bbWeight=1 PerfScore 2.50
-G_M5157_IG03:        ; bbWeight=1, gcVars=000000000000000B {V00 V01 V05}, gcrefRegs=0800 {r11}, byrefRegs=0006 {rcx rdx}, gcvars, byref, isz
-       ; gcrRegs -[r8]
-       vmovups  xmm0, xmmword ptr [rcx]
-       vmovups  xmmword ptr [rbp-0x18], xmm0
-       vmovups  xmm0, xmmword ptr [rdx]
-       vmovups  xmmword ptr [rbp-0x28], xmm0
-       lea      r8, [rbp-0x28]
-       lea      rdx, [rbp-0x18]
...
+46 (+9.26%) : 283274.dasm - System.Diagnostics.Tests.ProcessTests:TestProcessorTime():this (Tier1-OSR)
@@ -11,10 +11,10 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Diagnostics.Tests.ProcessTests>
-;  V01 loc0         [V01,T24] (  2,  0.84)  double  ->  [rsp+0xD0]  tier0-frame
-;  V02 loc1         [V02,T21] ( 10,  2.53)  double  ->  mm6        
+;  V01 loc0         [V01,T16] (  2,  0.84)  double  ->  [rsp+0xC0]  tier0-frame
+;  V02 loc1         [V02,T13] ( 10,  2.53)  double  ->  [rsp+0xB8]  tier0-frame
 ;  V03 loc2         [V03,T00] (  5,398.21)     int  ->  rbx        
-;  V04 loc3         [V04,T16] (  1,  1   )  struct ( 8) [rsp+0xB8]  do-not-enreg[SF] ld-addr-op tier0-frame <System.TimeSpan>
+;  V04 loc3         [V04,T08] (  1,  1   )  struct ( 8) [rsp+0xA8]  do-not-enreg[SF] ld-addr-op tier0-frame <System.TimeSpan>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Process>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Func`3[System.String,System.String,int]>
@@ -31,7 +31,7 @@
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp15        [V20    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
-;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
+;* V21 tmp16        [V21    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V24 tmp19        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
@@ -39,21 +39,21 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V27 tmp22        [V27    ] (  0,  0   )  double  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V28 tmp23        [V28    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
-;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
+;* V29 tmp24        [V29    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V30 tmp25        [V30    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
 ;* V31 tmp26        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V32 tmp27        [V32    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V33 tmp28        [V33    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp29        [V34    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp32        [V37    ] (  0,  0   )  double  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V38 tmp33        [V38    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V39 tmp34        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
-;* V40 tmp35        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
+;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V40 tmp35        [V40    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
 ;* V41 tmp36        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V42 tmp37        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V43 tmp38        [V43    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp39        [V44    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp40        [V45    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp41        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Process>
@@ -61,7 +61,7 @@
 ;* V48 tmp43        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V49 tmp44        [V49    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp45        [V50    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
-;* V51 tmp46        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
+;* V51 tmp46        [V51    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
 ;* V52 tmp47        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V53 tmp48        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V54 tmp49        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
@@ -69,94 +69,110 @@
 ;* V56 tmp51        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V57 tmp52        [V57    ] (  0,  0   )  double  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V58 tmp53        [V58    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V59 tmp54        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
-;* V60 tmp55        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
 ;* V61 tmp56        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V62 tmp57        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V63 tmp58        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V63 tmp58        [V63    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp59        [V64    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp60        [V65    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V66 tmp61        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V67 tmp62        [V67    ] (  0,  0   )  double  ->  zero-ref    do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V68 tmp63        [V68    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V69 tmp64        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
-;* V70 tmp65        [V70    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
+;* V69 tmp64        [V69    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V70 tmp65        [V70    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
 ;* V71 tmp66        [V71    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
 ;* V72 tmp67        [V72    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V73 tmp68        [V73    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V73 tmp68        [V73    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V74 tmp69        [V74    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp70        [V75    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V76 tmp71        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Process>
 ;* V77 tmp72        [V77    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Diagnostics.ProcessThreadTimes>
 ;* V78 tmp73        [V78    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V79 tmp74        [V79    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V80 tmp75        [V80,T07] (  3,  2.98)     ref  ->  rax         class-hnd "Inlining Arg" <System.Diagnostics.Process>
-;  V81 tmp76        [V81,T08] (  3,  2.98)     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Diagnostics.ProcessThreadTimes>
+;  V80 tmp75        [V80,T03] (  3,  2.98)     ref  ->  rax         class-hnd "Inlining Arg" <System.Diagnostics.Process>
+;  V81 tmp76        [V81,T04] (  3,  2.98)     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Diagnostics.ProcessThreadTimes>
 ;* V82 tmp77        [V82    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V83 tmp78        [V83    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V84 tmp79        [V84,T01] (  3,  5.06)     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Diagnostics.Process>
 ;  V85 tmp80        [V85,T02] (  3,  5.06)     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Diagnostics.ProcessThreadTimes>
 ;* V86 tmp81        [V86    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V87 tmp82        [V87    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V88 tmp83        [V88,T20] (  9,  4.07)  double  ->  mm7         "Inlining Arg"
-;* V89 tmp84        [V89,T13] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
-;  V90 tmp85        [V90,T27] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V91 tmp86        [V91,T28] (  3,  0   )     ref  ->  rdi         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V92 tmp87        [V92,T29] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;* V93 tmp88        [V93    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V94 tmp89        [V94,T14] (  2,  1.19)     int  ->  rcx         "Inline return value spill temp"
+;  V88 tmp83        [V88,T12] (  9,  4.07)  double  ->  mm6         "Inlining Arg"
+;* V89 tmp84        [V89    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
+;  V90 tmp85        [V90,T17] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Double>
+;  V91 tmp86        [V91,T18] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Double>
+;  V92 tmp87        [V92,T19] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Double>
+;* V93 tmp88        [V93    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V94 tmp89        [V94,T06] (  2,  1.19)     int  ->  rcx         single-def "Inline return value spill temp"
 ;  V95 tmp90        [V95    ] (  2,  3.37)  double  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V96 tmp91        [V96    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V97 tmp92        [V97,T03] (  3,  5.06)     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V98 tmp93        [V98,T10] (  2,  1.69)     ref  ->  rax         class-hnd exact single-def "Inline stloc first use temp" <System.Double>
-;* V99 tmp94        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V100 tmp95       [V100,T18] (  4,  0.66)     int  ->  rcx         "Inline return value spill temp"
-;  V101 tmp96       [V101,T05] (  2,  3.37)   byref  ->  rax         single-def "Inlining Arg"
+;* V97 tmp92        [V97    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V98 tmp93        [V98    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
+;* V99 tmp94        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;  V100 tmp95       [V100,T10] (  4,  0.66)     int  ->  rcx         "Inline return value spill temp"
+;* V101 tmp96       [V101    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V102 tmp97       [V102    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
-;  V103 tmp98       [V103,T25] (  3,  0.44)  double  ->  mm0         "Inlining Arg"
-;  V104 tmp99       [V104,T15] (  2,  1.19)     int  ->  rcx         "Inline return value spill temp"
+;* V103 tmp98       [V103    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;  V104 tmp99       [V104,T07] (  2,  1.19)     int  ->  rcx         single-def "Inline return value spill temp"
 ;  V105 tmp100      [V105    ] (  2,  3.37)  double  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V106 tmp101      [V106    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V107 tmp102      [V107,T04] (  3,  5.06)     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V108 tmp103      [V108,T11] (  2,  1.69)     ref  ->  rax         class-hnd exact single-def "Inline stloc first use temp" <System.Double>
-;* V109 tmp104      [V109    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V110 tmp105      [V110,T19] (  4,  0.66)     int  ->  rcx         "Inline return value spill temp"
-;  V111 tmp106      [V111,T06] (  2,  3.37)   byref  ->  rax         single-def "Inlining Arg"
+;* V107 tmp102      [V107    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;* V108 tmp103      [V108    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Double>
+;* V109 tmp104      [V109    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Double>
+;  V110 tmp105      [V110,T11] (  4,  0.66)     int  ->  rcx         "Inline return value spill temp"
+;* V111 tmp106      [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp107      [V112    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
-;  V113 tmp108      [V113,T26] (  3,  0.44)  double  ->  mm0         "Inlining Arg"
-;* V114 tmp109      [V114    ] (  0,  0   )    long  ->  zero-ref    "field V18._ticks (fldOffset=0x0)" P-INDEP
-;* V115 tmp110      [V115    ] (  0,  0   )    long  ->  zero-ref    "field V48._ticks (fldOffset=0x0)" P-INDEP
-;* V116 tmp111      [V116    ] (  0,  0   )    long  ->  zero-ref    "field V78._ticks (fldOffset=0x0)" P-INDEP
-;  V117 tmp112      [V117,T17] (  2,  0.99)    long  ->  rcx         "field V82._ticks (fldOffset=0x0)" P-INDEP
-;  V118 tmp113      [V118,T12] (  2,  1.69)    long  ->  rcx         single-def "field V86._ticks (fldOffset=0x0)" P-INDEP
-;* V119 tmp114      [V119    ] (  0,  0   )    long  ->  zero-ref    "V04.[000..008)"
-;* V120 tmp115      [V120    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V121 tmp116      [V121    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V122 tmp117      [V122    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V123 tmp118      [V123    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V124 tmp119      [V124    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V125 tmp120      [V125    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V126 tmp121      [V126    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V127 cse0        [V127,T22] (  5,  1.96)  double  ->  mm0         "CSE #02: conservative"
-;  V128 cse1        [V128,T23] (  5,  1.96)  double  ->  mm0         "CSE #04: conservative"
-;  V129 cse2        [V129,T09] (  6,  2.53)    long  ->  rbx         "CSE #03: aggressive"
+;* V113 tmp108      [V113    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;* V114 tmp109      [V114    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
+;* V115 tmp110      [V115    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;* V116 tmp111      [V116    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;* V117 tmp112      [V117    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
+;* V118 tmp113      [V118    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;* V119 tmp114      [V119    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;* V120 tmp115      [V120    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Xunit.Sdk.AssertRangeComparer`1[double]>
+;* V121 tmp116      [V121    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;* V122 tmp117      [V122    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,double]>
+;* V123 tmp118      [V123    ] (  0,  0   )    long  ->  zero-ref    "field V18._ticks (fldOffset=0x0)" P-INDEP
+;* V124 tmp119      [V124    ] (  0,  0   )    long  ->  zero-ref    "field V48._ticks (fldOffset=0x0)" P-INDEP
+;* V125 tmp120      [V125    ] (  0,  0   )    long  ->  zero-ref    "field V78._ticks (fldOffset=0x0)" P-INDEP
+;  V126 tmp121      [V126,T09] (  2,  0.99)    long  ->  rcx         "field V82._ticks (fldOffset=0x0)" P-INDEP
+;  V127 tmp122      [V127,T05] (  2,  1.69)    long  ->  rcx         single-def "field V86._ticks (fldOffset=0x0)" P-INDEP
+;* V128 tmp123      [V128    ] (  0,  0   )    long  ->  zero-ref    "V04.[000..008)"
+;* V129 tmp124      [V129    ] (  0,  0   )    long  ->  zero-ref    "V115.[000..008)"
+;* V130 tmp125      [V130    ] (  0,  0   )  double  ->  zero-ref    "V115.[008..016)"
+;* V131 tmp126      [V131    ] (  0,  0   )    long  ->  zero-ref    "V116.[000..008)"
+;* V132 tmp127      [V132    ] (  0,  0   )  double  ->  zero-ref    "V116.[008..016)"
+;* V133 tmp128      [V133    ] (  0,  0   )    long  ->  zero-ref    "V118.[000..008)"
+;* V134 tmp129      [V134    ] (  0,  0   )  double  ->  zero-ref    "V118.[008..016)"
+;* V135 tmp130      [V135    ] (  0,  0   )    long  ->  zero-ref    "V119.[000..008)"
+;* V136 tmp131      [V136    ] (  0,  0   )  double  ->  zero-ref    "V119.[008..016)"
+;* V137 tmp132      [V137    ] (  0,  0   )    long  ->  zero-ref    single-def "V121.[000..008)"
+;  V138 tmp133      [V138,T14] (  6,  2.03)  double  ->  mm0         single-def "V121.[008..016)"
+;* V139 tmp134      [V139    ] (  0,  0   )    long  ->  zero-ref    single-def "V122.[000..008)"
+;  V140 tmp135      [V140,T15] (  6,  2.03)  double  ->  mm0         single-def "V122.[008..016)"
+;* V141 tmp136      [V141    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V142 tmp137      [V142    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V143 tmp138      [V143    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V144 tmp139      [V144    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V145 tmp140      [V145    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V146 tmp141      [V146    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V147 tmp142      [V147    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M14076_IG01:        ; bbWeight=0.60, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 104
-       mov      qword ptr [rsp+0x108], rdi
-       mov      qword ptr [rsp+0x100], rsi
-       mov      qword ptr [rsp+0xF8], rbx
-       vmovaps  xmmword ptr [rsp+0x40], xmm6
-       vmovaps  xmmword ptr [rsp+0x30], xmm7
-       vmovsd   xmm6, qword ptr [rsp+0xC8]
-       mov      ebx, dword ptr [rsp+0xC4]
-						;; size=56 bbWeight=0.60 PerfScore 7.88
-G_M14076_IG02:        ; bbWeight=0.60, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       sub      rsp, 88
+       mov      qword ptr [rsp+0xF8], rsi
+       mov      qword ptr [rsp+0xF0], rbx
+       vmovaps  xmmword ptr [rsp+0x30], xmm6
+       vmovsd   xmm0, qword ptr [rsp+0xB8]
+       mov      ebx, dword ptr [rsp+0xB4]
+						;; size=42 bbWeight=0.60 PerfScore 6.10
+G_M14076_IG02:        ; bbWeight=0.60, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        test     ebx, ebx
-       jle      SHORT G_M14076_IG06
-						;; size=4 bbWeight=0.60 PerfScore 0.74
+       jle      G_M14076_IG08
+						;; size=8 bbWeight=0.60 PerfScore 0.74
 G_M14076_IG03:        ; bbWeight=99.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        dec      ebx
        cmp      ebx, 0xD1FFAB1E
@@ -176,14 +192,19 @@ G_M14076_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        add      rcx, qword ptr [rax+0x18]
        vxorps   xmm0, xmm0, xmm0
        vcvtsi2sd xmm0, xmm0, rcx
-       vdivsd   xmm6, xmm0, qword ptr [reloc @RWD00]
-						;; size=42 bbWeight=0.50 PerfScore 17.19
+       vdivsd   xmm0, xmm0, qword ptr [reloc @RWD00]
+       vmovsd   qword ptr [rsp+0xB8], xmm0
+       vmovsd   xmm0, qword ptr [rsp+0xB8]
+						;; size=60 bbWeight=0.50 PerfScore 19.18
 G_M14076_IG05:        ; bbWeight=99.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        test     ebx, ebx
        jg       SHORT G_M14076_IG03
 						;; size=4 bbWeight=99.41 PerfScore 124.26
-G_M14076_IG06:        ; bbWeight=0.84, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M14076_IG06:        ; bbWeight=0.59, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       vmovsd   qword ptr [rsp+0xB8], xmm0
+						;; size=9 bbWeight=0.59 PerfScore 0.59
+G_M14076_IG07:        ; bbWeight=0.84, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [System.Diagnostics.Process:GetCurrentProcess():System.Diagnostics.Process]
        ; gcrRegs +[rax]
...
+16 (+10.74%) : 62565.dasm - Microsoft.Interop.GeneratedComInterfaceData:From(Microsoft.Interop.GeneratedComInterfaceCompilationData):Microsoft.Interop.GeneratedComInterfaceData (Tier1)
@@ -9,59 +9,59 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] (  8,  7.09)     ref  ->  rbx         class-hnd single-def <Microsoft.Interop.GeneratedComInterfaceCompilationData>
+;  V00 arg0         [V00,T02] (  8,  7.09)     ref  ->  rbx         class-hnd single-def <Microsoft.Interop.GeneratedComInterfaceCompilationData>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T02] (  6, 12   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Interop.GeneratedComInterfaceData>
+;* V02 tmp1         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.Interop.GeneratedComInterfaceData>
 ;  V03 tmp2         [V03,T00] (  7, 14   )     ref  ->  rsi         class-hnd exact single-def "dup spill" <Microsoft.Interop.GeneratedComInterfaceData>
 ;* V04 tmp3         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V06 tmp5         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V07 tmp6         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V08 tmp7         [V08,T05] (  3,  2   )     ref  ->  rdx        
+;  V08 tmp7         [V08,T04] (  3,  2   )     ref  ->  rdx        
 ;  V09 tmp8         [V09,T01] (  7, 14   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Interop.GeneratedComInterfaceData>
 ;* V10 tmp9         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp10        [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp11        [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp12        [V13    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V14 cse0         [V14,T04] (  3,  3   )    long  ->  rsi         "CSE #01: aggressive"
+;  V14 tmp13        [V14    ] (  6,  6   )  struct (32) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.Interop.GeneratedComInterfaceData>
+;  V15 cse0         [V15,T03] (  3,  3   )    long  ->  rcx         "CSE #01: aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 72
 
 G_M25584_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 72
+       xor      eax, eax
+       mov      qword ptr [rsp+0x28], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x30], xmm4
+       mov      qword ptr [rsp+0x40], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=10 bbWeight=1 PerfScore 3.50
+						;; size=31 bbWeight=1 PerfScore 7.08
 G_M25584_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      rsi, 0xD1FFAB1E      ; Microsoft.Interop.GeneratedComInterfaceData
-       mov      rcx, rsi
+       mov      rcx, 0xD1FFAB1E      ; Microsoft.Interop.GeneratedComInterfaceData
+       mov      qword ptr [rsp+0x28], rcx
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       mov      rcx, rsi
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       mov      ecx, dword ptr [rdi+0x10]
+       mov      ecx, dword ptr [rsp+0x38]
        mov      dword ptr [rsi+0x10], ecx
-       movzx    rcx, byte  ptr [rdi+0x18]
+       movzx    rcx, byte  ptr [rsp+0x40]
        mov      byte  ptr [rsi+0x18], cl
-       mov      ecx, dword ptr [rdi+0x14]
+       mov      ecx, dword ptr [rsp+0x3C]
        mov      dword ptr [rsi+0x14], ecx
-       mov      rdx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rdx]
        lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-       mov      ecx, dword ptr [rdi+0x1C]
+       mov      ecx, dword ptr [rsp+0x44]
        mov      dword ptr [rsi+0x1C], ecx
        mov      ecx, dword ptr [rbx+0x10]
        mov      dword ptr [rsi+0x10], ecx
@@ -71,9 +71,8 @@ G_M25584_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      dword ptr [rsi+0x14], ecx
        cmp      gword ptr [rbx+0x08], 0
        jne      SHORT G_M25584_IG04
-						;; size=96 bbWeight=1 PerfScore 31.75
+						;; size=92 bbWeight=1 PerfScore 26.00
 G_M25584_IG03:        ; bbWeight=0.91, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
        jmp      SHORT G_M25584_IG05
@@ -101,14 +100,13 @@ G_M25584_IG05:        ; bbWeight=1, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000
        ; gcrRegs +[rax]
 						;; size=18 bbWeight=1 PerfScore 4.75
 G_M25584_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 72
        pop      rbx
        pop      rsi
-       pop      rdi
        ret      
-						;; size=8 bbWeight=1 PerfScore 2.75
+						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 149, prolog size 7, PerfScore 45.26, instruction count 46, allocated bytes for code 149 (MethodHash=ad6f9c0f) for method Microsoft.Interop.GeneratedComInterfaceData:From(Microsoft.Interop.GeneratedComInterfaceCompilationData):Microsoft.Interop.GeneratedComInterfaceData (Tier1)
+; Total bytes of code 165, prolog size 28, PerfScore 42.59, instruction count 46, allocated bytes for code 165 (MethodHash=ad6f9c0f) for method Microsoft.Interop.GeneratedComInterfaceData:From(Microsoft.Interop.GeneratedComInterfaceCompilationData):Microsoft.Interop.GeneratedComInterfaceData (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -116,12 +114,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x06
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    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)
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-31 (-17.71%) : 77448.dasm - System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_0:b__21():System.Object:this (FullOpts)
@@ -8,91 +8,72 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rsi         this class-hnd single-def <System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_0>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_0>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
-;* V03 tmp2         [V03,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V04 tmp3         [V04,T03] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
-;  V05 tmp4         [V05    ] (  3,  3   )  struct ( 8) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V06 tmp5         [V06,T04] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.GenericEqualityComparer`1[int]>
-;  V07 tmp6         [V07,T01] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V08 tmp7         [V08,T08] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V09 tmp8         [V09    ] (  3,  3   )     ref  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V05.array (fldOffset=0x0)" P-DEP
-;  V10 tmp9         [V10,T09] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V11 cse0         [V11,T05] (  3,  3   )   byref  ->  rdx         "CSE #01: aggressive"
-;  V12 cse1         [V12,T06] (  3,  3   )    long  ->  rbx         "CSE #02: aggressive"
+;* V02 tmp1         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
+;* V03 tmp2         [V03    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
+;* V04 tmp3         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V05 tmp4         [V05    ] (  3,  3   )  struct ( 8) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[int]>
+;  V06 tmp5         [V06,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.GenericEqualityComparer`1[int]>
+;  V07 tmp6         [V07,T00] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
+;  V08 tmp7         [V08,T04] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,System.Collections.Immutable.ImmutableArray`1[int]]>
+;  V10 tmp9         [V10    ] (  3,  3   )     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V05.array (fldOffset=0x0)" P-DEP
+;* V11 tmp10        [V11    ] (  0,  0   )    long  ->  zero-ref    "V09.[000..008)"
+;  V12 tmp11        [V12,T03] (  2,  2   )     ref  ->  rcx         single-def "V09.[008..016)"
+;  V13 tmp12        [V13,T05] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M58364_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       mov      rsi, rcx
-       ; gcrRegs +[rsi]
-						;; size=17 bbWeight=1 PerfScore 4.75
-G_M58364_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, 0xD1FFAB1E      ; System.Collections.Immutable.ImmutableArray`1[int]
-       mov      rcx, rbx
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       add      rsi, 80
-       ; gcrRegs -[rsi]
-       ; byrRegs +[rsi]
-       lea      rdx, bword ptr [rax+0x08]
-       ; byrRegs +[rdx]
-       mov      rdi, rdx
-       ; byrRegs +[rdi]
-       call     CORINFO_HELP_ASSIGN_BYREF
-       ; gcrRegs -[rax]
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rcx]
-       ; gcrRegs +[rsi]
-       ; byrRegs -[rsi]
-       mov      rcx, gword ptr [rdx]
+       mov      qword ptr [rsp+0x20], rax
+						;; size=13 bbWeight=1 PerfScore 3.50
+G_M58364_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+0x28], rcx
-       cmp      gword ptr [rsp+0x28], 0
+       mov      rcx, gword ptr [rcx+0x50]
+       mov      rax, 0xD1FFAB1E      ; const ptr
+       mov      rbx, gword ptr [rax]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x20], rcx
+       cmp      gword ptr [rsp+0x20], 0
        je       SHORT G_M58364_IG04
-       mov      rcx, rbx
+       mov      rcx, 0xD1FFAB1E      ; System.Collections.Immutable.ImmutableArray`1[int]
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       ; byrRegs -[rdx rdi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       lea      rcx, [rsp+0x28]
-       mov      r8, rsi
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
+       lea      rcx, [rsp+0x20]
+       mov      r8, rbx
        ; gcrRegs +[r8]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rdx rsi r8]
+       ; gcrRegs -[rdx rbx r8]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rbx+0x08]
+       lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=105 bbWeight=1 PerfScore 19.25
+						;; size=79 bbWeight=1 PerfScore 15.75
 G_M58364_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 40
        pop      rbx
        pop      rsi
-       pop      rdi
        ret      
-						;; size=8 bbWeight=1 PerfScore 2.75
+						;; size=7 bbWeight=1 PerfScore 2.25
 G_M58364_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax rbx]
+       ; gcrRegs -[rax rsi]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -116,7 +97,7 @@ G_M58364_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 175, prolog size 14, PerfScore 26.75, instruction count 46, allocated bytes for code 175 (MethodHash=ce781c03) for method System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_0:<RemoveRangeEnumerableInvalid>b__21():System.Object:this (FullOpts)
+; Total bytes of code 144, prolog size 13, PerfScore 21.50, instruction count 36, allocated bytes for code 144 (MethodHash=ce781c03) for method System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_0:<RemoveRangeEnumerableInvalid>b__21():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -124,12 +105,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x06
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
-    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)
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-40 (-17.62%) : 77444.dasm - System.Collections.Immutable.Tests.ImmutableArrayTest+<>c:b__128_17():System.Object:this (FullOpts)
@@ -10,26 +10,27 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Collections.Immutable.Tests.ImmutableArrayTest+<>c>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  3,  6   )     ref  ->  rbp         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V04 tmp3         [V04,T04] (  2,  4   )     ref  ->  rbp         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
+;* V02 tmp1         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
+;  V03 tmp2         [V03,T00] (  3,  6   )     ref  ->  rbp         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
+;* V04 tmp3         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V06 tmp5         [V06,T05] (  2,  4   )   byref  ->  rbp         single-def "Inlining Arg"
+;* V06 tmp5         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V07 tmp6         [V07    ] (  3,  3   )  struct ( 8) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[int]>
 ;* V08 tmp7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V09 tmp8         [V09,T06] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.GenericEqualityComparer`1[int]>
-;  V10 tmp9         [V10,T02] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V11 tmp10        [V11,T08] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V12 tmp11        [V12    ] (  3,  3   )     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V07.array (fldOffset=0x0)" P-DEP
-;  V13 tmp12        [V13,T09] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V14 cse0         [V14,T07] (  3,  3   )   byref  ->  r14         "CSE #03: aggressive"
-;  V15 cse1         [V15,T03] (  4,  4   )    long  ->  rbx         "CSE #01: aggressive"
+;  V09 tmp8         [V09,T02] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.GenericEqualityComparer`1[int]>
+;  V10 tmp9         [V10,T01] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
+;  V11 tmp10        [V11,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V12 tmp11        [V12    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,System.Collections.Immutable.ImmutableArray`1[int]]>
+;  V13 tmp12        [V13    ] (  3,  3   )     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V07.array (fldOffset=0x0)" P-DEP
+;* V14 tmp13        [V14    ] (  0,  0   )    long  ->  zero-ref    "V12.[000..008)"
+;* V15 tmp14        [V15,T05] (  0,  0   )     ref  ->  zero-ref    single-def "V12.[008..016)"
+;  V16 tmp15        [V16,T07] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V17 cse0         [V17,T04] (  2,  2   )     ref  ->  rsi         "CSE #01: aggressive"
+;  V18 cse1         [V18,T03] (  3,  3   )    long  ->  rbx         "CSE #02: aggressive"
 ;
 ; Lcl frame size = 40
 
 G_M38141_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
-       push     r14
        push     rdi
        push     rsi
        push     rbp
@@ -37,8 +38,11 @@ G_M38141_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 40
        xor      eax, eax
        mov      qword ptr [rsp+0x20], rax
-						;; size=19 bbWeight=1 PerfScore 7.50
+						;; size=15 bbWeight=1 PerfScore 5.50
 G_M38141_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
+       mov      rsi, gword ptr [rcx]
+       ; gcrRegs +[rsi]
        mov      rbx, 0xD1FFAB1E      ; System.Collections.Immutable.ImmutableArray`1[int]
        mov      rcx, rbx
        call     CORINFO_HELP_NEWSFAST
@@ -46,40 +50,18 @@ G_M38141_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcr arg pop 0
        mov      rbp, rax
        ; gcrRegs +[rbp]
-       mov      rax, 0xD1FFAB1E      ; box for <unknown class>:<unknown field>
-       ; gcrRegs -[rax]
-       mov      r14, gword ptr [rax]
-       ; gcrRegs +[r14]
-       add      r14, 8
-       ; gcrRegs -[r14]
-       ; byrRegs +[r14]
+       add      rsi, 8
+       ; gcrRegs -[rsi]
+       ; byrRegs +[rsi]
        lea      rdi, bword ptr [rbp+0x08]
        ; byrRegs +[rdi]
-       mov      rsi, r14
-       ; byrRegs +[rsi]
-       call     CORINFO_HELP_ASSIGN_BYREF
-       mov      rcx, rbx
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; byrRegs -[rsi rdi]
-       ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       lea      rdi, bword ptr [r15+0x08]
-       ; byrRegs +[rdi]
-       mov      rsi, r14
-       ; byrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_BYREF
        ; gcrRegs -[rax]
-       ; byrRegs -[r14]
-       add      rbp, 8
-       ; gcrRegs -[rbp]
-       ; byrRegs +[rbp]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rcx]
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rcx, gword ptr [rbp]
+       xor      rcx, rcx
        ; gcrRegs +[rcx]
        mov      gword ptr [rsp+0x20], rcx
        cmp      gword ptr [rsp+0x20], 0
@@ -88,17 +70,17 @@ G_M38141_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       ; byrRegs -[rbp rdi]
+       ; byrRegs -[rdi]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
-       mov      rdx, r15
+       mov      rdx, rbp
        ; gcrRegs +[rdx]
        lea      rcx, [rsp+0x20]
        mov      r8, rsi
        ; gcrRegs +[r8]
        call     [<unknown method>]
-       ; gcrRegs -[rdx rsi r8 r15]
+       ; gcrRegs -[rdx rbp rsi r8]
        ; gcr arg pop 0
        lea      rcx, bword ptr [rbx+0x08]
        ; byrRegs +[rcx]
@@ -109,17 +91,15 @@ G_M38141_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; byrRegs -[rcx]
        mov      rax, rbx
        ; gcrRegs +[rax]
-						;; size=150 bbWeight=1 PerfScore 25.25
+						;; size=118 bbWeight=1 PerfScore 19.75
 G_M38141_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r14
-       pop      r15
        ret      
-						;; size=13 bbWeight=1 PerfScore 4.25
+						;; size=9 bbWeight=1 PerfScore 3.25
 G_M38141_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rbx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -145,7 +125,7 @@ G_M38141_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 227, prolog size 19, PerfScore 37.00, instruction count 61, allocated bytes for code 227 (MethodHash=aa986b02) for method System.Collections.Immutable.Tests.ImmutableArrayTest+<>c:<RemoveRangeEnumerableInvalid>b__128_17():System.Object:this (FullOpts)
+; Total bytes of code 187, prolog size 15, PerfScore 28.50, instruction count 49, allocated bytes for code 187 (MethodHash=aa986b02) for method System.Collections.Immutable.Tests.ImmutableArrayTest+<>c:<RemoveRangeEnumerableInvalid>b__128_17():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -153,15 +133,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0C
-  CountOfUnwindCodes: 7
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    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: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-42 (-17.28%) : 160362.dasm - System.Buffers.Text.Tests.StandardFormatTests:StandardFormatGetHashCodeIsContentBased(System.Buffers.StandardFormat,System.Buffers.StandardFormat,ubyte) (FullOpts)
@@ -8,138 +8,129 @@
 ; 3 inlinees with PGO data; 14 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  5,  5   )  struct ( 8) [rsp+0x50]  do-not-enreg[SF] single-def <System.Buffers.StandardFormat>
+;  V00 arg0         [V00,T02] (  4,  4   )  struct ( 8) [rsp+0x50]  do-not-enreg[SF] single-def <System.Buffers.StandardFormat>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Buffers.StandardFormat>
 ;* V02 arg2         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
-;* V03 loc0         [V03,T12] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Buffers.StandardFormat>
-;  V04 loc1         [V04,T09] (  2,  2   )     int  ->  rsi         single-def
+;* V03 loc0         [V03    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Buffers.StandardFormat>
+;  V04 loc1         [V04,T05] (  3,  3   )     int  ->  rbx         single-def
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op class-hnd exact "Single-def Box Helper" <System.Buffers.StandardFormat>
-;  V07 tmp2         [V07,T03] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Buffers.StandardFormat>
-;  V08 tmp3         [V08,T06] (  2,  4   )     int  ->  rbx         "impAppendStmt"
+;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Buffers.StandardFormat>
+;* V08 tmp3         [V08,T09] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V10 tmp5         [V10,T04] (  3,  6   )   byref  ->  rax         single-def "Inlining Arg"
+;* V10 tmp5         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V13 tmp8         [V13    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V14 tmp9         [V14,T05] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
+;* V12 tmp7         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp8         [V13    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V14 tmp9         [V14,T03] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
 ;* V15 tmp10        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass5_0[int]>
-;  V16 tmp11        [V16,T07] (  3,  3   )     ref  ->  rbp         class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass5_0[int]>
-;  V17 tmp12        [V17,T00] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V18 tmp13        [V18,T01] (  4,  8   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V19 tmp14        [V19,T10] (  2,  2   )   ubyte  ->  rbx         single-def "field V06._format (fldOffset=0x0)" P-INDEP
-;  V20 tmp15        [V20,T11] (  2,  2   )   ubyte  ->  rsi         single-def "field V06._precision (fldOffset=0x1)" P-INDEP
-;  V21 cse0         [V21,T08] (  3,  3   )   byref  ->  rax         "CSE #01: aggressive"
+;  V16 tmp11        [V16,T04] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass5_0[int]>
+;  V17 tmp12        [V17,T00] (  4,  8   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp13        [V18,T01] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V19 tmp14        [V19    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated boxed value class temp" <System.Collections.Generic.KeyValuePair`2[long,System.Buffers.StandardFormat]>
+;* V20 tmp15        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06._format (fldOffset=0x0)" P-INDEP
+;* V21 tmp16        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06._precision (fldOffset=0x1)" P-INDEP
+;* V22 tmp17        [V22    ] (  0,  0   )    long  ->  zero-ref    single-def "V19.[000..008)"
+;* V23 tmp18        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V19.[008..009)"
+;* V24 tmp19        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V19.[009..010)"
+;  V25 tmp20        [V25,T07] (  2,  2   )   ubyte  ->  rbx         single-def "V00.[000..001)"
+;  V26 tmp21        [V26,T08] (  2,  2   )   ubyte  ->  rsi         single-def "V00.[001..002)"
+;  V27 cse0         [V27,T06] (  2,  2   )     int  ->  rbx         "CSE #01: aggressive"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M9918_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 40
        mov      dword ptr [rsp+0x50], ecx
-						;; size=14 bbWeight=1 PerfScore 6.25
+						;; size=12 bbWeight=1 PerfScore 5.25
 G_M9918_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        movzx    rbx, byte  ptr [rsp+0x50]
        movzx    rsi, byte  ptr [rsp+0x51]
-       mov      rcx, 0xD1FFAB1E      ; System.Buffers.StandardFormat
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       add      rax, 8
-       ; gcrRegs -[rax]
-       ; byrRegs +[rax]
-       movzx    rcx, word  ptr [rsp+0x50]
-       mov      word  ptr [rax], cx
        xor      ebx, esi
-       movzx    rsi, byte  ptr [rax]
-       movzx    rdi, byte  ptr [rax+0x01]
-       xor      esi, edi
        mov      rcx, 0xD1FFAB1E      ; Xunit.Sdk.AssertEqualityComparer`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       ; byrRegs -[rax]
        ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass5_0[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcr arg pop 0
-       mov      rbp, rax
-       ; gcrRegs +[rbp]
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
        xor      rcx, rcx
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp+0x08], rcx
+       mov      gword ptr [rdi+0x08], rcx
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
        ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
-       lea      rcx, bword ptr [r14+0x08]
+       mov      rbp, rax
+       ; gcrRegs +[rbp]
+       lea      rcx, bword ptr [rbp+0x08]
+       ; byrRegs +[rcx]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rax rdx rdi]
+       ; byrRegs -[rcx]
+       mov      rcx, 0xD1FFAB1E      ; code for <unknown method>
+       mov      qword ptr [rbp+0x18], rcx
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       lea      rcx, bword ptr [rdi+0x10]
        ; byrRegs +[rcx]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx rbp]
        ; byrRegs -[rcx]
-       mov      rcx, 0xD1FFAB1E      ; code for <unknown method>
-       mov      qword ptr [r14+0x18], rcx
-       mov      rcx, 0xD1FFAB1E      ; <unknown class>
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rbp, rax
-       ; gcrRegs +[rbp]
-       lea      rcx, bword ptr [rbp+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, r14
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx r14]
-       ; byrRegs -[rcx]
        mov      ecx, 2
        xor      edx, edx
        call     [System.LazyHelper:Create(int,ubyte):System.LazyHelper]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rbp+0x08]
+       lea      rcx, bword ptr [rdi+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-       lea      rcx, bword ptr [rdi+0x08]
+       lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
-       mov      rdx, rbp
+       mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx rbp]
+       ; gcrRegs -[rdx rdi]
        ; byrRegs -[rcx]
        mov      ecx, ebx
-       mov      edx, esi
-       mov      r8, rdi
+       mov      edx, ebx
+       mov      r8, rsi
        ; gcrRegs +[r8]
        call     [<unknown method>]
-       ; gcrRegs -[rdi r8]
+       ; gcrRegs -[rsi r8]
        ; gcr arg pop 0
        nop      
-						;; size=218 bbWeight=1 PerfScore 33.00
+						;; size=180 bbWeight=1 PerfScore 25.25
 G_M9918_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 40
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r14
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.75
+						;; size=9 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 243, prolog size 10, PerfScore 43.00, instruction count 61, allocated bytes for code 243 (MethodHash=2276d941) for method System.Buffers.Text.Tests.StandardFormatTests:StandardFormatGetHashCodeIsContentBased(System.Buffers.StandardFormat,System.Buffers.StandardFormat,ubyte) (FullOpts)
+; Total bytes of code 201, prolog size 8, PerfScore 33.75, instruction count 51, allocated bytes for code 201 (MethodHash=2276d941) for method System.Buffers.Text.Tests.StandardFormatTests:StandardFormatGetHashCodeIsContentBased(System.Buffers.StandardFormat,System.Buffers.StandardFormat,ubyte) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -147,14 +138,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0A
-  CountOfUnwindCodes: 6
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+22 (+53.66%) : 118848.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.Test:MainMethod(System.String[]):int (FullOpts)
@@ -10,9 +10,10 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.String[]>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.MyClass>
+;* V02 tmp1         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.MyClass>
 ;  V03 tmp2         [V03,T01] (  2,  4   )     ref  ->  rax         single-def "inline UNBOX clone1"
 ;  V04 tmp3         [V04,T00] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V05 tmp4         [V05    ] (  2,  2   )  struct ( 8) [rsp+0x20]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.MyClass>
 ;
 ; Lcl frame size = 40
 
@@ -20,6 +21,10 @@ G_M24959_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 40
 						;; size=4 bbWeight=1 PerfScore 0.25
 G_M24959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x20], rcx
+       mov      rcx, 0xD1FFAB1E      ; ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.MyClass
+       mov      qword ptr [rsp+0x20], rcx
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -29,13 +34,13 @@ G_M24959_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        setne    al
        ; gcrRegs -[rax]
        movzx    rax, al
-						;; size=32 bbWeight=1 PerfScore 6.50
+						;; size=54 bbWeight=1 PerfScore 9.00
 G_M24959_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 41, prolog size 4, PerfScore 8.00, instruction count 9, allocated bytes for code 41 (MethodHash=a00f9e80) for method ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.Test:MainMethod(System.String[]):int (FullOpts)
+; Total bytes of code 63, prolog size 4, PerfScore 10.50, instruction count 13, allocated bytes for code 63 (MethodHash=a00f9e80) for method ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.Test:MainMethod(System.String[]):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
+22 (+66.67%) : 251855.dasm - System.Security.Permissions.Tests.CodeGroupTests:FileCodeGroupCallMethods() (FullOpts)
@@ -11,9 +11,13 @@
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V01 tmp1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Policy.GacMembershipCondition>
 ;  V02 tmp2         [V02,T00] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "NewObj constructor temp" <System.Security.Policy.FileCodeGroup>
-;* V03 tmp3         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Object>
+;* V03 tmp3         [V03    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Object>
 ;* V04 tmp4         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Policy.Evidence>
 ;* V05 tmp5         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Policy.Evidence>
+;* V06 tmp6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Policy.GacMembershipCondition>
+;  V07 tmp7         [V07    ] (  2,  2   )  struct ( 8) [rsp+0x20]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <System.Object>
+;* V08 tmp8         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Policy.Evidence>
+;* V09 tmp9         [V09    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Policy.Evidence>
 ;
 ; Lcl frame size = 40
 
@@ -27,17 +31,22 @@ G_M59522_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
+       xor      eax, eax
+       ; gcrRegs -[rax]
+       mov      qword ptr [rsp+0x20], rax
+       mov      rax, 0xD1FFAB1E      ; System.Object
+       mov      qword ptr [rsp+0x20], rax
        call     <unknown method>
-       ; gcrRegs -[rax rcx]
+       ; gcrRegs -[rcx]
        ; gcr arg pop 0
        nop      
-						;; size=24 bbWeight=1 PerfScore 2.75
+						;; size=46 bbWeight=1 PerfScore 5.25
 G_M59522_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 33, prolog size 4, PerfScore 4.25, instruction count 8, allocated bytes for code 33 (MethodHash=7590177d) for method System.Security.Permissions.Tests.CodeGroupTests:FileCodeGroupCallMethods() (FullOpts)
+; Total bytes of code 55, prolog size 4, PerfScore 6.75, instruction count 12, allocated bytes for code 55 (MethodHash=7590177d) for method System.Security.Permissions.Tests.CodeGroupTests:FileCodeGroupCallMethods() (FullOpts)
 ; ============================================================
 
 Unwind Info:
+25 (+2500.00%) : 90597.dasm - System.ComponentModel.Composition.ComposablePartDefinitionTests:Constructor1_ShouldNotThrow():this (FullOpts)
@@ -10,17 +10,26 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.ComponentModel.Composition.ComposablePartDefinitionTests>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.ComponentModel.Composition.Factories.PartDefinitionFactory+NoOverridesComposablePartDefinition>
+;* V02 tmp1         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.ComponentModel.Composition.Factories.PartDefinitionFactory+NoOverridesComposablePartDefinition>
+;  V03 tmp2         [V03    ] (  2,  2   )  struct ( 8) [rsp+0x00]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <System.ComponentModel.Composition.Factories.PartDefinitionFactory+NoOverridesComposablePartDefinition>
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M40482_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-						;; size=0 bbWeight=1 PerfScore 0.00
-G_M40482_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ret      
+       push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
+G_M40482_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      eax, eax
+       mov      qword ptr [rsp], rax
+       mov      rax, 0xD1FFAB1E      ; System.ComponentModel.Composition.Factories.PartDefinitionFactory+NoOverridesComposablePartDefinition
+       mov      qword ptr [rsp], rax
+						;; size=20 bbWeight=1 PerfScore 2.50
+G_M40482_IG03:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 1, prolog size 0, PerfScore 1.00, instruction count 1, allocated bytes for code 1 (MethodHash=580e61dd) for method System.ComponentModel.Composition.ComposablePartDefinitionTests:Constructor1_ShouldNotThrow():this (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 4.75, instruction count 7, allocated bytes for code 26 (MethodHash=580e61dd) for method System.ComponentModel.Composition.ComposablePartDefinitionTests:Constructor1_ShouldNotThrow():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -28,8 +37,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x00
-  CountOfUnwindCodes: 0
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
realworld.run.windows.x64.checked.mch
-35 (-2.65%) : 3277.dasm - FSharp.Compiler.CompilerImports+TcAssemblyResolutions:.ctor(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]):this (FullOpts)
@@ -15,103 +15,110 @@
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T28] (  4,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CompilerImports+TcAssemblyResolutions+-ctor@643-101>
 ;  V06 tmp2         [V06,T26] (  4,  6   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V07 tmp3         [V07,T45] (  5,  3   )     ref  ->  r15         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V07 tmp3         [V07,T41] (  5,  3   )   byref  ->  r15         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V09 tmp5         [V09,T58] (  2,  1   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V10 tmp6         [V10,T43] (  6,  3   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <FSharp.Compiler.CompilerImports+AssemblyResolution>
-;  V11 tmp7         [V11,T55] (  3,  1.50)     ref  ->  r15         class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V09 tmp5         [V09,T52] (  2,  1   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
+;  V10 tmp6         [V10,T39] (  6,  3   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <FSharp.Compiler.CompilerImports+AssemblyResolution>
+;* V11 tmp7         [V11,T58] (  0,  0   )    long  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V13 tmp9         [V13,T59] (  2,  1   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
+;  V13 tmp9         [V13,T53] (  2,  1   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
 ;  V14 tmp10        [V14,T35] (  4,  4   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V16 tmp12        [V16,T53] (  2,  2   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
-;  V17 tmp13        [V17,T36] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V16 tmp12        [V16,T49] (  2,  2   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;* V17 tmp13        [V17    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V18 tmp14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline return value spill temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V19 tmp15        [V19,T60] (  2,  1   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
-;  V20 tmp16        [V20,T37] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
+;  V19 tmp15        [V19,T54] (  2,  1   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <FSharp.Compiler.CompilerConfig+AssemblyReference>
+;  V20 tmp16        [V20,T36] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V22 tmp18        [V22,T38] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;* V22 tmp18        [V22    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;  V23 tmp19        [V23,T02] (  4, 25   )     ref  ->  rbp         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V24 tmp20        [V24,T04] (  4, 18   )     ref  ->  r13         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V24 tmp20        [V24,T04] (  4, 18   )   byref  ->  r15         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V25 tmp21        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;  V26 tmp22        [V26,T24] (  2,  8   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;* V27 tmp23        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <FSharp.Compiler.CompilerImports+AssemblyResolution>
 ;  V28 tmp24        [V28,T06] (  3, 17   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V29 tmp25        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;  V30 tmp26        [V30,T08] (  2, 16   )     ref  ->  rbp         class-hnd "Inlining Arg" <System.__Canon>
-;  V31 tmp27        [V31,T00] (  5, 40   )     ref  ->  r12         class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V31 tmp27        [V31,T00] (  5, 40   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V32 tmp28        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V33 tmp29        [V33,T49] (  3,  3   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Collections.Generic.IComparer`1[System.String]>
+;  V33 tmp29        [V33,T45] (  3,  3   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Collections.Generic.IComparer`1[System.String]>
 ;  V34 tmp30        [V34,T18] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V35 tmp31        [V35,T33] (  3,  5   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V36 tmp32        [V36,T51] (  3,  2   )     ref  ->  rbp         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V36 tmp32        [V36,T47] (  3,  2   )     ref  ->  rbp         class-hnd "Inline return value spill temp" <<unknown class>>
 ;  V37 tmp33        [V37,T22] (  3,  8.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
 ;  V38 tmp34        [V38,T20] (  4,  9   )     ref  ->  rbp         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V39 tmp35        [V39,T10] (  5, 13   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V39 tmp35        [V39,T10] (  5, 13   )   byref  ->  r15         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;  V40 tmp36        [V40,T11] (  5, 13   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V41 tmp37        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;  V42 tmp38        [V42,T29] (  4,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CompilerImports+TcAssemblyResolutions+-ctor@646-102>
 ;  V43 tmp39        [V43,T27] (  4,  6   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V44 tmp40        [V44,T46] (  5,  3   )     ref  ->  r15         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V44 tmp40        [V44,T42] (  5,  3   )   byref  ->  r15         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V45 tmp41        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V46 tmp42        [V46,T61] (  2,  1   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V47 tmp43        [V47,T44] (  6,  3   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <FSharp.Compiler.CompilerImports+AssemblyResolution>
-;  V48 tmp44        [V48,T56] (  3,  1.50)     ref  ->  r15         class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V46 tmp42        [V46,T55] (  2,  1   )     ref  ->  rbp         class-hnd single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
+;  V47 tmp43        [V47,T40] (  6,  3   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <FSharp.Compiler.CompilerImports+AssemblyResolution>
+;* V48 tmp44        [V48,T59] (  0,  0   )    long  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V49 tmp45        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V50 tmp46        [V50,T39] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
+;  V50 tmp46        [V50,T37] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;* V51 tmp47        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V52 tmp48        [V52,T54] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
-;  V53 tmp49        [V53,T40] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
-;  V54 tmp50        [V54,T41] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
+;  V52 tmp48        [V52,T50] (  2,  2   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;* V53 tmp49        [V53    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V54 tmp50        [V54,T38] (  4,  4   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;* V55 tmp51        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V56 tmp52        [V56,T42] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;* V56 tmp52        [V56    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;  V57 tmp53        [V57,T03] (  4, 25   )     ref  ->  rbp         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V58 tmp54        [V58,T05] (  4, 18   )     ref  ->  rdi         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V58 tmp54        [V58,T05] (  4, 18   )   byref  ->  rdi         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V59 tmp55        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;  V60 tmp56        [V60,T25] (  2,  8   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
+;  V60 tmp56        [V60,T25] (  2,  8   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]>
 ;* V61 tmp57        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <FSharp.Compiler.CompilerImports+AssemblyResolution>
 ;  V62 tmp58        [V62,T07] (  3, 17   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V63 tmp59        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;  V64 tmp60        [V64,T09] (  2, 16   )     ref  ->  rbp         class-hnd "Inlining Arg" <System.__Canon>
-;  V65 tmp61        [V65,T01] (  5, 40   )     ref  ->  r12         class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V65 tmp61        [V65,T01] (  5, 40   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V66 tmp62        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V67 tmp63        [V67,T50] (  3,  3   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Collections.Generic.IComparer`1[System.String]>
-;  V68 tmp64        [V68,T19] (  5, 10   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V69 tmp65        [V69,T34] (  3,  5   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V70 tmp66        [V70,T52] (  3,  2   )     ref  ->  rbp         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V71 tmp67        [V71,T23] (  3,  8.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V72 tmp68        [V72,T21] (  4,  9   )     ref  ->  rbp         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V73 tmp69        [V73,T12] (  5, 13   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
-;  V74 tmp70        [V74,T13] (  5, 13   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V67 tmp63        [V67,T46] (  3,  3   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Collections.Generic.IComparer`1[System.String]>
+;  V68 tmp64        [V68,T19] (  5, 10   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V69 tmp65        [V69,T34] (  3,  5   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V70 tmp66        [V70,T48] (  3,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V71 tmp67        [V71,T23] (  3,  8.50)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V72 tmp68        [V72,T21] (  4,  9   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V73 tmp69        [V73,T12] (  5, 13   )   byref  ->  r15         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V74 tmp70        [V74,T13] (  5, 13   )     ref  ->  rbp         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
 ;* V75 tmp71        [V75    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]>
-;* V76 cse0         [V76,T57] (  0,  0   )   byref  ->  zero-ref    multi-def "CSE #03: moderate"
-;  V77 cse1         [V77,T15] (  3, 12   )     ref  ->  rdi         "CSE #11: moderate"
-;  V78 cse2         [V78,T16] (  3, 12   )     ref  ->  r13         "CSE #17: moderate"
-;  V79 cse3         [V79,T47] (  4,  3   )     ref  ->  rbp         "CSE #01: conservative"
-;  V80 cse4         [V80,T48] (  4,  3   )     ref  ->  rbp         "CSE #12: conservative"
-;  V81 cse5         [V81,T14] ( 12, 12.50)    long  ->  r14         multi-def "CSE #02: moderate"
-;  V82 rat0         [V82,T62] (  2,  1   )    long  ->  rcx         "Spilling to split statement for tree"
-;  V83 rat1         [V83,T63] (  2,  1   )    long  ->  rcx         "Spilling to split statement for tree"
+;  V76 tmp72        [V76    ] (  4,  2   )  struct (24) [rsp+0x68]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V77 tmp73        [V77    ] (  5,  2.50)  struct (24) [rsp+0x50]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V78 tmp74        [V78    ] (  4,  2   )  struct (24) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;  V79 tmp75        [V79    ] (  5,  2.50)  struct (24) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]>
+;* V80 cse0         [V80,T51] (  0,  0   )   byref  ->  zero-ref    multi-def "CSE #03: moderate"
+;  V81 cse1         [V81,T15] (  3, 12   )     ref  ->  rdi         "CSE #11: moderate"
+;  V82 cse2         [V82,T16] (  3, 12   )     ref  ->  r15         "CSE #17: moderate"
+;  V83 cse3         [V83,T43] (  4,  3   )     ref  ->  rbp         "CSE #01: conservative"
+;  V84 cse4         [V84,T44] (  4,  3   )     ref  ->  rbp         "CSE #12: conservative"
+;  V85 cse5         [V85,T14] ( 12, 12.50)    long  ->  r14         multi-def "CSE #02: moderate"
+;  V86 rat0         [V86,T56] (  2,  1   )    long  ->  rcx         "Spilling to split statement for tree"
+;  V87 rat1         [V87,T57] (  2,  1   )    long  ->  rcx         "Spilling to split statement for tree"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 128
 
 G_M60158_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 128
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqu  ymmword ptr [rsp+0x40], ymm4
+       vmovdqu  ymmword ptr [rsp+0x60], ymm4
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, r8
        ; gcrRegs +[rsi]
        mov      rdi, r9
        ; gcrRegs +[rdi]
-						;; size=25 bbWeight=1 PerfScore 9.00
+						;; size=48 bbWeight=1 PerfScore 14.33
 G_M60158_IG02:        ; bbWeight=1, gcrefRegs=00CC {rdx rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdx]
        lea      rcx, bword ptr [rbx+0x10]
@@ -190,29 +197,18 @@ G_M60158_IG06:        ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRe
        ; gcrRegs -[rdx r13]
        ; byrRegs -[rcx]
        mov      r14, 0xD1FFAB1E      ; Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.CompilerImports+AssemblyResolution]]
-       mov      rcx, r14
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      r13, rax
-       ; gcrRegs +[r13]
-       lea      rcx, bword ptr [r13+0x08]
-       ; byrRegs +[rcx]
-       mov      rdx, r15
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx r15]
-       ; byrRegs -[rcx]
+       mov      qword ptr [rsp+0x50], r14
+       mov      gword ptr [rsp+0x58], r15
        xor      rdx, rdx
        ; gcrRegs +[rdx]
-       mov      gword ptr [r13+0x10], rdx
-       mov      r15, r13
-       ; gcrRegs +[r15]
-       mov      r13, r15
+       mov      gword ptr [rsp+0x60], rdx
+       lea      r15, [rsp+0x50]
+       ; gcrRegs -[r15]
        jmp      SHORT G_M60158_IG08
-						;; size=112 bbWeight=0.50 PerfScore 12.50
-G_M60158_IG07:        ; bbWeight=4, gcrefRegs=A0E8 {rbx rbp rsi rdi r13 r15}, byrefRegs=0000 {}, byref
+						;; size=99 bbWeight=0.50 PerfScore 11.88
+G_M60158_IG07:        ; bbWeight=4, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=8000 {r15}, byref
        ; gcrRegs -[rdx] +[rdi]
+       ; byrRegs +[r15]
        mov      rdx, gword ptr [rbp+0x08]
        ; gcrRegs +[rdx]
        mov      rcx, rsi
@@ -227,9 +223,9 @@ G_M60158_IG07:        ; bbWeight=4, gcrefRegs=A0E8 {rbx rbp rsi rdi r13 r15}, by
        mov      rcx, r14
        call     CORINFO_HELP_NEWSFAST
        ; gcr arg pop 0
-       mov      r12, rax
-       ; gcrRegs +[r12]
-       lea      rcx, bword ptr [r12+0x08]
+       mov      r13, rax
+       ; gcrRegs +[r13]
+       lea      rcx, bword ptr [r13+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rbp
        ; gcrRegs +[rdx]
@@ -238,45 +234,46 @@ G_M60158_IG07:        ; bbWeight=4, gcrefRegs=A0E8 {rbx rbp rsi rdi r13 r15}, by
        ; byrRegs -[rcx]
        xor      rcx, rcx
        ; gcrRegs +[rcx]
-       mov      gword ptr [r12+0x10], rcx
-       lea      rcx, bword ptr [r13+0x10]
+       mov      gword ptr [r13+0x10], rcx
+       lea      rcx, bword ptr [r15+0x10]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
-       mov      rdx, r12
+       mov      rdx, r13
        ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx r13]
-       ; byrRegs -[rcx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       ; gcrRegs -[rdx]
+       ; byrRegs -[rcx r15]
        mov      rbp, rdi
        ; gcrRegs +[rbp]
-       mov      r13, r12
-       ; gcrRegs +[r13]
-						;; size=69 bbWeight=4 PerfScore 65.00
-G_M60158_IG08:        ; bbWeight=4, gcrefRegs=A068 {rbx rbp rsi r13 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi r12]
+       mov      r15, r13
+       ; byrRegs +[r15]
+						;; size=67 bbWeight=4 PerfScore 65.00
+G_M60158_IG08:        ; bbWeight=4, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=8000 {r15}, byref, isz
+       ; gcrRegs -[rdi r13]
        mov      rdi, gword ptr [rbp+0x10]
        ; gcrRegs +[rdi]
        test     rdi, rdi
        jne      SHORT G_M60158_IG07
 						;; size=9 bbWeight=4 PerfScore 13.00
-G_M60158_IG09:        ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+G_M60158_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
        ; gcrRegs -[rbp rsi rdi]
        test     byte  ptr [(reloc)], 1      ; global ptr
        je       G_M60158_IG35
...
-8 (-2.11%) : 2114.dasm - FSharp.Compiler.Driver:getParallelReferenceResolutionFromEnvironment():Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution] (FullOpts)
@@ -8,46 +8,47 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V01 loc1         [V01,T00] (  7,  4.50)     ref  ->  rbx         class-hnd <System.String>
-;* V02 loc2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V03 loc3         [V03    ] (  4,  2   )   ubyte  ->  [rsp+0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op
+;* V00 loc0         [V00    ] (  0,  0   )   byref  ->  zero-ref    class-hnd single-def <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V01 loc1         [V01,T00] (  7,  4.50)     ref  ->  rax         class-hnd <System.String>
+;* V02 loc2         [V02    ] (  0,  0   )   byref  ->  zero-ref    class-hnd exact <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V03 loc3         [V03    ] (  4,  2   )   ubyte  ->  [rsp+0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T05] (  4,  2.50)     ref  ->  rsi        
-;  V06 tmp2         [V06,T01] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V05 tmp1         [V05,T04] (  4,  2.50)   byref  ->  rax        
+;* V06 tmp2         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V11 tmp7         [V11,T10] (  2,  2   )     int  ->  rbx         "Inlining Arg"
-;  V12 tmp8         [V12,T07] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V13 tmp9         [V13,T11] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;* V14 tmp10        [V14,T14] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;* V15 tmp11        [V15,T15] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;  V16 tmp12        [V16,T08] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CompilerConfig+ParallelReferenceResolution>
-;  V17 tmp13        [V17,T02] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution]>
-;  V18 tmp14        [V18,T09] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CompilerConfig+ParallelReferenceResolution>
-;  V19 tmp15        [V19,T03] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution]>
-;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp17        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp18        [V22,T06] (  6,  2.25)   byref  ->  rsi         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp19        [V23,T04] (  5,  2.50)     int  ->  rbx         "field V08._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp20        [V24,T12] (  2,  1   )   byref  ->  rsi         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp21        [V25,T13] (  2,  1   )     int  ->  rbx         single-def "field V09._length (fldOffset=0x8)" P-INDEP
-;* V26 tmp22        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V27 tmp23        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def "field V10._length (fldOffset=0x8)" P-INDEP
-;  V28 tmp24        [V28    ] (  3,  3   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V11 tmp7         [V11,T09] (  2,  2   )     int  ->  rsi         "Inlining Arg"
+;  V12 tmp8         [V12,T06] (  2,  2   )   byref  ->  rbx         single-def "Inlining Arg"
+;  V13 tmp9         [V13,T10] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V14 tmp10        [V14,T13] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
+;* V15 tmp11        [V15,T14] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
+;  V16 tmp12        [V16,T07] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CompilerConfig+ParallelReferenceResolution>
+;  V17 tmp13        [V17,T01] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution]>
+;  V18 tmp14        [V18,T08] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CompilerConfig+ParallelReferenceResolution>
+;  V19 tmp15        [V19,T02] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution]>
+;  V20 tmp16        [V20    ] (  3,  1.50)  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp19        [V23,T05] (  6,  2.25)   byref  ->  rbx         "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V24 tmp20        [V24,T03] (  5,  2.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp21        [V25,T11] (  2,  1   )   byref  ->  rbx         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp22        [V26,T12] (  2,  1   )     int  ->  rsi         single-def "field V09._length (fldOffset=0x8)" P-INDEP
+;* V27 tmp23        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp24        [V28    ] (  0,  0   )     int  ->  zero-ref    single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp25        [V29    ] (  3,  3   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 56
+; Lcl frame size = 72
 
 G_M37255_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 56
+       sub      rsp, 72
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
+       mov      qword ptr [rsp+0x40], rax
 						;; size=23 bbWeight=1 PerfScore 5.83
 G_M37255_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E
@@ -55,91 +56,81 @@ G_M37255_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        call     [System.Environment:GetEnvironmentVariableCore(System.String):System.String]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       test     rbx, rbx
+       test     rax, rax
        je       SHORT G_M37255_IG04
-						;; size=24 bbWeight=1 PerfScore 4.75
-G_M37255_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+						;; size=21 bbWeight=1 PerfScore 4.50
+G_M37255_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
        mov      rcx, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[System.String]
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       lea      rcx, bword ptr [rsi+0x08]
-       ; byrRegs +[rcx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx rbx]
-       ; byrRegs -[rcx]
+       mov      qword ptr [rsp+0x30], rcx
+       mov      gword ptr [rsp+0x38], rax
+       lea      rax, [rsp+0x30]
+       ; gcrRegs -[rax]
        jmp      SHORT G_M37255_IG05
-						;; size=32 bbWeight=0.50 PerfScore 2.62
+						;; size=27 bbWeight=0.50 PerfScore 2.38
 G_M37255_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
-       xor      rsi, rsi
-       ; gcrRegs +[rsi]
+       xor      rax, rax
+       ; gcrRegs +[rax]
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M37255_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
-       test     rsi, rsi
+G_M37255_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref
+       ; gcrRegs -[rax]
+       ; byrRegs +[rax]
+       test     rax, rax
        je       G_M37255_IG19
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M37255_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, gword ptr [rsi+0x08]
-       ; gcrRegs +[rbx]
-       test     rbx, rbx
+G_M37255_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
+       mov      rax, gword ptr [rax+0x08]
+       ; gcrRegs +[rax]
+       ; byrRegs -[rax]
+       test     rax, rax
        je       SHORT G_M37255_IG07
-       lea      rsi, bword ptr [rbx+0x0C]
-       ; gcrRegs -[rsi]
-       ; byrRegs +[rsi]
-       mov      ebx, dword ptr [rbx+0x08]
-       ; gcrRegs -[rbx]
+       lea      rbx, bword ptr [rax+0x0C]
+       ; byrRegs +[rbx]
+       mov      esi, dword ptr [rax+0x08]
        mov      ecx, 1
        call     [<unknown method>]
+       ; gcrRegs -[rax]
        ; gcr arg pop 0
        jmp      SHORT G_M37255_IG08
 						;; size=29 bbWeight=0.50 PerfScore 5.50
 G_M37255_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rsi]
-       xor      rsi, rsi
-       ; byrRegs +[rsi]
-       xor      ebx, ebx
+       ; byrRegs -[rbx]
+       xor      rbx, rbx
+       ; byrRegs +[rbx]
+       xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M37255_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
-       cmp      ebx, 4
+G_M37255_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      esi, 4
        jne      SHORT G_M37255_IG10
 						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M37255_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+G_M37255_IG09:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, 0xD1FFAB1E
-       or       rcx, qword ptr [rsi]
+       or       rcx, qword ptr [rbx]
        mov      rdx, 0xD1FFAB1E
        cmp      rcx, rdx
        je       SHORT G_M37255_IG14
 						;; size=28 bbWeight=0.25 PerfScore 1.19
-G_M37255_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
-       cmp      ebx, 5
+G_M37255_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       cmp      esi, 5
        jne      SHORT G_M37255_IG12
 						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M37255_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+G_M37255_IG11:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, 0xD1FFAB1E
-       or       rcx, qword ptr [rsi]
+       or       rcx, qword ptr [rbx]
        mov      rdx, 0xD1FFAB1E
        xor      rcx, rdx
-       mov      edx, dword ptr [rsi+0x06]
+       mov      edx, dword ptr [rbx+0x06]
        or       edx, 0xD1FFAB1E
        xor      edx, 0xD1FFAB1E
        or       rcx, rdx
        je       SHORT G_M37255_IG13
 						;; size=46 bbWeight=0.25 PerfScore 1.88
-G_M37255_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
-       mov      bword ptr [rsp+0x20], rsi
-       mov      dword ptr [rsp+0x28], ebx
+G_M37255_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       mov      bword ptr [rsp+0x20], rbx
+       mov      dword ptr [rsp+0x28], esi
        lea      rcx, [rsp+0x20]
-       lea      rdx, [rsp+0x30]
+       lea      rdx, [rsp+0x40]
        call     [<unknown method>]
-       ; byrRegs -[rsi]
+       ; byrRegs -[rbx]
        ; gcr arg pop 0
        test     eax, eax
        je       G_M37255_IG19
@@ -147,14 +138,14 @@ G_M37255_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
 						;; size=35 bbWeight=0.50 PerfScore 4.62
 G_M37255_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        xor      ecx, ecx
-       mov      dword ptr [rsp+0x30], ecx
+       mov      dword ptr [rsp+0x40], ecx
        jmp      SHORT G_M37255_IG15
 						;; size=8 bbWeight=0.50 PerfScore 1.62
 G_M37255_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      dword ptr [rsp+0x30], 1
+       mov      dword ptr [rsp+0x40], 1
 						;; size=8 bbWeight=0.50 PerfScore 0.50
 G_M37255_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       cmp      byte  ptr [rsp+0x30], 0
+       cmp      byte  ptr [rsp+0x40], 0
        jne      SHORT G_M37255_IG17
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rbx, gword ptr [rcx]
@@ -176,7 +167,7 @@ G_M37255_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rax]
 						;; size=53 bbWeight=0.50 PerfScore 4.38
 G_M37255_IG16:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 72
        pop      rbx
        pop      rsi
        ret      
@@ -203,7 +194,7 @@ G_M37255_IG17:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rax]
 						;; size=46 bbWeight=0.50 PerfScore 2.88
 G_M37255_IG18:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 72
        pop      rbx
        pop      rsi
        ret      
@@ -214,13 +205,13 @@ G_M37255_IG19:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rax]
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M37255_IG20:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
...
-29 (-0.86%) : 2268.dasm - FSharp.Compiler.CodeAnalysis.BackgroundCompiler+GetProjectOptionsFromScript@1343-1:Invoke(System.Threading.CancellationToken):Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]:this (FullOpts)
@@ -18,19 +18,19 @@
 ;* V07 loc4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    <System.DateTime>
 ;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+applyCompilerOptions@1351-2>
 ;  V09 loc6         [V09,T35] (  8,  8   )     ref  ->  rsi         class-hnd exact single-def <FSharp.Compiler.ScriptClosure+LoadClosure>
-;  V10 loc7         [V10,T81] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.String[]>
+;  V10 loc7         [V10,T79] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.String[]>
 ;  V11 loc8         [V11    ] (  7, 21   )  struct (32) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.FSharp.Core.CompilerServices.ArrayCollector`1[System.String]>
 ;* V12 loc9         [V12    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.FSharp.Core.CompilerServices.ArrayCollector`1[System.String]>
-;  V13 loc10        [V13,T24] (  6, 18   )     ref  ->  [rbp-0xC0]  class-hnd exact EH-live spill-single-def <<unknown class>>
+;  V13 loc10        [V13,T24] (  6, 18   )     ref  ->  [rbp-0xE8]  class-hnd exact EH-live spill-single-def <<unknown class>>
 ;* V14 loc11        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V15 loc12        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]]>
-;  V16 loc13        [V16,T58] (  6,  4   )     ref  ->  [rbp-0xC8]  do-not-enreg[M] class-hnd EH-live <System.IDisposable>
-;  V17 loc14        [V17,T22] (  7, 19   )     ref  ->  [rbp-0xD0]  class-hnd exact EH-live spill-single-def <<unknown class>>
+;  V16 loc13        [V16,T56] (  6,  4   )     ref  ->  [rbp-0xF0]  do-not-enreg[M] class-hnd EH-live <System.IDisposable>
+;  V17 loc14        [V17,T22] (  7, 19   )     ref  ->  [rbp-0xF8]  class-hnd exact EH-live spill-single-def <<unknown class>>
 ;* V18 loc15        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]>
 ;* V19 loc16        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;* V20 loc17        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <FSharp.Compiler.CodeAnalysis.FSharpProjectOptions>
 ;* V21 loc18        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]>
-;  V22 loc19        [V22,T89] (  2,  2   )     ref  ->  rsi         class-hnd single-def <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]>
+;  V22 loc19        [V22,T86] (  2,  2   )     ref  ->  rsi         class-hnd single-def <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]>
 ;* V23 loc20        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]>
 ;* V24 loc21        [V24    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <Internal.Utilities.Library.ValueOrCancelled`1[Microsoft.FSharp.Core.FSharpChoice`2[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]],System.Exception]]>
 ;  V25 loc22        [V25    ] ( 10,  9   )  struct (24) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed <Internal.Utilities.Library.ValueOrCancelled`1[Microsoft.FSharp.Core.FSharpChoice`2[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]],System.Exception]]>
@@ -40,178 +40,180 @@
 ;  V29 loc26        [V29    ] (  2,  2   )  struct (24) [rbp-0xA0]  do-not-enreg[XS] must-init addr-exposed <Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]>
 ;* V30 loc27        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.IDisposable>
 ;* V31 loc28        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
-;  V32 loc29        [V32,T115] (  3,  0   )     ref  ->  rbx         class-hnd single-def <System.OperationCanceledException>
+;  V32 loc29        [V32,T113] (  3,  0   )     ref  ->  rbx         class-hnd single-def <System.OperationCanceledException>
 ;* V33 loc30        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.OperationCanceledException>
 ;* V34 loc31        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Exception>
 ;* V35 loc32        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.FSharp.Core.FSharpChoice`2[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]],System.Exception]>
 ;* V36 loc33        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V37 loc34        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;  V38 OutArgs      [V38    ] (  1,  1   )  struct (120) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V39 tmp1         [V39,T43] (  0,  0   )     int  ->  zero-ref   
+;* V39 tmp1         [V39,T41] (  0,  0   )     int  ->  zero-ref   
 ;  V40 tmp2         [V40,T15] (  5, 24   )     ref  ->   r8         "spilling varStr"
 ;  V41 tmp3         [V41,T29] (  3, 14   )     int  ->  rdi         "spilling unroll qmark"
-;  V42 tmp4         [V42,T46] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+applyCompilerOptions@1351-2>
-;  V43 tmp5         [V43,T61] (  2,  4   )     ref  ->  r12         class-hnd single-def "impAppendStmt" <FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver>
-;  V44 tmp6         [V44,T62] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V45 tmp7         [V45,T63] (  2,  4   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V46 tmp8         [V46,T64] (  2,  4   )     ref  ->  [rbp-0xD8]  class-hnd spill-single-def "impAppendStmt" <FSharp.Compiler.Text.ISourceText>
-;  V47 tmp9         [V47,T47] (  3,  6   )     ref  ->  [rbp-0xE0]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.Lexhelp+LexResourceManager>
-;  V48 tmp10        [V48,T65] (  2,  4   )     ref  ->  [rbp-0xE8]  class-hnd exact spill-single-def "impAppendStmt" <FSharp.Compiler.ScriptClosure+CodeContext>
-;  V49 tmp11        [V49,T78] (  2,  4   )     int  ->  [rbp-0xA4]  spill-single-def "impAppendStmt"
-;  V50 tmp12        [V50,T79] (  2,  4   )     int  ->  [rbp-0xA8]  spill-single-def "impAppendStmt"
-;  V51 tmp13        [V51,T66] (  2,  4   )     ref  ->  [rbp-0xF0]  class-hnd exact spill-single-def "impAppendStmt" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V52 tmp14        [V52,T67] (  2,  4   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V42 tmp4         [V42,T44] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+applyCompilerOptions@1351-2>
+;  V43 tmp5         [V43,T59] (  2,  4   )     ref  ->  r12         class-hnd single-def "impAppendStmt" <FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver>
+;  V44 tmp6         [V44,T60] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V45 tmp7         [V45,T61] (  2,  4   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V46 tmp8         [V46,T62] (  2,  4   )     ref  ->  [rbp-0x100]  class-hnd spill-single-def "impAppendStmt" <FSharp.Compiler.Text.ISourceText>
+;  V47 tmp9         [V47,T45] (  3,  6   )     ref  ->  [rbp-0x108]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.Lexhelp+LexResourceManager>
+;  V48 tmp10        [V48,T63] (  2,  4   )     ref  ->  [rbp-0x110]  class-hnd exact spill-single-def "impAppendStmt" <FSharp.Compiler.ScriptClosure+CodeContext>
+;  V49 tmp11        [V49,T76] (  2,  4   )     int  ->  [rbp-0xA4]  spill-single-def "impAppendStmt"
+;  V50 tmp12        [V50,T77] (  2,  4   )     int  ->  [rbp-0xA8]  spill-single-def "impAppendStmt"
+;  V51 tmp13        [V51,T64] (  2,  4   )     ref  ->  [rbp-0x118]  class-hnd exact spill-single-def "impAppendStmt" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V52 tmp14        [V52,T65] (  2,  4   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.String>
 ;* V53 tmp15        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.String[]>
-;  V54 tmp16        [V54,T68] (  2,  4   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <FSharp.Compiler.CodeAnalysis.FSharpReferencedProject[]>
-;  V55 tmp17        [V55,T13] ( 13, 26   )     ref  ->  [rbp-0xF8]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.FSharpProjectOptions>
+;  V54 tmp16        [V54,T66] (  2,  4   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <FSharp.Compiler.CodeAnalysis.FSharpReferencedProject[]>
+;  V55 tmp17        [V55,T13] ( 13, 26   )     ref  ->  [rbp-0x120]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.FSharpProjectOptions>
 ;* V56 tmp18        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Internal.Utilities.Collections.MruCache`3[Internal.Utilities.Library.AnyCallerThreadToken,FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,FSharp.Compiler.ScriptClosure+LoadClosure]>
-;  V57 tmp19        [V57,T48] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+diags@1403>
+;  V57 tmp19        [V57,T46] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+diags@1403>
 ;  V58 tmp20        [V58,T37] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]>
-;  V59 tmp21        [V59,T49] (  3,  6   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+GetProjectOptionsFromScript@1413-2>
+;  V59 tmp21        [V59,T47] (  3,  6   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+GetProjectOptionsFromScript@1413-2>
 ;* V60 tmp22        [V60    ] (  0,  0   )  struct (24) zero-ref    <Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]>
-;  V61 tmp23        [V61,T119] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
-;  V62 tmp24        [V62,T118] (  3,  0   )     int  ->  rax        
-;  V63 tmp25        [V63,T120] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
-;  V64 tmp26        [V64,T116] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.OperationCanceledException>
+;  V61 tmp23        [V61,T117] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+;  V62 tmp24        [V62,T116] (  3,  0   )     int  ->  rax        
+;  V63 tmp25        [V63,T118] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+;  V64 tmp26        [V64,T114] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.OperationCanceledException>
 ;* V65 tmp27        [V65    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument" <System.Threading.CancellationToken>
 ;  V66 tmp28        [V66,T38] (  4,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.OperationCanceledException>
-;  V67 tmp29        [V67,T121] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
-;  V68 tmp30        [V68,T117] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V67 tmp29        [V67,T119] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+;  V68 tmp30        [V68,T115] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V69 tmp31        [V69    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.DateTime>
-;  V70 tmp32        [V70,T50] (  3, 20   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Core.FSharpOption`1[System.DateTime]>
+;  V70 tmp32        [V70,T48] (  3, 20   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Core.FSharpOption`1[System.DateTime]>
 ;* V71 tmp33        [V71    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;  V72 tmp34        [V72,T69] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.String[]>
+;  V72 tmp34        [V72,T67] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.String[]>
 ;* V73 tmp35        [V73    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V74 tmp36        [V74,T51] (  3,  6   )     ref  ->  [rbp-0x100]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V74 tmp36        [V74,T49] (  3,  6   )     ref  ->  [rbp-0x128]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V75 tmp37        [V75    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V76 tmp38        [V76,T52] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]]]>
+;  V76 tmp38        [V76,T50] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution]]]>
 ;  V77 tmp39        [V77,T31] (  6, 12   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V78 tmp40        [V78,T53] (  3,  6   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
+;  V78 tmp40        [V78,T51] (  3,  6   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
 ;  V79 tmp41        [V79,T32] (  6, 12   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V80 tmp42        [V80,T39] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.CodeAnalysis.BackgroundCompiler+options@1388>
 ;  V81 tmp43        [V81,T40] (  4,  8   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
-;  V82 tmp44        [V82,T45] (  6,  6   )     ref  ->  r13         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V82 tmp44        [V82,T43] (  6,  6   )   byref  ->  r13         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V83 tmp45        [V83    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
-;  V84 tmp46        [V84,T90] (  2,  2   )     ref  ->  [rbp-0x108]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
-;  V85 tmp47        [V85,T59] (  4,  4   )     ref  ->  rdx         class-hnd "Inline stloc first use temp" <System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]>
-;  V86 tmp48        [V86,T82] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V87 tmp49        [V87,T70] (  2,  4   )     ref  ->  r13         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V88 tmp50        [V88,T71] (  2,  4   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V89 tmp51        [V89,T41] (  4,  8   )     ref  ->  [rbp-0x110]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V90 tmp52        [V90,T72] (  2,  4   )     ref  ->  r12         class-hnd single-def "Inlining Arg" <System.__Canon>
-;  V91 tmp53        [V91,T42] (  4,  8   )     ref  ->  [rbp-0x118]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V92 tmp54        [V92,T01] (  4, 50   )     ref  ->   r8         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
-;  V93 tmp55        [V93,T03] (  4, 36   )     ref  ->  [rbp-0x120]  class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V84 tmp46        [V84,T87] (  2,  2   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
+;  V85 tmp47        [V85,T57] (  4,  4   )     ref  ->   r8         class-hnd "Inline stloc first use temp" <System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]>
+;* V86 tmp48        [V86,T104] (  0,  0   )    long  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V87 tmp49        [V87,T68] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V88 tmp50        [V88,T69] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;* V89 tmp51        [V89    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V90 tmp52        [V90,T70] (  2,  4   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.__Canon>
+;* V91 tmp53        [V91    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V92 tmp54        [V92,T01] (  4, 50   )     ref  ->  rax         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
+;  V93 tmp55        [V93,T03] (  4, 36   )   byref  ->  [rbp-0x130]  class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V94 tmp56        [V94    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
-;  V95 tmp57        [V95,T25] (  2, 16   )     ref  ->  [rbp-0x128]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
+;  V95 tmp57        [V95,T25] (  2, 16   )     ref  ->  [rbp-0x138]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]]>
 ;* V96 tmp58        [V96    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Tuple`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.Range]]>
 ;  V97 tmp59        [V97,T05] (  3, 34   )     ref  ->  r13         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V98 tmp60        [V98    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V99 tmp61        [V99,T08] (  2, 32   )     ref  ->  [rbp-0x130]  class-hnd spill-single-def "Inlining Arg" <System.__Canon>
-;  V100 tmp62       [V100,T00] (  5, 80   )     ref  ->  [rbp-0x138]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V99 tmp61        [V99,T08] (  2, 32   )     ref  ->  [rbp-0x140]  class-hnd spill-single-def "Inlining Arg" <System.__Canon>
+;  V100 tmp62       [V100,T00] (  5, 80   )     ref  ->  [rbp-0x148]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V101 tmp63       [V101    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String[]>
 ;* V102 tmp64       [V102    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V103 tmp65       [V103,T23] (  4, 18   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <System.String[]>
 ;* V104 tmp66       [V104    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.String[]>
 ;* V105 tmp67       [V105    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V106 tmp68       [V106,T06] (  3, 34   )     ref  ->  rcx         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V106 tmp68       [V106,T06] (  3, 34   )   byref  ->  rcx         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;  V107 tmp69       [V107,T04] (  4, 36   )     int  ->  rdx         "Inlining Arg"
-;* V108 tmp70       [V108    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V109 tmp71       [V109,T02] (  4, 50   )     ref  ->  r13         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;* V110 tmp72       [V110    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V111 tmp73       [V111,T26] (  2, 16   )     ref  ->  [rbp-0x140]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;* V108 tmp70       [V108    ] (  0,  0   )   byref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V109 tmp71       [V109,T02] (  4, 50   )   byref  ->  r13         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;* V110 tmp72       [V110    ] (  0,  0   )   byref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V111 tmp73       [V111,T26] (  2, 16   )     ref  ->  [rbp-0x150]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;  V112 tmp74       [V112,T27] (  2, 16   )     ref  ->  rdx         class-hnd "Inline stloc first use temp" <System.String>
-;* V113 tmp75       [V113,T100] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.String[]>
-;* V114 tmp76       [V114,T101] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp77       [V115,T73] (  2,  4   )     ref  ->  [rbp-0x148]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]>
-;  V116 tmp78       [V116,T54] (  3,  6   )     ref  ->  [rbp-0x150]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet>
-;  V117 tmp79       [V117,T55] (  3,  6   )     ref  ->  [rbp-0x158]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet]>
-;  V118 tmp80       [V118,T74] (  2,  4   )     ref  ->  [rbp-0x160]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[FSharp.Compiler.Text.Range,System.String,System.String]]>
-;  V119 tmp81       [V119,T75] (  2,  4   )     ref  ->  [rbp-0x168]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Core.FSharpOption`1[long]>
+;* V113 tmp75       [V113,T97] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.String[]>
+;* V114 tmp76       [V114,T98] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V115 tmp77       [V115,T71] (  2,  4   )     ref  ->  [rbp-0x158]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]>
+;  V116 tmp78       [V116,T52] (  3,  6   )     ref  ->  [rbp-0x160]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet>
+;  V117 tmp79       [V117,T53] (  3,  6   )     ref  ->  [rbp-0x168]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.FSharpUnresolvedReferencesSet]>
+;  V118 tmp80       [V118,T72] (  2,  4   )     ref  ->  [rbp-0x170]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[FSharp.Compiler.Text.Range,System.String,System.String]]>
+;  V119 tmp81       [V119,T73] (  2,  4   )     ref  ->  [rbp-0x178]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Core.FSharpOption`1[long]>
 ;* V120 tmp82       [V120    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
 ;* V121 tmp83       [V121    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <FSharp.Compiler.Diagnostics.DiagnosticsScope>
 ;* V122 tmp84       [V122    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Internal.Utilities.Library.Cancellable`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]>
-;* V123 tmp85       [V123,T107] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V123 tmp85       [V123,T105] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V124 tmp86       [V124    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V125 tmp87       [V125    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;* V126 tmp88       [V126    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]>
-;  V127 tmp89       [V127,T56] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V127 tmp89       [V127,T54] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V128 tmp90       [V128    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Internal.Utilities.Library.ValueOrCancelled`1[Microsoft.FSharp.Core.FSharpChoice`2[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]],System.Exception]]>
 ;* V129 tmp91       [V129    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Internal.Utilities.Library.ValueOrCancelled`1[Microsoft.FSharp.Core.FSharpChoice`2[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]],System.Exception]]>
 ;* V130 tmp92       [V130    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.OperationCanceledException>
-;  V131 tmp93       [V131,T57] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.Diagnostics.DiagnosticsScope>
+;  V131 tmp93       [V131,T55] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <FSharp.Compiler.Diagnostics.DiagnosticsScope>
 ;* V132 tmp94       [V132    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline stloc first use temp" <FSharp.Compiler.Diagnostics.DiagnosticsScope>
 ;* V133 tmp95       [V133    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]>
-;  V134 tmp96       [V134,T76] (  2,  4   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.__Canon>
+;  V134 tmp96       [V134,T74] (  2,  4   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.__Canon>
 ;* V135 tmp97       [V135    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]>
 ;* V136 tmp98       [V136    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.OperationCanceledException>
-;  V137 tmp99       [V137,T36] (  6,  6   )     ref  ->  rbx         single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;* V138 tmp100      [V138    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.item (fldOffset=0x0)" P-INDEP
-;  V139 tmp101      [V139,T97] (  2,  2   )    long  ->  r15         single-def "field V07._dateData (fldOffset=0x0)" P-INDEP
-;  V140 tmp102      [V140,T80] (  5,  3.25)     ref  ->  rbx         single-def "field V24._result (fldOffset=0x0)" P-INDEP
-;  V141 tmp103      [V141,T91] (  2,  2   )     ref  ->  rdx         single-def "field V24._exception (fldOffset=0x8)" P-INDEP
-;  V142 tmp104      [V142,T98] (  2,  2   )     int  ->  rcx         single-def "field V24._tag (fldOffset=0x10)" P-INDEP
-;  V143 tmp105      [V143    ] (  4,  3   )     ref  ->  [rbp-0x70]  do-not-enreg[X] addr-exposed "field V25._result (fldOffset=0x0)" P-DEP
-;  V144 tmp106      [V144    ] (  4,  3   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V25._exception (fldOffset=0x8)" P-DEP
-;  V145 tmp107      [V145    ] (  4,  3   )     int  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V25._tag (fldOffset=0x10)" P-DEP
-;* V146 tmp108      [V146    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._result (fldOffset=0x0)" P-INDEP
-;* V147 tmp109      [V147    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._exception (fldOffset=0x8)" P-INDEP
-;* V148 tmp110      [V148    ] (  0,  0   )     int  ->  zero-ref    single-def "field V26._tag (fldOffset=0x10)" P-INDEP
-;  V149 tmp111      [V149    ] (  3,  2   )     ref  ->  [rbp-0x88]  do-not-enreg[X] addr-exposed "field V28._result (fldOffset=0x0)" P-DEP
-;  V150 tmp112      [V150    ] (  3,  2   )     ref  ->  [rbp-0x80]  do-not-enreg[X] addr-exposed "field V28._exception (fldOffset=0x8)" P-DEP
-;  V151 tmp113      [V151    ] (  3,  2   )     int  ->  [rbp-0x78]  do-not-enreg[X] addr-exposed "field V28._tag (fldOffset=0x10)" P-DEP
-;  V152 tmp114      [V152    ] (  2,  2   )     ref  ->  [rbp-0xA0]  do-not-enreg[X] addr-exposed "field V29._result (fldOffset=0x0)" P-DEP
-;  V153 tmp115      [V153    ] (  2,  2   )     ref  ->  [rbp-0x98]  do-not-enreg[X] addr-exposed "field V29._exception (fldOffset=0x8)" P-DEP
-;  V154 tmp116      [V154    ] (  2,  2   )     int  ->  [rbp-0x90]  do-not-enreg[X] addr-exposed "field V29._tag (fldOffset=0x10)" P-DEP
-;  V155 tmp117      [V155,T83] (  3,  3   )     ref  ->  rsi         "field V60._result (fldOffset=0x0)" P-INDEP
-;  V156 tmp118      [V156,T84] (  3,  3   )     ref  ->  rdi         "field V60._exception (fldOffset=0x8)" P-INDEP
-;  V157 tmp119      [V157,T86] (  3,  3   )     int  ->  r14         "field V60._tag (fldOffset=0x10)" P-INDEP
-;  V158 tmp120      [V158,T122] (  2,  0   )     ref  ->  rdx         "field V65._source (fldOffset=0x0)" P-INDEP
-;  V159 tmp121      [V159,T87] (  3,  3   )    long  ->  r15         "field V69._dateData (fldOffset=0x0)" P-INDEP
-;  V160 tmp122      [V160,T99] (  2,  2   )    long  ->  rdx         single-def "field V71._dateData (fldOffset=0x0)" P-INDEP
-;* V161 tmp123      [V161    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V122.item (fldOffset=0x0)" P-INDEP
-;* V162 tmp124      [V162    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V125._source (fldOffset=0x0)" P-INDEP
-;* V163 tmp125      [V163,T102] (  0,  0   )     ref  ->  zero-ref    single-def "field V126._result (fldOffset=0x0)" P-INDEP
-;  V164 tmp126      [V164,T92] (  2,  2   )     ref  ->  rdi         single-def "field V126._exception (fldOffset=0x8)" P-INDEP
-;* V165 tmp127      [V165,T108] (  0,  0   )     int  ->  zero-ref    single-def "field V126._tag (fldOffset=0x10)" P-INDEP
-;  V166 tmp128      [V166,T93] (  2,  2   )     ref  ->  rbx         single-def "field V128._result (fldOffset=0x0)" P-INDEP
-;* V167 tmp129      [V167,T103] (  0,  0   )     ref  ->  zero-ref    single-def "field V128._exception (fldOffset=0x8)" P-INDEP
-;* V168 tmp130      [V168,T109] (  0,  0   )     int  ->  zero-ref    single-def "field V128._tag (fldOffset=0x10)" P-INDEP
-;* V169 tmp131      [V169,T104] (  0,  0   )     ref  ->  zero-ref    single-def "field V129._result (fldOffset=0x0)" P-INDEP
-;  V170 tmp132      [V170,T94] (  2,  2   )     ref  ->  rdi         single-def "field V129._exception (fldOffset=0x8)" P-INDEP
-;* V171 tmp133      [V171,T110] (  0,  0   )     int  ->  zero-ref    single-def "field V129._tag (fldOffset=0x10)" P-INDEP
-;  V172 tmp134      [V172,T95] (  2,  2   )     ref  ->  rdx         single-def "field V133._result (fldOffset=0x0)" P-INDEP
-;* V173 tmp135      [V173,T105] (  0,  0   )     ref  ->  zero-ref    single-def "field V133._exception (fldOffset=0x8)" P-INDEP
-;* V174 tmp136      [V174,T111] (  0,  0   )     int  ->  zero-ref    single-def "field V133._tag (fldOffset=0x10)" P-INDEP
-;* V175 tmp137      [V175,T106] (  0,  0   )     ref  ->  zero-ref    single-def "field V135._result (fldOffset=0x0)" P-INDEP
-;  V176 tmp138      [V176,T96] (  2,  2   )     ref  ->  rdx         single-def "field V135._exception (fldOffset=0x8)" P-INDEP
-;* V177 tmp139      [V177,T112] (  0,  0   )     int  ->  zero-ref    single-def "field V135._tag (fldOffset=0x10)" P-INDEP
-;  V178 tmp140      [V178,T16] (  3, 24   )     ref  ->   r8         "arr expr"
-;  V179 tmp141      [V179,T09] (  2, 32   )     ref  ->  rdx         "argument with side effect"
-;  V180 tmp142      [V180,T10] (  2, 32   )     ref  ->   r8         "argument with side effect"
-;  V181 tmp143      [V181,T11] (  2, 32   )     ref  ->  rdx         "argument with side effect"
-;  V182 tmp144      [V182,T12] (  2, 32   )     ref  ->   r8         "argument with side effect"
-;  V183 tmp145      [V183,T77] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V184 tmp146      [V184,T123] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V185 tmp147      [V185,T124] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V186 tmp148      [V186,T125] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V187 tmp149      [V187,T126] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V188 tmp150      [V188,T127] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V189 PSPSym      [V189,T113] (  1,  1   )    long  ->  [rbp-0x178]  do-not-enreg[V] "PSPSym"
-;  V190 cse0        [V190,T28] (  5, 15   )     ref  ->  rsi         "CSE #01: moderate"
-;  V191 cse1        [V191,T17] (  3, 24   )     ref  ->  r10         "CSE #13: moderate"
-;  V192 cse2        [V192,T18] (  3, 24   )     ref  ->  rcx         "CSE #14: moderate"
-;  V193 cse3        [V193,T19] (  3, 24   )     ref  ->   r8         "CSE #15: moderate"
-;  V194 cse4        [V194,T60] (  4,  4   )     ref  ->  rax         "CSE #08: conservative"
...
+12 (+0.40%) : 3316.dasm - FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@447:Invoke(FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureSource):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]:this (FullOpts)
@@ -16,59 +16,59 @@
 ;  V05 loc3         [V05,T42] ( 11,  6.50)     ref  ->  r13         class-hnd exact single-def <System.String>
 ;  V06 loc4         [V06    ] ( 20, 32   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.FSharp.Core.CompilerServices.ListCollector`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
 ;* V07 loc5         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <Microsoft.FSharp.Core.CompilerServices.ListCollector`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
+;* V08 loc6         [V08    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
 ;  V09 loc7         [V09,T85] (  3,  1.50)     ref  ->  r12         class-hnd <FSharp.Compiler.DiagnosticsLogger+CapturingDiagnosticsLogger>
-;  V10 loc8         [V10,T53] ( 10,  3   )     ref  ->  [rbp-0x80]  do-not-enreg[M] class-hnd EH-live <System.IDisposable>
-;* V11 loc9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
+;  V10 loc8         [V10,T52] ( 10,  3   )     ref  ->  [rbp-0x98]  do-not-enreg[M] class-hnd EH-live <System.IDisposable>
+;* V11 loc9         [V11    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
 ;* V12 loc10        [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.IDisposable>
 ;  V13 loc11        [V13,T86] (  3,  1.50)     ref  ->  rsi         class-hnd single-def <FSharp.Compiler.Syntax.ParsedInput>
 ;  V14 loc12        [V14,T91] (  2,  1   )     ref  ->  rdi         class-hnd exact single-def <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
 ;* V15 loc13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
-;  V16 loc14        [V16,T92] (  2,  1   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def <System.String>
-;  V17 loc15        [V17,T69] (  4,  2   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def <<unknown class>>
+;  V16 loc14        [V16,T92] (  2,  1   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def <System.String>
+;  V17 loc15        [V17,T68] (  4,  2   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def <<unknown class>>
 ;  V18 loc16        [V18,T87] (  3,  1.50)     ref  ->  rax         class-hnd single-def <<unknown class>>
-;  V19 loc17        [V19,T54] (  3,  3   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def <FSharp.Compiler.CompilerConfig+TcConfig>
-;  V20 loc18        [V20,T93] (  2,  1   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.Text.Range]]>
-;  V21 loc19        [V21,T70] (  4,  2   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def <<unknown class>>
+;  V19 loc17        [V19,T53] (  3,  3   )     ref  ->  [rbp-0xB0]  class-hnd exact spill-single-def <FSharp.Compiler.CompilerConfig+TcConfig>
+;  V20 loc18        [V20,T93] (  2,  1   )     ref  ->  [rbp-0xB8]  class-hnd exact spill-single-def <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.Text.Range]]>
+;  V21 loc19        [V21,T69] (  4,  2   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def <<unknown class>>
 ;* V22 loc20        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
-;  V23 loc21        [V23,T34] (  6,  9   )     ref  ->  [rbp-0xB0]  class-hnd exact EH-live spill-single-def <<unknown class>>
+;  V23 loc21        [V23,T34] (  6,  9   )     ref  ->  [rbp-0xC8]  class-hnd exact EH-live spill-single-def <<unknown class>>
 ;* V24 loc22        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;  V25 loc23        [V25,T19] (  4, 16   )     ref  ->  rax         class-hnd <<unknown class>>
-;  V26 loc24        [V26,T23] (  4, 12   )     ref  ->  [rbp-0xB8]  class-hnd exact spill-single-def <System.String>
+;  V26 loc24        [V26,T23] (  4, 12   )     ref  ->  [rbp-0xD0]  class-hnd exact spill-single-def <System.String>
 ;* V27 loc25        [V27    ] (  0,  0   )  struct (16) zero-ref    <FSharp.Compiler.Text.Range>
-;  V28 loc26        [V28,T06] (  6, 38   )     ref  ->  [rbp-0xC0]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
+;  V28 loc26        [V28,T06] (  6, 38   )     ref  ->  [rbp-0xD8]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
 ;* V29 loc27        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V30 loc28        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureSource>
 ;* V31 loc29        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V32 OutArgs      [V32    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V33 tmp1         [V33,T55] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@451-1>
+;  V33 tmp1         [V33,T54] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@451-1>
 ;  V34 tmp2         [V34,T36] (  8,  8   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.DiagnosticsLogger+CapturingDiagnosticsLogger>
 ;  V35 tmp3         [V35,T75] (  2,  2   )     ref  ->  rsi         class-hnd single-def "non-inline candidate call" <FSharp.Compiler.Syntax.ParsedInput>
-;  V36 tmp4         [V36,T46] (  5,  5   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
+;* V36 tmp4         [V36    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
 ;  V37 tmp5         [V37,T43] (  6,  6   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.DiagnosticsLogger+CapturingDiagnosticsLogger>
 ;  V38 tmp6         [V38,T84] (  2,  2   )     int  ->  rdx         "impAppendStmt"
-;  V39 tmp7         [V39,T71] (  4,  2   )     ref  ->  [rbp-0xC8] 
-;  V40 tmp8         [V40,T11] (  3, 24   )     ref  ->  [rbp-0xD0]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@489-2>
-;* V41 tmp9         [V41,T52] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
-;  V42 tmp10        [V42,T24] (  3, 12   )     ref  ->  [rbp-0xD8]  class-hnd exact spill-single-def "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
+;  V39 tmp7         [V39,T70] (  4,  2   )     ref  ->  [rbp-0xE0] 
+;  V40 tmp8         [V40,T11] (  3, 24   )     ref  ->  [rbp-0xE8]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@489-2>
+;* V41 tmp9         [V41,T51] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
+;  V42 tmp10        [V42,T24] (  3, 12   )     ref  ->  [rbp-0xF0]  class-hnd exact spill-single-def "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
 ;* V43 tmp11        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "non-inline candidate call" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.ParsedInput]>
-;  V44 tmp12        [V44,T56] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V44 tmp12        [V44,T55] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V45 tmp13        [V45,T96] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
-;  V46 tmp14        [V46,T57] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
+;  V46 tmp14        [V46,T56] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
 ;  V47 tmp15        [V47,T45] (  3,  6   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,ubyte]>
 ;  V48 tmp16        [V48,T76] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V49 tmp17        [V49,T95] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V50 tmp18        [V50,T09] (  4, 25   )     ref  ->  rax         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V51 tmp19        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V52 tmp20        [V52,T39] (  2,  8   )     ref  ->  [rbp-0xE0]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V52 tmp20        [V52,T39] (  2,  8   )     ref  ->  [rbp-0xF8]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V53 tmp21        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;  V54 tmp22        [V54,T35] (  2,  9   )     ref  ->  r12         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V55 tmp23        [V55,T58] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V56 tmp24        [V56,T59] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.DiagnosticsLogger+UseDiagnosticsLogger@528>
+;  V55 tmp23        [V55,T57] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V56 tmp24        [V56,T58] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.DiagnosticsLogger+UseDiagnosticsLogger@528>
 ;* V57 tmp25        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.FSharp.Core.FSharpRef`1[FSharp.Compiler.CompilerConfig+TcConfig]>
-;  V58 tmp26        [V58,T77] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
-;  V59 tmp27        [V59,T60] (  3,  3   )     ref  ->  [rbp-0xE8]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-;  V60 tmp28        [V60,T61] (  3,  3   )     ref  ->  [rbp-0xF0]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.DiagnosticsLogger+UseDiagnosticsLogger@528>
+;  V58 tmp26        [V58,T77] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
+;  V59 tmp27        [V59,T59] (  3,  3   )     ref  ->  [rbp-0x100]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V60 tmp28        [V60,T60] (  3,  3   )     ref  ->  [rbp-0x108]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.DiagnosticsLogger+UseDiagnosticsLogger@528>
 ;* V61 tmp29        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.FSharp.Core.FSharpRef`1[FSharp.Compiler.CompilerConfig+TcConfig]>
 ;* V62 tmp30        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.FSharp.Core.FSharpRef`1[FSharp.Compiler.CompilerConfig+TcConfig]>
 ;* V63 tmp31        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.FSharp.Core.FSharpRef`1[FSharp.Compiler.CompilerConfig+TcConfig]>
@@ -85,64 +85,66 @@
 ;  V74 tmp42        [V74,T18] (  3, 17   )     ref  ->  rcx         class-hnd "Inlining Arg" <<unknown class>>
 ;  V75 tmp43        [V75,T14] (  4, 18   )     int  ->  [rbp-0x4C]  "Inlining Arg"
 ;* V76 tmp44        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;  V77 tmp45        [V77,T62] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[int]>
-;  V78 tmp46        [V78,T44] (  6,  6   )     ref  ->  [rbp-0xF8]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V77 tmp45        [V77,T61] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[int]>
+;  V78 tmp46        [V78,T44] (  6,  6   )     ref  ->  [rbp-0x110]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;  V79 tmp47        [V79,T22] (  2, 16   )     ref  ->  rax         class-hnd exact "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;* V80 tmp48        [V80,T51] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V80 tmp48        [V80,T50] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V81 tmp49        [V81,T00] (  4,136   )     ref  ->  rax         class-hnd "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V82 tmp50        [V82    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V83 tmp51        [V83,T07] (  2, 32   )     ref  ->  [rbp-0x100]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V83 tmp51        [V83,T07] (  2, 32   )     ref  ->  [rbp-0x118]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;* V84 tmp52        [V84    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
-;  V85 tmp53        [V85,T05] (  2, 40   )     ref  ->  [rbp-0x108]  class-hnd spill-single-def "Inlining Arg" <<unknown class>>
-;  V86 tmp54        [V86,T25] (  3, 12   )     ref  ->  [rbp-0x110]  class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
-;  V87 tmp55        [V87,T10] (  6, 24   )     ref  ->  [rbp-0x118]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-;  V88 tmp56        [V88,T40] (  2,  8   )     ref  ->  [rbp-0x120]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.Text.Range]]>
-;  V89 tmp57        [V89,T04] ( 10, 40   )     ref  ->  [rbp-0x128]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile>
-;  V90 tmp58        [V90,T32] (  5, 10   )     ref  ->  [rbp-0x130]  class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V91 tmp59        [V91,T20] (  4, 16   )     ref  ->  [rbp-0x138]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V92 tmp60        [V92,T21] (  4, 16   )     ref  ->  [rbp-0x140]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V93 tmp61        [V93,T63] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.ParsedInput]>
+;  V85 tmp53        [V85,T05] (  2, 40   )     ref  ->  [rbp-0x120]  class-hnd spill-single-def "Inlining Arg" <<unknown class>>
+;  V86 tmp54        [V86,T25] (  3, 12   )     ref  ->  [rbp-0x128]  class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+;  V87 tmp55        [V87,T10] (  6, 24   )     ref  ->  [rbp-0x130]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V88 tmp56        [V88,T40] (  2,  8   )     ref  ->  [rbp-0x138]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.Text.Range]]>
+;  V89 tmp57        [V89,T04] ( 10, 40   )     ref  ->  [rbp-0x140]  class-hnd exact spill-single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile>
+;  V90 tmp58        [V90,T32] (  5, 10   )     ref  ->  [rbp-0x148]  class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V91 tmp59        [V91,T20] (  4, 16   )     ref  ->  [rbp-0x150]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V92 tmp60        [V92,T21] (  4, 16   )     ref  ->  [rbp-0x158]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V93 tmp61        [V93,T62] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.ParsedInput]>
 ;  V94 tmp62        [V94,T78] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]>
 ;  V95 tmp63        [V95,T30] ( 10, 10   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile>
-;  V96 tmp64        [V96,T67] (  5,  2.50)     ref  ->  rdi         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V97 tmp65        [V97,T47] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V98 tmp66        [V98,T48] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V96 tmp64        [V96,T66] (  5,  2.50)     ref  ->  rdi         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V97 tmp65        [V97,T46] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V98 tmp66        [V98,T47] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
 ;  V99 tmp67        [V99,T79] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.String,FSharp.Compiler.Text.Range]]>
 ;  V100 tmp68       [V100,T31] ( 10, 10   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile>
-;  V101 tmp69       [V101,T68] (  5,  2.50)     ref  ->  r13         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V102 tmp70       [V102,T49] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V103 tmp71       [V103,T50] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V101 tmp69       [V101,T67] (  5,  2.50)     ref  ->  r13         class-hnd "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V102 tmp70       [V102,T48] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
+;  V103 tmp71       [V103,T49] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
 ;  V104 tmp72       [V104,T72] (  3,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
 ;  V105 tmp73       [V105,T80] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <Microsoft.FSharp.Collections.FSharpList`1[System.__Canon]>
 ;  V106 tmp74       [V106,T94] (  2,  1   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]>
-;  V107 tmp75       [V107,T73] (  3,  2   )    long  ->  r14         single-def "field V04.code1 (fldOffset=0x0)" P-INDEP
-;  V108 tmp76       [V108,T74] (  3,  2   )    long  ->  r15         single-def "field V04.code2 (fldOffset=0x8)" P-INDEP
-;  V109 tmp77       [V109    ] ( 12, 25   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V06.Result (fldOffset=0x0)" P-DEP
-;  V110 tmp78       [V110    ] ( 11, 24   )     ref  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V06.LastCons (fldOffset=0x8)" P-DEP
-;* V111 tmp79       [V111    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07.Result (fldOffset=0x0)" P-INDEP
-;* V112 tmp80       [V112    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07.LastCons (fldOffset=0x8)" P-INDEP
-;  V113 tmp81       [V113,T37] (  3,  8   )    long  ->  [rbp-0x58]  spill-single-def "field V27.code1 (fldOffset=0x0)" P-INDEP
-;  V114 tmp82       [V114,T38] (  3,  8   )    long  ->  [rbp-0x60]  spill-single-def "field V27.code2 (fldOffset=0x8)" P-INDEP
-;  V115 tmp83       [V115,T81] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V116 tmp84       [V116,T64] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V117 tmp85       [V117,T65] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V118 tmp86       [V118,T82] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V119 tmp87       [V119,T66] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V120 tmp88       [V120,T83] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V121 tmp89       [V121    ] (  3, 12   )  struct (16) [rbp-0x70]  do-not-enreg[XSF] addr-exposed "by-value struct argument" <FSharp.Compiler.Text.Range>
-;  V122 tmp90       [V122,T02] (  2, 64   )     ref  ->  rdx         "argument with side effect"
-;  V123 tmp91       [V123,T03] (  2, 64   )     ref  ->   r8         "argument with side effect"
-;  V124 PSPSym      [V124,T97] (  1,  1   )    long  ->  [rbp-0x150]  do-not-enreg[V] "PSPSym"
-;  V125 cse0        [V125,T41] (  4,  5   )     ref  ->  registers   multi-def "CSE #12: moderate"
-;  V126 cse1        [V126,T88] (  3,  1.50)     ref  ->  [rbp-0x148]  spill-single-def "CSE #04: conservative"
-;  V127 cse2        [V127,T01] (  3, 80   )     ref  ->  r10         "CSE #11: aggressive"
-;  V128 cse3        [V128,T26] (  3, 12   )     ref  ->   r8         "CSE #01: moderate"
-;  V129 cse4        [V129,T27] (  3, 12   )     ref  ->   r8         "CSE #06: moderate"
-;  V130 cse5        [V130,T28] (  3, 12   )     ref  ->  r10         "CSE #07: moderate"
-;  V131 cse6        [V131,T29] (  3, 12   )     ref  ->  rcx         "CSE #08: moderate"
-;  V132 cse7        [V132,T15] (  4, 17.50)    long  ->  [rbp-0x78]  spill-single-def "CSE #09: moderate"
+;  V107 tmp75       [V107,T71] (  4,  2   )  struct (24) [rbp-0x68]  do-not-enreg[SF] must-init "stack allocated ref class temp" <System.Tuple`2[FSharp.Compiler.Syntax.ParsedInput,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.DiagnosticsLogger+PhasedDiagnostic,FSharp.Compiler.Diagnostics.FSharpDiagnosticSeverity]]]>
+;  V108 tmp76       [V108,T73] (  3,  2   )    long  ->  r14         single-def "field V04.code1 (fldOffset=0x0)" P-INDEP
+;  V109 tmp77       [V109,T74] (  3,  2   )    long  ->  r15         single-def "field V04.code2 (fldOffset=0x8)" P-INDEP
+;  V110 tmp78       [V110    ] ( 12, 25   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V06.Result (fldOffset=0x0)" P-DEP
+;  V111 tmp79       [V111    ] ( 11, 24   )     ref  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V06.LastCons (fldOffset=0x8)" P-DEP
+;* V112 tmp80       [V112    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07.Result (fldOffset=0x0)" P-INDEP
+;* V113 tmp81       [V113    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07.LastCons (fldOffset=0x8)" P-INDEP
+;  V114 tmp82       [V114,T37] (  3,  8   )    long  ->  [rbp-0x70]  spill-single-def "field V27.code1 (fldOffset=0x0)" P-INDEP
+;  V115 tmp83       [V115,T38] (  3,  8   )    long  ->  [rbp-0x78]  spill-single-def "field V27.code2 (fldOffset=0x8)" P-INDEP
+;* V116 tmp84       [V116    ] (  0,  0   )    long  ->  zero-ref    single-def "V107.[000..008)"
+;  V117 tmp85       [V117,T81] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V118 tmp86       [V118,T63] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V119 tmp87       [V119,T64] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;  V120 tmp88       [V120,T82] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V121 tmp89       [V121,T65] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;  V122 tmp90       [V122,T83] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V123 tmp91       [V123    ] (  3, 12   )  struct (16) [rbp-0x88]  do-not-enreg[XSF] addr-exposed "by-value struct argument" <FSharp.Compiler.Text.Range>
+;  V124 tmp92       [V124,T02] (  2, 64   )     ref  ->  rdx         "argument with side effect"
+;  V125 tmp93       [V125,T03] (  2, 64   )     ref  ->   r8         "argument with side effect"
+;  V126 PSPSym      [V126,T97] (  1,  1   )    long  ->  [rbp-0x170]  do-not-enreg[V] "PSPSym"
+;  V127 cse0        [V127,T41] (  4,  5   )     ref  ->  registers   multi-def "CSE #12: moderate"
+;  V128 cse1        [V128,T88] (  3,  1.50)     ref  ->  [rbp-0x160]  spill-single-def "CSE #04: conservative"
+;  V129 cse2        [V129,T01] (  3, 80   )     ref  ->  r10         "CSE #11: aggressive"
+;  V130 cse3        [V130,T26] (  3, 12   )     ref  ->   r8         "CSE #01: moderate"
+;  V131 cse4        [V131,T27] (  3, 12   )     ref  ->   r8         "CSE #06: moderate"
+;  V132 cse5        [V132,T28] (  3, 12   )     ref  ->  r10         "CSE #07: moderate"
+;  V133 cse6        [V133,T29] (  3, 12   )     ref  ->  rcx         "CSE #08: moderate"
+;  V134 cse7        [V134,T15] (  4, 17.50)    long  ->  [rbp-0x90]  spill-single-def "CSE #09: moderate"
 ;
-; Lcl frame size = 328
+; Lcl frame size = 360
 
 G_M12775_IG01:        ; bbWeight=1, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
@@ -153,15 +155,17 @@ G_M12775_IG01:        ; bbWeight=1, gcVars=00000000000000000000000000000000 {},
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 328
-       lea      rbp, [rsp+0x180]
+       sub      rsp, 360
+       lea      rbp, [rsp+0x1A0]
        xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
+       mov      qword ptr [rbp-0x68], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqu  ymmword ptr [rbp-0x60], ymm4
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x150], rsp
+       mov      qword ptr [rbp-0x170], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=47 bbWeight=1 PerfScore 12.25
+						;; size=56 bbWeight=1 PerfScore 14.58
 G_M12775_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdx]
        mov      rsi, gword ptr [rdx+0x10]
@@ -214,7 +218,7 @@ G_M12775_IG03:        ; bbWeight=0.50, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0
 G_M12775_IG04:        ; bbWeight=4, gcVars=00000000000000000000008000000000 {V52}, gcrefRegs=3048 {rbx rsi r12 r13}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        ; GC ptr vars +{V39 V52}
-       mov      rax, gword ptr [rbp-0xE0]
+       mov      rax, gword ptr [rbp-0xF8]
        ; gcrRegs +[rax]
 						;; size=7 bbWeight=4 PerfScore 4.00
 G_M12775_IG05:        ; bbWeight=4, gcVars=00000000000000000000000000000000 {}, gcrefRegs=3049 {rax rbx rsi r12 r13}, byrefRegs=0000 {}, gcvars, byref, isz
@@ -223,7 +227,7 @@ G_M12775_IG05:        ; bbWeight=4, gcVars=00000000000000000000000000000000 {},
        ; gcrRegs +[r8]
        test     r8, r8
        je       SHORT G_M12775_IG06
-       mov      gword ptr [rbp-0xE0], r8
+       mov      gword ptr [rbp-0xF8], r8
        ; GC ptr vars +{V52}
        mov      rdx, gword ptr [rax+0x08]
        ; gcrRegs +[rdx]
@@ -410,8 +414,8 @@ G_M12775_IG11:        ; bbWeight=0.50, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRe
        ; gcrRegs +[r12]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rax, gword ptr [rcx]
-       mov      gword ptr [rbp-0x148], rax
-       ; GC ptr vars +{V126}
+       mov      gword ptr [rbp-0x160], rax
+       ; GC ptr vars +{V128}
        lea      rcx, bword ptr [r12+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
...
+42 (+0.64%) : 3191.dasm - FSharp.Compiler.CompilerConfig+TcConfig:.ctor(FSharp.Compiler.CompilerConfig+TcConfigBuilder,ubyte):this (FullOpts)
@@ -10,253 +10,255 @@
 ;
 ;  V00 this         [V00,T02] ( 16, 16   )     ref  ->  [rbp+0x10]  this class-hnd EH-live single-def <FSharp.Compiler.CompilerConfig+TcConfig>
 ;  V01 arg1         [V01,T00] (146,146   )     ref  ->  [rbp+0x18]  class-hnd EH-live single-def <FSharp.Compiler.CompilerConfig+TcConfigBuilder>
-;  V02 arg2         [V02,T47] (  3,  3   )   ubyte  ->   r8         single-def
+;  V02 arg2         [V02,T45] (  3,  3   )   ubyte  ->   r8         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <FSharp.Compiler.AbstractIL.IL+ILVersionInfo>
-;  V04 loc1         [V04,T208] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Exception>
-;  V05 loc2         [V05,T201] (  2,  2   )   ubyte  ->  [rbp-0x3C]  spill-single-def
-;  V06 loc3         [V06,T194] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]>
-;  V07 loc4         [V07,T195] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V08 loc5         [V08,T196] (  3,  3   )     ref  ->  rax         class-hnd single-def <System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]>
-;  V09 loc6         [V09,T37] (  5,  5   )     ref  ->  rsi         class-hnd <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V10 loc7         [V10,T200] (  2,  2   )     ref  ->  rdx         class-hnd exact single-def <FSharp.Compiler.CompilerConfig+AssemblyReference>
-;* V11 loc8         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[System.String],System.String]>
-;  V12 loc9         [V12,T28] (  6,  6   )     ref  ->  rsi         class-hnd single-def <System.String>
-;  V13 loc10        [V13,T03] ( 17, 16   )     ref  ->  [rbp-0x1D8]  do-not-enreg[M] class-hnd EH-live <System.String>
-;  V14 loc11        [V14,T198] (  3,  2   )     ref  ->  [rbp-0x1E0]  do-not-enreg[M] class-hnd EH-live <System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[System.String],System.String]>
+;  V04 loc1         [V04,T206] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Exception>
+;  V05 loc2         [V05,T199] (  2,  2   )   ubyte  ->  [rbp-0x3C]  spill-single-def
+;  V06 loc3         [V06,T192] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]>
+;  V07 loc4         [V07,T193] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V08 loc5         [V08,T194] (  3,  3   )     ref  ->  rax         class-hnd single-def <System.Tuple`2[FSharp.Compiler.CompilerConfig+AssemblyReference,Microsoft.FSharp.Core.FSharpOption`1[System.String]]>
+;  V09 loc6         [V09,T35] (  5,  5   )     ref  ->  rsi         class-hnd <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V10 loc7         [V10,T198] (  2,  2   )     ref  ->  rdx         class-hnd exact single-def <FSharp.Compiler.CompilerConfig+AssemblyReference>
+;* V11 loc8         [V11    ] (  0,  0   )   byref  ->  zero-ref    class-hnd single-def <System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[System.String],System.String]>
+;  V12 loc9         [V12,T26] (  6,  6   )     ref  ->  rsi         class-hnd single-def <System.String>
+;  V13 loc10        [V13,T03] ( 17, 16   )     ref  ->  [rbp-0x208]  do-not-enreg[M] class-hnd EH-live <System.String>
+;  V14 loc11        [V14,T196] (  3,  2   )   byref  ->  [rbp-0x210]  do-not-enreg[M] class-hnd EH-live <System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[System.String],System.String]>
 ;  V15 loc12        [V15,T04] ( 14, 14   )     ref  ->  registers   class-hnd <System.String>
-;  V16 loc13        [V16,T209] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Exception>
-;  V17 loc14        [V17,T205] (  3,  0   )     ref  ->  rbx         class-hnd single-def <<unknown class>>
-;  V18 loc15        [V18,T27] (  8,  7   )     ref  ->  [rbp-0x1E8]  class-hnd exact EH-live single-def <FSharp.Compiler.CompilerConfig+TcConfig>
-;  V19 loc16        [V19,T199] (  3,  2   )     ref  ->  [rbp-0x1F0]  do-not-enreg[M] class-hnd EH-live <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V16 loc13        [V16,T207] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Exception>
+;  V17 loc14        [V17,T203] (  3,  0   )     ref  ->  rbx         class-hnd single-def <<unknown class>>
+;  V18 loc15        [V18,T25] (  8,  7   )     ref  ->  [rbp-0x218]  class-hnd exact EH-live single-def <FSharp.Compiler.CompilerConfig+TcConfig>
+;  V19 loc16        [V19,T197] (  3,  2   )     ref  ->  [rbp-0x220]  do-not-enreg[M] class-hnd EH-live <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
 ;  V20 loc17        [V20    ] ( 38, 38   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.FSharp.Core.CompilerServices.ListCollector`1[System.String]>
 ;* V21 loc18        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <Microsoft.FSharp.Core.CompilerServices.ListCollector`1[System.String]>
 ;  V22 loc19        [V22,T06] (  8,  8   )     ref  ->  rbx         class-hnd <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
 ;* V23 loc20        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V24 loc21        [V24,T29] (  6,  6   )     ref  ->  rsi         class-hnd <System.String>
+;  V24 loc21        [V24,T27] (  6,  6   )     ref  ->  rsi         class-hnd <System.String>
 ;  V25 loc22        [V25    ] (  3,  0   )  struct (16) [rbp-0x60]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.FSharp.Core.FSharpValueOption`1[System.Exception]>
 ;  V26 OutArgs      [V26    ] (  1,  1   )  struct (1136) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V27 tmp1         [V27,T49] (  2,  4   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.AbstractIL.IL+PrimaryAssembly>
-;  V28 tmp2         [V28,T119] (  2,  4   )     int  ->  [rbp-0x64]  spill-single-def "impSpillStackEnsure"
-;  V29 tmp3         [V29,T50] (  2,  4   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
-;  V30 tmp4         [V30,T51] (  2,  4   )     ref  ->  r15         class-hnd exact single-def "impSpillStackEnsure" <System.String>
-;  V31 tmp5         [V31,T120] (  2,  4   )     int  ->  r13         "impSpillStackEnsure"
-;  V32 tmp6         [V32,T52] (  2,  4   )     ref  ->  r12         class-hnd exact single-def "impSpillStackEnsure" <System.String>
-;  V33 tmp7         [V33,T121] (  2,  4   )     int  ->  [rbp-0x68]  spill-single-def "impSpillStackEnsure"
-;  V34 tmp8         [V34,T122] (  2,  4   )     int  ->  [rbp-0x6C]  spill-single-def "impSpillStackEnsure"
-;  V35 tmp9         [V35,T53] (  2,  4   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V36 tmp10        [V36,T54] (  2,  4   )     ref  ->  [rbp-0x210]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V37 tmp11        [V37,T123] (  2,  4   )     int  ->  [rbp-0x70]  spill-single-def "impSpillStackEnsure"
-;  V38 tmp12        [V38,T124] (  2,  4   )     int  ->  [rbp-0x74]  spill-single-def "impSpillStackEnsure"
-;  V39 tmp13        [V39,T55] (  2,  4   )     ref  ->  rbx         class-hnd single-def "impSpillStackEnsure" <FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment>
-;  V40 tmp14        [V40,T125] (  2,  4   )     int  ->  r14         "impSpillStackEnsure"
-;  V41 tmp15        [V41,T56] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[ubyte]>
-;  V42 tmp16        [V42,T57] (  2,  4   )     ref  ->  [rbp-0x218]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V43 tmp17        [V43,T58] (  2,  4   )     ref  ->  [rbp-0x220]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[FSharp.Compiler.Text.Range,System.String,System.String]]>
-;  V44 tmp18        [V44,T59] (  2,  4   )     ref  ->  [rbp-0x228]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V45 tmp19        [V45,T60] (  2,  4   )     ref  ->  [rbp-0x230]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference]>
-;  V46 tmp20        [V46,T61] (  2,  4   )     ref  ->  [rbp-0x238]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpMap`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+PackageManagerLine]]>
-;  V47 tmp21        [V47,T62] (  2,  4   )     ref  ->  [rbp-0x240]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+IProjectReference]>
-;  V48 tmp22        [V48,T63] (  2,  4   )     ref  ->  [rbp-0x248]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]>
-;  V49 tmp23        [V49,T64] (  2,  4   )     ref  ->  [rbp-0x250]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag>
-;  V50 tmp24        [V50,T65] (  2,  4   )     ref  ->  [rbp-0x258]  class-hnd spill-single-def "impSpillStackEnsure" <System.Tuple`2[int,int]>
-;  V51 tmp25        [V51,T126] (  2,  4   )     int  ->  [rbp-0x78]  spill-single-def "impSpillStackEnsure"
-;  V52 tmp26        [V52,T66] (  2,  4   )     ref  ->  [rbp-0x260]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
-;  V53 tmp27        [V53,T127] (  2,  4   )     int  ->  [rbp-0x7C]  spill-single-def "impSpillStackEnsure"
-;  V54 tmp28        [V54,T67] (  2,  4   )     ref  ->  [rbp-0x268]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V55 tmp29        [V55,T68] (  2,  4   )     ref  ->  [rbp-0x270]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.Diagnostics.FSharpDiagnosticOptions>
-;  V56 tmp30        [V56,T128] (  2,  4   )     int  ->  [rbp-0x80]  spill-single-def "impSpillStackEnsure"
-;  V57 tmp31        [V57,T129] (  2,  4   )     int  ->  [rbp-0x84]  spill-single-def "impSpillStackEnsure"
-;  V58 tmp32        [V58,T130] (  2,  4   )     int  ->  [rbp-0x88]  spill-single-def "impSpillStackEnsure"
-;  V59 tmp33        [V59,T69] (  2,  4   )     ref  ->  [rbp-0x278]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V60 tmp34        [V60,T70] (  2,  4   )     ref  ->  [rbp-0x280]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V61 tmp35        [V61,T71] (  2,  4   )     ref  ->  [rbp-0x288]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILPlatform]>
-;  V62 tmp36        [V62,T131] (  2,  4   )     int  ->  [rbp-0x8C]  spill-single-def "impSpillStackEnsure"
-;  V63 tmp37        [V63,T132] (  2,  4   )     int  ->  [rbp-0x90]  spill-single-def "impSpillStackEnsure"
-;  V64 tmp38        [V64,T72] (  2,  4   )     ref  ->  [rbp-0x290]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+CompilerTarget>
-;  V65 tmp39        [V65,T133] (  2,  4   )     int  ->  [rbp-0x94]  spill-single-def "impSpillStackEnsure"
-;  V66 tmp40        [V66,T134] (  2,  4   )     int  ->  [rbp-0x98]  spill-single-def "impSpillStackEnsure"
-;  V67 tmp41        [V67,T135] (  2,  4   )     int  ->  [rbp-0x9C]  spill-single-def "impSpillStackEnsure"
-;  V68 tmp42        [V68,T73] (  2,  4   )     ref  ->  [rbp-0x298]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V69 tmp43        [V69,T136] (  2,  4   )     int  ->  [rbp-0xA0]  spill-single-def "impSpillStackEnsure"
-;  V70 tmp44        [V70,T137] (  2,  4   )     int  ->  [rbp-0xA4]  spill-single-def "impSpillStackEnsure"
-;  V71 tmp45        [V71,T138] (  2,  4   )     int  ->  [rbp-0xA8]  spill-single-def "impSpillStackEnsure"
-;  V72 tmp46        [V72,T74] (  2,  4   )     ref  ->  [rbp-0x2A0]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V73 tmp47        [V73,T139] (  2,  4   )     int  ->  [rbp-0xAC]  spill-single-def "impSpillStackEnsure"
-;  V74 tmp48        [V74,T75] (  2,  4   )     ref  ->  [rbp-0x2A8]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+TokenizeOption>
-;  V75 tmp49        [V75,T140] (  2,  4   )     int  ->  [rbp-0xB0]  spill-single-def "impSpillStackEnsure"
-;  V76 tmp50        [V76,T141] (  2,  4   )     int  ->  [rbp-0xB4]  spill-single-def "impSpillStackEnsure"
-;  V77 tmp51        [V77,T142] (  2,  4   )     int  ->  [rbp-0xB8]  spill-single-def "impSpillStackEnsure"
-;  V78 tmp52        [V78,T76] (  2,  4   )     ref  ->  [rbp-0x2B0]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
-;  V79 tmp53        [V79,T143] (  2,  4   )     int  ->  [rbp-0xBC]  spill-single-def "impSpillStackEnsure"
-;  V80 tmp54        [V80,T77] (  2,  4   )     ref  ->  [rbp-0x2B8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V81 tmp55        [V81,T144] (  2,  4   )     int  ->  [rbp-0xC0]  spill-single-def "impSpillStackEnsure"
-;  V82 tmp56        [V82,T145] (  2,  4   )     int  ->  [rbp-0xC4]  spill-single-def "impSpillStackEnsure"
-;  V83 tmp57        [V83,T78] (  2,  4   )     ref  ->  [rbp-0x2C0]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V84 tmp58        [V84,T79] (  2,  4   )     ref  ->  [rbp-0x2C8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V85 tmp59        [V85,T146] (  2,  4   )     int  ->  [rbp-0xC8]  spill-single-def "impSpillStackEnsure"
-;  V86 tmp60        [V86,T147] (  2,  4   )     int  ->  [rbp-0xCC]  spill-single-def "impSpillStackEnsure"
-;  V87 tmp61        [V87,T80] (  2,  4   )     ref  ->  [rbp-0x2D0]  class-hnd spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+VersionFlag>
-;  V88 tmp62        [V88,T81] (  2,  4   )     ref  ->  [rbp-0x2D8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V89 tmp63        [V89,T148] (  2,  4   )     int  ->  [rbp-0xD0]  spill-single-def "impSpillStackEnsure"
-;  V90 tmp64        [V90,T82] (  2,  4   )     ref  ->  [rbp-0x2E0]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V91 tmp65        [V91,T149] (  2,  4   )     int  ->  [rbp-0xD4]  spill-single-def "impSpillStackEnsure"
-;  V92 tmp66        [V92,T150] (  2,  4   )     int  ->  [rbp-0xD8]  spill-single-def "impSpillStackEnsure"
-;  V93 tmp67        [V93,T151] (  2,  4   )     int  ->  [rbp-0xDC]  spill-single-def "impSpillStackEnsure"
-;  V94 tmp68        [V94,T152] (  2,  4   )     int  ->  [rbp-0xE0]  spill-single-def "impSpillStackEnsure"
-;  V95 tmp69        [V95,T153] (  2,  4   )     int  ->  [rbp-0xE4]  spill-single-def "impSpillStackEnsure"
-;  V96 tmp70        [V96,T154] (  2,  4   )     int  ->  [rbp-0xE8]  spill-single-def "impSpillStackEnsure"
-;  V97 tmp71        [V97,T155] (  2,  4   )     int  ->  [rbp-0xEC]  spill-single-def "impSpillStackEnsure"
-;  V98 tmp72        [V98,T156] (  2,  4   )     int  ->  [rbp-0xF0]  spill-single-def "impSpillStackEnsure"
-;  V99 tmp73        [V99,T83] (  2,  4   )     ref  ->  [rbp-0x2E8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V100 tmp74       [V100,T84] (  2,  4   )     ref  ->  [rbp-0x2F0]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
-;  V101 tmp75       [V101,T157] (  2,  4   )     int  ->  [rbp-0xF4]  spill-single-def "impSpillStackEnsure"
-;  V102 tmp76       [V102,T158] (  2,  4   )     int  ->  [rbp-0xF8]  spill-single-def "impSpillStackEnsure"
-;  V103 tmp77       [V103,T85] (  2,  4   )     ref  ->  [rbp-0x2F8]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
-;  V104 tmp78       [V104,T86] (  2,  4   )     ref  ->  [rbp-0x300]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
-;  V105 tmp79       [V105,T87] (  2,  4   )     ref  ->  [rbp-0x308]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
-;  V106 tmp80       [V106,T159] (  2,  4   )     int  ->  [rbp-0xFC]  spill-single-def "impSpillStackEnsure"
-;  V107 tmp81       [V107,T88] (  2,  4   )     ref  ->  [rbp-0x310]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
-;  V108 tmp82       [V108,T89] (  2,  4   )     ref  ->  [rbp-0x318]  class-hnd spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver>
-;  V109 tmp83       [V109,T160] (  2,  4   )     int  ->  [rbp-0x100]  spill-single-def "impSpillStackEnsure"
-;  V110 tmp84       [V110,T90] (  2,  4   )     ref  ->  [rbp-0x320]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.DiagnosticsLogger+DiagnosticStyle>
-;  V111 tmp85       [V111,T161] (  2,  4   )     int  ->  [rbp-0x104]  spill-single-def "impSpillStackEnsure"
-;  V112 tmp86       [V112,T162] (  2,  4   )     int  ->  [rbp-0x108]  spill-single-def "impSpillStackEnsure"
-;  V113 tmp87       [V113,T163] (  2,  4   )     int  ->  [rbp-0x10C]  spill-single-def "impSpillStackEnsure"
-;  V114 tmp88       [V114,T164] (  2,  4   )     int  ->  [rbp-0x110]  spill-single-def "impSpillStackEnsure"
-;  V115 tmp89       [V115,T91] (  2,  4   )     ref  ->  [rbp-0x328]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
-;  V116 tmp90       [V116,T92] (  2,  4   )     ref  ->  [rbp-0x330]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.AbstractIL.ILPdbWriter+HashAlgorithm>
-;  V117 tmp91       [V117,T165] (  2,  4   )     int  ->  [rbp-0x114]  spill-single-def "impSpillStackEnsure"
-;  V118 tmp92       [V118,T166] (  2,  4   )     int  ->  [rbp-0x118]  spill-single-def "impSpillStackEnsure"
-;  V119 tmp93       [V119,T167] (  2,  4   )     int  ->  [rbp-0x11C]  spill-single-def "impSpillStackEnsure"
-;  V120 tmp94       [V120,T168] (  2,  4   )     int  ->  [rbp-0x120]  spill-single-def "impSpillStackEnsure"
-;  V121 tmp95       [V121,T169] (  2,  4   )     int  ->  [rbp-0x124]  spill-single-def "impSpillStackEnsure"
-;  V122 tmp96       [V122,T170] (  2,  4   )     int  ->  [rbp-0x128]  spill-single-def "impSpillStackEnsure"
-;  V123 tmp97       [V123,T93] (  2,  4   )     ref  ->  [rbp-0x338]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.Optimizer+OptimizationSettings>
-;  V124 tmp98       [V124,T171] (  2,  4   )     int  ->  [rbp-0x12C]  spill-single-def "impSpillStackEnsure"
-;  V125 tmp99       [V125,T172] (  2,  4   )     int  ->  [rbp-0x130]  spill-single-def "impSpillStackEnsure"
-;  V126 tmp100      [V126,T173] (  2,  4   )     int  ->  [rbp-0x134]  spill-single-def "impSpillStackEnsure"
-;  V127 tmp101      [V127,T174] (  2,  4   )     int  ->  [rbp-0x138]  spill-single-def "impSpillStackEnsure"
-;  V128 tmp102      [V128,T94] (  2,  4   )     ref  ->  [rbp-0x340]  class-hnd spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+MetadataAssemblyGeneration>
-;  V129 tmp103      [V129,T95] (  2,  4   )     ref  ->  [rbp-0x348]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V130 tmp104      [V130,T96] (  2,  4   )     ref  ->  [rbp-0x350]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
-;  V131 tmp105      [V131,T97] (  2,  4   )     ref  ->  [rbp-0x358]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
-;  V132 tmp106      [V132,T175] (  2,  4   )     int  ->  [rbp-0x13C]  spill-single-def "impSpillStackEnsure"
-;  V133 tmp107      [V133,T176] (  2,  4   )     int  ->  [rbp-0x140]  spill-single-def "impSpillStackEnsure"
-;  V134 tmp108      [V134,T98] (  2,  4   )     ref  ->  [rbp-0x360]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V135 tmp109      [V135,T177] (  2,  4   )     int  ->  [rbp-0x144]  spill-single-def "impSpillStackEnsure"
-;  V136 tmp110      [V136,T178] (  2,  4   )     int  ->  [rbp-0x148]  spill-single-def "impSpillStackEnsure"
-;  V137 tmp111      [V137,T179] (  2,  4   )     int  ->  [rbp-0x14C]  spill-single-def "impSpillStackEnsure"
-;  V138 tmp112      [V138,T180] (  2,  4   )     int  ->  [rbp-0x150]  spill-single-def "impSpillStackEnsure"
-;  V139 tmp113      [V139,T181] (  2,  4   )     int  ->  [rbp-0x154]  spill-single-def "impSpillStackEnsure"
-;  V140 tmp114      [V140,T182] (  2,  4   )     int  ->  [rbp-0x158]  spill-single-def "impSpillStackEnsure"
-;  V141 tmp115      [V141,T183] (  2,  4   )     int  ->  [rbp-0x15C]  spill-single-def "impSpillStackEnsure"
-;  V142 tmp116      [V142,T184] (  2,  4   )     int  ->  [rbp-0x160]  spill-single-def "impSpillStackEnsure"
-;  V143 tmp117      [V143,T185] (  2,  4   )     int  ->  [rbp-0x164]  spill-single-def "impSpillStackEnsure"
-;  V144 tmp118      [V144,T99] (  2,  4   )     ref  ->  [rbp-0x368]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[ubyte]>
-;  V145 tmp119      [V145,T100] (  2,  4   )     ref  ->  [rbp-0x370]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
-;  V146 tmp120      [V146,T101] (  2,  4   )     ref  ->  [rbp-0x378]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+CopyFSharpCoreFlag>
-;  V147 tmp121      [V147,T186] (  2,  4   )     int  ->  [rbp-0x168]  spill-single-def "impSpillStackEnsure"
-;  V148 tmp122      [V148,T187] (  2,  4   )     int  ->  [rbp-0x16C]  spill-single-def "impSpillStackEnsure"
-;  V149 tmp123      [V149,T102] (  2,  4   )     ref  ->  [rbp-0x380]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.FxResolver]>
-;  V150 tmp124      [V150,T103] (  2,  4   )     ref  ->  [rbp-0x388]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
-;  V151 tmp125      [V151,T188] (  2,  4   )     int  ->  [rbp-0x170]  spill-single-def "impSpillStackEnsure"
+;  V27 tmp1         [V27,T47] (  2,  4   )     ref  ->  [rbp-0x228]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.AbstractIL.IL+PrimaryAssembly>
+;  V28 tmp2         [V28,T117] (  2,  4   )     int  ->  [rbp-0x64]  spill-single-def "impSpillStackEnsure"
+;  V29 tmp3         [V29,T48] (  2,  4   )     ref  ->  [rbp-0x230]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
+;  V30 tmp4         [V30,T49] (  2,  4   )     ref  ->  r15         class-hnd exact single-def "impSpillStackEnsure" <System.String>
+;  V31 tmp5         [V31,T118] (  2,  4   )     int  ->  r13         "impSpillStackEnsure"
+;  V32 tmp6         [V32,T50] (  2,  4   )     ref  ->  r12         class-hnd exact single-def "impSpillStackEnsure" <System.String>
+;  V33 tmp7         [V33,T119] (  2,  4   )     int  ->  [rbp-0x68]  spill-single-def "impSpillStackEnsure"
+;  V34 tmp8         [V34,T120] (  2,  4   )     int  ->  [rbp-0x6C]  spill-single-def "impSpillStackEnsure"
+;  V35 tmp9         [V35,T51] (  2,  4   )     ref  ->  [rbp-0x238]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V36 tmp10        [V36,T52] (  2,  4   )     ref  ->  [rbp-0x240]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V37 tmp11        [V37,T121] (  2,  4   )     int  ->  [rbp-0x70]  spill-single-def "impSpillStackEnsure"
+;  V38 tmp12        [V38,T122] (  2,  4   )     int  ->  [rbp-0x74]  spill-single-def "impSpillStackEnsure"
+;  V39 tmp13        [V39,T53] (  2,  4   )     ref  ->  rbx         class-hnd single-def "impSpillStackEnsure" <FSharp.Compiler.CodeAnalysis.LegacyResolutionEnvironment>
+;  V40 tmp14        [V40,T123] (  2,  4   )     int  ->  r14         "impSpillStackEnsure"
+;  V41 tmp15        [V41,T54] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[ubyte]>
+;  V42 tmp16        [V42,T55] (  2,  4   )     ref  ->  [rbp-0x248]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V43 tmp17        [V43,T56] (  2,  4   )     ref  ->  [rbp-0x250]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[FSharp.Compiler.Text.Range,System.String,System.String]]>
+;  V44 tmp18        [V44,T57] (  2,  4   )     ref  ->  [rbp-0x258]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V45 tmp19        [V45,T58] (  2,  4   )     ref  ->  [rbp-0x260]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference]>
+;  V46 tmp20        [V46,T59] (  2,  4   )     ref  ->  [rbp-0x268]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpMap`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+PackageManagerLine]]>
+;  V47 tmp21        [V47,T60] (  2,  4   )     ref  ->  [rbp-0x270]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+IProjectReference]>
+;  V48 tmp22        [V48,T61] (  2,  4   )     ref  ->  [rbp-0x278]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]>
+;  V49 tmp23        [V49,T62] (  2,  4   )     ref  ->  [rbp-0x280]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag>
+;  V50 tmp24        [V50,T63] (  2,  4   )     ref  ->  [rbp-0x288]  class-hnd spill-single-def "impSpillStackEnsure" <System.Tuple`2[int,int]>
+;  V51 tmp25        [V51,T124] (  2,  4   )     int  ->  [rbp-0x78]  spill-single-def "impSpillStackEnsure"
+;  V52 tmp26        [V52,T64] (  2,  4   )     ref  ->  [rbp-0x290]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[int]>
+;  V53 tmp27        [V53,T125] (  2,  4   )     int  ->  [rbp-0x7C]  spill-single-def "impSpillStackEnsure"
+;  V54 tmp28        [V54,T65] (  2,  4   )     ref  ->  [rbp-0x298]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V55 tmp29        [V55,T66] (  2,  4   )     ref  ->  [rbp-0x2A0]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.Diagnostics.FSharpDiagnosticOptions>
+;  V56 tmp30        [V56,T126] (  2,  4   )     int  ->  [rbp-0x80]  spill-single-def "impSpillStackEnsure"
+;  V57 tmp31        [V57,T127] (  2,  4   )     int  ->  [rbp-0x84]  spill-single-def "impSpillStackEnsure"
+;  V58 tmp32        [V58,T128] (  2,  4   )     int  ->  [rbp-0x88]  spill-single-def "impSpillStackEnsure"
+;  V59 tmp33        [V59,T67] (  2,  4   )     ref  ->  [rbp-0x2A8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V60 tmp34        [V60,T68] (  2,  4   )     ref  ->  [rbp-0x2B0]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V61 tmp35        [V61,T69] (  2,  4   )     ref  ->  [rbp-0x2B8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILPlatform]>
+;  V62 tmp36        [V62,T129] (  2,  4   )     int  ->  [rbp-0x8C]  spill-single-def "impSpillStackEnsure"
+;  V63 tmp37        [V63,T130] (  2,  4   )     int  ->  [rbp-0x90]  spill-single-def "impSpillStackEnsure"
+;  V64 tmp38        [V64,T70] (  2,  4   )     ref  ->  [rbp-0x2C0]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+CompilerTarget>
+;  V65 tmp39        [V65,T131] (  2,  4   )     int  ->  [rbp-0x94]  spill-single-def "impSpillStackEnsure"
+;  V66 tmp40        [V66,T132] (  2,  4   )     int  ->  [rbp-0x98]  spill-single-def "impSpillStackEnsure"
+;  V67 tmp41        [V67,T133] (  2,  4   )     int  ->  [rbp-0x9C]  spill-single-def "impSpillStackEnsure"
+;  V68 tmp42        [V68,T71] (  2,  4   )     ref  ->  [rbp-0x2C8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V69 tmp43        [V69,T134] (  2,  4   )     int  ->  [rbp-0xA0]  spill-single-def "impSpillStackEnsure"
+;  V70 tmp44        [V70,T135] (  2,  4   )     int  ->  [rbp-0xA4]  spill-single-def "impSpillStackEnsure"
+;  V71 tmp45        [V71,T136] (  2,  4   )     int  ->  [rbp-0xA8]  spill-single-def "impSpillStackEnsure"
+;  V72 tmp46        [V72,T72] (  2,  4   )     ref  ->  [rbp-0x2D0]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V73 tmp47        [V73,T137] (  2,  4   )     int  ->  [rbp-0xAC]  spill-single-def "impSpillStackEnsure"
+;  V74 tmp48        [V74,T73] (  2,  4   )     ref  ->  [rbp-0x2D8]  class-hnd exact spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+TokenizeOption>
+;  V75 tmp49        [V75,T138] (  2,  4   )     int  ->  [rbp-0xB0]  spill-single-def "impSpillStackEnsure"
+;  V76 tmp50        [V76,T139] (  2,  4   )     int  ->  [rbp-0xB4]  spill-single-def "impSpillStackEnsure"
+;  V77 tmp51        [V77,T140] (  2,  4   )     int  ->  [rbp-0xB8]  spill-single-def "impSpillStackEnsure"
+;  V78 tmp52        [V78,T74] (  2,  4   )     ref  ->  [rbp-0x2E0]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
+;  V79 tmp53        [V79,T141] (  2,  4   )     int  ->  [rbp-0xBC]  spill-single-def "impSpillStackEnsure"
+;  V80 tmp54        [V80,T75] (  2,  4   )     ref  ->  [rbp-0x2E8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V81 tmp55        [V81,T142] (  2,  4   )     int  ->  [rbp-0xC0]  spill-single-def "impSpillStackEnsure"
+;  V82 tmp56        [V82,T143] (  2,  4   )     int  ->  [rbp-0xC4]  spill-single-def "impSpillStackEnsure"
+;  V83 tmp57        [V83,T76] (  2,  4   )     ref  ->  [rbp-0x2F0]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V84 tmp58        [V84,T77] (  2,  4   )     ref  ->  [rbp-0x2F8]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V85 tmp59        [V85,T144] (  2,  4   )     int  ->  [rbp-0xC8]  spill-single-def "impSpillStackEnsure"
+;  V86 tmp60        [V86,T145] (  2,  4   )     int  ->  [rbp-0xCC]  spill-single-def "impSpillStackEnsure"
+;  V87 tmp61        [V87,T78] (  2,  4   )     ref  ->  [rbp-0x300]  class-hnd spill-single-def "impSpillStackEnsure" <FSharp.Compiler.CompilerConfig+VersionFlag>
+;  V88 tmp62        [V88,T79] (  2,  4   )     ref  ->  [rbp-0x308]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Core.FSharpOption`1[System.String]>
+;  V89 tmp63        [V89,T146] (  2,  4   )     int  ->  [rbp-0xD0]  spill-single-def "impSpillStackEnsure"
+;  V90 tmp64        [V90,T80] (  2,  4   )     ref  ->  [rbp-0x310]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V91 tmp65        [V91,T147] (  2,  4   )     int  ->  [rbp-0xD4]  spill-single-def "impSpillStackEnsure"
+;  V92 tmp66        [V92,T148] (  2,  4   )     int  ->  [rbp-0xD8]  spill-single-def "impSpillStackEnsure"
+;  V93 tmp67        [V93,T149] (  2,  4   )     int  ->  [rbp-0xDC]  spill-single-def "impSpillStackEnsure"
+;  V94 tmp68        [V94,T150] (  2,  4   )     int  ->  [rbp-0xE0]  spill-single-def "impSpillStackEnsure"
+;  V95 tmp69        [V95,T151] (  2,  4   )     int  ->  [rbp-0xE4]  spill-single-def "impSpillStackEnsure"
+;  V96 tmp70        [V96,T152] (  2,  4   )     int  ->  [rbp-0xE8]  spill-single-def "impSpillStackEnsure"
+;  V97 tmp71        [V97,T153] (  2,  4   )     int  ->  [rbp-0xEC]  spill-single-def "impSpillStackEnsure"
+;  V98 tmp72        [V98,T154] (  2,  4   )     int  ->  [rbp-0xF0]  spill-single-def "impSpillStackEnsure"
+;  V99 tmp73        [V99,T81] (  2,  4   )     ref  ->  [rbp-0x318]  class-hnd exact spill-single-def "impSpillStackEnsure" <Microsoft.FSharp.Collections.FSharpList`1[System.String]>
+;  V100 tmp74       [V100,T82] (  2,  4   )     ref  ->  [rbp-0x320]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
+;  V101 tmp75       [V101,T155] (  2,  4   )     int  ->  [rbp-0xF4]  spill-single-def "impSpillStackEnsure"
+;  V102 tmp76       [V102,T156] (  2,  4   )     int  ->  [rbp-0xF8]  spill-single-def "impSpillStackEnsure"
+;  V103 tmp77       [V103,T83] (  2,  4   )     ref  ->  [rbp-0x328]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
+;  V104 tmp78       [V104,T84] (  2,  4   )     ref  ->  [rbp-0x330]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
+;  V105 tmp79       [V105,T85] (  2,  4   )     ref  ->  [rbp-0x338]  class-hnd exact spill-single-def "impSpillStackEnsure" <System.String>
...
+23 (+13.14%) : 2135.dasm - FSharp.Compiler.DependencyManager.NativeDllResolveHandler:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]):this (FullOpts)
@@ -15,7 +15,7 @@
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V06 tmp2         [V06    ] (  0,  0   )     ref  ->  zero-ref   
-;* V07 tmp3         [V07,T07] (  0,  0   )     ref  ->  zero-ref   
+;  V07 tmp3         [V07,T04] (  3,  2   )   byref  ->  rcx        
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V10 tmp6         [V10,T05] (  3,  2   )     ref  ->  rdx        
@@ -23,54 +23,60 @@
 ;  V12 tmp8         [V12,T02] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V15 tmp11        [V15,T03] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]>
-;  V16 tmp12        [V16,T04] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V15 tmp11        [V15    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]>
+;  V16 tmp12        [V16,T03] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp13        [V17    ] (  3,  1.50)  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
 G_M33216_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
+       xor      eax, eax
+       mov      qword ptr [rsp+0x20], rax
+       mov      qword ptr [rsp+0x28], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-						;; size=13 bbWeight=1 PerfScore 3.75
+						;; size=25 bbWeight=1 PerfScore 6.00
 G_M33216_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      byte  ptr [rsi], sil
        test     rbx, rbx
        je       SHORT G_M33216_IG05
 						;; size=8 bbWeight=1 PerfScore 4.25
-G_M33216_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M33216_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
        test     byte  ptr [(reloc)], 1      ; global ptr
-       je       SHORT G_M33216_IG09
-						;; size=13 bbWeight=0.50 PerfScore 3.00
+       je       G_M33216_IG12
+						;; size=17 bbWeight=0.50 PerfScore 3.00
 G_M33216_IG04:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      byte  ptr [(reloc)], 0      ; data for <unknown class>:<unknown field>
        jne      SHORT G_M33216_IG06
 						;; size=9 bbWeight=0.50 PerfScore 2.00
-G_M33216_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx rdi]
-       xor      rdx, rdx
-       ; gcrRegs +[rdx]
+G_M33216_IG05:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdi]
+       xor      rcx, rcx
+       ; gcrRegs +[rcx]
        jmp      SHORT G_M33216_IG07
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M33216_IG06:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx] +[rbx rdi]
+       ; gcrRegs -[rcx] +[rdi]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       lea      rcx, bword ptr [rax+0x08]
+       mov      qword ptr [rsp+0x20], rcx
+       mov      gword ptr [rsp+0x28], rdi
+       lea      rcx, [rsp+0x20]
+						;; size=25 bbWeight=0.50 PerfScore 1.38
+G_M33216_IG07:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {rcx}, byref, isz
+       ; gcrRegs -[rdi]
        ; byrRegs +[rcx]
-       mov      rdx, rdi
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx rdi]
+       test     rcx, rcx
+       je       SHORT G_M33216_IG09
+						;; size=5 bbWeight=1 PerfScore 1.25
+G_M33216_IG08:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -100,9 +106,14 @@ G_M33216_IG06:        ; bbWeight=0.50, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; byrRegs -[rcx]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
-						;; size=90 bbWeight=0.50 PerfScore 5.75
-G_M33216_IG07:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
+       jmp      SHORT G_M33216_IG10
+						;; size=65 bbWeight=0.50 PerfScore 5.25
+G_M33216_IG09:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rdx rbx]
+       xor      rdx, rdx
+       ; gcrRegs +[rdx]
+						;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M33216_IG10:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
        call     CORINFO_HELP_ASSIGN_REF
@@ -110,14 +121,14 @@ G_M33216_IG07:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {},
        ; byrRegs -[rcx]
        nop      
 						;; size=10 bbWeight=1 PerfScore 1.75
-G_M33216_IG08:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+G_M33216_IG11:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M33216_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+G_M33216_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx rsi rdi]
        mov      rcx, 0xD1FFAB1E      ; Internal.Utilities.FSharpEnvironment
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
@@ -125,7 +136,7 @@ G_M33216_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C8 {
        jmp      G_M33216_IG04
 						;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 175, prolog size 7, PerfScore 24.38, instruction count 45, allocated bytes for code 175 (MethodHash=03367e3f) for method FSharp.Compiler.DependencyManager.NativeDllResolveHandler:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]):this (FullOpts)
+; Total bytes of code 198, prolog size 19, PerfScore 28.88, instruction count 51, allocated bytes for code 198 (MethodHash=03367e3f) for method FSharp.Compiler.DependencyManager.NativeDllResolveHandler:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -138,7 +149,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     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)
smoke_tests.nativeaot.windows.x64.checked.mch
-27 (-4.33%) : 30184.dasm - System.Delegate:GetDiagnosticMethodInfo():System.Diagnostics.DiagnosticMethodInfo:this (FullOpts)
@@ -9,67 +9,69 @@
 ;
 ;  V00 this         [V00,T00] ( 10,  6.50)     ref  ->  rbx         this class-hnd single-def <System.Delegate>
 ;  V01 loc0         [V01,T07] (  4,  3   )     ref  ->  rax         class-hnd exact <<unknown class>>
-;  V02 loc1         [V02,T18] (  4,  2   )    long  ->  rsi        
-;  V03 loc2         [V03    ] (  2,  1   )   ubyte  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V02 loc1         [V02,T16] (  4,  2   )    long  ->  rsi        
+;  V03 loc2         [V03    ] (  2,  1   )   ubyte  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V04 loc3         [V04    ] (  0,  0   )     int  ->  zero-ref   
-;  V05 loc4         [V05,T14] (  5,  2.50)     ref  ->  rbx         class-hnd exact single-def <System.RuntimeType>
-;  V06 loc5         [V06    ] (  1,  0.50)  struct ( 8) [rsp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op <System.RuntimeTypeHandle>
-;  V07 loc6         [V07,T15] (  5,  2.50)     ref  ->  rbx         class-hnd single-def <System.Reflection.MethodInfo>
+;  V05 loc4         [V05,T12] (  5,  2.50)     ref  ->  rbx         class-hnd exact single-def <System.RuntimeType>
+;  V06 loc5         [V06    ] (  1,  0.50)  struct ( 8) [rsp+0x38]  do-not-enreg[XS] addr-exposed ld-addr-op <System.RuntimeTypeHandle>
+;  V07 loc6         [V07,T13] (  5,  2.50)     ref  ->  rbx         class-hnd single-def <System.Reflection.MethodInfo>
 ;  V08 loc7         [V08,T05] (  8,  4   )     ref  ->  rdi         class-hnd <<unknown class>>
-;  V09 loc8         [V09,T30] (  3,  1.50)    long  ->  rcx        
+;  V09 loc8         [V09,T29] (  3,  1.50)    long  ->  rcx        
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )    long  ->  zero-ref    "non-inline candidate call"
-;  V12 tmp2         [V12,T20] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <Internal.StackTraceMetadata.StackTraceMetadata+StackTraceMetadataCallbacksImpl>
+;  V12 tmp2         [V12,T18] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <Internal.StackTraceMetadata.StackTraceMetadata+StackTraceMetadataCallbacksImpl>
 ;* V13 tmp3         [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V14 tmp4         [V14,T21] (  2,  2   )     ref  ->  rbp         class-hnd exact single-def "non-inline candidate call" <System.String>
-;  V15 tmp5         [V15,T22] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V14 tmp4         [V14,T19] (  2,  2   )     ref  ->  rbp         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V15 tmp5         [V15,T20] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "non-inline candidate call" <System.String>
 ;  V16 tmp6         [V16,T02] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.DiagnosticMethodInfo>
-;  V17 tmp7         [V17,T23] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V17 tmp7         [V17,T21] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.String>
 ;  V18 tmp8         [V18,T03] (  5,  5   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Diagnostics.DiagnosticMethodInfo>
 ;* V19 tmp9         [V19    ] (  0,  0   )     ref  ->  zero-ref    "guarded devirt return temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Internal.StackTraceMetadata.StackTraceMetadata+StackTraceMetadataCallbacksImpl>
-;  V21 tmp11        [V21,T16] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo>
-;  V22 tmp12        [V22,T31] (  3,  1.50)    long  ->  rcx         "Inline stloc first use temp"
-;  V23 tmp13        [V23,T28] (  3,  1.50)     ref  ->  rcx         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V21 tmp11        [V21,T14] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo>
+;  V22 tmp12        [V22,T30] (  3,  1.50)    long  ->  rcx         "Inline stloc first use temp"
+;  V23 tmp13        [V23,T26] (  3,  1.50)     ref  ->  rcx         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V24 tmp14        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo>
-;  V25 tmp15        [V25,T17] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo>
-;  V26 tmp16        [V26,T32] (  3,  1.50)    long  ->  rcx         "Inline stloc first use temp"
-;  V27 tmp17        [V27,T29] (  3,  1.50)     ref  ->  rcx         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V25 tmp15        [V25,T15] (  4,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo>
+;  V26 tmp16        [V26,T31] (  3,  1.50)    long  ->  rcx         "Inline stloc first use temp"
+;  V27 tmp17        [V27,T27] (  3,  1.50)     ref  ->  rcx         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V28 tmp18        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo>
-;  V29 tmp19        [V29,T08] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly>
-;  V30 tmp20        [V30,T09] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Runtime.Modules.NativeFormat.NativeFormatRuntimeModule>
+;  V29 tmp19        [V29,T08] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly>
+;* V30 tmp20        [V30    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Reflection.Runtime.Modules.NativeFormat.NativeFormatRuntimeModule>
 ;* V31 tmp21        [V31,T33] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V32 tmp22        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;  V33 tmp23        [V33,T24] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V33 tmp23        [V33,T22] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V34 tmp24        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;  V35 tmp25        [V35,T10] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "dup spill" <System.Reflection.Runtime.General.ReflectionCoreCallbacksImplementation>
+;  V35 tmp25        [V35,T09] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "dup spill" <System.Reflection.Runtime.General.ReflectionCoreCallbacksImplementation>
 ;* V36 tmp26        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp27        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Internal.Reflection.Execution.ExecutionEnvironmentImplementation>
-;  V39 tmp29        [V39,T25] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.Modules.NativeFormat.NativeFormatRuntimeModule>
+;  V39 tmp29        [V39,T23] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Reflection.Runtime.Modules.NativeFormat.NativeFormatRuntimeModule>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V41 tmp31        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;  V42 tmp32        [V42,T26] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V42 tmp32        [V42,T24] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V43 tmp33        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V44 tmp34        [V44    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V45 tmp35        [V45,T04] (  5,  5   )     ref  ->  rax         "Single return block return value"
-;  V46 tmp36        [V46    ] (  1,  0.50)    long  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
-;  V47 tmp37        [V47,T11] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V48 tmp38        [V48,T12] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V49 tmp39        [V49,T13] (  3,  3   )     int  ->  rcx         "index expr"
-;  V50 cse0         [V50,T19] (  4,  2   )    long  ->  rsi         "CSE #02: moderate"
-;  V51 rat0         [V51,T06] (  2,  4   )     ref  ->  rax         "Spilling to split statement for tree"
-;  V52 rat1         [V52,T01] (  5,  7.50)     ref  ->  rax         "replacement local"
-;  V53 rat2         [V53,T27] (  2,  2   )    long  ->  rcx         "CSE for expectedClsNode"
+;  V45 tmp35        [V45,T32] (  2,  1   )  struct (16) [rsp+0x28]  do-not-enreg[SF] must-init "stack allocated ref class temp" <System.Reflection.Runtime.Modules.NativeFormat.NativeFormatRuntimeModule>
+;  V46 tmp36        [V46,T04] (  5,  5   )     ref  ->  rax         "Single return block return value"
+;  V47 tmp37        [V47    ] (  1,  0.50)    long  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V06._value (fldOffset=0x0)" P-DEP
+;* V48 tmp38        [V48    ] (  0,  0   )    long  ->  zero-ref    "V45.[000..008)"
+;  V49 tmp39        [V49,T10] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;  V50 tmp40        [V50,T11] (  3,  3   )     int  ->  rcx         "index expr"
+;  V51 cse0         [V51,T17] (  4,  2   )    long  ->  rsi         "CSE #03: moderate"
+;  V52 cse1         [V52,T28] (  3,  1.50)     ref  ->  rcx         "CSE #01: moderate"
+;  V53 rat0         [V53,T06] (  2,  4   )     ref  ->  rax         "Spilling to split statement for tree"
+;  V54 rat1         [V54,T01] (  5,  7.50)     ref  ->  rax         "replacement local"
+;  V55 rat2         [V55,T25] (  2,  2   )    long  ->  rcx         "CSE for expectedClsNode"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 72
 
 G_M21556_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 56
+       sub      rsp, 72
        mov      rbx, rcx
        ; gcrRegs +[rbx]
 						;; size=11 bbWeight=1 PerfScore 4.50
@@ -105,15 +107,15 @@ G_M21556_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        cmp      rsi, rax
        je       G_M21556_IG14
-       lea      r8, [rsp+0x30]
-       lea      rdx, [rsp+0x28]
+       lea      r8, [rsp+0x40]
+       lea      rdx, [rsp+0x38]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     System.Delegate:GetDelegateLdFtnResult(byref,byref):long:this
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      rsi, rax
-       cmp      byte  ptr [rsp+0x30], 0
+       cmp      byte  ptr [rsp+0x40], 0
        jne      SHORT G_M21556_IG11
        mov      rcx, rsi
        call     Internal.Runtime.CompilerServices.FunctionPointerOps:IsGenericMethodPointer(long):ubyte
@@ -146,7 +148,7 @@ G_M21556_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rax]
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M21556_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
@@ -347,33 +349,19 @@ G_M21556_IG20:        ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000
        call     [rax+0x98]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       cmp      byte  ptr [rbx], bl
-       mov      rcx, (reloc)
-       call     CORINFO_HELP_NEWSFAST
-       ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       lea      rcx, bword ptr [rdi+0x08]
-       ; byrRegs +[rcx]
-       mov      rdx, rbx
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx rbx]
-       ; byrRegs -[rcx]
+       cmp      byte  ptr [rax], al
+       mov      gword ptr [rsp+0x30], rax
        lea      rcx, [(reloc)]      ; System.Diagnostics.DiagnosticMethodInfo
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
-       mov      rcx, gword ptr [rdi+0x08]
+       mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
        ; gcrRegs -[rax]
        call     [rax+0x38]<unknown method>
-       ; gcrRegs -[rcx rdi] +[rax]
+       ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -398,7 +386,7 @@ G_M21556_IG20:        ; bbWeight=0.50, gcrefRegs=0041 {rax rsi}, byrefRegs=0000
        mov      rax, rbx
        ; gcrRegs +[rax]
        jmp      SHORT G_M21556_IG22
-						;; size=115 bbWeight=0.50 PerfScore 14.00
+						;; size=88 bbWeight=0.50 PerfScore 12.25
 G_M21556_IG21:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
        mov      ecx, dword ptr [rbx+0x18]
        dec      ecx
@@ -415,7 +403,7 @@ G_M21556_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M21556_IG23:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
@@ -429,7 +417,7 @@ G_M21556_IG24:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 623, prolog size 8, PerfScore 95.56, instruction count 179, allocated bytes for code 623 (MethodHash=4fb5abcb) for method System.Delegate:GetDiagnosticMethodInfo():System.Diagnostics.DiagnosticMethodInfo:this (FullOpts)
+; Total bytes of code 596, prolog size 8, PerfScore 93.81, instruction count 173, allocated bytes for code 596 (MethodHash=4fb5abcb) for method System.Delegate:GetDiagnosticMethodInfo():System.Diagnostics.DiagnosticMethodInfo:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -442,7 +430,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+0 (0.00%) : 8617.dasm - Generics+TestReflectionInvoke:Run() (FullOpts)
@@ -40,10 +40,10 @@
 ;  V30 tmp16        [V30,T45] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;  V31 tmp17        [V31,T157] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <System.Object>
 ;  V32 tmp18        [V32,T35] (  4,  6.50)     ref  ->  rbx         single-def "inline UNBOX clone1"
-;* V33 tmp19        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
-;* V34 tmp20        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
-;* V35 tmp21        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
-;* V36 tmp22        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V33 tmp19        [V33    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V34 tmp20        [V34    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V35 tmp21        [V35    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V36 tmp22        [V36    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
 ;  V37 tmp23        [V37,T142] (  4,  5   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
 ;  V38 tmp24        [V38,T127] (  5,  5.20)    long  ->  rax         "VirtualCall through function pointer"
 ;* V39 tmp25        [V39    ] (  0,  0   )     ref  ->  zero-ref    "calli"
@@ -56,10 +56,10 @@
 ;  V46 tmp32        [V46,T145] (  4,  5   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
 ;  V47 tmp33        [V47,T130] (  5,  5.20)    long  ->  rax         "VirtualCall through function pointer"
 ;* V48 tmp34        [V48    ] (  0,  0   )     ref  ->  zero-ref    "calli"
-;* V49 tmp35        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
-;* V50 tmp36        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
-;* V51 tmp37        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
-;* V52 tmp38        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V49 tmp35        [V49    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V50 tmp36        [V50    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V51 tmp37        [V51    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V52 tmp38        [V52    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
 ;  V53 tmp39        [V53,T146] (  4,  5   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
 ;  V54 tmp40        [V54,T131] (  5,  5.20)    long  ->  rax         "VirtualCall through function pointer"
 ;* V55 tmp41        [V55    ] (  0,  0   )     ref  ->  zero-ref    "calli"
@@ -73,10 +73,10 @@
 ;  V63 tmp49        [V63,T134] (  5,  5.20)    long  ->  rax         "VirtualCall through function pointer"
 ;* V64 tmp50        [V64    ] (  0,  0   )     ref  ->  zero-ref    "calli"
 ;* V65 tmp51        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
-;* V66 tmp52        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
-;* V67 tmp53        [V67    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
-;* V68 tmp54        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
-;* V69 tmp55        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V66 tmp52        [V66    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V67 tmp53        [V67    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V68 tmp54        [V68    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V69 tmp55        [V69    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
 ;  V70 tmp56        [V70,T150] (  4,  5   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
 ;  V71 tmp57        [V71,T135] (  5,  5.20)    long  ->  rax         "VirtualCall through function pointer"
 ;* V72 tmp58        [V72    ] (  0,  0   )     ref  ->  zero-ref    "calli"
@@ -203,7 +203,7 @@
 ;  V193 tmp179      [V193,T28] (  4,  8   )     ref  ->  rax         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V194 tmp180      [V194,T199] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
 ;  V195 tmp181      [V195,T29] (  4,  8   )     ref  ->  rax         class-hnd exact single-def "dup spill" <<unknown class>>
-;* V196 tmp182      [V196    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[int]>
+;* V196 tmp182      [V196    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[int]>
 ;  V197 tmp183      [V197,T200] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[int]>
 ;  V198 tmp184      [V198,T85] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V199 tmp185      [V199,T86] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
@@ -213,7 +213,7 @@
 ;  V203 tmp189      [V203,T202] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+DerivedClass2`1[int]>
 ;  V204 tmp190      [V204,T89] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V205 tmp191      [V205,T90] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;* V206 tmp192      [V206    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[float]>
+;* V206 tmp192      [V206    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[float]>
 ;  V207 tmp193      [V207,T203] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Generics+TestReflectionInvoke+BaseClass`1[float]>
 ;  V208 tmp194      [V208,T91] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V209 tmp195      [V209,T92] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
@@ -265,63 +265,77 @@
 ;  V255 tmp241      [V255,T124] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Reflection.TypeInfo>
 ;  V256 tmp242      [V256,T125] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Reflection.TypeInfo>
 ;  V257 tmp243      [V257,T126] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Reflection.TypeInfo>
-;* V258 tmp244      [V258    ] (  0,  0   )     int  ->  zero-ref    "field V01.Value (fldOffset=0x0)" P-INDEP
-;* V259 tmp245      [V259    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02.Value (fldOffset=0x0)" P-INDEP
-;  V260 tmp246      [V260,T212] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V261 tmp247      [V261,T213] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V262 tmp248      [V262,T214] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V263 tmp249      [V263,T215] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V264 tmp250      [V264,T216] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V265 tmp251      [V265,T217] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V266 tmp252      [V266,T218] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V267 tmp253      [V267,T219] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V268 tmp254      [V268,T220] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V269 tmp255      [V269,T221] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V270 tmp256      [V270,T222] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V271 tmp257      [V271,T223] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V272 tmp258      [V272,T224] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V273 tmp259      [V273,T225] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V274 tmp260      [V274,T226] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V275 tmp261      [V275,T227] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V276 tmp262      [V276,T228] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V277 tmp263      [V277,T229] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V278 tmp264      [V278,T230] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V279 tmp265      [V279,T231] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V280 tmp266      [V280,T232] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V281 tmp267      [V281,T233] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V282 tmp268      [V282,T234] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V283 tmp269      [V283,T235] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V284 tmp270      [V284,T236] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V285 tmp271      [V285,T237] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V286 tmp272      [V286,T238] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V287 tmp273      [V287,T239] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V288 tmp274      [V288,T240] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V289 tmp275      [V289,T241] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V290 tmp276      [V290,T242] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V291 tmp277      [V291,T243] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V292 tmp278      [V292,T244] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V293 tmp279      [V293,T245] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V294 tmp280      [V294,T246] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V295 tmp281      [V295,T247] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V296 tmp282      [V296,T248] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V297 tmp283      [V297,T249] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V298 tmp284      [V298,T250] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V299 tmp285      [V299,T251] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V300 tmp286      [V300,T252] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V301 tmp287      [V301,T253] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V302 tmp288      [V302,T254] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V303 tmp289      [V303,T255] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V304 tmp290      [V304,T256] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V305 tmp291      [V305,T257] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V306 tmp292      [V306,T258] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V307 tmp293      [V307,T259] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V308 tmp294      [V308,T260] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V309 tmp295      [V309,T261] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V310 tmp296      [V310,T262] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V311 tmp297      [V311,T263] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V312 tmp298      [V312,T264] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V313 tmp299      [V313,T265] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V314 tmp300      [V314,T266] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;* V258 tmp244      [V258    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V259 tmp245      [V259    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V260 tmp246      [V260    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V261 tmp247      [V261    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+BaseClass`1[System.String]>
+;* V262 tmp248      [V262    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V263 tmp249      [V263    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V264 tmp250      [V264    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V265 tmp251      [V265    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass1`1[System.String]>
+;* V266 tmp252      [V266    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V267 tmp253      [V267    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V268 tmp254      [V268    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V269 tmp255      [V269    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+DerivedClass2`1[System.String]>
+;* V270 tmp256      [V270    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+BaseClass`1[int]>
+;* V271 tmp257      [V271    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestReflectionInvoke+BaseClass`1[float]>
+;* V272 tmp258      [V272    ] (  0,  0   )     int  ->  zero-ref    "field V01.Value (fldOffset=0x0)" P-INDEP
+;* V273 tmp259      [V273    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02.Value (fldOffset=0x0)" P-INDEP
+;  V274 tmp260      [V274,T212] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
+;  V275 tmp261      [V275,T213] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
+;  V276 tmp262      [V276,T214] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V277 tmp263      [V277,T215] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V278 tmp264      [V278,T216] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V279 tmp265      [V279,T217] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V280 tmp266      [V280,T218] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V281 tmp267      [V281,T219] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V282 tmp268      [V282,T220] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V283 tmp269      [V283,T221] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V284 tmp270      [V284,T222] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V285 tmp271      [V285,T223] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V286 tmp272      [V286,T224] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V287 tmp273      [V287,T225] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V288 tmp274      [V288,T226] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V289 tmp275      [V289,T227] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V290 tmp276      [V290,T228] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V291 tmp277      [V291,T229] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V292 tmp278      [V292,T230] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V293 tmp279      [V293,T231] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V294 tmp280      [V294,T232] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V295 tmp281      [V295,T233] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V296 tmp282      [V296,T234] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V297 tmp283      [V297,T235] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V298 tmp284      [V298,T236] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V299 tmp285      [V299,T237] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V300 tmp286      [V300,T238] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V301 tmp287      [V301,T239] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V302 tmp288      [V302,T240] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V303 tmp289      [V303,T241] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V304 tmp290      [V304,T242] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V305 tmp291      [V305,T243] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V306 tmp292      [V306,T244] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V307 tmp293      [V307,T245] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V308 tmp294      [V308,T246] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V309 tmp295      [V309,T247] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V310 tmp296      [V310,T248] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V311 tmp297      [V311,T249] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V312 tmp298      [V312,T250] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V313 tmp299      [V313,T251] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V314 tmp300      [V314,T252] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V315 tmp301      [V315,T253] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V316 tmp302      [V316,T254] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V317 tmp303      [V317,T255] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V318 tmp304      [V318,T256] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V319 tmp305      [V319,T257] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V320 tmp306      [V320,T258] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V321 tmp307      [V321,T259] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V322 tmp308      [V322,T260] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V323 tmp309      [V323,T261] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V324 tmp310      [V324,T262] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V325 tmp311      [V325,T263] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V326 tmp312      [V326,T264] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V327 tmp313      [V327,T265] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V328 tmp314      [V328,T266] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
 ;
 ; Lcl frame size = 104
 
+0 (0.00%) : 8641.dasm - Generics+TestVirtualMethodUseTracking:Run() (FullOpts)
@@ -7,13 +7,13 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <Generics+TestVirtualMethodUseTracking+C1>
-;* V01 loc1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <Generics+TestVirtualMethodUseTracking+C2>
+;* V00 loc0         [V00    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <Generics+TestVirtualMethodUseTracking+C1>
+;* V01 loc1         [V01    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <Generics+TestVirtualMethodUseTracking+C2>
 ;  V02 loc2         [V02,T08] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def <<unknown class>>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+C1>
-;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+Derived1`1[Generics+TestVirtualMethodUseTracking+C1]>
-;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+C2>
+;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+C1>
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+Derived1`1[Generics+TestVirtualMethodUseTracking+C1]>
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+C2>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Generics+TestVirtualMethodUseTracking+Derived1`1[Generics+TestVirtualMethodUseTracking+C2]>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V09 tmp6         [V09,T04] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -44,12 +44,16 @@
 ;* V34 tmp31        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V35 tmp32        [V35,T03] (  5,  6.50)     ref  ->  rax         single-def "spilling varStr"
 ;  V36 tmp33        [V36,T11] (  2,  2   )     int  ->  rcx         "spilling unroll qmark"
-;  V37 cse0         [V37,T09] (  2,  2   )     int  ->  rcx         "CSE #02: conservative"
-;  V38 rat0         [V38,T15] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V39 rat1         [V39,T16] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V40 rat2         [V40,T17] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V41 rat3         [V41,T18] (  3,  3   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V42 rat4         [V42,T19] (  3,  3   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;* V37 tmp34        [V37    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestVirtualMethodUseTracking+C1>
+;* V38 tmp35        [V38    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <Generics+TestVirtualMethodUseTracking+Derived1`1[Generics+TestVirtualMethodUseTracking+C1]>
+;* V39 tmp36        [V39    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Generics+TestVirtualMethodUseTracking+C2>
+;* V40 tmp37        [V40    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <Generics+TestVirtualMethodUseTracking+Derived1`1[Generics+TestVirtualMethodUseTracking+C2]>
+;  V41 cse0         [V41,T09] (  2,  2   )     int  ->  rcx         "CSE #02: conservative"
+;  V42 rat0         [V42,T15] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V43 rat1         [V43,T16] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V44 rat2         [V44,T17] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V45 rat3         [V45,T18] (  3,  3   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V46 rat4         [V46,T19] (  3,  3   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 40
 
+38 (+62.30%) : 30797.dasm - Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)
@@ -8,33 +8,43 @@
 ; Final local variable assignments
 ;
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 tmp1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestPublicAndNonpublicDifference+PublicDerived>
-;* V02 tmp2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestPublicAndNonpublicDifference+ProtectedDerived>
+;* V01 tmp1         [V01    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestPublicAndNonpublicDifference+PublicDerived>
+;* V02 tmp2         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestPublicAndNonpublicDifference+ProtectedDerived>
 ;* V03 tmp3         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V04 tmp4         [V04,T06] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V05 tmp5         [V05,T02] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;  V06 tmp6         [V06,T00] (  2,  4   )     int  ->  rcx         "spilling unroll qmark"
 ;* V07 tmp7         [V07,T03] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;* V08 tmp8         [V08,T04] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;  V09 cse0         [V09,T01] (  2,  2   )     int  ->  rcx         "CSE #01: conservative"
-;  V10 rat0         [V10,T05] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V09 tmp9         [V09    ] (  2,  2   )  struct ( 8) [rsp+0x28]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Interfaces+TestPublicAndNonpublicDifference+PublicDerived>
+;  V10 tmp10        [V10    ] (  2,  2   )  struct ( 8) [rsp+0x20]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Interfaces+TestPublicAndNonpublicDifference+ProtectedDerived>
+;  V11 cse0         [V11,T01] (  2,  2   )     int  ->  rcx         "CSE #01: conservative"
+;  V12 rat0         [V12,T05] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 48
 
 G_M2000_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 32
+       sub      rsp, 48
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M2000_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x28], rcx
+       lea      rcx, [(reloc)]      ; Interfaces+TestPublicAndNonpublicDifference+PublicDerived
+       mov      qword ptr [rsp+0x28], rcx
        xorps    xmm0, xmm0
        ptest    xmm0, xmm0
        sete     cl
        movzx    rcx, cl
        test     ecx, ecx
        je       SHORT G_M2000_IG04
-						;; size=18 bbWeight=1 PerfScore 5.83
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x20], rcx
+       lea      rcx, [(reloc)]      ; Interfaces+TestPublicAndNonpublicDifference+ProtectedDerived
+       mov      qword ptr [rsp+0x20], rcx
+						;; size=56 bbWeight=1 PerfScore 11.33
 G_M2000_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 48
        pop      rbx
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
@@ -58,7 +68,7 @@ G_M2000_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
 						;; size=32 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 61, prolog size 5, PerfScore 8.83, instruction count 19, allocated bytes for code 61 (MethodHash=8713f82f) for method Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)
+; Total bytes of code 99, prolog size 5, PerfScore 14.33, instruction count 27, allocated bytes for code 99 (MethodHash=8713f82f) for method Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -71,5 +81,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+40 (+125.00%) : 8660.dasm - Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
@@ -8,29 +8,43 @@
 ; Final local variable assignments
 ;
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 tmp1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]>
-;* V02 tmp2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]>
+;* V01 tmp1         [V01    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]>
+;* V02 tmp2         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]>
+;  V03 tmp3         [V03    ] (  2,  2   )  struct ( 8) [rsp+0x30]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]>
+;  V04 tmp4         [V04    ] (  2,  2   )  struct ( 8) [rsp+0x28]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M10560_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 40
+       sub      rsp, 56
 						;; size=4 bbWeight=1 PerfScore 0.25
 G_M10560_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x30], rcx
+       lea      rcx, [(reloc)]      ; Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]
+       mov      qword ptr [rsp+0x30], rcx
        lea      rcx, gword ptr [(reloc)]
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x28], rcx
+       lea      rcx, [(reloc)]      ; Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]
+       mov      qword ptr [rsp+0x28], rcx
        lea      rcx, gword ptr [(reloc)]
        ; gcrRegs +[rcx]
-						;; size=19 bbWeight=1 PerfScore 2.00
+       call     <unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       nop      
+						;; size=63 bbWeight=1 PerfScore 8.75
 G_M10560_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       jmp      <unknown method>
-						;; size=9 bbWeight=1 PerfScore 2.25
+       add      rsp, 56
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 32, prolog size 4, PerfScore 4.50, instruction count 6, allocated bytes for code 32 (MethodHash=ee7fd6bf) for method Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
+; Total bytes of code 72, prolog size 4, PerfScore 10.25, instruction count 16, allocated bytes for code 72 (MethodHash=ee7fd6bf) for method Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -43,4 +57,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+40 (+125.00%) : 30789.dasm - Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
@@ -8,29 +8,43 @@
 ; Final local variable assignments
 ;
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V01 tmp1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]>
-;* V02 tmp2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]>
+;* V01 tmp1         [V01    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]>
+;* V02 tmp2         [V02    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]>
+;  V03 tmp3         [V03    ] (  2,  2   )  struct ( 8) [rsp+0x30]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]>
+;  V04 tmp4         [V04    ] (  2,  2   )  struct ( 8) [rsp+0x28]  do-not-enreg[XSF] addr-exposed "stack allocated ref class temp" <Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M10560_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 40
+       sub      rsp, 56
 						;; size=4 bbWeight=1 PerfScore 0.25
 G_M10560_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x30], rcx
+       lea      rcx, [(reloc)]      ; Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[System.Object]
+       mov      qword ptr [rsp+0x30], rcx
        lea      rcx, gword ptr [(reloc)]
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       xor      ecx, ecx
+       mov      qword ptr [rsp+0x28], rcx
+       lea      rcx, [(reloc)]      ; Interfaces+TestStaticInterfaceMethodsAnalysis+Gen`1[Interfaces+TestStaticInterfaceMethodsAnalysis+Struct1]
+       mov      qword ptr [rsp+0x28], rcx
        lea      rcx, gword ptr [(reloc)]
        ; gcrRegs +[rcx]
-						;; size=19 bbWeight=1 PerfScore 2.00
+       call     <unknown method>
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       nop      
+						;; size=63 bbWeight=1 PerfScore 8.75
 G_M10560_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       jmp      <unknown method>
-						;; size=9 bbWeight=1 PerfScore 2.25
+       add      rsp, 56
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 32, prolog size 4, PerfScore 4.50, instruction count 6, allocated bytes for code 32 (MethodHash=ee7fd6bf) for method Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
+; Total bytes of code 72, prolog size 4, PerfScore 10.25, instruction count 16, allocated bytes for code 72 (MethodHash=ee7fd6bf) for method Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -43,4 +57,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
Details

Size improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x64.checked.mch 8 2 0 6 -209 +0
benchmarks.run_pgo.windows.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries.crossgen2.windows.x64.checked.mch 3 2 1 0 -28 +31
libraries.pmi.windows.x64.checked.mch 244 92 42 110 -3,381 +763
libraries_tests.run.windows.x64.Release.mch 575 93 254 228 -3,227 +1,593
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 440 210 127 103 -15,083 +3,457
realworld.run.windows.x64.checked.mch 12 6 4 2 -82 +118
smoke_tests.nativeaot.windows.x64.checked.mch 19 3 4 12 -277 +156
1,301 408 432 461 -22,287 +6,118

PerfScore improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same PerfScore Improvements (PerfScore) Regressions (PerfScore) PerfScore Overall in FullOpts
benchmarks.run.windows.x64.checked.mch 8 2 0 6 -8.35% 0.00% -0.0006%
benchmarks.run_pgo.windows.x64.checked.mch 0 0 0 0 0.00% 0.00% 0.0000%
benchmarks.run_tiered.windows.x64.checked.mch 0 0 0 0 0.00% 0.00% 0.0000%
libraries.crossgen2.windows.x64.checked.mch 3 2 1 0 -2.22% +0.92% -0.0000%
libraries.pmi.windows.x64.checked.mch 244 90 38 116 -8.56% +2.26% -0.0022%
libraries_tests.run.windows.x64.Release.mch 575 341 24 210 -8.07% +12.17% -0.0110%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 440 211 126 103 -8.57% +7.17% -0.0033%
realworld.run.windows.x64.checked.mch 12 4 6 2 -1.09% +3.50% +0.0006%
smoke_tests.nativeaot.windows.x64.checked.mch 19 3 4 12 -25.52% +92.25% +0.0055%

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 28,468 4 28,464 38 (0.13%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 94,425 48,909 45,516 7 (0.01%) 0 (0.00%)
benchmarks.run_tiered.windows.x64.checked.mch 54,666 37,849 16,817 3 (0.01%) 0 (0.00%)
libraries.crossgen2.windows.x64.checked.mch 239,964 15 239,949 58 (0.02%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 320,502 6 320,496 418 (0.13%) 0 (0.00%)
libraries_tests.run.windows.x64.Release.mch 744,009 507,478 236,531 460 (0.06%) 0 (0.00%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 331,334 21,946 309,388 2,536 (0.76%) 0 (0.00%)
realworld.run.windows.x64.checked.mch 28,303 3 28,300 27 (0.10%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 31,278 12 31,266 8 (0.03%) 0 (0.00%)
1,872,949 616,222 1,256,727 3,555 (0.19%) 0 (0.00%)

jit-analyze output

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: 8702020 (overridden on cmd)
Total bytes of diff: 8701811 (overridden on cmd)
Total bytes of delta: -209 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file improvements (bytes):
        -194 : 13122.dasm (-12.61% of base)
         -15 : 5915.dasm (-0.75% of base)

2 total files with Code Size differences (2 improved, 0 regressed), 6 unchanged.

Top method improvements (bytes):
        -194 (-12.61% of base) : 13122.dasm - System.Text.Tests.Perf_StringBuilder:Append_ValueTypes():System.Text.StringBuilder:this (FullOpts)
         -15 (-0.75% of base) : 5915.dasm - Sigil.Impl.ReturnTracer:TraceFrom(int,Sigil.Impl.LinqList`1[Sigil.Label],Sigil.Impl.LinqHashSet`1[Sigil.Label]):Sigil.Impl.ReturnTracerResult:this (FullOpts)

Top method improvements (percentages):
        -194 (-12.61% of base) : 13122.dasm - System.Text.Tests.Perf_StringBuilder:Append_ValueTypes():System.Text.StringBuilder:this (FullOpts)
         -15 (-0.75% of base) : 5915.dasm - Sigil.Impl.ReturnTracer:TraceFrom(int,Sigil.Impl.LinqList`1[Sigil.Label],Sigil.Impl.LinqHashSet`1[Sigil.Label]):Sigil.Impl.ReturnTracerResult:this (FullOpts)

2 total methods with Code Size differences (2 improved, 0 regressed).


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: 39436711 (overridden on cmd)
Total bytes of diff: 39436714 (overridden on cmd)
Total bytes of delta: 3 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          31 : 201471.dasm (3.35% of base)

Top file improvements (bytes):
         -16 : 196390.dasm (-3.59% of base)
         -12 : 166095.dasm (-0.09% of base)

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

Top method regressions (bytes):
          31 ( 3.35% of base) : 201471.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Serialize(System.Object,System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter):this (FullOpts)

Top method improvements (bytes):
         -16 (-3.59% of base) : 196390.dasm - System.Management.ManagementObjectCollection:GetEnumerator():System.Management.ManagementObjectCollection+ManagementObjectEnumerator:this (FullOpts)
         -12 (-0.09% of base) : 166095.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)

Top method regressions (percentages):
          31 ( 3.35% of base) : 201471.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Serialize(System.Object,System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter):this (FullOpts)

Top method improvements (percentages):
         -16 (-3.59% of base) : 196390.dasm - System.Management.ManagementObjectCollection:GetEnumerator():System.Management.ManagementObjectCollection+ManagementObjectEnumerator:this (FullOpts)
         -12 (-0.09% of base) : 166095.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (FullOpts)

3 total methods with Code Size differences (2 improved, 1 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: 63047782 (overridden on cmd)
Total bytes of diff: 63045164 (overridden on cmd)
Total bytes of delta: -2618 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
          79 : 7557.dasm (4.48% of base)
          52 : 317179.dasm (8.71% of base)
          52 : 231538.dasm (14.17% of base)
          50 : 231519.dasm (12.29% of base)
          45 : 317180.dasm (4.78% of base)
          36 : 317184.dasm (7.32% of base)
          36 : 170322.dasm (3.06% of base)
          36 : 317148.dasm (7.38% of base)
          36 : 317151.dasm (7.32% of base)
          36 : 317181.dasm (7.38% of base)
          30 : 317509.dasm (2.48% of base)
          26 : 307296.dasm (2.40% of base)
          24 : 317182.dasm (4.03% of base)
          24 : 317149.dasm (4.22% of base)
          20 : 319526.dasm (6.94% of base)
          20 : 319525.dasm (3.70% of base)
          16 : 317183.dasm (1.74% of base)
          16 : 317146.dasm (2.32% of base)
          12 : 231518.dasm (6.52% of base)
          10 : 35881.dasm (7.35% of base)

Top file improvements (bytes):
        -146 : 146879.dasm (-3.43% of base)
        -141 : 181113.dasm (-3.41% of base)
        -134 : 91588.dasm (-8.01% of base)
         -91 : 112934.dasm (-1.71% of base)
         -82 : 271923.dasm (-4.00% of base)
         -71 : 104546.dasm (-3.97% of base)
         -70 : 317147.dasm (-7.58% of base)
         -62 : 104690.dasm (-5.34% of base)
         -60 : 15851.dasm (-48.39% of base)
         -56 : 31805.dasm (-5.42% of base)
         -54 : 253133.dasm (-0.81% of base)
         -54 : 39035.dasm (-8.91% of base)
         -53 : 91481.dasm (-3.61% of base)
         -52 : 172719.dasm (-16.72% of base)
         -52 : 193265.dasm (-16.72% of base)
         -52 : 15853.dasm (-44.83% of base)
         -51 : 91662.dasm (-3.83% of base)
         -49 : 198149.dasm (-10.68% of base)
         -49 : 193263.dasm (-16.33% of base)
         -49 : 172717.dasm (-16.33% of base)

61 total files with Code Size differences (34 improved, 27 regressed), 20 unchanged.

Top method regressions (bytes):
          79 ( 4.48% of base) : 7557.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Display:fit@665(int,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,Microsoft.FSharp.Text.StructuredPrintfImpl.TaggedText],Microsoft.FSharp.Text.StructuredPrintfImpl.Display+Breaks,int,Microsoft.FSharp.Text.StructuredPrintfImpl.Layout):System.Tuple`4[Microsoft.FSharp.Text.StructuredPrintfImpl.Display+Breaks,Microsoft.FSharp.Text.StructuredPrintfImpl.Layout,int,int] (FullOpts)
          52 (14.17% of base) : 231538.dasm - CSharpx.MaybeExtensions:ToMaybe[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]] (FullOpts)
          52 ( 8.71% of base) : 317179.dasm - Xunit.Assert:NotEqual(double,double,int) (FullOpts)
          50 (12.29% of base) : 231519.dasm - CSharpx.Maybe:Return[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]] (FullOpts)
          45 ( 4.78% of base) : 317180.dasm - Xunit.Assert:NotEqual(double,double,int,int) (FullOpts)
          36 ( 3.06% of base) : 170322.dasm - Microsoft.Build.BackEnd.TargetEntry+<ProcessBucket>d__51:MoveNext():this (FullOpts)
          36 ( 7.38% of base) : 317148.dasm - Xunit.Assert:Equal(double,double,double) (FullOpts)
          36 ( 7.32% of base) : 317151.dasm - Xunit.Assert:Equal(float,float,float) (FullOpts)
          36 ( 7.38% of base) : 317181.dasm - Xunit.Assert:NotEqual(double,double,double) (FullOpts)
          36 ( 7.32% of base) : 317184.dasm - Xunit.Assert:NotEqual(float,float,float) (FullOpts)
          30 ( 2.48% of base) : 317509.dasm - Xunit.Internal.AssertHelper:VerifyEquivalence[System.Numerics.Vector`1[float],System.Nullable`1[int]](System.Numerics.Vector`1[float],System.Nullable`1[int],ubyte,System.String,System.Collections.Generic.HashSet`1[System.Object],System.Collections.Generic.HashSet`1[System.Object],int):Xunit.Sdk.EquivalentException (FullOpts)
          26 ( 2.40% of base) : 307296.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:Serialize(System.Object,System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter):this (FullOpts)
          24 ( 4.22% of base) : 317149.dasm - Xunit.Assert:Equal(float,float,int) (FullOpts)
          24 ( 4.03% of base) : 317182.dasm - Xunit.Assert:NotEqual(float,float,int) (FullOpts)
          20 ( 3.70% of base) : 319525.dasm - Xunit.Sdk.TestFrameworkDiscoverer+<>c__DisplayClass26_0:<Find>b__0():this (FullOpts)
          20 ( 6.94% of base) : 319526.dasm - Xunit.Sdk.TestFrameworkDiscoverer+<>c__DisplayClass28_0:<Find>b__0():this (FullOpts)
          16 ( 2.32% of base) : 317146.dasm - Xunit.Assert:Equal(double,double,int) (FullOpts)
          16 ( 1.74% of base) : 317183.dasm - Xunit.Assert:NotEqual(float,float,int,int) (FullOpts)
          12 ( 6.52% of base) : 231518.dasm - CSharpx.Maybe:Return[double](double):CSharpx.Maybe`1[double] (FullOpts)
          10 ( 7.35% of base) : 35881.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]:<GetLinqDataView>b__1(System.Data.DataRow):ubyte:this (FullOpts)

Top method improvements (bytes):
        -146 (-3.43% of base) : 146879.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAllDiagnosticDescriptorsWithInfo(System.Threading.CancellationToken,byref):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
        -141 (-3.41% of base) : 181113.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver:GetAllDiagnosticDescriptorsWithInfo(System.Threading.CancellationToken,byref):System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
        -134 (-8.01% of base) : 91588.dasm - Microsoft.Diagnostics.Tracing.Parsers.IIS_Trace.W3CacheFileCacheAccessEnd:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         -91 (-1.71% of base) : 112934.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbol:ValidateAttributeUsage(Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData,Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,int,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol]):ubyte:this (FullOpts)
         -82 (-4.00% of base) : 271923.dasm - System.Data.OleDb.ColumnBinding:Value(System.Object):this (FullOpts)
         -71 (-3.97% of base) : 104546.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindCollectionInitializerElement(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.VisualBasic.BoundWithLValueExpressionPlaceholder,Microsoft.CodeAnalysis.VisualBasic.LookupResult,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         -70 (-7.58% of base) : 317147.dasm - Xunit.Assert:Equal(double,double,int,int) (FullOpts)
         -62 (-5.34% of base) : 104690.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindForLoopBodyAndNextControlVariables(Microsoft.CodeAnalysis.VisualBasic.Syntax.ForOrForEachBlockSyntax,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
         -60 (-48.39% of base) : 15851.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[double]:Equals(double,double):ubyte:this (FullOpts)
         -56 (-5.42% of base) : 31805.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseContour(System.String):System.Speech.Synthesis.TtsEngine.ContourPoint[] (FullOpts)
         -54 (-0.81% of base) : 253133.dasm - R2RTest.BuildFolderSet:CompileFramework():ubyte:this (FullOpts)
         -54 (-8.91% of base) : 39035.dasm - System.Data.Common.SqlCharsStorage:ConvertXmlToObject(System.String):System.Object:this (FullOpts)
         -53 (-3.61% of base) : 91481.dasm - Microsoft.Diagnostics.Tracing.Parsers.IIS_Trace.W3AuthKerberosFailed:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         -52 (-44.83% of base) : 15853.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[System.Numerics.Vector`1[float]]:Equals(System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]):ubyte:this (FullOpts)
         -52 (-16.72% of base) : 172719.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[long](long,long,long,ubyte) (FullOpts)
         -52 (-16.72% of base) : 193265.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[long](long,long,long,ubyte) (FullOpts)
         -51 (-3.83% of base) : 91662.dasm - Microsoft.Diagnostics.Tracing.Parsers.IIS_Trace.W3CacheURLCacheAccessEnd:ToXml(System.Text.StringBuilder):System.Text.StringBuilder:this (FullOpts)
         -49 (-16.33% of base) : 193263.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[int](int,int,int,ubyte) (FullOpts)
         -49 (-16.33% of base) : 172717.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[int](int,int,int,ubyte) (FullOpts)
         -49 (-10.68% of base) : 198149.dasm - System.Dynamic.Utils.CacheDict`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:Add(System.Numerics.Vector`1[float],System.Nullable`1[int]):this (FullOpts)

Top method regressions (percentages):
          52 (14.17% of base) : 231538.dasm - CSharpx.MaybeExtensions:ToMaybe[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]] (FullOpts)
          50 (12.29% of base) : 231519.dasm - CSharpx.Maybe:Return[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]] (FullOpts)
          52 ( 8.71% of base) : 317179.dasm - Xunit.Assert:NotEqual(double,double,int) (FullOpts)
          36 ( 7.38% of base) : 317148.dasm - Xunit.Assert:Equal(double,double,double) (FullOpts)
          36 ( 7.38% of base) : 317181.dasm - Xunit.Assert:NotEqual(double,double,double) (FullOpts)
          10 ( 7.35% of base) : 35881.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]:<GetLinqDataView>b__1(System.Data.DataRow):ubyte:this (FullOpts)
          36 ( 7.32% of base) : 317151.dasm - Xunit.Assert:Equal(float,float,float) (FullOpts)
          36 ( 7.32% of base) : 317184.dasm - Xunit.Assert:NotEqual(float,float,float) (FullOpts)
          20 ( 6.94% of base) : 319526.dasm - Xunit.Sdk.TestFrameworkDiscoverer+<>c__DisplayClass28_0:<Find>b__0():this (FullOpts)
          12 ( 6.52% of base) : 231518.dasm - CSharpx.Maybe:Return[double](double):CSharpx.Maybe`1[double] (FullOpts)
           6 ( 5.13% of base) : 30764.dasm - System.Speech.Recognition.GrammarBuilder:AppendWildcard():this (FullOpts)
           8 ( 5.03% of base) : 142215.dasm - Microsoft.CodeAnalysis.PreprocessingSymbolInfo:Equals(Microsoft.CodeAnalysis.PreprocessingSymbolInfo):ubyte:this (FullOpts)
           8 ( 5.03% of base) : 176439.dasm - Microsoft.CodeAnalysis.PreprocessingSymbolInfo:Equals(Microsoft.CodeAnalysis.PreprocessingSymbolInfo):ubyte:this (FullOpts)
          45 ( 4.78% of base) : 317180.dasm - Xunit.Assert:NotEqual(double,double,int,int) (FullOpts)
           6 ( 4.58% of base) : 231517.dasm - CSharpx.Maybe:Return[int](int):CSharpx.Maybe`1[int] (FullOpts)
           6 ( 4.58% of base) : 231515.dasm - CSharpx.Maybe:Return[ubyte](ubyte):CSharpx.Maybe`1[ubyte] (FullOpts)
          79 ( 4.48% of base) : 7557.dasm - Microsoft.FSharp.Text.StructuredPrintfImpl.Display:fit@665(int,Microsoft.FSharp.Core.FSharpFunc`2[System.Object,Microsoft.FSharp.Text.StructuredPrintfImpl.TaggedText],Microsoft.FSharp.Text.StructuredPrintfImpl.Display+Breaks,int,Microsoft.FSharp.Text.StructuredPrintfImpl.Layout):System.Tuple`4[Microsoft.FSharp.Text.StructuredPrintfImpl.Display+Breaks,Microsoft.FSharp.Text.StructuredPrintfImpl.Layout,int,int] (FullOpts)
           6 ( 4.38% of base) : 231520.dasm - CSharpx.Maybe:Return[long](long):CSharpx.Maybe`1[long] (FullOpts)
           6 ( 4.38% of base) : 231516.dasm - CSharpx.Maybe:Return[short](short):CSharpx.Maybe`1[short] (FullOpts)
          24 ( 4.22% of base) : 317149.dasm - Xunit.Assert:Equal(float,float,int) (FullOpts)

Top method improvements (percentages):
         -60 (-48.39% of base) : 15851.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[double]:Equals(double,double):ubyte:this (FullOpts)
         -52 (-44.83% of base) : 15853.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[System.Numerics.Vector`1[float]]:Equals(System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]):ubyte:this (FullOpts)
         -42 (-39.62% of base) : 15855.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[long]:Equals(long,long):ubyte:this (FullOpts)
         -41 (-39.05% of base) : 15847.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[short]:Equals(short,short):ubyte:this (FullOpts)
         -40 (-38.46% of base) : 15844.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[ubyte]:Equals(ubyte,ubyte):ubyte:this (FullOpts)
         -39 (-37.86% of base) : 15849.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+structuralEqualityComparer@1777[int]:Equals(int,int):ubyte:this (FullOpts)
         -27 (-17.53% of base) : 198136.dasm - System.Dynamic.Utils.CacheDict`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (FullOpts)
         -27 (-17.31% of base) : 198140.dasm - System.Dynamic.Utils.CacheDict`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (FullOpts)
         -52 (-16.72% of base) : 172719.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[long](long,long,long,ubyte) (FullOpts)
         -52 (-16.72% of base) : 193265.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[long](long,long,long,ubyte) (FullOpts)
         -31 (-16.49% of base) : 277049.dasm - System.DirectoryServices.AccountManagement.ADStoreCtx:BoolToLdapConverter(System.DirectoryServices.AccountManagement.Principal,System.String,System.DirectoryServices.DirectoryEntry,System.String) (FullOpts)
         -49 (-16.33% of base) : 193263.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[int](int,int,int,ubyte) (FullOpts)
         -49 (-16.33% of base) : 172717.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[int](int,int,int,ubyte) (FullOpts)
         -23 (-15.97% of base) : 198143.dasm - System.Dynamic.Utils.CacheDict`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (FullOpts)
         -48 (-15.53% of base) : 172716.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[short](short,short,short,ubyte) (FullOpts)
         -48 (-15.53% of base) : 193262.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[short](short,short,short,ubyte) (FullOpts)
         -47 (-15.46% of base) : 172715.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[ubyte](ubyte,ubyte,ubyte,ubyte) (FullOpts)
         -47 (-15.46% of base) : 193261.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[ubyte](ubyte,ubyte,ubyte,ubyte) (FullOpts)
         -31 (-15.35% of base) : 30754.dasm - System.Speech.Recognition.GrammarBuilder:Append(System.String):this (FullOpts)
         -21 (-15.33% of base) : 231756.dasm - CommandLine.Parsed`1[ubyte]:Equals(CommandLine.Parsed`1[ubyte]):ubyte:this (FullOpts)


libraries_tests.run.windows.x64.Release.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: 316506323 (overridden on cmd)
Total bytes of diff: 316504689 (overridden on cmd)
Total bytes of delta: -1634 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         224 : 278006.dasm (8.40% of base)
          68 : 622951.dasm (18.04% of base)
          68 : 361675.dasm (18.04% of base)
          68 : 373028.dasm (18.04% of base)
          68 : 633601.dasm (18.04% of base)
          46 : 283274.dasm (9.26% of base)
          32 : 438322.dasm (8.49% of base)
          32 : 640986.dasm (8.49% of base)
          32 : 547638.dasm (8.49% of base)
          32 : 547110.dasm (8.49% of base)
          32 : 640978.dasm (8.49% of base)
          32 : 501519.dasm (8.49% of base)
          27 : 657482.dasm (7.09% of base)
          25 : 92982.dasm (0.38% of base)
          20 : 555471.dasm (4.77% of base)
          20 : 568661.dasm (4.77% of base)
          20 : 384194.dasm (4.77% of base)
          20 : 656804.dasm (4.77% of base)
          16 : 62565.dasm (10.74% of base)
          14 : 109825.dasm (3.56% of base)

Top file improvements (bytes):
        -158 : 481731.dasm (-1.86% of base)
        -110 : 343185.dasm (-4.29% of base)
         -79 : 404103.dasm (-7.29% of base)
         -71 : 419677.dasm (-9.97% of base)
         -68 : 343182.dasm (-3.34% of base)
         -61 : 335368.dasm (-14.42% of base)
         -61 : 329346.dasm (-14.42% of base)
         -61 : 501797.dasm (-14.42% of base)
         -61 : 283978.dasm (-14.42% of base)
         -60 : 475966.dasm (-3.42% of base)
         -57 : 656992.dasm (-1.56% of base)
         -56 : 656956.dasm (-0.93% of base)
         -56 : 283884.dasm (-13.79% of base)
         -56 : 397111.dasm (-13.79% of base)
         -56 : 501031.dasm (-13.79% of base)
         -54 : 218860.dasm (-12.77% of base)
         -52 : 543119.dasm (-12.81% of base)
         -52 : 218766.dasm (-12.81% of base)
         -52 : 555153.dasm (-12.81% of base)
         -52 : 337386.dasm (-0.81% of base)

50 total files with Code Size differences (29 improved, 21 regressed), 20 unchanged.

Top method regressions (bytes):
         224 ( 8.40% of base) : 278006.dasm - Xunit.Assert:Equal[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]) (Tier1)
          68 (18.04% of base) : 622951.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          68 (18.04% of base) : 361675.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          68 (18.04% of base) : 373028.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          68 (18.04% of base) : 633601.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          46 ( 9.26% of base) : 283274.dasm - System.Diagnostics.Tests.ProcessTests:TestProcessorTime():this (Tier1-OSR)
          32 ( 8.49% of base) : 438322.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
          32 ( 8.49% of base) : 547638.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
          32 ( 8.49% of base) : 640978.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
          32 ( 8.49% of base) : 640986.dasm - Xunit.Assert:Equal[System.UInt128](System.UInt128,System.UInt128,System.Collections.Generic.IEqualityComparer`1[System.UInt128]) (Tier1)
          32 ( 8.49% of base) : 547110.dasm - Xunit.Assert:Equal[System.UInt128](System.UInt128,System.UInt128,System.Collections.Generic.IEqualityComparer`1[System.UInt128]) (Tier1)
          32 ( 8.49% of base) : 501519.dasm - Xunit.Assert:Equal[System.UInt128](System.UInt128,System.UInt128,System.Collections.Generic.IEqualityComparer`1[System.UInt128]) (Tier1)
          27 ( 7.09% of base) : 657482.dasm - Xunit.Assert:NotEqual[System.SequencePosition](System.SequencePosition,System.SequencePosition,System.Collections.Generic.IEqualityComparer`1[System.SequencePosition]) (Tier1)
          25 ( 0.38% of base) : 92982.dasm - Microsoft.Interop.BoundGenerators:Create(System.Collections.Immutable.ImmutableArray`1[Microsoft.Interop.TypePositionInfo],Microsoft.Interop.IMarshallingGeneratorResolver,Microsoft.Interop.StubCodeContext,Microsoft.Interop.IMarshallingGenerator,byref):Microsoft.Interop.BoundGenerators (Tier1)
          20 ( 4.77% of base) : 555471.dasm - Xunit.Assert:Equal[System.Numerics.BigInteger](System.Numerics.BigInteger,System.Numerics.BigInteger,System.Collections.Generic.IEqualityComparer`1[System.Numerics.BigInteger]) (Tier1)
          20 ( 4.77% of base) : 568661.dasm - Xunit.Assert:Equal[System.Numerics.BigInteger](System.Numerics.BigInteger,System.Numerics.BigInteger,System.Collections.Generic.IEqualityComparer`1[System.Numerics.BigInteger]) (Tier1)
          20 ( 4.77% of base) : 384194.dasm - Xunit.Assert:Equal[System.SequencePosition](System.SequencePosition,System.SequencePosition,System.Collections.Generic.IEqualityComparer`1[System.SequencePosition]) (Tier1)
          20 ( 4.77% of base) : 656804.dasm - Xunit.Assert:Equal[System.SequencePosition](System.SequencePosition,System.SequencePosition,System.Collections.Generic.IEqualityComparer`1[System.SequencePosition]) (Tier1)
          16 (10.74% of base) : 62565.dasm - Microsoft.Interop.GeneratedComInterfaceData:From(Microsoft.Interop.GeneratedComInterfaceCompilationData):Microsoft.Interop.GeneratedComInterfaceData (Tier1)
          14 ( 3.56% of base) : 109825.dasm - NuGet.Versioning.SemanticVersion:.ctor(System.Version,System.Collections.Generic.IEnumerable`1[System.String],System.String):this (Tier1)

Top method improvements (bytes):
        -158 (-1.86% of base) : 481731.dasm - System.Xml.Tests.TCReadContentAsBase64:ReadBase64BufferOverflowWorksProperly():int:this (Tier1)
        -110 (-4.29% of base) : 343185.dasm - System.IO.MemoryMappedFiles.Tests.MemoryMappedFilesTestBase:ValidateMemoryMappedViewStream(System.IO.MemoryMappedFiles.MemoryMappedViewStream,long,int) (Tier1)
         -79 (-7.29% of base) : 404103.dasm - System.Net.Mime.MimePart:GetEncodedStream(System.IO.Stream):System.IO.Stream:this (Tier1)
         -71 (-9.97% of base) : 419677.dasm - System.Security.Cryptography.X509Certificates.RSAPkcs1X509SignatureGenerator:BuildPublicKey(System.Security.Cryptography.RSA):System.Security.Cryptography.X509Certificates.PublicKey (Tier1)
         -68 (-3.34% of base) : 343182.dasm - System.IO.MemoryMappedFiles.Tests.MemoryMappedFilesTestBase:ValidateMemoryMappedViewAccessor(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor,long,int) (Tier1)
         -61 (-14.42% of base) : 335368.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -61 (-14.42% of base) : 329346.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -61 (-14.42% of base) : 501797.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -61 (-14.42% of base) : 283978.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -60 (-3.42% of base) : 475966.dasm - System.Xml.Schema.ChoiceNode:ConstructPos(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[]):this (Tier1)
         -57 (-1.56% of base) : 656992.dasm - System.Text.Json.JsonTestHelper:WriteDepthObject(int,ubyte):System.String (Tier1)
         -56 (-0.93% of base) : 656956.dasm - System.Text.Json.JsonTestHelper:WriteDepthObjectWithArray(int,ubyte):System.String (Tier1)
         -56 (-13.79% of base) : 283884.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -56 (-13.79% of base) : 397111.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -56 (-13.79% of base) : 501031.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -54 (-12.77% of base) : 218860.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -52 (-0.81% of base) : 337386.dasm - System.IO.Tests.File_Copy_str_str:CopyFileWithData(ushort[],ubyte):this (Tier1)
         -52 (-12.81% of base) : 543119.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 218766.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 555153.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)

Top method regressions (percentages):
          68 (18.04% of base) : 622951.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          68 (18.04% of base) : 361675.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          68 (18.04% of base) : 373028.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          68 (18.04% of base) : 633601.dasm - Xunit.Assert:Equal[System.Decimal](System.Decimal,System.Decimal,System.Collections.Generic.IEqualityComparer`1[System.Decimal]) (Tier1)
          16 (10.74% of base) : 62565.dasm - Microsoft.Interop.GeneratedComInterfaceData:From(Microsoft.Interop.GeneratedComInterfaceCompilationData):Microsoft.Interop.GeneratedComInterfaceData (Tier1)
          46 ( 9.26% of base) : 283274.dasm - System.Diagnostics.Tests.ProcessTests:TestProcessorTime():this (Tier1-OSR)
          32 ( 8.49% of base) : 438322.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
          32 ( 8.49% of base) : 547638.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
          32 ( 8.49% of base) : 640978.dasm - Xunit.Assert:Equal[System.Int128](System.Int128,System.Int128,System.Collections.Generic.IEqualityComparer`1[System.Int128]) (Tier1)
          32 ( 8.49% of base) : 640986.dasm - Xunit.Assert:Equal[System.UInt128](System.UInt128,System.UInt128,System.Collections.Generic.IEqualityComparer`1[System.UInt128]) (Tier1)
          32 ( 8.49% of base) : 547110.dasm - Xunit.Assert:Equal[System.UInt128](System.UInt128,System.UInt128,System.Collections.Generic.IEqualityComparer`1[System.UInt128]) (Tier1)
          32 ( 8.49% of base) : 501519.dasm - Xunit.Assert:Equal[System.UInt128](System.UInt128,System.UInt128,System.Collections.Generic.IEqualityComparer`1[System.UInt128]) (Tier1)
         224 ( 8.40% of base) : 278006.dasm - Xunit.Assert:Equal[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]) (Tier1)
          27 ( 7.09% of base) : 657482.dasm - Xunit.Assert:NotEqual[System.SequencePosition](System.SequencePosition,System.SequencePosition,System.Collections.Generic.IEqualityComparer`1[System.SequencePosition]) (Tier1)
          20 ( 4.77% of base) : 555471.dasm - Xunit.Assert:Equal[System.Numerics.BigInteger](System.Numerics.BigInteger,System.Numerics.BigInteger,System.Collections.Generic.IEqualityComparer`1[System.Numerics.BigInteger]) (Tier1)
          20 ( 4.77% of base) : 568661.dasm - Xunit.Assert:Equal[System.Numerics.BigInteger](System.Numerics.BigInteger,System.Numerics.BigInteger,System.Collections.Generic.IEqualityComparer`1[System.Numerics.BigInteger]) (Tier1)
          20 ( 4.77% of base) : 384194.dasm - Xunit.Assert:Equal[System.SequencePosition](System.SequencePosition,System.SequencePosition,System.Collections.Generic.IEqualityComparer`1[System.SequencePosition]) (Tier1)
          20 ( 4.77% of base) : 656804.dasm - Xunit.Assert:Equal[System.SequencePosition](System.SequencePosition,System.SequencePosition,System.Collections.Generic.IEqualityComparer`1[System.SequencePosition]) (Tier1)
           9 ( 4.66% of base) : 92948.dasm - Microsoft.Interop.LibraryImportData:From(Microsoft.Interop.LibraryImportCompilationData):Microsoft.Interop.LibraryImportData (Tier1)
          14 ( 3.56% of base) : 109825.dasm - NuGet.Versioning.SemanticVersion:.ctor(System.Version,System.Collections.Generic.IEnumerable`1[System.String],System.String):this (Tier1)

Top method improvements (percentages):
         -61 (-14.42% of base) : 335368.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -61 (-14.42% of base) : 329346.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -61 (-14.42% of base) : 501797.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -61 (-14.42% of base) : 283978.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -56 (-13.79% of base) : 283884.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -56 (-13.79% of base) : 397111.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -56 (-13.79% of base) : 501031.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -30 (-13.51% of base) : 307565.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Type,System.Object) (FullOpts)
         -51 (-13.08% of base) : 343560.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 543119.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 218766.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 555153.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 79179.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -52 (-12.81% of base) : 585860.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -54 (-12.77% of base) : 218860.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -47 (-11.72% of base) : 343148.dasm - Xunit.Assert:InRange[long](long,long,long,System.Collections.Generic.IComparer`1[long]) (Tier1)
         -24 (-11.54% of base) : 306678.dasm - (dynamicClass):CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,System.Func`2[System.Object,ManagedTests.DynamicCSharp.Conformance.dynamic.unsfe.basic.expressiontree01.expressiontree01.UC],System.Object) (FullOpts)
         -51 (-11.26% of base) : 337395.dasm - Xunit.Assert:InRange[System.DateTime](System.DateTime,System.DateTime,System.DateTime,System.Collections.Generic.IComparer`1[System.DateTime]) (Tier1)
         -41 (-10.79% of base) : 566585.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)
         -41 (-10.79% of base) : 358707.dasm - Xunit.Assert:InRange[int](int,int,int,System.Collections.Generic.IComparer`1[int]) (Tier1)


libraries_tests_no_tiered_compilation.run.windows.x64.Release.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: 142650527 (overridden on cmd)
Total bytes of diff: 142638901 (overridden on cmd)
Total bytes of delta: -11626 (-0.01 % of base)
    diff is an improvement.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         268 : 86025.dasm (9.72% of base)
         152 : 172127.dasm (11.74% of base)
         116 : 237841.dasm (4.85% of base)
         116 : 237838.dasm (4.77% of base)
          96 : 331784.dasm (2.04% of base)
          91 : 183668.dasm (6.87% of base)
          91 : 232629.dasm (2.03% of base)
          78 : 163248.dasm (4.66% of base)
          71 : 163245.dasm (5.41% of base)
          65 : 80703.dasm (3.64% of base)
          60 : 83490.dasm (8.10% of base)
          60 : 237828.dasm (3.12% of base)
          56 : 237842.dasm (2.99% of base)
          50 : 332843.dasm (5.28% of base)
          46 : 122098.dasm (25.56% of base)
          44 : 237835.dasm (3.19% of base)
          44 : 237832.dasm (3.19% of base)
          42 : 152677.dasm (1.09% of base)
          40 : 73765.dasm (4.77% of base)
          38 : 237852.dasm (2.93% of base)

Top file improvements (bytes):
        -935 : 128046.dasm (-19.99% of base)
        -840 : 164327.dasm (-37.05% of base)
        -763 : 80720.dasm (-12.49% of base)
        -419 : 60940.dasm (-24.25% of base)
        -407 : 59317.dasm (-29.80% of base)
        -407 : 42897.dasm (-29.80% of base)
        -407 : 54231.dasm (-29.80% of base)
        -393 : 59503.dasm (-27.62% of base)
        -393 : 43030.dasm (-27.62% of base)
        -393 : 54147.dasm (-27.62% of base)
        -378 : 42837.dasm (-27.71% of base)
        -378 : 59300.dasm (-27.71% of base)
        -309 : 157799.dasm (-25.54% of base)
        -264 : 254717.dasm (-11.80% of base)
        -238 : 331535.dasm (-11.42% of base)
        -194 : 164004.dasm (-11.77% of base)
        -173 : 331664.dasm (-15.32% of base)
        -164 : 164168.dasm (-10.98% of base)
        -156 : 324525.dasm (-29.89% of base)
        -138 : 254530.dasm (-13.09% of base)

69 total files with Code Size differences (29 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         268 ( 9.72% of base) : 86025.dasm - Xunit.Assert:NotEqual[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]) (FullOpts)
         152 (11.74% of base) : 172127.dasm - System.Net.Tests.GlobalProxySelectionTest+<>c:<Select_Success>b__1_0():this (FullOpts)
         116 ( 4.85% of base) : 237841.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_IdentityEnumerableClaimAuthNameRoleType_ClaimsIdentityClaim():this (FullOpts)
         116 ( 4.77% of base) : 237838.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_IdentityEnumerableClaimAuthNameRoleType_ClaimsIdentityRestFilled():this (FullOpts)
          96 ( 2.04% of base) : 331784.dasm - System.Tests.ValueTupleTests+ValueTupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.ValueTuple`2[ubyte,System.__Canon],System.TimeSpan]:TestConstructor(System.Object[]):this (FullOpts)
          91 ( 6.87% of base) : 183668.dasm - System.PrivateUri.Tests.IriTest:VerifyUriNormalizationForEscapedCharacters(System.String):this (FullOpts)
          91 ( 2.03% of base) : 232629.dasm - System.Tests.TupleTests+TupleTestDriver`10[short,int,long,System.__Canon,ushort,float,double,System.DateTime,System.__Canon,System.TimeSpan]:Ctor(System.Object[]):this (FullOpts)
          78 ( 4.66% of base) : 163248.dasm - System.Net.Http.Tests.RetryConditionHeaderValueTest:GetHashCode_UseSameAndDifferentRetryConditions_SameOrDifferentHashCodes():this (FullOpts)
          71 ( 5.41% of base) : 163245.dasm - System.Net.Http.Tests.RetryConditionHeaderValueTest:Equals_UseSameAndDifferentRetrys_EqualOrNotEqualNoExceptions():this (FullOpts)
          65 ( 3.64% of base) : 80703.dasm - System.Collections.Immutable.Tests.ImmutableHashSetTest:ChangeUnorderedEqualityComparer():this (FullOpts)
          60 ( 8.10% of base) : 83490.dasm - System.Collections.Specialized.Tests.NameObjectCollectionBaseKeysTests:Keys_GetEnumerator(int):this (FullOpts)
          60 ( 3.12% of base) : 237828.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_IdentityEnumerableClaimAuthNameRoleType_NonClaimsIdentityClaims():this (FullOpts)
          56 ( 2.99% of base) : 237842.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_IdentityEnumerableClaimAuthNameRoleType_NonClaimsIdentityRestEmptyWorks():this (FullOpts)
          50 ( 5.28% of base) : 332843.dasm - XDocumentTests.SDMSample.SDM__PI:ProcessingInstructionEquals():this (FullOpts)
          46 (25.56% of base) : 122098.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.backwardscompatible.dynamictypedeclared021.dynamictypedeclared021.App:DynamicCSharpRunTest() (FullOpts)
          44 ( 3.19% of base) : 237835.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_EnumerableClaimAuthNameRoleType_TwoClaimsAndTypesEmpty():this (FullOpts)
          44 ( 3.19% of base) : 237832.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_IdentityEnumerableClaimAuthNameRoleType_ClaimsArrayEmptyTypes():this (FullOpts)
          42 ( 1.09% of base) : 152677.dasm - System.Linq.Tests.OrderedSubsetting:RunOnce():this (FullOpts)
          40 ( 4.77% of base) : 73765.dasm - System.CodeDom.Tests.CodeMethodInvokeExpressionTests:Ctor_Method_Parameters(System.CodeDom.CodeMethodReferenceExpression,System.CodeDom.CodeExpression[]):this (FullOpts)
          38 ( 2.93% of base) : 237852.dasm - System.Security.Claims.ClaimsIdentityTests:Ctor_EnumerableClaimAuthNameRoleType_TwoClaimsAndTypesNull():this (FullOpts)

Top method improvements (bytes):
        -935 (-19.99% of base) : 128046.dasm - System.Formats.Asn1.Tests.Reader.ReadEnumerated:ExpectedTag_IgnoresConstructed(int,System.String,int,int) (FullOpts)
        -840 (-37.05% of base) : 164327.dasm - System.Net.Http.Tests.WarningHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this (FullOpts)
        -763 (-12.49% of base) : 80720.dasm - System.Collections.Immutable.Tests.ImmutableHashSetTest:Create():this (FullOpts)
        -419 (-24.25% of base) : 60940.dasm - Microsoft.Extensions.Logging.Test.LoggerMessageTest:get_LogMessagesDataSkipEnabledCheck():System.Collections.Generic.IEnumerable`1[System.Object[]] (FullOpts)
        -407 (-29.80% of base) : 59317.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.CollectionTestExtensions:.cctor() (FullOpts)
        -407 (-29.80% of base) : 42897.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.CollectionTestExtensions:.cctor() (FullOpts)
        -407 (-29.80% of base) : 54231.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.CollectionTestExtensions:.cctor() (FullOpts)
        -393 (-27.62% of base) : 59503.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions:.cctor() (FullOpts)
        -393 (-27.62% of base) : 43030.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions:.cctor() (FullOpts)
        -393 (-27.62% of base) : 54147.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions:.cctor() (FullOpts)
        -378 (-27.71% of base) : 42837.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TestInstances:.cctor() (FullOpts)
        -378 (-27.71% of base) : 59300.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TestInstances:.cctor() (FullOpts)
        -309 (-25.54% of base) : 157799.dasm - System.Buffers.Tests.ArrayBufferWriterTests`1[ubyte]:ArrayBufferWriter_Ctor():this (FullOpts)
        -264 (-11.80% of base) : 254717.dasm - SampleSynthesisTests.GrammarTests:CreateMoreElaborateGrammar():this (FullOpts)
        -238 (-11.42% of base) : 331535.dasm - System.Tests.ValueTupleTests:OneTuples() (FullOpts)
        -194 (-11.77% of base) : 164004.dasm - System.Net.Http.Tests.ContentDispositionHeaderValueTest:Equals_UseContentDispositionWithAndWithoutParameters_EqualOrNotEqualNoExceptions():this (FullOpts)
        -173 (-15.32% of base) : 331664.dasm - System.Tests.ValueTupleTests:TestCustomTypeParameter2() (FullOpts)
        -164 (-10.98% of base) : 164168.dasm - System.Net.Http.Tests.TransferCodingHeaderValueTest:Equals_UseTransferCodingWithAndWithoutParameters_EqualOrNotEqualNoExceptions():this (FullOpts)
        -156 (-29.89% of base) : 324525.dasm - System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests:TestDataflowMessageHeader():this (FullOpts)
        -138 (-13.09% of base) : 254530.dasm - SampleSynthesisTests.GrammarTests:GrammarBuilder():this (FullOpts)

Top method regressions (percentages):
          25 (2,500.00% of base) : 90597.dasm - System.ComponentModel.Composition.ComposablePartDefinitionTests:Constructor1_ShouldNotThrow():this (FullOpts)
          22 (66.67% of base) : 251855.dasm - System.Security.Permissions.Tests.CodeGroupTests:FileCodeGroupCallMethods() (FullOpts)
          22 (53.66% of base) : 120277.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.generic004.generic004.Test:MainMethod(System.String[]):int (FullOpts)
          22 (53.66% of base) : 123728.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular001.regular001.Test:MainMethod(System.String[]):int (FullOpts)
          22 (53.66% of base) : 118848.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.basic.regular002.regular002.Test:MainMethod(System.String[]):int (FullOpts)
          22 (36.67% of base) : 251839.dasm - System.Security.Permissions.Tests.EvidenceBaseTests:ApplicationDirectoryCallMethods() (FullOpts)
          22 (36.67% of base) : 251838.dasm - System.Security.Permissions.Tests.EvidenceBaseTests:GacInstalledCallMethods() (FullOpts)
          22 (36.67% of base) : 251744.dasm - System.Security.Permissions.Tests.PermissionTests:StrongNamePublicKeyBlobTests() (FullOpts)
          22 (31.43% of base) : 126360.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.decl.declaration.prms11.prms11.Test:MainMethod():int (FullOpts)
          22 (26.83% of base) : 209404.dasm - System.Runtime.CompilerServices.Tests.IDispatchConstantAttributeTests:Ctor_Default():this (FullOpts)
          46 (25.56% of base) : 122098.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.backwardscompatible.dynamictypedeclared021.dynamictypedeclared021.App:DynamicCSharpRunTest() (FullOpts)
          22 (25.00% of base) : 209409.dasm - System.Runtime.CompilerServices.Tests.IUnknownConstantAttributeTests:Ctor_Default():this (FullOpts)
          24 (13.33% of base) : 115859.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.backwardscompatible.dynamictypedeclared019.dynamictypedeclared019.Test:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 121174.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.declarations.backwardscompatible.dynamictypedeclared023.dynamictypedeclared023.Test:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 121630.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.decl.declaration.cnstrctor02.cnstrctor02.Test:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 116064.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.decl.declaration.decl16b.decl16b.Test:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 120312.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.inheritance.integeregererface01.integeregererface01.A:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 118737.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.overload.overload01a.overload01a.Test:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 119050.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.overload.overload10a.overload10a.Test:DynamicCSharpRunTest() (FullOpts)
          24 (13.33% of base) : 121711.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.namedandoptional.usage.overload.overload12a.overload12a.Test:DynamicCSharpRunTest() (FullOpts)

Top method improvements (percentages):
         -50 (-41.32% of base) : 115897.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.conversions.dynamicobj002.dynamicobj002.Test:MainMethod():int (FullOpts)
        -840 (-37.05% of base) : 164327.dasm - System.Net.Http.Tests.WarningHeaderValueTest:Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions():this (FullOpts)
        -156 (-29.89% of base) : 324525.dasm - System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests:TestDataflowMessageHeader():this (FullOpts)
        -407 (-29.80% of base) : 59317.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.CollectionTestExtensions:.cctor() (FullOpts)
        -407 (-29.80% of base) : 42897.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.CollectionTestExtensions:.cctor() (FullOpts)
        -407 (-29.80% of base) : 54231.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.CollectionTestExtensions:.cctor() (FullOpts)
        -378 (-27.71% of base) : 42837.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TestInstances:.cctor() (FullOpts)
        -378 (-27.71% of base) : 59300.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TestInstances:.cctor() (FullOpts)
        -393 (-27.62% of base) : 59503.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions:.cctor() (FullOpts)
        -393 (-27.62% of base) : 43030.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions:.cctor() (FullOpts)
        -393 (-27.62% of base) : 54147.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions:.cctor() (FullOpts)
        -309 (-25.54% of base) : 157799.dasm - System.Buffers.Tests.ArrayBufferWriterTests`1[ubyte]:ArrayBufferWriter_Ctor():this (FullOpts)
         -55 (-24.55% of base) : 332895.dasm - XDocumentTests.SDMSample.SDM_Document:DocumentXmlDeclaration():this (FullOpts)
        -419 (-24.25% of base) : 60940.dasm - Microsoft.Extensions.Logging.Test.LoggerMessageTest:get_LogMessagesDataSkipEnabledCheck():System.Collections.Generic.IEnumerable`1[System.Object[]] (FullOpts)
         -84 (-20.90% of base) : 333107.dasm - XDocumentTests.SDMSample.SDM_Element:ElementIsEmpty():this (FullOpts)
        -935 (-19.99% of base) : 128046.dasm - System.Formats.Asn1.Tests.Reader.ReadEnumerated:ExpectedTag_IgnoresConstructed(int,System.String,int,int) (FullOpts)
         -96 (-19.59% of base) : 196881.dasm - System.Reflection.Emit.Tests.LabelEquals:Equals_DifferentLabel_ReturnsFalse():this (FullOpts)
         -63 (-18.31% of base) : 100334.dasm - System.Configuration.ValidatorUtils:ValidateRangeImpl[System.TimeSpan](System.TimeSpan,System.TimeSpan,System.TimeSpan,ubyte) (FullOpts)
         -31 (-17.71% of base) : 77448.dasm - System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_0:<RemoveRangeEnumerableInvalid>b__21():System.Object:this (FullOpts)
         -40 (-17.62% of base) : 77444.dasm - System.Collections.Immutable.Tests.ImmutableArrayTest+<>c:<RemoveRangeEnumerableInvalid>b__128_17():System.Object:this (FullOpts)


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: 11307920 (overridden on cmd)
Total bytes of diff: 11307956 (overridden on cmd)
Total bytes of delta: 36 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          42 : 3191.dasm (0.64% of base)
          41 : 2924.dasm (0.31% of base)
          23 : 2135.dasm (13.14% of base)
          12 : 3316.dasm (0.40% of base)

Top file improvements (bytes):
         -35 : 3277.dasm (-2.65% of base)
         -29 : 2268.dasm (-0.86% of base)
          -8 : 2114.dasm (-2.11% of base)
          -4 : 3091.dasm (-0.61% of base)
          -4 : 25696.dasm (-0.25% of base)
          -2 : 2158.dasm (-0.19% of base)

10 total files with Code Size differences (6 improved, 4 regressed), 2 unchanged.

Top method regressions (bytes):
          42 ( 0.64% of base) : 3191.dasm - FSharp.Compiler.CompilerConfig+TcConfig:.ctor(FSharp.Compiler.CompilerConfig+TcConfigBuilder,ubyte):this (FullOpts)
          41 ( 0.31% of base) : 2924.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:openMetadataReader(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+BinaryFile,int,System.Tuple`8[ushort,System.Tuple`2[int,int],ubyte,ubyte,ubyte,ubyte,ubyte,System.Tuple`5[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILPlatform],ubyte,int,int,int]],FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader,FSharp.Compiler.IO.ReadOnlyByteMemory,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader],ubyte):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILModuleDef,System.Lazy`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.AbstractIL.IL+ILAssemblyRef]]] (FullOpts)
          23 (13.14% of base) : 2135.dasm - FSharp.Compiler.DependencyManager.NativeDllResolveHandler:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]):this (FullOpts)
          12 ( 0.40% of base) : 3316.dasm - FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@447:Invoke(FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureSource):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]:this (FullOpts)

Top method improvements (bytes):
         -35 (-2.65% of base) : 3277.dasm - FSharp.Compiler.CompilerImports+TcAssemblyResolutions:.ctor(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]):this (FullOpts)
         -29 (-0.86% of base) : 2268.dasm - FSharp.Compiler.CodeAnalysis.BackgroundCompiler+GetProjectOptionsFromScript@1343-1:Invoke(System.Threading.CancellationToken):Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]:this (FullOpts)
          -8 (-2.11% of base) : 2114.dasm - FSharp.Compiler.Driver:getParallelReferenceResolutionFromEnvironment():Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution] (FullOpts)
          -4 (-0.61% of base) : 3091.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadAssemblyRefUncached(Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader]],int):FSharp.Compiler.AbstractIL.IL+ILAssemblyRef (FullOpts)
          -4 (-0.25% of base) : 25696.dasm - System.Management.Automation.SessionStateInternal:Drives(System.String):System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSDriveInfo]:this (FullOpts)
          -2 (-0.19% of base) : 2158.dasm - Microsoft.FSharp.Control.AsyncPrimitives:QueueAsyncAndWaitForResultSynchronously[System.__Canon](System.Threading.CancellationToken,Microsoft.FSharp.Control.FSharpAsync`1[System.__Canon],Microsoft.FSharp.Core.FSharpOption`1[int]):System.__Canon (FullOpts)

Top method regressions (percentages):
          23 (13.14% of base) : 2135.dasm - FSharp.Compiler.DependencyManager.NativeDllResolveHandler:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.NativeResolutionProbe]):this (FullOpts)
          42 ( 0.64% of base) : 3191.dasm - FSharp.Compiler.CompilerConfig+TcConfig:.ctor(FSharp.Compiler.CompilerConfig+TcConfigBuilder,ubyte):this (FullOpts)
          12 ( 0.40% of base) : 3316.dasm - FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+processClosureSource@447:Invoke(FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureSource):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.ScriptClosure+ScriptPreprocessClosure+ClosureFile]:this (FullOpts)
          41 ( 0.31% of base) : 2924.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:openMetadataReader(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+BinaryFile,int,System.Tuple`8[ushort,System.Tuple`2[int,int],ubyte,ubyte,ubyte,ubyte,ubyte,System.Tuple`5[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILPlatform],ubyte,int,int,int]],FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader,FSharp.Compiler.IO.ReadOnlyByteMemory,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader],ubyte):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILModuleDef,System.Lazy`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.AbstractIL.IL+ILAssemblyRef]]] (FullOpts)

Top method improvements (percentages):
         -35 (-2.65% of base) : 3277.dasm - FSharp.Compiler.CompilerImports+TcAssemblyResolutions:.ctor(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]):this (FullOpts)
          -8 (-2.11% of base) : 2114.dasm - FSharp.Compiler.Driver:getParallelReferenceResolutionFromEnvironment():Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CompilerConfig+ParallelReferenceResolution] (FullOpts)
         -29 (-0.86% of base) : 2268.dasm - FSharp.Compiler.CodeAnalysis.BackgroundCompiler+GetProjectOptionsFromScript@1343-1:Invoke(System.Threading.CancellationToken):Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]:this (FullOpts)
          -4 (-0.61% of base) : 3091.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadAssemblyRefUncached(Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader]],int):FSharp.Compiler.AbstractIL.IL+ILAssemblyRef (FullOpts)
          -4 (-0.25% of base) : 25696.dasm - System.Management.Automation.SessionStateInternal:Drives(System.String):System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSDriveInfo]:this (FullOpts)
          -2 (-0.19% of base) : 2158.dasm - Microsoft.FSharp.Control.AsyncPrimitives:QueueAsyncAndWaitForResultSynchronously[System.__Canon](System.Threading.CancellationToken,Microsoft.FSharp.Control.FSharpAsync`1[System.__Canon],Microsoft.FSharp.Core.FSharpOption`1[int]):System.__Canon (FullOpts)

10 total methods with Code Size differences (6 improved, 4 regressed).


smoke_tests.nativeaot.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: 5030993 (overridden on cmd)
Total bytes of diff: 5030872 (overridden on cmd)
Total bytes of delta: -121 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
          40 : 8660.dasm (125.00% of base)
          40 : 30789.dasm (125.00% of base)
          38 : 8668.dasm (62.30% of base)
          38 : 30797.dasm (62.30% of base)

Top file improvements (bytes):
        -125 : 30791.dasm (-18.36% of base)
        -125 : 8662.dasm (-18.36% of base)
         -27 : 30184.dasm (-4.33% of base)

7 total files with Code Size differences (3 improved, 4 regressed), 12 unchanged.

Top method regressions (bytes):
          40 (125.00% of base) : 8660.dasm - Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
          40 (125.00% of base) : 30789.dasm - Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
          38 (62.30% of base) : 8668.dasm - Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)
          38 (62.30% of base) : 30797.dasm - Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)

Top method improvements (bytes):
        -125 (-18.36% of base) : 30791.dasm - Interfaces+TestCovariantReturns:Run() (FullOpts)
        -125 (-18.36% of base) : 8662.dasm - Interfaces+TestCovariantReturns:Run() (FullOpts)
         -27 (-4.33% of base) : 30184.dasm - System.Delegate:GetDiagnosticMethodInfo():System.Diagnostics.DiagnosticMethodInfo:this (FullOpts)

Top method regressions (percentages):
          40 (125.00% of base) : 8660.dasm - Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
          40 (125.00% of base) : 30789.dasm - Interfaces+TestStaticInterfaceMethodsAnalysis:Run() (FullOpts)
          38 (62.30% of base) : 8668.dasm - Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)
          38 (62.30% of base) : 30797.dasm - Interfaces+TestPublicAndNonpublicDifference:Run() (FullOpts)

Top method improvements (percentages):
        -125 (-18.36% of base) : 30791.dasm - Interfaces+TestCovariantReturns:Run() (FullOpts)
        -125 (-18.36% of base) : 8662.dasm - Interfaces+TestCovariantReturns:Run() (FullOpts)
         -27 (-4.33% of base) : 30184.dasm - System.Delegate:GetDiagnosticMethodInfo():System.Diagnostics.DiagnosticMethodInfo:this (FullOpts)

7 total methods with Code Size differences (3 improved, 4 regressed).


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