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
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 |
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% |
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%) |
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).