Assembly Diffs
linux arm
Diffs are based on 2,239,114 contexts (829,327 MinOpts, 1,409,787 FullOpts).
MISSED contexts: base: 71,275 (3.08%), diff: 71,546 (3.10%)
Overall (-171,254 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm.checked.mch |
15,281,610 |
-70 |
benchmarks.run_pgo.linux.arm.checked.mch |
63,946,800 |
-826 |
benchmarks.run_tiered.linux.arm.checked.mch |
21,537,614 |
-502 |
coreclr_tests.run.linux.arm.checked.mch |
321,680,998 |
-39,846 |
libraries.crossgen2.linux.arm.checked.mch |
34,522,532 |
-30 |
libraries.pmi.linux.arm.checked.mch |
49,794,764 |
+7,174 |
libraries_tests.run.linux.arm.Release.mch |
243,721,382 |
-72,548 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
94,387,740 |
-65,594 |
realworld.run.linux.arm.checked.mch |
13,603,552 |
+988 |
MinOpts (-182,312 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.linux.arm.checked.mch |
11,199,966 |
-818 |
benchmarks.run_tiered.linux.arm.checked.mch |
8,653,000 |
-570 |
coreclr_tests.run.linux.arm.checked.mch |
212,477,574 |
-42,638 |
libraries_tests.run.linux.arm.Release.mch |
120,969,132 |
-72,750 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
10,070,736 |
-65,536 |
FullOpts (+11,058 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.linux.arm.checked.mch |
14,892,408 |
-70 |
benchmarks.run_pgo.linux.arm.checked.mch |
52,746,834 |
-8 |
benchmarks.run_tiered.linux.arm.checked.mch |
12,884,614 |
+68 |
coreclr_tests.run.linux.arm.checked.mch |
109,203,424 |
+2,792 |
libraries.crossgen2.linux.arm.checked.mch |
34,521,302 |
-30 |
libraries.pmi.linux.arm.checked.mch |
49,688,540 |
+7,174 |
libraries_tests.run.linux.arm.Release.mch |
122,752,250 |
+202 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
84,317,004 |
-58 |
realworld.run.linux.arm.checked.mch |
13,168,252 |
+988 |
Example diffs
benchmarks.run.linux.arm.checked.mch
-30 (-1.72%) : 26415.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,157 +5,151 @@
; r11 based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 120 single block inlinees; 45 inlinees without PGO data
+; 0 inlinees with PGO data; 125 single block inlinees; 45 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 65, 33.50) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> r5 single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> r5 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V05 tmp2 [V05,T50] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V06 tmp3 [V06,T56] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V07 tmp4 [V07,T13] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V05 tmp2 [V05,T52] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V06 tmp3 [V06,T58] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V07 tmp4 [V07,T14] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V08 tmp5 [V08,T02] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp8 [V11,T20] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V21 tmp18 [V21,T03] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V22 tmp19 [V22,T38] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V24 tmp21 [V24,T63] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V25 tmp22 [V25,T39] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V26 tmp23 [V26,T26] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V28 tmp25 [V28,T51] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V29 tmp26 [V29,T57] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T14] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V31 tmp28 [V31,T04] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V34 tmp31 [V34,T21] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V37 tmp34 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V19 tmp16 [V19,T03] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V20 tmp17 [V20,T38] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V22 tmp19 [V22,T65] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V23 tmp20 [V23,T39] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V24 tmp21 [V24,T26] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V26 tmp23 [V26,T53] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V27 tmp24 [V27,T59] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T15] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V29 tmp26 [V29,T04] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V32 tmp29 [V32,T21] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V36 tmp33 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V40 tmp37 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp40 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V44 tmp41 [V44,T05] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V45 tmp42 [V45,T40] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp44 [V47,T64] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V48 tmp45 [V48,T41] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V49 tmp46 [V49,T27] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V51 tmp48 [V51,T52] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V52 tmp49 [V52,T58] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T15] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V54 tmp51 [V54,T06] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V40 tmp37 [V40,T05] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V41 tmp38 [V41,T40] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V43 tmp40 [V43,T66] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V44 tmp41 [V44,T41] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V45 tmp42 [V45,T27] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V47 tmp44 [V47,T54] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V48 tmp45 [V48,T60] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T16] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V50 tmp47 [V50,T06] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V53 tmp50 [V53,T22] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp53 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V57 tmp54 [V57,T22] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V58 tmp55 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V60 tmp57 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V62 tmp59 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V63 tmp60 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp63 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V67 tmp64 [V67,T07] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V68 tmp65 [V68,T42] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V69 tmp66 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V70 tmp67 [V70,T65] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V71 tmp68 [V71,T43] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V72 tmp69 [V72,T28] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V74 tmp71 [V74,T53] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V75 tmp72 [V75,T59] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T16] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V77 tmp74 [V77,T08] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp57 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V61 tmp58 [V61,T07] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V62 tmp59 [V62,T42] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V64 tmp61 [V64,T67] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V65 tmp62 [V65,T43] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V66 tmp63 [V66,T28] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V67 tmp64 [V67 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V68 tmp65 [V68,T55] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V69 tmp66 [V69,T61] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T17] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V71 tmp68 [V71,T08] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V74 tmp71 [V74,T23] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V75 tmp72 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V78 tmp75 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V80 tmp77 [V80,T23] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V81 tmp78 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V82 tmp79 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V83 tmp80 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V85 tmp82 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V86 tmp83 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V89 tmp86 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V90 tmp87 [V90,T29] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
-;* V91 tmp88 [V91 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V92 tmp89 [V92,T54] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V93 tmp90 [V93,T60] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T17] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V95 tmp92 [V95,T09] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V82 tmp79 [V82,T09] ( 6, 6 ) byref -> r3 single-def "Inlining Arg"
+; V83 tmp80 [V83,T44] ( 3, 3 ) int -> r2 "impAppendStmt"
+;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V85 tmp82 [V85,T68] ( 3, 1.50) int -> r1 "Inline return value spill temp"
+; V86 tmp83 [V86,T45] ( 3, 3 ) int -> r1 "Inlining Arg"
+; V87 tmp84 [V87,T29] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
+;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V89 tmp86 [V89,T56] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V90 tmp87 [V90,T62] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T18] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V92 tmp89 [V92,T10] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V94 tmp91 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V95 tmp92 [V95,T24] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V96 tmp93 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp95 [V98,T24] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V98 tmp95 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V99 tmp96 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V101 tmp98 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V102 tmp99 [V102 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V103 tmp100 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V104 tmp101 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V107 tmp104 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V108 tmp105 [V108,T30] ( 3, 3 ) byref -> r7 single-def "Inlining Arg"
-;* V109 tmp106 [V109 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V110 tmp107 [V110,T61] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T18] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V112 tmp109 [V112,T10] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V113 tmp110 [V113 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp112 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp113 [V116,T25] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
-;* V117 tmp114 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp115 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp116 [V119 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V120 tmp117 [V120,T55] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V121 tmp118 [V121,T62] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T19] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V123 tmp120 [V123,T31] ( 3, 3 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V124 tmp121 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V103 tmp100 [V103,T30] ( 3, 3 ) byref -> r7 single-def "Inlining Arg"
+;* V104 tmp101 [V104 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V105 tmp102 [V105,T63] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T19] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V107 tmp104 [V107,T11] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V109 tmp106 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V110 tmp107 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V111 tmp108 [V111,T25] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
+;* V112 tmp109 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V113 tmp110 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V115 tmp112 [V115,T57] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V116 tmp113 [V116,T64] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V117 tmp114 [V117,T31] ( 3, 3 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V121 tmp118 [V121,T32] ( 3, 3 ) ref -> r0 single-def "arr expr"
+; V122 tmp119 [V122,T33] ( 3, 3 ) ref -> r0 single-def "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V125 tmp122 [V125,T34] ( 3, 3 ) ref -> r3 single-def "arr expr"
;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V127 tmp124 [V127,T32] ( 3, 3 ) ref -> r0 single-def "arr expr"
-; V128 tmp125 [V128,T33] ( 3, 3 ) ref -> r0 single-def "arr expr"
+;* V127 tmp124 [V127 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V128 tmp125 [V128,T35] ( 3, 3 ) ref -> r0 single-def "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V130 tmp127 [V130 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V131 tmp128 [V131,T34] ( 3, 3 ) ref -> r0 single-def "arr expr"
...
-14 (-0.83%) : 26429.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,157 +5,151 @@
; r11 based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 118 single block inlinees; 44 inlinees without PGO data
+; 0 inlinees with PGO data; 124 single block inlinees; 43 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 62, 32 ) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> r5 single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> r5 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V05 tmp2 [V05,T50] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V06 tmp3 [V06,T56] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V07 tmp4 [V07,T13] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V05 tmp2 [V05,T53] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V06 tmp3 [V06,T59] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V07 tmp4 [V07,T14] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V08 tmp5 [V08,T02] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V11 tmp8 [V11,T19] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+; V11 tmp8 [V11,T20] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V21 tmp18 [V21,T03] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V22 tmp19 [V22,T37] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V24 tmp21 [V24,T62] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V25 tmp22 [V25,T38] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V26 tmp23 [V26,T25] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V28 tmp25 [V28,T51] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V29 tmp26 [V29,T57] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T14] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V31 tmp28 [V31,T04] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V34 tmp31 [V34,T20] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V37 tmp34 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V19 tmp16 [V19,T03] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V20 tmp17 [V20,T37] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V22 tmp19 [V22,T65] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V23 tmp20 [V23,T38] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V24 tmp21 [V24,T26] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V26 tmp23 [V26,T54] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V27 tmp24 [V27,T60] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T15] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V29 tmp26 [V29,T04] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V32 tmp29 [V32,T21] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V36 tmp33 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V40 tmp37 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp40 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V44 tmp41 [V44,T05] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V45 tmp42 [V45,T39] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp44 [V47,T63] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V48 tmp45 [V48,T40] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V49 tmp46 [V49,T26] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V51 tmp48 [V51,T52] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V52 tmp49 [V52,T58] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T15] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V54 tmp51 [V54,T06] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V40 tmp37 [V40,T05] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V41 tmp38 [V41,T39] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V43 tmp40 [V43,T66] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V44 tmp41 [V44,T40] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V45 tmp42 [V45,T27] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V47 tmp44 [V47,T55] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V48 tmp45 [V48,T61] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T16] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V50 tmp47 [V50,T06] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V53 tmp50 [V53,T22] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp53 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V57 tmp54 [V57,T21] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V58 tmp55 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V60 tmp57 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V62 tmp59 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V63 tmp60 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp63 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V67 tmp64 [V67,T07] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V68 tmp65 [V68,T41] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V69 tmp66 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V70 tmp67 [V70,T64] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V71 tmp68 [V71,T42] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V72 tmp69 [V72,T27] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V74 tmp71 [V74,T53] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V75 tmp72 [V75,T59] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T16] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V77 tmp74 [V77,T08] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp57 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V61 tmp58 [V61,T07] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V62 tmp59 [V62,T41] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V64 tmp61 [V64,T67] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V65 tmp62 [V65,T42] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V66 tmp63 [V66,T28] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V67 tmp64 [V67 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V68 tmp65 [V68,T56] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V69 tmp66 [V69,T62] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T17] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V71 tmp68 [V71,T08] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V74 tmp71 [V74,T23] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V75 tmp72 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V78 tmp75 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V80 tmp77 [V80,T22] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V81 tmp78 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V82 tmp79 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V83 tmp80 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V85 tmp82 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V86 tmp83 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V89 tmp86 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V90 tmp87 [V90,T28] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
-;* V91 tmp88 [V91 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V92 tmp89 [V92,T54] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V93 tmp90 [V93,T60] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T17] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V95 tmp92 [V95,T09] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V82 tmp79 [V82,T09] ( 6, 6 ) byref -> r3 single-def "Inlining Arg"
+; V83 tmp80 [V83,T43] ( 3, 3 ) int -> r2 "impAppendStmt"
+;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V85 tmp82 [V85,T68] ( 3, 1.50) int -> r1 "Inline return value spill temp"
+; V86 tmp83 [V86,T44] ( 3, 3 ) int -> r1 "Inlining Arg"
+; V87 tmp84 [V87,T29] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
+;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V89 tmp86 [V89,T57] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V90 tmp87 [V90,T63] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T18] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V92 tmp89 [V92,T10] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V94 tmp91 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V95 tmp92 [V95,T24] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V96 tmp93 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp95 [V98,T23] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V98 tmp95 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V99 tmp96 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V101 tmp98 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V102 tmp99 [V102 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V103 tmp100 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V104 tmp101 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V107 tmp104 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V108 tmp105 [V108,T29] ( 3, 3 ) byref -> r7 single-def "Inlining Arg"
-;* V109 tmp106 [V109 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V110 tmp107 [V110,T61] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T18] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V112 tmp109 [V112,T10] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V113 tmp110 [V113 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp112 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp113 [V116,T24] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
-;* V117 tmp114 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp115 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp116 [V119 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V120 tmp117 [V120,T55] ( 2, 2 ) int -> r6 "Inlining Arg"
-;* V121 tmp118 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T30] ( 3, 3 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V123 tmp120 [V123 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V124 tmp121 [V124,T49] ( 2, 2 ) ref -> r1 single-def "argument with side effect"
-;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V103 tmp100 [V103,T30] ( 3, 3 ) byref -> r7 single-def "Inlining Arg"
+;* V104 tmp101 [V104 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V105 tmp102 [V105,T64] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T19] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V107 tmp104 [V107,T11] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V109 tmp106 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V110 tmp107 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V111 tmp108 [V111,T25] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
+;* V112 tmp109 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V113 tmp110 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V115 tmp112 [V115,T58] ( 2, 2 ) int -> r6 "Inlining Arg"
+;* V116 tmp113 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V117 tmp114 [V117,T51] ( 2, 2 ) ref -> r1 single-def "argument with side effect"
+; V118 tmp115 [V118,T52] ( 2, 2 ) ref -> r0 single-def "argument with side effect"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V121 tmp118 [V121,T31] ( 3, 3 ) ref -> r0 single-def "arr expr"
+; V122 tmp119 [V122,T32] ( 3, 3 ) ref -> r0 single-def "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V125 tmp122 [V125,T33] ( 3, 3 ) ref -> r3 single-def "arr expr"
;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V127 tmp124 [V127,T31] ( 3, 3 ) ref -> r0 single-def "arr expr"
-; V128 tmp125 [V128,T32] ( 3, 3 ) ref -> r0 single-def "arr expr"
+;* V127 tmp124 [V127 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V128 tmp125 [V128,T34] ( 3, 3 ) ref -> r0 single-def "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V130 tmp127 [V130 ] ( 0, 0 ) ref -> zero-ref "arr expr"
...
-6 (-0.37%) : 19249.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
@@ -9,15 +9,15 @@
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 8, 8 ) ref -> r5 class-hnd single-def <System.String[]>
-; V01 loc0 [V01,T08] ( 18, 7 ) ref -> [sp+0x18] do-not-enreg[M] class-hnd EH-live <BenchmarkDotNet.Engines.IHost>
+; V01 loc0 [V01,T07] ( 18, 7 ) ref -> [sp+0x18] do-not-enreg[M] class-hnd EH-live <BenchmarkDotNet.Engines.IHost>
; V02 loc1 [V02 ] ( 2, 2 ) ref -> [sp+0x44] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V03 loc2 [V03 ] ( 2, 2 ) ref -> [sp+0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V04 loc3 [V04,T36] ( 2, 2 ) ref -> r6 class-hnd single-def <System.String>
-; V05 loc4 [V05,T38] ( 2, 2 ) int -> r7 single-def
+;* V05 loc4 [V05 ] ( 0, 0 ) int -> zero-ref single-def
; V06 loc5 [V06 ] ( 15, 15 ) struct (24) [sp+0x28] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V07 loc6 [V07,T32] ( 4, 2 ) int -> [sp+0x24] do-not-enreg[M] EH-live
-; V08 loc7 [V08,T46] ( 6, 0 ) ref -> [sp+0x14] must-init class-hnd EH-live single-def <<unknown class>>
-;* V09 loc8 [V09,T51] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
+; V08 loc7 [V08,T43] ( 6, 0 ) ref -> [sp+0x14] must-init class-hnd EH-live single-def <<unknown class>>
+;* V09 loc8 [V09,T48] ( 0, 0 ) ref -> zero-ref class-hnd exact <<unknown class>>
;* V10 loc9 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V11 OutArgs [V11 ] ( 1, 1 ) struct (12) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V12 tmp1 [V12,T09] ( 3, 6 ) ref -> r4 class-hnd exact single-def "NewObj constructor temp" <BenchmarkDotNet.Engines.NoAcknowledgementConsoleHost>
@@ -29,15 +29,15 @@
; V18 tmp7 [V18,T30] ( 3, 3 ) int -> r7
;* V19 tmp8 [V19 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V20 tmp9 [V20,T19] ( 2, 4 ) ref -> r4 class-hnd exact single-def "impAppendStmt" <<unknown class>>
-; V21 tmp10 [V21,T05] ( 4, 8 ) ref -> r2 class-hnd exact single-def "dup spill" <System.Object[]>
+; V21 tmp10 [V21,T04] ( 4, 8 ) ref -> r2 class-hnd exact single-def "dup spill" <System.Object[]>
; V22 tmp11 [V22,T10] ( 3, 6 ) ref -> r4 class-hnd single-def "impSpillLclRefs" <System.Reflection.MethodInfo>
; V23 tmp12 [V23,T02] ( 5, 10 ) ref -> r4 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V24 tmp13 [V24,T48] ( 3, 0 ) ref -> r5 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V25 tmp14 [V25,T52] ( 2, 0 ) ref -> r1 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
-; V26 tmp15 [V26,T49] ( 3, 0 ) ref -> r5 class-hnd single-def "dup spill" <<unknown class>>
+; V24 tmp13 [V24,T45] ( 3, 0 ) ref -> r5 class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+; V25 tmp14 [V25,T49] ( 2, 0 ) ref -> r1 class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V26 tmp15 [V26,T46] ( 3, 0 ) ref -> r5 class-hnd single-def "dup spill" <<unknown class>>
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
-; V28 tmp17 [V28,T47] ( 4, 0 ) int -> r0
-; V29 tmp18 [V29,T50] ( 3, 0 ) int -> r0
+; V28 tmp17 [V28,T44] ( 4, 0 ) int -> r0
+; V29 tmp18 [V29,T47] ( 3, 0 ) int -> r0
;* V30 tmp19 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <<unknown class>>
;* V31 tmp20 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V32 tmp21 [V32,T11] ( 3, 6 ) ref -> r4 class-hnd exact single-def "NewObj constructor temp" <BenchmarkDotNet.Engines.AnonymousPipesHost>
@@ -45,11 +45,11 @@
; V34 tmp23 [V34,T28] ( 3, 3 ) ref -> r1 class-hnd "Inline return value spill temp" <<unknown class>>
;* V35 tmp24 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V36 tmp25 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.String[]>
-;* V37 tmp26 [V37,T41] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String[]>
+;* V37 tmp26 [V37,T40] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String[]>
; V38 tmp27 [V38,T00] ( 6, 12 ) ref -> r6 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.__Canon]>
; V40 tmp29 [V40 ] ( 1, 1 ) ubyte -> [sp+0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V41 tmp30 [V41,T06] ( 4, 8 ) ref -> r3 class-hnd exact single-def "Inlining Arg" <System.String>
+; V41 tmp30 [V41,T05] ( 4, 8 ) ref -> r3 class-hnd exact single-def "Inlining Arg" <System.String>
;* V42 tmp31 [V42 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V43 tmp32 [V43 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V44 tmp33 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
@@ -62,53 +62,53 @@
; V51 tmp40 [V51 ] ( 2, 2 ) int -> [sp+0x1C] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V52 tmp41 [V52,T34] ( 3, 2 ) int -> r0 single-def "Inline stloc first use temp"
;* V53 tmp42 [V53 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V54 tmp43 [V54,T21] ( 2, 4 ) ref -> r0 class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;* V54 tmp43 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
; V55 tmp44 [V55,T03] ( 5, 10 ) ref -> r0 class-hnd single-def "dup spill" <ushort[]>
;* V56 tmp45 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V57 tmp46 [V57,T43] ( 0, 0 ) int -> zero-ref single-def "Inline return value spill temp"
-;* V58 tmp47 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V59 tmp48 [V59 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V60 tmp49 [V60 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V61 tmp50 [V61,T07] ( 4, 8 ) int -> r0 "Inlining Arg"
-;* V62 tmp51 [V62 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V63 tmp52 [V63,T14] ( 3, 6 ) int -> r8 "Inlining Arg"
-; V64 tmp53 [V64,T22] ( 2, 4 ) byref -> r5 single-def "Inlining Arg"
-;* V65 tmp54 [V65,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V66 tmp55 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V67 tmp56 [V67 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V68 tmp57 [V68,T23] ( 2, 4 ) byref -> r1 single-def "Inlining Arg"
-; V69 tmp58 [V69,T13] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <System.Type>
-;* V70 tmp59 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp60 [V71 ] ( 0, 0 ) int -> zero-ref single-def "field V42._length (fldOffset=0x4)" P-INDEP
-; V72 tmp61 [V72,T33] ( 3, 2 ) byref -> r8 single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-; V73 tmp62 [V73,T35] ( 3, 2 ) int -> r9 single-def "field V43._length (fldOffset=0x4)" P-INDEP
-; V74 tmp63 [V74,T37] ( 2, 2 ) byref -> r8 single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-; V75 tmp64 [V75,T40] ( 2, 2 ) int -> r9 single-def "field V44._length (fldOffset=0x4)" P-INDEP
-;* V76 tmp65 [V76 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp66 [V77 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x4)" P-INDEP
-; V78 tmp67 [V78,T29] ( 3, 3 ) byref -> r3 "field V59._reference (fldOffset=0x0)" P-INDEP
-; V79 tmp68 [V79,T31] ( 3, 3 ) int -> r2 "field V59._length (fldOffset=0x4)" P-INDEP
-;* V80 tmp69 [V80 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
-;* V81 tmp70 [V81 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x4)" P-INDEP
-;* V82 tmp71 [V82 ] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V83 tmp72 [V83 ] ( 0, 0 ) int -> zero-ref single-def "field V62._length (fldOffset=0x4)" P-INDEP
-;* V84 tmp73 [V84 ] ( 0, 0 ) byref -> zero-ref single-def "field V66._reference (fldOffset=0x0)" P-INDEP
-;* V85 tmp74 [V85 ] ( 0, 0 ) int -> zero-ref single-def "field V66._length (fldOffset=0x4)" P-INDEP
-;* V86 tmp75 [V86,T42] ( 0, 0 ) ref -> zero-ref single-def "V19.[000..004)"
-;* V87 tmp76 [V87 ] ( 0, 0 ) ref -> zero-ref single-def "V19.[004..008)"
-;* V88 tmp77 [V88 ] ( 0, 0 ) int -> zero-ref "V19.[008..012)"
-;* V89 tmp78 [V89 ] ( 0, 0 ) ubyte -> zero-ref "V19.[012..013)"
-;* V90 tmp79 [V90 ] ( 0, 0 ) byref -> zero-ref single-def "V19.[016..020)"
-;* V91 tmp80 [V91 ] ( 0, 0 ) int -> zero-ref single-def "V19.[020..024)"
-; V92 tmp81 [V92,T24] ( 2, 4 ) ref -> r1 single-def "argument with side effect"
-; V93 tmp82 [V93,T25] ( 2, 4 ) ref -> r3 single-def "argument with side effect"
+;* V57 tmp46 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp47 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V59 tmp48 [V59 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V60 tmp49 [V60,T06] ( 4, 8 ) int -> r0 "Inlining Arg"
+;* V61 tmp50 [V61 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V62 tmp51 [V62,T14] ( 3, 6 ) int -> r8 "Inlining Arg"
+; V63 tmp52 [V63,T21] ( 2, 4 ) byref -> r5 single-def "Inlining Arg"
+;* V64 tmp53 [V64,T38] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V65 tmp54 [V65 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V66 tmp55 [V66 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V67 tmp56 [V67,T22] ( 2, 4 ) byref -> r1 single-def "Inlining Arg"
+; V68 tmp57 [V68,T13] ( 3, 6 ) ref -> r0 class-hnd single-def "Inlining Arg" <System.Type>
+;* V69 tmp58 [V69 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V70 tmp59 [V70 ] ( 0, 0 ) int -> zero-ref single-def "field V42._length (fldOffset=0x4)" P-INDEP
+; V71 tmp60 [V71,T33] ( 3, 2 ) byref -> r8 single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+; V72 tmp61 [V72,T35] ( 3, 2 ) int -> r9 single-def "field V43._length (fldOffset=0x4)" P-INDEP
+; V73 tmp62 [V73,T37] ( 2, 2 ) byref -> r8 single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+; V74 tmp63 [V74,T39] ( 2, 2 ) int -> r9 single-def "field V44._length (fldOffset=0x4)" P-INDEP
+;* V75 tmp64 [V75 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V76 tmp65 [V76 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x4)" P-INDEP
+; V77 tmp66 [V77,T29] ( 3, 3 ) byref -> r3 "field V58._reference (fldOffset=0x0)" P-INDEP
+; V78 tmp67 [V78,T31] ( 3, 3 ) int -> r2 "field V58._length (fldOffset=0x4)" P-INDEP
+;* V79 tmp68 [V79 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
+;* V80 tmp69 [V80 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x4)" P-INDEP
+;* V81 tmp70 [V81 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP
+;* V82 tmp71 [V82 ] ( 0, 0 ) int -> zero-ref single-def "field V61._length (fldOffset=0x4)" P-INDEP
+;* V83 tmp72 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V84 tmp73 [V84 ] ( 0, 0 ) int -> zero-ref single-def "field V65._length (fldOffset=0x4)" P-INDEP
+;* V85 tmp74 [V85 ] ( 0, 0 ) ref -> zero-ref single-def "V19.[000..004)"
+;* V86 tmp75 [V86 ] ( 0, 0 ) ref -> zero-ref single-def "V19.[004..008)"
+;* V87 tmp76 [V87 ] ( 0, 0 ) int -> zero-ref "V19.[008..012)"
+;* V88 tmp77 [V88 ] ( 0, 0 ) ubyte -> zero-ref "V19.[012..013)"
+;* V89 tmp78 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "V19.[016..020)"
+;* V90 tmp79 [V90 ] ( 0, 0 ) int -> zero-ref single-def "V19.[020..024)"
+; V91 tmp80 [V91,T23] ( 2, 4 ) ref -> r1 single-def "argument with side effect"
+; V92 tmp81 [V92,T24] ( 2, 4 ) ref -> r3 single-def "argument with side effect"
+; V93 tmp82 [V93,T25] ( 2, 4 ) ref -> r0 single-def "argument with side effect"
; V94 tmp83 [V94,T26] ( 2, 4 ) ref -> r1 single-def "argument with side effect"
-; V95 tmp84 [V95,T53] ( 2, 0 ) ref -> r1 single-def "argument with side effect"
-; V96 tmp85 [V96,T54] ( 2, 0 ) ref -> r1 single-def "argument with side effect"
-; V97 tmp86 [V97,T55] ( 2, 0 ) ref -> r1 single-def "argument with side effect"
-; V98 PSPSym [V98,T44] ( 1, 1 ) int -> [sp+0x48] do-not-enreg[V] "PSPSym"
-;* V99 cse0 [V99,T45] ( 0, 0 ) int -> zero-ref "CSE - moderate"
-; V100 cse1 [V100,T04] ( 8, 8 ) int -> registers multi-def "CSE - aggressive"
+; V95 tmp84 [V95,T50] ( 2, 0 ) ref -> r1 single-def "argument with side effect"
+; V96 tmp85 [V96,T51] ( 2, 0 ) ref -> r1 single-def "argument with side effect"
+; V97 tmp86 [V97,T52] ( 2, 0 ) ref -> r1 single-def "argument with side effect"
+; V98 PSPSym [V98,T41] ( 1, 1 ) int -> [sp+0x48] do-not-enreg[V] "PSPSym"
+;* V99 cse0 [V99,T42] ( 0, 0 ) int -> zero-ref "CSE - moderate"
+; V100 cse1 [V100,T08] ( 7, 7 ) int -> registers multi-def "CSE - aggressive"
; TEMP_01 ref -> [r11-0x58]
;
; Lcl frame size = 76
@@ -129,8 +129,8 @@ G_M19825_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
mov r5, r0
; gcrRegs +[r5]
;; size=32 bbWeight=1 PerfScore 13.00
-G_M19825_IG02: ; bbWeight=1, gcVars=0000400000000000 {V08}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
- ; GC ptr vars +{V08 V46}
+G_M19825_IG02: ; bbWeight=1, gcVars=0000080000000000 {V08}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; GC ptr vars +{V08}
add r2, sp, 64
add r1, sp, 68
mov r0, r5
@@ -169,7 +169,7 @@ G_M19825_IG02: ; bbWeight=1, gcVars=0000400000000000 {V08}, gcrefRegs=002
;; size=64 bbWeight=1 PerfScore 24.00
G_M19825_IG03: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
; gcrRegs -[r4]
- ; GC ptr vars -{V01 V08 V46}
+ ; GC ptr vars -{V01}
movw r0, 0xd1ff
movt r0, 0xd1ff
movw r3, 0xd1ff
@@ -198,9 +198,8 @@ G_M19825_IG03: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
str r4, [sp+0x18] // [V01 loc0]
; GC ptr vars +{V01}
;; size=50 bbWeight=1 PerfScore 17.00
-G_M19825_IG04: ; bbWeight=1, gcVars=0000400000000100 {V01 V08}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref
+G_M19825_IG04: ; bbWeight=1, gcVars=0000080000000080 {V01 V08}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r4]
- ; GC ptr vars +{V08}
ldr r0, [sp+0x18] // [V01 loc0]
; gcrRegs +[r0]
movw r4, 0xd1ff
@@ -217,7 +216,7 @@ G_M19825_IG05: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
ldr r0, [r0]
and r0, r0, 1
cmp r0, 1
- bne G_M19825_IG23
+ bne G_M19825_IG22
;; size=20 bbWeight=1 PerfScore 6.00
G_M19825_IG06: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
@@ -240,7 +239,7 @@ G_M19825_IG06: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
ldr r1, [r1]
; gcrRegs +[r1]
cmp r1, 0
- beq G_M19825_IG22
+ beq G_M19825_IG21
adds r0, r4, 4
; gcrRegs -[r0]
; byrRegs +[r0]
@@ -263,12 +262,12 @@ G_M19825_IG06: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
;; size=92 bbWeight=1 PerfScore 29.00
G_M19825_IG07: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
cmp r5, 0
- beq G_M19825_IG21
- cmp r4, 0
beq G_M19825_IG20
+ cmp r4, 0
+ beq G_M19825_IG19
ldr r6, [r5+0x04]
cmp r6, 0
- bne G_M19825_IG25
+ bne G_M19825_IG24
movw r0, 0xd1ff
movt r0, 0xd1ff
movs r1, 13
@@ -314,16 +313,10 @@ G_M19825_IG08: ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, b
;; size=60 bbWeight=1 PerfScore 20.00
G_M19825_IG09: ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0] +[r6]
- ldr r3, [r5+0x04]
- mov r4, r3
- cmp r4, 0
- bne G_M19825_IG26
+ ldr r0, [r5+0x04]
+ cmp r0, 0
+ bne G_M19825_IG25
movs r7, 0
- ;; size=12 bbWeight=1 PerfScore 5.00
-G_M19825_IG10: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r5]
- cmp r4, 0
- bne SHORT G_M19825_IG11
ldr r0, [sp+0x18] // [V01 loc0]
; gcrRegs +[r0]
movw r4, 0xd1ff
@@ -332,10 +325,10 @@ G_M19825_IG10: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
movt r1, 0xd1ff
ldr r3, [r4]
blx r3 // <unknown method>
- ; gcrRegs -[r0]
+ ; gcrRegs -[r0 r5]
; gcr arg pop 0
- ;; size=26 bbWeight=1 PerfScore 9.00
-G_M19825_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=1 PerfScore 11.00
+G_M19825_IG10: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
...
+2 (+0.48%) : 30741.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ulong]:this (FullOpts)
@@ -15,7 +15,7 @@
; V04 tmp2 [V04,T05] ( 4, 3.50) ref -> r0
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V07 tmp5 [V07,T16] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V07 tmp5 [V07,T15] ( 2, 1 ) ref -> r5 class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V08 tmp6 [V08,T17] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V09 tmp7 [V09 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V10 tmp8 [V10,T18] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -27,7 +27,7 @@
;* V16 tmp14 [V16 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op double-align "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V17 tmp15 [V17,T06] ( 5, 2.50) ref -> r8 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V18 tmp16 [V18,T00] ( 10, 10 ) ref -> r8 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V19 tmp17 [V19,T15] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V19 tmp17 [V19,T16] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V20 tmp18 [V20,T08] ( 3, 3 ) ref -> r0 class-hnd single-def "Inlining Arg" <<unknown class>>
; V21 tmp19 [V21,T02] ( 7, 7 ) struct (32) [sp+0x40] do-not-enreg[S] must-init double-align "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V22 tmp20 [V22,T13] ( 3, 1.50) byref -> r0 single-def "Inline stloc first use temp"
@@ -39,7 +39,7 @@
; V28 tmp26 [V28,T03] ( 7, 7 ) struct (32) [sp+0x20] do-not-enreg[S] must-init double-align "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V30 tmp28 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V31 tmp29 [V31,T07] ( 6, 3 ) int -> r5 "field V12._info (fldOffset=0x0)" P-INDEP
+; V31 tmp29 [V31,T07] ( 6, 3 ) int -> r6 "field V12._info (fldOffset=0x0)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) int -> zero-ref "field V23._info (fldOffset=0x0)" P-INDEP
;* V33 tmp31 [V33 ] ( 0, 0 ) long -> zero-ref "V16.[000..008)"
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[008..012)"
@@ -48,11 +48,11 @@
;* V37 tmp35 [V37 ] ( 0, 0 ) int -> zero-ref "V16.[020..024)"
;* V38 tmp36 [V38 ] ( 0, 0 ) int -> zero-ref "V16.[024..028)"
;* V39 tmp37 [V39 ] ( 0, 0 ) int -> zero-ref "V16.[028..032)"
-;* V40 rat0 [V40,T19] ( 0, 0 ) int -> zero-ref "field V09.lo (fldOffset=0x0)" P-INDEP
-;* V41 rat1 [V41,T20] ( 0, 0 ) int -> zero-ref "field V09.hi (fldOffset=0x4)" P-INDEP
+;* V40 rat0 [V40 ] ( 0, 0 ) int -> zero-ref "field V09.lo (fldOffset=0x0)" P-INDEP
+;* V41 rat1 [V41 ] ( 0, 0 ) int -> zero-ref "field V09.hi (fldOffset=0x4)" P-INDEP
;* V42 rat2 [V42 ] ( 0, 0 ) int -> zero-ref "field V11.lo (fldOffset=0x0)" P-INDEP
;* V43 rat3 [V43 ] ( 0, 0 ) int -> zero-ref "field V11.hi (fldOffset=0x4)" P-INDEP
-; V44 rat4 [V44,T11] ( 4, 2 ) int -> r6 "field V14.lo (fldOffset=0x0)" P-INDEP
+; V44 rat4 [V44,T11] ( 4, 2 ) int -> r5 "field V14.lo (fldOffset=0x0)" P-INDEP
; V45 rat5 [V45,T12] ( 4, 2 ) int -> r7 "field V14.hi (fldOffset=0x4)" P-INDEP
;* V46 rat6 [V46 ] ( 0, 0 ) int -> zero-ref "field V15.lo (fldOffset=0x0)" P-INDEP
;* V47 rat7 [V47 ] ( 0, 0 ) int -> zero-ref "field V15.hi (fldOffset=0x4)" P-INDEP
@@ -84,16 +84,18 @@ G_M62798_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
;; size=8 bbWeight=1 PerfScore 3.00
G_M62798_IG03: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
; gcrRegs -[r0]
+ mov r5, r4
+ ; gcrRegs +[r5]
movs r2, 1
str r2, [sp]
str r2, [sp+0x04]
movs r2, 0
str r2, [sp+0x08]
- ;; size=10 bbWeight=0.50 PerfScore 2.50
-G_M62798_IG04: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+ ;; size=12 bbWeight=0.50 PerfScore 3.00
+G_M62798_IG04: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
str r2, [sp+0x0C]
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
movs r3, 0
movs r0, 0
movs r1, 1
@@ -101,8 +103,8 @@ G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
movt lr, 0xd1ff
ldr lr, [lr]
blx lr // <unknown method>
- mov r5, r0
- mov r0, r4
+ mov r6, r0
+ mov r0, r5
; gcrRegs +[r0]
movs r1, 11
movs r2, 0
@@ -111,19 +113,19 @@ G_M62798_IG05: ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
movt lr, 0xd1ff
ldr lr, [lr]
blx lr // <unknown method>
- ; gcrRegs -[r0]
- mov r6, r0
+ ; gcrRegs -[r0 r5]
+ mov r5, r0
mov r7, r1
ldr r0, [r4+0x58]
; gcrRegs +[r0]
- str r6, [sp+0x40]
+ str r5, [sp+0x40]
str r7, [sp+0x44]
movs r3, 11
str r3, [sp+0x50]
mov r3, -1
str r3, [sp+0x54]
str r3, [sp+0x58]
- str r5, [sp+0x5C]
+ str r6, [sp+0x5C]
ldrsb r3, [r0]
ldr r2, [sp+0x48]
; gcrRegs +[r2]
@@ -177,14 +179,14 @@ G_M62798_IG07: ; bbWeight=0.50, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
str r0, [r8+0x24]
add r0, r8, 8
; byrRegs +[r0]
- str r6, [r0]
+ str r5, [r0]
str r7, [r0+0x04]
- str r5, [r8+0x28]
- ands r0, r5, 32
+ str r6, [r8+0x28]
+ ands r0, r6, 32
; byrRegs -[r0]
cmp r0, 0
beq SHORT G_M62798_IG08
- ands r0, r5, 8
+ ands r0, r6, 8
cmp r0, 0
bne SHORT G_M62798_IG09
;; size=44 bbWeight=0.50 PerfScore 7.00
@@ -214,14 +216,14 @@ G_M62798_IG10: ; bbWeight=0.50, gcrefRegs=0112 {r1 r4 r8}, byrefRegs=0000
; byrRegs -[r0]
ldr r0, [r4+0x58]
; gcrRegs +[r0]
- str r6, [sp+0x20]
+ str r5, [sp+0x20]
str r7, [sp+0x24]
movs r3, 11
str r3, [sp+0x30]
mov r3, -1
str r3, [sp+0x34]
str r3, [sp+0x38]
- str r5, [sp+0x3C]
+ str r6, [sp+0x3C]
ldrsb r3, [r0]
str r8, [sp+0x18]
movs r3, 1
@@ -277,7 +279,7 @@ G_M62798_IG12: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
pop {r4,r5,r6,r7,r8,r10,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 414, prolog size 26, PerfScore 86.00, instruction count 156, allocated bytes for code 414 (MethodHash=03450ab1) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
+; Total bytes of code 416, prolog size 26, PerfScore 86.50, instruction count 157, allocated bytes for code 416 (MethodHash=03450ab1) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
; ============================================================
Unwind Info:
@@ -289,7 +291,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 207 (0x000cf) Actual length = 414 (0x00019e)
+ Function Length : 208 (0x000d0) Actual length = 416 (0x0001a0)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+0.86%) : 434.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
@@ -13,10 +13,10 @@
; V02 arg2 [V02,T05] ( 3, 3 ) int -> r5 single-def
; V03 arg3 [V03,T06] ( 3, 3 ) int -> r6 single-def
; V04 arg4 [V04,T07] ( 1, 1 ) ubyte -> [sp+0x18] single-def
-; V05 loc0 [V05,T00] ( 21, 11.50) int -> r7
+; V05 loc0 [V05,T00] ( 19, 10.50) int -> r7
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 rat0 [V07,T02] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
-; V08 rat1 [V08,T01] ( 4, 8 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V07 rat0 [V07,T01] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
+; V08 rat1 [V08,T02] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -58,7 +58,7 @@ G_M31052_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr r0, [r0]
and r0, r0, 1
cmp r0, 1
- bne SHORT G_M31052_IG22
+ bne SHORT G_M31052_IG21
;; size=18 bbWeight=0.50 PerfScore 3.00
G_M31052_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
@@ -82,7 +82,7 @@ G_M31052_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr r0, [r0]
and r0, r0, 1
cmp r0, 1
- bne SHORT G_M31052_IG23
+ bne SHORT G_M31052_IG22
;; size=22 bbWeight=0.50 PerfScore 3.50
G_M31052_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
@@ -96,47 +96,48 @@ G_M31052_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
orr r7, r7, 96
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M31052_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- subs r1, r4, 1
- cmp r1, 2
- bhi SHORT G_M31052_IG16
- cmp r1, 1
- beq SHORT G_M31052_IG15
- cmp r1, 2
- beq SHORT G_M31052_IG14
- ;; size=14 bbWeight=1 PerfScore 7.00
+ subs r0, r4, 1
+ cmp r0, 2
+ bhi SHORT G_M31052_IG15
+ movw r1, LOW ADDRESS J_M31052_DS24
+ movt r1, HIGH ADDRESS J_M31052_DS24
+
+ J_M31052_DS24 LABEL DWORD
+ DD G_M31052_IG15
+ DD G_M31052_IG14
+ DD G_M31052_IG13
+ ldr pc, [r1+4*r0]
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M31052_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M31052_IG16
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
orr r7, r7, 2
- b SHORT G_M31052_IG16
+ b SHORT G_M31052_IG15
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M31052_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr r7, r7, 1
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M31052_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ands r0, r5, 16
cmp r0, 0
- bne SHORT G_M31052_IG18
+ bne SHORT G_M31052_IG17
;; size=8 bbWeight=1 PerfScore 3.00
-G_M31052_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr r7, r7, 16
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG18: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M31052_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ands r0, r6, 0x80000000
cmp r0, 0
- beq SHORT G_M31052_IG20
+ beq SHORT G_M31052_IG19
;; size=8 bbWeight=1 PerfScore 3.00
-G_M31052_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr r7, r7, 256
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG20: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG19: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov r0, r7
;; size=2 bbWeight=1 PerfScore 1.00
-G_M31052_IG21: ; bbWeight=1, epilog, nogc, extend
+G_M31052_IG20: ; bbWeight=1, epilog, nogc, extend
pop {r4,r5,r6,r7,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M31052_IG22: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M31052_IG21: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
movs r1, 42
@@ -145,7 +146,7 @@ G_M31052_IG22: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
blx r3 // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
b SHORT G_M31052_IG06
;; size=22 bbWeight=0 PerfScore 0.00
-G_M31052_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M31052_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
movs r1, 42
@@ -160,9 +161,12 @@ RWD00 dd G_M31052_IG11
dd G_M31052_IG08
dd G_M31052_IG05
dd G_M31052_IG08
+RWD24 dd G_M31052_IG15
+ dd G_M31052_IG14
+ dd G_M31052_IG13
-; Total bytes of code 232, prolog size 8, PerfScore 48.00, instruction count 80, allocated bytes for code 232 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
+; Total bytes of code 234, prolog size 8, PerfScore 46.50, instruction count 78, allocated bytes for code 234 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
; ============================================================
Unwind Info:
@@ -174,7 +178,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 116 (0x00074) Actual length = 232 (0x0000e8)
+ Function Length : 117 (0x00075) Actual length = 234 (0x0000ea)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+6 (+2.75%) : 271.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable
2[System.Canon,System.Canon]):this (FullOpts)
@@ -15,12 +15,11 @@
; V04 tmp1 [V04,T07] ( 3, 4 ) int -> r1 "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V07 tmp4 [V07,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V08 tmp5 [V08,T00] ( 3, 24 ) ref -> r3 "arr expr"
; V09 cse0 [V09,T02] ( 4, 10 ) ref -> r1 "CSE - aggressive"
-; V10 cse1 [V10,T08] ( 3, 1.50) ref -> r1 "CSE - aggressive"
-; V11 rat0 [V11,T06] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
-; V12 rat1 [V12,T05] ( 3, 5.60) int -> r1 "fgMakeTemp is creating a new local variable"
+; V10 rat0 [V10,T06] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
+; V11 rat1 [V11,T05] ( 3, 5.60) int -> r1 "fgMakeTemp is creating a new local variable"
; TEMP_01 ref -> [r11-0x10]
;
; Lcl frame size = 8
@@ -41,17 +40,16 @@ G_M9941_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
bne SHORT G_M9941_IG04
;; size=4 bbWeight=1 PerfScore 2.00
G_M9941_IG03: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
- mov r0, r1
- ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ; gcrRegs -[r0]
; gcr arg pop 0
- ;; size=22 bbWeight=0.50 PerfScore 3.50
+ ;; size=28 bbWeight=0.50 PerfScore 4.00
G_M9941_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -158,7 +156,7 @@ G_M9941_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byre
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 218, prolog size 20, PerfScore 102.50, instruction count 79, allocated bytes for code 218 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 224, prolog size 20, PerfScore 103.00, instruction count 80, allocated bytes for code 224 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -170,7 +168,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 109 (0x0006d) Actual length = 218 (0x0000da)
+ Function Length : 112 (0x00070) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_pgo.linux.arm.checked.mch
-28 (-45.16%) : 785.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
@@ -5,47 +5,31 @@
; partially interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [sp+0x08] do-not-enreg[]
+; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [sp+0x00] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [r11-0x14]
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M18678_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r10,r11,lr}
- sub sp, 16
- add r11, sp, 24
- movs r1, 0
- str r1, [sp+0x04]
+ push {r2,r3,r4,r10,r11,lr}
+ add r11, sp, 16
str r0, [r11-0x0C]
- str r0, [sp+0x08]
- ;; size=20 bbWeight=1 PerfScore 7.00
+ str r0, [sp]
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M18678_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r0, [sp+0x08]
+ ldr r0, [sp]
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[r0]
- mov r3, r0
- ; byrRegs +[r3]
- str r3, [sp+0x04]
- mov r0, 512
- ; byrRegs -[r0]
- movs r1, 4
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- blx r2 // CORINFO_HELP_UDIV
- ; byrRegs -[r3]
- ldr r3, [sp+0x04]
- ; byrRegs +[r3]
- str r0, [r3+0x08]
- ;; size=36 bbWeight=1 PerfScore 13.00
+ movs r3, 128
+ str r3, [r0+0x08]
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M18678_IG03: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 62, prolog size 18, PerfScore 22.00, instruction count 22, allocated bytes for code 62 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
+; Total bytes of code 34, prolog size 12, PerfScore 11.00, instruction count 11, allocated bytes for code 34 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -57,11 +41,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- 04 add sp, sp, #16 ; opsize 16
- AC 10 pop {r4,r10,r11,lr} ; opsize 32
+ AC 1C pop {r2,r3,r4,r10,r11,lr} ; opsize 32
+ FF end
FF end
-6 (-42.86%) : 49872.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; Tier1 code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
@@ -11,22 +11,20 @@
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V02 tmp2 [V02 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
;; size=4 bbWeight=1 PerfScore 1.00
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 14, prolog size 6, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
+; Total bytes of code 8, prolog size 2, PerfScore 3.00, instruction count 3, allocated bytes for code 8 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
; ============================================================
Unwind Info:
@@ -38,11 +36,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
+ Function Length : 4 (0x00004) Actual length = 8 (0x000008)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-38 (-33.33%) : 2999.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
@@ -5,22 +5,16 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [sp+0x0C] do-not-enreg[] this
+; V00 this [V00 ] ( 1, 1 ) byref -> [sp+0x04] do-not-enreg[] this
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02 ] ( 1, 1 ) int -> [sp+0x08] do-not-enreg[] "argument with side effect"
-; V03 tmp2 [V03 ] ( 1, 1 ) byref -> [sp+0x04] do-not-enreg[] must-init "argument with side effect"
-; TEMP_01 int -> [r11-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M36683_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r4,r10,r11,lr}
- sub sp, 16
- add r11, sp, 24
- movs r1, 0
- str r1, [sp+0x04] // [V03 tmp2]
- str r0, [sp+0x0C] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ push {r2,r3,r4,r10,r11,lr}
+ add r11, sp, 16
+ str r0, [sp+0x04]
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M36683_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -28,41 +22,31 @@ G_M36683_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blx r3 // <unknown method>
cmp r0, 0
beq SHORT G_M36683_IG04
- ldr r3, [sp+0x0C]
+ ldr r3, [sp+0x04]
; byrRegs +[r3]
- ldr r3, [r3]
- str r3, [sp+0x04] // [V03 tmp2]
- ldr r3, [sp+0x0C] // [V00 this]
ldr r3, [r3+0x04]
; byrRegs -[r3]
- str r3, [sp] // [TEMP_01]
- movs r0, 1
- movs r1, 4
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- blx r2 // CORINFO_HELP_UDIV
- ldr r3, [sp] // [TEMP_01]
- mul r3, r3, r0
- str r3, [sp+0x08] // [V02 tmp1]
- ldr r1, [sp+0x08] // [V02 tmp1]
- ldr r0, [sp+0x04] // [V03 tmp2]
+ movs r1, 0
+ ldr r3, [sp+0x04]
+ ; byrRegs +[r3]
+ ldr r0, [r3]
; byrRegs +[r0]
movw r3, 0xd1ff
+ ; byrRegs -[r3]
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
; byrRegs -[r0]
- ;; size=66 bbWeight=1 PerfScore 26.00
+ ;; size=38 bbWeight=1 PerfScore 15.00
G_M36683_IG03: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
G_M36683_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ldr r3, [sp+0x0C] // [V00 this]
+ ldr r3, [sp+0x04]
; byrRegs +[r3]
ldr r0, [r3]
; byrRegs +[r0]
- ldr r3, [sp+0x0C] // [V00 this]
+ ldr r3, [sp+0x04]
ldr r1, [r3+0x04]
movw r3, 0xd1ff
; byrRegs -[r3]
@@ -72,11 +56,10 @@ G_M36683_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs -[r0]
;; size=20 bbWeight=1 PerfScore 8.00
G_M36683_IG05: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 114, prolog size 14, PerfScore 44.00, instruction count 44, allocated bytes for code 114 (MethodHash=0cfe70b4) for method System.Span`1[ubyte]:Clear():this (Tier0)
+; Total bytes of code 76, prolog size 8, PerfScore 28.00, instruction count 28, allocated bytes for code 76 (MethodHash=0cfe70b4) for method System.Span`1[ubyte]:Clear():this (Tier0)
; ============================================================
Unwind Info:
@@ -88,7 +71,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 57 (0x00039) Actual length = 114 (0x000072)
+ Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- 04 add sp, sp, #16 ; opsize 16
- AC 10 pop {r4,r10,r11,lr} ; opsize 32
+ AC 1C pop {r2,r3,r4,r10,r11,lr} ; opsize 32
+ FF end
FF end
+2 (+0.29%) : 18553.dasm - System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan1[ushort],System.Span
1[ushort],byref,byref,ubyte):int:this (Tier0-FullOpts)
@@ -106,13 +106,11 @@
; V95 tmp79 [V95,T26] ( 3, 11 ) int -> r7 "V01.[004..008)"
; V96 tmp80 [V96,T07] ( 5,141 ) byref -> r8 single-def "V02.[000..004)"
; V97 tmp81 [V97,T06] ( 7,149 ) int -> r9 "V02.[004..008)"
-;* V98 tmp82 [V98 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V99 tmp83 [V99 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V100 rat0 [V100,T02] ( 8,428 ) int -> r2 "field V10.lo (fldOffset=0x0)" P-INDEP
-; V101 rat1 [V101,T01] ( 7,436 ) int -> r0 "field V10.hi (fldOffset=0x4)" P-INDEP
-; V102 rat2 [V102,T04] ( 3,384 ) int -> r1 "field V22.lo (fldOffset=0x0)" P-INDEP
-; V103 rat3 [V103,T05] ( 2,256 ) int -> r0 "field V22.hi (fldOffset=0x4)" P-INDEP
-; V104 rat4 [V104,T20] ( 3, 24 ) byref -> r0 "ReplaceWithLclVar is creating a new local variable"
+; V98 rat0 [V98,T02] ( 8,428 ) int -> r2 "field V10.lo (fldOffset=0x0)" P-INDEP
+; V99 rat1 [V99,T01] ( 7,436 ) int -> r0 "field V10.hi (fldOffset=0x4)" P-INDEP
+; V100 rat2 [V100,T04] ( 3,384 ) int -> r1 "field V22.lo (fldOffset=0x0)" P-INDEP
+; V101 rat3 [V101,T05] ( 2,256 ) int -> r0 "field V22.hi (fldOffset=0x4)" P-INDEP
+; V102 rat4 [V102,T20] ( 3, 24 ) byref -> r0 "ReplaceWithLclVar is creating a new local variable"
; TEMP_02 ref -> [r11-0x4C]
; TEMP_01 int -> [r11-0x50]
;
@@ -142,7 +140,7 @@ G_M40789_IG02: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
;; size=22 bbWeight=1 PerfScore 7.00
G_M40789_IG03: ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8}, byref, isz
cmp r10, r7
- bhs G_M40789_IG32
+ bhs G_M40789_IG29
;; size=6 bbWeight=8 PerfScore 16.00
G_M40789_IG04: ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8}, byref, isz
lsl r0, r10, 1
@@ -158,7 +156,7 @@ G_M40789_IG04: ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8},
ldr r0, [r0+0x04]
; byrRegs -[r0]
cmp r3, r9
- bhs G_M40789_IG33
+ bhs G_M40789_IG32
lsls r1, r3, 1
uxtb lr, r2
strh lr, [r8+r1]
@@ -181,7 +179,7 @@ G_M40789_IG07: ; bbWeight=16, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8}
;; size=10 bbWeight=16 PerfScore 64.00
G_M40789_IG08: ; bbWeight=128, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8}, byref, isz
cmp r1, r9
- bhs G_M40789_IG33
+ bhs G_M40789_IG32
add lr, r1, 1
lsls r1, r1, 1
uxtb r12, r2
@@ -254,8 +252,8 @@ G_M40789_IG13: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8},
sub r2, r2, 0xd800
movw r0, 0xd1ff
cmp r2, r0
- bls SHORT G_M40789_IG29
- ;; size=22 bbWeight=2 PerfScore 14.00
+ bls G_M40789_IG33
+ ;; size=24 bbWeight=2 PerfScore 14.00
G_M40789_IG14: ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8}, byref, isz
movw lr, 0xd1ff
str r3, [sp+0x34] // [V07 loc1]
@@ -297,7 +295,7 @@ G_M40789_IG17: ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0140 {r6 r8},
;; size=32 bbWeight=4 PerfScore 40.00
G_M40789_IG18: ; bbWeight=4, gcVars=0000000000008000 {V49}, gcrefRegs=0010 {r4}, byrefRegs=4140 {r6 r8 lr}, gcvars, byref, isz
cmp r12, 0
- beq SHORT G_M40789_IG33
+ beq SHORT G_M40789_IG32
;; size=6 bbWeight=4 PerfScore 8.00
G_M40789_IG19: ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=4140 {r6 r8 lr}, byref, isz
strh r2, [lr]
@@ -397,10 +395,10 @@ G_M40789_IG28: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs -[r4]
; byrRegs -[r6 r8]
ldr r3, [sp+0x34] // [V07 loc1]
- b SHORT G_M40789_IG33
+ b SHORT G_M40789_IG32
;; size=4 bbWeight=2 PerfScore 4.00
G_M40789_IG29: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r0, 2
+ movs r0, 0
;; size=2 bbWeight=0.50 PerfScore 0.50
G_M40789_IG30: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr r4, [sp+0x6C] // [V03 arg3]
@@ -417,11 +415,11 @@ G_M40789_IG31: ; bbWeight=1, epilog, nogc, extend
;; size=10 bbWeight=1 PerfScore 4.00
G_M40789_IG32: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
; byrRegs -[r4]
- movs r0, 0
+ movs r0, 1
b SHORT G_M40789_IG30
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M40789_IG33: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movs r0, 1
+ movs r0, 2
b SHORT G_M40789_IG30
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M40789_IG34: ; bbWeight=0, gcVars=0000000000008000 {V49}, gcrefRegs=0010 {r4}, byrefRegs=4140 {r6 r8 lr}, gcvars, byref, isz
@@ -508,7 +506,7 @@ G_M40789_IG37: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
-; Total bytes of code 686, prolog size 20, PerfScore 2606.50, instruction count 256, allocated bytes for code 686 (MethodHash=94fc60aa) for method System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (Tier0-FullOpts)
+; Total bytes of code 688, prolog size 20, PerfScore 2606.50, instruction count 256, allocated bytes for code 688 (MethodHash=94fc60aa) for method System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -520,7 +518,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 343 (0x00157) Actual length = 686 (0x0002ae)
+ Function Length : 344 (0x00158) Actual length = 688 (0x0002b0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+24 (+0.35%) : 29970.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
@@ -10,12 +10,12 @@
;
; V00 this [V00,T01] ( 43,194.50) ref -> r5 this class-hnd single-def <System.Text.RegularExpressions.Symbolic.RegexNodeConverter>
; V01 arg1 [V01,T219] ( 4, 4 ) ref -> r4 class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-; V02 loc0 [V02,T236] ( 6, 4 ) ref -> [sp+0xD0] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
+; V02 loc0 [V02,T236] ( 6, 4 ) ref -> [sp+0xC0] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V03 loc1 [V03,T17] ( 20,125 ) ref -> r7 class-hnd exact single-def <<unknown class>>
; V04 loc2 [V04 ] ( 7, 32 ) struct (12) [sp+0x3A4] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
; V05 loc3 [V05,T04] ( 26,150.50) ref -> r8 class-hnd <System.Text.RegularExpressions.RegexNode>
; V06 loc4 [V06,T08] ( 19,132 ) ref -> r9 class-hnd <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
-; V07 loc5 [V07,T09] ( 10,132 ) ref -> [sp+0xCC] class-hnd spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V07 loc5 [V07,T09] ( 10,132 ) ref -> [sp+0xBC] class-hnd spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
;* V08 loc6 [V08 ] ( 0, 0 ) ubyte -> zero-ref
;* V09 loc7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V10 loc8 [V10,T31] ( 4, 72 ) ref -> r4 class-hnd exact <System.String>
@@ -24,17 +24,17 @@
; V13 loc11 [V13,T00] ( 14,276 ) int -> r9
; V14 loc12 [V14,T134] ( 5, 14 ) ref -> r4 class-hnd <System.Text.RegularExpressions.Symbolic.BDD>
; V15 loc13 [V15,T208] ( 2, 8 ) ref -> r9 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
-; V16 loc14 [V16,T209] ( 2, 8 ) ref -> [sp+0xC8] class-hnd exact spill-single-def <<unknown class>>
+; V16 loc14 [V16,T209] ( 2, 8 ) ref -> [sp+0xB8] class-hnd exact spill-single-def <<unknown class>>
;* V17 loc15 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V18 loc16 [V18 ] ( 0, 0 ) ubyte -> zero-ref
; V19 loc17 [V19,T207] ( 3, 8 ) ubyte -> r2
;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V21 loc19 [V21,T185] ( 3, 10 ) ref -> r4 class-hnd exact <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T314] ( 2, 0.50) ref -> r6 class-hnd exact <System.String>
-; V23 loc21 [V23,T315] ( 10, 0 ) ref -> r4 class-hnd <System.String>
-; V24 loc22 [V24,T312] ( 6, 1.50) ubyte -> r3
+; V22 loc20 [V22,T310] ( 2, 0.50) ref -> r6 class-hnd exact <System.String>
+; V23 loc21 [V23,T311] ( 10, 0 ) ref -> r4 class-hnd <System.String>
+; V24 loc22 [V24,T308] ( 6, 1.50) ubyte -> r3
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T69] ( 2, 36 ) ref -> r4 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T65] ( 2, 36 ) ref -> r4 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> r8
;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V29 loc27 [V29,T71] ( 6, 24 ) ref -> r8 class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -50,17 +50,17 @@
; V39 tmp2 [V39,T220] ( 3, 6 ) ref -> r7 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V40 tmp3 [V40 ] ( 0, 0 ) struct (12) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
; V41 tmp4 [V41,T12] ( 2,128 ) ref -> r1 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
-; V42 tmp5 [V42,T20] ( 3, 96 ) ref -> [sp+0xC4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
-; V43 tmp6 [V43,T13] ( 2,128 ) ref -> [sp+0xC0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
+; V42 tmp5 [V42,T20] ( 3, 96 ) ref -> [sp+0xB4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
+; V43 tmp6 [V43,T13] ( 2,128 ) ref -> [sp+0xB0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
;* V44 tmp7 [V44 ] ( 0, 0 ) struct (12) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V45 tmp8 [V45,T316] ( 3, 0 ) ref -> r5 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V46 tmp9 [V46,T03] ( 4,160 ) ref -> [sp+0xBC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
-; V47 tmp10 [V47,T84] ( 4, 24 ) ref -> [sp+0xB8] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V45 tmp8 [V45,T312] ( 3, 0 ) ref -> r5 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V46 tmp9 [V46,T03] ( 4,160 ) ref -> [sp+0xAC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V47 tmp10 [V47,T84] ( 4, 24 ) ref -> [sp+0xA8] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
;* V48 tmp11 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]>
;* V49 tmp12 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.CharSetSolver>
; V50 tmp13 [V50,T85] ( 4, 24 ) ref -> r4 class-hnd exact "impAppendStmt" <<unknown class>>
;* V51 tmp14 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.CharSetSolver>
-; V52 tmp15 [V52,T115] ( 2, 16 ) ref -> [sp+0xB4] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V52 tmp15 [V52,T115] ( 2, 16 ) ref -> [sp+0xA4] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
;* V53 tmp16 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V54 tmp17 [V54 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V55 tmp18 [V55 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
@@ -70,17 +70,17 @@
;* V59 tmp22 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
;* V60 tmp23 [V60 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V61 tmp24 [V61 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V62 tmp25 [V62,T33] ( 14, 64 ) ref -> [sp+0xB0]
+; V62 tmp25 [V62,T33] ( 14, 64 ) ref -> [sp+0xA0]
; V63 tmp26 [V63,T72] ( 6, 24 ) ref -> r8
-; V64 tmp27 [V64,T253] ( 3, 2 ) ref -> r8 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V64 tmp27 [V64,T257] ( 3, 2 ) ref -> r8 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V65 tmp28 [V65,T237] ( 3, 5 ) int -> r0 "Inlining Arg"
-; V66 tmp29 [V66,T250] ( 4, 3 ) int -> r2 "Inline stloc first use temp"
-; V67 tmp30 [V67,T252] ( 3, 2.50) ref -> r0 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V66 tmp29 [V66,T254] ( 4, 3 ) int -> r2 "Inline stloc first use temp"
+; V67 tmp30 [V67,T256] ( 3, 2.50) ref -> r0 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V68 tmp31 [V68 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V69 tmp32 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V70 tmp33 [V70,T105] ( 3, 20 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
; V71 tmp34 [V71 ] ( 1, 4 ) ubyte -> [sp+0x39C] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V72 tmp35 [V72,T186] ( 3, 10 ) byref -> [sp+0xAC] spill-single-def "Inline stloc first use temp"
+; V72 tmp35 [V72,T186] ( 3, 10 ) byref -> [sp+0x9C] spill-single-def "Inline stloc first use temp"
; V73 tmp36 [V73,T116] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
; V74 tmp37 [V74,T135] ( 4, 14 ) ref -> r1
;* V75 tmp38 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -92,16 +92,16 @@
;* V81 tmp44 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V82 tmp45 [V82 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V83 tmp46 [V83 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V84 tmp47 [V84,T144] ( 5, 10 ) ref -> [sp+0xA8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V84 tmp47 [V84,T144] ( 5, 10 ) ref -> [sp+0x98] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V85 tmp48 [V85,T50] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V86 tmp49 [V86,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V86 tmp49 [V86,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V87 tmp50 [V87,T163] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V88 tmp51 [V88,T95] ( 5, 20 ) struct (28) [sp+0x380] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V89 tmp52 [V89,T221] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V90 tmp53 [V90 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V91 tmp54 [V91,T256] ( 0, 0 ) ref -> zero-ref
+;* V91 tmp54 [V91,T260] ( 0, 0 ) ref -> zero-ref
;* V92 tmp55 [V92 ] ( 0, 0 ) ref -> zero-ref
-;* V93 tmp56 [V93,T257] ( 0, 0 ) ref -> zero-ref
+;* V93 tmp56 [V93,T261] ( 0, 0 ) ref -> zero-ref
; V94 tmp57 [V94,T164] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V95 tmp58 [V95,T96] ( 5, 20 ) struct (28) [sp+0x364] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V96 tmp59 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -109,7 +109,7 @@
;* V98 tmp61 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V99 tmp62 [V99,T106] ( 3, 20 ) ref -> r8 class-hnd "Inlining Arg" <System.__Canon>
; V100 tmp63 [V100 ] ( 1, 4 ) ubyte -> [sp+0x360] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V101 tmp64 [V101,T187] ( 3, 10 ) byref -> [sp+0xA4] spill-single-def "Inline stloc first use temp"
+; V101 tmp64 [V101,T187] ( 3, 10 ) byref -> [sp+0x94] spill-single-def "Inline stloc first use temp"
; V102 tmp65 [V102,T117] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
; V103 tmp66 [V103,T136] ( 4, 14 ) ref -> r1
;* V104 tmp67 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -121,16 +121,16 @@
;* V110 tmp73 [V110 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V111 tmp74 [V111 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V112 tmp75 [V112 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V113 tmp76 [V113,T145] ( 5, 10 ) ref -> [sp+0xA0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V113 tmp76 [V113,T145] ( 5, 10 ) ref -> [sp+0x90] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V114 tmp77 [V114,T51] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V115 tmp78 [V115,T240] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V115 tmp78 [V115,T244] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V116 tmp79 [V116,T165] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V117 tmp80 [V117,T97] ( 5, 20 ) struct (28) [sp+0x344] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V118 tmp81 [V118,T222] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V119 tmp82 [V119 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V120 tmp83 [V120,T258] ( 0, 0 ) ref -> zero-ref
+;* V120 tmp83 [V120,T262] ( 0, 0 ) ref -> zero-ref
;* V121 tmp84 [V121 ] ( 0, 0 ) ref -> zero-ref
-;* V122 tmp85 [V122,T259] ( 0, 0 ) ref -> zero-ref
+;* V122 tmp85 [V122,T263] ( 0, 0 ) ref -> zero-ref
; V123 tmp86 [V123,T166] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V124 tmp87 [V124,T98] ( 5, 20 ) struct (28) [sp+0x328] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V125 tmp88 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -141,7 +141,7 @@
;* V130 tmp93 [V130 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V131 tmp94 [V131,T107] ( 3, 20 ) ref -> r4 class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
; V132 tmp95 [V132 ] ( 1, 4 ) ubyte -> [sp+0x324] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V133 tmp96 [V133,T188] ( 3, 10 ) byref -> [sp+0x9C] spill-single-def "Inline stloc first use temp"
+; V133 tmp96 [V133,T188] ( 3, 10 ) byref -> [sp+0x8C] spill-single-def "Inline stloc first use temp"
; V134 tmp97 [V134,T118] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
; V135 tmp98 [V135,T137] ( 4, 14 ) ref -> r1
;* V136 tmp99 [V136 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -153,22 +153,22 @@
;* V142 tmp105 [V142 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V143 tmp106 [V143 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V144 tmp107 [V144 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V145 tmp108 [V145,T146] ( 5, 10 ) ref -> [sp+0x98] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V145 tmp108 [V145,T146] ( 5, 10 ) ref -> [sp+0x88] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V146 tmp109 [V146,T52] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V147 tmp110 [V147,T241] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V147 tmp110 [V147,T245] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V148 tmp111 [V148,T167] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V149 tmp112 [V149,T99] ( 5, 20 ) struct (28) [sp+0x308] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V150 tmp113 [V150,T223] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V151 tmp114 [V151 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V152 tmp115 [V152,T260] ( 0, 0 ) ref -> zero-ref
+;* V152 tmp115 [V152,T264] ( 0, 0 ) ref -> zero-ref
;* V153 tmp116 [V153 ] ( 0, 0 ) ref -> zero-ref
-;* V154 tmp117 [V154,T261] ( 0, 0 ) ref -> zero-ref
+;* V154 tmp117 [V154,T265] ( 0, 0 ) ref -> zero-ref
; V155 tmp118 [V155,T168] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V156 tmp119 [V156,T100] ( 5, 20 ) struct (28) [sp+0x2EC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V157 tmp120 [V157 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V158 tmp121 [V158 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V159 tmp122 [V159 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V160 tmp123 [V160,T06] ( 3,144 ) ref -> [sp+0x94] class-hnd exact spill-single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
+; V160 tmp123 [V160,T06] ( 3,144 ) ref -> [sp+0x84] class-hnd exact spill-single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
; V161 tmp124 [V161 ] ( 1, 32 ) ubyte -> [sp+0x2E8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V162 tmp125 [V162,T32] ( 3, 72 ) byref -> r6 "Inline stloc first use temp"
; V163 tmp126 [V163,T14] ( 2,128 ) ref -> r1 class-hnd "dup spill" <System.Object>
@@ -182,8 +182,8 @@
;* V171 tmp134 [V171 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V172 tmp135 [V172 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V173 tmp136 [V173 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V174 tmp137 [V174,T37] ( 5, 40 ) ref -> [sp+0x90] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V175 tmp138 [V175,T02] ( 10,160 ) ref -> [sp+0x8C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V174 tmp137 [V174,T37] ( 5, 40 ) ref -> [sp+0x80] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V175 tmp138 [V175,T02] ( 10,160 ) ref -> [sp+0x7C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V176 tmp139 [V176,T133] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V177 tmp140 [V177,T41] ( 3, 48 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V178 tmp141 [V178,T23] ( 5, 80 ) struct (28) [sp+0x2CC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -202,14 +202,14 @@
; V191 tmp154 [V191,T15] ( 2,128 ) ref -> r3 "CASTCLASS eval op1"
;* V192 tmp155 [V192 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V193 tmp156 [V193,T26] ( 4, 76 ) ref -> r3 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V194 tmp157 [V194,T67] ( 3, 36 ) ref -> r3 "CASTCLASS eval op1"
+; V194 tmp157 [V194,T63] ( 3, 36 ) ref -> r3 "CASTCLASS eval op1"
; V195 tmp158 [V195,T108] ( 3, 20 ) int -> r12 "fgMakeTemp is creating a new local variable"
; V196 tmp159 [V196,T28] ( 6, 76 ) ref -> lr class-hnd "spilling QMark2" <<unknown class>>
; V197 tmp160 [V197,T43] ( 3, 48 ) ref -> r0 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V198 tmp161 [V198,T16] ( 2,128 ) ref -> r0 "CASTCLASS eval op1"
;* V199 tmp162 [V199 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V200 tmp163 [V200,T27] ( 4, 76 ) ref -> r0 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V201 tmp164 [V201,T68] ( 3, 36 ) ref -> r1 "CASTCLASS eval op1"
+; V201 tmp164 [V201,T64] ( 3, 36 ) ref -> r1 "CASTCLASS eval op1"
; V202 tmp165 [V202,T109] ( 3, 20 ) int -> r12 "fgMakeTemp is creating a new local variable"
; V203 tmp166 [V203,T29] ( 6, 76 ) ref -> lr class-hnd "spilling QMark2" <<unknown class>>
; V204 tmp167 [V204,T44] ( 3, 48 ) ref -> r2 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
@@ -218,7 +218,7 @@
; V207 tmp170 [V207,T25] ( 4, 80 ) ref -> r0 class-hnd "Inline stloc first use temp" <<unknown class>>
;* V208 tmp171 [V208 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V209 tmp172 [V209 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V210 tmp173 [V210,T87] ( 4, 24 ) ref -> [sp+0x88] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V210 tmp173 [V210,T87] ( 4, 24 ) ref -> [sp+0x78] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
; V211 tmp174 [V211 ] ( 1, 4 ) ubyte -> [sp+0x2A4] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V212 tmp175 [V212,T190] ( 3, 10 ) byref -> r6 "Inline stloc first use temp"
; V213 tmp176 [V213,T119] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
@@ -232,21 +232,21 @@
;* V221 tmp184 [V221 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V222 tmp185 [V222 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V223 tmp186 [V223 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V224 tmp187 [V224,T147] ( 5, 10 ) ref -> [sp+0x84] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V224 tmp187 [V224,T147] ( 5, 10 ) ref -> [sp+0x74] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V225 tmp188 [V225,T53] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V226 tmp189 [V226,T242] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V226 tmp189 [V226,T246] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V227 tmp190 [V227,T169] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V228 tmp191 [V228,T101] ( 5, 20 ) struct (28) [sp+0x288] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V229 tmp192 [V229,T224] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V230 tmp193 [V230 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V231 tmp194 [V231,T262] ( 0, 0 ) ref -> zero-ref
+;* V231 tmp194 [V231,T266] ( 0, 0 ) ref -> zero-ref
;* V232 tmp195 [V232 ] ( 0, 0 ) ref -> zero-ref
-;* V233 tmp196 [V233,T263] ( 0, 0 ) ref -> zero-ref
+;* V233 tmp196 [V233,T267] ( 0, 0 ) ref -> zero-ref
; V234 tmp197 [V234,T170] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V235 tmp198 [V235,T102] ( 5, 20 ) struct (28) [sp+0x26C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V236 tmp199 [V236 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V237 tmp200 [V237 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V238 tmp201 [V238,T88] ( 4, 24 ) ref -> [sp+0x80] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V238 tmp201 [V238,T88] ( 4, 24 ) ref -> [sp+0x70] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
; V239 tmp202 [V239 ] ( 1, 4 ) ubyte -> [sp+0x268] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V240 tmp203 [V240,T191] ( 3, 10 ) byref -> r6 "Inline stloc first use temp"
; V241 tmp204 [V241,T120] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
@@ -260,147 +260,147 @@
;* V249 tmp212 [V249 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V250 tmp213 [V250 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V251 tmp214 [V251 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V252 tmp215 [V252,T148] ( 5, 10 ) ref -> [sp+0x7C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V252 tmp215 [V252,T148] ( 5, 10 ) ref -> [sp+0x6C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V253 tmp216 [V253,T54] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V254 tmp217 [V254,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V254 tmp217 [V254,T247] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V255 tmp218 [V255,T171] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V256 tmp219 [V256,T103] ( 5, 20 ) struct (28) [sp+0x24C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V257 tmp220 [V257,T225] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V258 tmp221 [V258 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
...
+10 (+1.47%) : 93376.dasm - System.Threading.Tasks.TaskReplicator+Replica:.ctor(System.Threading.Tasks.TaskReplicator,int,long):this (Tier1)
@@ -17,7 +17,7 @@
; V05 tmp1 [V05,T16] ( 2, 4 ) ref -> r5 class-hnd single-def "dup spill" <System.Action`1[System.Object]>
; V06 tmp2 [V06,T19] ( 2, 2 ) ref -> r6 single-def
; V07 tmp3 [V07,T13] ( 5, 4 ) ref -> r5
-; V08 tmp4 [V08,T05] ( 15, 18 ) ref -> r7 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+; V08 tmp4 [V08,T05] ( 16, 18 ) ref -> r7 class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
; V09 tmp5 [V09,T25] ( 4, 0 ) ref -> r5 class-hnd exact single-def "NewObj constructor temp" <System.Action`1[System.Object]>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V11 tmp7 [V11 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
@@ -35,31 +35,27 @@
;* V23 tmp19 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp21 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp22 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp23 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V28 tmp24 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V29 tmp25 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V30 tmp26 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" <System.Threading.ExecutionContext>
-; V31 tmp27 [V31,T10] ( 9, 5 ) ref -> r8 class-hnd "Inline stloc first use temp" <System.Threading.ExecutionContext>
-; V32 tmp28 [V32,T17] ( 2, 4 ) ref -> r3 class-hnd exact single-def "dup spill" <System.Threading.Thread>
-; V33 tmp29 [V33,T14] ( 4, 4 ) ref -> r3
-; V34 tmp30 [V34,T15] ( 3, 4 ) ref -> r9 class-hnd single-def "Inlining Arg" <<unknown class>>
-;* V35 tmp31 [V35,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V36 tmp32 [V36,T00] ( 5, 52 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
-; V37 tmp33 [V37,T07] ( 3, 17 ) ref -> r5 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V38 tmp34 [V38,T01] ( 7, 49 ) int -> r7 "Inline stloc first use temp"
-; V39 tmp35 [V39,T03] ( 3, 24 ) int -> r1 "Inline stloc first use temp"
-;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V41 tmp37 [V41,T04] ( 3, 24 ) int -> r10 "Inline stloc first use temp"
-; V42 tmp38 [V42,T02] ( 3, 48 ) byref -> r0 "Inlining Arg"
-;* V43 tmp39 [V43 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V44 tmp40 [V44 ] ( 0, 0 ) ref -> zero-ref single-def "field V10._source (fldOffset=0x0)" P-INDEP
-;* V45 tmp41 [V45 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
-;* V46 tmp42 [V46,T22] ( 0, 0 ) ref -> zero-ref single-def "field V19._source (fldOffset=0x0)" P-INDEP
-; V47 cse0 [V47,T06] ( 4, 18 ) byref -> r8 "CSE - aggressive"
-; V48 rat0 [V48,T23] ( 1, 1 ) int -> [sp+0x28] do-not-enreg[] "field V03.lo (fldOffset=0x0)" P-DEP
-; V49 rat1 [V49,T24] ( 1, 1 ) int -> [sp+0x2C] do-not-enreg[] "field V03.hi (fldOffset=0x4)" P-DEP
-; V50 rat2 [V50,T09] ( 3, 6 ) byref -> r0 "ReplaceWithLclVar is creating a new local variable"
+;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" <System.Threading.ExecutionContext>
+; V27 tmp23 [V27,T10] ( 9, 5 ) ref -> r8 class-hnd "Inline stloc first use temp" <System.Threading.ExecutionContext>
+; V28 tmp24 [V28,T17] ( 2, 4 ) ref -> r3 class-hnd exact single-def "dup spill" <System.Threading.Thread>
+; V29 tmp25 [V29,T14] ( 4, 4 ) ref -> r3
+; V30 tmp26 [V30,T15] ( 3, 4 ) ref -> r9 class-hnd single-def "Inlining Arg" <<unknown class>>
+;* V31 tmp27 [V31,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V32 tmp28 [V32,T00] ( 5, 52 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
+; V33 tmp29 [V33,T07] ( 3, 17 ) ref -> r7 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V34 tmp30 [V34,T01] ( 7, 49 ) int -> r5 "Inline stloc first use temp"
+; V35 tmp31 [V35,T03] ( 3, 24 ) int -> r1 "Inline stloc first use temp"
+;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V37 tmp33 [V37,T04] ( 3, 24 ) int -> r10 "Inline stloc first use temp"
+; V38 tmp34 [V38,T02] ( 3, 48 ) byref -> r0 "Inlining Arg"
+;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref single-def "field V10._source (fldOffset=0x0)" P-INDEP
+;* V41 tmp37 [V41 ] ( 0, 0 ) ref -> zero-ref single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V42 tmp38 [V42,T22] ( 0, 0 ) ref -> zero-ref single-def "field V19._source (fldOffset=0x0)" P-INDEP
+; V43 cse0 [V43,T06] ( 4, 18 ) byref -> r8 "CSE - aggressive"
+; V44 rat0 [V44,T23] ( 1, 1 ) int -> [sp+0x28] do-not-enreg[] "field V03.lo (fldOffset=0x0)" P-DEP
+; V45 rat1 [V45,T24] ( 1, 1 ) int -> [sp+0x2C] do-not-enreg[] "field V03.hi (fldOffset=0x4)" P-DEP
+; V46 rat2 [V46,T09] ( 3, 6 ) byref -> r0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 4
@@ -132,29 +128,22 @@ G_M30571_IG03: ; bbWeight=1, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
ldr r0, [r7+0x1C]
dmb 15
cmp r0, 0
- beq SHORT G_M30571_IG04
- movw r0, 0xd1ff
- movt r0, 0xd1ff
- movw r1, 0xd1ff
- movt r1, 0xd1ff
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // <unknown method>
- ; gcr arg pop 0
- ;; size=98 bbWeight=1 PerfScore 32.00
-G_M30571_IG04: ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
+ bne G_M30571_IG20
ldr r0, [r7+0x04]
; gcrRegs +[r0]
cmp r0, 0
- beq G_M30571_IG20
+ beq G_M30571_IG21
+ ;; size=80 bbWeight=1 PerfScore 27.00
+G_M30571_IG04: ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r0]
movs r5, 0
dmb 15
str r5, [r7+0x1C]
ldr r0, [r7+0x14]
+ ; gcrRegs +[r0]
cmp r0, 0
- bne G_M30571_IG21
- ;; size=24 bbWeight=1 PerfScore 9.00
+ bne G_M30571_IG22
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M30571_IG05: ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
movw r0, 0xd1ff
@@ -185,7 +174,7 @@ G_M30571_IG06: ; bbWeight=1, gcrefRegs=0098 {r3 r4 r7}, byrefRegs=0000 {}
ldr r8, [r3+0x04]
; gcrRegs +[r8]
cmp r8, 0
- bne G_M30571_IG24
+ bne G_M30571_IG25
movw r1, 0xd1ff
movt r1, 0xd1ff
ldr r8, [r1]
@@ -193,7 +182,7 @@ G_M30571_IG06: ; bbWeight=1, gcrefRegs=0098 {r3 r4 r7}, byrefRegs=0000 {}
G_M30571_IG07: ; bbWeight=1, gcrefRegs=0190 {r4 r7 r8}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r3]
cmp r8, 0
- beq G_M30571_IG25
+ beq G_M30571_IG26
;; size=8 bbWeight=1 PerfScore 2.00
G_M30571_IG08: ; bbWeight=1, gcrefRegs=0190 {r4 r7 r8}, byrefRegs=0000 {}, byref, isz
movw r1, 0xd1ff
@@ -201,7 +190,7 @@ G_M30571_IG08: ; bbWeight=1, gcrefRegs=0190 {r4 r7 r8}, byrefRegs=0000 {}
ldr r1, [r1]
; gcrRegs +[r1]
cmp r8, r1
- bne G_M30571_IG26
+ bne G_M30571_IG27
;; size=16 bbWeight=1 PerfScore 5.00
G_M30571_IG09: ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
; gcrRegs -[r1 r8]
@@ -221,54 +210,54 @@ G_M30571_IG09: ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
ldr r6, [r9+0x08]
; gcrRegs +[r6]
dmb 15
- ldr r5, [r6+0x04]
- ; gcrRegs +[r5]
+ ldr r7, [r6+0x04]
+ ; gcrRegs +[r7]
;; size=32 bbWeight=1 PerfScore 10.00
-G_M30571_IG10: ; bbWeight=8, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+G_M30571_IG10: ; bbWeight=8, gcrefRegs=02D0 {r4 r6 r7 r9}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r1]
- ldr r7, [r6+0x94]
+ ldr r5, [r6+0x94]
dmb 15
ldr r1, [r6+0x0C]
- ands r1, r7
- ldr r0, [r5+0x04]
+ ands r1, r5
+ ldr r0, [r7+0x04]
cmp r1, r0
bhs SHORT G_M30571_IG17
lsls r1, r1, 3
adds r1, 8
- add r8, r5, r1
+ add r8, r7, r1
; byrRegs +[r8]
ldr r1, [r8+0x04]
dmb 15
- sub r10, r1, r7
+ sub r10, r1, r5
cmp r10, 0
bne SHORT G_M30571_IG12
add r0, r6, 148
; byrRegs +[r0]
cmp r0, 0
beq SHORT G_M30571_IG14
- adds r1, r7, 1
- mov r2, r7
+ adds r1, r5, 1
+ mov r2, r5
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // <unknown method>
; byrRegs -[r0]
; gcr arg pop 0
- cmp r0, r7
+ cmp r0, r5
bne SHORT G_M30571_IG10
;; size=70 bbWeight=8 PerfScore 200.00
G_M30571_IG11: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0100 {r8}, byref, isz
- ; gcrRegs -[r5-r6 r9]
+ ; gcrRegs -[r6-r7 r9]
b SHORT G_M30571_IG15
;; size=2 bbWeight=1 PerfScore 1.00
-G_M30571_IG12: ; bbWeight=8, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[r5-r6 r9]
+G_M30571_IG12: ; bbWeight=8, gcrefRegs=02D0 {r4 r6 r7 r9}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r6-r7 r9]
; byrRegs -[r8]
cmp r10, 0
bge SHORT G_M30571_IG10
;; size=6 bbWeight=8 PerfScore 16.00
G_M30571_IG13: ; bbWeight=1, gcrefRegs=0210 {r4 r9}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r5-r6]
- b SHORT G_M30571_IG27
+ ; gcrRegs -[r6-r7]
+ b SHORT G_M30571_IG28
;; size=2 bbWeight=1 PerfScore 1.00
G_M30571_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[r4 r9]
@@ -291,7 +280,7 @@ G_M30571_IG15: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0100 {r8}, by
blx r12 // CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[r1 r4]
; byrRegs -[r0]
- adds r0, r7, 1
+ adds r0, r5, 1
dmb 15
str r0, [r8+0x04]
;; size=24 bbWeight=1 PerfScore 8.00
@@ -351,6 +340,22 @@ G_M30571_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=16 bbWeight=0 PerfScore 0.00
G_M30571_IG20: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r4 r7]
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
+ movw r1, 0xd1ff
+ movt r1, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ ; gcr arg pop 0
+ ldr r0, [r7+0x04]
+ ; gcrRegs +[r0]
+ cmp r0, 0
+ bne G_M30571_IG04
+ ;; size=36 bbWeight=0 PerfScore 0.00
+G_M30571_IG21: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r0]
mov r5, 0x2000000
dmb 15
str r5, [r7+0x1C]
@@ -359,21 +364,21 @@ G_M30571_IG20: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
cmp r0, 0
beq G_M30571_IG05
;; size=18 bbWeight=0 PerfScore 0.00
-G_M30571_IG21: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
+G_M30571_IG22: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0]
ldr r0, [r7+0x14]
; gcrRegs +[r0]
ldr r0, [r0+0x04]
cmp r0, 0
- beq SHORT G_M30571_IG22
+ beq SHORT G_M30571_IG23
movs r0, 0
; gcrRegs -[r0]
- b SHORT G_M30571_IG23
+ b SHORT G_M30571_IG24
;; size=12 bbWeight=0 PerfScore 0.00
-G_M30571_IG22: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
+G_M30571_IG23: ; bbWeight=0, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
...
benchmarks.run_tiered.linux.arm.checked.mch
-28 (-45.16%) : 747.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
@@ -5,47 +5,31 @@
; partially interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [sp+0x08] do-not-enreg[]
+; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [sp+0x00] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [r11-0x14]
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M18678_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r10,r11,lr}
- sub sp, 16
- add r11, sp, 24
- movs r1, 0
- str r1, [sp+0x04]
+ push {r2,r3,r4,r10,r11,lr}
+ add r11, sp, 16
str r0, [r11-0x0C]
- str r0, [sp+0x08]
- ;; size=20 bbWeight=1 PerfScore 7.00
+ str r0, [sp]
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M18678_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r0, [sp+0x08]
+ ldr r0, [sp]
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[r0]
- mov r3, r0
- ; byrRegs +[r3]
- str r3, [sp+0x04]
- mov r0, 512
- ; byrRegs -[r0]
- movs r1, 4
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- blx r2 // CORINFO_HELP_UDIV
- ; byrRegs -[r3]
- ldr r3, [sp+0x04]
- ; byrRegs +[r3]
- str r0, [r3+0x08]
- ;; size=36 bbWeight=1 PerfScore 13.00
+ movs r3, 128
+ str r3, [r0+0x08]
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M18678_IG03: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 62, prolog size 18, PerfScore 22.00, instruction count 22, allocated bytes for code 62 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
+; Total bytes of code 34, prolog size 12, PerfScore 11.00, instruction count 11, allocated bytes for code 34 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -57,11 +41,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- 04 add sp, sp, #16 ; opsize 16
- AC 10 pop {r4,r10,r11,lr} ; opsize 32
+ AC 1C pop {r2,r3,r4,r10,r11,lr} ; opsize 32
+ FF end
FF end
-6 (-42.86%) : 18293.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; Tier1 code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
@@ -12,23 +12,20 @@
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
;; size=4 bbWeight=1 PerfScore 1.00
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 14, prolog size 6, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
+; Total bytes of code 8, prolog size 2, PerfScore 3.00, instruction count 3, allocated bytes for code 8 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
; ============================================================
Unwind Info:
@@ -40,11 +37,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
+ Function Length : 4 (0x00004) Actual length = 8 (0x000008)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-38 (-33.33%) : 5704.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
@@ -5,22 +5,16 @@
; partially interruptible
; Final local variable assignments
;
-; V00 this [V00 ] ( 1, 1 ) byref -> [sp+0x0C] do-not-enreg[] this
+; V00 this [V00 ] ( 1, 1 ) byref -> [sp+0x04] do-not-enreg[] this
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V02 tmp1 [V02 ] ( 1, 1 ) int -> [sp+0x08] do-not-enreg[] "argument with side effect"
-; V03 tmp2 [V03 ] ( 1, 1 ) byref -> [sp+0x04] do-not-enreg[] must-init "argument with side effect"
-; TEMP_01 int -> [r11-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M36683_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push {r4,r10,r11,lr}
- sub sp, 16
- add r11, sp, 24
- movs r1, 0
- str r1, [sp+0x04] // [V03 tmp2]
- str r0, [sp+0x0C] // [V00 this]
- ;; size=16 bbWeight=1 PerfScore 6.00
+ push {r2,r3,r4,r10,r11,lr}
+ add r11, sp, 16
+ str r0, [sp+0x04]
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M36683_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -28,41 +22,31 @@ G_M36683_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
blx r3 // <unknown method>
cmp r0, 0
beq SHORT G_M36683_IG04
- ldr r3, [sp+0x0C]
+ ldr r3, [sp+0x04]
; byrRegs +[r3]
- ldr r3, [r3]
- str r3, [sp+0x04] // [V03 tmp2]
- ldr r3, [sp+0x0C] // [V00 this]
ldr r3, [r3+0x04]
; byrRegs -[r3]
- str r3, [sp] // [TEMP_01]
- movs r0, 1
- movs r1, 4
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- blx r2 // CORINFO_HELP_UDIV
- ldr r3, [sp] // [TEMP_01]
- mul r3, r3, r0
- str r3, [sp+0x08] // [V02 tmp1]
- ldr r1, [sp+0x08] // [V02 tmp1]
- ldr r0, [sp+0x04] // [V03 tmp2]
+ movs r1, 0
+ ldr r3, [sp+0x04]
+ ; byrRegs +[r3]
+ ldr r0, [r3]
; byrRegs +[r0]
movw r3, 0xd1ff
+ ; byrRegs -[r3]
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
; byrRegs -[r0]
- ;; size=66 bbWeight=1 PerfScore 26.00
+ ;; size=38 bbWeight=1 PerfScore 15.00
G_M36683_IG03: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
G_M36683_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ldr r3, [sp+0x0C] // [V00 this]
+ ldr r3, [sp+0x04]
; byrRegs +[r3]
ldr r0, [r3]
; byrRegs +[r0]
- ldr r3, [sp+0x0C] // [V00 this]
+ ldr r3, [sp+0x04]
ldr r1, [r3+0x04]
movw r3, 0xd1ff
; byrRegs -[r3]
@@ -72,11 +56,10 @@ G_M36683_IG04: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
; byrRegs -[r0]
;; size=20 bbWeight=1 PerfScore 8.00
G_M36683_IG05: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 114, prolog size 14, PerfScore 44.00, instruction count 44, allocated bytes for code 114 (MethodHash=0cfe70b4) for method System.Span`1[ubyte]:Clear():this (Tier0)
+; Total bytes of code 76, prolog size 8, PerfScore 28.00, instruction count 28, allocated bytes for code 76 (MethodHash=0cfe70b4) for method System.Span`1[ubyte]:Clear():this (Tier0)
; ============================================================
Unwind Info:
@@ -88,7 +71,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 57 (0x00039) Actual length = 114 (0x000072)
+ Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
Epilog Start Index : 0 (0x00)
---- Unwind codes ----
---- Epilog start at index 0 ----
- 04 add sp, sp, #16 ; opsize 16
- AC 10 pop {r4,r10,r11,lr} ; opsize 32
+ AC 1C pop {r2,r3,r4,r10,r11,lr} ; opsize 32
+ FF end
FF end
+24 (+0.35%) : 22656.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
@@ -10,12 +10,12 @@
;
; V00 this [V00,T01] ( 43,194.50) ref -> r5 this class-hnd single-def <System.Text.RegularExpressions.Symbolic.RegexNodeConverter>
; V01 arg1 [V01,T219] ( 4, 4 ) ref -> r4 class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-; V02 loc0 [V02,T236] ( 6, 4 ) ref -> [sp+0xD0] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
+; V02 loc0 [V02,T236] ( 6, 4 ) ref -> [sp+0xC0] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V03 loc1 [V03,T17] ( 20,125 ) ref -> r7 class-hnd exact single-def <<unknown class>>
; V04 loc2 [V04 ] ( 7, 32 ) struct (12) [sp+0x3A4] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
; V05 loc3 [V05,T04] ( 26,150.50) ref -> r8 class-hnd <System.Text.RegularExpressions.RegexNode>
; V06 loc4 [V06,T08] ( 19,132 ) ref -> r9 class-hnd <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
-; V07 loc5 [V07,T09] ( 10,132 ) ref -> [sp+0xCC] class-hnd spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V07 loc5 [V07,T09] ( 10,132 ) ref -> [sp+0xBC] class-hnd spill-single-def <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
;* V08 loc6 [V08 ] ( 0, 0 ) ubyte -> zero-ref
;* V09 loc7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V10 loc8 [V10,T31] ( 4, 72 ) ref -> r8 class-hnd exact <System.String>
@@ -24,17 +24,17 @@
; V13 loc11 [V13,T00] ( 14,276 ) int -> r9
; V14 loc12 [V14,T134] ( 5, 14 ) ref -> r4 class-hnd <System.Text.RegularExpressions.Symbolic.BDD>
; V15 loc13 [V15,T208] ( 2, 8 ) ref -> r9 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
-; V16 loc14 [V16,T209] ( 2, 8 ) ref -> [sp+0xC8] class-hnd exact spill-single-def <<unknown class>>
+; V16 loc14 [V16,T209] ( 2, 8 ) ref -> [sp+0xB8] class-hnd exact spill-single-def <<unknown class>>
;* V17 loc15 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V18 loc16 [V18 ] ( 0, 0 ) ubyte -> zero-ref
; V19 loc17 [V19,T207] ( 3, 8 ) ubyte -> r2
;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V21 loc19 [V21,T185] ( 3, 10 ) ref -> r4 class-hnd exact <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T314] ( 2, 0.50) ref -> r6 class-hnd exact <System.String>
-; V23 loc21 [V23,T315] ( 10, 0 ) ref -> r4 class-hnd <System.String>
-; V24 loc22 [V24,T312] ( 6, 1.50) ubyte -> r3
+; V22 loc20 [V22,T310] ( 2, 0.50) ref -> r6 class-hnd exact <System.String>
+; V23 loc21 [V23,T311] ( 10, 0 ) ref -> r4 class-hnd <System.String>
+; V24 loc22 [V24,T308] ( 6, 1.50) ubyte -> r3
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T69] ( 2, 36 ) ref -> r4 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T65] ( 2, 36 ) ref -> r4 class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> r8
;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V29 loc27 [V29,T71] ( 6, 24 ) ref -> r8 class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -50,17 +50,17 @@
; V39 tmp2 [V39,T220] ( 3, 6 ) ref -> r7 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V40 tmp3 [V40 ] ( 0, 0 ) struct (12) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
; V41 tmp4 [V41,T12] ( 2,128 ) ref -> r1 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
-; V42 tmp5 [V42,T20] ( 3, 96 ) ref -> [sp+0xC4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
-; V43 tmp6 [V43,T13] ( 2,128 ) ref -> [sp+0xC0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
+; V42 tmp5 [V42,T20] ( 3, 96 ) ref -> [sp+0xB4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
+; V43 tmp6 [V43,T13] ( 2,128 ) ref -> [sp+0xB0] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
;* V44 tmp7 [V44 ] ( 0, 0 ) struct (12) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V45 tmp8 [V45,T316] ( 3, 0 ) ref -> r5 class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V46 tmp9 [V46,T03] ( 4,160 ) ref -> [sp+0xBC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
-; V47 tmp10 [V47,T84] ( 4, 24 ) ref -> [sp+0xB8] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V45 tmp8 [V45,T312] ( 3, 0 ) ref -> r5 class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V46 tmp9 [V46,T03] ( 4,160 ) ref -> [sp+0xAC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V47 tmp10 [V47,T84] ( 4, 24 ) ref -> [sp+0xA8] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
;* V48 tmp11 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]>
;* V49 tmp12 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.CharSetSolver>
; V50 tmp13 [V50,T85] ( 4, 24 ) ref -> r4 class-hnd exact "impAppendStmt" <<unknown class>>
;* V51 tmp14 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.CharSetSolver>
-; V52 tmp15 [V52,T115] ( 2, 16 ) ref -> [sp+0xB4] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+; V52 tmp15 [V52,T115] ( 2, 16 ) ref -> [sp+0xA4] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
;* V53 tmp16 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V54 tmp17 [V54 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V55 tmp18 [V55 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
@@ -70,17 +70,17 @@
;* V59 tmp22 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
;* V60 tmp23 [V60 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V61 tmp24 [V61 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V62 tmp25 [V62,T33] ( 14, 64 ) ref -> [sp+0xB0]
+; V62 tmp25 [V62,T33] ( 14, 64 ) ref -> [sp+0xA0]
; V63 tmp26 [V63,T72] ( 6, 24 ) ref -> r8
-; V64 tmp27 [V64,T253] ( 3, 2 ) ref -> r8 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V64 tmp27 [V64,T257] ( 3, 2 ) ref -> r8 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V65 tmp28 [V65,T237] ( 3, 5 ) int -> r0 "Inlining Arg"
-; V66 tmp29 [V66,T250] ( 4, 3 ) int -> r2 "Inline stloc first use temp"
-; V67 tmp30 [V67,T252] ( 3, 2.50) ref -> r0 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V66 tmp29 [V66,T254] ( 4, 3 ) int -> r2 "Inline stloc first use temp"
+; V67 tmp30 [V67,T256] ( 3, 2.50) ref -> r0 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V68 tmp31 [V68 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V69 tmp32 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V70 tmp33 [V70,T105] ( 3, 20 ) ref -> r8 class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
; V71 tmp34 [V71 ] ( 1, 4 ) ubyte -> [sp+0x39C] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V72 tmp35 [V72,T186] ( 3, 10 ) byref -> [sp+0xAC] spill-single-def "Inline stloc first use temp"
+; V72 tmp35 [V72,T186] ( 3, 10 ) byref -> [sp+0x9C] spill-single-def "Inline stloc first use temp"
; V73 tmp36 [V73,T116] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
; V74 tmp37 [V74,T135] ( 4, 14 ) ref -> r1
;* V75 tmp38 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -92,16 +92,16 @@
;* V81 tmp44 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V82 tmp45 [V82 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V83 tmp46 [V83 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V84 tmp47 [V84,T144] ( 5, 10 ) ref -> [sp+0xA8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V84 tmp47 [V84,T144] ( 5, 10 ) ref -> [sp+0x98] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V85 tmp48 [V85,T50] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V86 tmp49 [V86,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V86 tmp49 [V86,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V87 tmp50 [V87,T163] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V88 tmp51 [V88,T95] ( 5, 20 ) struct (28) [sp+0x380] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V89 tmp52 [V89,T221] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V90 tmp53 [V90 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V91 tmp54 [V91,T256] ( 0, 0 ) ref -> zero-ref
+;* V91 tmp54 [V91,T260] ( 0, 0 ) ref -> zero-ref
;* V92 tmp55 [V92 ] ( 0, 0 ) ref -> zero-ref
-;* V93 tmp56 [V93,T257] ( 0, 0 ) ref -> zero-ref
+;* V93 tmp56 [V93,T261] ( 0, 0 ) ref -> zero-ref
; V94 tmp57 [V94,T164] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V95 tmp58 [V95,T96] ( 5, 20 ) struct (28) [sp+0x364] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V96 tmp59 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -109,7 +109,7 @@
;* V98 tmp61 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V99 tmp62 [V99,T106] ( 3, 20 ) ref -> r8 class-hnd "Inlining Arg" <System.__Canon>
; V100 tmp63 [V100 ] ( 1, 4 ) ubyte -> [sp+0x360] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V101 tmp64 [V101,T187] ( 3, 10 ) byref -> [sp+0xA4] spill-single-def "Inline stloc first use temp"
+; V101 tmp64 [V101,T187] ( 3, 10 ) byref -> [sp+0x94] spill-single-def "Inline stloc first use temp"
; V102 tmp65 [V102,T117] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
; V103 tmp66 [V103,T136] ( 4, 14 ) ref -> r1
;* V104 tmp67 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -121,16 +121,16 @@
;* V110 tmp73 [V110 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V111 tmp74 [V111 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V112 tmp75 [V112 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V113 tmp76 [V113,T145] ( 5, 10 ) ref -> [sp+0xA0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V113 tmp76 [V113,T145] ( 5, 10 ) ref -> [sp+0x90] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V114 tmp77 [V114,T51] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V115 tmp78 [V115,T240] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V115 tmp78 [V115,T244] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V116 tmp79 [V116,T165] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V117 tmp80 [V117,T97] ( 5, 20 ) struct (28) [sp+0x344] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V118 tmp81 [V118,T222] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V119 tmp82 [V119 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V120 tmp83 [V120,T258] ( 0, 0 ) ref -> zero-ref
+;* V120 tmp83 [V120,T262] ( 0, 0 ) ref -> zero-ref
;* V121 tmp84 [V121 ] ( 0, 0 ) ref -> zero-ref
-;* V122 tmp85 [V122,T259] ( 0, 0 ) ref -> zero-ref
+;* V122 tmp85 [V122,T263] ( 0, 0 ) ref -> zero-ref
; V123 tmp86 [V123,T166] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V124 tmp87 [V124,T98] ( 5, 20 ) struct (28) [sp+0x328] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V125 tmp88 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -141,7 +141,7 @@
;* V130 tmp93 [V130 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V131 tmp94 [V131,T107] ( 3, 20 ) ref -> r4 class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
; V132 tmp95 [V132 ] ( 1, 4 ) ubyte -> [sp+0x324] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V133 tmp96 [V133,T188] ( 3, 10 ) byref -> [sp+0x9C] spill-single-def "Inline stloc first use temp"
+; V133 tmp96 [V133,T188] ( 3, 10 ) byref -> [sp+0x8C] spill-single-def "Inline stloc first use temp"
; V134 tmp97 [V134,T118] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
; V135 tmp98 [V135,T137] ( 4, 14 ) ref -> r1
;* V136 tmp99 [V136 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -153,22 +153,22 @@
;* V142 tmp105 [V142 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V143 tmp106 [V143 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V144 tmp107 [V144 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V145 tmp108 [V145,T146] ( 5, 10 ) ref -> [sp+0x98] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V145 tmp108 [V145,T146] ( 5, 10 ) ref -> [sp+0x88] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V146 tmp109 [V146,T52] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V147 tmp110 [V147,T241] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V147 tmp110 [V147,T245] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V148 tmp111 [V148,T167] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V149 tmp112 [V149,T99] ( 5, 20 ) struct (28) [sp+0x308] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V150 tmp113 [V150,T223] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V151 tmp114 [V151 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V152 tmp115 [V152,T260] ( 0, 0 ) ref -> zero-ref
+;* V152 tmp115 [V152,T264] ( 0, 0 ) ref -> zero-ref
;* V153 tmp116 [V153 ] ( 0, 0 ) ref -> zero-ref
-;* V154 tmp117 [V154,T261] ( 0, 0 ) ref -> zero-ref
+;* V154 tmp117 [V154,T265] ( 0, 0 ) ref -> zero-ref
; V155 tmp118 [V155,T168] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V156 tmp119 [V156,T100] ( 5, 20 ) struct (28) [sp+0x2EC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V157 tmp120 [V157 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V158 tmp121 [V158 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V159 tmp122 [V159 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V160 tmp123 [V160,T06] ( 3,144 ) ref -> [sp+0x94] class-hnd exact spill-single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
+; V160 tmp123 [V160,T06] ( 3,144 ) ref -> [sp+0x84] class-hnd exact spill-single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
; V161 tmp124 [V161 ] ( 1, 32 ) ubyte -> [sp+0x2E8] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V162 tmp125 [V162,T32] ( 3, 72 ) byref -> r6 "Inline stloc first use temp"
; V163 tmp126 [V163,T14] ( 2,128 ) ref -> r1 class-hnd "dup spill" <System.Object>
@@ -182,8 +182,8 @@
;* V171 tmp134 [V171 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V172 tmp135 [V172 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V173 tmp136 [V173 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V174 tmp137 [V174,T37] ( 5, 40 ) ref -> [sp+0x90] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V175 tmp138 [V175,T02] ( 10,160 ) ref -> [sp+0x8C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V174 tmp137 [V174,T37] ( 5, 40 ) ref -> [sp+0x80] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V175 tmp138 [V175,T02] ( 10,160 ) ref -> [sp+0x7C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V176 tmp139 [V176,T133] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V177 tmp140 [V177,T41] ( 3, 48 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V178 tmp141 [V178,T23] ( 5, 80 ) struct (28) [sp+0x2CC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -202,14 +202,14 @@
; V191 tmp154 [V191,T15] ( 2,128 ) ref -> r3 "CASTCLASS eval op1"
;* V192 tmp155 [V192 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V193 tmp156 [V193,T26] ( 4, 76 ) ref -> r3 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V194 tmp157 [V194,T67] ( 3, 36 ) ref -> r3 "CASTCLASS eval op1"
+; V194 tmp157 [V194,T63] ( 3, 36 ) ref -> r3 "CASTCLASS eval op1"
; V195 tmp158 [V195,T108] ( 3, 20 ) int -> r12 "fgMakeTemp is creating a new local variable"
; V196 tmp159 [V196,T28] ( 6, 76 ) ref -> lr class-hnd "spilling QMark2" <<unknown class>>
; V197 tmp160 [V197,T43] ( 3, 48 ) ref -> r0 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V198 tmp161 [V198,T16] ( 2,128 ) ref -> r0 "CASTCLASS eval op1"
;* V199 tmp162 [V199 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V200 tmp163 [V200,T27] ( 4, 76 ) ref -> r0 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V201 tmp164 [V201,T68] ( 3, 36 ) ref -> r1 "CASTCLASS eval op1"
+; V201 tmp164 [V201,T64] ( 3, 36 ) ref -> r1 "CASTCLASS eval op1"
; V202 tmp165 [V202,T109] ( 3, 20 ) int -> r12 "fgMakeTemp is creating a new local variable"
; V203 tmp166 [V203,T29] ( 6, 76 ) ref -> lr class-hnd "spilling QMark2" <<unknown class>>
; V204 tmp167 [V204,T44] ( 3, 48 ) ref -> r2 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
@@ -218,7 +218,7 @@
; V207 tmp170 [V207,T25] ( 4, 80 ) ref -> r0 class-hnd "Inline stloc first use temp" <<unknown class>>
;* V208 tmp171 [V208 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V209 tmp172 [V209 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V210 tmp173 [V210,T87] ( 4, 24 ) ref -> [sp+0x88] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V210 tmp173 [V210,T87] ( 4, 24 ) ref -> [sp+0x78] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
; V211 tmp174 [V211 ] ( 1, 4 ) ubyte -> [sp+0x2A4] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V212 tmp175 [V212,T190] ( 3, 10 ) byref -> r6 "Inline stloc first use temp"
; V213 tmp176 [V213,T119] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
@@ -232,21 +232,21 @@
;* V221 tmp184 [V221 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V222 tmp185 [V222 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V223 tmp186 [V223 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V224 tmp187 [V224,T147] ( 5, 10 ) ref -> [sp+0x84] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V224 tmp187 [V224,T147] ( 5, 10 ) ref -> [sp+0x74] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V225 tmp188 [V225,T53] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V226 tmp189 [V226,T242] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V226 tmp189 [V226,T246] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V227 tmp190 [V227,T169] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V228 tmp191 [V228,T101] ( 5, 20 ) struct (28) [sp+0x288] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V229 tmp192 [V229,T224] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V230 tmp193 [V230 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V231 tmp194 [V231,T262] ( 0, 0 ) ref -> zero-ref
+;* V231 tmp194 [V231,T266] ( 0, 0 ) ref -> zero-ref
;* V232 tmp195 [V232 ] ( 0, 0 ) ref -> zero-ref
-;* V233 tmp196 [V233,T263] ( 0, 0 ) ref -> zero-ref
+;* V233 tmp196 [V233,T267] ( 0, 0 ) ref -> zero-ref
; V234 tmp197 [V234,T170] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V235 tmp198 [V235,T102] ( 5, 20 ) struct (28) [sp+0x26C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V236 tmp199 [V236 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V237 tmp200 [V237 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V238 tmp201 [V238,T88] ( 4, 24 ) ref -> [sp+0x80] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+; V238 tmp201 [V238,T88] ( 4, 24 ) ref -> [sp+0x70] class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
; V239 tmp202 [V239 ] ( 1, 4 ) ubyte -> [sp+0x268] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V240 tmp203 [V240,T191] ( 3, 10 ) byref -> r6 "Inline stloc first use temp"
; V241 tmp204 [V241,T120] ( 2, 16 ) ref -> r1 class-hnd "dup spill" <System.Object>
@@ -260,147 +260,147 @@
;* V249 tmp212 [V249 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V250 tmp213 [V250 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V251 tmp214 [V251 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-; V252 tmp215 [V252,T148] ( 5, 10 ) ref -> [sp+0x7C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V252 tmp215 [V252,T148] ( 5, 10 ) ref -> [sp+0x6C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V253 tmp216 [V253,T54] ( 10, 40 ) ref -> r2 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V254 tmp217 [V254,T243] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V254 tmp217 [V254,T247] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V255 tmp218 [V255,T171] ( 3, 12 ) ref -> r0 class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V256 tmp219 [V256,T103] ( 5, 20 ) struct (28) [sp+0x24C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V257 tmp220 [V257,T225] ( 3, 6 ) byref -> r0 "Inline stloc first use temp"
;* V258 tmp221 [V258 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
...
+2 (+1.85%) : 9281.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
@@ -13,10 +13,10 @@
; V02 arg2 [V02,T05] ( 3, 3 ) int -> r2 single-def
; V03 arg3 [V03,T06] ( 3, 3 ) int -> r3 single-def
; V04 arg4 [V04,T07] ( 1, 1 ) ubyte -> [sp+0x08] single-def
-; V05 loc0 [V05,T00] ( 17, 9.50) int -> lr
+; V05 loc0 [V05,T00] ( 15, 8.50) int -> lr
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 rat0 [V07,T02] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
-; V08 rat1 [V08,T01] ( 4, 8 ) int -> r1 "ReplaceWithLclVar is creating a new local variable"
+; V07 rat0 [V07,T01] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
+; V08 rat1 [V08,T02] ( 3, 6 ) int -> r0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
@@ -57,44 +57,45 @@ G_M31052_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
orr lr, lr, 96
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M31052_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- subs r1, r1, 1
- cmp r1, 2
- bhi SHORT G_M31052_IG11
- cmp r1, 1
- beq SHORT G_M31052_IG10
- cmp r1, 2
- beq SHORT G_M31052_IG09
- ;; size=14 bbWeight=1 PerfScore 7.00
+ subs r0, r1, 1
+ cmp r0, 2
+ bhi SHORT G_M31052_IG10
+ movw r1, LOW ADDRESS J_M31052_DS24
+ movt r1, HIGH ADDRESS J_M31052_DS24
+
+ J_M31052_DS24 LABEL DWORD
+ DD G_M31052_IG10
+ DD G_M31052_IG09
+ DD G_M31052_IG08
+ ldr pc, [r1+4*r0]
+ ;; size=18 bbWeight=1 PerfScore 6.00
G_M31052_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- b SHORT G_M31052_IG11
- ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
orr lr, lr, 2
- b SHORT G_M31052_IG11
+ b SHORT G_M31052_IG10
;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M31052_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr lr, lr, 1
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M31052_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ands r0, r2, 16
cmp r0, 0
- bne SHORT G_M31052_IG13
+ bne SHORT G_M31052_IG12
;; size=8 bbWeight=1 PerfScore 3.00
-G_M31052_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr lr, lr, 16
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M31052_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
ands r0, r3, 0x80000000
cmp r0, 0
- beq SHORT G_M31052_IG15
+ beq SHORT G_M31052_IG14
;; size=8 bbWeight=1 PerfScore 3.00
-G_M31052_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr lr, lr, 256
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M31052_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov r0, lr
;; size=2 bbWeight=1 PerfScore 1.00
-G_M31052_IG16: ; bbWeight=1, epilog, nogc, extend
+G_M31052_IG15: ; bbWeight=1, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
RWD00 dd G_M31052_IG06
@@ -103,9 +104,12 @@ RWD00 dd G_M31052_IG06
dd G_M31052_IG05
dd G_M31052_IG07
dd G_M31052_IG05
+RWD24 dd G_M31052_IG10
+ dd G_M31052_IG09
+ dd G_M31052_IG08
-; Total bytes of code 108, prolog size 6, PerfScore 32.00, instruction count 37, allocated bytes for code 108 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
+; Total bytes of code 110, prolog size 6, PerfScore 30.50, instruction count 35, allocated bytes for code 110 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
; ============================================================
Unwind Info:
@@ -117,7 +121,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
+ Function Length : 55 (0x00037) Actual length = 110 (0x00006e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+6 (+2.75%) : 638.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable
2[System.Canon,System.Canon]):this (Tier0-FullOpts)
@@ -15,12 +15,11 @@
; V04 tmp1 [V04,T07] ( 3, 4 ) int -> r1 "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V07 tmp4 [V07,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V08 tmp5 [V08,T00] ( 3, 24 ) ref -> r3 "arr expr"
; V09 cse0 [V09,T02] ( 4, 10 ) ref -> r1 "CSE - aggressive"
-; V10 cse1 [V10,T08] ( 3, 1.50) ref -> r1 "CSE - aggressive"
-; V11 rat0 [V11,T06] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
-; V12 rat1 [V12,T05] ( 3, 5.60) int -> r1 "fgMakeTemp is creating a new local variable"
+; V10 rat0 [V10,T06] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
+; V11 rat1 [V11,T05] ( 3, 5.60) int -> r1 "fgMakeTemp is creating a new local variable"
; TEMP_01 ref -> [r11-0x10]
;
; Lcl frame size = 8
@@ -41,17 +40,16 @@ G_M9941_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
bne SHORT G_M9941_IG04
;; size=4 bbWeight=1 PerfScore 2.00
G_M9941_IG03: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
- mov r0, r1
- ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ; gcrRegs -[r0]
; gcr arg pop 0
- ;; size=22 bbWeight=0.50 PerfScore 3.50
+ ;; size=28 bbWeight=0.50 PerfScore 4.00
G_M9941_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -158,7 +156,7 @@ G_M9941_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byre
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 218, prolog size 20, PerfScore 102.50, instruction count 79, allocated bytes for code 218 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
+; Total bytes of code 224, prolog size 20, PerfScore 103.00, instruction count 80, allocated bytes for code 224 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
; ============================================================
Unwind Info:
@@ -170,7 +168,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 109 (0x0006d) Actual length = 218 (0x0000da)
+ Function Length : 112 (0x00070) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.linux.arm.checked.mch
-40 (-74.07%) : 199093.dasm - _simple:main():int (Tier0)
@@ -13,39 +13,14 @@ G_M64434_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push {r4,r10,r11,lr}
add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
-G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r3, -1
- rsbs r3, r3, 0
- cmp r3, 1
- beq SHORT G_M64434_IG03
- movs r3, 0
- b SHORT G_M64434_IG04
- ;; size=14 bbWeight=1 PerfScore 6.00
-G_M64434_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 1
+G_M64434_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movs r0, 100
;; size=2 bbWeight=1 PerfScore 1.00
-G_M64434_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- subs r3, r3, 1
- movs r2, 1
- rsbs r2, r2, 0
- cmp r2, -1
- beq SHORT G_M64434_IG05
- movs r2, 0
- b SHORT G_M64434_IG06
- ;; size=16 bbWeight=1 PerfScore 7.00
-G_M64434_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r2, 1
- ;; size=2 bbWeight=1 PerfScore 1.00
-G_M64434_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- subs r2, r2, 1
- orrs r3, r2
- add r0, r3, 100
- ;; size=8 bbWeight=1 PerfScore 3.00
-G_M64434_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M64434_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 54, prolog size 8, PerfScore 21.00, instruction count 21, allocated bytes for code 54 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
+; Total bytes of code 14, prolog size 8, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=c6a5044d) for method _simple:main():int (Tier0)
; ============================================================
Unwind Info:
@@ -57,7 +32,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 27 (0x0001b) Actual length = 54 (0x000036)
+ Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-38 (-73.08%) : 210363.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
@@ -13,47 +13,27 @@ G_M23300_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push {r4,r10,r11,lr}
add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
-G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- movs r3, 2
- movs r2, 1
- umull r3, r1, r3, r2
- cmp r1, 0
- bne SHORT G_M23300_IG04
- mov r0, r3
- movs r1, 2
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_DIV
- adds r0, 99
- ;; size=28 bbWeight=1 PerfScore 11.00
+G_M23300_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movs r0, 100
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M23300_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-G_M23300_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_OVERFLOW
- bkpt
- ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 52, prolog size 8, PerfScore 14.00, instruction count 18, allocated bytes for code 52 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
+; Total bytes of code 14, prolog size 8, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=d304a4fb) for method ILGEN_0x45f9b5e5:Main():int (Tier0)
; ============================================================
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
- Epilog Count : 1
+ Epilog Count : 0
F bit : 0
- E bit : 0
+ E bit : 1
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
- ---- Epilog scopes ----
- ---- Scope 0
- Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
- Condition : 14 (0xe) (always)
- Epilog Start Index : 0 (0x00)
+ Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
+ --- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
AC 10 pop {r4,r10,r11,lr} ; opsize 32
-38 (-73.08%) : 211464.dasm - ILGEN_0x77e9b0c3:Main():int (Tier0)
@@ -14,22 +14,13 @@ G_M54563_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
G_M54563_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r3, 0x40800000
- vmov.i2f s8, r3
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- vmov.i2f s9, r3
- vadd s8, s8, s9
- vneg s8, s8
- vcvt.f2i s9, s8
- vmov.f2i r3, s9
- add r0, r3, 109
- ;; size=40 bbWeight=1 PerfScore 10.00
+ movs r0, 100
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M54563_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 52, prolog size 8, PerfScore 13.00, instruction count 13, allocated bytes for code 52 (MethodHash=44ec2adc) for method ILGEN_0x77e9b0c3:Main():int (Tier0)
+; Total bytes of code 14, prolog size 8, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=44ec2adc) for method ILGEN_0x77e9b0c3:Main():int (Tier0)
; ============================================================
Unwind Info:
@@ -41,7 +32,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+2.38%) : 306116.dasm - ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (Tier1)
@@ -8,14 +8,14 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 6, 6 ) int -> r0 single-def
-; V01 arg1 [V01,T04] ( 3, 3 ) ushort -> r1 single-def
+; V01 arg1 [V01,T03] ( 4, 4 ) ushort -> r1 single-def
; V02 loc0 [V02,T01] ( 6, 6 ) int -> r3
; V03 loc1 [V03,T02] ( 6, 6 ) int -> r2
;* V04 loc2 [V04 ] ( 0, 0 ) int -> zero-ref
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 cse0 [V08,T03] ( 5, 5 ) int -> r1 "CSE - aggressive"
+; V08 cse0 [V08,T04] ( 4, 4 ) int -> lr "CSE - aggressive"
;
; Lcl frame size = 0
@@ -32,26 +32,26 @@ G_M25974_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw lr, 0xd1ff
movt lr, 0xd1ff
and r2, r2, lr
- uxth r1, r1
- and lr, r1, 0xf000
- lsr lr, lr, 12
- orr r3, r3, lr
- and lr, r1, 0x800
- lsr lr, lr, 1
- orr r3, r3, lr
- and lr, r1, 0x700
+ uxth lr, r1
+ and r12, lr, 0xf000
+ lsr r12, r12, 12
+ orr r3, r3, r12
+ and r12, lr, 0x800
+ lsr r12, r12, 1
+ orr r3, r3, r12
+ and lr, lr, 0x700
lsl lr, lr, 4
orr r2, r2, lr
uxtb r1, r1
orrs r2, r1
strh r3, [r0]
strh r2, [r0+0x02]
- ;; size=74 bbWeight=1 PerfScore 22.00
+ ;; size=76 bbWeight=1 PerfScore 22.00
G_M25974_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 84, prolog size 6, PerfScore 25.00, instruction count 25, allocated bytes for code 84 (MethodHash=94659a89) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (Tier1)
+; Total bytes of code 86, prolog size 6, PerfScore 25.00, instruction count 25, allocated bytes for code 86 (MethodHash=94659a89) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (Tier1)
; ============================================================
Unwind Info:
@@ -63,7 +63,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 42 (0x0002a) Actual length = 84 (0x000054)
+ Function Length : 43 (0x0002b) Actual length = 86 (0x000056)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+30 (+4.46%) : 366168.dasm - negr4.neg:main():int (FullOpts)
@@ -9,58 +9,51 @@
; Final local variable assignments
;
;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V01 tmp1 [V01,T06] ( 3, 2 ) int -> r0
+; V01 tmp1 [V01,T02] ( 3, 2 ) int -> r0
;* V02 tmp2 [V02 ] ( 0, 0 ) float -> zero-ref "dup spill"
;* V03 tmp3 [V03 ] ( 0, 0 ) float -> zero-ref
-;* V04 tmp4 [V04,T12] ( 0, 0 ) int -> zero-ref
+;* V04 tmp4 [V04,T05] ( 0, 0 ) int -> zero-ref
;* V05 tmp5 [V05 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V06 tmp6 [V06 ] ( 0, 0 ) float -> zero-ref "dup spill"
;* V07 tmp7 [V07 ] ( 0, 0 ) float -> zero-ref
-;* V08 tmp8 [V08,T13] ( 0, 0 ) int -> zero-ref
+;* V08 tmp8 [V08,T06] ( 0, 0 ) int -> zero-ref
;* V09 tmp9 [V09 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
;* V10 tmp10 [V10 ] ( 0, 0 ) float -> zero-ref "dup spill"
;* V11 tmp11 [V11 ] ( 0, 0 ) float -> zero-ref
-;* V12 tmp12 [V12,T14] ( 0, 0 ) int -> zero-ref
+;* V12 tmp12 [V12,T07] ( 0, 0 ) int -> zero-ref
;* V13 tmp13 [V13 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-;* V14 tmp14 [V14,T09] ( 0, 0 ) float -> zero-ref "dup spill"
-;* V15 tmp15 [V15 ] ( 0, 0 ) float -> zero-ref
-;* V16 tmp16 [V16,T15] ( 0, 0 ) int -> zero-ref
-;* V17 tmp17 [V17 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-;* V18 tmp18 [V18,T10] ( 0, 0 ) float -> zero-ref "dup spill"
-;* V19 tmp19 [V19 ] ( 0, 0 ) float -> zero-ref
-;* V20 tmp20 [V20,T16] ( 0, 0 ) int -> zero-ref
-;* V21 tmp21 [V21 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-;* V22 tmp22 [V22 ] ( 0, 0 ) float -> zero-ref "dup spill"
-;* V23 tmp23 [V23 ] ( 0, 0 ) float -> zero-ref
-;* V24 tmp24 [V24,T17] ( 0, 0 ) int -> zero-ref
-;* V25 tmp25 [V25 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-;* V26 tmp26 [V26 ] ( 0, 0 ) float -> zero-ref "dup spill"
-;* V27 tmp27 [V27 ] ( 0, 0 ) float -> zero-ref
-;* V28 tmp28 [V28,T18] ( 0, 0 ) int -> zero-ref
-;* V29 tmp29 [V29 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-;* V30 tmp30 [V30 ] ( 0, 0 ) float -> zero-ref "dup spill"
-;* V31 tmp31 [V31 ] ( 0, 0 ) float -> zero-ref
-;* V32 tmp32 [V32,T19] ( 0, 0 ) int -> zero-ref
-;* V33 tmp33 [V33 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-;* V34 tmp34 [V34,T11] ( 0, 0 ) float -> zero-ref "dup spill"
-;* V35 tmp35 [V35 ] ( 0, 0 ) float -> zero-ref
-;* V36 tmp36 [V36,T20] ( 0, 0 ) int -> zero-ref
-;* V37 tmp37 [V37 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V38 cse0 [V38,T01] ( 4, 2 ) float -> [sp+0x1C] spill-single-def "CSE - aggressive"
-; V39 cse1 [V39,T02] ( 4, 2 ) float -> [sp+0x18] spill-single-def "CSE - aggressive"
-; V40 cse2 [V40,T07] ( 2, 1 ) float -> [sp+0x14] spill-single-def "CSE - aggressive"
-; V41 cse3 [V41,T08] ( 2, 1 ) float -> [sp+0x10] spill-single-def "CSE - aggressive"
-; V42 cse4 [V42,T03] ( 4, 2 ) float -> [sp+0x0C] spill-single-def "CSE - aggressive"
-; V43 cse5 [V43,T04] ( 4, 2 ) float -> [sp+0x08] spill-single-def "CSE - aggressive"
-; V44 cse6 [V44,T05] ( 4, 2 ) float -> [sp+0x04] spill-single-def "CSE - aggressive"
-; V45 cse7 [V45,T00] ( 4, 3 ) float -> [sp+0x00] spill-single-def "CSE - aggressive"
+;* V14 tmp14 [V14,T08] ( 0, 0 ) float -> zero-ref
+;* V15 tmp15 [V15,T09] ( 0, 0 ) int -> zero-ref
+;* V16 tmp16 [V16 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+;* V17 tmp17 [V17,T03] ( 0, 0 ) float -> zero-ref "dup spill"
+;* V18 tmp18 [V18 ] ( 0, 0 ) float -> zero-ref
+;* V19 tmp19 [V19,T10] ( 0, 0 ) int -> zero-ref
+;* V20 tmp20 [V20 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+;* V21 tmp21 [V21 ] ( 0, 0 ) float -> zero-ref "dup spill"
+;* V22 tmp22 [V22 ] ( 0, 0 ) float -> zero-ref
+;* V23 tmp23 [V23,T11] ( 0, 0 ) int -> zero-ref
+;* V24 tmp24 [V24 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+;* V25 tmp25 [V25 ] ( 0, 0 ) float -> zero-ref "dup spill"
+;* V26 tmp26 [V26 ] ( 0, 0 ) float -> zero-ref
+;* V27 tmp27 [V27,T12] ( 0, 0 ) int -> zero-ref
+;* V28 tmp28 [V28 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+;* V29 tmp29 [V29 ] ( 0, 0 ) float -> zero-ref "dup spill"
+;* V30 tmp30 [V30 ] ( 0, 0 ) float -> zero-ref
+;* V31 tmp31 [V31,T13] ( 0, 0 ) int -> zero-ref
+;* V32 tmp32 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+;* V33 tmp33 [V33,T04] ( 0, 0 ) float -> zero-ref "dup spill"
+;* V34 tmp34 [V34 ] ( 0, 0 ) float -> zero-ref
+;* V35 tmp35 [V35,T14] ( 0, 0 ) int -> zero-ref
+;* V36 tmp36 [V36 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V37 cse0 [V37,T01] ( 3, 1.50) float -> [sp+0x04] spill-single-def "CSE - aggressive"
+; V38 cse1 [V38,T00] ( 4, 3 ) float -> [sp+0x00] spill-single-def "CSE - aggressive"
;
-; Lcl frame size = 36
+; Lcl frame size = 12
G_M30443_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r4,r11,lr}
- sub sp, 36
- add r11, sp, 40
+ sub sp, 12
+ add r11, sp, 16
;; size=10 bbWeight=1 PerfScore 3.00
G_M30443_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r3, 0x7f800000
@@ -74,13 +67,13 @@ G_M30443_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
beq SHORT G_M30443_IG04
;; size=28 bbWeight=1 PerfScore 9.00
G_M30443_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- vldr s0, [sp] // [V45 cse7]
+ vldr s0, [sp] // [V38 cse1]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
mov r4, r0
- vldr s0, [sp] // [V45 cse7]
+ vldr s0, [sp] // [V38 cse1]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -92,20 +85,48 @@ G_M30443_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
movw r3, 0xd1ff
movt r3, 0xd1ff
vmov.i2f s0, r3
- vstr s0, [sp+0x1C] // [V38 cse0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
cmp r0, 0
beq SHORT G_M30443_IG05
- vldr s0, [sp+0x1C] // [V38 cse0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2f s0, r3
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
mov r4, r0
- vldr s0, [sp+0x1C] // [V38 cse0]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2f s0, r3
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ cmp r4, r0
+ bne G_M30443_IG12
+ ;; size=84 bbWeight=0.50 PerfScore 13.00
+G_M30443_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ mov r3, 0x3f800000
+ vmov.i2f s0, r3
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ cmp r0, 0
+ beq SHORT G_M30443_IG06
+ mov r3, 0x3f800000
+ vmov.i2f s0, r3
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ ldr r3, [r3]
+ blx r3 // <unknown method>
+ mov r4, r0
+ mov r3, 0x3f800000
+ vmov.i2f s0, r3
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -113,36 +134,10 @@ G_M30443_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
cmp r4, r0
bne G_M30443_IG12
;; size=72 bbWeight=0.50 PerfScore 11.50
-G_M30443_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r3, 0x3f800000
- vmov.i2f s0, r3
- vstr s0, [sp+0x18] // [V39 cse1]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // <unknown method>
- cmp r0, 0
- beq SHORT G_M30443_IG06
- vldr s0, [sp+0x18] // [V39 cse1]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // <unknown method>
- mov r4, r0
- vldr s0, [sp+0x18] // [V39 cse1]
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- ldr r3, [r3]
- blx r3 // <unknown method>
- cmp r4, r0
- bne G_M30443_IG12
- ;; size=68 bbWeight=0.50 PerfScore 11.00
G_M30443_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movs r3, 0
vmov.i2f s0, r3
- vstr s0, [sp+0x14] // [V40 cse2]
- movs r3, 0
- vmov.i2f s0, r3
+ vstr s0, [sp+0x04] // [V37 cse0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -156,18 +151,15 @@ G_M30443_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr r3, [r3]
blx r3 // <unknown method>
mov r4, r0
- vldr s0, [sp+0x14] // [V40 cse2]
+ vldr s0, [sp+0x04] // [V37 cse0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
cmp r4, r0
bne G_M30443_IG12
- ;; size=74 bbWeight=0.50 PerfScore 12.50
+ ;; size=68 bbWeight=0.50 PerfScore 11.50
G_M30443_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r3, 0x80000000
- vmov.i2f s0, r3
- vstr s0, [sp+0x10] // [V41 cse3]
mov r3, 0x80000000
vmov.i2f s0, r3
movw r3, 0xd1ff
@@ -183,81 +175,61 @@ G_M30443_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr r3, [r3]
blx r3 // <unknown method>
mov r4, r0
- vldr s0, [sp+0x10] // [V41 cse3]
+ mov r3, 0x80000000
+ vmov.i2f s0, r3
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
cmp r4, r0
bne G_M30443_IG12
- ;; size=80 bbWeight=0.50 PerfScore 12.50
+ ;; size=72 bbWeight=0.50 PerfScore 11.50
G_M30443_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
movw r3, 0xd1ff
movt r3, 0xd1ff
vmov.i2f s0, r3
- vstr s0, [sp+0x0C] // [V42 cse4]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
cmp r0, 0
beq SHORT G_M30443_IG09
- vldr s0, [sp+0x0C] // [V42 cse4]
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2f s0, r3
movw r3, 0xd1ff
movt r3, 0xd1ff
...
+34 (+4.89%) : 424467.dasm - ILGEN0xa691ee4d:Method0xf329b3e5(long):int (FullOpts)
@@ -19,48 +19,44 @@
; V09 tmp5 [V09,T02] ( 3, 0 ) ref -> r2 class-hnd single-def "impAppendStmt" <<unknown class>>
;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V11 tmp7 [V11 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
-;* V12 tmp8 [V12 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
-;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V14 tmp10 [V14,T09] ( 2, 0 ) ref -> r4 class-hnd exact single-def "impAppendStmt" <<unknown class>>
-;* V15 tmp11 [V15 ] ( 0, 0 ) byref -> zero-ref single-def "impSpillStackEnsure"
-;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillStackEnsure" <<unknown class>>
+;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+; V13 tmp9 [V13,T09] ( 2, 0 ) ref -> r4 class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;* V14 tmp10 [V14 ] ( 0, 0 ) byref -> zero-ref single-def "impSpillStackEnsure"
+;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillStackEnsure" <<unknown class>>
+;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V19 tmp15 [V19 ] ( 0, 0 ) int -> zero-ref "Strict ordering of exceptions for Array store"
+;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "Strict ordering of exceptions for Array store"
+;* V19 tmp15 [V19 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V21 tmp17 [V21 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V23 tmp19 [V23 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
-;* V25 tmp21 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
-; V26 tmp22 [V26,T10] ( 2, 0 ) ref -> r0 single-def "arr expr"
-; V27 tmp23 [V27,T03] ( 3, 0 ) ref -> r2 single-def "arr expr"
-; V28 tmp24 [V28,T04] ( 3, 0 ) ref -> r3 single-def "arr expr"
-; V29 tmp25 [V29,T11] ( 2, 0 ) ref -> r1 single-def "arr expr"
-; V30 tmp26 [V30,T05] ( 3, 0 ) ref -> r3 single-def "arr expr"
-; V31 tmp27 [V31,T12] ( 2, 0 ) int -> r0 "index expr"
-;* V32 tmp28 [V32,T19] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
-;* V33 tmp29 [V33,T20] ( 0, 0 ) int -> zero-ref "argument with side effect"
-;* V34 tmp30 [V34 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref "index expr"
-;* V37 tmp33 [V37 ] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V23 tmp19 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <<unknown class>>
+;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <<unknown class>>
+; V25 tmp21 [V25,T10] ( 2, 0 ) ref -> r0 single-def "arr expr"
+; V26 tmp22 [V26,T03] ( 3, 0 ) ref -> r2 single-def "arr expr"
+; V27 tmp23 [V27,T04] ( 3, 0 ) ref -> r3 single-def "arr expr"
+; V28 tmp24 [V28,T11] ( 2, 0 ) ref -> r1 single-def "arr expr"
+; V29 tmp25 [V29,T05] ( 3, 0 ) ref -> r3 single-def "arr expr"
+;* V30 tmp26 [V30,T18] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
+;* V31 tmp27 [V31,T19] ( 0, 0 ) int -> zero-ref "argument with side effect"
+;* V32 tmp28 [V32 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V33 tmp29 [V33 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V34 tmp30 [V34 ] ( 0, 0 ) int -> zero-ref "index expr"
+;* V35 tmp31 [V35 ] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "index expr"
;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref "index expr"
-;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-;* V41 tmp37 [V41 ] ( 0, 0 ) double -> zero-ref "argument with side effect"
-; V42 rat0 [V42,T00] ( 4, 2 ) int -> [sp+0x10] do-not-enreg[] "field V00.lo (fldOffset=0x0)" P-DEP
-; V43 rat1 [V43,T01] ( 4, 2 ) int -> [sp+0x14] do-not-enreg[] "field V00.hi (fldOffset=0x4)" P-DEP
-; V44 rat2 [V44,T13] ( 2, 0 ) int -> r3 "field V10.lo (fldOffset=0x0)" P-INDEP
-; V45 rat3 [V45,T14] ( 2, 0 ) int -> r2 "field V10.hi (fldOffset=0x4)" P-INDEP
-; V46 rat4 [V46,T15] ( 2, 0 ) int -> r0 "field V11.lo (fldOffset=0x0)" P-INDEP
-; V47 rat5 [V47,T16] ( 2, 0 ) int -> r1 "field V11.hi (fldOffset=0x4)" P-INDEP
-;* V48 rat6 [V48 ] ( 0, 0 ) int -> zero-ref "field V12.lo (fldOffset=0x0)" P-INDEP
-;* V49 rat7 [V49 ] ( 0, 0 ) int -> zero-ref "field V12.hi (fldOffset=0x4)" P-INDEP
-; V50 rat8 [V50,T06] ( 3, 0 ) byref -> r2 "ReplaceWithLclVar is creating a new local variable"
-; V51 rat9 [V51 ] ( 1, 0 ) long -> [sp+0x08] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V52 rat10 [V52,T17] ( 2, 0 ) int -> r0 "field V51.lo (fldOffset=0x0)" P-INDEP
-; V53 rat11 [V53,T18] ( 2, 0 ) int -> r1 "field V51.hi (fldOffset=0x4)" P-INDEP
+;* V39 tmp35 [V39 ] ( 0, 0 ) double -> zero-ref "argument with side effect"
+; V40 rat0 [V40,T00] ( 4, 2 ) int -> [sp+0x10] do-not-enreg[] "field V00.lo (fldOffset=0x0)" P-DEP
+; V41 rat1 [V41,T01] ( 4, 2 ) int -> [sp+0x14] do-not-enreg[] "field V00.hi (fldOffset=0x4)" P-DEP
+; V42 rat2 [V42,T12] ( 2, 0 ) int -> r3 "field V10.lo (fldOffset=0x0)" P-INDEP
+; V43 rat3 [V43,T13] ( 2, 0 ) int -> r2 "field V10.hi (fldOffset=0x4)" P-INDEP
+; V44 rat4 [V44,T14] ( 2, 0 ) int -> r0 "field V11.lo (fldOffset=0x0)" P-INDEP
+; V45 rat5 [V45,T15] ( 2, 0 ) int -> r1 "field V11.hi (fldOffset=0x4)" P-INDEP
+; V46 rat6 [V46,T06] ( 3, 0 ) byref -> r2 "ReplaceWithLclVar is creating a new local variable"
+; V47 rat7 [V47 ] ( 1, 0 ) long -> [sp+0x08] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V48 rat8 [V48,T16] ( 2, 0 ) int -> r0 "field V47.lo (fldOffset=0x0)" P-INDEP
+; V49 rat9 [V49,T17] ( 2, 0 ) int -> r1 "field V47.hi (fldOffset=0x4)" P-INDEP
; TEMP_01 ref -> [r11-0x1C]
;
; Lcl frame size = 24
@@ -249,14 +245,14 @@ G_M20612_IG06: ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
mov r0, 320
movs r1, 255
cmp r0, r1
- bhs SHORT G_M20612_IG09
+ bhs G_M20612_IG09
movs r0, 1
strb r0, [r4+0x148]
mvn r0, 62
movs r1, 0
subs r0, r3, r0
sbcs r1, r2, r1
- bvs SHORT G_M20612_IG10
+ bvs G_M20612_IG10
movs r2, 0
str r2, [r5+0x0C]
movw r2, 0xd1ff
@@ -299,7 +295,7 @@ G_M20612_IG06: ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
tst r0, r0
bne SHORT G_M20612_IG10
b SHORT G_M20612_IG08
- ;; size=292 bbWeight=0 PerfScore 0.00
+ ;; size=296 bbWeight=0 PerfScore 0.00
G_M20612_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp r0, -1
bne SHORT G_M20612_IG10
@@ -335,20 +331,28 @@ G_M20612_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_DBL2INT_OVF
; gcrRegs -[r0]
- uxth r0, r0
- ldr r3, [r4+0x04]
- cmp r0, r3
+ uxth r3, r0
+ ldr r2, [r4+0x04]
+ cmp r3, r2
bhs SHORT G_M20612_IG09
+ movw r2, 0xd1ff
+ movt r2, 0xd1ff
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ vmov.i2d d0, r2, r3
+ movw r3, 0xd1ff
+ movt r3, 0xd1ff
+ blx r3 // CORINFO_HELP_DBL2INT_OVF
+ ; gcrRegs -[r4]
movs r0, 0
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_OVERFLOW
- ; gcrRegs -[r4]
mvn r3, 2
movs r2, 0
cmp r3, r2
bhs SHORT G_M20612_IG09
- ;; size=108 bbWeight=0 PerfScore 0.00
+ ;; size=138 bbWeight=0 PerfScore 0.00
G_M20612_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r3, 0xd1ff
movt r3, 0xd1ff
@@ -361,7 +365,7 @@ G_M20612_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 696, prolog size 14, PerfScore 0.00, instruction count 234, allocated bytes for code 696 (MethodHash=4747af7b) for method ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (FullOpts)
+; Total bytes of code 730, prolog size 14, PerfScore 0.00, instruction count 242, allocated bytes for code 730 (MethodHash=4747af7b) for method ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (FullOpts)
; ============================================================
Unwind Info:
@@ -373,7 +377,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 348 (0x0015c) Actual length = 696 (0x0002b8)
+ Function Length : 365 (0x0016d) Actual length = 730 (0x0002da)
---- Epilog scopes ----
No epilogs
---- Unwind codes ----
libraries.crossgen2.linux.arm.checked.mch
-6 (-42.86%) : 7289.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
@@ -3,7 +3,7 @@
; FullOpts code
; ReadyToRun compilation
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
@@ -13,23 +13,20 @@
;* V01 tmp1 [V01 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V03 tmp3 [V03 ] ( 0, 0 ) int -> zero-ref "field V01._value (fldOffset=0x0)" P-INDEP
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V05 tmp5 [V05 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M7284_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r0, 0xd1ff
;; size=4 bbWeight=1 PerfScore 1.00
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 14, prolog size 6, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
+; Total bytes of code 8, prolog size 2, PerfScore 3.00, instruction count 3, allocated bytes for code 8 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
; ============================================================
Unwind Info:
@@ -41,11 +38,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
+ Function Length : 4 (0x00004) Actual length = 8 (0x000008)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-4 (-20.00%) : 152083.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) byref -> r0 this single-def
+; V00 this [V00,T00] ( 3, 3 ) byref -> r0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 4
@@ -18,14 +18,13 @@ G_M60978_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=2 bbWeight=1 PerfScore 1.00
G_M60978_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
; byrRegs +[r0]
- ldrsb r3, [r0]
ldr r0, [r0+0x08]
; byrRegs -[r0]
cmp r0, 0
blt SHORT G_M60978_IG03
movs r0, 0
b SHORT G_M60978_IG04
- ;; size=14 bbWeight=1 PerfScore 6.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M60978_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 1
;; size=2 bbWeight=1 PerfScore 1.00
@@ -33,7 +32,7 @@ G_M60978_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 2, PerfScore 9.00, instruction count 9, allocated bytes for code 20 (MethodHash=310211cd) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 2, PerfScore 8.00, instruction count 8, allocated bytes for code 16 (MethodHash=310211cd) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -45,7 +44,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 20 (0x000014)
+ Function Length : 8 (0x00008) Actual length = 16 (0x000010)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-2 (-2.63%) : 129224.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -8,15 +8,14 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> r5 single-def
-; V01 loc0 [V01,T07] ( 2, 2 ) ubyte -> r3 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> r5 single-def
+; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> r3 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> r3 single-def "arr expr"
-; V04 tmp2 [V04,T01] ( 3, 6 ) ref -> r0 single-def "arr expr"
-; V05 tmp3 [V05,T02] ( 3, 6 ) int -> r3 "index expr"
+; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> r3 single-def "arr expr"
+; V04 tmp2 [V04,T02] ( 3, 6 ) ref -> r0 single-def "arr expr"
+; V05 tmp3 [V05,T03] ( 3, 6 ) int -> r3 "index expr"
; V06 cse0 [V06,T04] ( 3, 3 ) byref -> r0 "CSE - aggressive"
-; V07 cse1 [V07,T05] ( 3, 3 ) int -> r1 "CSE - aggressive"
-; V08 cse2 [V08,T06] ( 3, 3 ) int -> r2 "CSE - aggressive"
+; V07 cse1 [V07,T05] ( 3, 3 ) int -> r2 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -35,20 +34,20 @@ G_M53790_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr r3, [r0+0x784]
; gcrRegs +[r3]
uxth r2, r5
- asrs r1, r2, 8
- ldr lr, [r3+0x04]
- cmp r1, lr
+ asrs r2, r2, 8
+ ldr r1, [r3+0x04]
+ cmp r2, r1
bhs SHORT G_M53790_IG04
adds r3, 8
; gcrRegs -[r3]
; byrRegs +[r3]
- ldrb r3, [r3+r1]
+ ldrb r3, [r3+r2]
; byrRegs -[r3]
ldr r0, [r0+0x788]
; gcrRegs +[r0]
; byrRegs -[r0]
lsls r3, r3, 8
- uxtb r2, r2
+ uxtb r2, r5
adds r3, r3, r2
ldr r2, [r0+0x04]
cmp r3, r2
@@ -58,7 +57,7 @@ G_M53790_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs +[r0]
ldrb r0, [r0+r3]
; byrRegs -[r0]
- ;; size=54 bbWeight=1 PerfScore 22.00
+ ;; size=52 bbWeight=1 PerfScore 22.00
G_M53790_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r3,r4,r5,pc}
;; size=2 bbWeight=1 PerfScore 1.00
@@ -72,7 +71,7 @@ G_M53790_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
bkpt
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 76, prolog size 2, PerfScore 25.00, instruction count 31, allocated bytes for code 76 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
+; Total bytes of code 74, prolog size 2, PerfScore 25.00, instruction count 31, allocated bytes for code 74 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -84,7 +83,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 38 (0x00026) Actual length = 76 (0x00004c)
+ Function Length : 37 (0x00025) Actual length = 74 (0x00004a)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 4619.dasm - System.Version:GetHashCode():int:this (FullOpts)
+0 (0.00%) : 65547.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol+InvokeMethod:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
@@ -6,14 +6,14 @@
; r11 based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 28 single block inlinees; 12 inlinees without PGO data
+; 0 inlinees with PGO data; 26 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 17, 15.50) ref -> r5 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol+InvokeMethod>
-; V01 arg1 [V01,T07] ( 3, 3 ) ref -> r7 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.ConversionsBase>
+; V01 arg1 [V01,T08] ( 3, 3 ) ref -> r7 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.ConversionsBase>
; V02 arg2 [V02,T02] ( 10, 7.50) ref -> r6 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-; V03 loc0 [V03,T13] ( 4, 2.50) ref -> r9 class-hnd exact single-def <<unknown class>>
-; V04 loc1 [V04,T00] ( 26, 18 ) ref -> r8 class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
+;* V03 loc0 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <<unknown class>>
+; V04 loc1 [V04,T00] ( 26, 19 ) ref -> r8 class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
;* V05 loc2 [V05 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op <System.Threading.CancellationToken>
;* V06 loc3 [V06 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (28) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,43 +23,43 @@
;* V11 tmp4 [V11 ] ( 0, 0 ) struct ( 4) zero-ref single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
;* V12 tmp5 [V12 ] ( 0, 0 ) struct ( 4) zero-ref single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
; V13 tmp6 [V13,T03] ( 4, 8 ) ref -> r0 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax>
-; V14 tmp7 [V14,T04] ( 3, 6 ) ref -> r8 class-hnd single-def "Inlining Arg" <System.__Canon>
-; V15 tmp8 [V15,T05] ( 3, 6 ) ref -> r9 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V14 tmp7 [V14,T05] ( 3, 6 ) ref -> r8 class-hnd single-def "Inlining Arg" <System.__Canon>
+; V15 tmp8 [V15,T04] ( 5, 7 ) ref -> r9 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V16 tmp9 [V16 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V17 tmp10 [V17 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-; V18 tmp11 [V18,T21] ( 3, 1.50) ref -> [sp+0x38] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V18 tmp11 [V18,T20] ( 3, 1.50) ref -> [sp+0x38] class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <<unknown class>>
;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref single-def
-; V21 tmp14 [V21,T22] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
+; V21 tmp14 [V21,T21] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
;* V22 tmp15 [V22 ] ( 0, 0 ) struct (12) zero-ref multireg-arg "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-; V23 tmp16 [V23,T17] ( 2, 2 ) ref -> r3 class-hnd single-def "dup spill" <<unknown class>>
+; V23 tmp16 [V23,T16] ( 2, 2 ) ref -> r3 class-hnd single-def "dup spill" <<unknown class>>
;* V24 tmp17 [V24 ] ( 0, 0 ) struct (12) zero-ref <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
;* V25 tmp18 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp19 [V26,T15] ( 4, 2 ) ref -> r3
+; V26 tmp19 [V26,T14] ( 4, 2 ) ref -> r3
; V27 tmp20 [V27,T10] ( 4, 4 ) ref -> [sp+0x34] class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-; V28 tmp21 [V28,T18] ( 2, 2 ) ref -> [sp+0x30] class-hnd exact spill-single-def "finalizable newobj spill" <<unknown class>>
-;* V29 tmp22 [V29,T29] ( 0, 0 ) ref -> zero-ref single-def "field V05._source (fldOffset=0x0)" P-INDEP
+; V28 tmp21 [V28,T17] ( 2, 2 ) ref -> [sp+0x30] class-hnd exact spill-single-def "finalizable newobj spill" <<unknown class>>
+;* V29 tmp22 [V29,T28] ( 0, 0 ) ref -> zero-ref single-def "field V05._source (fldOffset=0x0)" P-INDEP
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref "field V06.DefaultType (fldOffset=0x0)" P-INDEP
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref "field V06._extensions (fldOffset=0x4)" P-INDEP
;* V32 tmp25 [V32 ] ( 0, 0 ) ubyte -> zero-ref "field V06.NullableAnnotation (fldOffset=0x8)" P-INDEP
-; V33 tmp26 [V33,T23] ( 2, 1.50) ref -> r1 "field V09.array (fldOffset=0x0)" P-INDEP
-; V34 tmp27 [V34,T24] ( 2, 1.50) ref -> [sp+0x2C] spill-single-def "field V10.array (fldOffset=0x0)" P-INDEP
-; V35 tmp28 [V35,T19] ( 2, 2 ) ref -> r1 "field V11.array (fldOffset=0x0)" P-INDEP
-; V36 tmp29 [V36,T20] ( 2, 2 ) ref -> r2 "field V12.array (fldOffset=0x0)" P-INDEP
-; V37 tmp30 [V37,T25] ( 2, 1.50) ref -> r1 single-def "field V17.DefaultType (fldOffset=0x0)" P-INDEP
-; V38 tmp31 [V38,T14] ( 3, 2.50) ref -> r0 single-def "field V17._extensions (fldOffset=0x4)" P-INDEP
+; V33 tmp26 [V33,T22] ( 2, 1.50) ref -> r1 "field V09.array (fldOffset=0x0)" P-INDEP
+; V34 tmp27 [V34,T23] ( 2, 1.50) ref -> [sp+0x2C] spill-single-def "field V10.array (fldOffset=0x0)" P-INDEP
+; V35 tmp28 [V35,T18] ( 2, 2 ) ref -> r1 "field V11.array (fldOffset=0x0)" P-INDEP
+; V36 tmp29 [V36,T19] ( 2, 2 ) ref -> r2 "field V12.array (fldOffset=0x0)" P-INDEP
+; V37 tmp30 [V37,T24] ( 2, 1.50) ref -> r1 single-def "field V17.DefaultType (fldOffset=0x0)" P-INDEP
+; V38 tmp31 [V38,T13] ( 3, 2.50) ref -> r0 single-def "field V17._extensions (fldOffset=0x4)" P-INDEP
;* V39 tmp32 [V39 ] ( 0, 0 ) ubyte -> zero-ref "field V17.NullableAnnotation (fldOffset=0x8)" P-INDEP
-; V40 tmp33 [V40,T26] ( 2, 1 ) ref -> [sp+0x28] spill-single-def "field V22.DefaultType (fldOffset=0x0)" P-INDEP
-; V41 tmp34 [V41,T27] ( 2, 1 ) ref -> [sp+0x24] spill-single-def "field V22._extensions (fldOffset=0x4)" P-INDEP
-; V42 tmp35 [V42,T28] ( 2, 1 ) ubyte -> [sp+0x44] spill-single-def "field V22.NullableAnnotation (fldOffset=0x8)" P-INDEP
+; V40 tmp33 [V40,T25] ( 2, 1 ) ref -> [sp+0x28] spill-single-def "field V22.DefaultType (fldOffset=0x0)" P-INDEP
+; V41 tmp34 [V41,T26] ( 2, 1 ) ref -> [sp+0x24] spill-single-def "field V22._extensions (fldOffset=0x4)" P-INDEP
+; V42 tmp35 [V42,T27] ( 2, 1 ) ubyte -> [sp+0x44] spill-single-def "field V22.NullableAnnotation (fldOffset=0x8)" P-INDEP
;* V43 tmp36 [V43 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.DefaultType (fldOffset=0x0)" P-INDEP
;* V44 tmp37 [V44 ] ( 0, 0 ) ref -> zero-ref single-def "field V24._extensions (fldOffset=0x4)" P-INDEP
;* V45 tmp38 [V45 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V24.NullableAnnotation (fldOffset=0x8)" P-INDEP
; V46 tmp39 [V46,T12] ( 2, 4 ) ref -> r0 single-def "argument with side effect"
-; V47 cse0 [V47,T16] ( 4, 2 ) byref -> [sp+0x20] spill-single-def "CSE - moderate"
-; V48 cse1 [V48,T06] ( 5, 5 ) int -> r7 "CSE - aggressive"
-; V49 cse2 [V49,T08] ( 5, 4.50) int -> [sp+0x40] spill-single-def "CSE - moderate"
-; V50 cse3 [V50,T09] ( 6, 4 ) int -> [sp+0x3C] multi-def "CSE - moderate"
+; V47 cse0 [V47,T15] ( 4, 2 ) byref -> [sp+0x20] spill-single-def "CSE - moderate"
+; V48 cse1 [V48,T06] ( 5, 5 ) int -> [sp+0x40] spill-single-def "CSE - aggressive"
+; V49 cse2 [V49,T07] ( 5, 5 ) int -> r7 "CSE - aggressive"
+; V50 cse3 [V50,T09] ( 6, 4.50) int -> [sp+0x3C] multi-def "CSE - moderate"
;
; Lcl frame size = 76
@@ -257,7 +257,7 @@ G_M52476_IG09: ; bbWeight=1, gcrefRegs=0370 {r4 r5 r6 r8 r9}, byrefRegs=0
movt r0, HIGH RELOC 0xD1FFAB1E
add r0, pc
ldr r3, [r0]
- str r3, [sp+0x40] // [V49 cse2]
+ str r3, [sp+0x40] // [V48 cse1]
ldr r0, [r8+r3]
; gcrRegs +[r0]
cmp r0, 0
@@ -265,7 +265,7 @@ G_M52476_IG09: ; bbWeight=1, gcrefRegs=0370 {r4 r5 r6 r8 r9}, byrefRegs=0
; GC ptr vars +{V18}
bne SHORT G_M52476_IG11
;; size=28 bbWeight=1 PerfScore 10.00
-G_M52476_IG10: ; bbWeight=0.50, gcVars=00200000 {V18}, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref
+G_M52476_IG10: ; bbWeight=0.50, gcVars=00100000 {V18}, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0 r4]
movw r0, LOW RELOC 0xD1FFAB1E
movt r0, HIGH RELOC 0xD1FFAB1E
@@ -290,7 +290,7 @@ G_M52476_IG11: ; bbWeight=1, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000
ldr r2, [r0]
str r2, [sp+0x3C] // [V50 cse3]
ldr r0, [r8+r2]
- ldr r3, [sp+0x40] // [V49 cse2]
+ ldr r3, [sp+0x40] // [V48 cse1]
ldr r0, [r8+r3]
; gcrRegs +[r0]
movw r4, LOW RELOC 0xD1FFAB1E
@@ -357,12 +357,12 @@ G_M52476_IG13: ; bbWeight=1, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000
; gcrRegs -[r1] +[r0]
str r0, [sp+0x2C] // [V34 tmp27]
; GC ptr vars +{V34}
- ldr r3, [sp+0x40] // [V49 cse2]
+ ldr r3, [sp+0x40] // [V48 cse1]
ldr r0, [r8+r3]
cmp r0, 0
bne SHORT G_M52476_IG15
;; size=30 bbWeight=1 PerfScore 12.00
-G_M52476_IG14: ; bbWeight=0.50, gcVars=01000000 {V34}, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref
+G_M52476_IG14: ; bbWeight=0.50, gcVars=00800000 {V34}, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r0]
ldr r2, [sp+0x3C] // [V50 cse3]
ldr r0, [r8+r2]
@@ -377,10 +377,10 @@ G_M52476_IG14: ; bbWeight=0.50, gcVars=01000000 {V34}, gcrefRegs=0360 {r5
blx lr // Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:CreateSourceAssemblyForCompilation(Microsoft.CodeAnalysis.CSharp.CSharpCompilation):this
; gcrRegs -[r0-r1]
;; size=28 bbWeight=0.50 PerfScore 4.50
-G_M52476_IG15: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
+G_M52476_IG15: ; bbWeight=1, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
ldr r0, [sp+0x3C] // [V50 cse3]
ldr r0, [r8+r0]
- ldr r3, [sp+0x40] // [V49 cse2]
+ ldr r3, [sp+0x40] // [V48 cse1]
ldr r0, [r8+r3]
; gcrRegs +[r0]
movw r4, LOW RELOC 0xD1FFAB1E
@@ -391,7 +391,9 @@ G_M52476_IG15: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
blx r3 // Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol:get_RuntimeSupportsNumericIntPtr():ubyte:this
; gcrRegs -[r0]
cmp r0, 0
- bne SHORT G_M52476_IG16
+ bne SHORT G_M52476_IG17
+ ;; size=32 bbWeight=1 PerfScore 12.00
+G_M52476_IG16: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
movs r2, 0
; gcrRegs +[r2]
str r2, [sp] // [V07 OutArgs]
@@ -408,8 +410,8 @@ G_M52476_IG15: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
; GC ptr vars -{V34}
blx lr // Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNativeIntegerAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder)
; gcrRegs -[r0-r2]
- ;; size=60 bbWeight=0.50 PerfScore 11.50
-G_M52476_IG16: ; bbWeight=1, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
+ ;; size=28 bbWeight=0.50 PerfScore 5.50
+G_M52476_IG17: ; bbWeight=1, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
ldr r1, [r5+0x44]
; gcrRegs +[r1]
mov r0, r7
@@ -444,9 +446,9 @@ G_M52476_IG16: ; bbWeight=1, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000
blx r3 // Microsoft.CodeAnalysis.CSharp.CSharpCompilation:ShouldEmitNullableAttributes(Microsoft.CodeAnalysis.CSharp.Symbol):ubyte:this
; gcrRegs -[r0-r1]
cmp r0, 0
- beq SHORT G_M52476_IG25
+ beq SHORT G_M52476_IG26
;; size=68 bbWeight=1 PerfScore 27.00
-G_M52476_IG17: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
+G_M52476_IG18: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
ldr r4, [r5+0x48]
; gcrRegs +[r4]
str r4, [sp+0x28] // [V40 tmp33]
@@ -473,7 +475,7 @@ G_M52476_IG17: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
ldr r3, [r4+r3]
; gcrRegs +[r3]
cmp r3, 0
- bne SHORT G_M52476_IG18
+ bne SHORT G_M52476_IG19
movw r3, 0xd1ff
; gcrRegs -[r3]
ldr r3, [r4+r3]
@@ -520,7 +522,7 @@ G_M52476_IG17: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
mov r3, r1
; gcrRegs +[r3]
;; size=116 bbWeight=0.50 PerfScore 22.00
-G_M52476_IG18: ; bbWeight=0.50, gcVars=0C000000 {V40 V41}, gcrefRegs=0368 {r3 r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref
+G_M52476_IG19: ; bbWeight=0.50, gcVars=06000000 {V40 V41}, gcrefRegs=0368 {r3 r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[r1]
; GC ptr vars -{V27}
movs r1, 0
@@ -528,20 +530,20 @@ G_M52476_IG18: ; bbWeight=0.50, gcVars=0C000000 {V40 V41}, gcrefRegs=0368
str r1, [sp] // [V07 OutArgs]
str r3, [sp+0x04] // [V07 OutArgs+0x04]
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M52476_IG19: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
+G_M52476_IG20: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
; gcrRegs -[r1 r3]
str r1, [sp+0x08] // [V07 OutArgs+0x08]
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M52476_IG20: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
+G_M52476_IG21: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
str r1, [sp+0x0C] // [V07 OutArgs+0x0c]
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M52476_IG21: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
+G_M52476_IG22: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
str r1, [sp+0x10] // [V07 OutArgs+0x10]
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M52476_IG22: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
+G_M52476_IG23: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref
str r1, [sp+0x14] // [V07 OutArgs+0x14]
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M52476_IG23: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
+G_M52476_IG24: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
str r1, [sp+0x18] // [V07 OutArgs+0x18]
ldr r1, [sp+0x28] // [V40 tmp33]
; gcrRegs +[r1]
@@ -560,7 +562,7 @@ G_M52476_IG23: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
blx lr // <unknown method>
; gcrRegs -[r1-r2] +[r0]
cmp r0, 0
- beq SHORT G_M52476_IG25
+ beq SHORT G_M52476_IG26
mov r0, r8
mov r2, r6
; gcrRegs +[r2]
@@ -575,7 +577,7 @@ G_M52476_IG23: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
; gcrRegs -[r0 r2-r3 r9]
ands r0, r0, 1
cmp r0, 0
- beq SHORT G_M52476_IG24
+ beq SHORT G_M52476_IG25
movw r0, LOW RELOC 0xD1FFAB1E
movt r0, HIGH RELOC 0xD1FFAB1E
add r0, pc
@@ -590,7 +592,7 @@ G_M52476_IG23: ; bbWeight=0.50, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0
blx r3 // <unknown method>
; byrRegs -[r0]
;; size=104 bbWeight=0.50 PerfScore 19.00
-G_M52476_IG24: ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref
+G_M52476_IG25: ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref
movw r1, LOW RELOC 0xD1FFAB1E
movt r1, HIGH RELOC 0xD1FFAB1E
add r1, pc
@@ -598,7 +600,7 @@ G_M52476_IG24: ; bbWeight=0.50, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000
movs r0, 1
strb r0, [r8+r1]
;; size=18 bbWeight=0.50 PerfScore 3.00
-G_M52476_IG25: ; bbWeight=1, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref
+G_M52476_IG26: ; bbWeight=1, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref
...
+2 (+2.17%) : 104108.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,12 +8,11 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> r0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> r5 single-def
; V01 loc0 [V01 ] ( 4, 4 ) int -> [sp+0x04] do-not-enreg[X] addr-exposed ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 2, 4 ) ref -> r6 class-hnd single-def "impAppendStmt" <System.String>
; V04 tmp2 [V04,T02] ( 2, 4 ) ref -> r2 single-def "argument with side effect"
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> r5 "CSE - aggressive"
;
; Lcl frame size = 12
@@ -21,10 +20,11 @@ G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push {r4,r5,r6,r11,lr}
sub sp, 12
add r11, sp, 24
- ;; size=10 bbWeight=1 PerfScore 3.00
+ mov r5, r0
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth r5, r0
- asrs r0, r5, 8
+ uxth r0, r5
+ asrs r0, r0, 8
str r0, [sp+0x04] // [V01 loc0]
add r0, sp, 4 // [V01 loc0]
movw r4, LOW RELOC 0xD1FFAB1E
@@ -66,7 +66,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r5,r6,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 92, prolog size 10, PerfScore 35.00, instruction count 35, allocated bytes for code 92 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 94, prolog size 10, PerfScore 36.00, instruction count 36, allocated bytes for code 94 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -78,7 +78,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 46 (0x0002e) Actual length = 92 (0x00005c)
+ Function Length : 47 (0x0002f) Actual length = 94 (0x00005e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
libraries.pmi.linux.arm.checked.mch
-4 (-20.00%) : 228976.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
@@ -7,7 +7,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 4, 4 ) byref -> r0 this single-def
+; V00 this [V00,T00] ( 3, 3 ) byref -> r0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 4
@@ -17,14 +17,13 @@ G_M60978_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=2 bbWeight=1 PerfScore 1.00
G_M60978_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
; byrRegs +[r0]
- ldrsb r3, [r0]
ldr r0, [r0+0x08]
; byrRegs -[r0]
cmp r0, 0
blt SHORT G_M60978_IG03
movs r0, 0
b SHORT G_M60978_IG04
- ;; size=14 bbWeight=1 PerfScore 6.00
+ ;; size=10 bbWeight=1 PerfScore 5.00
G_M60978_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 1
;; size=2 bbWeight=1 PerfScore 1.00
@@ -32,7 +31,7 @@ G_M60978_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 2, PerfScore 9.00, instruction count 9, allocated bytes for code 20 (MethodHash=310211cd) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 2, PerfScore 8.00, instruction count 8, allocated bytes for code 16 (MethodHash=310211cd) for method System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -44,7 +43,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 20 (0x000014)
+ Function Length : 8 (0x00008) Actual length = 16 (0x000010)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-2 (-14.29%) : 21959.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
@@ -8,9 +8,10 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> r0 this single-def
+; V00 this [V00,T00] ( 4, 4 ) byref -> r0 this single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+; V03 cse0 [V03,T01] ( 3, 3 ) int -> r3 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -20,16 +21,15 @@ G_M10371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M10371_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref
; byrRegs +[r0]
ldrh r3, [r0]
- ldrh r2, [r0]
- lsls r2, r2, 16
+ lsls r2, r3, 16
orrs r3, r2
str r3, [r0]
- ;; size=10 bbWeight=1 PerfScore 5.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
G_M10371_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r3,pc}
;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 14, prolog size 2, PerfScore 7.00, instruction count 7, allocated bytes for code 14 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
+; Total bytes of code 12, prolog size 2, PerfScore 6.00, instruction count 6, allocated bytes for code 12 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
; ============================================================
Unwind Info:
@@ -41,7 +41,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
+ Function Length : 6 (0x00006) Actual length = 12 (0x00000c)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-16 (-4.19%) : 158415.dasm - System.Reflection.Metadata.Ecma335.MetadataAggregator+RowCounts:ToString():System.String:this (FullOpts)
@@ -11,57 +11,58 @@
; V00 this [V00,T03] ( 4, 4 ) byref -> r4 this single-def
; V01 loc0 [V01 ] ( 20, 16.00) struct (24) [sp+0x00] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T06] ( 2, 4 ) ref -> r0 class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V04 tmp2 [V04 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V05 tmp3 [V05,T00] ( 5, 8 ) ref -> r0 class-hnd single-def "dup spill" <ushort[]>
;* V06 tmp4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V07 tmp5 [V07,T17] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V08 tmp6 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V09 tmp7 [V09 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V10 tmp8 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V11 tmp9 [V11,T01] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V12 tmp10 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V13 tmp11 [V13,T04] ( 3, 6.00) int -> r6 "Inlining Arg"
-; V14 tmp12 [V14,T09] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V09 tmp7 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V10 tmp8 [V10,T01] ( 4, 8.00) int -> r0 "Inlining Arg"
+;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V12 tmp10 [V12,T04] ( 3, 6.00) int -> r6 "Inlining Arg"
+; V13 tmp11 [V13,T10] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp13 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp14 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V17 tmp15 [V17,T15] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V18 tmp16 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V19 tmp17 [V19 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V20 tmp18 [V20,T11] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-;* V21 tmp19 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V22 tmp20 [V22,T02] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V23 tmp21 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V24 tmp22 [V24,T05] ( 3, 6.00) int -> r6 "Inlining Arg"
-; V25 tmp23 [V25,T10] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V16 tmp14 [V16,T16] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V17 tmp15 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V18 tmp16 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V19 tmp17 [V19,T12] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
+;* V20 tmp18 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V21 tmp19 [V21,T02] ( 4, 8.00) int -> r0 "Inlining Arg"
+;* V22 tmp20 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V23 tmp21 [V23,T05] ( 3, 6.00) int -> r7 "Inlining Arg"
+; V24 tmp22 [V24,T11] ( 2, 3.00) byref -> r6 single-def "Inlining Arg"
+;* V25 tmp23 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp24 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp25 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V28 tmp26 [V28,T16] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp27 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V30 tmp28 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V31 tmp29 [V31,T12] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-; V32 tmp30 [V32,T13] ( 3, 1.50) byref -> r5 "field V09._reference (fldOffset=0x0)" P-INDEP
-; V33 tmp31 [V33,T14] ( 3, 1.50) int -> r6 "field V09._length (fldOffset=0x4)" P-INDEP
-;* V34 tmp32 [V34 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V35 tmp33 [V35 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x4)" P-INDEP
-;* V36 tmp34 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V37 tmp35 [V37 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x4)" P-INDEP
-;* V38 tmp36 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V39 tmp37 [V39 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x4)" P-INDEP
-;* V40 tmp38 [V40 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V41 tmp39 [V41 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x4)" P-INDEP
-;* V42 tmp40 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V43 tmp41 [V43 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x4)" P-INDEP
-;* V44 tmp42 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V45 tmp43 [V45 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x4)" P-INDEP
-; V46 cse0 [V46,T07] ( 3, 3.00) int -> r1 "CSE - moderate"
-; V47 cse1 [V47,T08] ( 3, 3.00) int -> r1 "CSE - moderate"
+;* V27 tmp25 [V27,T17] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V28 tmp26 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V29 tmp27 [V29 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V30 tmp28 [V30,T13] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
+; V31 tmp29 [V31,T14] ( 3, 1.50) byref -> r5 "field V08._reference (fldOffset=0x0)" P-INDEP
+; V32 tmp30 [V32,T15] ( 3, 1.50) int -> r6 "field V08._length (fldOffset=0x4)" P-INDEP
+;* V33 tmp31 [V33 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V34 tmp32 [V34 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x4)" P-INDEP
+;* V35 tmp33 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp34 [V36 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x4)" P-INDEP
+;* V37 tmp35 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V38 tmp36 [V38 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x4)" P-INDEP
+;* V39 tmp37 [V39 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
+;* V40 tmp38 [V40 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x4)" P-INDEP
+;* V41 tmp39 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V42 tmp40 [V42 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x4)" P-INDEP
+;* V43 tmp41 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V44 tmp42 [V44 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x4)" P-INDEP
+; V45 cse0 [V45,T08] ( 3, 3.00) int -> r1 "CSE - aggressive"
+; V46 cse1 [V46,T09] ( 3, 3.00) int -> r1 "CSE - aggressive"
+; V47 cse2 [V47,T06] ( 6, 3.00) ref -> r1 multi-def "CSE - aggressive"
+; V48 cse3 [V48,T07] ( 3, 3.00) ref -> r5 "CSE - aggressive"
;
-; Lcl frame size = 28
+; Lcl frame size = 24
G_M18082_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r11,lr}
- sub sp, 28
+ push {r4,r5,r6,r7,r11,lr}
+ sub sp, 24
add r11, sp, 40
sub r3, r11, 40
movs r1, 0
@@ -119,15 +120,16 @@ G_M18082_IG06: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
;; size=12 bbWeight=1.00 PerfScore 6.00
G_M18082_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}, byref
; byrRegs -[r3]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ ; gcrRegs -[r0]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
G_M18082_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}, byref, isz
cmp r6, 3
blo SHORT G_M18082_IG17
@@ -150,66 +152,71 @@ G_M18082_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}
G_M18082_IG10: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
ldr r1, [r4]
add r0, sp, 0
- movw r2, 0xd1ff
- movt r2, 0xd1ff
+ movw r5, 0xd1ff
+ movt r5, 0xd1ff
+ mov r2, r5
+ ; gcrRegs +[r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
+ ; gcrRegs -[r2] +[r5]
ldr r0, [sp+0x08]
ldr r1, [sp+0x14]
cmp r0, r1
bhi SHORT G_M18082_IG20
- ;; size=32 bbWeight=1.00 PerfScore 12.00
-G_M18082_IG11: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+ ;; size=34 bbWeight=1.00 PerfScore 13.00
+G_M18082_IG11: ; bbWeight=1.00, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref, isz
ldr r3, [sp+0x10]
; byrRegs +[r3]
lsls r2, r0, 1
- adds r5, r3, r2
- ; byrRegs +[r5]
- subs r6, r1, r0
- cmp r6, 0
+ adds r6, r3, r2
+ ; byrRegs +[r6]
+ subs r7, r1, r0
+ cmp r7, 0
bge SHORT G_M18082_IG13
;; size=12 bbWeight=1.00 PerfScore 6.00
-G_M18082_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}, byref
+G_M18082_IG12: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0050 {r4 r6}, byref
; byrRegs -[r3]
- movw r0, 0xd1ff
- movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
+ mov r0, r1
+ ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ;; size=28 bbWeight=0.50 PerfScore 4.00
-G_M18082_IG13: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}, byref, isz
- cmp r6, 4
+ ; gcrRegs -[r0]
+ ;; size=22 bbWeight=0.50 PerfScore 3.50
+G_M18082_IG13: ; bbWeight=1.00, gcrefRegs=0020 {r5}, byrefRegs=0050 {r4 r6}, byref, isz
+ cmp r7, 4
blo SHORT G_M18082_IG18
;; size=4 bbWeight=1.00 PerfScore 2.00
-G_M18082_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}, byref
+G_M18082_IG14: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0050 {r4 r6}, byref
movw r1, 0xd1ff
movt r1, 0xd1ff
- mov r0, r5
+ mov r0, r6
; byrRegs +[r0]
movs r2, 8
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ; byrRegs -[r0 r5]
+ ; byrRegs -[r0 r6]
ldr r0, [sp+0x08]
adds r0, r0, 4
str r0, [sp+0x08]
;; size=30 bbWeight=0.50 PerfScore 5.48
-G_M18082_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
+G_M18082_IG15: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref
ldr r1, [r4+0x04]
add r0, sp, 0
- movw r2, 0xd1ff
- movt r2, 0xd1ff
+ mov r2, r5
+ ; gcrRegs +[r2]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
+ ; gcrRegs -[r2 r5]
; byrRegs -[r4]
add r0, sp, 0
movw r3, 0xd1ff
@@ -217,10 +224,10 @@ G_M18082_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
ldr r3, [r3]
blx r3 // System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
; gcrRegs +[r0]
- ;; size=38 bbWeight=1 PerfScore 13.00
+ ;; size=32 bbWeight=1 PerfScore 12.00
G_M18082_IG16: ; bbWeight=1, epilog, nogc, extend
- add sp, 28
- pop {r4,r5,r6,r11,pc}
+ add sp, 24
+ pop {r4,r5,r6,r7,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
G_M18082_IG17: ; bbWeight=0.00, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
; gcrRegs -[r0]
@@ -234,7 +241,8 @@ G_M18082_IG17: ; bbWeight=0.00, gcVars=00000000 {}, gcrefRegs=0000 {}, by
blx r3 // <unknown method>
b SHORT G_M18082_IG10
;; size=24 bbWeight=0.00 PerfScore 0.02
-G_M18082_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+G_M18082_IG18: ; bbWeight=0.00, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref, isz
+ ; gcrRegs +[r5]
add r0, sp, 0
movw r1, 0xd1ff
movt r1, 0xd1ff
@@ -245,6 +253,7 @@ G_M18082_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
b SHORT G_M18082_IG15
;; size=24 bbWeight=0.00 PerfScore 0.02
G_M18082_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+ ; gcrRegs -[r5]
movs r5, 0
movs r6, 0
b SHORT G_M18082_IG04
@@ -258,7 +267,7 @@ G_M18082_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bkpt
;; size=14 bbWeight=0 PerfScore 0.00
...
+34 (+1.10%) : 81746.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
@@ -5,238 +5,222 @@
; r11 based frame
; partially interruptible
; No matching PGO data
-; 3 inlinees with PGO data; 180 single block inlinees; 57 inlinees without PGO data
+; 3 inlinees with PGO data; 180 single block inlinees; 58 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T09] ( 15, 8.50) ref -> r5 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T11] ( 11, 7.50) ref -> r4 class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V02 arg2 [V02,T22] ( 4, 3 ) ref -> r6 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+; V02 arg2 [V02,T23] ( 4, 3 ) ref -> r6 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T72] ( 3, 2.50) int -> r1 "fgMakeTemp is creating a new local variable"
-; V06 tmp2 [V06,T43] ( 4, 3 ) ref -> r0 class-hnd "spilling QMark2" <<unknown class>>
+; V05 tmp1 [V05,T74] ( 3, 2.50) int -> r1 "fgMakeTemp is creating a new local variable"
+; V06 tmp2 [V06,T44] ( 4, 3 ) ref -> r0 class-hnd "spilling QMark2" <<unknown class>>
; V07 tmp3 [V07,T00] ( 12, 12 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V09 tmp5 [V09,T78] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V10 tmp6 [V10,T87] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V11 tmp7 [V11,T23] ( 4, 4 ) ref -> r8 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V09 tmp5 [V09,T80] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V10 tmp6 [V10,T89] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V11 tmp7 [V11,T24] ( 4, 4 ) ref -> r8 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V12 tmp8 [V12,T12] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V15 tmp11 [V15,T37] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp14 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V19 tmp15 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V21 tmp17 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V23 tmp19 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp20 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V25 tmp21 [V25,T13] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V26 tmp22 [V26,T69] ( 3, 2.80) int -> r3 "impAppendStmt"
-;* V27 tmp23 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V28 tmp24 [V28,T101] ( 3, 1 ) int -> r2 "Inline return value spill temp"
-; V29 tmp25 [V29,T73] ( 3, 2.20) int -> r2 "Inlining Arg"
-; V30 tmp26 [V30,T44] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V31 tmp27 [V31,T01] ( 12, 12 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V32 tmp28 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V33 tmp29 [V33,T79] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V34 tmp30 [V34,T88] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V35 tmp31 [V35,T24] ( 4, 4 ) ref -> r9 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V36 tmp32 [V36,T14] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V39 tmp35 [V39,T38] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp38 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V19 tmp15 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp17 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V23 tmp19 [V23,T13] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V24 tmp20 [V24,T71] ( 3, 2.80) int -> r3 "impAppendStmt"
+;* V25 tmp21 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V26 tmp22 [V26,T102] ( 3, 1 ) int -> r2 "Inline return value spill temp"
+; V27 tmp23 [V27,T75] ( 3, 2.20) int -> r2 "Inlining Arg"
+; V28 tmp24 [V28,T45] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V29 tmp25 [V29,T01] ( 12, 12 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V31 tmp27 [V31,T81] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V32 tmp28 [V32,T90] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V33 tmp29 [V33,T25] ( 4, 4 ) ref -> r9 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V34 tmp30 [V34,T14] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V35 tmp31 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V37 tmp33 [V37,T38] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V41 tmp37 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V42 tmp38 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp39 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp40 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V45 tmp41 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V46 tmp42 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V48 tmp44 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V49 tmp45 [V49,T15] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V50 tmp46 [V50,T70] ( 3, 2.80) int -> r3 "impAppendStmt"
-;* V51 tmp47 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V52 tmp48 [V52,T102] ( 3, 1 ) int -> r2 "Inline return value spill temp"
-; V53 tmp49 [V53,T74] ( 3, 2.20) int -> r2 "Inlining Arg"
-; V54 tmp50 [V54,T45] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V55 tmp51 [V55,T02] ( 12, 12 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V56 tmp52 [V56 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V57 tmp53 [V57,T80] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V58 tmp54 [V58,T89] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V59 tmp55 [V59,T25] ( 4, 4 ) ref -> r10 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V60 tmp56 [V60,T16] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V61 tmp57 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V45 tmp41 [V45,T15] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V46 tmp42 [V46,T72] ( 3, 2.80) int -> r3 "impAppendStmt"
+;* V47 tmp43 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V48 tmp44 [V48,T103] ( 3, 1 ) int -> r2 "Inline return value spill temp"
+; V49 tmp45 [V49,T76] ( 3, 2.20) int -> r2 "Inlining Arg"
+; V50 tmp46 [V50,T46] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V51 tmp47 [V51,T02] ( 12, 12 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V52 tmp48 [V52 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V53 tmp49 [V53,T82] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V54 tmp50 [V54,T91] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V55 tmp51 [V55,T26] ( 4, 4 ) ref -> r10 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V56 tmp52 [V56,T16] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V57 tmp53 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp54 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V59 tmp55 [V59,T39] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V60 tmp56 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V61 tmp57 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V62 tmp58 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp59 [V63,T39] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
-;* V64 tmp60 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V63 tmp59 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V64 tmp60 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp61 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp62 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V67 tmp63 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V68 tmp64 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V69 tmp65 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V70 tmp66 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V71 tmp67 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V72 tmp68 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V73 tmp69 [V73,T17] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V74 tmp70 [V74,T71] ( 3, 2.80) int -> r3 "impAppendStmt"
-;* V75 tmp71 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp72 [V76,T103] ( 3, 1 ) int -> r2 "Inline return value spill temp"
-; V77 tmp73 [V77,T75] ( 3, 2.20) int -> r2 "Inlining Arg"
-; V78 tmp74 [V78,T46] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V79 tmp75 [V79,T03] ( 12, 12 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V80 tmp76 [V80 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V81 tmp77 [V81,T81] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V82 tmp78 [V82,T90] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V83 tmp79 [V83,T26] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V84 tmp80 [V84,T18] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V85 tmp81 [V85 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp62 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V67 tmp63 [V67,T17] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V68 tmp64 [V68,T73] ( 3, 2.80) int -> r3 "impAppendStmt"
+;* V69 tmp65 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V70 tmp66 [V70,T104] ( 3, 1 ) int -> r2 "Inline return value spill temp"
+; V71 tmp67 [V71,T77] ( 3, 2.20) int -> r2 "Inlining Arg"
+; V72 tmp68 [V72,T47] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V73 tmp69 [V73,T03] ( 12, 12 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V74 tmp70 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V75 tmp71 [V75,T83] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V76 tmp72 [V76,T92] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V77 tmp73 [V77,T27] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V78 tmp74 [V78,T18] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V79 tmp75 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V80 tmp76 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V81 tmp77 [V81,T40] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
+;* V82 tmp78 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V83 tmp79 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V84 tmp80 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V85 tmp81 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V86 tmp82 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V87 tmp83 [V87,T40] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
+;* V87 tmp83 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V88 tmp84 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V89 tmp85 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V90 tmp86 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V91 tmp87 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V92 tmp88 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V93 tmp89 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V94 tmp90 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V95 tmp91 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V96 tmp92 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V97 tmp93 [V97,T47] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V98 tmp94 [V98,T04] ( 12, 12 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V99 tmp95 [V99 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V100 tmp96 [V100,T82] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V101 tmp97 [V101,T91] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V102 tmp98 [V102,T27] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V103 tmp99 [V103,T19] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V104 tmp100 [V104 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V105 tmp101 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V106 tmp102 [V106,T41] ( 6, 3 ) int -> r9 "Inline stloc first use temp"
-;* V107 tmp103 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V108 tmp104 [V108 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V109 tmp105 [V109 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V110 tmp106 [V110 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V111 tmp107 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V112 tmp108 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V113 tmp109 [V113 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V89 tmp85 [V89,T48] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V90 tmp86 [V90,T04] ( 12, 12 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V91 tmp87 [V91 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V92 tmp88 [V92,T84] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V93 tmp89 [V93,T93] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V94 tmp90 [V94,T28] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V95 tmp91 [V95,T19] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V96 tmp92 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V97 tmp93 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V98 tmp94 [V98,T41] ( 6, 3 ) int -> r9 "Inline stloc first use temp"
+;* V99 tmp95 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V100 tmp96 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V101 tmp97 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V102 tmp98 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V103 tmp99 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V104 tmp100 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V105 tmp101 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V106 tmp102 [V106,T49] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V107 tmp103 [V107,T05] ( 12, 12 ) ref -> r9 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V108 tmp104 [V108 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V109 tmp105 [V109,T85] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V110 tmp106 [V110,T94] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V111 tmp107 [V111,T29] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V112 tmp108 [V112,T20] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V113 tmp109 [V113 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V114 tmp110 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp111 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V116 tmp112 [V116,T48] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V117 tmp113 [V117,T05] ( 12, 12 ) ref -> r9 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V118 tmp114 [V118 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V119 tmp115 [V119,T83] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V120 tmp116 [V120,T92] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V121 tmp117 [V121,T28] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp118 [V122,T20] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V123 tmp119 [V123 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V124 tmp120 [V124 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V125 tmp121 [V125,T42] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V126 tmp122 [V126 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V127 tmp123 [V127 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V128 tmp124 [V128 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V129 tmp125 [V129 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V130 tmp126 [V130 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V131 tmp127 [V131 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V132 tmp128 [V132 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V133 tmp129 [V133 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V134 tmp130 [V134 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V135 tmp131 [V135,T49] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V136 tmp132 [V136,T06] ( 12, 12 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V137 tmp133 [V137 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V138 tmp134 [V138,T84] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V139 tmp135 [V139,T93] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V140 tmp136 [V140,T29] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V141 tmp137 [V141,T30] ( 4, 4 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V142 tmp138 [V142 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V143 tmp139 [V143,T97] ( 3, 1.50) int -> r0 single-def "Inline stloc first use temp"
-;* V144 tmp140 [V144 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V145 tmp141 [V145 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
...
+2 (+2.38%) : 184595.dasm - ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (FullOpts)
@@ -8,14 +8,14 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 6, 6 ) int -> r0 single-def
-; V01 arg1 [V01,T04] ( 3, 3 ) ushort -> r1 single-def
+; V01 arg1 [V01,T03] ( 4, 4 ) ushort -> r1 single-def
; V02 loc0 [V02,T01] ( 6, 6 ) int -> r3
; V03 loc1 [V03,T02] ( 6, 6 ) int -> r2
;* V04 loc2 [V04 ] ( 0, 0 ) int -> zero-ref
;* V05 loc3 [V05 ] ( 0, 0 ) int -> zero-ref
;* V06 loc4 [V06 ] ( 0, 0 ) int -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 cse0 [V08,T03] ( 5, 5 ) int -> r1 "CSE - aggressive"
+; V08 cse0 [V08,T04] ( 4, 4 ) int -> lr "CSE - aggressive"
;
; Lcl frame size = 0
@@ -32,26 +32,26 @@ G_M25974_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw lr, 0xd1ff
movt lr, 0xd1ff
and r2, r2, lr
- uxth r1, r1
- and lr, r1, 0xf000
- lsr lr, lr, 12
- orr r3, r3, lr
- and lr, r1, 0x800
- lsr lr, lr, 1
- orr r3, r3, lr
- and lr, r1, 0x700
+ uxth lr, r1
+ and r12, lr, 0xf000
+ lsr r12, r12, 12
+ orr r3, r3, r12
+ and r12, lr, 0x800
+ lsr r12, r12, 1
+ orr r3, r3, r12
+ and lr, lr, 0x700
lsl lr, lr, 4
orr r2, r2, lr
uxtb r1, r1
orrs r2, r1
strh r3, [r0]
strh r2, [r0+0x02]
- ;; size=74 bbWeight=1 PerfScore 22.00
+ ;; size=76 bbWeight=1 PerfScore 22.00
G_M25974_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 84, prolog size 6, PerfScore 25.00, instruction count 25, allocated bytes for code 84 (MethodHash=94659a89) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (FullOpts)
+; Total bytes of code 86, prolog size 6, PerfScore 25.00, instruction count 25, allocated bytes for code 86 (MethodHash=94659a89) for method ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (FullOpts)
; ============================================================
Unwind Info:
@@ -63,7 +63,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 42 (0x0002a) Actual length = 84 (0x000054)
+ Function Length : 43 (0x0002b) Actual length = 86 (0x000056)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+2.94%) : 155994.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> r0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> r4 single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> r5 single-def "argument with side effect"
; V05 tmp3 [V05,T02] ( 2, 4 ) ref -> r2 single-def "argument with side effect"
-; V06 cse0 [V06,T03] ( 3, 3 ) int -> r4 "CSE - aggressive"
;
; Lcl frame size = 0
G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r4,r5,r11,lr}
add r11, sp, 8
- ;; size=8 bbWeight=1 PerfScore 2.00
+ mov r4, r0
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth r4, r0
- asrs r0, r4, 8
+ uxth r0, r4
+ asrs r0, r0, 8
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -54,7 +54,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 68, prolog size 8, PerfScore 23.00, instruction count 23, allocated bytes for code 68 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 70, prolog size 8, PerfScore 24.00, instruction count 24, allocated bytes for code 70 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -66,7 +66,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ Function Length : 35 (0x00023) Actual length = 70 (0x000046)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
libraries_tests.run.linux.arm.Release.mch
-14 (-50.00%) : 72426.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
@@ -14,17 +14,13 @@ G_M52681_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
G_M52681_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r0, 512
- movs r1, 4
- movw r3, 0xd1ff
- movt r3, 0xd1ff
- blx r3 // CORINFO_HELP_UDIV
- ;; size=16 bbWeight=1 PerfScore 5.00
+ movs r0, 128
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M52681_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 28, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 28 (MethodHash=81b63236) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
+; Total bytes of code 14, prolog size 8, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=81b63236) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
; ============================================================
Unwind Info:
@@ -36,7 +32,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 28 (0x00001c)
+ Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-14 (-50.00%) : 464087.dasm - TestType:meth1():int (Tier0)
@@ -14,20 +14,13 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
add r11, sp, 8
;; size=8 bbWeight=1 PerfScore 2.00
G_M16291_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movs r3, 1
- adds r3, r3, 1
- movs r2, 1
- adds r2, r2, 1
- adds r2, r2, 1
- adds r3, r3, r2
- adds r3, r3, 2
- adds r0, r3, 1
- ;; size=16 bbWeight=1 PerfScore 8.00
+ movs r0, 8
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 28, prolog size 8, PerfScore 11.00, instruction count 11, allocated bytes for code 28 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 14, prolog size 8, PerfScore 4.00, instruction count 4, allocated bytes for code 14 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
Unwind Info:
@@ -39,7 +32,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 14 (0x0000e) Actual length = 28 (0x00001c)
+ Function Length : 7 (0x00007) Actual length = 14 (0x00000e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-28 (-45.16%) : 3428.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
@@ -5,47 +5,31 @@
; partially interruptible
; Final local variable assignments
;
-; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [sp+0x08] do-not-enreg[]
+; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [sp+0x00] do-not-enreg[]
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 byref -> [r11-0x14]
;
-; Lcl frame size = 16
+; Lcl frame size = 8
G_M28933_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r10,r11,lr}
- sub sp, 16
- add r11, sp, 24
- movs r1, 0
- str r1, [sp+0x04]
+ push {r2,r3,r4,r10,r11,lr}
+ add r11, sp, 16
str r0, [r11-0x0C]
- str r0, [sp+0x08]
- ;; size=20 bbWeight=1 PerfScore 7.00
+ str r0, [sp]
+ ;; size=14 bbWeight=1 PerfScore 4.00
G_M28933_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr r0, [sp+0x08]
+ ldr r0, [sp]
movw r3, 0xd1ff
movt r3, 0xd1ff
blx r3 // CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[r0]
- mov r3, r0
- ; byrRegs +[r3]
- str r3, [sp+0x04]
- mov r0, 512
- ; byrRegs -[r0]
- movs r1, 4
- movw r2, 0xd1ff
- movt r2, 0xd1ff
- blx r2 // CORINFO_HELP_UDIV
- ; byrRegs -[r3]
- ldr r3, [sp+0x04]
- ; byrRegs +[r3]
- str r0, [r3+0x08]
- ;; size=36 bbWeight=1 PerfScore 13.00
+ movs r3, 128
+ str r3, [r0+0x08]
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M28933_IG03: ; bbWeight=1, epilog, nogc, extend
- add sp, 16
- pop {r4,r10,r11,pc}
- ;; size=6 bbWeight=1 PerfScore 2.00
+ pop {r2,r3,r4,r10,r11,pc}
+ ;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 62, prolog size 18, PerfScore 22.00, instruction count 22, allocated bytes for code 62 (MethodHash=381d8efa) for method System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
+; Total bytes of code 34, prolog size 12, PerfScore 11.00, instruction count 11, allocated bytes for code 34 (MethodHash=381d8efa) for method System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
; ============================================================
Unwind Info:
@@ -57,11 +41,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 31 (0x0001f) Actual length = 62 (0x00003e)
+ Function Length : 17 (0x00011) Actual length = 34 (0x000022)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- 04 add sp, sp, #16 ; opsize 16
- AC 10 pop {r4,r10,r11,lr} ; opsize 32
+ AC 1C pop {r2,r3,r4,r10,r11,lr} ; opsize 32
+ FF end
FF end
+4 (+4.44%) : 278530.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
@@ -34,8 +34,10 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
blx r3 // <unknown method>
ldr r3, [sp+0x10]
asrs r3, r3, 16
+ uxth r3, r3
sxth r2, r3
ldr r3, [sp+0x10]
+ uxth r3, r3
sxth r1, r3
add r0, sp, 0
movw r3, 0xd1ff
@@ -50,13 +52,13 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movt r4, 0xd1ff
ldr r4, [r4]
blx r4 // <unknown method>
- ;; size=60 bbWeight=1 PerfScore 24.00
+ ;; size=64 bbWeight=1 PerfScore 26.00
G_M34188_IG03: ; bbWeight=1, epilog, nogc, extend
add sp, 24
pop {r4,r10,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 90, prolog size 20, PerfScore 36.00, instruction count 36, allocated bytes for code 90 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
+; Total bytes of code 94, prolog size 20, PerfScore 38.00, instruction count 38, allocated bytes for code 94 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
; ============================================================
Unwind Info:
@@ -68,7 +70,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 45 (0x0002d) Actual length = 90 (0x00005a)
+ Function Length : 47 (0x0002f) Actual length = 94 (0x00005e)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+10.00%) : 278533.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -18,13 +18,14 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M7017_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr r3, [sp+0x04]
asrs r3, r3, 16
+ uxth r3, r3
sxth r0, r3
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 8, PerfScore 7.00, instruction count 7, allocated bytes for code 20 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 22, prolog size 8, PerfScore 8.00, instruction count 8, allocated bytes for code 22 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -36,7 +37,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 10 (0x0000a) Actual length = 20 (0x000014)
+ Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
+2 (+11.11%) : 278532.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -17,13 +17,14 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=10 bbWeight=1 PerfScore 3.00
G_M39123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ldr r3, [sp+0x04]
+ uxth r3, r3
sxth r0, r3
- ;; size=4 bbWeight=1 PerfScore 2.00
+ ;; size=6 bbWeight=1 PerfScore 3.00
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r2,r3,r4,r10,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 18, prolog size 8, PerfScore 6.00, instruction count 6, allocated bytes for code 18 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 20, prolog size 8, PerfScore 7.00, instruction count 7, allocated bytes for code 20 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
Unwind Info:
@@ -35,7 +36,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 9 (0x00009) Actual length = 18 (0x000012)
+ Function Length : 10 (0x0000a) Actual length = 20 (0x000014)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-6 (-20.00%) : 232301.dasm - System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
@@ -13,12 +13,11 @@
;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V03 tmp2 [V03,T01] ( 0, 0 ) int -> zero-ref "field V02._value (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M12600_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=1 PerfScore 2.00
+ push {r3,lr}
+ ;; size=2 bbWeight=1 PerfScore 1.00
G_M12600_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
; gcrRegs +[r0]
movw r1, 0xd1ff
@@ -28,12 +27,13 @@ G_M12600_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
ldr r3, [r3]
blx r3 // <unknown method>
; gcrRegs -[r0]
+ ; gcr arg pop 0
;; size=20 bbWeight=1 PerfScore 6.00
G_M12600_IG03: ; bbWeight=1, epilog, nogc, extend
- pop {r11,pc}
- ;; size=4 bbWeight=1 PerfScore 1.00
+ pop {r3,pc}
+ ;; size=2 bbWeight=1 PerfScore 1.00
-; Total bytes of code 30, prolog size 6, PerfScore 9.00, instruction count 9, allocated bytes for code 30 (MethodHash=d8a2cec7) for method System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
+; Total bytes of code 24, prolog size 2, PerfScore 8.00, instruction count 8, allocated bytes for code 24 (MethodHash=d8a2cec7) for method System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
; ============================================================
Unwind Info:
@@ -45,11 +45,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 30 (0x00001e)
+ Function Length : 12 (0x0000c) Actual length = 24 (0x000018)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-4 (-18.18%) : 202921.dasm - System.Tests.StringTests+<>c:b_1652():System.Object:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
@@ -13,12 +13,12 @@
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
;* V03 tmp2 [V03 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V05 tmp4 [V05 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V05 tmp4 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V06 tmp5 [V06 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
;* V07 tmp6 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V08 tmp7 [V08 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V09 tmp8 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V10 tmp9 [V10 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V10 tmp9 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp10 [V11 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x4)" P-INDEP
;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP
@@ -28,22 +28,22 @@
;* V17 tmp16 [V17 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x4)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M10777_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=0 PerfScore 0.00
+ push {r3,lr}
+ ;; size=2 bbWeight=0 PerfScore 0.00
G_M10777_IG02: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 92
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.ThrowHelper:ThrowArgumentNullException(int)
+ ; gcr arg pop 0
bkpt
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 22, prolog size 6, PerfScore 0.00, instruction count 8, allocated bytes for code 22 (MethodHash=5a86d5e6) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
+; Total bytes of code 18, prolog size 2, PerfScore 0.00, instruction count 7, allocated bytes for code 18 (MethodHash=5a86d5e6) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,11 +55,11 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
+ Function Length : 9 (0x00009) Actual length = 18 (0x000012)
---- Epilog scopes ----
No epilogs
---- Unwind codes ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
-4 (-18.18%) : 214333.dasm - System.Tests.DateTimeTests+<>c:b_1361():System.Object:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
-; r11 based frame
+; sp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
@@ -26,22 +26,22 @@
;* V15 tmp14 [V15 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
;* V16 tmp15 [V16 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x4)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 4
G_M20455_IG01: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r11,lr}
- mov r11, sp
- ;; size=6 bbWeight=0 PerfScore 0.00
+ push {r3,lr}
+ ;; size=2 bbWeight=0 PerfScore 0.00
G_M20455_IG02: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movs r0, 17
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // System.ThrowHelper:ThrowArgumentNullException(int)
+ ; gcr arg pop 0
bkpt
;; size=16 bbWeight=0 PerfScore 0.00
-; Total bytes of code 22, prolog size 6, PerfScore 0.00, instruction count 8, allocated bytes for code 22 (MethodHash=3679b018) for method System.Tests.DateTimeTests+<>c:<ParseExact_InvalidArguments_Throws>b__136_1():System.Object:this (FullOpts)
+; Total bytes of code 18, prolog size 2, PerfScore 0.00, instruction count 7, allocated bytes for code 18 (MethodHash=3679b018) for method System.Tests.DateTimeTests+<>c:<ParseExact_InvalidArguments_Throws>b__136_1():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,11 +53,11 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 11 (0x0000b) Actual length = 22 (0x000016)
+ Function Length : 9 (0x00009) Actual length = 18 (0x000012)
---- Epilog scopes ----
No epilogs
---- Unwind codes ----
- A8 00 pop {r11,lr} ; opsize 32
+ ED 08 pop {r3,lr} ; opsize 16
FF end
FF end
+32 (+2.33%) : 160756.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest():this (FullOpts)
@@ -10,18 +10,18 @@
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Numerics.Tests.QuaternionTests>
;* V01 loc0 [V01 ] ( 0, 0 ) struct (12) zero-ref HFA(float) <System.Numerics.Vector3>
-;* V02 loc1 [V02,T15] ( 0, 0 ) struct (16) zero-ref HFA(float) do-not-enreg[SA] multireg-arg <System.Numerics.Quaternion>
+;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref HFA(float) do-not-enreg[S] <System.Numerics.Quaternion>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref HFA(float) do-not-enreg[S] <System.Numerics.Quaternion>
-;* V04 loc3 [V04,T54] ( 0, 0 ) float -> zero-ref single-def
-;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref HFA(float) multireg-arg <System.Numerics.Quaternion>
+;* V04 loc3 [V04 ] ( 0, 0 ) float -> zero-ref single-def
+;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref HFA(float) <System.Numerics.Quaternion>
;* V06 loc5 [V06 ] ( 0, 0 ) struct (16) zero-ref HFA(float) multireg-arg multireg-ret <System.Numerics.Quaternion>
; V07 loc6 [V07 ] ( 42, 33.99) struct (24) [sp+0x08] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) struct (12) zero-ref HFA(float) ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
;* V10 tmp2 [V10 ] ( 0, 0 ) struct (16) zero-ref HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Quaternion>
-; V11 tmp3 [V11,T20] ( 3, 4 ) int -> r4 "impAppendStmt"
+; V11 tmp3 [V11,T15] ( 3, 4 ) int -> r4 "impAppendStmt"
;* V12 tmp4 [V12 ] ( 0, 0 ) struct (16) zero-ref HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Quaternion>
-; V13 tmp5 [V13,T21] ( 3, 4 ) int -> r5 "impAppendStmt"
+; V13 tmp5 [V13,T16] ( 3, 4 ) int -> r5 "impAppendStmt"
;* V14 tmp6 [V14 ] ( 0, 0 ) struct (12) zero-ref HFA(float) ld-addr-op "Inlining Arg" <System.Numerics.Vector3>
;* V15 tmp7 [V15 ] ( 0, 0 ) struct (12) zero-ref HFA(float) "impAppendStmt" <System.Numerics.Vector3>
;* V16 tmp8 [V16 ] ( 0, 0 ) float -> zero-ref "Inline stloc first use temp"
@@ -29,182 +29,175 @@
;* V18 tmp10 [V18 ] ( 0, 0 ) struct (12) zero-ref HFA(float) "Inlining Arg" <System.Numerics.Vector3>
;* V19 tmp11 [V19 ] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V20 tmp12 [V20 ] ( 0, 0 ) struct (12) zero-ref HFA(float) ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
-;* V21 tmp13 [V21,T41] ( 0, 0 ) float -> zero-ref "Inlining Arg"
+;* V21 tmp13 [V21,T29] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V22 tmp14 [V22 ] ( 0, 0 ) struct (12) zero-ref HFA(float) "Inlining Arg" <System.Numerics.Vector3>
;* V23 tmp15 [V23 ] ( 0, 0 ) struct (12) zero-ref HFA(float) ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
;* V24 tmp16 [V24 ] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V25 tmp17 [V25 ] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V26 tmp18 [V26 ] ( 0, 0 ) float -> zero-ref "Inlining Arg"
;* V27 tmp19 [V27 ] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V28 tmp20 [V28,T55] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V29 tmp21 [V29,T56] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
+;* V28 tmp20 [V28,T42] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
+;* V29 tmp21 [V29,T43] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
;* V30 tmp22 [V30 ] ( 0, 0 ) struct (16) zero-ref HFA(float) multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Quaternion>
;* V31 tmp23 [V31 ] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V32 tmp24 [V32,T57] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V33 tmp25 [V33,T58] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
+;* V32 tmp24 [V32,T44] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
+;* V33 tmp25 [V33,T45] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
;* V34 tmp26 [V34 ] ( 0, 0 ) struct (16) zero-ref HFA(float) multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Quaternion>
;* V35 tmp27 [V35 ] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V36 tmp28 [V36,T59] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V37 tmp29 [V37,T60] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
-;* V38 tmp30 [V38 ] ( 0, 0 ) struct (16) zero-ref HFA(float) ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Quaternion>
-; V39 tmp31 [V39,T22] ( 2, 4 ) ref -> r0 class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+;* V36 tmp28 [V36,T46] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
+;* V37 tmp29 [V37,T47] ( 0, 0 ) float -> zero-ref single-def "Inline stloc first use temp"
+;* V38 tmp30 [V38 ] ( 0, 0 ) struct (16) zero-ref HFA(float) multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Quaternion>
+;* V39 tmp31 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V40 tmp32 [V40 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V41 tmp33 [V41,T01] ( 5, 8 ) ref -> r0 class-hnd single-def "dup spill" <ushort[]>
;* V42 tmp34 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V43 tmp35 [V43,T61] ( 0, 0 ) int -> zero-ref single-def "Inline return value spill temp"
-;* V44 tmp36 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V45 tmp37 [V45 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V46 tmp38 [V46 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V47 tmp39 [V47,T03] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V48 tmp40 [V48 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V49 tmp41 [V49,T08] ( 3, 6.00) int -> r6 "Inlining Arg"
-; V50 tmp42 [V50,T31] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V43 tmp35 [V43 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V44 tmp36 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V45 tmp37 [V45 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V46 tmp38 [V46,T03] ( 4, 8.00) int -> r0 "Inlining Arg"
+;* V47 tmp39 [V47 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V48 tmp40 [V48,T08] ( 3, 6.00) int -> r6 "Inlining Arg"
+; V49 tmp41 [V49,T23] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V50 tmp42 [V50 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V51 tmp43 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V52 tmp44 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V53 tmp45 [V53,T50] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V54 tmp46 [V54 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V55 tmp47 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V56 tmp48 [V56,T42] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-;* V57 tmp49 [V57 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V58 tmp50 [V58,T04] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V59 tmp51 [V59 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V60 tmp52 [V60,T09] ( 3, 6.00) int -> r6 "Inlining Arg"
-; V61 tmp53 [V61,T32] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V52 tmp44 [V52,T38] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V53 tmp45 [V53 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V54 tmp46 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V55 tmp47 [V55,T30] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
+;* V56 tmp48 [V56 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V57 tmp49 [V57,T04] ( 4, 8.00) int -> r0 "Inlining Arg"
+;* V58 tmp50 [V58 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V59 tmp51 [V59,T09] ( 3, 6.00) int -> r6 "Inlining Arg"
+; V60 tmp52 [V60,T24] ( 2, 3.00) byref -> r5 single-def "Inlining Arg"
+;* V61 tmp53 [V61 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V62 tmp54 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V63 tmp55 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V64 tmp56 [V64,T51] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V65 tmp57 [V65 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V66 tmp58 [V66 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V67 tmp59 [V67,T43] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-;* V68 tmp60 [V68 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V69 tmp61 [V69 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
-; V70 tmp62 [V70,T23] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V71 tmp63 [V71 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V72 tmp64 [V72,T24] ( 2, 4 ) ref -> r0 class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V73 tmp65 [V73 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
-; V74 tmp66 [V74,T02] ( 5, 8 ) ref -> r0 class-hnd single-def "dup spill" <ushort[]>
-;* V75 tmp67 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V76 tmp68 [V76,T62] ( 0, 0 ) int -> zero-ref single-def "Inline return value spill temp"
-;* V77 tmp69 [V77 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V78 tmp70 [V78 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V79 tmp71 [V79 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V80 tmp72 [V80,T05] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V81 tmp73 [V81 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V82 tmp74 [V82,T10] ( 3, 6.00) int -> r6 "Inlining Arg"
-; V83 tmp75 [V83,T33] ( 2, 3.00) byref -> r4 single-def "Inlining Arg"
-;* V84 tmp76 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V85 tmp77 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V86 tmp78 [V86,T52] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V87 tmp79 [V87 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V88 tmp80 [V88 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V89 tmp81 [V89,T44] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-;* V90 tmp82 [V90 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V91 tmp83 [V91,T06] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V92 tmp84 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V93 tmp85 [V93,T11] ( 3, 6.00) int -> r6 "Inlining Arg"
-; V94 tmp86 [V94,T34] ( 2, 3.00) byref -> r4 single-def "Inlining Arg"
-;* V95 tmp87 [V95 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V96 tmp88 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V97 tmp89 [V97,T53] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V98 tmp90 [V98 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V99 tmp91 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V100 tmp92 [V100,T45] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-;* V101 tmp93 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V102 tmp94 [V102 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
-; V103 tmp95 [V103,T25] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V104 tmp96 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V105 tmp97 [V105 ] ( 0, 0 ) float -> zero-ref single-def "field V01.X (fldOffset=0x0)" P-INDEP
-;* V106 tmp98 [V106 ] ( 0, 0 ) float -> zero-ref single-def "field V01.Y (fldOffset=0x4)" P-INDEP
-;* V107 tmp99 [V107 ] ( 0, 0 ) float -> zero-ref single-def "field V01.Z (fldOffset=0x8)" P-INDEP
-;* V108 tmp100 [V108,T35] ( 0, 0 ) float -> zero-ref "field V05.X (fldOffset=0x0)" P-INDEP
-;* V109 tmp101 [V109,T36] ( 0, 0 ) float -> zero-ref "field V05.Y (fldOffset=0x4)" P-INDEP
-;* V110 tmp102 [V110,T37] ( 0, 0 ) float -> zero-ref "field V05.Z (fldOffset=0x8)" P-INDEP
-;* V111 tmp103 [V111,T38] ( 0, 0 ) float -> zero-ref "field V05.W (fldOffset=0xc)" P-INDEP
-; V112 tmp104 [V112,T07] ( 6, 6 ) float -> f16 "field V06.X (fldOffset=0x0)" P-INDEP
-; V113 tmp105 [V113,T12] ( 6, 5 ) float -> f17 "field V06.Y (fldOffset=0x4)" P-INDEP
-; V114 tmp106 [V114,T13] ( 6, 5 ) float -> f18 "field V06.Z (fldOffset=0x8)" P-INDEP
-; V115 tmp107 [V115,T14] ( 6, 5 ) float -> f19 "field V06.W (fldOffset=0xc)" P-INDEP
-;* V116 tmp108 [V116 ] ( 0, 0 ) float -> zero-ref single-def "field V09.X (fldOffset=0x0)" P-INDEP
-;* V117 tmp109 [V117 ] ( 0, 0 ) float -> zero-ref single-def "field V09.Y (fldOffset=0x4)" P-INDEP
-;* V118 tmp110 [V118 ] ( 0, 0 ) float -> zero-ref single-def "field V09.Z (fldOffset=0x8)" P-INDEP
-;* V119 tmp111 [V119 ] ( 0, 0 ) float -> zero-ref single-def "field V14.X (fldOffset=0x0)" P-INDEP
-;* V120 tmp112 [V120 ] ( 0, 0 ) float -> zero-ref single-def "field V14.Y (fldOffset=0x4)" P-INDEP
-;* V121 tmp113 [V121 ] ( 0, 0 ) float -> zero-ref single-def "field V14.Z (fldOffset=0x8)" P-INDEP
-;* V122 tmp114 [V122 ] ( 0, 0 ) float -> zero-ref single-def "field V15.X (fldOffset=0x0)" P-INDEP
-;* V123 tmp115 [V123 ] ( 0, 0 ) float -> zero-ref single-def "field V15.Y (fldOffset=0x4)" P-INDEP
-;* V124 tmp116 [V124 ] ( 0, 0 ) float -> zero-ref single-def "field V15.Z (fldOffset=0x8)" P-INDEP
-;* V125 tmp117 [V125 ] ( 0, 0 ) float -> zero-ref single-def "field V17.X (fldOffset=0x0)" P-INDEP
-;* V126 tmp118 [V126 ] ( 0, 0 ) float -> zero-ref single-def "field V17.Y (fldOffset=0x4)" P-INDEP
-;* V127 tmp119 [V127 ] ( 0, 0 ) float -> zero-ref single-def "field V17.Z (fldOffset=0x8)" P-INDEP
-;* V128 tmp120 [V128 ] ( 0, 0 ) float -> zero-ref single-def "field V18.X (fldOffset=0x0)" P-INDEP
-;* V129 tmp121 [V129 ] ( 0, 0 ) float -> zero-ref single-def "field V18.Y (fldOffset=0x4)" P-INDEP
-;* V130 tmp122 [V130 ] ( 0, 0 ) float -> zero-ref single-def "field V18.Z (fldOffset=0x8)" P-INDEP
-;* V131 tmp123 [V131 ] ( 0, 0 ) float -> zero-ref single-def "field V20.X (fldOffset=0x0)" P-INDEP
-;* V132 tmp124 [V132 ] ( 0, 0 ) float -> zero-ref single-def "field V20.Y (fldOffset=0x4)" P-INDEP
-;* V133 tmp125 [V133 ] ( 0, 0 ) float -> zero-ref single-def "field V20.Z (fldOffset=0x8)" P-INDEP
-;* V134 tmp126 [V134 ] ( 0, 0 ) float -> zero-ref single-def "field V22.X (fldOffset=0x0)" P-INDEP
-;* V135 tmp127 [V135 ] ( 0, 0 ) float -> zero-ref single-def "field V22.Y (fldOffset=0x4)" P-INDEP
-;* V136 tmp128 [V136 ] ( 0, 0 ) float -> zero-ref single-def "field V22.Z (fldOffset=0x8)" P-INDEP
-;* V137 tmp129 [V137,T63] ( 0, 0 ) float -> zero-ref single-def "field V23.X (fldOffset=0x0)" P-INDEP
-;* V138 tmp130 [V138,T64] ( 0, 0 ) float -> zero-ref single-def "field V23.Y (fldOffset=0x4)" P-INDEP
-;* V139 tmp131 [V139,T65] ( 0, 0 ) float -> zero-ref single-def "field V23.Z (fldOffset=0x8)" P-INDEP
-;* V140 tmp132 [V140,T66] ( 0, 0 ) float -> zero-ref single-def "field V30.X (fldOffset=0x0)" P-INDEP
-;* V141 tmp133 [V141,T67] ( 0, 0 ) float -> zero-ref single-def "field V30.Y (fldOffset=0x4)" P-INDEP
-;* V142 tmp134 [V142,T68] ( 0, 0 ) float -> zero-ref single-def "field V30.Z (fldOffset=0x8)" P-INDEP
-;* V143 tmp135 [V143,T69] ( 0, 0 ) float -> zero-ref single-def "field V30.W (fldOffset=0xc)" P-INDEP
-;* V144 tmp136 [V144,T70] ( 0, 0 ) float -> zero-ref single-def "field V34.X (fldOffset=0x0)" P-INDEP
-;* V145 tmp137 [V145,T71] ( 0, 0 ) float -> zero-ref single-def "field V34.Y (fldOffset=0x4)" P-INDEP
-;* V146 tmp138 [V146,T72] ( 0, 0 ) float -> zero-ref single-def "field V34.Z (fldOffset=0x8)" P-INDEP
-;* V147 tmp139 [V147,T73] ( 0, 0 ) float -> zero-ref single-def "field V34.W (fldOffset=0xc)" P-INDEP
-;* V148 tmp140 [V148,T74] ( 0, 0 ) float -> zero-ref single-def "field V38.X (fldOffset=0x0)" P-INDEP
-;* V149 tmp141 [V149,T75] ( 0, 0 ) float -> zero-ref single-def "field V38.Y (fldOffset=0x4)" P-INDEP
-;* V150 tmp142 [V150,T76] ( 0, 0 ) float -> zero-ref single-def "field V38.Z (fldOffset=0x8)" P-INDEP
-;* V151 tmp143 [V151,T77] ( 0, 0 ) float -> zero-ref single-def "field V38.W (fldOffset=0xc)" P-INDEP
-; V152 tmp144 [V152,T46] ( 3, 1.50) byref -> r5 "field V45._reference (fldOffset=0x0)" P-INDEP
-; V153 tmp145 [V153,T48] ( 3, 1.50) int -> r6 "field V45._length (fldOffset=0x4)" P-INDEP
-;* V154 tmp146 [V154 ] ( 0, 0 ) byref -> zero-ref "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V155 tmp147 [V155 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x4)" P-INDEP
-;* V156 tmp148 [V156 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp149 [V157 ] ( 0, 0 ) int -> zero-ref single-def "field V48._length (fldOffset=0x4)" P-INDEP
-;* V158 tmp150 [V158 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp151 [V159 ] ( 0, 0 ) int -> zero-ref single-def "field V54._length (fldOffset=0x4)" P-INDEP
-;* V160 tmp152 [V160 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp153 [V161 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x4)" P-INDEP
-;* V162 tmp154 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp155 [V163 ] ( 0, 0 ) int -> zero-ref single-def "field V59._length (fldOffset=0x4)" P-INDEP
-;* V164 tmp156 [V164 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
-;* V165 tmp157 [V165 ] ( 0, 0 ) int -> zero-ref single-def "field V65._length (fldOffset=0x4)" P-INDEP
-;* V166 tmp158 [V166,T78] ( 0, 0 ) ubyte -> zero-ref single-def "field V69.hasValue (fldOffset=0x0)" P-INDEP
-; V167 tmp159 [V167,T39] ( 2, 2 ) ubyte -> r0 single-def "field V69.value (fldOffset=0x1)" P-INDEP
-; V168 tmp160 [V168,T47] ( 3, 1.50) byref -> r6 "field V78._reference (fldOffset=0x0)" P-INDEP
-; V169 tmp161 [V169,T49] ( 3, 1.50) int -> r7 "field V78._length (fldOffset=0x4)" P-INDEP
-;* V170 tmp162 [V170 ] ( 0, 0 ) byref -> zero-ref "field V79._reference (fldOffset=0x0)" P-INDEP
-;* V171 tmp163 [V171 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x4)" P-INDEP
-;* V172 tmp164 [V172 ] ( 0, 0 ) byref -> zero-ref single-def "field V81._reference (fldOffset=0x0)" P-INDEP
-;* V173 tmp165 [V173 ] ( 0, 0 ) int -> zero-ref single-def "field V81._length (fldOffset=0x4)" P-INDEP
-;* V174 tmp166 [V174 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP
-;* V175 tmp167 [V175 ] ( 0, 0 ) int -> zero-ref single-def "field V87._length (fldOffset=0x4)" P-INDEP
-;* V176 tmp168 [V176 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
-;* V177 tmp169 [V177 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x4)" P-INDEP
-;* V178 tmp170 [V178 ] ( 0, 0 ) byref -> zero-ref single-def "field V92._reference (fldOffset=0x0)" P-INDEP
-;* V179 tmp171 [V179 ] ( 0, 0 ) int -> zero-ref single-def "field V92._length (fldOffset=0x4)" P-INDEP
-;* V180 tmp172 [V180 ] ( 0, 0 ) byref -> zero-ref single-def "field V98._reference (fldOffset=0x0)" P-INDEP
-;* V181 tmp173 [V181 ] ( 0, 0 ) int -> zero-ref single-def "field V98._length (fldOffset=0x4)" P-INDEP
-;* V182 tmp174 [V182,T79] ( 0, 0 ) ubyte -> zero-ref single-def "field V102.hasValue (fldOffset=0x0)" P-INDEP
-; V183 tmp175 [V183,T40] ( 2, 2 ) ubyte -> r0 single-def "field V102.value (fldOffset=0x1)" P-INDEP
-; V184 tmp176 [V184,T00] ( 5, 10 ) struct ( 4) [sp+0x04] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-; V185 cse0 [V185,T16] ( 3, 3 ) float -> f0 "CSE - moderate"
-; V186 cse1 [V186,T17] ( 3, 3 ) float -> f1 "CSE - moderate"
-; V187 cse2 [V187,T18] ( 3, 3 ) float -> f2 "CSE - moderate"
-; V188 cse3 [V188,T19] ( 3, 3 ) float -> f3 "CSE - moderate"
-; V189 cse4 [V189,T26] ( 3, 3.00) int -> r1 "CSE - moderate"
-; V190 cse5 [V190,T27] ( 3, 3.00) int -> r1 "CSE - moderate"
-; V191 cse6 [V191,T28] ( 3, 3.00) int -> r1 "CSE - moderate"
-; V192 cse7 [V192,T29] ( 3, 3.00) int -> r1 "CSE - moderate"
-;* V193 cse8 [V193,T80] ( 0, 0 ) float -> zero-ref "CSE - moderate"
-;* V194 cse9 [V194,T81] ( 0, 0 ) float -> zero-ref "CSE - moderate"
-;* V195 cse10 [V195,T82] ( 0, 0 ) float -> zero-ref "CSE - moderate"
-; V196 cse11 [V196,T30] ( 2, 2 ) float -> f8 "CSE - moderate"
+;* V63 tmp55 [V63,T39] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V64 tmp56 [V64 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V65 tmp57 [V65 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V66 tmp58 [V66,T31] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
+;* V67 tmp59 [V67 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V68 tmp60 [V68 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
+; V69 tmp61 [V69,T17] ( 2, 4 ) ref -> r1 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V70 tmp62 [V70 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V71 tmp63 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+;* V72 tmp64 [V72 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
+; V73 tmp65 [V73,T02] ( 5, 8 ) ref -> r0 class-hnd single-def "dup spill" <ushort[]>
+;* V74 tmp66 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
+;* V75 tmp67 [V75 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V76 tmp68 [V76 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V77 tmp69 [V77 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V78 tmp70 [V78,T05] ( 4, 8.00) int -> r0 "Inlining Arg"
+;* V79 tmp71 [V79 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V80 tmp72 [V80,T10] ( 3, 6.00) int -> r6 "Inlining Arg"
+; V81 tmp73 [V81,T25] ( 2, 3.00) byref -> r4 single-def "Inlining Arg"
...
+14 (+2.93%) : 83571.dasm - System.ComponentModel.TypeConverterTests.SizeConverterTests:ConvertToInvariantString(int,int):this (FullOpts)
@@ -11,7 +11,7 @@
; V00 this [V00,T08] ( 4, 4 ) ref -> r0 this class-hnd single-def <System.ComponentModel.TypeConverterTests.SizeConverterTests>
; V01 arg1 [V01,T04] ( 4, 4 ) int -> r4 single-def
; V02 arg2 [V02,T05] ( 4, 4 ) int -> r5 single-def
-; V03 loc0 [V03,T13] ( 6, 3 ) ref -> r6 class-hnd exact single-def <System.String>
+; V03 loc0 [V03,T12] ( 5, 3 ) ref -> r7 class-hnd exact single-def <System.String>
; V04 loc1 [V04 ] ( 15, 13.00) struct (24) [sp+0x10] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (16) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V06 tmp1 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Drawing.Size>
@@ -21,77 +21,76 @@
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Globalization.CultureInfo>
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Drawing.Size>
; V12 tmp7 [V12,T10] ( 3, 4 ) ref -> r1 single-def "CASTCLASS eval op1"
-; V13 tmp8 [V13,T25] ( 3, 1 ) int -> r3 "fgMakeTemp is creating a new local variable"
-; V14 tmp9 [V14,T06] ( 4, 6.50) ref -> r6 class-hnd single-def "spilling QMark2" <System.String>
-; V15 tmp10 [V15,T11] ( 2, 4 ) ref -> r0 class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+; V13 tmp8 [V13,T24] ( 3, 1 ) int -> r3 "fgMakeTemp is creating a new local variable"
+; V14 tmp9 [V14,T06] ( 5, 6.50) ref -> r6 class-hnd single-def "spilling QMark2" <System.String>
+;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V17 tmp12 [V17,T00] ( 5, 8 ) ref -> r0 class-hnd single-def "dup spill" <ushort[]>
;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V19 tmp14 [V19,T34] ( 0, 0 ) int -> zero-ref single-def "Inline return value spill temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V21 tmp16 [V21 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V22 tmp17 [V22 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V23 tmp18 [V23,T03] ( 4, 8.00) int -> r0 "Inlining Arg"
-;* V24 tmp19 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V25 tmp20 [V25,T09] ( 3, 6.00) int -> r7 "Inlining Arg"
-; V26 tmp21 [V26,T15] ( 2, 3.00) byref -> r4 single-def "Inlining Arg"
+;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V20 tmp15 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V21 tmp16 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V22 tmp17 [V22,T03] ( 4, 8.00) int -> r0 "Inlining Arg"
+;* V23 tmp18 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V24 tmp19 [V24,T09] ( 3, 6.00) int -> r8 "Inlining Arg"
+; V25 tmp20 [V25,T14] ( 2, 3.00) byref -> r4 single-def "Inlining Arg"
+;* V26 tmp21 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V28 tmp23 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V29 tmp24 [V29,T24] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V30 tmp25 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V31 tmp26 [V31 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V32 tmp27 [V32,T20] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
-; V33 tmp28 [V33,T07] ( 5, 6 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V34 tmp29 [V34 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V35 tmp30 [V35 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V36 tmp31 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V37 tmp32 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V38 tmp33 [V38,T18] ( 2, 2 ) int -> r0 "Inlining Arg"
-; V39 tmp34 [V39,T16] ( 2, 2 ) byref -> r1 single-def "Inlining Arg"
+;* V28 tmp23 [V28,T23] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V29 tmp24 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V30 tmp25 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V31 tmp26 [V31,T19] ( 2, 1.99) byref -> r1 single-def "Inlining Arg"
+; V32 tmp27 [V32,T07] ( 5, 6 ) ref -> r0 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V33 tmp28 [V33 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
+;* V34 tmp29 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+;* V35 tmp30 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V36 tmp31 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V37 tmp32 [V37,T17] ( 2, 2 ) int -> r0 "Inlining Arg"
+; V38 tmp33 [V38,T15] ( 2, 2 ) byref -> r1 single-def "Inlining Arg"
+;* V39 tmp34 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V40 tmp35 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp36 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp37 [V42 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V43 tmp38 [V43 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V44 tmp39 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V45 tmp40 [V45,T19] ( 2, 2 ) int -> r3 "Inlining Arg"
-; V46 tmp41 [V46,T17] ( 2, 2 ) byref -> r0 single-def "Inlining Arg"
+;* V41 tmp36 [V41 ] ( 0, 0 ) struct ( 8) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V42 tmp37 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V43 tmp38 [V43 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V44 tmp39 [V44,T18] ( 2, 2 ) int -> r3 "Inlining Arg"
+; V45 tmp40 [V45,T16] ( 2, 2 ) byref -> r0 single-def "Inlining Arg"
+;* V46 tmp41 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V47 tmp42 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V49 tmp44 [V49,T35] ( 0, 0 ) int -> zero-ref single-def "field V06.width (fldOffset=0x0)" P-INDEP
-;* V50 tmp45 [V50,T36] ( 0, 0 ) int -> zero-ref single-def "field V06.height (fldOffset=0x4)" P-INDEP
-; V51 tmp46 [V51,T21] ( 3, 1.50) byref -> r7 "field V21._reference (fldOffset=0x0)" P-INDEP
-; V52 tmp47 [V52,T23] ( 3, 1.50) int -> r8 "field V21._length (fldOffset=0x4)" P-INDEP
-;* V53 tmp48 [V53 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V54 tmp49 [V54 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x4)" P-INDEP
-;* V55 tmp50 [V55 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref single-def "field V24._length (fldOffset=0x4)" P-INDEP
-;* V57 tmp52 [V57 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref single-def "field V30._length (fldOffset=0x4)" P-INDEP
-; V59 tmp54 [V59,T26] ( 2, 1 ) byref -> r1 single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-; V60 tmp55 [V60,T30] ( 2, 1 ) int -> r2 single-def "field V34._length (fldOffset=0x4)" P-INDEP
-;* V61 tmp56 [V61 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x4)" P-INDEP
-; V63 tmp58 [V63,T27] ( 2, 1 ) byref -> r1 single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-; V64 tmp59 [V64,T31] ( 2, 1 ) int -> r0 single-def "field V36._length (fldOffset=0x4)" P-INDEP
-;* V65 tmp60 [V65 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
-;* V66 tmp61 [V66 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x4)" P-INDEP
-; V67 tmp62 [V67,T28] ( 2, 1 ) byref -> lr "field V42._reference (fldOffset=0x0)" P-INDEP
-; V68 tmp63 [V68,T32] ( 2, 1 ) int -> r3 "field V42._length (fldOffset=0x4)" P-INDEP
-; V69 tmp64 [V69,T29] ( 2, 1 ) byref -> r0 single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-; V70 tmp65 [V70,T33] ( 2, 1 ) int -> r3 single-def "field V43._length (fldOffset=0x4)" P-INDEP
-;* V71 tmp66 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp67 [V72 ] ( 0, 0 ) int -> zero-ref single-def "field V44._length (fldOffset=0x4)" P-INDEP
-; V73 tmp68 [V73,T12] ( 2, 4 ) ref -> r2 single-def "argument with side effect"
-; V74 cse0 [V74,T14] ( 3, 3.00) int -> r1 "CSE - moderate"
-; V75 cse1 [V75,T22] ( 3, 1.50) ref -> r1 "CSE - moderate"
+;* V48 tmp43 [V48,T33] ( 0, 0 ) int -> zero-ref single-def "field V06.width (fldOffset=0x0)" P-INDEP
+;* V49 tmp44 [V49,T34] ( 0, 0 ) int -> zero-ref single-def "field V06.height (fldOffset=0x4)" P-INDEP
+; V50 tmp45 [V50,T20] ( 3, 1.50) byref -> r8 "field V20._reference (fldOffset=0x0)" P-INDEP
+; V51 tmp46 [V51,T22] ( 3, 1.50) int -> r9 "field V20._length (fldOffset=0x4)" P-INDEP
+;* V52 tmp47 [V52 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V53 tmp48 [V53 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x4)" P-INDEP
+;* V54 tmp49 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+;* V55 tmp50 [V55 ] ( 0, 0 ) int -> zero-ref single-def "field V23._length (fldOffset=0x4)" P-INDEP
+;* V56 tmp51 [V56 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref single-def "field V29._length (fldOffset=0x4)" P-INDEP
+; V58 tmp53 [V58,T25] ( 2, 1 ) byref -> r1 single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+; V59 tmp54 [V59,T29] ( 2, 1 ) int -> r2 single-def "field V33._length (fldOffset=0x4)" P-INDEP
+;* V60 tmp55 [V60 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x4)" P-INDEP
+; V62 tmp57 [V62,T26] ( 2, 1 ) byref -> r1 single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+; V63 tmp58 [V63,T30] ( 2, 1 ) int -> r0 single-def "field V35._length (fldOffset=0x4)" P-INDEP
+;* V64 tmp59 [V64 ] ( 0, 0 ) byref -> zero-ref "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x4)" P-INDEP
+; V66 tmp61 [V66,T27] ( 2, 1 ) byref -> lr "field V41._reference (fldOffset=0x0)" P-INDEP
+; V67 tmp62 [V67,T31] ( 2, 1 ) int -> r3 "field V41._length (fldOffset=0x4)" P-INDEP
+; V68 tmp63 [V68,T28] ( 2, 1 ) byref -> r0 single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+; V69 tmp64 [V69,T32] ( 2, 1 ) int -> r3 single-def "field V42._length (fldOffset=0x4)" P-INDEP
+;* V70 tmp65 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref single-def "field V43._length (fldOffset=0x4)" P-INDEP
+; V72 tmp67 [V72,T11] ( 2, 4 ) ref -> r2 single-def "argument with side effect"
+; V73 cse0 [V73,T13] ( 3, 3.00) int -> r1 "CSE - moderate"
+; V74 cse1 [V74,T21] ( 3, 1.50) ref -> r1 "CSE - moderate"
;
-; Lcl frame size = 40
+; Lcl frame size = 44
G_M37518_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r10,r11,lr}
- sub sp, 40
- add r11, sp, 64
- sub r5, r11, 48
+ push {r4,r5,r6,r7,r8,r9,r10,r11,lr}
+ sub sp, 44
+ add r11, sp, 72
+ sub r5, r11, 56
movs r3, 0
movs r4, 0
stm r5!, {r3,r4}
@@ -147,6 +146,8 @@ G_M37518_IG02: ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
;; size=90 bbWeight=1 PerfScore 33.00
G_M37518_IG03: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r0-r1]
+ mov r7, r6
+ ; gcrRegs +[r7]
movs r0, 0
str r0, [sp+0x10]
movw r0, 0xd1ff
@@ -161,22 +162,22 @@ G_M37518_IG03: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
blx r3 // <unknown method>
str r0, [sp+0x14]
cmp r0, 0
- beq SHORT G_M37518_IG20
- ;; size=38 bbWeight=1 PerfScore 14.00
-G_M37518_IG04: ; bbWeight=0.50, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref
- add r7, r0, 8
- ; byrRegs +[r7]
- ldr r8, [r0+0x04]
+ beq G_M37518_IG20
+ ;; size=42 bbWeight=1 PerfScore 15.00
+G_M37518_IG04: ; bbWeight=0.50, gcrefRegs=00C1 {r0 r6 r7}, byrefRegs=0000 {}, byref
+ add r8, r0, 8
+ ; byrRegs +[r8]
+ ldr r9, [r0+0x04]
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M37518_IG05: ; bbWeight=1.00, gcrefRegs=0040 {r6}, byrefRegs=0080 {r7}, byref
+G_M37518_IG05: ; bbWeight=1.00, gcrefRegs=00C0 {r6 r7}, byrefRegs=0100 {r8}, byref
; gcrRegs -[r0]
- str r7, [sp+0x20]
- str r8, [sp+0x24]
+ str r8, [sp+0x20]
+ str r9, [sp+0x24]
movs r0, 0
str r0, [sp+0x18]
- ;; size=10 bbWeight=1.00 PerfScore 4.00
-G_M37518_IG06: ; bbWeight=1.00, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[r7]
+ ;; size=12 bbWeight=1.00 PerfScore 4.00
+G_M37518_IG06: ; bbWeight=1.00, gcrefRegs=00C0 {r6 r7}, byrefRegs=0000 {}, byref, isz
+ ; byrRegs -[r8]
strb r0, [sp+0x1C]
add r0, sp, 16
mov r1, r4
@@ -189,17 +190,17 @@ G_M37518_IG06: ; bbWeight=1.00, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, b
cmp r0, r1
bhi SHORT G_M37518_IG22
;; size=28 bbWeight=1.00 PerfScore 11.00
-G_M37518_IG07: ; bbWeight=1.00, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+G_M37518_IG07: ; bbWeight=1.00, gcrefRegs=00C0 {r6 r7}, byrefRegs=0000 {}, byref, isz
ldr r3, [sp+0x20]
; byrRegs +[r3]
lsls r2, r0, 1
adds r4, r3, r2
; byrRegs +[r4]
- subs r7, r1, r0
- cmp r7, 0
+ sub r8, r1, r0
+ cmp r8, 0
bge SHORT G_M37518_IG09
- ;; size=12 bbWeight=1.00 PerfScore 6.00
-G_M37518_IG08: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0010 {r4}, byref
+ ;; size=16 bbWeight=1.00 PerfScore 6.00
+G_M37518_IG08: ; bbWeight=0.50, gcrefRegs=00C0 {r6 r7}, byrefRegs=0010 {r4}, byref
; byrRegs -[r3]
movw r1, 0xd1ff
movt r1, 0xd1ff
@@ -211,11 +212,11 @@ G_M37518_IG08: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0010 {r4},
blx r3 // <unknown method>
; gcrRegs -[r0]
;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M37518_IG09: ; bbWeight=1.00, gcrefRegs=0040 {r6}, byrefRegs=0010 {r4}, byref, isz
- cmp r7, 2
+G_M37518_IG09: ; bbWeight=1.00, gcrefRegs=00C0 {r6 r7}, byrefRegs=0010 {r4}, byref, isz
+ cmp r8, 2
blo SHORT G_M37518_IG15
- ;; size=4 bbWeight=1.00 PerfScore 2.00
-G_M37518_IG10: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0010 {r4}, byref
+ ;; size=6 bbWeight=1.00 PerfScore 2.00
+G_M37518_IG10: ; bbWeight=0.50, gcrefRegs=00C0 {r6 r7}, byrefRegs=0010 {r4}, byref
movw r1, 0xd1ff
movt r1, 0xd1ff
mov r0, r4
@@ -230,7 +231,7 @@ G_M37518_IG10: ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0010 {r4},
adds r0, r0, 2
str r0, [sp+0x18]
;; size=30 bbWeight=0.50 PerfScore 5.48
-G_M37518_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+G_M37518_IG11: ; bbWeight=1, gcrefRegs=00C0 {r6 r7}, byrefRegs=0000 {}, byref, isz
add r0, sp, 16
mov r1, r5
movw r3, 0xd1ff
@@ -246,14 +247,14 @@ G_M37518_IG11: ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byre
cmp r0, 0
bne SHORT G_M37518_IG16
;; size=34 bbWeight=1 PerfScore 13.00
-G_M37518_IG12: ; bbWeight=0.50, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
- cmp r6, 0
+G_M37518_IG12: ; bbWeight=0.50, gcrefRegs=00C1 {r0 r6 r7}, byrefRegs=0000 {}, byref, isz
+ cmp r7, 0
bne SHORT G_M37518_IG23
;; size=4 bbWeight=0.50 PerfScore 1.00
...
+2 (+2.94%) : 183648.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
@@ -8,23 +8,23 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> r0 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> r4 single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref ld-addr-op
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String>
; V04 tmp2 [V04,T01] ( 2, 4 ) ref -> r5 single-def "argument with side effect"
; V05 tmp3 [V05,T02] ( 2, 4 ) ref -> r2 single-def "argument with side effect"
-; V06 cse0 [V06,T03] ( 3, 3 ) int -> r4 "CSE - aggressive"
;
; Lcl frame size = 0
G_M13548_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push {r4,r5,r11,lr}
add r11, sp, 8
- ;; size=8 bbWeight=1 PerfScore 2.00
+ mov r4, r0
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M13548_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxth r4, r0
- asrs r0, r4, 8
+ uxth r0, r4
+ asrs r0, r0, 8
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -54,7 +54,7 @@ G_M13548_IG03: ; bbWeight=1, epilog, nogc, extend
pop {r4,r5,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 68, prolog size 8, PerfScore 23.00, instruction count 23, allocated bytes for code 68 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
+; Total bytes of code 70, prolog size 8, PerfScore 24.00, instruction count 24, allocated bytes for code 70 (MethodHash=b0eecb13) for method System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
; ============================================================
Unwind Info:
@@ -66,7 +66,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 34 (0x00022) Actual length = 68 (0x000044)
+ Function Length : 35 (0x00023) Actual length = 70 (0x000046)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
realworld.run.linux.arm.checked.mch
-18 (-2.34%) : 16947.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
@@ -120,8 +120,7 @@ G_M27027_IG05: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
beq SHORT G_M27027_IG07
ldr r12, [r2+0x24]
lsls r3, r4, 1
- ldrsh r3, [r12+r3]
- uxth r3, r3
+ ldrh r3, [r12+r3]
ldr r12, [r2+0x30]
ldrb r12, [r12+r4]
ldr r6, [r1+0x14]
@@ -152,7 +151,7 @@ G_M27027_IG05: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
ldr r3, [r1+0x18]
subs r3, 16
str r3, [r1+0x18]
- ;; size=100 bbWeight=2 PerfScore 74.00
+ ;; size=98 bbWeight=2 PerfScore 72.00
G_M27027_IG06: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref
mov r12, 0
;; size=4 bbWeight=2 PerfScore 2.00
@@ -190,8 +189,7 @@ G_M27027_IG12: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
G_M27027_IG13: ; bbWeight=8, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
ldr r12, [r2+0x24]
lsls r5, r3, 1
- ldrsh r12, [r12+r5]
- uxth r12, r12
+ ldrh r12, [r12+r5]
ldr r5, [r2+0x30]
ldrb r5, [r5+r3]
ldr r6, [r1+0x14]
@@ -223,7 +221,7 @@ G_M27027_IG13: ; bbWeight=8, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
ldr r4, [r1+0x18]
subs r4, 16
str r4, [r1+0x18]
- ;; size=90 bbWeight=8 PerfScore 280.00
+ ;; size=86 bbWeight=8 PerfScore 272.00
G_M27027_IG14: ; bbWeight=16, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
add r4, r12, -1
cmp r12, 0
@@ -234,8 +232,7 @@ G_M27027_IG15: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
;; size=2 bbWeight=2 PerfScore 2.00
G_M27027_IG16: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
ldr r4, [r2+0x24]
- ldrsh r4, [r4+0x20]
- uxth r4, r4
+ ldrh r4, [r4+0x20]
ldr r5, [r2+0x30]
ldrb r5, [r5+0x10]
ldr r6, [r1+0x14]
@@ -266,7 +263,7 @@ G_M27027_IG16: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
ldr r4, [r1+0x18]
subs r4, 16
str r4, [r1+0x18]
- ;; size=72 bbWeight=2 PerfScore 66.00
+ ;; size=68 bbWeight=2 PerfScore 64.00
G_M27027_IG17: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
ldr r4, [r1+0x14]
sub r12, r12, 3
@@ -297,8 +294,7 @@ G_M27027_IG18: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
cmp r12, 10
bgt SHORT G_M27027_IG20
ldr r4, [r2+0x24]
- ldrsh r4, [r4+0x22]
- uxth r4, r4
+ ldrh r4, [r4+0x22]
ldr r5, [r2+0x30]
ldrb r5, [r5+0x11]
ldr r6, [r1+0x14]
@@ -329,7 +325,7 @@ G_M27027_IG18: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
ldr r4, [r1+0x18]
subs r4, 16
str r4, [r1+0x18]
- ;; size=78 bbWeight=2 PerfScore 70.00
+ ;; size=74 bbWeight=2 PerfScore 68.00
G_M27027_IG19: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
ldr r4, [r1+0x14]
sub r12, r12, 3
@@ -358,8 +354,7 @@ G_M27027_IG19: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
;; size=70 bbWeight=2 PerfScore 48.00
G_M27027_IG20: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
ldr r4, [r2+0x24]
- ldrsh r4, [r4+0x24]
- uxth r4, r4
+ ldrh r4, [r4+0x24]
ldr r5, [r2+0x30]
ldrb r5, [r5+0x12]
ldr r6, [r1+0x14]
@@ -390,7 +385,7 @@ G_M27027_IG20: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}
ldr r4, [r1+0x18]
subs r4, 16
str r4, [r1+0x18]
- ;; size=72 bbWeight=2 PerfScore 66.00
+ ;; size=68 bbWeight=2 PerfScore 64.00
G_M27027_IG21: ; bbWeight=2, gcrefRegs=0007 {r0 r1 r2}, byrefRegs=0000 {}, byref, isz
ldr r4, [r1+0x14]
sub r12, r12, 11
@@ -434,7 +429,7 @@ G_M27027_IG24: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop {r3,r4,r5,r6,r7,r8,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
-; Total bytes of code 770, prolog size 8, PerfScore 996.00, instruction count 292, allocated bytes for code 770 (MethodHash=fe7a966c) for method SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
+; Total bytes of code 752, prolog size 8, PerfScore 980.00, instruction count 287, allocated bytes for code 752 (MethodHash=fe7a966c) for method SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
; ============================================================
Unwind Info:
@@ -446,7 +441,7 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 385 (0x00181) Actual length = 770 (0x000302)
+ Function Length : 376 (0x00178) Actual length = 752 (0x0002f0)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
-2 (-1.82%) : 21203.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -7,16 +7,15 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> r4 single-def
-; V01 loc0 [V01,T07] ( 2, 2 ) ubyte -> r1 single-def
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> r4 single-def
+; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> r1 single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T00] ( 3, 6 ) ref -> r1 single-def "arr expr"
-; V04 tmp2 [V04,T01] ( 3, 6 ) ref -> r0 single-def "arr expr"
-; V05 tmp3 [V05,T02] ( 3, 6 ) int -> r1 "index expr"
-;* V06 cse0 [V06,T08] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V07 cse1 [V07,T04] ( 3, 3 ) int -> r2 "CSE - aggressive"
-; V08 cse2 [V08,T05] ( 3, 3 ) int -> r3 "CSE - aggressive"
-; V09 cse3 [V09,T06] ( 3, 3 ) int -> r0 "CSE - aggressive"
+; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> r1 single-def "arr expr"
+; V04 tmp2 [V04,T02] ( 3, 6 ) ref -> r0 single-def "arr expr"
+; V05 tmp3 [V05,T03] ( 3, 6 ) int -> r1 "index expr"
+;* V06 cse0 [V06,T07] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
+; V07 cse1 [V07,T04] ( 3, 3 ) int -> r3 "CSE - aggressive"
+; V08 cse2 [V08,T05] ( 3, 3 ) int -> r0 "CSE - aggressive"
;
; Lcl frame size = 4
@@ -39,19 +38,19 @@ G_M53790_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ldr r1, [r0]
; gcrRegs +[r1]
uxth r3, r4
- asrs r2, r3, 8
- ldr lr, [r1+0x04]
- cmp r2, lr
+ asrs r3, r3, 8
+ ldr r2, [r1+0x04]
+ cmp r3, r2
bhs SHORT G_M53790_IG05
adds r1, 8
; gcrRegs -[r1]
; byrRegs +[r1]
- ldrb r1, [r1+r2]
+ ldrb r1, [r1+r3]
; byrRegs -[r1]
ldr r0, [r0+0x04]
; gcrRegs +[r0]
lsls r1, r1, 8
- uxtb r3, r3
+ uxtb r3, r4
adds r1, r1, r3
ldr r3, [r0+0x04]
cmp r1, r3
@@ -61,7 +60,7 @@ G_M53790_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; byrRegs +[r0]
ldrb r0, [r0+r1]
; byrRegs -[r0]
- ;; size=44 bbWeight=1 PerfScore 19.00
+ ;; size=42 bbWeight=1 PerfScore 19.00
G_M53790_IG04: ; bbWeight=1, epilog, nogc, extend
pop {r3,r4,r11,pc}
;; size=4 bbWeight=1 PerfScore 1.00
@@ -80,7 +79,7 @@ G_M53790_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
b SHORT G_M53790_IG03
;; size=24 bbWeight=0 PerfScore 0.00
-; Total bytes of code 110, prolog size 8, PerfScore 29.00, instruction count 39, allocated bytes for code 110 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 29.00, instruction count 39, allocated bytes for code 108 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
; ============================================================
Unwind Info:
@@ -92,7 +91,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 55 (0x00037) Actual length = 110 (0x00006e)
+ Function Length : 54 (0x00036) Actual length = 108 (0x00006c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-30 (-1.72%) : 31400.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,157 +5,151 @@
; r11 based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 120 single block inlinees; 45 inlinees without PGO data
+; 0 inlinees with PGO data; 125 single block inlinees; 45 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 65, 33.50) ref -> r4 this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> r5 single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> r1 class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> r5 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V05 tmp2 [V05,T50] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V06 tmp3 [V06,T56] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V07 tmp4 [V07,T13] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V05 tmp2 [V05,T52] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V06 tmp3 [V06,T58] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V07 tmp4 [V07,T14] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V08 tmp5 [V08,T02] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp8 [V11,T20] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V14 tmp11 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V17 tmp14 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V21 tmp18 [V21,T03] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V22 tmp19 [V22,T38] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V24 tmp21 [V24,T63] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V25 tmp22 [V25,T39] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V26 tmp23 [V26,T26] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V27 tmp24 [V27 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V28 tmp25 [V28,T51] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V29 tmp26 [V29,T57] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T14] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V31 tmp28 [V31,T04] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V34 tmp31 [V34,T21] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V37 tmp34 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V19 tmp16 [V19,T03] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V20 tmp17 [V20,T38] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V22 tmp19 [V22,T65] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V23 tmp20 [V23,T39] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V24 tmp21 [V24,T26] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V25 tmp22 [V25 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V26 tmp23 [V26,T53] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V27 tmp24 [V27,T59] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T15] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V29 tmp26 [V29,T04] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V32 tmp29 [V32,T21] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V36 tmp33 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V40 tmp37 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp40 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V44 tmp41 [V44,T05] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V45 tmp42 [V45,T40] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V47 tmp44 [V47,T64] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V48 tmp45 [V48,T41] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V49 tmp46 [V49,T27] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V51 tmp48 [V51,T52] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V52 tmp49 [V52,T58] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T15] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V54 tmp51 [V54,T06] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V40 tmp37 [V40,T05] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V41 tmp38 [V41,T40] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V43 tmp40 [V43,T66] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V44 tmp41 [V44,T41] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V45 tmp42 [V45,T27] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V46 tmp43 [V46 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V47 tmp44 [V47,T54] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V48 tmp45 [V48,T60] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T16] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V50 tmp47 [V50,T06] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V52 tmp49 [V52 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V53 tmp50 [V53,T22] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp53 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V57 tmp54 [V57,T22] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V58 tmp55 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V59 tmp56 [V59 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V60 tmp57 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V62 tmp59 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V63 tmp60 [V63 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp63 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V67 tmp64 [V67,T07] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V68 tmp65 [V68,T42] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V69 tmp66 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V70 tmp67 [V70,T65] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V71 tmp68 [V71,T43] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V72 tmp69 [V72,T28] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V74 tmp71 [V74,T53] ( 2, 2 ) int -> r5 "Inlining Arg"
-; V75 tmp72 [V75,T59] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T16] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V77 tmp74 [V77,T08] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp57 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V61 tmp58 [V61,T07] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V62 tmp59 [V62,T42] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V64 tmp61 [V64,T67] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V65 tmp62 [V65,T43] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V66 tmp63 [V66,T28] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+;* V67 tmp64 [V67 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V68 tmp65 [V68,T55] ( 2, 2 ) int -> r5 "Inlining Arg"
+; V69 tmp66 [V69,T61] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T17] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V71 tmp68 [V71,T08] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V73 tmp70 [V73 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V74 tmp71 [V74,T23] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V75 tmp72 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V78 tmp75 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V80 tmp77 [V80,T23] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V81 tmp78 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V82 tmp79 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V83 tmp80 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V85 tmp82 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V86 tmp83 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V89 tmp86 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V90 tmp87 [V90,T29] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
-;* V91 tmp88 [V91 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V92 tmp89 [V92,T54] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V93 tmp90 [V93,T60] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T17] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V95 tmp92 [V95,T09] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V82 tmp79 [V82,T09] ( 6, 6 ) byref -> r3 single-def "Inlining Arg"
+; V83 tmp80 [V83,T44] ( 3, 3 ) int -> r2 "impAppendStmt"
+;* V84 tmp81 [V84 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V85 tmp82 [V85,T68] ( 3, 1.50) int -> r1 "Inline return value spill temp"
+; V86 tmp83 [V86,T45] ( 3, 3 ) int -> r1 "Inlining Arg"
+; V87 tmp84 [V87,T29] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
+;* V88 tmp85 [V88 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V89 tmp86 [V89,T56] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V90 tmp87 [V90,T62] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T18] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V92 tmp89 [V92,T10] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V94 tmp91 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V95 tmp92 [V95,T24] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V96 tmp93 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V98 tmp95 [V98,T24] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V98 tmp95 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V99 tmp96 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V101 tmp98 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V102 tmp99 [V102 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V103 tmp100 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V104 tmp101 [V104 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V107 tmp104 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V108 tmp105 [V108,T30] ( 3, 3 ) byref -> r7 single-def "Inlining Arg"
-;* V109 tmp106 [V109 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V110 tmp107 [V110,T61] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T18] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V112 tmp109 [V112,T10] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V113 tmp110 [V113 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp112 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp113 [V116,T25] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
-;* V117 tmp114 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp115 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp116 [V119 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V120 tmp117 [V120,T55] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V121 tmp118 [V121,T62] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T19] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V123 tmp120 [V123,T31] ( 3, 3 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V124 tmp121 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V103 tmp100 [V103,T30] ( 3, 3 ) byref -> r7 single-def "Inlining Arg"
+;* V104 tmp101 [V104 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V105 tmp102 [V105,T63] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T19] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V107 tmp104 [V107,T11] ( 6, 6 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V109 tmp106 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V110 tmp107 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V111 tmp108 [V111,T25] ( 6, 3 ) int -> r6 "Inline stloc first use temp"
+;* V112 tmp109 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V113 tmp110 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V114 tmp111 [V114 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V115 tmp112 [V115,T57] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V116 tmp113 [V116,T64] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V117 tmp114 [V117,T31] ( 3, 3 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V121 tmp118 [V121,T32] ( 3, 3 ) ref -> r0 single-def "arr expr"
+; V122 tmp119 [V122,T33] ( 3, 3 ) ref -> r0 single-def "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V125 tmp122 [V125,T34] ( 3, 3 ) ref -> r3 single-def "arr expr"
;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V127 tmp124 [V127,T32] ( 3, 3 ) ref -> r0 single-def "arr expr"
-; V128 tmp125 [V128,T33] ( 3, 3 ) ref -> r0 single-def "arr expr"
+;* V127 tmp124 [V127 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V128 tmp125 [V128,T35] ( 3, 3 ) ref -> r0 single-def "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V130 tmp127 [V130 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V131 tmp128 [V131,T34] ( 3, 3 ) ref -> r0 single-def "arr expr"
...
+20 (+1.04%) : 31993.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
@@ -5,169 +5,161 @@
; r11 based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 115 single block inlinees; 43 inlinees without PGO data
+; 0 inlinees with PGO data; 115 single block inlinees; 44 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 18, 10 ) ref -> r5 this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T08] ( 11, 6.50) ref -> r4 class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V02 arg2 [V02,T17] ( 3, 3 ) ubyte -> r2 single-def
-; V03 arg3 [V03,T16] ( 5, 3.50) ref -> r6 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-; V04 loc0 [V04,T55] ( 5, 2.50) ref -> r8 class-hnd single-def <Microsoft.CodeAnalysis.ConstantValue>
+; V02 arg2 [V02,T18] ( 3, 3 ) ubyte -> r2 single-def
+; V03 arg3 [V03,T17] ( 5, 3.50) ref -> r6 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+; V04 loc0 [V04,T56] ( 5, 2.50) ref -> r8 class-hnd single-def <Microsoft.CodeAnalysis.ConstantValue>
; V05 OutArgs [V05 ] ( 1, 1 ) struct ( 4) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T74] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
+; V06 tmp1 [V06,T76] ( 2, 1 ) ubyte -> r0 "Inline return value spill temp"
; V07 tmp2 [V07,T01] ( 12, 12 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V09 tmp4 [V09,T62] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V10 tmp5 [V10,T67] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V11 tmp6 [V11,T18] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V09 tmp4 [V09,T64] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V10 tmp5 [V10,T69] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V11 tmp6 [V11,T19] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V12 tmp7 [V12,T09] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V15 tmp10 [V15,T25] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V22 tmp17 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V23 tmp18 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V25 tmp20 [V25,T10] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V26 tmp21 [V26,T43] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V27 tmp22 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V28 tmp23 [V28,T75] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V29 tmp24 [V29,T44] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V30 tmp25 [V30,T31] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V31 tmp26 [V31,T02] ( 12, 12 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V32 tmp27 [V32 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V33 tmp28 [V33,T63] ( 2, 2 ) int -> r4 "Inlining Arg"
-; V34 tmp29 [V34,T68] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V35 tmp30 [V35,T19] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V36 tmp31 [V36,T11] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V39 tmp34 [V39,T26] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
-;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V18 tmp13 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V19 tmp14 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V21 tmp16 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V23 tmp18 [V23,T10] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V24 tmp19 [V24,T43] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V26 tmp21 [V26,T77] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V27 tmp22 [V27,T44] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V28 tmp23 [V28,T31] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V29 tmp24 [V29,T02] ( 12, 12 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V30 tmp25 [V30 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V31 tmp26 [V31,T65] ( 2, 2 ) int -> r4 "Inlining Arg"
+; V32 tmp27 [V32,T70] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V33 tmp28 [V33,T20] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V34 tmp29 [V34,T11] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V37 tmp32 [V37,T26] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V42 tmp37 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp39 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V45 tmp40 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V46 tmp41 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V49 tmp44 [V49,T12] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V50 tmp45 [V50,T45] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V51 tmp46 [V51 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V52 tmp47 [V52,T76] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V53 tmp48 [V53,T46] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V54 tmp49 [V54,T32] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V55 tmp50 [V55,T03] ( 12, 12 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V56 tmp51 [V56 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V57 tmp52 [V57,T64] ( 2, 2 ) int -> r6 "Inlining Arg"
-; V58 tmp53 [V58,T69] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V59 tmp54 [V59,T20] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V60 tmp55 [V60,T13] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V45 tmp40 [V45,T12] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V46 tmp41 [V46,T45] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V47 tmp42 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V48 tmp43 [V48,T78] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V49 tmp44 [V49,T46] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V50 tmp45 [V50,T32] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V51 tmp46 [V51,T03] ( 12, 12 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V52 tmp47 [V52 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V53 tmp48 [V53,T66] ( 2, 2 ) int -> r6 "Inlining Arg"
+; V54 tmp49 [V54,T71] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V55 tmp50 [V55,T21] ( 4, 4 ) ref -> r7 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V56 tmp51 [V56,T13] ( 6, 6 ) ref -> r7 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V57 tmp52 [V57 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V58 tmp53 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V59 tmp54 [V59,T27] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
+;* V60 tmp55 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V61 tmp56 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V62 tmp57 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V63 tmp58 [V63,T27] ( 6, 3 ) int -> r8 "Inline stloc first use temp"
-;* V64 tmp59 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V63 tmp58 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V64 tmp59 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V66 tmp61 [V66 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V68 tmp63 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V69 tmp64 [V69 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V70 tmp65 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V72 tmp67 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V73 tmp68 [V73,T14] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
-; V74 tmp69 [V74,T47] ( 3, 3 ) int -> r3 "impAppendStmt"
-;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V76 tmp71 [V76,T77] ( 3, 1.50) int -> r2 "Inline return value spill temp"
-; V77 tmp72 [V77,T48] ( 3, 3 ) int -> r2 "Inlining Arg"
-; V78 tmp73 [V78,T33] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
-; V79 tmp74 [V79,T04] ( 12, 12 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V81 tmp76 [V81,T65] ( 2, 2 ) int -> r4 "Inlining Arg"
-; V82 tmp77 [V82,T70] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V83 tmp78 [V83,T21] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V84 tmp79 [V84,T15] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V66 tmp61 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V67 tmp62 [V67,T14] ( 6, 6 ) byref -> r0 single-def "Inlining Arg"
+; V68 tmp63 [V68,T47] ( 3, 3 ) int -> r3 "impAppendStmt"
+;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V70 tmp65 [V70,T79] ( 3, 1.50) int -> r2 "Inline return value spill temp"
+; V71 tmp66 [V71,T48] ( 3, 3 ) int -> r2 "Inlining Arg"
+; V72 tmp67 [V72,T33] ( 3, 3 ) byref -> r0 single-def "Inlining Arg"
+; V73 tmp68 [V73,T04] ( 12, 12 ) ref -> r5 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V74 tmp69 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V75 tmp70 [V75,T67] ( 2, 2 ) int -> r4 "Inlining Arg"
+; V76 tmp71 [V76,T72] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V77 tmp72 [V77,T22] ( 4, 4 ) ref -> r6 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V78 tmp73 [V78,T15] ( 6, 6 ) ref -> r6 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V80 tmp75 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V81 tmp76 [V81,T28] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V82 tmp77 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V84 tmp79 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V85 tmp80 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V86 tmp81 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V87 tmp82 [V87,T28] ( 6, 3 ) int -> r7 "Inline stloc first use temp"
+;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V88 tmp83 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V90 tmp85 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V92 tmp87 [V92 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V93 tmp88 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V94 tmp89 [V94 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V95 tmp90 [V95 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V96 tmp91 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V97 tmp92 [V97,T34] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
-; V98 tmp93 [V98,T57] ( 4, 2 ) ref -> r7 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V99 tmp94 [V99,T58] ( 2, 2 ) ref -> r7 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
-;* V100 tmp95 [V100 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V101 tmp96 [V101,T59] ( 2, 2 ) ref -> r1 class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
-;* V102 tmp97 [V102 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-;* V103 tmp98 [V103 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V104 tmp99 [V104,T05] ( 12, 12 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V105 tmp100 [V105 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V106 tmp101 [V106,T66] ( 2, 2 ) int -> r9 "Inlining Arg"
-; V107 tmp102 [V107,T71] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V108 tmp103 [V108,T22] ( 4, 4 ) ref -> r10 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V109 tmp104 [V109,T06] ( 10, 10 ) ref -> r10 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V110 tmp105 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V111 tmp106 [V111 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V112 tmp107 [V112 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V113 tmp108 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V114 tmp109 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp110 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V116 tmp111 [V116,T29] ( 6, 3 ) int -> r3 "Inline stloc first use temp"
-;* V117 tmp112 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp113 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp114 [V119 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V120 tmp115 [V120,T30] ( 6, 3 ) int -> r3 "Inline stloc first use temp"
-;* V121 tmp116 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V122 tmp117 [V122,T35] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
-; V123 tmp118 [V123,T60] ( 2, 2 ) ref -> r1 class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
-; V124 tmp119 [V124,T07] ( 10, 10 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V125 tmp120 [V125,T36] ( 3, 3 ) ref -> r0 class-hnd single-def "dup spill" <<unknown class>>
-;* V126 tmp121 [V126 ] ( 0, 0 ) ref -> zero-ref single-def
-; V127 tmp122 [V127,T61] ( 2, 2 ) ref -> r3 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V128 tmp123 [V128,T78] ( 3, 1.50) int -> r9
-;* V129 tmp124 [V129 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V130 tmp125 [V130,T72] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V131 tmp126 [V131,T23] ( 4, 4 ) ref -> r4 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V132 tmp127 [V132,T24] ( 4, 4 ) ref -> r4 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-; V133 tmp128 [V133,T79] ( 2, 1 ) int -> r1 single-def "Inline stloc first use temp"
-;* V134 tmp129 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "field V100.array (fldOffset=0x0)" P-INDEP
-;* V135 tmp130 [V135,T80] ( 0, 0 ) ref -> zero-ref single-def "field V102.array (fldOffset=0x0)" P-INDEP
-;* V136 tmp131 [V136,T81] ( 0, 0 ) ref -> zero-ref single-def "field V103.array (fldOffset=0x0)" P-INDEP
-; V137 tmp132 [V137,T37] ( 3, 3 ) ref -> r1 single-def "arr expr"
-; V138 tmp133 [V138,T38] ( 3, 3 ) ref -> r0 single-def "arr expr"
-;* V139 tmp134 [V139 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V89 tmp84 [V89,T34] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
+; V90 tmp85 [V90,T59] ( 4, 2 ) ref -> r7 class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V91 tmp86 [V91,T60] ( 2, 2 ) ref -> r7 class-hnd exact single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
+;* V92 tmp87 [V92 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V93 tmp88 [V93,T61] ( 2, 2 ) ref -> r1 class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
+;* V94 tmp89 [V94 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+;* V95 tmp90 [V95 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V96 tmp91 [V96,T05] ( 12, 12 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V97 tmp92 [V97 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V98 tmp93 [V98,T68] ( 2, 2 ) int -> r9 "Inlining Arg"
+; V99 tmp94 [V99,T73] ( 3, 1.50) ref -> r1 class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V100 tmp95 [V100,T23] ( 4, 4 ) ref -> r10 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V101 tmp96 [V101,T06] ( 10, 10 ) ref -> r10 class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V102 tmp97 [V102 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V103 tmp98 [V103 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V104 tmp99 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V105 tmp100 [V105 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V106 tmp101 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V107 tmp102 [V107,T29] ( 6, 3 ) int -> r3 "Inline stloc first use temp"
+;* V108 tmp103 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V109 tmp104 [V109 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V110 tmp105 [V110,T30] ( 6, 3 ) int -> r3 "Inline stloc first use temp"
+;* V111 tmp106 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V112 tmp107 [V112,T35] ( 3, 3 ) byref -> r3 single-def "Inlining Arg"
+; V113 tmp108 [V113,T62] ( 2, 2 ) ref -> r1 class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
+; V114 tmp109 [V114,T07] ( 10, 10 ) ref -> r8 class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V115 tmp110 [V115,T36] ( 3, 3 ) ref -> r0 class-hnd single-def "dup spill" <<unknown class>>
+;* V116 tmp111 [V116 ] ( 0, 0 ) ref -> zero-ref single-def
+; V117 tmp112 [V117,T63] ( 2, 2 ) ref -> r3 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V118 tmp113 [V118,T80] ( 3, 1.50) int -> r9
...
+6 (+2.75%) : 271.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable
2[System.Canon,System.Canon]):this (FullOpts)
@@ -15,12 +15,11 @@
; V04 tmp1 [V04,T07] ( 3, 4 ) int -> r1 "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V07 tmp4 [V07,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V07 tmp4 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V08 tmp5 [V08,T00] ( 3, 24 ) ref -> r3 "arr expr"
; V09 cse0 [V09,T02] ( 4, 10 ) ref -> r1 "CSE - aggressive"
-; V10 cse1 [V10,T08] ( 3, 1.50) ref -> r1 "CSE - aggressive"
-; V11 rat0 [V11,T06] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
-; V12 rat1 [V12,T05] ( 3, 5.60) int -> r1 "fgMakeTemp is creating a new local variable"
+; V10 rat0 [V10,T06] ( 3, 4.40) int -> r0 "Spilling to split statement for tree"
+; V11 rat1 [V11,T05] ( 3, 5.60) int -> r1 "fgMakeTemp is creating a new local variable"
; TEMP_01 ref -> [r11-0x10]
;
; Lcl frame size = 8
@@ -41,17 +40,16 @@ G_M9941_IG02: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
bne SHORT G_M9941_IG04
;; size=4 bbWeight=1 PerfScore 2.00
G_M9941_IG03: ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+ movw r0, 0xd1ff
+ movt r0, 0xd1ff
movw r1, 0xd1ff
movt r1, 0xd1ff
- mov r0, r1
- ; gcrRegs +[r0]
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
blx r3 // <unknown method>
- ; gcrRegs -[r0]
; gcr arg pop 0
- ;; size=22 bbWeight=0.50 PerfScore 3.50
+ ;; size=28 bbWeight=0.50 PerfScore 4.00
G_M9941_IG04: ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
movw r0, 0xd1ff
movt r0, 0xd1ff
@@ -158,7 +156,7 @@ G_M9941_IG11: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byre
bkpt
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 218, prolog size 20, PerfScore 102.50, instruction count 79, allocated bytes for code 218 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 224, prolog size 20, PerfScore 103.00, instruction count 80, allocated bytes for code 224 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
@@ -170,7 +168,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 109 (0x0006d) Actual length = 218 (0x0000da)
+ Function Length : 112 (0x00070) Actual length = 224 (0x0000e0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+6 (+3.57%) : 2101.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,35 +8,36 @@
; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 13, 10 ) byref -> r4 this single-def
+; V00 this [V00,T00] ( 11, 9 ) byref -> r4 this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> r6 single-def
; V02 arg2 [V02,T01] ( 6, 4 ) ref -> r5 class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
; V03 loc0 [V03 ] ( 3, 1.50) struct (12) [sp+0x04] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V06 tmp2 [V06,T04] ( 3, 3 ) int -> r7 "impAppendStmt"
-; V07 tmp3 [V07,T07] ( 2, 2 ) int -> r3 "VirtualCall through function pointer"
-; V08 tmp4 [V08,T08] ( 2, 2 ) int -> r3 "VirtualCall through function pointer"
+; V06 tmp2 [V06,T05] ( 3, 3 ) int -> r8 "impAppendStmt"
+; V07 tmp3 [V07,T09] ( 2, 2 ) int -> r3 "VirtualCall through function pointer"
+; V08 tmp4 [V08,T10] ( 2, 2 ) int -> r3 "VirtualCall through function pointer"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V10 tmp6 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V11 tmp7 [V11,T09] ( 3, 1.50) int -> r8 "Inline return value spill temp"
-; V12 tmp8 [V12,T05] ( 3, 3 ) int -> r8 "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V11 tmp7 [V11,T14] ( 3, 1.50) int -> r9 "Inline return value spill temp"
+; V12 tmp8 [V12,T06] ( 3, 3 ) int -> r9 "Inlining Arg"
+; V13 tmp9 [V13,T08] ( 2, 2 ) byref -> r7 single-def "Inlining Arg"
+; V14 tmp10 [V14,T11] ( 2, 2 ) int -> r2 "Inlining Arg"
+; V15 tmp11 [V15,T12] ( 2, 2 ) int -> r0 "Inlining Arg"
+; V16 tmp12 [V16,T13] ( 2, 2 ) int -> r1 "Inlining Arg"
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V18 tmp14 [V18,T06] ( 3, 3 ) int -> r2 "Inline stloc first use temp"
-; V19 tmp15 [V19,T03] ( 2, 4 ) byref -> r3 single-def "impAppendStmt"
+; V18 tmp14 [V18,T07] ( 3, 3 ) int -> r2 "Inline stloc first use temp"
+; V19 tmp15 [V19,T04] ( 2, 4 ) byref -> r3 single-def "impAppendStmt"
; V20 tmp16 [V20 ] ( 3, 1.50) int -> [sp+0x04] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
; V21 tmp17 [V21 ] ( 2, 1 ) int -> [sp+0x08] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x4)" P-DEP
; V22 tmp18 [V22 ] ( 2, 1 ) int -> [sp+0x0C] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0x8)" P-DEP
+; V23 cse0 [V23,T03] ( 6, 4 ) byref -> r7 multi-def "CSE - aggressive"
;
-; Lcl frame size = 20
+; Lcl frame size = 16
G_M19315_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push {r4,r5,r6,r7,r8,r11,lr}
- sub sp, 20
+ push {r4,r5,r6,r7,r8,r9,r11,lr}
+ sub sp, 16
add r11, sp, 40
mov r4, r0
; byrRegs +[r4]
@@ -51,23 +52,25 @@ G_M19315_IG02: ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, by
bne SHORT G_M19315_IG06
;; size=8 bbWeight=1 PerfScore 4.00
G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref, isz
- ldr r0, [r4+0x08]
+ add r7, r4, 8
+ ; byrRegs +[r7]
+ ldr r0, [r7]
str r0, [sp+0x04]
- ldr r0, [r4+0x0C]
+ ldr r0, [r7+0x04]
str r0, [sp+0x08]
- ldr r0, [r4+0x10]
+ ldr r0, [r7+0x08]
str r0, [sp+0x0C]
ldr r0, [r4+0x04]
- lsls r7, r0, 1
- ldr r8, [r4+0x0C]
- cmp r7, r8
+ lsl r8, r0, 1
+ ldr r9, [r4+0x0C]
+ cmp r8, r9
bge SHORT G_M19315_IG04
b SHORT G_M19315_IG05
- ;; size=26 bbWeight=0.50 PerfScore 6.00
-G_M19315_IG04: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref
- mov r8, r7
+ ;; size=32 bbWeight=0.50 PerfScore 6.50
+G_M19315_IG04: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0090 {r4 r7}, byref
+ mov r9, r8
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M19315_IG05: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref
+G_M19315_IG05: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0090 {r4 r7}, byref
mov r0, r5
; gcrRegs +[r0]
movw r1, 0xd1ff
@@ -79,21 +82,22 @@ G_M19315_IG05: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4},
blx r3 // CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[r0]
mov r3, r0
- add r2, r4, 8
+ mov r2, r7
; byrRegs +[r2]
mov r0, r5
; gcrRegs +[r0]
- mov r1, r8
+ mov r1, r9
blx r3
; gcrRegs -[r0]
; byrRegs -[r2]
- ldr r0, [r4+0x08]
- ldr r1, [sp+0x04]
ldr r2, [r4+0x04]
+ ldr r0, [r7]
+ ldr r1, [sp+0x04]
lsls r2, r2, 2
movw r12, 0xd1ff
movt r12, 0xd1ff
blx r12 // CORINFO_HELP_MEMCPY
+ ; byrRegs -[r7]
mov r0, r5
; gcrRegs +[r0]
movw r1, 0xd1ff
@@ -110,9 +114,11 @@ G_M19315_IG05: ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4},
; gcrRegs +[r0]
blx r3
; gcrRegs -[r0 r5]
- ;; size=94 bbWeight=0.50 PerfScore 16.00
+ ;; size=92 bbWeight=0.50 PerfScore 16.00
G_M19315_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
- add r3, r4, 8
+ add r7, r4, 8
+ ; byrRegs +[r7]
+ mov r3, r7
; byrRegs +[r3]
ldr r2, [r4+0x04]
adds r1, r2, 1
@@ -121,13 +127,13 @@ G_M19315_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
; byrRegs -[r3]
lsls r2, r2, 2
str r6, [r3+r2]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=18 bbWeight=1 PerfScore 8.00
G_M19315_IG07: ; bbWeight=1, epilog, nogc, extend
- add sp, 20
- pop {r4,r5,r6,r7,r8,r11,pc}
+ add sp, 16
+ pop {r4,r5,r6,r7,r8,r9,r11,pc}
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 168, prolog size 10, PerfScore 41.50, instruction count 64, allocated bytes for code 168 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 174, prolog size 10, PerfScore 43.00, instruction count 66, allocated bytes for code 174 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Unwind Info:
@@ -139,11 +145,11 @@ Unwind Info:
E bit : 1
X bit : 0
Vers : 0
- Function Length : 84 (0x00054) Actual length = 168 (0x0000a8)
+ Function Length : 87 (0x00057) Actual length = 174 (0x0000ae)
--- One epilog, unwind codes at 0
---- Unwind codes ----
---- Epilog start at index 0 ----
- 05 add sp, sp, #20 ; opsize 16
- A9 F0 pop {r4,r5,r6,r7,r8,r11,lr} ; opsize 32
+ 04 add sp, sp, #16 ; opsize 16
+ AB F0 pop {r4,r5,r6,r7,r8,r9,r11,lr} ; opsize 32
FF end
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.linux.arm.checked.mch |
35 |
16 |
12 |
7 |
-128 |
+58 |
benchmarks.run_pgo.linux.arm.checked.mch |
125 |
108 |
4 |
13 |
-866 |
+40 |
benchmarks.run_tiered.linux.arm.checked.mch |
79 |
65 |
8 |
6 |
-620 |
+118 |
coreclr_tests.run.linux.arm.checked.mch |
3,249 |
2,124 |
222 |
903 |
-44,318 |
+4,472 |
libraries.crossgen2.linux.arm.checked.mch |
13 |
6 |
1 |
6 |
-32 |
+2 |
libraries.pmi.linux.arm.checked.mch |
170 |
55 |
75 |
40 |
-702 |
+7,876 |
libraries_tests.run.linux.arm.Release.mch |
749 |
656 |
38 |
55 |
-73,612 |
+1,064 |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
181 |
70 |
39 |
72 |
-67,122 |
+1,528 |
realworld.run.linux.arm.checked.mch |
40 |
12 |
15 |
13 |
-116 |
+1,104 |
|
4,641 |
3,112 |
414 |
1,115 |
-187,516 |
+16,262 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.linux.arm.checked.mch |
45,955 |
5,344 |
40,611 |
1,203 (2.55%) |
1,211 (2.57%) |
benchmarks.run_pgo.linux.arm.checked.mch |
159,504 |
56,729 |
102,775 |
3,201 (1.97%) |
3,210 (1.97%) |
benchmarks.run_tiered.linux.arm.checked.mch |
80,090 |
43,607 |
36,483 |
1,086 (1.34%) |
1,095 (1.35%) |
coreclr_tests.run.linux.arm.checked.mch |
471,977 |
259,194 |
212,783 |
7,172 (1.50%) |
7,184 (1.50%) |
libraries.crossgen2.linux.arm.checked.mch |
188,191 |
14 |
188,177 |
0 (0.00%) |
0 (0.00%) |
libraries.pmi.linux.arm.checked.mch |
272,346 |
6 |
272,340 |
7,786 (2.78%) |
7,799 (2.78%) |
libraries_tests.run.linux.arm.Release.mch |
710,122 |
442,672 |
267,450 |
16,195 (2.23%) |
16,304 (2.24%) |
librariestestsnotieredcompilation.run.linux.arm.Release.mch |
274,523 |
21,604 |
252,919 |
33,224 (10.79%) |
33,334 (10.83%) |
realworld.run.linux.arm.checked.mch |
36,406 |
157 |
36,249 |
1,408 (3.72%) |
1,409 (3.73%) |
|
2,239,114 |
829,327 |
1,409,787 |
71,275 (3.08%) |
71,546 (3.10%) |
jit-analyze output
benchmarks.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15281610 (overridden on cmd)
Total bytes of diff: 15281540 (overridden on cmd)
Total bytes of delta: -70 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
24 : 10988.dasm (0.35 % of base)
6 : 271.dasm (2.75 % of base)
4 : 11087.dasm (0.25 % of base)
4 : 11056.dasm (0.20 % of base)
4 : 17618.dasm (0.28 % of base)
4 : 23511.dasm (0.23 % of base)
2 : 11965.dasm (0.48 % of base)
2 : 24124.dasm (0.48 % of base)
2 : 24125.dasm (0.48 % of base)
2 : 30741.dasm (0.48 % of base)
2 : 434.dasm (0.86 % of base)
2 : 11966.dasm (0.48 % of base)
Top file improvements (bytes):
-30 : 26415.dasm (-1.72 % of base)
-14 : 26429.dasm (-0.83 % of base)
-6 : 115.dasm (-0.37 % of base)
-6 : 15235.dasm (-0.37 % of base)
-6 : 32415.dasm (-0.37 % of base)
-6 : 38878.dasm (-0.37 % of base)
-6 : 45405.dasm (-0.37 % of base)
-6 : 9880.dasm (-0.37 % of base)
-6 : 22123.dasm (-0.37 % of base)
-6 : 30853.dasm (-0.37 % of base)
-6 : 35792.dasm (-0.37 % of base)
-6 : 37356.dasm (-0.37 % of base)
-6 : 19249.dasm (-0.37 % of base)
-6 : 29145.dasm (-0.37 % of base)
-6 : 33988.dasm (-0.37 % of base)
-6 : 40732.dasm (-0.37 % of base)
28 total files with Code Size differences (16 improved, 12 regressed), 7 unchanged.
Top method regressions (bytes):
24 (0.35 % of base) : 10988.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
6 (2.75 % of base) : 271.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
4 (0.20 % of base) : 11056.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.25 % of base) : 11087.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.23 % of base) : 23511.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
4 (0.28 % of base) : 17618.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
2 (0.86 % of base) : 434.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
2 (0.48 % of base) : 24124.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 30741.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 11965.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 11966.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 24125.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
Top method improvements (bytes):
-30 (-1.72 % of base) : 26415.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-14 (-0.83 % of base) : 26429.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.37 % of base) : 115.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 15235.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 32415.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 38878.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 45405.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 9880.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 22123.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 30853.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 35792.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 37356.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 19249.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 29145.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 33988.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 40732.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
Top method regressions (percentages):
6 (2.75 % of base) : 271.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
2 (0.86 % of base) : 434.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
2 (0.48 % of base) : 30741.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 24124.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 11965.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 11966.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.48 % of base) : 24125.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
24 (0.35 % of base) : 10988.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
4 (0.28 % of base) : 17618.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
4 (0.25 % of base) : 11087.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
4 (0.23 % of base) : 23511.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
4 (0.20 % of base) : 11056.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
Top method improvements (percentages):
-30 (-1.72 % of base) : 26415.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-14 (-0.83 % of base) : 26429.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-0.37 % of base) : 115.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 15235.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 32415.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 38878.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 45405.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 9880.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 22123.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 30853.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 35792.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 37356.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 19249.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 29145.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 33988.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 40732.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
28 total methods with Code Size differences (16 improved, 12 regressed).
benchmarks.run_pgo.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 63946800 (overridden on cmd)
Total bytes of diff: 63945974 (overridden on cmd)
Total bytes of delta: -826 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
24 : 29970.dasm (0.35 % of base)
10 : 93376.dasm (1.47 % of base)
4 : 30172.dasm (0.20 % of base)
2 : 18553.dasm (0.29 % of base)
Top file improvements (bytes):
-62 : 24537.dasm (-13.54 % of base)
-38 : 2999.dasm (-33.33 % of base)
-38 : 3633.dasm (-25.33 % of base)
-34 : 13874.dasm (-20.00 % of base)
-34 : 13903.dasm (-16.50 % of base)
-30 : 121055.dasm (-3.25 % of base)
-28 : 131430.dasm (-3.23 % of base)
-28 : 785.dasm (-45.16 % of base)
-26 : 11425.dasm (-5.33 % of base)
-26 : 10981.dasm (-5.99 % of base)
-26 : 119150.dasm (-7.22 % of base)
-18 : 30279.dasm (-1.06 % of base)
-16 : 134024.dasm (-2.62 % of base)
-16 : 18358.dasm (-5.67 % of base)
-16 : 18411.dasm (-4.52 % of base)
-12 : 35082.dasm (-9.68 % of base)
-12 : 68437.dasm (-0.59 % of base)
-12 : 35236.dasm (-6.82 % of base)
-12 : 7585.dasm (-0.77 % of base)
-10 : 369.dasm (-1.83 % of base)
52 total files with Code Size differences (48 improved, 4 regressed), 13 unchanged.
Top method regressions (bytes):
24 (0.35 % of base) : 29970.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
10 (1.47 % of base) : 93376.dasm - System.Threading.Tasks.TaskReplicator+Replica:.ctor(System.Threading.Tasks.TaskReplicator,int,long):this (Tier1)
4 (0.20 % of base) : 30172.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
2 (0.29 % of base) : 18553.dasm - System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (Tier0-FullOpts)
Top method improvements (bytes):
-62 (-13.54 % of base) : 24537.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-38 (-25.33 % of base) : 3633.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
-38 (-33.33 % of base) : 2999.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-34 (-16.50 % of base) : 13903.dasm - System.Span`1[System.__Canon]:Clear():this (Instrumented Tier0)
-34 (-20.00 % of base) : 13874.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-30 (-3.25 % of base) : 121055.dasm - System.DateTimeFormat:TryFormatR[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-28 (-3.23 % of base) : 131430.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (Tier0)
-28 (-45.16 % of base) : 785.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-26 (-7.22 % of base) : 119150.dasm - System.DateTimeFormat:TryFormatS[ushort](System.DateTime,System.Span`1[ushort],byref):ubyte (Tier0)
-26 (-5.33 % of base) : 11425.dasm - System.DateTimeFormat:TryFormatu[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Instrumented Tier0)
-26 (-5.99 % of base) : 10981.dasm - System.DateTimeFormat:TryFormatu[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-18 (-1.06 % of base) : 30279.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
-16 (-2.62 % of base) : 134024.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (Tier0)
-16 (-4.52 % of base) : 18411.dasm - V8.Crypto.BigInteger:invDigit():int:this (Instrumented Tier0)
-16 (-5.67 % of base) : 18358.dasm - V8.Crypto.BigInteger:invDigit():int:this (Tier0)
-12 (-6.82 % of base) : 35236.dasm - <>f__AnonymousType0`2[int,int]:GetHashCode():int:this (Instrumented Tier0)
-12 (-9.68 % of base) : 35082.dasm - <>f__AnonymousType0`2[int,int]:GetHashCode():int:this (Tier0)
-12 (-0.59 % of base) : 68437.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (Instrumented Tier0)
-12 (-0.77 % of base) : 7585.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (Tier0)
-10 (-1.83 % of base) : 369.dasm - System.Globalization.IcuLocaleData:GetLocaleDataNumericPart(System.String,int):int (Tier0)
Top method regressions (percentages):
10 (1.47 % of base) : 93376.dasm - System.Threading.Tasks.TaskReplicator+Replica:.ctor(System.Threading.Tasks.TaskReplicator,int,long):this (Tier1)
24 (0.35 % of base) : 29970.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
2 (0.29 % of base) : 18553.dasm - System.Text.Encodings.Web.OptimizedInboxTextEncoder:Encode(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (Tier0-FullOpts)
4 (0.20 % of base) : 30172.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
Top method improvements (percentages):
-28 (-45.16 % of base) : 785.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-6 (-42.86 % of base) : 49872.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
-38 (-33.33 % of base) : 2999.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-38 (-25.33 % of base) : 3633.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
-6 (-25.00 % of base) : 90303.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Instrumented Tier0)
-6 (-25.00 % of base) : 90141.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Tier0)
-34 (-20.00 % of base) : 13874.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-34 (-16.50 % of base) : 13903.dasm - System.Span`1[System.__Canon]:Clear():this (Instrumented Tier0)
-4 (-15.38 % of base) : 128669.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-62 (-13.54 % of base) : 24537.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-6 (-13.04 % of base) : 14576.dasm - System.Threading.Tasks.Task:OptionsMethod(int):int (Instrumented Tier0)
-6 (-13.04 % of base) : 14434.dasm - System.Threading.Tasks.Task:OptionsMethod(int):int (Tier0)
-8 (-12.90 % of base) : 555.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Instrumented Tier0)
-8 (-12.90 % of base) : 87.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-6 (-10.71 % of base) : 128416.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasErrors():ubyte:this (Tier0)
-4 (-10.53 % of base) : 92138.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Instrumented Tier0)
-4 (-10.53 % of base) : 92054.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-2 (-10.00 % of base) : 94798.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Instrumented Tier0)
-2 (-10.00 % of base) : 94735.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Tier0)
-4 (-10.00 % of base) : 1764.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Instrumented Tier0)
benchmarks.run_tiered.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21537614 (overridden on cmd)
Total bytes of diff: 21537112 (overridden on cmd)
Total bytes of delta: -502 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
70 : 47573.dasm (1.92 % of base)
24 : 22656.dasm (0.35 % of base)
6 : 638.dasm (2.75 % of base)
4 : 22811.dasm (0.20 % of base)
4 : 34398.dasm (0.28 % of base)
4 : 45952.dasm (0.23 % of base)
4 : 22878.dasm (0.25 % of base)
2 : 9281.dasm (1.85 % of base)
Top file improvements (bytes):
-62 : 3830.dasm (-13.54 % of base)
-38 : 5704.dasm (-33.33 % of base)
-34 : 21737.dasm (-20.00 % of base)
-30 : 64511.dasm (-3.25 % of base)
-30 : 54930.dasm (-1.72 % of base)
-28 : 67741.dasm (-3.23 % of base)
-28 : 747.dasm (-45.16 % of base)
-26 : 12115.dasm (-5.99 % of base)
-26 : 63861.dasm (-7.22 % of base)
-16 : 15967.dasm (-5.67 % of base)
-16 : 69255.dasm (-2.62 % of base)
-14 : 54946.dasm (-0.83 % of base)
-14 : 7957.dasm (-4.29 % of base)
-12 : 24634.dasm (-9.68 % of base)
-12 : 21858.dasm (-0.77 % of base)
-10 : 350.dasm (-1.83 % of base)
-8 : 67727.dasm (-1.76 % of base)
-8 : 52581.dasm (-9.52 % of base)
-8 : 1128.dasm (-3.28 % of base)
-8 : 81.dasm (-12.90 % of base)
50 total files with Code Size differences (42 improved, 8 regressed), 6 unchanged.
Top method regressions (bytes):
70 (1.92 % of base) : 47573.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
24 (0.35 % of base) : 22656.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
6 (2.75 % of base) : 638.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
4 (0.20 % of base) : 22811.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
4 (0.25 % of base) : 22878.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
4 (0.23 % of base) : 45952.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (Tier1)
4 (0.28 % of base) : 34398.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (Tier1)
2 (1.85 % of base) : 9281.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
Top method improvements (bytes):
-62 (-13.54 % of base) : 3830.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-38 (-33.33 % of base) : 5704.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-34 (-20.00 % of base) : 21737.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-30 (-1.72 % of base) : 54930.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
-30 (-3.25 % of base) : 64511.dasm - System.DateTimeFormat:TryFormatR[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-28 (-3.23 % of base) : 67741.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (Tier0)
-28 (-45.16 % of base) : 747.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-26 (-7.22 % of base) : 63861.dasm - System.DateTimeFormat:TryFormatS[ushort](System.DateTime,System.Span`1[ushort],byref):ubyte (Tier0)
-26 (-5.99 % of base) : 12115.dasm - System.DateTimeFormat:TryFormatu[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-16 (-2.62 % of base) : 69255.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (Tier0)
-16 (-5.67 % of base) : 15967.dasm - V8.Crypto.BigInteger:invDigit():int:this (Tier0)
-14 (-0.83 % of base) : 54946.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
-14 (-4.29 % of base) : 7957.dasm - System.Number:FormatExponent[ushort](byref,System.Globalization.NumberFormatInfo,int,ushort,int,ubyte) (Tier0)
-12 (-9.68 % of base) : 24634.dasm - <>f__AnonymousType0`2[int,int]:GetHashCode():int:this (Tier0)
-12 (-0.77 % of base) : 21858.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (Tier0)
-10 (-1.83 % of base) : 350.dasm - System.Globalization.IcuLocaleData:GetLocaleDataNumericPart(System.String,int):int (Tier0)
-8 (-1.76 % of base) : 67727.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (Tier0)
-8 (-3.28 % of base) : 1128.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier0)
-8 (-12.90 % of base) : 81.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-8 (-9.52 % of base) : 52581.dasm - System.Version:GetHashCode():int:this (Tier0)
Top method regressions (percentages):
6 (2.75 % of base) : 638.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
70 (1.92 % of base) : 47573.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
2 (1.85 % of base) : 9281.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
24 (0.35 % of base) : 22656.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
4 (0.28 % of base) : 34398.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (Tier1)
4 (0.25 % of base) : 22878.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
4 (0.23 % of base) : 45952.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (Tier1)
4 (0.20 % of base) : 22811.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
Top method improvements (percentages):
-28 (-45.16 % of base) : 747.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-6 (-42.86 % of base) : 18293.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
-38 (-33.33 % of base) : 5704.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-6 (-25.00 % of base) : 47200.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Tier0)
-34 (-20.00 % of base) : 21737.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-4 (-15.38 % of base) : 66693.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-62 (-13.54 % of base) : 3830.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-6 (-13.04 % of base) : 10108.dasm - System.Threading.Tasks.Task:OptionsMethod(int):int (Tier0)
-8 (-12.90 % of base) : 81.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-6 (-10.71 % of base) : 66536.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasErrors():ubyte:this (Tier0)
-4 (-10.53 % of base) : 48948.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-2 (-10.00 % of base) : 51164.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Tier0)
-4 (-10.00 % of base) : 1587.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-12 (-9.68 % of base) : 24634.dasm - <>f__AnonymousType0`2[int,int]:GetHashCode():int:this (Tier0)
-8 (-9.52 % of base) : 52581.dasm - System.Version:GetHashCode():int:this (Tier0)
-6 (-9.09 % of base) : 5633.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-26 (-7.22 % of base) : 63861.dasm - System.DateTimeFormat:TryFormatS[ushort](System.DateTime,System.Span`1[ushort],byref):ubyte (Tier0)
-4 (-7.14 % of base) : 1841.dasm - System.Runtime.InteropServices.MemoryMarshal:GetArrayDataReference(System.Array):byref (Tier0)
-26 (-5.99 % of base) : 12115.dasm - System.DateTimeFormat:TryFormatu[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-16 (-5.67 % of base) : 15967.dasm - V8.Crypto.BigInteger:invDigit():int:this (Tier0)
coreclr_tests.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 321680998 (overridden on cmd)
Total bytes of diff: 321641152 (overridden on cmd)
Total bytes of delta: -39846 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
548 : 463050.dasm (7.71 % of base)
540 : 463041.dasm (6.69 % of base)
532 : 273167.dasm (6.36 % of base)
208 : 1167.dasm (4.96 % of base)
208 : 315545.dasm (4.98 % of base)
138 : 299706.dasm (8.56 % of base)
138 : 474717.dasm (8.60 % of base)
102 : 333660.dasm (1.11 % of base)
92 : 365149.dasm (1.78 % of base)
88 : 475489.dasm (2.61 % of base)
76 : 479055.dasm (0.72 % of base)
72 : 473742.dasm (0.98 % of base)
58 : 365153.dasm (0.90 % of base)
34 : 424467.dasm (4.89 % of base)
30 : 366168.dasm (4.46 % of base)
16 : 477739.dasm (0.73 % of base)
14 : 333733.dasm (1.95 % of base)
14 : 398406.dasm (1.90 % of base)
14 : 425064.dasm (0.70 % of base)
14 : 425420.dasm (0.56 % of base)
Top file improvements (bytes):
-1556 : 210728.dasm (-99.11 % of base)
-458 : 212592.dasm (-25.99 % of base)
-420 : 192581.dasm (-13.40 % of base)
-408 : 13979.dasm (-33.72 % of base)
-392 : 13792.dasm (-44.04 % of base)
-384 : 12271.dasm (-44.04 % of base)
-384 : 12769.dasm (-44.04 % of base)
-360 : 192564.dasm (-12.78 % of base)
-354 : 190191.dasm (-4.06 % of base)
-342 : 200687.dasm (-21.24 % of base)
-320 : 211706.dasm (-11.54 % of base)
-318 : 212394.dasm (-4.22 % of base)
-288 : 13650.dasm (-35.64 % of base)
-288 : 13680.dasm (-34.95 % of base)
-288 : 212368.dasm (-7.63 % of base)
-284 : 13867.dasm (-30.02 % of base)
-284 : 211867.dasm (-9.77 % of base)
-278 : 17791.dasm (-28.37 % of base)
-268 : 16083.dasm (-40.73 % of base)
-268 : 16581.dasm (-40.73 % of base)
81 total files with Code Size differences (51 improved, 30 regressed), 20 unchanged.
Top method regressions (bytes):
548 (7.71 % of base) : 463050.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
540 (6.69 % of base) : 463041.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
532 (6.36 % of base) : 273167.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
208 (4.98 % of base) : 315545.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
208 (4.96 % of base) : 1167.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
138 (8.60 % of base) : 474717.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
138 (8.56 % of base) : 299706.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier0-FullOpts)
102 (1.11 % of base) : 333660.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
92 (1.78 % of base) : 365149.dasm - div_r4._div:main():int (FullOpts)
88 (2.61 % of base) : 475489.dasm - Program:ExplicitlySizedStructTest():ubyte (FullOpts)
76 (0.72 % of base) : 479055.dasm - Tracing.Tests.ProcessInfoValidation.ProcessInfoValidation:TestEntryPoint() (FullOpts)
72 (0.98 % of base) : 473742.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
58 (0.90 % of base) : 365153.dasm - div_r8._div:main():int (FullOpts)
34 (4.89 % of base) : 424467.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (FullOpts)
30 (4.46 % of base) : 366168.dasm - neg_r4._neg:main():int (FullOpts)
16 (0.73 % of base) : 477739.dasm - Program:<Main>$(System.String[]):int (FullOpts)
14 (1.95 % of base) : 333733.dasm - Program:<Main>$(System.String[]):int (FullOpts)
14 (1.90 % of base) : 398406.dasm - Program:<Main>$(System.String[]):int (FullOpts)
14 (0.70 % of base) : 425064.dasm - Program:<Main>$(System.String[]):int (FullOpts)
14 (0.56 % of base) : 425420.dasm - Program:<Main>$(System.String[]):int (FullOpts)
Top method improvements (bytes):
-1556 (-99.11 % of base) : 210728.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-458 (-25.99 % of base) : 212592.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-420 (-13.40 % of base) : 192581.dasm - convr8d:Main():int (Tier0)
-408 (-33.72 % of base) : 13979.dasm - testout1:Sub_Funclet_384():double (Tier0)
-392 (-44.04 % of base) : 13792.dasm - testout1:Sub_Funclet_192():double (Tier0)
-384 (-44.04 % of base) : 12271.dasm - testout1:Sub_Funclet_0():double (Tier0)
-384 (-44.04 % of base) : 12769.dasm - testout1:Sub_Funclet_0():double (Tier0)
-360 (-12.78 % of base) : 192564.dasm - convr4a:Main():int (Tier0)
-354 (-4.06 % of base) : 190191.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-342 (-21.24 % of base) : 200687.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-320 (-11.54 % of base) : 211706.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-318 (-4.22 % of base) : 212394.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-288 (-7.63 % of base) : 212368.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-288 (-35.64 % of base) : 13650.dasm - testout1:Sub_Funclet_13():double (Tier0)
-288 (-34.95 % of base) : 13680.dasm - testout1:Sub_Funclet_77():double (Tier0)
-284 (-9.77 % of base) : 211867.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-284 (-30.02 % of base) : 13867.dasm - testout1:Sub_Funclet_269():double (Tier0)
-278 (-28.37 % of base) : 17791.dasm - testout1:Sub_Funclet_384():float (Tier0)
-268 (-40.73 % of base) : 16083.dasm - testout1:Sub_Funclet_0():float (Tier0)
-268 (-40.73 % of base) : 16581.dasm - testout1:Sub_Funclet_0():float (Tier0)
Top method regressions (percentages):
138 (8.60 % of base) : 474717.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
138 (8.56 % of base) : 299706.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier0-FullOpts)
548 (7.71 % of base) : 463050.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
540 (6.69 % of base) : 463041.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
532 (6.36 % of base) : 273167.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
208 (4.98 % of base) : 315545.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
208 (4.96 % of base) : 1167.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
34 (4.89 % of base) : 424467.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (FullOpts)
30 (4.46 % of base) : 366168.dasm - neg_r4._neg:main():int (FullOpts)
88 (2.61 % of base) : 475489.dasm - Program:ExplicitlySizedStructTest():ubyte (FullOpts)
2 (2.38 % of base) : 306116.dasm - ILCompiler.DependencyAnalysis.Relocation:PutThumb2Imm16(uint,ushort) (Tier1)
6 (2.33 % of base) : 1482.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Instrumented Tier1)
6 (2.27 % of base) : 297665.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
14 (1.95 % of base) : 333733.dasm - Program:<Main>$(System.String[]):int (FullOpts)
14 (1.95 % of base) : 383773.dasm - Program:<Main>$(System.String[]):int (FullOpts)
14 (1.90 % of base) : 398406.dasm - Program:<Main>$(System.String[]):int (FullOpts)
12 (1.81 % of base) : 337308.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (FullOpts)
12 (1.81 % of base) : 71752.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (Tier0-FullOpts)
12 (1.81 % of base) : 351811.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (FullOpts)
12 (1.81 % of base) : 351846.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (FullOpts)
Top method improvements (percentages):
-1556 (-99.11 % of base) : 210728.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-138 (-90.79 % of base) : 199149.dasm - _simple:main():int (Tier0)
-170 (-85.86 % of base) : 210716.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-66 (-82.50 % of base) : 199142.dasm - _simple:main():int (Tier0)
-62 (-81.58 % of base) : 200682.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-60 (-81.08 % of base) : 210770.dasm - s:main():int (Tier0)
-52 (-78.79 % of base) : 210762.dasm - _n:main():int (Tier0)
-40 (-74.07 % of base) : 199093.dasm - _simple:main():int (Tier0)
-38 (-73.08 % of base) : 210363.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-38 (-73.08 % of base) : 211464.dasm - ILGEN_0x77e9b0c3:Main():int (Tier0)
-142 (-71.72 % of base) : 210722.dasm - ILGEN_0x71d10697:Method_0x77f6a2f8():ulong (Tier0)
-156 (-70.91 % of base) : 7402.dasm - _add:main():int (Tier0)
-34 (-70.83 % of base) : 210448.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-32 (-69.57 % of base) : 210473.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-30 (-68.18 % of base) : 199147.dasm - _simple:main():int (Tier0)
-34 (-60.71 % of base) : 199110.dasm - _simple:main():int (Tier0)
-26 (-59.09 % of base) : 294666.dasm - Overflow:test2():long (Tier0)
-20 (-58.82 % of base) : 210760.dasm - _shl:main():int (Tier0)
-20 (-58.82 % of base) : 199089.dasm - _simple:main():int (Tier0)
-156 (-54.17 % of base) : 7397.dasm - _add:main():int (Tier0)
libraries.crossgen2.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34522532 (overridden on cmd)
Total bytes of diff: 34522502 (overridden on cmd)
Total bytes of delta: -30 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
2 : 104108.dasm (2.17 % of base)
Top file improvements (bytes):
-16 : 59732.dasm (-0.40 % of base)
-6 : 7289.dasm (-42.86 % of base)
-4 : 152083.dasm (-20.00 % of base)
-2 : 120083.dasm (-1.30 % of base)
-2 : 10469.dasm (-0.24 % of base)
-2 : 129224.dasm (-2.63 % of base)
7 total files with Code Size differences (6 improved, 1 regressed), 6 unchanged.
Top method regressions (bytes):
2 (2.17 % of base) : 104108.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (bytes):
-16 (-0.40 % of base) : 59732.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-6 (-42.86 % of base) : 7289.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-4 (-20.00 % of base) : 152083.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
-2 (-2.63 % of base) : 129224.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-0.24 % of base) : 10469.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
-2 (-1.30 % of base) : 120083.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
Top method regressions (percentages):
2 (2.17 % of base) : 104108.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
Top method improvements (percentages):
-6 (-42.86 % of base) : 7289.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-4 (-20.00 % of base) : 152083.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
-2 (-2.63 % of base) : 129224.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-1.30 % of base) : 120083.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-16 (-0.40 % of base) : 59732.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-2 (-0.24 % of base) : 10469.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
7 total methods with Code Size differences (6 improved, 1 regressed).
libraries.pmi.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 49794764 (overridden on cmd)
Total bytes of diff: 49801938 (overridden on cmd)
Total bytes of delta: 7174 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
828 : 215630.dasm (9.12 % of base)
652 : 185047.dasm (51.10 % of base)
590 : 184963.dasm (8.33 % of base)
530 : 184932.dasm (6.32 % of base)
466 : 185046.dasm (31.87 % of base)
358 : 183431.dasm (14.07 % of base)
338 : 183459.dasm (11.10 % of base)
322 : 183433.dasm (13.18 % of base)
318 : 183430.dasm (13.54 % of base)
246 : 81654.dasm (3.26 % of base)
216 : 183454.dasm (9.72 % of base)
216 : 183434.dasm (10.50 % of base)
214 : 183461.dasm (15.55 % of base)
214 : 183462.dasm (16.14 % of base)
208 : 91.dasm (4.96 % of base)
184 : 183445.dasm (11.26 % of base)
168 : 120927.dasm (12.52 % of base)
160 : 183439.dasm (14.31 % of base)
140 : 177240.dasm (10.59 % of base)
138 : 183563.dasm (8.60 % of base)
Top file improvements (bytes):
-72 : 215658.dasm (-3.53 % of base)
-52 : 81807.dasm (-2.01 % of base)
-34 : 180793.dasm (-1.81 % of base)
-34 : 241502.dasm (-1.81 % of base)
-34 : 161141.dasm (-1.81 % of base)
-34 : 179402.dasm (-1.81 % of base)
-34 : 192192.dasm (-1.78 % of base)
-34 : 194435.dasm (-1.78 % of base)
-34 : 244486.dasm (-1.81 % of base)
-18 : 276147.dasm (-3.60 % of base)
-18 : 185045.dasm (-0.84 % of base)
-16 : 199328.dasm (-2.73 % of base)
-16 : 158415.dasm (-4.19 % of base)
-16 : 215660.dasm (-0.89 % of base)
-14 : 144319.dasm (-3.54 % of base)
-14 : 144293.dasm (-3.54 % of base)
-14 : 177787.dasm (-3.66 % of base)
-14 : 215657.dasm (-0.73 % of base)
-14 : 144280.dasm (-3.54 % of base)
-14 : 144327.dasm (-3.54 % of base)
60 total files with Code Size differences (28 improved, 32 regressed), 20 unchanged.
Top method regressions (bytes):
828 (9.12 % of base) : 215630.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
652 (51.10 % of base) : 185047.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
590 (8.33 % of base) : 184963.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
530 (6.32 % of base) : 184932.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
466 (31.87 % of base) : 185046.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
358 (14.07 % of base) : 183431.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
338 (11.10 % of base) : 183459.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
322 (13.18 % of base) : 183433.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
318 (13.54 % of base) : 183430.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
246 (3.26 % of base) : 81654.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
216 (10.50 % of base) : 183434.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
216 (9.72 % of base) : 183454.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
214 (15.55 % of base) : 183461.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
214 (16.14 % of base) : 183462.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
208 (4.96 % of base) : 91.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
184 (11.26 % of base) : 183445.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
168 (12.52 % of base) : 120927.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
160 (14.31 % of base) : 183439.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
140 (10.59 % of base) : 177240.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
138 (8.60 % of base) : 183563.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
Top method improvements (bytes):
-72 (-3.53 % of base) : 215658.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-52 (-2.01 % of base) : 81807.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-34 (-1.81 % of base) : 180793.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.81 % of base) : 241502.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.81 % of base) : 161141.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.81 % of base) : 179402.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.78 % of base) : 192192.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.78 % of base) : 194435.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.81 % of base) : 244486.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-18 (-0.84 % of base) : 185045.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
-18 (-3.60 % of base) : 276147.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts)
-16 (-0.89 % of base) : 215660.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-16 (-2.73 % of base) : 199328.dasm - System.Linq.ParallelEnumerable:Aggregate[System.Numerics.Vector`1[float]](System.Linq.ParallelQuery`1[System.Numerics.Vector`1[float]],System.Func`3[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
-16 (-4.19 % of base) : 158415.dasm - System.Reflection.Metadata.Ecma335.MetadataAggregator+RowCounts:ToString():System.String:this (FullOpts)
-14 (-3.66 % of base) : 177787.dasm - Internal.TypeSystem.TargetDetails:ToString():System.String:this (FullOpts)
-14 (-0.73 % of base) : 215657.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-14 (-3.54 % of base) : 144319.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+OutputAvailableAsyncTarget`1[System.__Canon]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-14 (-3.54 % of base) : 144327.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+OutputAvailableAsyncTarget`1[ubyte]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-14 (-3.54 % of base) : 144280.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[System.__Canon]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-14 (-3.54 % of base) : 144293.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[ubyte]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
Top method regressions (percentages):
652 (51.10 % of base) : 185047.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
102 (31.87 % of base) : 177254.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
466 (31.87 % of base) : 185046.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
104 (18.18 % of base) : 177158.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
104 (18.18 % of base) : 183532.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
108 (17.36 % of base) : 183450.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
108 (17.09 % of base) : 183447.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
214 (16.14 % of base) : 183462.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
214 (15.55 % of base) : 183461.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
160 (14.31 % of base) : 183439.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
358 (14.07 % of base) : 183431.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
318 (13.54 % of base) : 183430.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
322 (13.18 % of base) : 183433.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
168 (12.52 % of base) : 120927.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
184 (11.26 % of base) : 183445.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
338 (11.10 % of base) : 183459.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
100 (11.09 % of base) : 177241.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
140 (10.59 % of base) : 177240.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
216 (10.50 % of base) : 183434.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
106 (9.98 % of base) : 183429.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
Top method improvements (percentages):
-4 (-20.00 % of base) : 228976.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:get_HasOverflow():ubyte:this (FullOpts)
-2 (-14.29 % of base) : 21959.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-16 (-4.19 % of base) : 158415.dasm - System.Reflection.Metadata.Ecma335.MetadataAggregator+RowCounts:ToString():System.String:this (FullOpts)
-14 (-3.66 % of base) : 177787.dasm - Internal.TypeSystem.TargetDetails:ToString():System.String:this (FullOpts)
-18 (-3.60 % of base) : 276147.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts)
-14 (-3.54 % of base) : 144319.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+OutputAvailableAsyncTarget`1[System.__Canon]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-14 (-3.54 % of base) : 144327.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+OutputAvailableAsyncTarget`1[ubyte]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-14 (-3.54 % of base) : 144280.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[System.__Canon]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-14 (-3.54 % of base) : 144293.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[ubyte]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-72 (-3.53 % of base) : 215658.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-12 (-3.19 % of base) : 145551.dasm - System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1[System.__Canon]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-12 (-3.19 % of base) : 145559.dasm - System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1[ubyte]:get_DebuggerDisplayContent():System.Object:this (FullOpts)
-4 (-2.86 % of base) : 228987.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection:GetEnumerator():System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection+Enumerator:this (FullOpts)
-16 (-2.73 % of base) : 199328.dasm - System.Linq.ParallelEnumerable:Aggregate[System.Numerics.Vector`1[float]](System.Linq.ParallelQuery`1[System.Numerics.Vector`1[float]],System.Func`3[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
-52 (-2.01 % of base) : 81807.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-2 (-1.85 % of base) : 243766.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-2 (-1.82 % of base) : 208233.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-34 (-1.81 % of base) : 180793.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.81 % of base) : 241502.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.81 % of base) : 161141.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
libraries_tests.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 243721382 (overridden on cmd)
Total bytes of diff: 243648834 (overridden on cmd)
Total bytes of delta: -72548 (-0.03 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
208 : 762.dasm (4.96 % of base)
188 : 178719.dasm (5.58 % of base)
144 : 177525.dasm (1.45 % of base)
106 : 383654.dasm (1.60 % of base)
70 : 152966.dasm (1.93 % of base)
70 : 139466.dasm (1.88 % of base)
58 : 669415.dasm (2.43 % of base)
26 : 84752.dasm (0.33 % of base)
24 : 656685.dasm (0.36 % of base)
20 : 671003.dasm (1.28 % of base)
16 : 675173.dasm (0.47 % of base)
14 : 408218.dasm (0.32 % of base)
14 : 666752.dasm (1.08 % of base)
10 : 408792.dasm (0.78 % of base)
10 : 382087.dasm (0.75 % of base)
8 : 171532.dasm (0.34 % of base)
8 : 327033.dasm (1.42 % of base)
8 : 543688.dasm (0.62 % of base)
6 : 55772.dasm (0.61 % of base)
6 : 55773.dasm (0.58 % of base)
Top file improvements (bytes):
-65536 : 464049.dasm (-39.99 % of base)
-4096 : 463975.dasm (-39.91 % of base)
-342 : 464088.dasm (-96.07 % of base)
-128 : 463967.dasm (-37.43 % of base)
-128 : 70138.dasm (-1.72 % of base)
-72 : 424347.dasm (-5.37 % of base)
-62 : 667909.dasm (-4.47 % of base)
-52 : 404908.dasm (-5.57 % of base)
-52 : 545941.dasm (-4.68 % of base)
-52 : 547222.dasm (-4.53 % of base)
-50 : 667761.dasm (-1.47 % of base)
-48 : 361540.dasm (-0.99 % of base)
-48 : 361984.dasm (-18.75 % of base)
-40 : 83610.dasm (-5.81 % of base)
-40 : 324674.dasm (-5.73 % of base)
-40 : 83545.dasm (-14.39 % of base)
-40 : 90506.dasm (-14.39 % of base)
-40 : 90517.dasm (-14.39 % of base)
-40 : 91251.dasm (-5.81 % of base)
-40 : 324602.dasm (-14.39 % of base)
73 total files with Code Size differences (48 improved, 25 regressed), 20 unchanged.
Top method regressions (bytes):
208 (4.96 % of base) : 762.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
188 (5.58 % of base) : 178719.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeOrPatternForIsOperator():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (Tier1)
144 (1.45 % of base) : 177525.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
106 (1.60 % of base) : 383654.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (Tier0-FullOpts)
70 (1.93 % of base) : 152966.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
70 (1.88 % of base) : 139466.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
58 (2.43 % of base) : 669415.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
26 (0.33 % of base) : 84752.dasm - Microsoft.Interop.LibraryImportGenerator:CreateTargetDllImportAsLocalStatement(Microsoft.Interop.PInvokeStubCodeGenerator,Microsoft.Interop.LibraryImportGeneratorOptions,Microsoft.Interop.LibraryImportData,System.String,System.String):Microsoft.CodeAnalysis.CSharp.Syntax.LocalFunctionStatementSyntax (Tier1)
24 (0.36 % of base) : 656685.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
20 (1.28 % of base) : 671003.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
16 (0.47 % of base) : 675173.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeOrPatternForIsOperator():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (Tier1)
14 (1.08 % of base) : 666752.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
14 (0.32 % of base) : 408218.dasm - System.Net.WebSockets.Tests.WebSocketDeflateTests+<Duplex>d__13:MoveNext():this (Tier0-FullOpts)
10 (0.75 % of base) : 382087.dasm - System.Net.NetworkInformation.Tests.PingTest:PingResultValidator(System.Net.NetworkInformation.PingReply,System.Net.IPAddress[],Xunit.Abstractions.ITestOutputHelper) (Tier0-FullOpts)
10 (0.78 % of base) : 408792.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[byte]:<IndexOfMin_AllLengths>b__165_0(int):this (Tier0-FullOpts)
8 (0.34 % of base) : 171532.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.SyntaxTokenList,int,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
8 (1.42 % of base) : 327033.dasm - System.IO.Packaging.Tests.ReflectionTests:<Verify_GeneralPurposeBitFlag_NotSetTo_Unicode>g__CheckCharacters|0_0(System.String) (Tier0-FullOpts)
8 (0.62 % of base) : 543688.dasm - System.Security.Cryptography.EcDsa.Tests.ECDsaSignatureFormatTests+<LocalGenerateTestKeys>d__4:MoveNext():ubyte:this (Tier1)
6 (0.61 % of base) : 55772.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
6 (0.58 % of base) : 55773.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
Top method improvements (bytes):
-65536 (-39.99 % of base) : 464049.dasm - TestType:meth1():int (Tier0)
-4096 (-39.91 % of base) : 463975.dasm - TestType:meth1():int (Tier0)
-342 (-96.07 % of base) : 464088.dasm - TestType:meth1():int (Tier0)
-128 (-1.72 % of base) : 70138.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
-128 (-37.43 % of base) : 463967.dasm - TestType:meth1():int (Tier0)
-72 (-5.37 % of base) : 424347.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FieldOffsetTest():this (Tier0)
-62 (-4.47 % of base) : 667909.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
-52 (-5.57 % of base) : 404908.dasm - System.Net.NetEventSource:WriteEvent(int,System.String,int,int,int,int,int,int,int):this (Tier0)
-52 (-4.53 % of base) : 547222.dasm - System.Security.Cryptography.Pkcs.Tests.TimestampRequestTests:VerifyExpectedRequest(System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest,ubyte) (Instrumented Tier0)
-52 (-4.68 % of base) : 545941.dasm - System.Security.Cryptography.Pkcs.Tests.TimestampRequestTests:VerifyExpectedRequest(System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest,ubyte) (Tier0)
-50 (-1.47 % of base) : 667761.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoad(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (Tier1)
-48 (-0.99 % of base) : 361540.dasm - System.SpanTests.ReadOnlySpanTests:.cctor() (Tier0)
-48 (-18.75 % of base) : 361984.dasm - System.SpanTests.SpanTests:.cctor() (Tier0)
-40 (-14.39 % of base) : 90506.dasm - System.IO.Hashing.XxHashShared:InitializeAccumulators(uint) (Instrumented Tier0)
-40 (-14.39 % of base) : 90517.dasm - System.IO.Hashing.XxHashShared:InitializeAccumulators(uint) (Instrumented Tier0)
-40 (-14.39 % of base) : 83545.dasm - System.IO.Hashing.XxHashShared:InitializeAccumulators(uint) (Tier0)
-40 (-14.39 % of base) : 324602.dasm - System.IO.Hashing.XxHashShared:InitializeAccumulators(uint) (Tier0)
-40 (-5.81 % of base) : 91251.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(uint,uint,ulong):ulong (Instrumented Tier0)
-40 (-5.81 % of base) : 83610.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(uint,uint,ulong):ulong (Tier0)
-40 (-5.73 % of base) : 324674.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(uint,uint,ulong):ulong (Tier0)
Top method regressions (percentages):
2 (11.11 % of base) : 278532.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
2 (10.00 % of base) : 278533.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
188 (5.58 % of base) : 178719.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeOrPatternForIsOperator():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (Tier1)
208 (4.96 % of base) : 762.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
4 (4.44 % of base) : 278530.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
58 (2.43 % of base) : 669415.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
6 (2.33 % of base) : 966.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Instrumented Tier1)
70 (1.93 % of base) : 152966.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
70 (1.88 % of base) : 139466.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
106 (1.60 % of base) : 383654.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (Tier0-FullOpts)
144 (1.45 % of base) : 177525.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
8 (1.42 % of base) : 327033.dasm - System.IO.Packaging.Tests.ReflectionTests:<Verify_GeneralPurposeBitFlag_NotSetTo_Unicode>g__CheckCharacters|0_0(System.String) (Tier0-FullOpts)
20 (1.28 % of base) : 671003.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
14 (1.08 % of base) : 666752.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
10 (0.78 % of base) : 408792.dasm - System.Numerics.Tensors.Tests.TensorPrimitivesTests`1[byte]:<IndexOfMin_AllLengths>b__165_0(int):this (Tier0-FullOpts)
4 (0.75 % of base) : 338745.dasm - System.Threading.ManualResetEventSlim:Set(ubyte):this (Tier1)
10 (0.75 % of base) : 382087.dasm - System.Net.NetworkInformation.Tests.PingTest:PingResultValidator(System.Net.NetworkInformation.PingReply,System.Net.IPAddress[],Xunit.Abstractions.ITestOutputHelper) (Tier0-FullOpts)
8 (0.62 % of base) : 543688.dasm - System.Security.Cryptography.EcDsa.Tests.ECDsaSignatureFormatTests+<LocalGenerateTestKeys>d__4:MoveNext():ubyte:this (Tier1)
6 (0.61 % of base) : 55772.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
6 (0.58 % of base) : 55773.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
Top method improvements (percentages):
-342 (-96.07 % of base) : 464088.dasm - TestType:meth1():int (Tier0)
-14 (-50.00 % of base) : 72426.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
-14 (-50.00 % of base) : 464087.dasm - TestType:meth1():int (Tier0)
-28 (-45.16 % of base) : 3428.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-65536 (-39.99 % of base) : 464049.dasm - TestType:meth1():int (Tier0)
-4096 (-39.91 % of base) : 463975.dasm - TestType:meth1():int (Tier0)
-128 (-37.43 % of base) : 463967.dasm - TestType:meth1():int (Tier0)
-14 (-36.84 % of base) : 3351.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:.cctor() (Tier0)
-14 (-36.84 % of base) : 72343.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
-38 (-32.76 % of base) : 362937.dasm - System.Span`1[System.TestHelpers+TestValueTypeWithReference]:Clear():this (Tier0)
-12 (-31.58 % of base) : 423406.dasm - System.Numerics.Vector`1[ushort]:get_Count():int (Tier0)
-6 (-30.00 % of base) : 464085.dasm - TestType:meth1():int (Tier0)
-6 (-25.00 % of base) : 17756.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Instrumented Tier0)
-6 (-25.00 % of base) : 10461.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Tier0)
-34 (-21.79 % of base) : 388746.dasm - System.Span`1[System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor+ErrorCollection]:Clear():this (Instrumented Tier0)
-32 (-18.82 % of base) : 83529.dasm - System.Span`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,int]]:Clear():this (Tier0)
-48 (-18.75 % of base) : 361984.dasm - System.SpanTests.SpanTests:.cctor() (Tier0)
-4 (-18.18 % of base) : 477403.dasm - System.Runtime.Caching.ExpiresEntryRef:get_Index():int:this (Instrumented Tier0)
-4 (-18.18 % of base) : 476868.dasm - System.Runtime.Caching.ExpiresEntryRef:get_Index():int:this (Tier0)
-8 (-18.18 % of base) : 462508.dasm - System.Xml.XmlEncodedRawTextWriter:RawEndCData(uint):uint (Tier0)
librariestestsnotieredcompilation.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 94387740 (overridden on cmd)
Total bytes of diff: 94322146 (overridden on cmd)
Total bytes of delta: -65594 (-0.07 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
630 : 56702.dasm (7.98 % of base)
208 : 233.dasm (4.96 % of base)
102 : 195435.dasm (8.95 % of base)
100 : 97288.dasm (4.47 % of base)
58 : 93040.dasm (0.74 % of base)
52 : 183418.dasm (3.43 % of base)
36 : 46532.dasm (0.86 % of base)
34 : 270024.dasm (0.77 % of base)
32 : 160756.dasm (2.33 % of base)
32 : 160830.dasm (2.33 % of base)
24 : 269178.dasm (0.35 % of base)
22 : 269894.dasm (0.84 % of base)
22 : 56474.dasm (0.58 % of base)
22 : 269887.dasm (0.67 % of base)
20 : 56792.dasm (1.04 % of base)
14 : 158488.dasm (0.32 % of base)
14 : 83571.dasm (2.93 % of base)
12 : 83804.dasm (1.40 % of base)
10 : 151705.dasm (0.75 % of base)
8 : 203397.dasm (0.51 % of base)
Top file improvements (bytes):
-65536 : 179024.dasm (-39.99 % of base)
-878 : 190361.dasm (-35.98 % of base)
-146 : 183512.dasm (-5.91 % of base)
-34 : 151091.dasm (-1.74 % of base)
-34 : 151926.dasm (-1.74 % of base)
-30 : 54909.dasm (-1.72 % of base)
-22 : 53458.dasm (-2.65 % of base)
-18 : 142532.dasm (-2.37 % of base)
-18 : 142839.dasm (-2.37 % of base)
-18 : 72768.dasm (-3.60 % of base)
-16 : 54984.dasm (-1.04 % of base)
-14 : 137848.dasm (-4.02 % of base)
-14 : 42081.dasm (-3.80 % of base)
-14 : 47875.dasm (-3.80 % of base)
-14 : 137853.dasm (-4.02 % of base)
-14 : 54937.dasm (-0.83 % of base)
-12 : 46661.dasm (-4.20 % of base)
-12 : 51797.dasm (-4.20 % of base)
-12 : 160801.dasm (-2.45 % of base)
-12 : 57525.dasm (-3.16 % of base)
58 total files with Code Size differences (36 improved, 22 regressed), 20 unchanged.
Top method regressions (bytes):
630 (7.98 % of base) : 56702.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
208 (4.96 % of base) : 233.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
102 (8.95 % of base) : 195435.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
100 (4.47 % of base) : 97288.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestDefaultActivitySource>b__3_0(System.String,System.String,System.String):this (FullOpts)
58 (0.74 % of base) : 93040.dasm - System.Data.Tests.SqlTypes.SqlDateTimeTest:SqlStringToSqlDateTime():this (FullOpts)
52 (3.43 % of base) : 183418.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
36 (0.86 % of base) : 46532.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
34 (0.77 % of base) : 270024.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
32 (2.33 % of base) : 160830.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest():this (FullOpts)
32 (2.33 % of base) : 160756.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest():this (FullOpts)
24 (0.35 % of base) : 269178.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
22 (0.58 % of base) : 56474.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
22 (0.84 % of base) : 269894.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
22 (0.67 % of base) : 269887.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
20 (1.04 % of base) : 56792.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
14 (2.93 % of base) : 83571.dasm - System.ComponentModel.TypeConverterTests.SizeConverterTests:ConvertToInvariantString(int,int):this (FullOpts)
14 (0.32 % of base) : 158488.dasm - System.Net.WebSockets.Tests.WebSocketDeflateTests+<Duplex>d__13:MoveNext():this (FullOpts)
12 (1.40 % of base) : 83804.dasm - System.ComponentModel.TypeConverterTests.RectangleConverterTests:ConvertFrom(int,int,int,int):this (FullOpts)
10 (0.75 % of base) : 151705.dasm - System.Net.NetworkInformation.Tests.PingTest:PingResultValidator(System.Net.NetworkInformation.PingReply,System.Net.IPAddress[],Xunit.Abstractions.ITestOutputHelper) (FullOpts)
8 (1.44 % of base) : 127319.dasm - System.IO.Packaging.Tests.ReflectionTests:<Verify_GeneralPurposeBitFlag_NotSetTo_Unicode>g__CheckCharacters|0_0(System.String) (FullOpts)
Top method improvements (bytes):
-65536 (-39.99 % of base) : 179024.dasm - TestType:meth1():int (Tier0-MinOpts)
-878 (-35.98 % of base) : 190361.dasm - System.Runtime.InteropServices.Tests.StructureToPtrTests:StructureToPtr_NonBlittableStruct_WithBlittableFixedBuffer_Success():this (FullOpts)
-146 (-5.91 % of base) : 183512.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-34 (-1.74 % of base) : 151091.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-34 (-1.74 % of base) : 151926.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-30 (-1.72 % of base) : 54909.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-22 (-2.65 % of base) : 53458.dasm - Microsoft.Extensions.Logging.Test.FormattedLogValuesTest:CachedFormattersAreCapped():this (FullOpts)
-18 (-3.60 % of base) : 72768.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts)
-18 (-2.37 % of base) : 142839.dasm - System.TestHelpers:AssertThrows[System.__Canon,System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.TestHelpers+AssertThrowsActionReadOnly`1[System.__Canon]) (FullOpts)
-18 (-2.37 % of base) : 142532.dasm - System.TestHelpers:AssertThrows[System.__Canon,ubyte](System.Span`1[ubyte],System.TestHelpers+AssertThrowsAction`1[ubyte]) (FullOpts)
-16 (-1.04 % of base) : 54984.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-14 (-0.83 % of base) : 54937.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-14 (-3.80 % of base) : 42081.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TemplateTestExtensions+__M3Struct:ToString():System.String:this (FullOpts)
-14 (-3.80 % of base) : 47875.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TemplateTestExtensions+__M3Struct:ToString():System.String:this (FullOpts)
-14 (-4.02 % of base) : 137848.dasm - System.Linq.Tests.AggregateByTests+<>c:<AggregateBy_TestData>b__9_30(int):System.String:this (FullOpts)
-14 (-4.02 % of base) : 137853.dasm - System.Linq.Tests.AggregateByTests+<>c:<AggregateBy_TestData>b__9_33(int):System.String:this (FullOpts)
-12 (-4.20 % of base) : 46661.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-12 (-4.20 % of base) : 51797.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-12 (-3.16 % of base) : 57525.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:StringSegment_Compare_Lesser(Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer):this (FullOpts)
-12 (-2.45 % of base) : 160801.dasm - System.Numerics.Tests.QuaternionTests:QuaternionNormalizeTest1():this (FullOpts)
Top method regressions (percentages):
102 (8.95 % of base) : 195435.dasm - DataContractJsonSerializerTests:DCJS_TypeWithOptionalField() (FullOpts)
630 (7.98 % of base) : 56702.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
208 (4.96 % of base) : 233.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
100 (4.47 % of base) : 97288.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests+<>c:<TestDefaultActivitySource>b__3_0(System.String,System.String,System.String):this (FullOpts)
52 (3.43 % of base) : 183418.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:SignatureTypeEncoder_FunctionPointer():this (FullOpts)
2 (2.94 % of base) : 183648.dasm - System.Reflection.Metadata.PortablePdbVersions:Format(ushort):System.String (FullOpts)
14 (2.93 % of base) : 83571.dasm - System.ComponentModel.TypeConverterTests.SizeConverterTests:ConvertToInvariantString(int,int):this (FullOpts)
32 (2.33 % of base) : 160830.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest():this (FullOpts)
32 (2.33 % of base) : 160756.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest():this (FullOpts)
8 (1.44 % of base) : 127319.dasm - System.IO.Packaging.Tests.ReflectionTests:<Verify_GeneralPurposeBitFlag_NotSetTo_Unicode>g__CheckCharacters|0_0(System.String) (FullOpts)
12 (1.40 % of base) : 83804.dasm - System.ComponentModel.TypeConverterTests.RectangleConverterTests:ConvertFrom(int,int,int,int):this (FullOpts)
20 (1.04 % of base) : 56792.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
36 (0.86 % of base) : 46532.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
22 (0.84 % of base) : 269894.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
34 (0.77 % of base) : 270024.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
10 (0.75 % of base) : 151705.dasm - System.Net.NetworkInformation.Tests.PingTest:PingResultValidator(System.Net.NetworkInformation.PingReply,System.Net.IPAddress[],Xunit.Abstractions.ITestOutputHelper) (FullOpts)
58 (0.74 % of base) : 93040.dasm - System.Data.Tests.SqlTypes.SqlDateTimeTest:SqlStringToSqlDateTime():this (FullOpts)
22 (0.67 % of base) : 269887.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
22 (0.58 % of base) : 56474.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
8 (0.51 % of base) : 203397.dasm - System.Tests.StringTests:ZeroLengthContains_StringComparison() (FullOpts)
Top method improvements (percentages):
-65536 (-39.99 % of base) : 179024.dasm - TestType:meth1():int (Tier0-MinOpts)
-878 (-35.98 % of base) : 190361.dasm - System.Runtime.InteropServices.Tests.StructureToPtrTests:StructureToPtr_NonBlittableStruct_WithBlittableFixedBuffer_Success():this (FullOpts)
-6 (-20.00 % of base) : 232301.dasm - System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
-4 (-18.18 % of base) : 214431.dasm - System.Tests.DateTimeTests+<>c:<Parse_InvalidArguments_Throws>b__134_2():System.Object:this (FullOpts)
-4 (-18.18 % of base) : 214333.dasm - System.Tests.DateTimeTests+<>c:<ParseExact_InvalidArguments_Throws>b__136_1():System.Object:this (FullOpts)
-4 (-18.18 % of base) : 214339.dasm - System.Tests.DateTimeTests+<>c:<ParseExact_InvalidArguments_Throws>b__136_7():System.Object:this (FullOpts)
-4 (-18.18 % of base) : 202920.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_1():System.Object:this (FullOpts)
-4 (-18.18 % of base) : 202921.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
-4 (-16.67 % of base) : 202998.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_12():System.Object:this (FullOpts)
-4 (-16.67 % of base) : 203009.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_24():System.Object:this (FullOpts)
-4 (-16.67 % of base) : 203011.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_26():System.Object:this (FullOpts)
-4 (-16.67 % of base) : 202992.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_6():System.Object:this (FullOpts)
-4 (-8.70 % of base) : 183513.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass40_0:<CustomAttributeElementTypeEncoder_PrimitiveType>b__0():this (FullOpts)
-146 (-5.91 % of base) : 183512.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-12 (-4.20 % of base) : 46661.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-12 (-4.20 % of base) : 51797.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:MakeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):uint:this (FullOpts)
-14 (-4.02 % of base) : 137848.dasm - System.Linq.Tests.AggregateByTests+<>c:<AggregateBy_TestData>b__9_30(int):System.String:this (FullOpts)
-14 (-4.02 % of base) : 137853.dasm - System.Linq.Tests.AggregateByTests+<>c:<AggregateBy_TestData>b__9_33(int):System.String:this (FullOpts)
-14 (-3.80 % of base) : 42081.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TemplateTestExtensions+__M3Struct:ToString():System.String:this (FullOpts)
-14 (-3.80 % of base) : 47875.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TemplateTestExtensions+__M3Struct:ToString():System.String:this (FullOpts)
realworld.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13603552 (overridden on cmd)
Total bytes of diff: 13604540 (overridden on cmd)
Total bytes of delta: 988 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
630 : 31657.dasm (7.98 % of base)
198 : 32215.dasm (2.89 % of base)
70 : 21407.dasm (1.94 % of base)
52 : 31992.dasm (1.27 % of base)
34 : 31658.dasm (0.77 % of base)
22 : 31687.dasm (0.84 % of base)
22 : 31690.dasm (0.67 % of base)
22 : 31386.dasm (0.57 % of base)
20 : 31993.dasm (1.04 % of base)
8 : 31643.dasm (0.22 % of base)
6 : 2101.dasm (3.57 % of base)
6 : 271.dasm (2.75 % of base)
6 : 31535.dasm (0.30 % of base)
6 : 31789.dasm (0.42 % of base)
2 : 432.dasm (0.86 % of base)
Top file improvements (bytes):
-30 : 31400.dasm (-1.72 % of base)
-18 : 16947.dasm (-2.34 % of base)
-16 : 31392.dasm (-1.04 % of base)
-14 : 31404.dasm (-0.83 % of base)
-8 : 16948.dasm (-1.21 % of base)
-6 : 115.dasm (-0.37 % of base)
-6 : 2647.dasm (-0.37 % of base)
-6 : 16241.dasm (-0.37 % of base)
-6 : 16085.dasm (-0.37 % of base)
-2 : 16939.dasm (-0.16 % of base)
-2 : 21203.dasm (-1.82 % of base)
-2 : 19447.dasm (-0.49 % of base)
27 total files with Code Size differences (12 improved, 15 regressed), 13 unchanged.
Top method regressions (bytes):
630 (7.98 % of base) : 31657.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
198 (2.89 % of base) : 32215.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
70 (1.94 % of base) : 21407.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
52 (1.27 % of base) : 31992.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
34 (0.77 % of base) : 31658.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
22 (0.57 % of base) : 31386.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
22 (0.84 % of base) : 31687.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
22 (0.67 % of base) : 31690.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
20 (1.04 % of base) : 31993.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
8 (0.22 % of base) : 31643.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
6 (3.57 % of base) : 2101.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
6 (0.30 % of base) : 31535.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
6 (0.42 % of base) : 31789.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
6 (2.75 % of base) : 271.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
2 (0.86 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
Top method improvements (bytes):
-30 (-1.72 % of base) : 31400.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-18 (-2.34 % of base) : 16947.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-16 (-1.04 % of base) : 31392.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-14 (-0.83 % of base) : 31404.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-8 (-1.21 % of base) : 16948.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-6 (-0.37 % of base) : 115.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 2647.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 16241.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 16085.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-2 (-1.82 % of base) : 21203.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-0.49 % of base) : 19447.dasm - Microsoft.ML.Transforms.RowShufflingTransformer:GetRowCursorCore(System.Collections.Generic.IEnumerable`1[Microsoft.ML.DataViewSchema+Column],System.Random):Microsoft.ML.DataViewRowCursor:this (FullOpts)
-2 (-0.16 % of base) : 16939.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
Top method regressions (percentages):
630 (7.98 % of base) : 31657.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
6 (3.57 % of base) : 2101.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
198 (2.89 % of base) : 32215.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
6 (2.75 % of base) : 271.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (FullOpts)
70 (1.94 % of base) : 21407.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (FullOpts)
52 (1.27 % of base) : 31992.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
20 (1.04 % of base) : 31993.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
2 (0.86 % of base) : 432.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (FullOpts)
22 (0.84 % of base) : 31687.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
34 (0.77 % of base) : 31658.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
22 (0.67 % of base) : 31690.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
22 (0.57 % of base) : 31386.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
6 (0.42 % of base) : 31789.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
6 (0.30 % of base) : 31535.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
8 (0.22 % of base) : 31643.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
Top method improvements (percentages):
-18 (-2.34 % of base) : 16947.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-2 (-1.82 % of base) : 21203.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-30 (-1.72 % of base) : 31400.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-8 (-1.21 % of base) : 16948.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-16 (-1.04 % of base) : 31392.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLoadArgumentOpcode(int):this (FullOpts)
-14 (-0.83 % of base) : 31404.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-2 (-0.49 % of base) : 19447.dasm - Microsoft.ML.Transforms.RowShufflingTransformer:GetRowCursorCore(System.Collections.Generic.IEnumerable`1[Microsoft.ML.DataViewSchema+Column],System.Random):Microsoft.ML.DataViewRowCursor:this (FullOpts)
-6 (-0.37 % of base) : 115.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 2647.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 16241.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-6 (-0.37 % of base) : 16085.dasm - BenchmarkDotNet.Autogenerated.UniqueProgramName:AfterAssemblyLoadingAttached(System.String[]):int (FullOpts)
-2 (-0.16 % of base) : 16939.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
27 total methods with Code Size differences (12 improved, 15 regressed).
windows x86
Diffs are based on 2,293,125 contexts (839,657 MinOpts, 1,453,468 FullOpts).
MISSED contexts: base: 47 (0.00%), diff: 369 (0.02%)
Overall (-134,970 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.x86.checked.mch |
7,107,468 |
-60 |
benchmarks.run_pgo.windows.x86.checked.mch |
44,954,112 |
-841 |
benchmarks.run_tiered.windows.x86.checked.mch |
9,456,972 |
-657 |
coreclr_tests.run.windows.x86.checked.mch |
309,306,753 |
-73,049 |
libraries.crossgen2.windows.x86.checked.mch |
31,715,821 |
-44 |
libraries.pmi.windows.x86.checked.mch |
49,209,656 |
+8,800 |
libraries_tests.run.windows.x86.Release.mch |
186,454,825 |
-37,182 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
103,643,834 |
-32,634 |
realworld.run.windows.x86.checked.mch |
11,348,723 |
+697 |
MinOpts (-149,310 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.windows.x86.checked.mch |
6,588,631 |
-870 |
benchmarks.run_tiered.windows.x86.checked.mch |
4,269,821 |
-727 |
coreclr_tests.run.windows.x86.checked.mch |
201,787,888 |
-77,353 |
libraries_tests.run.windows.x86.Release.mch |
98,273,632 |
-37,592 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
8,680,064 |
-32,768 |
FullOpts (+14,340 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run.windows.x86.checked.mch |
7,107,187 |
-60 |
benchmarks.run_pgo.windows.x86.checked.mch |
38,365,481 |
+29 |
benchmarks.run_tiered.windows.x86.checked.mch |
5,187,151 |
+70 |
coreclr_tests.run.windows.x86.checked.mch |
107,518,865 |
+4,304 |
libraries.crossgen2.windows.x86.checked.mch |
31,714,761 |
-44 |
libraries.pmi.windows.x86.checked.mch |
49,114,423 |
+8,800 |
libraries_tests.run.windows.x86.Release.mch |
88,181,193 |
+410 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
94,963,770 |
+134 |
realworld.run.windows.x86.checked.mch |
11,053,009 |
+697 |
Example diffs
benchmarks.run.windows.x86.checked.mch
-38 (-2.21%) : 20661.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
@@ -9,12 +9,12 @@
; Final local variable assignments
;
; V00 RetBuf [V00,T09] ( 5, 3.50) byref -> esi single-def
-; V01 arg0 [V01 ] ( 10, 6 ) struct (12) [ebp+0x08] do-not-enreg[XSF] addr-exposed ld-addr-op single-def <System.Xml.Schema.XsdDateTime>
+; V01 arg0 [V01 ] ( 14, 8 ) struct (12) [ebp+0x08] do-not-enreg[XSF] addr-exposed ld-addr-op single-def <System.Xml.Schema.XsdDateTime>
; V02 loc0 [V02 ] ( 17, 8.50) struct ( 8) [ebp-0x14] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
;* V03 loc1 [V03 ] ( 0, 0 ) long -> zero-ref
; V04 loc2 [V04 ] ( 4, 2 ) struct ( 8) [ebp-0x1C] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
;* V05 loc3 [V05 ] ( 0, 0 ) struct ( 8) zero-ref <System.TimeSpan>
-; V06 loc4 [V06,T21] ( 3, 2.50) int -> ecx
+; V06 loc4 [V06,T20] ( 3, 2.50) int -> ecx
; V07 loc5 [V07 ] ( 5, 2.50) struct ( 8) [ebp-0x24] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
;* V08 loc6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 loc7 [V09 ] ( 12, 6 ) struct ( 8) [ebp-0x2C] do-not-enreg[XS] addr-exposed ld-addr-op <System.TimeSpan>
@@ -37,33 +37,33 @@
;* V26 tmp16 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.DateTime>
; V27 tmp17 [V27,T04] ( 7, 7 ) int -> edi "impAppendStmt"
; V28 tmp18 [V28,T07] ( 6, 6 ) int -> ebx "impAppendStmt"
-; V29 tmp19 [V29,T11] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V29 tmp19 [V29,T10] ( 4, 4 ) int -> ecx "Inlining Arg"
;* V30 tmp20 [V30 ] ( 0, 0 ) struct ( 8) zero-ref <System.ReadOnlySpan`1[uint]>
;* V31 tmp21 [V31 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-; V32 tmp22 [V32,T67] ( 2, 1 ) int -> eax "Inline stloc first use temp"
-;* V33 tmp23 [V33,T68] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V32 tmp22 [V32,T66] ( 2, 1 ) int -> eax "Inline stloc first use temp"
+;* V33 tmp23 [V33,T67] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V34 tmp24 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V35 tmp25 [V35 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V36 tmp26 [V36,T31] ( 3, 1.50) int -> edi "Inline stloc first use temp"
-; V37 tmp27 [V37,T32] ( 3, 1.50) int -> edx "Inline stloc first use temp"
-; V38 tmp28 [V38,T12] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V36 tmp26 [V36,T30] ( 3, 1.50) int -> edi "Inline stloc first use temp"
+; V37 tmp27 [V37,T31] ( 3, 1.50) int -> edx "Inline stloc first use temp"
+; V38 tmp28 [V38,T11] ( 4, 4 ) int -> ecx "Inlining Arg"
;* V39 tmp29 [V39 ] ( 0, 0 ) struct ( 8) zero-ref <System.ReadOnlySpan`1[uint]>
;* V40 tmp30 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-; V41 tmp31 [V41,T69] ( 2, 1 ) int -> eax "Inline stloc first use temp"
-;* V42 tmp32 [V42,T70] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V41 tmp31 [V41,T68] ( 2, 1 ) int -> eax "Inline stloc first use temp"
+;* V42 tmp32 [V42,T69] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V43 tmp33 [V43 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V44 tmp34 [V44 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V45 tmp35 [V45,T33] ( 3, 1.50) int -> edi "Inline stloc first use temp"
-; V46 tmp36 [V46,T34] ( 3, 1.50) int -> edx "Inline stloc first use temp"
-; V47 tmp37 [V47,T13] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V45 tmp35 [V45,T32] ( 3, 1.50) int -> edi "Inline stloc first use temp"
+; V46 tmp36 [V46,T33] ( 3, 1.50) int -> edx "Inline stloc first use temp"
+; V47 tmp37 [V47,T12] ( 4, 4 ) int -> ecx "Inlining Arg"
;* V48 tmp38 [V48 ] ( 0, 0 ) struct ( 8) zero-ref <System.ReadOnlySpan`1[uint]>
;* V49 tmp39 [V49 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-; V50 tmp40 [V50,T71] ( 2, 1 ) int -> eax "Inline stloc first use temp"
-;* V51 tmp41 [V51,T72] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V50 tmp40 [V50,T70] ( 2, 1 ) int -> eax "Inline stloc first use temp"
+;* V51 tmp41 [V51,T71] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V52 tmp42 [V52 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V53 tmp43 [V53 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V54 tmp44 [V54,T35] ( 3, 1.50) int -> edi "Inline stloc first use temp"
-; V55 tmp45 [V55,T36] ( 3, 1.50) int -> edx "Inline stloc first use temp"
+; V54 tmp44 [V54,T34] ( 3, 1.50) int -> edi "Inline stloc first use temp"
+; V55 tmp45 [V55,T35] ( 3, 1.50) int -> edx "Inline stloc first use temp"
;* V56 tmp46 [V56 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V57 tmp47 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V58 tmp48 [V58 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
@@ -73,95 +73,94 @@
;* V62 tmp52 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V63 tmp53 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V64 tmp54 [V64 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V65 tmp55 [V65,T14] ( 3, 3 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
-; V66 tmp56 [V66,T29] ( 2, 2 ) ref -> eax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-; V67 tmp57 [V67,T19] ( 5, 2.50) ref -> eax
+; V65 tmp55 [V65,T13] ( 3, 3 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
+; V66 tmp56 [V66,T28] ( 2, 2 ) ref -> eax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+; V67 tmp57 [V67,T18] ( 5, 2.50) ref -> eax
;* V68 tmp58 [V68 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
;* V69 tmp59 [V69 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V70 tmp60 [V70 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V71 tmp61 [V71 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V72 tmp62 [V72,T15] ( 3, 3 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
-; V73 tmp63 [V73,T30] ( 2, 2 ) ref -> eax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-; V74 tmp64 [V74,T20] ( 5, 2.50) ref -> eax
+; V72 tmp62 [V72,T14] ( 3, 3 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
+; V73 tmp63 [V73,T29] ( 2, 2 ) ref -> eax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+; V74 tmp64 [V74,T19] ( 5, 2.50) ref -> eax
;* V75 tmp65 [V75 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
; V76 tmp66 [V76 ] ( 17, 8.50) long -> [ebp-0x14] do-not-enreg[XR] multireg-ret addr-exposed "field V02._dateData (fldOffset=0x0)" P-DEP
; V77 tmp67 [V77 ] ( 4, 2 ) long -> [ebp-0x1C] do-not-enreg[X] addr-exposed "field V04._dateData (fldOffset=0x0)" P-DEP
;* V78 tmp68 [V78 ] ( 0, 0 ) long -> zero-ref "field V05._ticks (fldOffset=0x0)" P-INDEP
; V79 tmp69 [V79 ] ( 5, 2.50) long -> [ebp-0x24] do-not-enreg[X] addr-exposed "field V07._dateData (fldOffset=0x0)" P-DEP
; V80 tmp70 [V80 ] ( 12, 6 ) long -> [ebp-0x2C] do-not-enreg[X] addr-exposed "field V09._ticks (fldOffset=0x0)" P-DEP
-; V81 tmp71 [V81,T37] ( 3, 1.50) long -> [ebp-0x34] do-not-enreg[BR] multireg-ret "field V12._dateData (fldOffset=0x0)" P-INDEP
+; V81 tmp71 [V81,T36] ( 3, 1.50) long -> [ebp-0x34] do-not-enreg[BR] multireg-ret "field V12._dateData (fldOffset=0x0)" P-INDEP
;* V82 tmp72 [V82 ] ( 0, 0 ) long -> zero-ref "field V13._dateData (fldOffset=0x0)" P-INDEP
-; V83 tmp73 [V83,T38] ( 3, 1.50) long -> [ebp-0x3C] do-not-enreg[FR] multireg-ret "field V16._dateData (fldOffset=0x0)" P-INDEP
-; V84 tmp74 [V84,T39] ( 3, 1.50) long -> [ebp-0x44] do-not-enreg[FR] multireg-ret "field V19._ticks (fldOffset=0x0)" P-INDEP
-; V85 tmp75 [V85,T40] ( 3, 1.50) long -> [ebp-0x4C] do-not-enreg[F] "field V20._dateData (fldOffset=0x0)" P-INDEP
-; V86 tmp76 [V86,T41] ( 3, 1.50) long -> [ebp-0x54] do-not-enreg[F] "field V21._dateData (fldOffset=0x0)" P-INDEP
-; V87 tmp77 [V87,T42] ( 3, 1.50) long -> [ebp-0x5C] do-not-enreg[FR] multireg-ret "field V24._ticks (fldOffset=0x0)" P-INDEP
-; V88 tmp78 [V88,T43] ( 3, 1.50) long -> [ebp-0x64] do-not-enreg[F] "field V25._dateData (fldOffset=0x0)" P-INDEP
-; V89 tmp79 [V89,T44] ( 3, 1.50) long -> [ebp-0x6C] do-not-enreg[F] "field V26._dateData (fldOffset=0x0)" P-INDEP
-; V90 tmp80 [V90,T22] ( 4, 2 ) byref -> eax "field V30._reference (fldOffset=0x0)" P-INDEP
-;* V91 tmp81 [V91,T73] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x4)" P-INDEP
+; V83 tmp73 [V83,T37] ( 3, 1.50) long -> [ebp-0x3C] do-not-enreg[FR] multireg-ret "field V16._dateData (fldOffset=0x0)" P-INDEP
+; V84 tmp74 [V84,T38] ( 3, 1.50) long -> [ebp-0x44] do-not-enreg[FR] multireg-ret "field V19._ticks (fldOffset=0x0)" P-INDEP
+; V85 tmp75 [V85,T39] ( 3, 1.50) long -> [ebp-0x4C] do-not-enreg[F] "field V20._dateData (fldOffset=0x0)" P-INDEP
+; V86 tmp76 [V86,T40] ( 3, 1.50) long -> [ebp-0x54] do-not-enreg[F] "field V21._dateData (fldOffset=0x0)" P-INDEP
+; V87 tmp77 [V87,T41] ( 3, 1.50) long -> [ebp-0x5C] do-not-enreg[FR] multireg-ret "field V24._ticks (fldOffset=0x0)" P-INDEP
+; V88 tmp78 [V88,T42] ( 3, 1.50) long -> [ebp-0x64] do-not-enreg[F] "field V25._dateData (fldOffset=0x0)" P-INDEP
+; V89 tmp79 [V89,T43] ( 3, 1.50) long -> [ebp-0x6C] do-not-enreg[F] "field V26._dateData (fldOffset=0x0)" P-INDEP
+; V90 tmp80 [V90,T21] ( 4, 2 ) byref -> eax "field V30._reference (fldOffset=0x0)" P-INDEP
+;* V91 tmp81 [V91,T72] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x4)" P-INDEP
;* V92 tmp82 [V92 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP
;* V93 tmp83 [V93 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x4)" P-INDEP
-; V94 tmp84 [V94,T61] ( 2, 1 ) byref -> eax single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp85 [V95,T80] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x4)" P-INDEP
-; V96 tmp86 [V96,T62] ( 2, 1 ) byref -> eax single-def "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp87 [V97,T81] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x4)" P-INDEP
-; V98 tmp88 [V98,T23] ( 4, 2 ) byref -> eax "field V39._reference (fldOffset=0x0)" P-INDEP
-;* V99 tmp89 [V99,T74] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x4)" P-INDEP
+; V94 tmp84 [V94,T60] ( 2, 1 ) byref -> eax single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp85 [V95,T79] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x4)" P-INDEP
+; V96 tmp86 [V96,T61] ( 2, 1 ) byref -> eax single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp87 [V97,T80] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x4)" P-INDEP
+; V98 tmp88 [V98,T22] ( 4, 2 ) byref -> eax "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V99 tmp89 [V99,T73] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x4)" P-INDEP
;* V100 tmp90 [V100 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP
;* V101 tmp91 [V101 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x4)" P-INDEP
-; V102 tmp92 [V102,T63] ( 2, 1 ) byref -> eax single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp93 [V103,T82] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x4)" P-INDEP
-; V104 tmp94 [V104,T64] ( 2, 1 ) byref -> eax single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V105 tmp95 [V105,T83] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x4)" P-INDEP
-; V106 tmp96 [V106,T24] ( 4, 2 ) byref -> eax "field V48._reference (fldOffset=0x0)" P-INDEP
-;* V107 tmp97 [V107,T75] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x4)" P-INDEP
+; V102 tmp92 [V102,T62] ( 2, 1 ) byref -> eax single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp93 [V103,T81] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x4)" P-INDEP
+; V104 tmp94 [V104,T63] ( 2, 1 ) byref -> eax single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp95 [V105,T82] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x4)" P-INDEP
+; V106 tmp96 [V106,T23] ( 4, 2 ) byref -> eax "field V48._reference (fldOffset=0x0)" P-INDEP
+;* V107 tmp97 [V107,T74] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x4)" P-INDEP
;* V108 tmp98 [V108 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
;* V109 tmp99 [V109 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x4)" P-INDEP
-; V110 tmp100 [V110,T65] ( 2, 1 ) byref -> eax single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V111 tmp101 [V111,T84] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x4)" P-INDEP
-; V112 tmp102 [V112,T66] ( 2, 1 ) byref -> eax single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V113 tmp103 [V113,T85] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x4)" P-INDEP
+; V110 tmp100 [V110,T64] ( 2, 1 ) byref -> eax single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V111 tmp101 [V111,T83] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x4)" P-INDEP
+; V112 tmp102 [V112,T65] ( 2, 1 ) byref -> eax single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V113 tmp103 [V113,T84] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x4)" P-INDEP
;* V114 tmp104 [V114 ] ( 0, 0 ) long -> zero-ref "field V56._dateData (fldOffset=0x0)" P-INDEP
;* V115 tmp105 [V115 ] ( 0, 0 ) long -> zero-ref "field V57._dateData (fldOffset=0x0)" P-INDEP
-; V116 tmp106 [V116,T45] ( 3, 1.50) long -> [ebp-0x74] do-not-enreg[F] "field V59._ticks (fldOffset=0x0)" P-INDEP
-; V117 tmp107 [V117,T46] ( 3, 1.50) long -> [ebp-0x7C] do-not-enreg[F] "field V68._dateData (fldOffset=0x0)" P-INDEP
-; V118 tmp108 [V118,T47] ( 3, 1.50) long -> [ebp-0x84] do-not-enreg[F] "field V75._dateData (fldOffset=0x0)" P-INDEP
-; V119 cse0 [V119,T48] ( 3, 1.50) int -> ebx "CSE - conservative"
-; V120 cse1 [V120,T49] ( 3, 1.50) int -> ebx "CSE - conservative"
-; V121 cse2 [V121,T50] ( 3, 1.50) int -> ebx "CSE - conservative"
-; V122 cse3 [V122,T10] ( 6, 4 ) int -> ebx "CSE - moderate"
-; V123 rat0 [V123,T01] ( 18, 9 ) int -> edi "field V03.lo (fldOffset=0x0)" P-INDEP
-; V124 rat1 [V124,T00] ( 20, 10 ) int -> ebx "field V03.hi (fldOffset=0x4)" P-INDEP
-; V125 rat2 [V125,T76] ( 2, 1 ) int -> [ebp-0x88] spill-single-def "field V17.lo (fldOffset=0x0)" P-INDEP
-; V126 rat3 [V126,T77] ( 2, 1 ) int -> [ebp-0x8C] spill-single-def "field V17.hi (fldOffset=0x4)" P-INDEP
-; V127 rat4 [V127,T78] ( 2, 1 ) int -> [ebp-0x90] spill-single-def "field V22.lo (fldOffset=0x0)" P-INDEP
-; V128 rat5 [V128,T79] ( 2, 1 ) int -> [ebp-0x94] spill-single-def "field V22.hi (fldOffset=0x4)" P-INDEP
-; V129 rat6 [V129,T51] ( 3, 1.50) int -> eax "field V61.lo (fldOffset=0x0)" P-INDEP
-; V130 rat7 [V130,T52] ( 3, 1.50) int -> edx "field V61.hi (fldOffset=0x4)" P-INDEP
-; V131 rat8 [V131,T25] ( 4, 2 ) int -> eax "field V64.lo (fldOffset=0x0)" P-INDEP
-; V132 rat9 [V132,T26] ( 4, 2 ) int -> edx "field V64.hi (fldOffset=0x4)" P-INDEP
-; V133 rat10 [V133,T27] ( 4, 2 ) int -> eax "field V71.lo (fldOffset=0x0)" P-INDEP
-; V134 rat11 [V134,T28] ( 4, 2 ) int -> edx "field V71.hi (fldOffset=0x4)" P-INDEP
-; V135 rat12 [V135,T08] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
-; V136 rat13 [V136 ] ( 1, 1 ) long -> [ebp-0x9C] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V137 rat14 [V137,T53] ( 2, 1.50) int -> [ebp-0xA0] spill-single-def "field V136.lo (fldOffset=0x0)" P-INDEP
-; V138 rat15 [V138,T54] ( 2, 1.50) int -> [ebp-0xA4] spill-single-def "field V136.hi (fldOffset=0x4)" P-INDEP
-; V139 rat16 [V139 ] ( 1, 1 ) long -> [ebp-0xAC] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V140 rat17 [V140,T55] ( 2, 1.50) int -> eax "field V139.lo (fldOffset=0x0)" P-INDEP
-; V141 rat18 [V141,T56] ( 2, 1.50) int -> edx "field V139.hi (fldOffset=0x4)" P-INDEP
-; V142 rat19 [V142,T16] ( 3, 3 ) byref -> eax "ReplaceWithLclVar is creating a new local variable"
-; V143 rat20 [V143 ] ( 1, 1 ) long -> [ebp-0xB4] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V144 rat21 [V144,T57] ( 2, 1.50) int -> [ebp-0xB8] spill-single-def "field V143.lo (fldOffset=0x0)" P-INDEP
-; V145 rat22 [V145,T58] ( 2, 1.50) int -> [ebp-0xBC] spill-single-def "field V143.hi (fldOffset=0x4)" P-INDEP
-; V146 rat23 [V146 ] ( 1, 1 ) long -> [ebp-0xC4] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V147 rat24 [V147,T59] ( 2, 1.50) int -> eax "field V146.lo (fldOffset=0x0)" P-INDEP
-; V148 rat25 [V148,T60] ( 2, 1.50) int -> edx "field V146.hi (fldOffset=0x4)" P-INDEP
-; V149 rat26 [V149,T17] ( 3, 3 ) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V150 rat27 [V150,T18] ( 3, 3 ) byref -> esi "ReplaceWithLclVar is creating a new local variable"
-; TEMP_01 int -> [ebp-0xC8]
+; V116 tmp106 [V116,T44] ( 3, 1.50) long -> [ebp-0x74] do-not-enreg[F] "field V59._ticks (fldOffset=0x0)" P-INDEP
+; V117 tmp107 [V117,T45] ( 3, 1.50) long -> [ebp-0x7C] do-not-enreg[F] "field V68._dateData (fldOffset=0x0)" P-INDEP
+; V118 tmp108 [V118,T46] ( 3, 1.50) long -> [ebp-0x84] do-not-enreg[F] "field V75._dateData (fldOffset=0x0)" P-INDEP
+; V119 cse0 [V119,T47] ( 3, 1.50) int -> ebx "CSE - conservative"
+; V120 cse1 [V120,T48] ( 3, 1.50) int -> ebx "CSE - conservative"
+; V121 cse2 [V121,T49] ( 3, 1.50) int -> ebx "CSE - conservative"
+; V122 rat0 [V122,T01] ( 18, 9 ) int -> edi "field V03.lo (fldOffset=0x0)" P-INDEP
+; V123 rat1 [V123,T00] ( 20, 10 ) int -> ebx "field V03.hi (fldOffset=0x4)" P-INDEP
+; V124 rat2 [V124,T75] ( 2, 1 ) int -> edi "field V17.lo (fldOffset=0x0)" P-INDEP
+; V125 rat3 [V125,T76] ( 2, 1 ) int -> [ebp-0x88] spill-single-def "field V17.hi (fldOffset=0x4)" P-INDEP
+; V126 rat4 [V126,T77] ( 2, 1 ) int -> edi "field V22.lo (fldOffset=0x0)" P-INDEP
+; V127 rat5 [V127,T78] ( 2, 1 ) int -> [ebp-0x8C] spill-single-def "field V22.hi (fldOffset=0x4)" P-INDEP
+; V128 rat6 [V128,T50] ( 3, 1.50) int -> eax "field V61.lo (fldOffset=0x0)" P-INDEP
+; V129 rat7 [V129,T51] ( 3, 1.50) int -> edx "field V61.hi (fldOffset=0x4)" P-INDEP
+; V130 rat8 [V130,T24] ( 4, 2 ) int -> eax "field V64.lo (fldOffset=0x0)" P-INDEP
+; V131 rat9 [V131,T25] ( 4, 2 ) int -> edx "field V64.hi (fldOffset=0x4)" P-INDEP
+; V132 rat10 [V132,T26] ( 4, 2 ) int -> eax "field V71.lo (fldOffset=0x0)" P-INDEP
+; V133 rat11 [V133,T27] ( 4, 2 ) int -> edx "field V71.hi (fldOffset=0x4)" P-INDEP
+; V134 rat12 [V134,T08] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
+; V135 rat13 [V135 ] ( 1, 1 ) long -> [ebp-0x94] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V136 rat14 [V136,T52] ( 2, 1.50) int -> ecx "field V135.lo (fldOffset=0x0)" P-INDEP
+; V137 rat15 [V137,T53] ( 2, 1.50) int -> [ebp-0x98] spill-single-def "field V135.hi (fldOffset=0x4)" P-INDEP
+; V138 rat16 [V138 ] ( 1, 1 ) long -> [ebp-0xA0] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V139 rat17 [V139,T54] ( 2, 1.50) int -> eax "field V138.lo (fldOffset=0x0)" P-INDEP
+; V140 rat18 [V140,T55] ( 2, 1.50) int -> edx "field V138.hi (fldOffset=0x4)" P-INDEP
+; V141 rat19 [V141,T15] ( 3, 3 ) byref -> eax "ReplaceWithLclVar is creating a new local variable"
+; V142 rat20 [V142 ] ( 1, 1 ) long -> [ebp-0xA8] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V143 rat21 [V143,T56] ( 2, 1.50) int -> ecx "field V142.lo (fldOffset=0x0)" P-INDEP
+; V144 rat22 [V144,T57] ( 2, 1.50) int -> [ebp-0xAC] spill-single-def "field V142.hi (fldOffset=0x4)" P-INDEP
+; V145 rat23 [V145 ] ( 1, 1 ) long -> [ebp-0xB4] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V146 rat24 [V146,T58] ( 2, 1.50) int -> eax "field V145.lo (fldOffset=0x0)" P-INDEP
+; V147 rat25 [V147,T59] ( 2, 1.50) int -> edx "field V145.hi (fldOffset=0x4)" P-INDEP
+; V148 rat26 [V148,T16] ( 3, 3 ) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V149 rat27 [V149,T17] ( 3, 3 ) byref -> esi "ReplaceWithLclVar is creating a new local variable"
+; TEMP_01 int -> [ebp-0xB8]
;
-; Lcl frame size = 188
+; Lcl frame size = 172
G_M33150_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -169,7 +168,7 @@ G_M33150_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 188
+ sub esp, 172
mov esi, ecx
; byrRegs +[esi]
;; size=14 bbWeight=1 PerfScore 4.75
@@ -232,12 +231,12 @@ G_M33150_IG06: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000041
cmp ebx, 13
jae G_M33150_IG31
mov edx, dword ptr [eax+4*ebx]
- mov dword ptr [ebp-0xC8], edx
+ mov dword ptr [ebp-0xB8], edx
lea edx, [ebx-0x01]
cmp edx, 13
jae G_M33150_IG31
mov ebx, dword ptr [eax+4*ebx-0x04]
- mov edx, dword ptr [ebp-0xC8]
+ mov edx, dword ptr [ebp-0xB8]
sub edx, ebx
...
-25 (-1.77%) : 19605.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,158 +5,152 @@
; ebp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 120 single block inlinees; 45 inlinees without PGO data
+; 0 inlinees with PGO data; 125 single block inlinees; 45 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 65, 33.50) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> ebx single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> ebx single-def
;* V03 tmp0 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V04 tmp1 [V04,T50] ( 2, 2 ) int -> edi "Inlining Arg"
-; V05 tmp2 [V05,T56] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V06 tmp3 [V06,T13] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V04 tmp1 [V04,T52] ( 2, 2 ) int -> edi "Inlining Arg"
+; V05 tmp2 [V05,T58] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V06 tmp3 [V06,T14] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V07 tmp4 [V07,T02] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V10 tmp7 [V10,T20] ( 6, 3 ) int -> eax "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V12 tmp9 [V12 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V20 tmp17 [V20,T03] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V21 tmp18 [V21,T38] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V23 tmp20 [V23,T63] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V24 tmp21 [V24,T39] ( 3, 3 ) int -> edx "Inlining Arg"
-; V25 tmp22 [V25,T26] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V27 tmp24 [V27,T51] ( 2, 2 ) int -> edi "Inlining Arg"
-; V28 tmp25 [V28,T57] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V29 tmp26 [V29,T14] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T04] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V33 tmp30 [V33,T21] ( 6, 3 ) int -> eax "Inline stloc first use temp"
-;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V36 tmp33 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V18 tmp15 [V18,T03] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V19 tmp16 [V19,T38] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V20 tmp17 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V21 tmp18 [V21,T65] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V22 tmp19 [V22,T39] ( 3, 3 ) int -> edx "Inlining Arg"
+; V23 tmp20 [V23,T26] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V25 tmp22 [V25,T53] ( 2, 2 ) int -> edi "Inlining Arg"
+; V26 tmp23 [V26,T59] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V27 tmp24 [V27,T15] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T04] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V31 tmp28 [V31,T21] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V32 tmp29 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V39 tmp36 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V40 tmp37 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V43 tmp40 [V43,T05] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V44 tmp41 [V44,T40] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V46 tmp43 [V46,T64] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V47 tmp44 [V47,T41] ( 3, 3 ) int -> edx "Inlining Arg"
-; V48 tmp45 [V48,T27] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V49 tmp46 [V49 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V50 tmp47 [V50,T52] ( 2, 2 ) int -> edi "Inlining Arg"
-; V51 tmp48 [V51,T58] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V52 tmp49 [V52,T15] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T06] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V54 tmp51 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V39 tmp36 [V39,T05] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V40 tmp37 [V40,T40] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V42 tmp39 [V42,T66] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V43 tmp40 [V43,T41] ( 3, 3 ) int -> edx "Inlining Arg"
+; V44 tmp41 [V44,T27] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V46 tmp43 [V46,T54] ( 2, 2 ) int -> edi "Inlining Arg"
+; V47 tmp44 [V47,T60] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V48 tmp45 [V48,T16] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T06] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V52 tmp49 [V52,T22] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V53 tmp50 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V54 tmp51 [V54 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V56 tmp53 [V56,T22] ( 6, 3 ) int -> eax "Inline stloc first use temp"
-;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V56 tmp53 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V59 tmp56 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V60 tmp57 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V61 tmp58 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V62 tmp59 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V66 tmp63 [V66,T07] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V67 tmp64 [V67,T42] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V68 tmp65 [V68 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V69 tmp66 [V69,T65] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V70 tmp67 [V70,T43] ( 3, 3 ) int -> edx "Inlining Arg"
-; V71 tmp68 [V71,T28] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V73 tmp70 [V73,T53] ( 2, 2 ) int -> edi "Inlining Arg"
-; V74 tmp71 [V74,T59] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V75 tmp72 [V75,T16] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T08] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V59 tmp56 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V60 tmp57 [V60,T07] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V61 tmp58 [V61,T42] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V62 tmp59 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V63 tmp60 [V63,T67] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V64 tmp61 [V64,T43] ( 3, 3 ) int -> edx "Inlining Arg"
+; V65 tmp62 [V65,T28] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V66 tmp63 [V66 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V67 tmp64 [V67,T55] ( 2, 2 ) int -> edi "Inlining Arg"
+; V68 tmp65 [V68,T61] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V69 tmp66 [V69,T17] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T08] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V71 tmp68 [V71 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V73 tmp70 [V73,T23] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V74 tmp71 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V75 tmp72 [V75 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V79 tmp76 [V79,T23] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V80 tmp77 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V81 tmp78 [V81 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V82 tmp79 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V84 tmp81 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V85 tmp82 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V86 tmp83 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V89 tmp86 [V89,T29] ( 3, 3 ) byref -> eax single-def "Inlining Arg"
-;* V90 tmp87 [V90 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V91 tmp88 [V91,T54] ( 2, 2 ) int -> [ebp-0x10] spill-single-def "Inlining Arg"
-; V92 tmp89 [V92,T60] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V93 tmp90 [V93,T17] ( 4, 4 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T09] ( 6, 6 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V95 tmp92 [V95 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V81 tmp78 [V81,T09] ( 6, 6 ) byref -> eax single-def "Inlining Arg"
+; V82 tmp79 [V82,T44] ( 3, 3 ) int -> edx "impAppendStmt"
+;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V84 tmp81 [V84,T68] ( 2, 1 ) int -> edx "Inline return value spill temp"
+; V85 tmp82 [V85,T45] ( 3, 3 ) int -> ecx "Inlining Arg"
+; V86 tmp83 [V86,T29] ( 3, 3 ) byref -> eax single-def "Inlining Arg"
+;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V88 tmp85 [V88,T56] ( 2, 2 ) int -> [ebp-0x10] spill-single-def "Inlining Arg"
+; V89 tmp86 [V89,T62] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V90 tmp87 [V90,T18] ( 4, 4 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T10] ( 6, 6 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V92 tmp89 [V92 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V94 tmp91 [V94,T24] ( 6, 3 ) int -> edx "Inline stloc first use temp"
+;* V95 tmp92 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V97 tmp94 [V97,T24] ( 6, 3 ) int -> edx "Inline stloc first use temp"
+;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V98 tmp95 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V99 tmp96 [V99 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V100 tmp97 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V103 tmp100 [V103 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V104 tmp101 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V107 tmp104 [V107,T30] ( 3, 3 ) byref -> edi single-def "Inlining Arg"
-;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V109 tmp106 [V109,T61] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V110 tmp107 [V110,T18] ( 4, 4 ) ref -> esi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T10] ( 6, 6 ) ref -> esi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V112 tmp109 [V112 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V113 tmp110 [V113 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V114 tmp111 [V114 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V115 tmp112 [V115,T25] ( 6, 3 ) int -> edi "Inline stloc first use temp"
-;* V116 tmp113 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V117 tmp114 [V117 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V119 tmp116 [V119,T55] ( 2, 2 ) int -> edi "Inlining Arg"
-; V120 tmp117 [V120,T62] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V121 tmp118 [V121,T19] ( 4, 4 ) ref -> [ebp-0x1C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T31] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V123 tmp120 [V123 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V101 tmp98 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V102 tmp99 [V102,T30] ( 3, 3 ) byref -> edi single-def "Inlining Arg"
+;* V103 tmp100 [V103 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V104 tmp101 [V104,T63] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V105 tmp102 [V105,T19] ( 4, 4 ) ref -> esi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T11] ( 6, 6 ) ref -> esi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V107 tmp104 [V107 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V108 tmp105 [V108 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V109 tmp106 [V109 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V110 tmp107 [V110,T25] ( 6, 3 ) int -> edi "Inline stloc first use temp"
+;* V111 tmp108 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V112 tmp109 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V113 tmp110 [V113 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V114 tmp111 [V114,T57] ( 2, 2 ) int -> edi "Inlining Arg"
+; V115 tmp112 [V115,T64] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V116 tmp113 [V116,T31] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V117 tmp114 [V117 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V118 tmp115 [V118 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V120 tmp117 [V120,T32] ( 3, 3 ) ref -> ecx single-def "arr expr"
+; V121 tmp118 [V121,T33] ( 3, 3 ) ref -> ecx single-def "arr expr"
+;* V122 tmp119 [V122 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V124 tmp121 [V124,T34] ( 3, 3 ) ref -> edx single-def "arr expr"
;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V126 tmp123 [V126,T32] ( 3, 3 ) ref -> ecx single-def "arr expr"
-; V127 tmp124 [V127,T33] ( 3, 3 ) ref -> ecx single-def "arr expr"
+;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V127 tmp124 [V127,T35] ( 3, 3 ) ref -> ecx single-def "arr expr"
;* V128 tmp125 [V128 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V130 tmp127 [V130,T34] ( 3, 3 ) ref -> ecx single-def "arr expr"
+; V130 tmp127 [V130,T36] ( 3, 3 ) ref -> ecx single-def "arr expr"
...
-15 (-1.10%) : 19619.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,158 +5,152 @@
; ebp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 118 single block inlinees; 44 inlinees without PGO data
+; 0 inlinees with PGO data; 124 single block inlinees; 43 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 62, 32 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> ebx single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> ebx single-def
;* V03 tmp0 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V04 tmp1 [V04,T50] ( 2, 2 ) int -> edi "Inlining Arg"
-; V05 tmp2 [V05,T56] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V06 tmp3 [V06,T13] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V04 tmp1 [V04,T53] ( 2, 2 ) int -> edi "Inlining Arg"
+; V05 tmp2 [V05,T59] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V06 tmp3 [V06,T14] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V07 tmp4 [V07,T02] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V10 tmp7 [V10,T19] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+; V10 tmp7 [V10,T20] ( 6, 3 ) int -> eax "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V12 tmp9 [V12 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V20 tmp17 [V20,T03] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V21 tmp18 [V21,T37] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V23 tmp20 [V23,T62] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V24 tmp21 [V24,T38] ( 3, 3 ) int -> edx "Inlining Arg"
-; V25 tmp22 [V25,T25] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V27 tmp24 [V27,T51] ( 2, 2 ) int -> edi "Inlining Arg"
-; V28 tmp25 [V28,T57] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V29 tmp26 [V29,T14] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T04] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V33 tmp30 [V33,T20] ( 6, 3 ) int -> eax "Inline stloc first use temp"
-;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V36 tmp33 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V18 tmp15 [V18,T03] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V19 tmp16 [V19,T37] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V20 tmp17 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V21 tmp18 [V21,T65] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V22 tmp19 [V22,T38] ( 3, 3 ) int -> edx "Inlining Arg"
+; V23 tmp20 [V23,T26] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V25 tmp22 [V25,T54] ( 2, 2 ) int -> edi "Inlining Arg"
+; V26 tmp23 [V26,T60] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V27 tmp24 [V27,T15] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T04] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V31 tmp28 [V31,T21] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V32 tmp29 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V39 tmp36 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V40 tmp37 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V43 tmp40 [V43,T05] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V44 tmp41 [V44,T39] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V46 tmp43 [V46,T63] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V47 tmp44 [V47,T40] ( 3, 3 ) int -> edx "Inlining Arg"
-; V48 tmp45 [V48,T26] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V49 tmp46 [V49 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V50 tmp47 [V50,T52] ( 2, 2 ) int -> edi "Inlining Arg"
-; V51 tmp48 [V51,T58] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V52 tmp49 [V52,T15] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T06] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V54 tmp51 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V39 tmp36 [V39,T05] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V40 tmp37 [V40,T39] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V42 tmp39 [V42,T66] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V43 tmp40 [V43,T40] ( 3, 3 ) int -> edx "Inlining Arg"
+; V44 tmp41 [V44,T27] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V46 tmp43 [V46,T55] ( 2, 2 ) int -> edi "Inlining Arg"
+; V47 tmp44 [V47,T61] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V48 tmp45 [V48,T16] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T06] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V52 tmp49 [V52,T22] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V53 tmp50 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V54 tmp51 [V54 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V56 tmp53 [V56,T21] ( 6, 3 ) int -> eax "Inline stloc first use temp"
-;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V56 tmp53 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V59 tmp56 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V60 tmp57 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V61 tmp58 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V62 tmp59 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V66 tmp63 [V66,T07] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V67 tmp64 [V67,T41] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V68 tmp65 [V68 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V69 tmp66 [V69,T64] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V70 tmp67 [V70,T42] ( 3, 3 ) int -> edx "Inlining Arg"
-; V71 tmp68 [V71,T27] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V73 tmp70 [V73,T53] ( 2, 2 ) int -> edi "Inlining Arg"
-; V74 tmp71 [V74,T59] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V75 tmp72 [V75,T16] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T08] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V59 tmp56 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V60 tmp57 [V60,T07] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V61 tmp58 [V61,T41] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V62 tmp59 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V63 tmp60 [V63,T67] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V64 tmp61 [V64,T42] ( 3, 3 ) int -> edx "Inlining Arg"
+; V65 tmp62 [V65,T28] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V66 tmp63 [V66 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V67 tmp64 [V67,T56] ( 2, 2 ) int -> edi "Inlining Arg"
+; V68 tmp65 [V68,T62] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V69 tmp66 [V69,T17] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T08] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V71 tmp68 [V71 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V73 tmp70 [V73,T23] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V74 tmp71 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V75 tmp72 [V75 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V79 tmp76 [V79,T22] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V80 tmp77 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V81 tmp78 [V81 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V82 tmp79 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V84 tmp81 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V85 tmp82 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V86 tmp83 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V89 tmp86 [V89,T28] ( 3, 3 ) byref -> eax single-def "Inlining Arg"
-;* V90 tmp87 [V90 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V91 tmp88 [V91,T54] ( 2, 2 ) int -> [ebp-0x10] spill-single-def "Inlining Arg"
-; V92 tmp89 [V92,T60] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V93 tmp90 [V93,T17] ( 4, 4 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T09] ( 6, 6 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V95 tmp92 [V95 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V81 tmp78 [V81,T09] ( 6, 6 ) byref -> eax single-def "Inlining Arg"
+; V82 tmp79 [V82,T43] ( 3, 3 ) int -> edx "impAppendStmt"
+;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V84 tmp81 [V84,T68] ( 2, 1 ) int -> edx "Inline return value spill temp"
+; V85 tmp82 [V85,T44] ( 3, 3 ) int -> ecx "Inlining Arg"
+; V86 tmp83 [V86,T29] ( 3, 3 ) byref -> eax single-def "Inlining Arg"
+;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V88 tmp85 [V88,T57] ( 2, 2 ) int -> [ebp-0x10] spill-single-def "Inlining Arg"
+; V89 tmp86 [V89,T63] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V90 tmp87 [V90,T18] ( 4, 4 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T10] ( 6, 6 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V92 tmp89 [V92 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V94 tmp91 [V94,T24] ( 6, 3 ) int -> edx "Inline stloc first use temp"
+;* V95 tmp92 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V97 tmp94 [V97,T23] ( 6, 3 ) int -> edx "Inline stloc first use temp"
+;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V98 tmp95 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V99 tmp96 [V99 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V100 tmp97 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V103 tmp100 [V103 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V104 tmp101 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V107 tmp104 [V107,T29] ( 3, 3 ) byref -> edi single-def "Inlining Arg"
-;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V109 tmp106 [V109,T61] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V110 tmp107 [V110,T18] ( 4, 4 ) ref -> esi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T10] ( 6, 6 ) ref -> esi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V112 tmp109 [V112 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V113 tmp110 [V113 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V114 tmp111 [V114 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V115 tmp112 [V115,T24] ( 6, 3 ) int -> edi "Inline stloc first use temp"
-;* V116 tmp113 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V117 tmp114 [V117 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V119 tmp116 [V119,T55] ( 2, 2 ) int -> edi "Inlining Arg"
-;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V121 tmp118 [V121,T30] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V122 tmp119 [V122 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-; V123 tmp120 [V123,T49] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V101 tmp98 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V102 tmp99 [V102,T30] ( 3, 3 ) byref -> edi single-def "Inlining Arg"
+;* V103 tmp100 [V103 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V104 tmp101 [V104,T64] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V105 tmp102 [V105,T19] ( 4, 4 ) ref -> esi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T11] ( 6, 6 ) ref -> esi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V107 tmp104 [V107 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V108 tmp105 [V108 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V109 tmp106 [V109 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V110 tmp107 [V110,T25] ( 6, 3 ) int -> edi "Inline stloc first use temp"
+;* V111 tmp108 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V112 tmp109 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V113 tmp110 [V113 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V114 tmp111 [V114,T58] ( 2, 2 ) int -> edi "Inlining Arg"
+;* V115 tmp112 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V116 tmp113 [V116,T51] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V117 tmp114 [V117,T52] ( 2, 2 ) ref -> ecx single-def "argument with side effect"
+;* V118 tmp115 [V118 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V120 tmp117 [V120,T31] ( 3, 3 ) ref -> ecx single-def "arr expr"
+; V121 tmp118 [V121,T32] ( 3, 3 ) ref -> ecx single-def "arr expr"
+;* V122 tmp119 [V122 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V124 tmp121 [V124,T33] ( 3, 3 ) ref -> edx single-def "arr expr"
;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V126 tmp123 [V126,T31] ( 3, 3 ) ref -> ecx single-def "arr expr"
-; V127 tmp124 [V127,T32] ( 3, 3 ) ref -> ecx single-def "arr expr"
+;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V127 tmp124 [V127,T34] ( 3, 3 ) ref -> ecx single-def "arr expr"
;* V128 tmp125 [V128 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V130 tmp127 [V130,T33] ( 3, 3 ) ref -> ecx single-def "arr expr"
...
+2 (+0.15%) : 14805.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
@@ -9,12 +9,12 @@
; Final local variable assignments
;
; V00 RetBuf [V00,T07] ( 3, 3 ) byref -> esi single-def
-; V01 arg0 [V01 ] ( 10, 6 ) struct (12) [ebp+0x08] do-not-enreg[XSF] addr-exposed ld-addr-op single-def <System.Xml.Schema.XsdDateTime>
+; V01 arg0 [V01 ] ( 14, 8 ) struct (12) [ebp+0x08] do-not-enreg[XSF] addr-exposed ld-addr-op single-def <System.Xml.Schema.XsdDateTime>
; V02 loc0 [V02 ] ( 13, 6.50) struct ( 8) [ebp-0x14] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
; V03 loc1 [V03 ] ( 5, 3 ) struct (12) [ebp-0x20] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTimeOffset>
; V04 loc2 [V04 ] ( 4, 2 ) struct ( 8) [ebp-0x28] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
;* V05 loc3 [V05 ] ( 0, 0 ) struct ( 8) zero-ref <System.TimeSpan>
-; V06 loc4 [V06,T14] ( 3, 2.50) int -> ecx
+; V06 loc4 [V06,T13] ( 3, 2.50) int -> ecx
; V07 loc5 [V07 ] ( 2, 1 ) struct ( 8) [ebp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op <System.DateTime>
;* V08 loc6 [V08 ] ( 0, 0 ) int -> zero-ref
; V09 loc7 [V09,T00] ( 7, 7 ) int -> edi "impAppendStmt"
@@ -36,33 +36,33 @@
; V25 tmp16 [V25 ] ( 2, 2 ) struct ( 8) [ebp-0x38] do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.TimeSpan>
; V26 tmp17 [V26,T02] ( 7, 7 ) int -> edi "impAppendStmt"
; V27 tmp18 [V27,T05] ( 6, 6 ) int -> ebx "impAppendStmt"
-; V28 tmp19 [V28,T09] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V28 tmp19 [V28,T08] ( 4, 4 ) int -> ecx "Inlining Arg"
;* V29 tmp20 [V29 ] ( 0, 0 ) struct ( 8) zero-ref <System.ReadOnlySpan`1[uint]>
;* V30 tmp21 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-; V31 tmp22 [V31,T57] ( 2, 1 ) int -> eax "Inline stloc first use temp"
-;* V32 tmp23 [V32,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V31 tmp22 [V31,T56] ( 2, 1 ) int -> eax "Inline stloc first use temp"
+;* V32 tmp23 [V32,T57] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V33 tmp24 [V33 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V34 tmp25 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V35 tmp26 [V35,T24] ( 3, 1.50) int -> edi "Inline stloc first use temp"
-; V36 tmp27 [V36,T25] ( 3, 1.50) int -> edx "Inline stloc first use temp"
-; V37 tmp28 [V37,T10] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V35 tmp26 [V35,T23] ( 3, 1.50) int -> edi "Inline stloc first use temp"
+; V36 tmp27 [V36,T24] ( 3, 1.50) int -> edx "Inline stloc first use temp"
+; V37 tmp28 [V37,T09] ( 4, 4 ) int -> ecx "Inlining Arg"
;* V38 tmp29 [V38 ] ( 0, 0 ) struct ( 8) zero-ref <System.ReadOnlySpan`1[uint]>
;* V39 tmp30 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-; V40 tmp31 [V40,T59] ( 2, 1 ) int -> eax "Inline stloc first use temp"
-;* V41 tmp32 [V41,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V40 tmp31 [V40,T58] ( 2, 1 ) int -> eax "Inline stloc first use temp"
+;* V41 tmp32 [V41,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V42 tmp33 [V42 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V43 tmp34 [V43 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V44 tmp35 [V44,T26] ( 3, 1.50) int -> edi "Inline stloc first use temp"
-; V45 tmp36 [V45,T27] ( 3, 1.50) int -> edx "Inline stloc first use temp"
-; V46 tmp37 [V46,T11] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V44 tmp35 [V44,T25] ( 3, 1.50) int -> edi "Inline stloc first use temp"
+; V45 tmp36 [V45,T26] ( 3, 1.50) int -> edx "Inline stloc first use temp"
+; V46 tmp37 [V46,T10] ( 4, 4 ) int -> ecx "Inlining Arg"
;* V47 tmp38 [V47 ] ( 0, 0 ) struct ( 8) zero-ref <System.ReadOnlySpan`1[uint]>
;* V48 tmp39 [V48 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-; V49 tmp40 [V49,T61] ( 2, 1 ) int -> eax "Inline stloc first use temp"
-;* V50 tmp41 [V50,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V49 tmp40 [V49,T60] ( 2, 1 ) int -> eax "Inline stloc first use temp"
+;* V50 tmp41 [V50,T61] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V51 tmp42 [V51 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
;* V52 tmp43 [V52 ] ( 0, 0 ) struct ( 8) zero-ref "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-; V53 tmp44 [V53,T28] ( 3, 1.50) int -> edi "Inline stloc first use temp"
-; V54 tmp45 [V54,T29] ( 3, 1.50) int -> edx "Inline stloc first use temp"
+; V53 tmp44 [V53,T27] ( 3, 1.50) int -> edi "Inline stloc first use temp"
+; V54 tmp45 [V54,T28] ( 3, 1.50) int -> edx "Inline stloc first use temp"
;* V55 tmp46 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V56 tmp47 [V56 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V57 tmp48 [V57 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
@@ -75,75 +75,74 @@
;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V65 tmp56 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V66 tmp57 [V66 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V67 tmp58 [V67,T12] ( 3, 3 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
-; V68 tmp59 [V68,T22] ( 2, 2 ) ref -> eax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-; V69 tmp60 [V69,T13] ( 5, 2.50) ref -> eax
+; V67 tmp58 [V67,T11] ( 3, 3 ) ref -> ecx class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
+; V68 tmp59 [V68,T21] ( 2, 2 ) ref -> eax class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+; V69 tmp60 [V69,T12] ( 5, 2.50) ref -> eax
;* V70 tmp61 [V70 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
; V71 tmp62 [V71 ] ( 13, 6.50) long -> [ebp-0x14] do-not-enreg[XR] multireg-ret addr-exposed "field V02._dateData (fldOffset=0x0)" P-DEP
; V72 tmp63 [V72 ] ( 4, 2 ) long -> [ebp-0x28] do-not-enreg[X] addr-exposed "field V04._dateData (fldOffset=0x0)" P-DEP
;* V73 tmp64 [V73 ] ( 0, 0 ) long -> zero-ref "field V05._ticks (fldOffset=0x0)" P-INDEP
; V74 tmp65 [V74 ] ( 2, 1 ) long -> [ebp-0x30] do-not-enreg[X] addr-exposed "field V07._dateData (fldOffset=0x0)" P-DEP
-; V75 tmp66 [V75,T30] ( 3, 1.50) long -> [ebp-0x40] do-not-enreg[BR] multireg-ret "field V11._dateData (fldOffset=0x0)" P-INDEP
+; V75 tmp66 [V75,T29] ( 3, 1.50) long -> [ebp-0x40] do-not-enreg[BR] multireg-ret "field V11._dateData (fldOffset=0x0)" P-INDEP
;* V76 tmp67 [V76 ] ( 0, 0 ) long -> zero-ref "field V12._dateData (fldOffset=0x0)" P-INDEP
-; V77 tmp68 [V77,T31] ( 3, 1.50) long -> [ebp-0x48] do-not-enreg[FR] multireg-ret "field V15._dateData (fldOffset=0x0)" P-INDEP
-; V78 tmp69 [V78,T32] ( 3, 1.50) long -> [ebp-0x50] do-not-enreg[F] "field V16._dateData (fldOffset=0x0)" P-INDEP
-; V79 tmp70 [V79,T33] ( 3, 1.50) long -> [ebp-0x58] do-not-enreg[FR] multireg-ret "field V18._ticks (fldOffset=0x0)" P-INDEP
-; V80 tmp71 [V80,T34] ( 3, 1.50) long -> [ebp-0x60] do-not-enreg[F] "field V19._dateData (fldOffset=0x0)" P-INDEP
-; V81 tmp72 [V81,T35] ( 3, 1.50) long -> [ebp-0x68] do-not-enreg[FR] multireg-ret "field V21._ticks (fldOffset=0x0)" P-INDEP
-;* V82 tmp73 [V82,T66] ( 0, 0 ) long -> zero-ref "field V22._ticks (fldOffset=0x0)" P-INDEP
-; V83 tmp74 [V83,T36] ( 3, 1.50) long -> [ebp-0x70] do-not-enreg[F] "field V23._dateData (fldOffset=0x0)" P-INDEP
-; V84 tmp75 [V84,T37] ( 3, 1.50) long -> [ebp-0x78] do-not-enreg[F] "field V24._dateData (fldOffset=0x0)" P-INDEP
-; V85 tmp76 [V85,T23] ( 2, 2 ) long -> [ebp-0x38] do-not-enreg[H] hidden-struct-arg "field V25._ticks (fldOffset=0x0)" P-DEP
-; V86 tmp77 [V86,T15] ( 4, 2 ) byref -> eax "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V87 tmp78 [V87,T63] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x4)" P-INDEP
+; V77 tmp68 [V77,T30] ( 3, 1.50) long -> [ebp-0x48] do-not-enreg[FR] multireg-ret "field V15._dateData (fldOffset=0x0)" P-INDEP
+; V78 tmp69 [V78,T31] ( 3, 1.50) long -> [ebp-0x50] do-not-enreg[F] "field V16._dateData (fldOffset=0x0)" P-INDEP
+; V79 tmp70 [V79,T32] ( 3, 1.50) long -> [ebp-0x58] do-not-enreg[FR] multireg-ret "field V18._ticks (fldOffset=0x0)" P-INDEP
+; V80 tmp71 [V80,T33] ( 3, 1.50) long -> [ebp-0x60] do-not-enreg[F] "field V19._dateData (fldOffset=0x0)" P-INDEP
+; V81 tmp72 [V81,T34] ( 3, 1.50) long -> [ebp-0x68] do-not-enreg[FR] multireg-ret "field V21._ticks (fldOffset=0x0)" P-INDEP
+;* V82 tmp73 [V82,T65] ( 0, 0 ) long -> zero-ref "field V22._ticks (fldOffset=0x0)" P-INDEP
+; V83 tmp74 [V83,T35] ( 3, 1.50) long -> [ebp-0x70] do-not-enreg[F] "field V23._dateData (fldOffset=0x0)" P-INDEP
+; V84 tmp75 [V84,T36] ( 3, 1.50) long -> [ebp-0x78] do-not-enreg[F] "field V24._dateData (fldOffset=0x0)" P-INDEP
+; V85 tmp76 [V85,T22] ( 2, 2 ) long -> [ebp-0x38] do-not-enreg[H] hidden-struct-arg "field V25._ticks (fldOffset=0x0)" P-DEP
+; V86 tmp77 [V86,T14] ( 4, 2 ) byref -> eax "field V29._reference (fldOffset=0x0)" P-INDEP
+;* V87 tmp78 [V87,T62] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x4)" P-INDEP
;* V88 tmp79 [V88 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP
;* V89 tmp80 [V89 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x4)" P-INDEP
-; V90 tmp81 [V90,T51] ( 2, 1 ) byref -> eax single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V91 tmp82 [V91,T67] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x4)" P-INDEP
-; V92 tmp83 [V92,T52] ( 2, 1 ) byref -> eax single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V93 tmp84 [V93,T68] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x4)" P-INDEP
-; V94 tmp85 [V94,T16] ( 4, 2 ) byref -> eax "field V38._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp86 [V95,T64] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x4)" P-INDEP
+; V90 tmp81 [V90,T50] ( 2, 1 ) byref -> eax single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V91 tmp82 [V91,T66] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x4)" P-INDEP
+; V92 tmp83 [V92,T51] ( 2, 1 ) byref -> eax single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V93 tmp84 [V93,T67] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x4)" P-INDEP
+; V94 tmp85 [V94,T15] ( 4, 2 ) byref -> eax "field V38._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp86 [V95,T63] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x4)" P-INDEP
;* V96 tmp87 [V96 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
;* V97 tmp88 [V97 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x4)" P-INDEP
-; V98 tmp89 [V98,T53] ( 2, 1 ) byref -> eax single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V99 tmp90 [V99,T69] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x4)" P-INDEP
-; V100 tmp91 [V100,T54] ( 2, 1 ) byref -> eax single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V101 tmp92 [V101,T70] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x4)" P-INDEP
-; V102 tmp93 [V102,T17] ( 4, 2 ) byref -> eax "field V47._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp94 [V103,T65] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x4)" P-INDEP
+; V98 tmp89 [V98,T52] ( 2, 1 ) byref -> eax single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V99 tmp90 [V99,T68] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x4)" P-INDEP
+; V100 tmp91 [V100,T53] ( 2, 1 ) byref -> eax single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V101 tmp92 [V101,T69] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x4)" P-INDEP
+; V102 tmp93 [V102,T16] ( 4, 2 ) byref -> eax "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp94 [V103,T64] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x4)" P-INDEP
;* V104 tmp95 [V104 ] ( 0, 0 ) byref -> zero-ref single-def "field V48._reference (fldOffset=0x0)" P-INDEP
;* V105 tmp96 [V105 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x4)" P-INDEP
-; V106 tmp97 [V106,T55] ( 2, 1 ) byref -> eax single-def "field V51._reference (fldOffset=0x0)" P-INDEP
-;* V107 tmp98 [V107,T71] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x4)" P-INDEP
-; V108 tmp99 [V108,T56] ( 2, 1 ) byref -> eax single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V109 tmp100 [V109,T72] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x4)" P-INDEP
+; V106 tmp97 [V106,T54] ( 2, 1 ) byref -> eax single-def "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V107 tmp98 [V107,T70] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x4)" P-INDEP
+; V108 tmp99 [V108,T55] ( 2, 1 ) byref -> eax single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp100 [V109,T71] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x4)" P-INDEP
;* V110 tmp101 [V110 ] ( 0, 0 ) long -> zero-ref "field V55._dateData (fldOffset=0x0)" P-INDEP
;* V111 tmp102 [V111 ] ( 0, 0 ) long -> zero-ref "field V56._dateData (fldOffset=0x0)" P-INDEP
-; V112 tmp103 [V112,T38] ( 3, 1.50) long -> [ebp-0x80] do-not-enreg[F] "field V58._ticks (fldOffset=0x0)" P-INDEP
-; V113 tmp104 [V113,T39] ( 3, 1.50) long -> [ebp-0x88] do-not-enreg[F] "field V70._dateData (fldOffset=0x0)" P-INDEP
-;* V114 cse0 [V114,T73] ( 0, 0 ) int -> zero-ref "CSE - conservative"
-; V115 cse1 [V115,T40] ( 3, 1.50) int -> ebx "CSE - conservative"
-; V116 cse2 [V116,T41] ( 3, 1.50) int -> ebx "CSE - conservative"
-; V117 cse3 [V117,T42] ( 3, 1.50) int -> ebx "CSE - conservative"
-; V118 cse4 [V118,T08] ( 6, 4 ) int -> ebx "CSE - moderate"
-; V119 rat0 [V119,T18] ( 4, 2 ) int -> eax "field V62.lo (fldOffset=0x0)" P-INDEP
-; V120 rat1 [V120,T19] ( 4, 2 ) int -> edx "field V62.hi (fldOffset=0x4)" P-INDEP
-; V121 rat2 [V121,T20] ( 4, 2 ) int -> eax "field V66.lo (fldOffset=0x0)" P-INDEP
-; V122 rat3 [V122,T21] ( 4, 2 ) int -> edx "field V66.hi (fldOffset=0x4)" P-INDEP
-; V123 rat4 [V123,T06] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
-; V124 rat5 [V124 ] ( 1, 1 ) long -> [ebp-0x90] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V125 rat6 [V125,T43] ( 2, 1.50) int -> ecx "field V124.lo (fldOffset=0x0)" P-INDEP
-; V126 rat7 [V126,T44] ( 2, 1.50) int -> edi "field V124.hi (fldOffset=0x4)" P-INDEP
-; V127 rat8 [V127 ] ( 1, 1 ) long -> [ebp-0x98] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V128 rat9 [V128,T45] ( 2, 1.50) int -> eax "field V127.lo (fldOffset=0x0)" P-INDEP
-; V129 rat10 [V129,T46] ( 2, 1.50) int -> edx "field V127.hi (fldOffset=0x4)" P-INDEP
-; V130 rat11 [V130 ] ( 1, 1 ) long -> [ebp-0xA0] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V131 rat12 [V131,T47] ( 2, 1.50) int -> ecx "field V130.lo (fldOffset=0x0)" P-INDEP
-; V132 rat13 [V132,T48] ( 2, 1.50) int -> edi "field V130.hi (fldOffset=0x4)" P-INDEP
-; V133 rat14 [V133 ] ( 1, 1 ) long -> [ebp-0xA8] multireg-ret "ReplaceWithLclVar is creating a new local variable"
-; V134 rat15 [V134,T49] ( 2, 1.50) int -> eax "field V133.lo (fldOffset=0x0)" P-INDEP
-; V135 rat16 [V135,T50] ( 2, 1.50) int -> edx "field V133.hi (fldOffset=0x4)" P-INDEP
+; V112 tmp103 [V112,T37] ( 3, 1.50) long -> [ebp-0x80] do-not-enreg[F] "field V58._ticks (fldOffset=0x0)" P-INDEP
+; V113 tmp104 [V113,T38] ( 3, 1.50) long -> [ebp-0x88] do-not-enreg[F] "field V70._dateData (fldOffset=0x0)" P-INDEP
+;* V114 cse0 [V114,T72] ( 0, 0 ) int -> zero-ref "CSE - conservative"
+; V115 cse1 [V115,T39] ( 3, 1.50) int -> ebx "CSE - conservative"
+; V116 cse2 [V116,T40] ( 3, 1.50) int -> ebx "CSE - conservative"
+; V117 cse3 [V117,T41] ( 3, 1.50) int -> ebx "CSE - conservative"
+; V118 rat0 [V118,T17] ( 4, 2 ) int -> eax "field V62.lo (fldOffset=0x0)" P-INDEP
+; V119 rat1 [V119,T18] ( 4, 2 ) int -> edx "field V62.hi (fldOffset=0x4)" P-INDEP
+; V120 rat2 [V120,T19] ( 4, 2 ) int -> eax "field V66.lo (fldOffset=0x0)" P-INDEP
+; V121 rat3 [V121,T20] ( 4, 2 ) int -> edx "field V66.hi (fldOffset=0x4)" P-INDEP
+; V122 rat4 [V122,T06] ( 3, 6 ) int -> eax "ReplaceWithLclVar is creating a new local variable"
+; V123 rat5 [V123 ] ( 1, 1 ) long -> [ebp-0x90] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V124 rat6 [V124,T42] ( 2, 1.50) int -> ecx "field V123.lo (fldOffset=0x0)" P-INDEP
+; V125 rat7 [V125,T43] ( 2, 1.50) int -> edi "field V123.hi (fldOffset=0x4)" P-INDEP
+; V126 rat8 [V126 ] ( 1, 1 ) long -> [ebp-0x98] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V127 rat9 [V127,T44] ( 2, 1.50) int -> eax "field V126.lo (fldOffset=0x0)" P-INDEP
+; V128 rat10 [V128,T45] ( 2, 1.50) int -> edx "field V126.hi (fldOffset=0x4)" P-INDEP
+; V129 rat11 [V129 ] ( 1, 1 ) long -> [ebp-0xA0] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V130 rat12 [V130,T46] ( 2, 1.50) int -> ecx "field V129.lo (fldOffset=0x0)" P-INDEP
+; V131 rat13 [V131,T47] ( 2, 1.50) int -> edi "field V129.hi (fldOffset=0x4)" P-INDEP
+; V132 rat14 [V132 ] ( 1, 1 ) long -> [ebp-0xA8] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+; V133 rat15 [V133,T48] ( 2, 1.50) int -> eax "field V132.lo (fldOffset=0x0)" P-INDEP
+; V134 rat16 [V134,T49] ( 2, 1.50) int -> edx "field V132.hi (fldOffset=0x4)" P-INDEP
; TEMP_01 int -> [ebp-0xAC]
;
; Lcl frame size = 160
@@ -426,8 +425,7 @@ G_M18003_IG15: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040
mov dword ptr [ebp-0x10], edx
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M18003_IG16: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
- mov ebx, dword ptr [ebp+0x10]
- mov eax, ebx
+ mov eax, dword ptr [ebp+0x10]
and eax, 0xD1FFAB1E
shr eax, 16
cmp eax, 3
@@ -437,20 +435,20 @@ G_M18003_IG16: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
lea ecx, G_M18003_IG02
add edx, ecx
jmp edx
- ;; size=41 bbWeight=1 PerfScore 9.00
+ ;; size=39 bbWeight=1 PerfScore 8.75
G_M18003_IG17: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
mov eax, dword ptr [ebp-0x14]
mov edx, dword ptr [ebp-0x10]
mov dword ptr [ebp-0x50], eax
mov dword ptr [ebp-0x4C], edx
- mov eax, ebx
+ mov eax, dword ptr [ebp+0x10]
and eax, 0xFF00
shr eax, 8
mov ecx, 0xE10
imul edx:eax, ecx
mov ecx, eax
mov edi, edx
- movzx eax, bl
+ movzx eax, byte ptr [ebp+0x10]
mov edx, 60
imul edx:eax, edx
add eax, ecx
@@ -477,13 +475,13 @@ G_M18003_IG17: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040
lea ecx, [ebp-0x20]
call [System.DateTimeOffset:.ctor(System.DateTime,System.TimeSpan):this]
jmp G_M18003_IG23
- ;; size=131 bbWeight=0.50 PerfScore 16.75
+ ;; size=133 bbWeight=0.50 PerfScore 17.50
G_M18003_IG18: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
mov eax, dword ptr [ebp-0x14]
mov edx, dword ptr [ebp-0x10]
mov dword ptr [ebp-0x60], eax
mov dword ptr [ebp-0x5C], edx
- mov eax, ebx
+ mov eax, dword ptr [ebp+0x10]
and eax, 0xFF00
shr eax, 8
neg eax
@@ -491,7 +489,7 @@ G_M18003_IG18: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040
imul edx:eax, ecx
mov ecx, eax
mov edi, edx
- movzx eax, bl
+ movzx eax, byte ptr [ebp+0x10]
...
+4 (+0.19%) : 1360.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[System.Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],System.Func
3[System.Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 this [V00,T09] ( 9, 9 ) ref -> [ebp-0x10C] this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]>
; V01 arg1 [V01,T08] ( 16, 9 ) ref -> esi class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
-; V02 arg2 [V02,T01] ( 40, 23.50) ref -> ebx class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V02 arg2 [V02,T02] ( 40, 23.50) ref -> ebx class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
; V03 arg3 [V03,T18] ( 8, 7.50) ref -> [ebp+0x0C] class-hnd single-def <System.Func`3[System.__Canon,System.__Canon,ulong]>
; V04 TypeCtx [V04,T15] ( 12, 8.96) int -> [ebp+0x08] single-def
;* V05 loc0 [V05 ] ( 0, 0 ) int -> zero-ref
@@ -31,7 +31,7 @@
;* V20 tmp10 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V22 tmp12 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V23 tmp13 [V23,T84] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V23 tmp13 [V23,T81] ( 2, 1 ) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V24 tmp14 [V24,T86] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V25 tmp15 [V25 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V26 tmp16 [V26,T87] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -43,7 +43,7 @@
;* V32 tmp22 [V32 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V33 tmp23 [V33,T25] ( 5, 2.50) ref -> [ebp-0x11C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V34 tmp24 [V34,T10] ( 10, 10 ) ref -> [ebp-0x120] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V35 tmp25 [V35,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V35 tmp25 [V35,T83] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V36 tmp26 [V36,T30] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V37 tmp27 [V37,T20] ( 7, 7 ) struct (32) [ebp-0x40] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V38 tmp28 [V38,T71] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
@@ -61,7 +61,7 @@
;* V50 tmp40 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V53 tmp43 [V53,T85] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V53 tmp43 [V53,T82] ( 2, 1 ) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V54 tmp44 [V54,T88] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V55 tmp45 [V55 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V56 tmp46 [V56,T89] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -73,7 +73,7 @@
;* V62 tmp52 [V62 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V63 tmp53 [V63,T26] ( 5, 2.50) ref -> [ebp-0x124] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V64 tmp54 [V64,T11] ( 10, 10 ) ref -> [ebp-0x128] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V65 tmp55 [V65,T82] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V65 tmp55 [V65,T84] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V66 tmp56 [V66,T32] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V67 tmp57 [V67,T22] ( 7, 7 ) struct (32) [ebp-0x88] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V68 tmp58 [V68,T73] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
@@ -105,7 +105,7 @@
;* V94 tmp84 [V94 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V95 tmp85 [V95,T44] ( 4, 2 ) ref -> [ebp-0x12C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V96 tmp86 [V96,T12] ( 10, 10 ) ref -> [ebp-0x130] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V97 tmp87 [V97,T83] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V97 tmp87 [V97,T85] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V98 tmp88 [V98,T35] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V99 tmp89 [V99,T16] ( 8, 8 ) struct (32) [ebp-0xD0] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V100 tmp90 [V100,T76] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
@@ -118,9 +118,9 @@
;* V107 tmp97 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V108 tmp98 [V108 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V109 tmp99 [V109,T04] ( 19, 19 ) ref -> eax "Single return block return value"
-; V110 tmp100 [V110,T27] ( 6, 3 ) int -> esi "field V28._info (fldOffset=0x0)" P-INDEP
+; V110 tmp100 [V110,T27] ( 6, 3 ) int -> edi "field V28._info (fldOffset=0x0)" P-INDEP
;* V111 tmp101 [V111 ] ( 0, 0 ) int -> zero-ref "field V39._info (fldOffset=0x0)" P-INDEP
-; V112 tmp102 [V112,T28] ( 6, 3 ) int -> esi "field V58._info (fldOffset=0x0)" P-INDEP
+; V112 tmp102 [V112,T28] ( 6, 3 ) int -> edi "field V58._info (fldOffset=0x0)" P-INDEP
;* V113 tmp103 [V113 ] ( 0, 0 ) int -> zero-ref "field V69._info (fldOffset=0x0)" P-INDEP
; V114 tmp104 [V114,T29] ( 6, 3 ) int -> edi "field V94._info (fldOffset=0x0)" P-INDEP
;* V115 tmp105 [V115 ] ( 0, 0 ) int -> zero-ref "field V101._info (fldOffset=0x0)" P-INDEP
@@ -150,7 +150,7 @@
; V139 tmp129 [V139,T65] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V140 tmp130 [V140,T66] ( 2, 2 ) ref -> [ebp-0x134] spill-single-def "argument with side effect"
; V141 tmp131 [V141,T67] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V142 tmp132 [V142,T02] ( 3, 24 ) ref -> edx "arr expr"
+; V142 tmp132 [V142,T01] ( 3, 24 ) ref -> edx "arr expr"
; V143 tmp133 [V143,T06] ( 2, 16 ) ref -> edx "argument with side effect"
; V144 cse0 [V144,T07] ( 3, 12 ) int -> edx "CSE - moderate"
; V145 cse1 [V145,T78] ( 3, 1.50) ref -> eax "CSE - conservative"
@@ -161,19 +161,19 @@
; V150 rat4 [V150,T58] ( 3, 2 ) int -> edx "runtime lookup"
; V151 rat5 [V151,T43] ( 3, 2.80) int -> ecx "spilling expr"
; V152 rat6 [V152,T46] ( 3, 2.24) int -> edx "fgMakeTemp is creating a new local variable"
-;* V153 rat7 [V153,T90] ( 0, 0 ) int -> zero-ref "field V25.lo (fldOffset=0x0)" P-INDEP
-;* V154 rat8 [V154,T91] ( 0, 0 ) int -> zero-ref "field V25.hi (fldOffset=0x4)" P-INDEP
+;* V153 rat7 [V153 ] ( 0, 0 ) int -> zero-ref "field V25.lo (fldOffset=0x0)" P-INDEP
+;* V154 rat8 [V154 ] ( 0, 0 ) int -> zero-ref "field V25.hi (fldOffset=0x4)" P-INDEP
;* V155 rat9 [V155 ] ( 0, 0 ) int -> zero-ref "field V27.lo (fldOffset=0x0)" P-INDEP
;* V156 rat10 [V156 ] ( 0, 0 ) int -> zero-ref "field V27.hi (fldOffset=0x4)" P-INDEP
-; V157 rat11 [V157,T50] ( 4, 2 ) int -> edi "field V30.lo (fldOffset=0x0)" P-INDEP
+; V157 rat11 [V157,T50] ( 4, 2 ) int -> esi "field V30.lo (fldOffset=0x0)" P-INDEP
; V158 rat12 [V158,T51] ( 4, 2 ) int -> [ebp-0xF4] spill-single-def "field V30.hi (fldOffset=0x4)" P-INDEP
;* V159 rat13 [V159 ] ( 0, 0 ) int -> zero-ref "field V31.lo (fldOffset=0x0)" P-INDEP
;* V160 rat14 [V160 ] ( 0, 0 ) int -> zero-ref "field V31.hi (fldOffset=0x4)" P-INDEP
-;* V161 rat15 [V161,T92] ( 0, 0 ) int -> zero-ref "field V55.lo (fldOffset=0x0)" P-INDEP
-;* V162 rat16 [V162,T93] ( 0, 0 ) int -> zero-ref "field V55.hi (fldOffset=0x4)" P-INDEP
+;* V161 rat15 [V161 ] ( 0, 0 ) int -> zero-ref "field V55.lo (fldOffset=0x0)" P-INDEP
+;* V162 rat16 [V162 ] ( 0, 0 ) int -> zero-ref "field V55.hi (fldOffset=0x4)" P-INDEP
;* V163 rat17 [V163 ] ( 0, 0 ) int -> zero-ref "field V57.lo (fldOffset=0x0)" P-INDEP
;* V164 rat18 [V164 ] ( 0, 0 ) int -> zero-ref "field V57.hi (fldOffset=0x4)" P-INDEP
-; V165 rat19 [V165,T52] ( 4, 2 ) int -> edi "field V60.lo (fldOffset=0x0)" P-INDEP
+; V165 rat19 [V165,T52] ( 4, 2 ) int -> esi "field V60.lo (fldOffset=0x0)" P-INDEP
; V166 rat20 [V166,T53] ( 4, 2 ) int -> [ebp-0xF8] spill-single-def "field V60.hi (fldOffset=0x4)" P-INDEP
;* V167 rat21 [V167 ] ( 0, 0 ) int -> zero-ref "field V61.lo (fldOffset=0x0)" P-INDEP
;* V168 rat22 [V168 ] ( 0, 0 ) int -> zero-ref "field V61.hi (fldOffset=0x4)" P-INDEP
@@ -341,6 +341,8 @@ G_M44013_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
; gcrRegs +[eax]
test eax, eax
jne G_M44013_IG25
+ mov esi, ebx
+ ; gcrRegs +[esi]
push 0
push 0
push 1
@@ -351,25 +353,25 @@ G_M44013_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
mov edx, 1
call [<unknown method>]
; gcrRegs -[eax]
- mov esi, eax
+ mov edi, eax
push 0
push 0
- mov ecx, ebx
+ mov ecx, esi
; gcrRegs +[ecx]
mov edx, 5
call [<unknown method>]
- ; gcrRegs -[ecx]
- mov edi, eax
+ ; gcrRegs -[ecx esi]
+ mov esi, eax
mov eax, edx
mov dword ptr [ebp-0xF4], edx
mov ecx, gword ptr [ebx+0x54]
; gcrRegs +[ecx]
- mov dword ptr [ebp-0x40], edi
+ mov dword ptr [ebp-0x40], esi
mov dword ptr [ebp-0x3C], eax
mov dword ptr [ebp-0x30], 5
mov dword ptr [ebp-0x2C], -1
mov dword ptr [ebp-0x28], -1
- mov dword ptr [ebp-0x24], esi
+ mov dword ptr [ebp-0x24], edi
cmp byte ptr [ecx], cl
push dword ptr [ebp-0x24]
push dword ptr [ebp-0x28]
@@ -384,12 +386,12 @@ G_M44013_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
; byrRegs +[eax]
test eax, eax
je SHORT G_M44013_IG19
- mov esi, gword ptr [eax]
- ; gcrRegs +[esi]
+ mov edi, gword ptr [eax]
+ ; gcrRegs +[edi]
jmp G_M44013_IG24
- ;; size=141 bbWeight=0.50 PerfScore 23.62
+ ;; size=143 bbWeight=0.50 PerfScore 23.75
G_M44013_IG19: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[esi]
+ ; gcrRegs -[edi]
; byrRegs -[eax]
mov ecx, 0xD1FFAB1E ; System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
call CORINFO_HELP_NEWSFAST
@@ -408,13 +410,13 @@ G_M44013_IG20: ; bbWeight=0.50, gcVars=000000000000000000000400 {V34}, gc
mov dword ptr [eax+0x20], -1
lea ecx, bword ptr [eax+0x04]
; byrRegs +[ecx]
- mov dword ptr [ecx], edi
+ mov dword ptr [ecx], esi
mov edx, dword ptr [ebp-0xF4]
mov dword ptr [ecx+0x04], edx
- mov dword ptr [eax+0x24], esi
- test esi, 32
+ mov dword ptr [eax+0x24], edi
+ test edi, 32
je SHORT G_M44013_IG21
- test esi, 8
+ test edi, 8
jne SHORT G_M44013_IG22
;; size=50 bbWeight=0.50 PerfScore 5.00
G_M44013_IG21: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
@@ -444,13 +446,13 @@ G_M44013_IG23: ; bbWeight=0.50, gcrefRegs=0000000A {ecx ebx}, byrefRegs=0
; byrRegs -[edx]
mov ecx, gword ptr [ebx+0x54]
; gcrRegs +[ecx]
- mov dword ptr [ebp-0x60], edi
- mov edi, dword ptr [ebp-0xF4]
- mov dword ptr [ebp-0x5C], edi
+ mov dword ptr [ebp-0x60], esi
+ mov esi, dword ptr [ebp-0xF4]
+ mov dword ptr [ebp-0x5C], esi
mov dword ptr [ebp-0x50], 5
mov dword ptr [ebp-0x4C], -1
mov dword ptr [ebp-0x48], -1
- mov dword ptr [ebp-0x44], esi
+ mov dword ptr [ebp-0x44], edi
cmp byte ptr [ecx], cl
push dword ptr [ebp-0x44]
push dword ptr [ebp-0x48]
@@ -476,37 +478,39 @@ G_M44013_IG23: ; bbWeight=0.50, gcrefRegs=0000000A {ecx ebx}, byrefRegs=0
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- mov esi, gword ptr [ebp-0x11C]
- ; gcrRegs +[esi]
+ mov edi, gword ptr [ebp-0x11C]
+ ; gcrRegs +[edi]
;; size=121 bbWeight=0.50 PerfScore 16.75
-G_M44013_IG24: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M44013_IG24: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
; GC ptr vars -{V33}
lea edx, bword ptr [ebx+0x30]
; byrRegs +[edx]
- call CORINFO_HELP_ASSIGN_REF_ESI
+ call CORINFO_HELP_ASSIGN_REF_EDI
; gcrRegs -[ebx]
; byrRegs -[edx]
- mov eax, esi
+ mov eax, edi
; gcrRegs +[eax]
;; size=10 bbWeight=0.50 PerfScore 0.88
G_M44013_IG25: ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[esi]
+ ; gcrRegs -[edi]
jmp G_M44013_IG52
;; size=5 bbWeight=0.50 PerfScore 1.00
G_M44013_IG26: ; bbWeight=0.25, gcVars=000000000000000002000000 {V33}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[ebx]
; GC ptr vars +{V33}
- mov esi, gword ptr [ebp-0x11C]
- ; gcrRegs +[esi]
+ mov edi, gword ptr [ebp-0x11C]
+ ; gcrRegs +[edi]
jmp SHORT G_M44013_IG24
;; size=8 bbWeight=0.25 PerfScore 0.75
G_M44013_IG27: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[esi]
+ ; gcrRegs -[edi]
; GC ptr vars -{V33}
mov eax, gword ptr [ebx+0x34]
; gcrRegs +[eax]
test eax, eax
jne G_M44013_IG34
+ mov esi, ebx
+ ; gcrRegs +[esi]
push 0
push 0
push 1
@@ -517,25 +521,25 @@ G_M44013_IG27: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcref
mov edx, 1
call [<unknown method>]
; gcrRegs -[eax]
- mov esi, eax
+ mov edi, eax
...
+40 (+0.57%) : 1293.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
@@ -30,11 +30,11 @@
; V19 loc17 [V19,T198] ( 3, 8 ) ubyte -> ecx
;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V21 loc19 [V21,T178] ( 3, 10 ) ref -> [ebp-0x2AC] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T301] ( 2, 0.50) ref -> ebx class-hnd exact <System.String>
-; V23 loc21 [V23,T302] ( 10, 0 ) ref -> esi class-hnd <System.String>
-; V24 loc22 [V24,T299] ( 6, 1.50) ubyte -> eax
+; V22 loc20 [V22,T297] ( 2, 0.50) ref -> ebx class-hnd exact <System.String>
+; V23 loc21 [V23,T298] ( 10, 0 ) ref -> esi class-hnd <System.String>
+; V24 loc22 [V24,T295] ( 6, 1.50) ubyte -> eax
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T63] ( 2, 36 ) ref -> edi class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T59] ( 2, 36 ) ref -> edi class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> ebx
;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V29 loc27 [V29,T66] ( 6, 24 ) ref -> edi class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -52,7 +52,7 @@
; V41 tmp4 [V41,T20] ( 3, 96 ) ref -> [ebp-0x2B4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
; V42 tmp5 [V42,T13] ( 2,128 ) ref -> [ebp-0x2B8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
;* V43 tmp6 [V43 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V44 tmp7 [V44,T303] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V44 tmp7 [V44,T299] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
; V45 tmp8 [V45,T04] ( 4,160 ) ref -> [ebp-0x2BC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
; V46 tmp9 [V46,T77] ( 4, 24 ) ref -> ebx class-hnd exact "impAppendStmt" <<unknown class>>
;* V47 tmp10 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]>
@@ -71,10 +71,10 @@
;* V60 tmp23 [V60 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V61 tmp24 [V61,T33] ( 14, 64 ) ref -> [ebp-0x2C4]
; V62 tmp25 [V62,T67] ( 6, 24 ) ref -> edi
-; V63 tmp26 [V63,T240] ( 3, 2 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V63 tmp26 [V63,T244] ( 3, 2 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V64 tmp27 [V64,T226] ( 3, 5 ) int -> eax "Inlining Arg"
-; V65 tmp28 [V65,T237] ( 4, 3 ) int -> [ebp-0x20] spill-single-def "Inline stloc first use temp"
-; V66 tmp29 [V66,T239] ( 3, 2.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp28 [V65,T241] ( 4, 3 ) int -> [ebp-0x20] spill-single-def "Inline stloc first use temp"
+; V66 tmp29 [V66,T243] ( 3, 2.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V67 tmp30 [V67 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V68 tmp31 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V69 tmp32 [V69,T97] ( 3, 20 ) ref -> edi class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
@@ -93,14 +93,14 @@
;* V82 tmp45 [V82 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V83 tmp46 [V83,T142] ( 5, 10 ) ref -> [ebp-0x2CC] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V84 tmp47 [V84,T48] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V85 tmp48 [V85,T228] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V85 tmp48 [V85,T232] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V86 tmp49 [V86,T157] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V87 tmp50 [V87,T87] ( 5, 20 ) struct (28) [ebp-0x40] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V88 tmp51 [V88,T212] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V89 tmp52 [V89 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V90 tmp53 [V90,T243] ( 0, 0 ) ref -> zero-ref
+;* V90 tmp53 [V90,T247] ( 0, 0 ) ref -> zero-ref
;* V91 tmp54 [V91 ] ( 0, 0 ) ref -> zero-ref
-;* V92 tmp55 [V92,T244] ( 0, 0 ) ref -> zero-ref
+;* V92 tmp55 [V92,T248] ( 0, 0 ) ref -> zero-ref
; V93 tmp56 [V93,T158] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V94 tmp57 [V94,T88] ( 5, 20 ) struct (28) [ebp-0x5C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V95 tmp58 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -122,14 +122,14 @@
;* V111 tmp74 [V111 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V112 tmp75 [V112,T143] ( 5, 10 ) ref -> [ebp-0x2D4] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V113 tmp76 [V113,T49] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V114 tmp77 [V114,T229] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V114 tmp77 [V114,T233] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V115 tmp78 [V115,T159] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V116 tmp79 [V116,T89] ( 5, 20 ) struct (28) [ebp-0x7C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V117 tmp80 [V117,T213] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V118 tmp81 [V118 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V119 tmp82 [V119,T245] ( 0, 0 ) ref -> zero-ref
+;* V119 tmp82 [V119,T249] ( 0, 0 ) ref -> zero-ref
;* V120 tmp83 [V120 ] ( 0, 0 ) ref -> zero-ref
-;* V121 tmp84 [V121,T246] ( 0, 0 ) ref -> zero-ref
+;* V121 tmp84 [V121,T250] ( 0, 0 ) ref -> zero-ref
; V122 tmp85 [V122,T160] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V123 tmp86 [V123,T90] ( 5, 20 ) struct (28) [ebp-0x98] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V124 tmp87 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -154,14 +154,14 @@
;* V143 tmp106 [V143 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V144 tmp107 [V144,T144] ( 5, 10 ) ref -> [ebp-0x2DC] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V145 tmp108 [V145,T50] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V146 tmp109 [V146,T230] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V146 tmp109 [V146,T234] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V147 tmp110 [V147,T161] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V148 tmp111 [V148,T91] ( 5, 20 ) struct (28) [ebp-0xB8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V149 tmp112 [V149,T214] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V150 tmp113 [V150 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V151 tmp114 [V151,T247] ( 0, 0 ) ref -> zero-ref
+;* V151 tmp114 [V151,T251] ( 0, 0 ) ref -> zero-ref
;* V152 tmp115 [V152 ] ( 0, 0 ) ref -> zero-ref
-;* V153 tmp116 [V153,T248] ( 0, 0 ) ref -> zero-ref
+;* V153 tmp116 [V153,T252] ( 0, 0 ) ref -> zero-ref
; V154 tmp117 [V154,T162] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V155 tmp118 [V155,T92] ( 5, 20 ) struct (28) [ebp-0xD4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V156 tmp119 [V156 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -201,14 +201,14 @@
; V190 tmp153 [V190,T15] ( 2,128 ) ref -> eax "CASTCLASS eval op1"
;* V191 tmp154 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V192 tmp155 [V192,T26] ( 4, 76 ) ref -> eax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V193 tmp156 [V193,T61] ( 3, 36 ) ref -> [ebp-0x2EC] spill-single-def "CASTCLASS eval op1"
+; V193 tmp156 [V193,T57] ( 3, 36 ) ref -> [ebp-0x2EC] spill-single-def "CASTCLASS eval op1"
; V194 tmp157 [V194,T100] ( 3, 20 ) int -> edx "fgMakeTemp is creating a new local variable"
; V195 tmp158 [V195,T28] ( 6, 76 ) ref -> eax class-hnd "spilling QMark2" <<unknown class>>
; V196 tmp159 [V196,T41] ( 3, 48 ) ref -> ecx class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V197 tmp160 [V197,T16] ( 2,128 ) ref -> ecx "CASTCLASS eval op1"
;* V198 tmp161 [V198 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V199 tmp162 [V199,T27] ( 4, 76 ) ref -> ecx class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V200 tmp163 [V200,T62] ( 3, 36 ) ref -> [ebp-0x2F0] spill-single-def "CASTCLASS eval op1"
+; V200 tmp163 [V200,T58] ( 3, 36 ) ref -> [ebp-0x2F0] spill-single-def "CASTCLASS eval op1"
; V201 tmp164 [V201,T101] ( 3, 20 ) int -> ecx "fgMakeTemp is creating a new local variable"
; V202 tmp165 [V202,T29] ( 6, 76 ) ref -> [ebp-0x2F4] class-hnd "spilling QMark2" <<unknown class>>
; V203 tmp166 [V203,T42] ( 3, 48 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
@@ -233,14 +233,14 @@
;* V222 tmp185 [V222 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V223 tmp186 [V223,T145] ( 5, 10 ) ref -> [ebp-0x300] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V224 tmp187 [V224,T51] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V225 tmp188 [V225,T231] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V225 tmp188 [V225,T235] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V226 tmp189 [V226,T163] ( 3, 12 ) ref -> edx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V227 tmp190 [V227,T93] ( 5, 20 ) struct (28) [ebp-0x138] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V228 tmp191 [V228,T215] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V229 tmp192 [V229 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V230 tmp193 [V230,T249] ( 0, 0 ) ref -> zero-ref
+;* V230 tmp193 [V230,T253] ( 0, 0 ) ref -> zero-ref
;* V231 tmp194 [V231 ] ( 0, 0 ) ref -> zero-ref
-;* V232 tmp195 [V232,T250] ( 0, 0 ) ref -> zero-ref
+;* V232 tmp195 [V232,T254] ( 0, 0 ) ref -> zero-ref
; V233 tmp196 [V233,T164] ( 3, 12 ) ref -> eax class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V234 tmp197 [V234,T94] ( 5, 20 ) struct (28) [ebp-0x154] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V235 tmp198 [V235 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -261,38 +261,38 @@
;* V250 tmp213 [V250 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V251 tmp214 [V251,T146] ( 5, 10 ) ref -> [ebp-0x30C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V252 tmp215 [V252,T52] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V253 tmp216 [V253,T232] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V253 tmp216 [V253,T236] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V254 tmp217 [V254,T165] ( 3, 12 ) ref -> edx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V255 tmp218 [V255,T95] ( 5, 20 ) struct (28) [ebp-0x174] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V256 tmp219 [V256,T216] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V257 tmp220 [V257 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V258 tmp221 [V258,T251] ( 0, 0 ) ref -> zero-ref
+;* V258 tmp221 [V258,T255] ( 0, 0 ) ref -> zero-ref
;* V259 tmp222 [V259 ] ( 0, 0 ) ref -> zero-ref
-;* V260 tmp223 [V260,T252] ( 0, 0 ) ref -> zero-ref
+;* V260 tmp223 [V260,T256] ( 0, 0 ) ref -> zero-ref
; V261 tmp224 [V261,T166] ( 3, 12 ) ref -> eax class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V262 tmp225 [V262,T96] ( 5, 20 ) struct (28) [ebp-0x190] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V263 tmp226 [V263 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V264 tmp227 [V264 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V265 tmp228 [V265 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V266 tmp229 [V266,T57] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V266 tmp229 [V266,T60] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V267 tmp230 [V267,T111] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V268 tmp231 [V268,T138] ( 4, 14 ) ref -> edx
;* V269 tmp232 [V269 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V270 tmp233 [V270 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V271 tmp234 [V271 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V272 tmp235 [V272,T253] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V273 tmp236 [V273,T271] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V274 tmp237 [V274,T254] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V275 tmp238 [V275,T272] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V272 tmp235 [V272,T228] ( 2, 4 ) ref -> [ebp-0x310] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V273 tmp236 [V273,T267] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V274 tmp237 [V274 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V275 tmp238 [V275,T268] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V276 tmp239 [V276 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V277 tmp240 [V277 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V278 tmp241 [V278 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V279 tmp242 [V279,T185] ( 4, 8 ) ref -> [ebp-0x310] spill-single-def
+; V279 tmp242 [V279,T185] ( 4, 8 ) ref -> [ebp-0x314] spill-single-def
;* V280 tmp243 [V280 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V281 tmp244 [V281 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V282 tmp245 [V282,T147] ( 5, 10 ) ref -> [ebp-0x314] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V283 tmp246 [V283,T53] ( 10, 40 ) ref -> [ebp-0x318] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V284 tmp247 [V284,T233] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V282 tmp245 [V282,T147] ( 5, 10 ) ref -> [ebp-0x318] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V283 tmp246 [V283,T53] ( 10, 40 ) ref -> [ebp-0x31C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V284 tmp247 [V284,T237] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V285 tmp248 [V285,T167] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V286 tmp249 [V286,T68] ( 6, 24 ) struct (28) [ebp-0x1AC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V287 tmp250 [V287,T217] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -305,25 +305,25 @@
;* V294 tmp257 [V294 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V295 tmp258 [V295 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V296 tmp259 [V296 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V297 tmp260 [V297,T58] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V297 tmp260 [V297,T61] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V298 tmp261 [V298,T112] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V299 tmp262 [V299,T139] ( 4, 14 ) ref -> edx
;* V300 tmp263 [V300 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V301 tmp264 [V301 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V302 tmp265 [V302 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V303 tmp266 [V303,T255] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V304 tmp267 [V304,T273] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V305 tmp268 [V305,T256] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V306 tmp269 [V306,T274] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V303 tmp266 [V303,T229] ( 2, 4 ) ref -> [ebp-0x320] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V304 tmp267 [V304,T269] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V305 tmp268 [V305 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V306 tmp269 [V306,T270] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V307 tmp270 [V307 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V308 tmp271 [V308 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V309 tmp272 [V309 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V310 tmp273 [V310,T186] ( 4, 8 ) ref -> [ebp-0x31C] spill-single-def
+; V310 tmp273 [V310,T186] ( 4, 8 ) ref -> [ebp-0x324] spill-single-def
;* V311 tmp274 [V311 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V312 tmp275 [V312 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V313 tmp276 [V313,T148] ( 5, 10 ) ref -> [ebp-0x320] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V314 tmp277 [V314,T54] ( 10, 40 ) ref -> [ebp-0x324] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V315 tmp278 [V315,T234] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V313 tmp276 [V313,T148] ( 5, 10 ) ref -> [ebp-0x328] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V314 tmp277 [V314,T54] ( 10, 40 ) ref -> [ebp-0x32C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V315 tmp278 [V315,T238] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V316 tmp279 [V316,T169] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V317 tmp280 [V317,T70] ( 6, 24 ) struct (28) [ebp-0x1E4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V318 tmp281 [V318,T219] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -336,25 +336,25 @@
;* V325 tmp288 [V325 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V326 tmp289 [V326 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V327 tmp290 [V327 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V328 tmp291 [V328,T59] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V328 tmp291 [V328,T62] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V329 tmp292 [V329,T113] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V330 tmp293 [V330,T140] ( 4, 14 ) ref -> edx
;* V331 tmp294 [V331 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V332 tmp295 [V332 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V333 tmp296 [V333 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V334 tmp297 [V334,T257] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V335 tmp298 [V335,T275] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V336 tmp299 [V336,T258] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V337 tmp300 [V337,T276] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V334 tmp297 [V334,T230] ( 2, 4 ) ref -> [ebp-0x330] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V335 tmp298 [V335,T271] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V336 tmp299 [V336 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V337 tmp300 [V337,T272] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V338 tmp301 [V338 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V339 tmp302 [V339 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V340 tmp303 [V340 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V341 tmp304 [V341,T187] ( 4, 8 ) ref -> [ebp-0x328] spill-single-def
+; V341 tmp304 [V341,T187] ( 4, 8 ) ref -> [ebp-0x334] spill-single-def
;* V342 tmp305 [V342 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V343 tmp306 [V343 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V344 tmp307 [V344,T149] ( 5, 10 ) ref -> [ebp-0x32C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V345 tmp308 [V345,T55] ( 10, 40 ) ref -> [ebp-0x330] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V346 tmp309 [V346,T235] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V344 tmp307 [V344,T149] ( 5, 10 ) ref -> [ebp-0x338] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V345 tmp308 [V345,T55] ( 10, 40 ) ref -> [ebp-0x33C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V346 tmp309 [V346,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V347 tmp310 [V347,T171] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V348 tmp311 [V348,T72] ( 6, 24 ) struct (28) [ebp-0x21C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V349 tmp312 [V349,T221] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -367,25 +367,25 @@
...
benchmarks.run_pgo.windows.x86.checked.mch
-21 (-40.38%) : 743.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
@@ -6,39 +6,28 @@
; Final local variable assignments
;
; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [ebp-0x08] do-not-enreg[]
-; TEMP_01 byref -> [ebp-0x0C]
;
-; Lcl frame size = 12
+; Lcl frame size = 8
G_M18678_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- sub esp, 12
- xor eax, eax
- mov dword ptr [ebp-0x0C], eax
+ sub esp, 8
mov dword ptr [ebp-0x04], ecx
mov dword ptr [ebp-0x08], ecx
- ;; size=17 bbWeight=1 PerfScore 4.75
+ ;; size=12 bbWeight=1 PerfScore 3.50
G_M18678_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, dword ptr [ebp-0x08]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[eax]
- mov bword ptr [ebp-0x0C], eax
- mov eax, 512
- ; byrRegs -[eax]
- mov ecx, 4
- xor edx, edx
- div edx:eax, ecx
- mov edx, bword ptr [ebp-0x0C]
- ; byrRegs +[edx]
- mov dword ptr [edx+0x04], eax
- ;; size=31 bbWeight=1 PerfScore 30.75
+ mov dword ptr [eax+0x04], 128
+ ;; size=15 bbWeight=1 PerfScore 3.00
G_M18678_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 14, PerfScore 37.25, instruction count 19, allocated bytes for code 52 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
+; Total bytes of code 31, prolog size 9, PerfScore 8.25, instruction count 11, allocated bytes for code 31 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
; ============================================================
-22 (-22.00%) : 13900.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
@@ -19,22 +19,14 @@ G_M35788_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
mov dword ptr [ebp-0x08], edx
;; size=12 bbWeight=1 PerfScore 3.50
G_M35788_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 1
- mov edx, 4
- shl edx, 2
- mov ecx, 8
- shl ecx, 2
- dec ecx
- and ecx, edx
- shl eax, cl
- mov dword ptr [ebp-0x0C], eax
+ mov dword ptr [ebp-0x0C], 0x10000
mov eax, dword ptr [ebp-0x08]
cmp eax, dword ptr [ebp-0x0C]
jae SHORT G_M35788_IG03
mov eax, dword ptr [ebp-0x04]
cmp eax, dword ptr [ebp-0x0C]
jb SHORT G_M35788_IG04
- ;; size=45 bbWeight=1 PerfScore 13.25
+ ;; size=23 bbWeight=1 PerfScore 9.00
G_M35788_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
cmp dword ptr [ebp-0x08], 0
je SHORT G_M35788_IG04
@@ -62,6 +54,6 @@ G_M35788_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 100, prolog size 6, PerfScore 62.50, instruction count 36, allocated bytes for code 100 (MethodHash=0ddb7433) for method System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
+; Total bytes of code 78, prolog size 6, PerfScore 58.25, instruction count 28, allocated bytes for code 78 (MethodHash=0ddb7433) for method System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
; ============================================================
-15 (-19.74%) : 4543.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
@@ -19,22 +19,18 @@ G_M36683_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
call [<unknown method>]
test eax, eax
je SHORT G_M36683_IG04
- mov eax, 1
- mov ecx, 4
+ mov eax, bword ptr [ebp-0x04]
+ ; byrRegs +[eax]
+ mov eax, dword ptr [eax+0x04]
+ ; byrRegs -[eax]
xor edx, edx
- div edx:eax, ecx
- mov edx, bword ptr [ebp-0x04]
- ; byrRegs +[edx]
- imul eax, dword ptr [edx+0x04]
- mov edx, eax
- ; byrRegs -[edx]
mov eax, bword ptr [ebp-0x04]
; byrRegs +[eax]
mov ecx, bword ptr [eax]
; byrRegs +[ecx]
call [<unknown method>]
; byrRegs -[eax ecx]
- ;; size=44 bbWeight=1 PerfScore 42.25
+ ;; size=29 bbWeight=1 PerfScore 13.50
G_M36683_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
@@ -56,6 +52,6 @@ G_M36683_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 76, prolog size 4, PerfScore 58.00, instruction count 28, allocated bytes for code 76 (MethodHash=0cfe70b4) for method System.Span`1[ubyte]:Clear():this (Tier0)
+; Total bytes of code 61, prolog size 4, PerfScore 29.25, instruction count 24, allocated bytes for code 61 (MethodHash=0cfe70b4) for method System.Span`1[ubyte]:Clear():this (Tier0)
; ============================================================
+4 (+0.22%) : 22216.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder
1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
@@ -30,7 +30,7 @@
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V21 tmp14 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V22 tmp15 [V22,T60] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V22 tmp15 [V22,T57] ( 2, 1 ) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V23 tmp16 [V23,T62] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V24 tmp17 [V24 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V25 tmp18 [V25,T63] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -42,7 +42,7 @@
;* V31 tmp24 [V31 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V32 tmp25 [V32,T28] ( 5, 2 ) ref -> [ebp-0xF8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V33 tmp26 [V33,T04] ( 10, 10 ) ref -> [ebp-0xFC] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V34 tmp27 [V34,T57] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V34 tmp27 [V34,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V35 tmp28 [V35,T18] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V36 tmp29 [V36,T12] ( 7, 7 ) struct (32) [ebp-0x34] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V37 tmp30 [V37,T50] ( 3, 1 ) byref -> eax single-def "Inline stloc first use temp"
@@ -60,7 +60,7 @@
;* V49 tmp42 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V50 tmp43 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V51 tmp44 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V52 tmp45 [V52,T61] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V52 tmp45 [V52,T58] ( 2, 1 ) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V53 tmp46 [V53,T64] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V54 tmp47 [V54 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V55 tmp48 [V55,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -72,7 +72,7 @@
;* V61 tmp54 [V61 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V62 tmp55 [V62,T29] ( 5, 2 ) ref -> [ebp-0x104] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V63 tmp56 [V63,T05] ( 10, 10 ) ref -> [ebp-0x108] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V64 tmp57 [V64,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V64 tmp57 [V64,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V65 tmp58 [V65,T20] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V66 tmp59 [V66,T14] ( 7, 7 ) struct (32) [ebp-0x7C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V67 tmp60 [V67,T52] ( 3, 1 ) byref -> eax single-def "Inline stloc first use temp"
@@ -94,7 +94,7 @@
;* V83 tmp76 [V83 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V84 tmp77 [V84,T33] ( 4, 1.50) ref -> [ebp-0x110] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V85 tmp78 [V85,T06] ( 10, 10 ) ref -> [ebp-0x114] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V86 tmp79 [V86,T59] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V86 tmp79 [V86,T61] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V87 tmp80 [V87,T22] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V88 tmp81 [V88,T08] ( 8, 8 ) struct (32) [ebp-0xC4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V89 tmp82 [V89,T54] ( 3, 1 ) byref -> eax single-def "Inline stloc first use temp"
@@ -137,16 +137,16 @@
; V126 tmp119 [V126,T46] ( 2, 2 ) ref -> edi single-def "argument with side effect"
; V127 tmp120 [V127,T47] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V128 cse0 [V128,T49] ( 3, 1.50) ref -> eax "CSE - conservative"
-;* V129 rat0 [V129,T66] ( 0, 0 ) int -> zero-ref "field V24.lo (fldOffset=0x0)" P-INDEP
-;* V130 rat1 [V130,T67] ( 0, 0 ) int -> zero-ref "field V24.hi (fldOffset=0x4)" P-INDEP
+;* V129 rat0 [V129 ] ( 0, 0 ) int -> zero-ref "field V24.lo (fldOffset=0x0)" P-INDEP
+;* V130 rat1 [V130 ] ( 0, 0 ) int -> zero-ref "field V24.hi (fldOffset=0x4)" P-INDEP
;* V131 rat2 [V131 ] ( 0, 0 ) int -> zero-ref "field V26.lo (fldOffset=0x0)" P-INDEP
;* V132 rat3 [V132 ] ( 0, 0 ) int -> zero-ref "field V26.hi (fldOffset=0x4)" P-INDEP
; V133 rat4 [V133,T37] ( 4, 2 ) int -> esi "field V29.lo (fldOffset=0x0)" P-INDEP
; V134 rat5 [V134,T38] ( 4, 2 ) int -> [ebp-0xE8] spill-single-def "field V29.hi (fldOffset=0x4)" P-INDEP
;* V135 rat6 [V135 ] ( 0, 0 ) int -> zero-ref "field V30.lo (fldOffset=0x0)" P-INDEP
;* V136 rat7 [V136 ] ( 0, 0 ) int -> zero-ref "field V30.hi (fldOffset=0x4)" P-INDEP
-;* V137 rat8 [V137,T68] ( 0, 0 ) int -> zero-ref "field V54.lo (fldOffset=0x0)" P-INDEP
-;* V138 rat9 [V138,T69] ( 0, 0 ) int -> zero-ref "field V54.hi (fldOffset=0x4)" P-INDEP
+;* V137 rat8 [V137 ] ( 0, 0 ) int -> zero-ref "field V54.lo (fldOffset=0x0)" P-INDEP
+;* V138 rat9 [V138 ] ( 0, 0 ) int -> zero-ref "field V54.hi (fldOffset=0x4)" P-INDEP
;* V139 rat10 [V139 ] ( 0, 0 ) int -> zero-ref "field V56.lo (fldOffset=0x0)" P-INDEP
;* V140 rat11 [V140 ] ( 0, 0 ) int -> zero-ref "field V56.hi (fldOffset=0x4)" P-INDEP
; V141 rat12 [V141,T39] ( 4, 2 ) int -> esi "field V59.lo (fldOffset=0x0)" P-INDEP
@@ -358,6 +358,8 @@ G_M31232_IG12: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
; gcrRegs +[eax]
test eax, eax
jne G_M31232_IG17
+ mov esi, ebx
+ ; gcrRegs +[esi]
push 0
push 0
push 1
@@ -371,11 +373,11 @@ G_M31232_IG12: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
mov edi, eax
push 0
push 0
- mov ecx, ebx
+ mov ecx, esi
; gcrRegs +[ecx]
mov edx, 6
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx esi]
mov esi, eax
mov eax, edx
mov dword ptr [ebp-0xE8], edx
@@ -411,7 +413,7 @@ G_M31232_IG12: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
xor edx, edx
; gcrRegs +[edx]
mov gword ptr [eax+0x0C], edx
- ;; size=166 bbWeight=0.50 PerfScore 23.88
+ ;; size=168 bbWeight=0.50 PerfScore 24.00
G_M31232_IG13: ; bbWeight=0.50, gcVars=000000000000000000000010 {V33}, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[edx]
mov gword ptr [eax+0x10], edx
@@ -494,6 +496,8 @@ G_M31232_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
; gcrRegs +[eax]
test eax, eax
jne G_M31232_IG23
+ mov esi, ebx
+ ; gcrRegs +[esi]
push 0
push 0
push 1
@@ -507,11 +511,11 @@ G_M31232_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
mov edi, eax
push 0
push 0
- mov ecx, ebx
+ mov ecx, esi
; gcrRegs +[ecx]
mov edx, 5
call [<unknown method>]
- ; gcrRegs -[ecx]
+ ; gcrRegs -[ecx esi]
mov esi, eax
mov eax, edx
mov dword ptr [ebp-0xEC], edx
@@ -547,7 +551,7 @@ G_M31232_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
xor edx, edx
; gcrRegs +[edx]
mov gword ptr [eax+0x0C], edx
- ;; size=166 bbWeight=0.50 PerfScore 23.88
+ ;; size=168 bbWeight=0.50 PerfScore 24.00
G_M31232_IG19: ; bbWeight=0.50, gcVars=000000000000000000000020 {V63}, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[edx]
mov gword ptr [eax+0x10], edx
@@ -942,6 +946,6 @@ RWD00 dd G_M31232_IG33 - G_M31232_IG02
dd G_M31232_IG28 - G_M31232_IG02
-; Total bytes of code 1839, prolog size 52, PerfScore 319.21, instruction count 447, allocated bytes for code 1839 (MethodHash=10b885ff) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
+; Total bytes of code 1843, prolog size 52, PerfScore 319.46, instruction count 449, allocated bytes for code 1843 (MethodHash=10b885ff) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
; ============================================================
+19 (+0.50%) : 17478.dasm - System.Net.Http.RedirectHandler+d__4:MoveNext():this (Tier0-FullOpts)
@@ -5,7 +5,7 @@
; ebp based frame
; partially interruptible
; No matching PGO data
-; 83 inlinees with PGO data; 118 single block inlinees; 12 inlinees without PGO data
+; 84 inlinees with PGO data; 119 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 47,106 ) byref -> [ebp-0xC8] this EH-live single-def
@@ -76,334 +76,323 @@
;* V65 tmp49 [V65 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V66 tmp50 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V67 tmp51 [V67,T121] ( 2, 4 ) byref -> edx "Inlining Arg"
-;* V68 tmp52 [V68 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V69 tmp53 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
-;* V70 tmp54 [V70 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V71 tmp55 [V71,T90] ( 4, 8 ) int -> ecx "Inlining Arg"
-;* V72 tmp56 [V72 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V73 tmp57 [V73,T114] ( 3, 6 ) int -> [ebp-0xAC] spill-single-def "Inlining Arg"
-; V74 tmp58 [V74,T122] ( 2, 4 ) byref -> edi "Inlining Arg"
+;* V68 tmp52 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
+;* V69 tmp53 [V69 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V70 tmp54 [V70,T90] ( 4, 8 ) int -> ecx "Inlining Arg"
+;* V71 tmp55 [V71 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V72 tmp56 [V72,T114] ( 3, 6 ) int -> [ebp-0xAC] spill-single-def "Inlining Arg"
+; V73 tmp57 [V73,T122] ( 2, 4 ) byref -> edi "Inlining Arg"
+;* V74 tmp58 [V74 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V75 tmp59 [V75 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V76 tmp60 [V76 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V77 tmp61 [V77,T149] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V78 tmp62 [V78 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V79 tmp63 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V80 tmp64 [V80,T123] ( 2, 4 ) byref -> edx "Inlining Arg"
-;* V81 tmp65 [V81 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V82 tmp66 [V82 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V83 tmp67 [V83,T91] ( 4, 8 ) int -> ecx "Inlining Arg"
-;* V84 tmp68 [V84 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V85 tmp69 [V85,T115] ( 3, 6 ) int -> [ebp-0xB0] spill-single-def "Inlining Arg"
-; V86 tmp70 [V86,T124] ( 2, 4 ) byref -> edi "Inlining Arg"
-;* V87 tmp71 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V88 tmp72 [V88 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V89 tmp73 [V89,T150] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V90 tmp74 [V90 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V91 tmp75 [V91 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V92 tmp76 [V92,T125] ( 2, 4 ) byref -> edx "Inlining Arg"
-;* V93 tmp77 [V93 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-; V94 tmp78 [V94,T136] ( 2, 4 ) int -> [ebp-0xB4] spill-single-def "Inlining Arg"
-; V95 tmp79 [V95,T110] ( 3, 6 ) ref -> [ebp-0xDC] class-hnd exact spill-single-def "impAppendStmt" <System.Net.NetEventSource>
-;* V96 tmp80 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
-; V97 tmp81 [V97,T126] ( 2, 4 ) ref -> eax class-hnd exact "Inlining Arg" <System.String>
-;* V98 tmp82 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Net.Http.Headers.HttpRequestHeaders>
-; V99 tmp83 [V99,T23] ( 3, 24 ) ref -> ebx class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
-; V100 tmp84 [V100,T48] ( 2, 16 ) ref -> ecx class-hnd exact "dup spill" <System.Net.Http.Headers.HttpRequestHeaders>
-; V101 tmp85 [V101,T44] ( 5, 20 ) ref -> ecx
-; V102 tmp86 [V102,T04] ( 4, 32 ) ref -> ecx class-hnd exact "NewObj constructor temp" <System.Net.Http.Headers.HttpRequestHeaders>
-;* V103 tmp87 [V103 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Net.Http.Headers.HttpRequestHeaders>
-;* V104 tmp88 [V104 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Net.Http.Headers.HeaderDescriptor>
-; V105 tmp89 [V105,T24] ( 3, 24 ) ref -> eax class-hnd exact "Inlining Arg" <System.Net.Http.Headers.KnownHeader>
-;* V106 tmp90 [V106 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Net.Http.Headers.HeaderDescriptor>
-;* V107 tmp91 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpTelemetry>
-; V108 tmp92 [V108,T49] ( 2, 16 ) ref -> eax class-hnd exact "Inlining Arg" <System.String>
-;* V109 tmp93 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-;* V110 tmp94 [V110 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V111 tmp95 [V111,T05] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V112 tmp96 [V112 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V113 tmp97 [V113,T33] ( 3, 24 ) int -> esi "Inlining Arg"
-; V114 tmp98 [V114,T50] ( 2, 16 ) byref -> ebx "Inlining Arg"
-;* V115 tmp99 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V116 tmp100 [V116 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V117 tmp101 [V117,T95] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V118 tmp102 [V118 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V119 tmp103 [V119 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V120 tmp104 [V120,T51] ( 2, 16 ) byref -> edx "Inlining Arg"
-;* V121 tmp105 [V121 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V122 tmp106 [V122 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
-;* V123 tmp107 [V123 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V124 tmp108 [V124,T06] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V125 tmp109 [V125 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V126 tmp110 [V126,T34] ( 3, 24 ) int -> ebx "Inlining Arg"
-; V127 tmp111 [V127,T52] ( 2, 16 ) byref -> edi "Inlining Arg"
-;* V128 tmp112 [V128 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V129 tmp113 [V129 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V130 tmp114 [V130,T96] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V131 tmp115 [V131 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V132 tmp116 [V132 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V133 tmp117 [V133,T53] ( 2, 16 ) byref -> edx "Inlining Arg"
-;* V134 tmp118 [V134 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V135 tmp119 [V135 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V136 tmp120 [V136,T07] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V137 tmp121 [V137 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V138 tmp122 [V138,T35] ( 3, 24 ) int -> edi "Inlining Arg"
-; V139 tmp123 [V139,T54] ( 2, 16 ) byref -> ebx "Inlining Arg"
-;* V140 tmp124 [V140 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V141 tmp125 [V141 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V142 tmp126 [V142,T97] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V143 tmp127 [V143 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V144 tmp128 [V144 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V145 tmp129 [V145,T55] ( 2, 16 ) byref -> edx "Inlining Arg"
-;* V146 tmp130 [V146 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V147 tmp131 [V147 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V148 tmp132 [V148,T08] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V149 tmp133 [V149 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V150 tmp134 [V150,T36] ( 3, 24 ) int -> [ebp-0xB8] spill-single-def "Inlining Arg"
-; V151 tmp135 [V151,T56] ( 2, 16 ) byref -> edi "Inlining Arg"
-;* V152 tmp136 [V152 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V153 tmp137 [V153 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V154 tmp138 [V154,T98] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V155 tmp139 [V155 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V156 tmp140 [V156 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V157 tmp141 [V157,T57] ( 2, 16 ) byref -> edx "Inlining Arg"
-;* V158 tmp142 [V158 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V159 tmp143 [V159 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V160 tmp144 [V160,T09] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V161 tmp145 [V161 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V162 tmp146 [V162,T37] ( 3, 24 ) int -> [ebp-0xBC] spill-single-def "Inlining Arg"
-; V163 tmp147 [V163,T58] ( 2, 16 ) byref -> edi "Inlining Arg"
-;* V164 tmp148 [V164 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V165 tmp149 [V165 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V166 tmp150 [V166,T99] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V167 tmp151 [V167 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V168 tmp152 [V168 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V169 tmp153 [V169,T59] ( 2, 16 ) byref -> edx "Inlining Arg"
-;* V170 tmp154 [V170 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-; V171 tmp155 [V171,T81] ( 2, 16 ) int -> [ebp-0xC0] spill-single-def "Inlining Arg"
-; V172 tmp156 [V172,T25] ( 3, 24 ) ref -> [ebp-0xE0] class-hnd exact spill-single-def "impAppendStmt" <System.Net.NetEventSource>
-;* V173 tmp157 [V173 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
-; V174 tmp158 [V174,T60] ( 2, 16 ) ref -> eax class-hnd exact "Inlining Arg" <System.String>
-; V175 tmp159 [V175,T20] ( 4, 24 ) ref -> ecx class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
+;* V76 tmp60 [V76,T149] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V77 tmp61 [V77 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V78 tmp62 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V79 tmp63 [V79,T123] ( 2, 4 ) byref -> edx "Inlining Arg"
+;* V80 tmp64 [V80 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V81 tmp65 [V81,T91] ( 4, 8 ) int -> ecx "Inlining Arg"
+;* V82 tmp66 [V82 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V83 tmp67 [V83,T115] ( 3, 6 ) int -> [ebp-0xB0] spill-single-def "Inlining Arg"
+; V84 tmp68 [V84,T124] ( 2, 4 ) byref -> edi "Inlining Arg"
+;* V85 tmp69 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V86 tmp70 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V87 tmp71 [V87,T150] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V88 tmp72 [V88 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V89 tmp73 [V89 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V90 tmp74 [V90,T125] ( 2, 4 ) byref -> edx "Inlining Arg"
+; V91 tmp75 [V91,T136] ( 2, 4 ) int -> [ebp-0xB4] spill-single-def "Inlining Arg"
+; V92 tmp76 [V92,T110] ( 3, 6 ) ref -> [ebp-0xDC] class-hnd exact spill-single-def "impAppendStmt" <System.Net.NetEventSource>
+;* V93 tmp77 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
+; V94 tmp78 [V94,T126] ( 2, 4 ) ref -> eax class-hnd exact "Inlining Arg" <System.String>
+;* V95 tmp79 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Net.Http.Headers.HttpRequestHeaders>
+; V96 tmp80 [V96,T23] ( 3, 24 ) ref -> ebx class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
+; V97 tmp81 [V97,T48] ( 2, 16 ) ref -> ecx class-hnd exact "dup spill" <System.Net.Http.Headers.HttpRequestHeaders>
+; V98 tmp82 [V98,T44] ( 5, 20 ) ref -> ecx
+; V99 tmp83 [V99,T04] ( 4, 32 ) ref -> ecx class-hnd exact "NewObj constructor temp" <System.Net.Http.Headers.HttpRequestHeaders>
+;* V100 tmp84 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Net.Http.Headers.HttpRequestHeaders>
+;* V101 tmp85 [V101 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Net.Http.Headers.HeaderDescriptor>
+; V102 tmp86 [V102,T24] ( 3, 24 ) ref -> eax class-hnd exact "Inlining Arg" <System.Net.Http.Headers.KnownHeader>
+;* V103 tmp87 [V103 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Net.Http.Headers.HeaderDescriptor>
+;* V104 tmp88 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Http.HttpTelemetry>
+; V105 tmp89 [V105,T49] ( 2, 16 ) ref -> eax class-hnd exact "Inlining Arg" <System.String>
+;* V106 tmp90 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
+;* V107 tmp91 [V107 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V108 tmp92 [V108,T05] ( 4, 32 ) int -> ecx "Inlining Arg"
+;* V109 tmp93 [V109 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V110 tmp94 [V110,T33] ( 3, 24 ) int -> esi "Inlining Arg"
+; V111 tmp95 [V111,T50] ( 2, 16 ) byref -> ebx "Inlining Arg"
+;* V112 tmp96 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V113 tmp97 [V113 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V114 tmp98 [V114,T95] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V115 tmp99 [V115 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V116 tmp100 [V116 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V117 tmp101 [V117,T51] ( 2, 16 ) byref -> edx "Inlining Arg"
+;* V118 tmp102 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
+;* V119 tmp103 [V119 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V120 tmp104 [V120,T06] ( 4, 32 ) int -> ecx "Inlining Arg"
+;* V121 tmp105 [V121 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V122 tmp106 [V122,T34] ( 3, 24 ) int -> ebx "Inlining Arg"
+; V123 tmp107 [V123,T52] ( 2, 16 ) byref -> edi "Inlining Arg"
+;* V124 tmp108 [V124 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V125 tmp109 [V125 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V126 tmp110 [V126,T96] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V127 tmp111 [V127 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V128 tmp112 [V128 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V129 tmp113 [V129,T53] ( 2, 16 ) byref -> edx "Inlining Arg"
+;* V130 tmp114 [V130 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V131 tmp115 [V131,T07] ( 4, 32 ) int -> ecx "Inlining Arg"
+;* V132 tmp116 [V132 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V133 tmp117 [V133,T35] ( 3, 24 ) int -> edi "Inlining Arg"
+; V134 tmp118 [V134,T54] ( 2, 16 ) byref -> ebx "Inlining Arg"
+;* V135 tmp119 [V135 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V136 tmp120 [V136 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V137 tmp121 [V137,T97] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V138 tmp122 [V138 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V139 tmp123 [V139 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V140 tmp124 [V140,T55] ( 2, 16 ) byref -> edx "Inlining Arg"
+;* V141 tmp125 [V141 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V142 tmp126 [V142,T08] ( 4, 32 ) int -> ecx "Inlining Arg"
+;* V143 tmp127 [V143 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V144 tmp128 [V144,T36] ( 3, 24 ) int -> [ebp-0xB8] spill-single-def "Inlining Arg"
+; V145 tmp129 [V145,T56] ( 2, 16 ) byref -> edi "Inlining Arg"
+;* V146 tmp130 [V146 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V147 tmp131 [V147 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V148 tmp132 [V148,T98] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V149 tmp133 [V149 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V150 tmp134 [V150 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V151 tmp135 [V151,T57] ( 2, 16 ) byref -> edx "Inlining Arg"
+;* V152 tmp136 [V152 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V153 tmp137 [V153,T09] ( 4, 32 ) int -> ecx "Inlining Arg"
+;* V154 tmp138 [V154 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V155 tmp139 [V155,T37] ( 3, 24 ) int -> [ebp-0xBC] spill-single-def "Inlining Arg"
+; V156 tmp140 [V156,T58] ( 2, 16 ) byref -> edi "Inlining Arg"
+;* V157 tmp141 [V157 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V158 tmp142 [V158 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V159 tmp143 [V159,T99] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V160 tmp144 [V160 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V161 tmp145 [V161 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V162 tmp146 [V162,T59] ( 2, 16 ) byref -> edx "Inlining Arg"
+; V163 tmp147 [V163,T81] ( 2, 16 ) int -> [ebp-0xC0] spill-single-def "Inlining Arg"
+; V164 tmp148 [V164,T25] ( 3, 24 ) ref -> [ebp-0xE0] class-hnd exact spill-single-def "impAppendStmt" <System.Net.NetEventSource>
+;* V165 tmp149 [V165 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
+; V166 tmp150 [V166,T60] ( 2, 16 ) ref -> eax class-hnd exact "Inlining Arg" <System.String>
+; V167 tmp151 [V167,T20] ( 4, 24 ) ref -> ecx class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
+;* V168 tmp152 [V168 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V169 tmp153 [V169 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
+;* V170 tmp154 [V170 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
+;* V171 tmp155 [V171 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V172 tmp156 [V172,T10] ( 4, 32 ) int -> ecx "Inlining Arg"
+;* V173 tmp157 [V173 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V174 tmp158 [V174,T38] ( 3, 24 ) int -> edi "Inlining Arg"
+; V175 tmp159 [V175,T61] ( 2, 16 ) byref -> esi "Inlining Arg"
;* V176 tmp160 [V176 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V177 tmp161 [V177 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
-;* V178 tmp162 [V178 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-;* V179 tmp163 [V179 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V180 tmp164 [V180,T10] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V181 tmp165 [V181 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V182 tmp166 [V182,T38] ( 3, 24 ) int -> edi "Inlining Arg"
-; V183 tmp167 [V183,T61] ( 2, 16 ) byref -> esi "Inlining Arg"
-;* V184 tmp168 [V184 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V185 tmp169 [V185 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V186 tmp170 [V186,T100] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V187 tmp171 [V187 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V188 tmp172 [V188 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V189 tmp173 [V189,T62] ( 2, 16 ) byref -> edx "Inlining Arg"
-;* V190 tmp174 [V190 ] ( 0, 0 ) int -> zero-ref "spilling arg"
-;* V191 tmp175 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Http.HttpRequestMessage>
-;* V192 tmp176 [V192 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V193 tmp177 [V193,T11] ( 4, 32 ) int -> ecx "Inlining Arg"
-;* V194 tmp178 [V194 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V195 tmp179 [V195,T39] ( 3, 24 ) int -> edi "Inlining Arg"
-; V196 tmp180 [V196,T63] ( 2, 16 ) byref -> ebx "Inlining Arg"
-;* V197 tmp181 [V197 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
...
+40 (+0.57%) : 21999.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
@@ -30,11 +30,11 @@
; V19 loc17 [V19,T198] ( 3, 8 ) ubyte -> ecx
;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V21 loc19 [V21,T178] ( 3, 10 ) ref -> [ebp-0x2AC] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T301] ( 2, 0.50) ref -> ebx class-hnd exact <System.String>
-; V23 loc21 [V23,T302] ( 10, 0 ) ref -> esi class-hnd <System.String>
-; V24 loc22 [V24,T299] ( 6, 1.50) ubyte -> eax
+; V22 loc20 [V22,T297] ( 2, 0.50) ref -> ebx class-hnd exact <System.String>
+; V23 loc21 [V23,T298] ( 10, 0 ) ref -> esi class-hnd <System.String>
+; V24 loc22 [V24,T295] ( 6, 1.50) ubyte -> eax
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T63] ( 2, 36 ) ref -> edi class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T59] ( 2, 36 ) ref -> edi class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> ebx
;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V29 loc27 [V29,T66] ( 6, 24 ) ref -> edi class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -52,7 +52,7 @@
; V41 tmp4 [V41,T20] ( 3, 96 ) ref -> [ebp-0x2B4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
; V42 tmp5 [V42,T13] ( 2,128 ) ref -> [ebp-0x2B8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
;* V43 tmp6 [V43 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V44 tmp7 [V44,T303] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V44 tmp7 [V44,T299] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
; V45 tmp8 [V45,T04] ( 4,160 ) ref -> [ebp-0x2BC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
; V46 tmp9 [V46,T77] ( 4, 24 ) ref -> ebx class-hnd exact "impAppendStmt" <<unknown class>>
;* V47 tmp10 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]>
@@ -71,10 +71,10 @@
;* V60 tmp23 [V60 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V61 tmp24 [V61,T33] ( 14, 64 ) ref -> [ebp-0x2C4]
; V62 tmp25 [V62,T67] ( 6, 24 ) ref -> edi
-; V63 tmp26 [V63,T240] ( 3, 2 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V63 tmp26 [V63,T244] ( 3, 2 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V64 tmp27 [V64,T226] ( 3, 5 ) int -> eax "Inlining Arg"
-; V65 tmp28 [V65,T237] ( 4, 3 ) int -> [ebp-0x20] spill-single-def "Inline stloc first use temp"
-; V66 tmp29 [V66,T239] ( 3, 2.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp28 [V65,T241] ( 4, 3 ) int -> [ebp-0x20] spill-single-def "Inline stloc first use temp"
+; V66 tmp29 [V66,T243] ( 3, 2.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V67 tmp30 [V67 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V68 tmp31 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V69 tmp32 [V69,T97] ( 3, 20 ) ref -> edi class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
@@ -93,14 +93,14 @@
;* V82 tmp45 [V82 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V83 tmp46 [V83,T142] ( 5, 10 ) ref -> [ebp-0x2CC] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V84 tmp47 [V84,T48] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V85 tmp48 [V85,T228] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V85 tmp48 [V85,T232] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V86 tmp49 [V86,T157] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V87 tmp50 [V87,T87] ( 5, 20 ) struct (28) [ebp-0x40] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V88 tmp51 [V88,T212] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V89 tmp52 [V89 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V90 tmp53 [V90,T243] ( 0, 0 ) ref -> zero-ref
+;* V90 tmp53 [V90,T247] ( 0, 0 ) ref -> zero-ref
;* V91 tmp54 [V91 ] ( 0, 0 ) ref -> zero-ref
-;* V92 tmp55 [V92,T244] ( 0, 0 ) ref -> zero-ref
+;* V92 tmp55 [V92,T248] ( 0, 0 ) ref -> zero-ref
; V93 tmp56 [V93,T158] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V94 tmp57 [V94,T88] ( 5, 20 ) struct (28) [ebp-0x5C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V95 tmp58 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -122,14 +122,14 @@
;* V111 tmp74 [V111 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V112 tmp75 [V112,T143] ( 5, 10 ) ref -> [ebp-0x2D4] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V113 tmp76 [V113,T49] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V114 tmp77 [V114,T229] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V114 tmp77 [V114,T233] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V115 tmp78 [V115,T159] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V116 tmp79 [V116,T89] ( 5, 20 ) struct (28) [ebp-0x7C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V117 tmp80 [V117,T213] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V118 tmp81 [V118 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V119 tmp82 [V119,T245] ( 0, 0 ) ref -> zero-ref
+;* V119 tmp82 [V119,T249] ( 0, 0 ) ref -> zero-ref
;* V120 tmp83 [V120 ] ( 0, 0 ) ref -> zero-ref
-;* V121 tmp84 [V121,T246] ( 0, 0 ) ref -> zero-ref
+;* V121 tmp84 [V121,T250] ( 0, 0 ) ref -> zero-ref
; V122 tmp85 [V122,T160] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V123 tmp86 [V123,T90] ( 5, 20 ) struct (28) [ebp-0x98] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V124 tmp87 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -154,14 +154,14 @@
;* V143 tmp106 [V143 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V144 tmp107 [V144,T144] ( 5, 10 ) ref -> [ebp-0x2DC] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V145 tmp108 [V145,T50] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V146 tmp109 [V146,T230] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V146 tmp109 [V146,T234] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V147 tmp110 [V147,T161] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V148 tmp111 [V148,T91] ( 5, 20 ) struct (28) [ebp-0xB8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V149 tmp112 [V149,T214] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V150 tmp113 [V150 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V151 tmp114 [V151,T247] ( 0, 0 ) ref -> zero-ref
+;* V151 tmp114 [V151,T251] ( 0, 0 ) ref -> zero-ref
;* V152 tmp115 [V152 ] ( 0, 0 ) ref -> zero-ref
-;* V153 tmp116 [V153,T248] ( 0, 0 ) ref -> zero-ref
+;* V153 tmp116 [V153,T252] ( 0, 0 ) ref -> zero-ref
; V154 tmp117 [V154,T162] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V155 tmp118 [V155,T92] ( 5, 20 ) struct (28) [ebp-0xD4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V156 tmp119 [V156 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -201,14 +201,14 @@
; V190 tmp153 [V190,T15] ( 2,128 ) ref -> eax "CASTCLASS eval op1"
;* V191 tmp154 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V192 tmp155 [V192,T26] ( 4, 76 ) ref -> eax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V193 tmp156 [V193,T61] ( 3, 36 ) ref -> [ebp-0x2EC] spill-single-def "CASTCLASS eval op1"
+; V193 tmp156 [V193,T57] ( 3, 36 ) ref -> [ebp-0x2EC] spill-single-def "CASTCLASS eval op1"
; V194 tmp157 [V194,T100] ( 3, 20 ) int -> edx "fgMakeTemp is creating a new local variable"
; V195 tmp158 [V195,T28] ( 6, 76 ) ref -> eax class-hnd "spilling QMark2" <<unknown class>>
; V196 tmp159 [V196,T41] ( 3, 48 ) ref -> ecx class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V197 tmp160 [V197,T16] ( 2,128 ) ref -> ecx "CASTCLASS eval op1"
;* V198 tmp161 [V198 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V199 tmp162 [V199,T27] ( 4, 76 ) ref -> ecx class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V200 tmp163 [V200,T62] ( 3, 36 ) ref -> [ebp-0x2F0] spill-single-def "CASTCLASS eval op1"
+; V200 tmp163 [V200,T58] ( 3, 36 ) ref -> [ebp-0x2F0] spill-single-def "CASTCLASS eval op1"
; V201 tmp164 [V201,T101] ( 3, 20 ) int -> ecx "fgMakeTemp is creating a new local variable"
; V202 tmp165 [V202,T29] ( 6, 76 ) ref -> [ebp-0x2F4] class-hnd "spilling QMark2" <<unknown class>>
; V203 tmp166 [V203,T42] ( 3, 48 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
@@ -233,14 +233,14 @@
;* V222 tmp185 [V222 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V223 tmp186 [V223,T145] ( 5, 10 ) ref -> [ebp-0x300] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V224 tmp187 [V224,T51] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V225 tmp188 [V225,T231] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V225 tmp188 [V225,T235] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V226 tmp189 [V226,T163] ( 3, 12 ) ref -> edx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V227 tmp190 [V227,T93] ( 5, 20 ) struct (28) [ebp-0x138] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V228 tmp191 [V228,T215] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V229 tmp192 [V229 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V230 tmp193 [V230,T249] ( 0, 0 ) ref -> zero-ref
+;* V230 tmp193 [V230,T253] ( 0, 0 ) ref -> zero-ref
;* V231 tmp194 [V231 ] ( 0, 0 ) ref -> zero-ref
-;* V232 tmp195 [V232,T250] ( 0, 0 ) ref -> zero-ref
+;* V232 tmp195 [V232,T254] ( 0, 0 ) ref -> zero-ref
; V233 tmp196 [V233,T164] ( 3, 12 ) ref -> eax class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V234 tmp197 [V234,T94] ( 5, 20 ) struct (28) [ebp-0x154] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V235 tmp198 [V235 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -261,38 +261,38 @@
;* V250 tmp213 [V250 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V251 tmp214 [V251,T146] ( 5, 10 ) ref -> [ebp-0x30C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V252 tmp215 [V252,T52] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V253 tmp216 [V253,T232] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V253 tmp216 [V253,T236] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V254 tmp217 [V254,T165] ( 3, 12 ) ref -> edx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V255 tmp218 [V255,T95] ( 5, 20 ) struct (28) [ebp-0x174] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V256 tmp219 [V256,T216] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V257 tmp220 [V257 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V258 tmp221 [V258,T251] ( 0, 0 ) ref -> zero-ref
+;* V258 tmp221 [V258,T255] ( 0, 0 ) ref -> zero-ref
;* V259 tmp222 [V259 ] ( 0, 0 ) ref -> zero-ref
-;* V260 tmp223 [V260,T252] ( 0, 0 ) ref -> zero-ref
+;* V260 tmp223 [V260,T256] ( 0, 0 ) ref -> zero-ref
; V261 tmp224 [V261,T166] ( 3, 12 ) ref -> eax class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V262 tmp225 [V262,T96] ( 5, 20 ) struct (28) [ebp-0x190] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V263 tmp226 [V263 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V264 tmp227 [V264 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V265 tmp228 [V265 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V266 tmp229 [V266,T57] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V266 tmp229 [V266,T60] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V267 tmp230 [V267,T111] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V268 tmp231 [V268,T138] ( 4, 14 ) ref -> edx
;* V269 tmp232 [V269 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V270 tmp233 [V270 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V271 tmp234 [V271 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V272 tmp235 [V272,T253] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V273 tmp236 [V273,T271] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V274 tmp237 [V274,T254] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V275 tmp238 [V275,T272] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V272 tmp235 [V272,T228] ( 2, 4 ) ref -> [ebp-0x310] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V273 tmp236 [V273,T267] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V274 tmp237 [V274 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V275 tmp238 [V275,T268] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V276 tmp239 [V276 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V277 tmp240 [V277 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V278 tmp241 [V278 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V279 tmp242 [V279,T185] ( 4, 8 ) ref -> [ebp-0x310] spill-single-def
+; V279 tmp242 [V279,T185] ( 4, 8 ) ref -> [ebp-0x314] spill-single-def
;* V280 tmp243 [V280 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V281 tmp244 [V281 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V282 tmp245 [V282,T147] ( 5, 10 ) ref -> [ebp-0x314] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V283 tmp246 [V283,T53] ( 10, 40 ) ref -> [ebp-0x318] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V284 tmp247 [V284,T233] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V282 tmp245 [V282,T147] ( 5, 10 ) ref -> [ebp-0x318] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V283 tmp246 [V283,T53] ( 10, 40 ) ref -> [ebp-0x31C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V284 tmp247 [V284,T237] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V285 tmp248 [V285,T167] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V286 tmp249 [V286,T68] ( 6, 24 ) struct (28) [ebp-0x1AC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V287 tmp250 [V287,T217] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -305,25 +305,25 @@
;* V294 tmp257 [V294 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V295 tmp258 [V295 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V296 tmp259 [V296 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V297 tmp260 [V297,T58] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V297 tmp260 [V297,T61] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V298 tmp261 [V298,T112] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V299 tmp262 [V299,T139] ( 4, 14 ) ref -> edx
;* V300 tmp263 [V300 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V301 tmp264 [V301 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V302 tmp265 [V302 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V303 tmp266 [V303,T255] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V304 tmp267 [V304,T273] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V305 tmp268 [V305,T256] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V306 tmp269 [V306,T274] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V303 tmp266 [V303,T229] ( 2, 4 ) ref -> [ebp-0x320] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V304 tmp267 [V304,T269] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V305 tmp268 [V305 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V306 tmp269 [V306,T270] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V307 tmp270 [V307 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V308 tmp271 [V308 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V309 tmp272 [V309 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V310 tmp273 [V310,T186] ( 4, 8 ) ref -> [ebp-0x31C] spill-single-def
+; V310 tmp273 [V310,T186] ( 4, 8 ) ref -> [ebp-0x324] spill-single-def
;* V311 tmp274 [V311 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V312 tmp275 [V312 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V313 tmp276 [V313,T148] ( 5, 10 ) ref -> [ebp-0x320] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V314 tmp277 [V314,T54] ( 10, 40 ) ref -> [ebp-0x324] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V315 tmp278 [V315,T234] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V313 tmp276 [V313,T148] ( 5, 10 ) ref -> [ebp-0x328] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V314 tmp277 [V314,T54] ( 10, 40 ) ref -> [ebp-0x32C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V315 tmp278 [V315,T238] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V316 tmp279 [V316,T169] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V317 tmp280 [V317,T70] ( 6, 24 ) struct (28) [ebp-0x1E4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V318 tmp281 [V318,T219] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -336,25 +336,25 @@
;* V325 tmp288 [V325 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V326 tmp289 [V326 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V327 tmp290 [V327 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V328 tmp291 [V328,T59] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V328 tmp291 [V328,T62] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V329 tmp292 [V329,T113] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V330 tmp293 [V330,T140] ( 4, 14 ) ref -> edx
;* V331 tmp294 [V331 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V332 tmp295 [V332 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V333 tmp296 [V333 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V334 tmp297 [V334,T257] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V335 tmp298 [V335,T275] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V336 tmp299 [V336,T258] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V337 tmp300 [V337,T276] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V334 tmp297 [V334,T230] ( 2, 4 ) ref -> [ebp-0x330] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V335 tmp298 [V335,T271] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V336 tmp299 [V336 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V337 tmp300 [V337,T272] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V338 tmp301 [V338 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V339 tmp302 [V339 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V340 tmp303 [V340 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V341 tmp304 [V341,T187] ( 4, 8 ) ref -> [ebp-0x328] spill-single-def
+; V341 tmp304 [V341,T187] ( 4, 8 ) ref -> [ebp-0x334] spill-single-def
;* V342 tmp305 [V342 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V343 tmp306 [V343 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V344 tmp307 [V344,T149] ( 5, 10 ) ref -> [ebp-0x32C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V345 tmp308 [V345,T55] ( 10, 40 ) ref -> [ebp-0x330] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V346 tmp309 [V346,T235] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V344 tmp307 [V344,T149] ( 5, 10 ) ref -> [ebp-0x338] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V345 tmp308 [V345,T55] ( 10, 40 ) ref -> [ebp-0x33C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V346 tmp309 [V346,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V347 tmp310 [V347,T171] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V348 tmp311 [V348,T72] ( 6, 24 ) struct (28) [ebp-0x21C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V349 tmp312 [V349,T221] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -367,25 +367,25 @@
...
benchmarks.run_tiered.windows.x86.checked.mch
-21 (-40.38%) : 703.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
@@ -6,39 +6,28 @@
; Final local variable assignments
;
; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [ebp-0x08] do-not-enreg[]
-; TEMP_01 byref -> [ebp-0x0C]
;
-; Lcl frame size = 12
+; Lcl frame size = 8
G_M18678_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- sub esp, 12
- xor eax, eax
- mov dword ptr [ebp-0x0C], eax
+ sub esp, 8
mov dword ptr [ebp-0x04], ecx
mov dword ptr [ebp-0x08], ecx
- ;; size=17 bbWeight=1 PerfScore 4.75
+ ;; size=12 bbWeight=1 PerfScore 3.50
G_M18678_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, dword ptr [ebp-0x08]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[eax]
- mov bword ptr [ebp-0x0C], eax
- mov eax, 512
- ; byrRegs -[eax]
- mov ecx, 4
- xor edx, edx
- div edx:eax, ecx
- mov edx, bword ptr [ebp-0x0C]
- ; byrRegs +[edx]
- mov dword ptr [edx+0x04], eax
- ;; size=31 bbWeight=1 PerfScore 30.75
+ mov dword ptr [eax+0x04], 128
+ ;; size=15 bbWeight=1 PerfScore 3.00
G_M18678_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 14, PerfScore 37.25, instruction count 19, allocated bytes for code 52 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
+; Total bytes of code 31, prolog size 9, PerfScore 8.25, instruction count 11, allocated bytes for code 31 (MethodHash=e282b709) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
; ============================================================
-4 (-40.00%) : 24304.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; Tier1 code
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
@@ -10,22 +10,18 @@
;
;* V00 tmp0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V01 tmp1 [V01 ] ( 0, 0 ) int -> zero-ref "field V00._value (fldOffset=0x0)" P-INDEP
-;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
; Lcl frame size = 0
G_M7284_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, 0xFFFD
;; size=5 bbWeight=1 PerfScore 0.25
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 10, prolog size 3, PerfScore 3.00, instruction count 5, allocated bytes for code 10 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
; ============================================================
-22 (-22.00%) : 13147.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
@@ -19,22 +19,14 @@ G_M35788_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
mov dword ptr [ebp-0x08], edx
;; size=12 bbWeight=1 PerfScore 3.50
G_M35788_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- mov eax, 1
- mov edx, 4
- shl edx, 2
- mov ecx, 8
- shl ecx, 2
- dec ecx
- and ecx, edx
- shl eax, cl
- mov dword ptr [ebp-0x0C], eax
+ mov dword ptr [ebp-0x0C], 0x10000
mov eax, dword ptr [ebp-0x08]
cmp eax, dword ptr [ebp-0x0C]
jae SHORT G_M35788_IG03
mov eax, dword ptr [ebp-0x04]
cmp eax, dword ptr [ebp-0x0C]
jb SHORT G_M35788_IG04
- ;; size=45 bbWeight=1 PerfScore 13.25
+ ;; size=23 bbWeight=1 PerfScore 9.00
G_M35788_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
cmp dword ptr [ebp-0x08], 0
je SHORT G_M35788_IG04
@@ -62,6 +54,6 @@ G_M35788_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 100, prolog size 6, PerfScore 62.50, instruction count 36, allocated bytes for code 100 (MethodHash=0ddb7433) for method System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
+; Total bytes of code 78, prolog size 6, PerfScore 58.25, instruction count 28, allocated bytes for code 78 (MethodHash=0ddb7433) for method System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
; ============================================================
+0 (0.00%) : 1816.dasm - System.SpanHelpers:Fillushort (Tier0-FullOpts)
@@ -13,7 +13,7 @@
; V02 arg2 [V02,T02] ( 16, 36 ) ushort -> eax single-def
; V03 loc0 [V03,T00] ( 23, 50 ) int -> esi
;* V04 loc1 [V04 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op
-; V05 loc2 [V05,T11] ( 5, 9.50) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T10] ( 5, 9.50) simd32 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T05] ( 5, 9.50) byref -> ecx single-def
; V07 loc4 [V07,T09] ( 4, 2 ) int -> eax
; V08 loc5 [V08,T07] ( 2, 4.50) int -> esi
@@ -22,7 +22,7 @@
; V11 loc8 [V11,T08] ( 2, 4.50) int -> edi
; V12 tmp0 [V12,T04] ( 2, 16 ) int -> esi "dup spill"
;* V13 tmp1 [V13 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ushort]>
-;* V14 tmp2 [V14,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V14 tmp2 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
+4 (+0.19%) : 3960.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[System.Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],System.Func
3[System.Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
@@ -10,7 +10,7 @@
;
; V00 this [V00,T09] ( 9, 9 ) ref -> [ebp-0x10C] this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]>
; V01 arg1 [V01,T08] ( 16, 9 ) ref -> esi class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
-; V02 arg2 [V02,T01] ( 40, 23.50) ref -> ebx class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V02 arg2 [V02,T02] ( 40, 23.50) ref -> ebx class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
; V03 arg3 [V03,T18] ( 8, 7.50) ref -> [ebp+0x0C] class-hnd single-def <System.Func`3[System.__Canon,System.__Canon,ulong]>
; V04 TypeCtx [V04,T15] ( 12, 8.96) int -> [ebp+0x08] single-def
;* V05 loc0 [V05 ] ( 0, 0 ) int -> zero-ref
@@ -31,7 +31,7 @@
;* V20 tmp10 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V22 tmp12 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V23 tmp13 [V23,T84] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V23 tmp13 [V23,T81] ( 2, 1 ) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V24 tmp14 [V24,T86] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V25 tmp15 [V25 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V26 tmp16 [V26,T87] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -43,7 +43,7 @@
;* V32 tmp22 [V32 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V33 tmp23 [V33,T25] ( 5, 2.50) ref -> [ebp-0x11C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V34 tmp24 [V34,T10] ( 10, 10 ) ref -> [ebp-0x120] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V35 tmp25 [V35,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V35 tmp25 [V35,T83] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V36 tmp26 [V36,T30] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V37 tmp27 [V37,T20] ( 7, 7 ) struct (32) [ebp-0x40] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V38 tmp28 [V38,T71] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
@@ -61,7 +61,7 @@
;* V50 tmp40 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V53 tmp43 [V53,T85] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
+; V53 tmp43 [V53,T82] ( 2, 1 ) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]>
;* V54 tmp44 [V54,T88] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V55 tmp45 [V55 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V56 tmp46 [V56,T89] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
@@ -73,7 +73,7 @@
;* V62 tmp52 [V62 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V63 tmp53 [V63,T26] ( 5, 2.50) ref -> [ebp-0x124] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V64 tmp54 [V64,T11] ( 10, 10 ) ref -> [ebp-0x128] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V65 tmp55 [V65,T82] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V65 tmp55 [V65,T84] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V66 tmp56 [V66,T32] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V67 tmp57 [V67,T22] ( 7, 7 ) struct (32) [ebp-0x88] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V68 tmp58 [V68,T73] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
@@ -105,7 +105,7 @@
;* V94 tmp84 [V94 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V95 tmp85 [V95,T44] ( 4, 2 ) ref -> [ebp-0x12C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
; V96 tmp86 [V96,T12] ( 10, 10 ) ref -> [ebp-0x130] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;* V97 tmp87 [V97,T83] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V97 tmp87 [V97,T85] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V98 tmp88 [V98,T35] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V99 tmp89 [V99,T16] ( 8, 8 ) struct (32) [ebp-0xD0] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]>
; V100 tmp90 [V100,T76] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
@@ -118,9 +118,9 @@
;* V107 tmp97 [V107 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
;* V108 tmp98 [V108 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V109 tmp99 [V109,T04] ( 19, 19 ) ref -> eax "Single return block return value"
-; V110 tmp100 [V110,T27] ( 6, 3 ) int -> esi "field V28._info (fldOffset=0x0)" P-INDEP
+; V110 tmp100 [V110,T27] ( 6, 3 ) int -> edi "field V28._info (fldOffset=0x0)" P-INDEP
;* V111 tmp101 [V111 ] ( 0, 0 ) int -> zero-ref "field V39._info (fldOffset=0x0)" P-INDEP
-; V112 tmp102 [V112,T28] ( 6, 3 ) int -> esi "field V58._info (fldOffset=0x0)" P-INDEP
+; V112 tmp102 [V112,T28] ( 6, 3 ) int -> edi "field V58._info (fldOffset=0x0)" P-INDEP
;* V113 tmp103 [V113 ] ( 0, 0 ) int -> zero-ref "field V69._info (fldOffset=0x0)" P-INDEP
; V114 tmp104 [V114,T29] ( 6, 3 ) int -> edi "field V94._info (fldOffset=0x0)" P-INDEP
;* V115 tmp105 [V115 ] ( 0, 0 ) int -> zero-ref "field V101._info (fldOffset=0x0)" P-INDEP
@@ -150,7 +150,7 @@
; V139 tmp129 [V139,T65] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V140 tmp130 [V140,T66] ( 2, 2 ) ref -> [ebp-0x134] spill-single-def "argument with side effect"
; V141 tmp131 [V141,T67] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V142 tmp132 [V142,T02] ( 3, 24 ) ref -> edx "arr expr"
+; V142 tmp132 [V142,T01] ( 3, 24 ) ref -> edx "arr expr"
; V143 tmp133 [V143,T06] ( 2, 16 ) ref -> edx "argument with side effect"
; V144 cse0 [V144,T07] ( 3, 12 ) int -> edx "CSE - moderate"
; V145 cse1 [V145,T78] ( 3, 1.50) ref -> eax "CSE - conservative"
@@ -161,19 +161,19 @@
; V150 rat4 [V150,T58] ( 3, 2 ) int -> edx "runtime lookup"
; V151 rat5 [V151,T43] ( 3, 2.80) int -> ecx "spilling expr"
; V152 rat6 [V152,T46] ( 3, 2.24) int -> edx "fgMakeTemp is creating a new local variable"
-;* V153 rat7 [V153,T90] ( 0, 0 ) int -> zero-ref "field V25.lo (fldOffset=0x0)" P-INDEP
-;* V154 rat8 [V154,T91] ( 0, 0 ) int -> zero-ref "field V25.hi (fldOffset=0x4)" P-INDEP
+;* V153 rat7 [V153 ] ( 0, 0 ) int -> zero-ref "field V25.lo (fldOffset=0x0)" P-INDEP
+;* V154 rat8 [V154 ] ( 0, 0 ) int -> zero-ref "field V25.hi (fldOffset=0x4)" P-INDEP
;* V155 rat9 [V155 ] ( 0, 0 ) int -> zero-ref "field V27.lo (fldOffset=0x0)" P-INDEP
;* V156 rat10 [V156 ] ( 0, 0 ) int -> zero-ref "field V27.hi (fldOffset=0x4)" P-INDEP
-; V157 rat11 [V157,T50] ( 4, 2 ) int -> edi "field V30.lo (fldOffset=0x0)" P-INDEP
+; V157 rat11 [V157,T50] ( 4, 2 ) int -> esi "field V30.lo (fldOffset=0x0)" P-INDEP
; V158 rat12 [V158,T51] ( 4, 2 ) int -> [ebp-0xF4] spill-single-def "field V30.hi (fldOffset=0x4)" P-INDEP
;* V159 rat13 [V159 ] ( 0, 0 ) int -> zero-ref "field V31.lo (fldOffset=0x0)" P-INDEP
;* V160 rat14 [V160 ] ( 0, 0 ) int -> zero-ref "field V31.hi (fldOffset=0x4)" P-INDEP
-;* V161 rat15 [V161,T92] ( 0, 0 ) int -> zero-ref "field V55.lo (fldOffset=0x0)" P-INDEP
-;* V162 rat16 [V162,T93] ( 0, 0 ) int -> zero-ref "field V55.hi (fldOffset=0x4)" P-INDEP
+;* V161 rat15 [V161 ] ( 0, 0 ) int -> zero-ref "field V55.lo (fldOffset=0x0)" P-INDEP
+;* V162 rat16 [V162 ] ( 0, 0 ) int -> zero-ref "field V55.hi (fldOffset=0x4)" P-INDEP
;* V163 rat17 [V163 ] ( 0, 0 ) int -> zero-ref "field V57.lo (fldOffset=0x0)" P-INDEP
;* V164 rat18 [V164 ] ( 0, 0 ) int -> zero-ref "field V57.hi (fldOffset=0x4)" P-INDEP
-; V165 rat19 [V165,T52] ( 4, 2 ) int -> edi "field V60.lo (fldOffset=0x0)" P-INDEP
+; V165 rat19 [V165,T52] ( 4, 2 ) int -> esi "field V60.lo (fldOffset=0x0)" P-INDEP
; V166 rat20 [V166,T53] ( 4, 2 ) int -> [ebp-0xF8] spill-single-def "field V60.hi (fldOffset=0x4)" P-INDEP
;* V167 rat21 [V167 ] ( 0, 0 ) int -> zero-ref "field V61.lo (fldOffset=0x0)" P-INDEP
;* V168 rat22 [V168 ] ( 0, 0 ) int -> zero-ref "field V61.hi (fldOffset=0x4)" P-INDEP
@@ -341,6 +341,8 @@ G_M44013_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
; gcrRegs +[eax]
test eax, eax
jne G_M44013_IG25
+ mov esi, ebx
+ ; gcrRegs +[esi]
push 0
push 0
push 1
@@ -351,25 +353,25 @@ G_M44013_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
mov edx, 1
call [<unknown method>]
; gcrRegs -[eax]
- mov esi, eax
+ mov edi, eax
push 0
push 0
- mov ecx, ebx
+ mov ecx, esi
; gcrRegs +[ecx]
mov edx, 5
call [<unknown method>]
- ; gcrRegs -[ecx]
- mov edi, eax
+ ; gcrRegs -[ecx esi]
+ mov esi, eax
mov eax, edx
mov dword ptr [ebp-0xF4], edx
mov ecx, gword ptr [ebx+0x54]
; gcrRegs +[ecx]
- mov dword ptr [ebp-0x40], edi
+ mov dword ptr [ebp-0x40], esi
mov dword ptr [ebp-0x3C], eax
mov dword ptr [ebp-0x30], 5
mov dword ptr [ebp-0x2C], -1
mov dword ptr [ebp-0x28], -1
- mov dword ptr [ebp-0x24], esi
+ mov dword ptr [ebp-0x24], edi
cmp byte ptr [ecx], cl
push dword ptr [ebp-0x24]
push dword ptr [ebp-0x28]
@@ -384,12 +386,12 @@ G_M44013_IG18: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
; byrRegs +[eax]
test eax, eax
je SHORT G_M44013_IG19
- mov esi, gword ptr [eax]
- ; gcrRegs +[esi]
+ mov edi, gword ptr [eax]
+ ; gcrRegs +[edi]
jmp G_M44013_IG24
- ;; size=141 bbWeight=0.50 PerfScore 23.62
+ ;; size=143 bbWeight=0.50 PerfScore 23.75
G_M44013_IG19: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[esi]
+ ; gcrRegs -[edi]
; byrRegs -[eax]
mov ecx, 0xD1FFAB1E ; System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]
call CORINFO_HELP_NEWSFAST
@@ -408,13 +410,13 @@ G_M44013_IG20: ; bbWeight=0.50, gcVars=000000000000000000000400 {V34}, gc
mov dword ptr [eax+0x20], -1
lea ecx, bword ptr [eax+0x04]
; byrRegs +[ecx]
- mov dword ptr [ecx], edi
+ mov dword ptr [ecx], esi
mov edx, dword ptr [ebp-0xF4]
mov dword ptr [ecx+0x04], edx
- mov dword ptr [eax+0x24], esi
- test esi, 32
+ mov dword ptr [eax+0x24], edi
+ test edi, 32
je SHORT G_M44013_IG21
- test esi, 8
+ test edi, 8
jne SHORT G_M44013_IG22
;; size=50 bbWeight=0.50 PerfScore 5.00
G_M44013_IG21: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
@@ -444,13 +446,13 @@ G_M44013_IG23: ; bbWeight=0.50, gcrefRegs=0000000A {ecx ebx}, byrefRegs=0
; byrRegs -[edx]
mov ecx, gword ptr [ebx+0x54]
; gcrRegs +[ecx]
- mov dword ptr [ebp-0x60], edi
- mov edi, dword ptr [ebp-0xF4]
- mov dword ptr [ebp-0x5C], edi
+ mov dword ptr [ebp-0x60], esi
+ mov esi, dword ptr [ebp-0xF4]
+ mov dword ptr [ebp-0x5C], esi
mov dword ptr [ebp-0x50], 5
mov dword ptr [ebp-0x4C], -1
mov dword ptr [ebp-0x48], -1
- mov dword ptr [ebp-0x44], esi
+ mov dword ptr [ebp-0x44], edi
cmp byte ptr [ecx], cl
push dword ptr [ebp-0x44]
push dword ptr [ebp-0x48]
@@ -476,37 +478,39 @@ G_M44013_IG23: ; bbWeight=0.50, gcrefRegs=0000000A {ecx ebx}, byrefRegs=0
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- mov esi, gword ptr [ebp-0x11C]
- ; gcrRegs +[esi]
+ mov edi, gword ptr [ebp-0x11C]
+ ; gcrRegs +[edi]
;; size=121 bbWeight=0.50 PerfScore 16.75
-G_M44013_IG24: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M44013_IG24: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
; GC ptr vars -{V33}
lea edx, bword ptr [ebx+0x30]
; byrRegs +[edx]
- call CORINFO_HELP_ASSIGN_REF_ESI
+ call CORINFO_HELP_ASSIGN_REF_EDI
; gcrRegs -[ebx]
; byrRegs -[edx]
- mov eax, esi
+ mov eax, edi
; gcrRegs +[eax]
;; size=10 bbWeight=0.50 PerfScore 0.88
G_M44013_IG25: ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[esi]
+ ; gcrRegs -[edi]
jmp G_M44013_IG52
;; size=5 bbWeight=0.50 PerfScore 1.00
G_M44013_IG26: ; bbWeight=0.25, gcVars=000000000000000002000000 {V33}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax] +[ebx]
; GC ptr vars +{V33}
- mov esi, gword ptr [ebp-0x11C]
- ; gcrRegs +[esi]
+ mov edi, gword ptr [ebp-0x11C]
+ ; gcrRegs +[edi]
jmp SHORT G_M44013_IG24
;; size=8 bbWeight=0.25 PerfScore 0.75
G_M44013_IG27: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[esi]
+ ; gcrRegs -[edi]
; GC ptr vars -{V33}
mov eax, gword ptr [ebx+0x34]
; gcrRegs +[eax]
test eax, eax
jne G_M44013_IG34
+ mov esi, ebx
+ ; gcrRegs +[esi]
push 0
push 0
push 1
@@ -517,25 +521,25 @@ G_M44013_IG27: ; bbWeight=0.50, gcVars=000000000000000000000000 {}, gcref
mov edx, 1
call [<unknown method>]
; gcrRegs -[eax]
- mov esi, eax
+ mov edi, eax
...
+40 (+0.57%) : 3836.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
@@ -30,11 +30,11 @@
; V19 loc17 [V19,T198] ( 3, 8 ) ubyte -> ecx
;* V20 loc18 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V21 loc19 [V21,T178] ( 3, 10 ) ref -> [ebp-0x2AC] class-hnd exact spill-single-def <System.Text.RegularExpressions.Symbolic.BDD>
-; V22 loc20 [V22,T301] ( 2, 0.50) ref -> ebx class-hnd exact <System.String>
-; V23 loc21 [V23,T302] ( 10, 0 ) ref -> esi class-hnd <System.String>
-; V24 loc22 [V24,T299] ( 6, 1.50) ubyte -> eax
+; V22 loc20 [V22,T297] ( 2, 0.50) ref -> ebx class-hnd exact <System.String>
+; V23 loc21 [V23,T298] ( 10, 0 ) ref -> esi class-hnd <System.String>
+; V24 loc22 [V24,T295] ( 6, 1.50) ubyte -> eax
;* V25 loc23 [V25 ] ( 0, 0 ) ubyte -> zero-ref
-; V26 loc24 [V26,T63] ( 2, 36 ) ref -> edi class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V26 loc24 [V26,T59] ( 2, 36 ) ref -> edi class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V27 loc25 [V27,T11] ( 5,132 ) int -> ebx
;* V28 loc26 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
; V29 loc27 [V29,T66] ( 6, 24 ) ref -> edi class-hnd <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -52,7 +52,7 @@
; V41 tmp4 [V41,T20] ( 3, 96 ) ref -> [ebp-0x2B4] class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.RegexNode>
; V42 tmp5 [V42,T13] ( 2,128 ) ref -> [ebp-0x2B8] class-hnd exact spill-single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]]>
;* V43 tmp6 [V43 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
-; V44 tmp7 [V44,T303] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V44 tmp7 [V44,T299] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
; V45 tmp8 [V45,T04] ( 4,160 ) ref -> [ebp-0x2BC] class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
; V46 tmp9 [V46,T77] ( 4, 24 ) ref -> ebx class-hnd exact "impAppendStmt" <<unknown class>>
;* V47 tmp10 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[System.__Canon]>
@@ -71,10 +71,10 @@
;* V60 tmp23 [V60 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V61 tmp24 [V61,T33] ( 14, 64 ) ref -> [ebp-0x2C4]
; V62 tmp25 [V62,T67] ( 6, 24 ) ref -> edi
-; V63 tmp26 [V63,T240] ( 3, 2 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
+; V63 tmp26 [V63,T244] ( 3, 2 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
; V64 tmp27 [V64,T226] ( 3, 5 ) int -> eax "Inlining Arg"
-; V65 tmp28 [V65,T237] ( 4, 3 ) int -> [ebp-0x20] spill-single-def "Inline stloc first use temp"
-; V66 tmp29 [V66,T239] ( 3, 2.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+; V65 tmp28 [V65,T241] ( 4, 3 ) int -> [ebp-0x20] spill-single-def "Inline stloc first use temp"
+; V66 tmp29 [V66,T243] ( 3, 2.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <<unknown class>>
;* V67 tmp30 [V67 ] ( 0, 0 ) struct (12) zero-ref "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]],System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]]>
;* V68 tmp31 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V69 tmp32 [V69,T97] ( 3, 20 ) ref -> edi class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.BDD>
@@ -93,14 +93,14 @@
;* V82 tmp45 [V82 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V83 tmp46 [V83,T142] ( 5, 10 ) ref -> [ebp-0x2CC] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V84 tmp47 [V84,T48] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V85 tmp48 [V85,T228] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V85 tmp48 [V85,T232] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V86 tmp49 [V86,T157] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V87 tmp50 [V87,T87] ( 5, 20 ) struct (28) [ebp-0x40] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V88 tmp51 [V88,T212] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V89 tmp52 [V89 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V90 tmp53 [V90,T243] ( 0, 0 ) ref -> zero-ref
+;* V90 tmp53 [V90,T247] ( 0, 0 ) ref -> zero-ref
;* V91 tmp54 [V91 ] ( 0, 0 ) ref -> zero-ref
-;* V92 tmp55 [V92,T244] ( 0, 0 ) ref -> zero-ref
+;* V92 tmp55 [V92,T248] ( 0, 0 ) ref -> zero-ref
; V93 tmp56 [V93,T158] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V94 tmp57 [V94,T88] ( 5, 20 ) struct (28) [ebp-0x5C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V95 tmp58 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -122,14 +122,14 @@
;* V111 tmp74 [V111 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V112 tmp75 [V112,T143] ( 5, 10 ) ref -> [ebp-0x2D4] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V113 tmp76 [V113,T49] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V114 tmp77 [V114,T229] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V114 tmp77 [V114,T233] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V115 tmp78 [V115,T159] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V116 tmp79 [V116,T89] ( 5, 20 ) struct (28) [ebp-0x7C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V117 tmp80 [V117,T213] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V118 tmp81 [V118 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V119 tmp82 [V119,T245] ( 0, 0 ) ref -> zero-ref
+;* V119 tmp82 [V119,T249] ( 0, 0 ) ref -> zero-ref
;* V120 tmp83 [V120 ] ( 0, 0 ) ref -> zero-ref
-;* V121 tmp84 [V121,T246] ( 0, 0 ) ref -> zero-ref
+;* V121 tmp84 [V121,T250] ( 0, 0 ) ref -> zero-ref
; V122 tmp85 [V122,T160] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V123 tmp86 [V123,T90] ( 5, 20 ) struct (28) [ebp-0x98] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V124 tmp87 [V124 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -154,14 +154,14 @@
;* V143 tmp106 [V143 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V144 tmp107 [V144,T144] ( 5, 10 ) ref -> [ebp-0x2DC] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V145 tmp108 [V145,T50] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V146 tmp109 [V146,T230] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V146 tmp109 [V146,T234] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V147 tmp110 [V147,T161] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V148 tmp111 [V148,T91] ( 5, 20 ) struct (28) [ebp-0xB8] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V149 tmp112 [V149,T214] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V150 tmp113 [V150 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V151 tmp114 [V151,T247] ( 0, 0 ) ref -> zero-ref
+;* V151 tmp114 [V151,T251] ( 0, 0 ) ref -> zero-ref
;* V152 tmp115 [V152 ] ( 0, 0 ) ref -> zero-ref
-;* V153 tmp116 [V153,T248] ( 0, 0 ) ref -> zero-ref
+;* V153 tmp116 [V153,T252] ( 0, 0 ) ref -> zero-ref
; V154 tmp117 [V154,T162] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V155 tmp118 [V155,T92] ( 5, 20 ) struct (28) [ebp-0xD4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V156 tmp119 [V156 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -201,14 +201,14 @@
; V190 tmp153 [V190,T15] ( 2,128 ) ref -> eax "CASTCLASS eval op1"
;* V191 tmp154 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V192 tmp155 [V192,T26] ( 4, 76 ) ref -> eax class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V193 tmp156 [V193,T61] ( 3, 36 ) ref -> [ebp-0x2EC] spill-single-def "CASTCLASS eval op1"
+; V193 tmp156 [V193,T57] ( 3, 36 ) ref -> [ebp-0x2EC] spill-single-def "CASTCLASS eval op1"
; V194 tmp157 [V194,T100] ( 3, 20 ) int -> edx "fgMakeTemp is creating a new local variable"
; V195 tmp158 [V195,T28] ( 6, 76 ) ref -> eax class-hnd "spilling QMark2" <<unknown class>>
; V196 tmp159 [V196,T41] ( 3, 48 ) ref -> ecx class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V197 tmp160 [V197,T16] ( 2,128 ) ref -> ecx "CASTCLASS eval op1"
;* V198 tmp161 [V198 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V199 tmp162 [V199,T27] ( 4, 76 ) ref -> ecx class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
-; V200 tmp163 [V200,T62] ( 3, 36 ) ref -> [ebp-0x2F0] spill-single-def "CASTCLASS eval op1"
+; V200 tmp163 [V200,T58] ( 3, 36 ) ref -> [ebp-0x2F0] spill-single-def "CASTCLASS eval op1"
; V201 tmp164 [V201,T101] ( 3, 20 ) int -> ecx "fgMakeTemp is creating a new local variable"
; V202 tmp165 [V202,T29] ( 6, 76 ) ref -> [ebp-0x2F4] class-hnd "spilling QMark2" <<unknown class>>
; V203 tmp166 [V203,T42] ( 3, 48 ) ref -> eax class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.DoublyLinkedList`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]][]>
@@ -233,14 +233,14 @@
;* V222 tmp185 [V222 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V223 tmp186 [V223,T145] ( 5, 10 ) ref -> [ebp-0x300] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V224 tmp187 [V224,T51] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V225 tmp188 [V225,T231] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V225 tmp188 [V225,T235] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V226 tmp189 [V226,T163] ( 3, 12 ) ref -> edx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V227 tmp190 [V227,T93] ( 5, 20 ) struct (28) [ebp-0x138] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V228 tmp191 [V228,T215] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V229 tmp192 [V229 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V230 tmp193 [V230,T249] ( 0, 0 ) ref -> zero-ref
+;* V230 tmp193 [V230,T253] ( 0, 0 ) ref -> zero-ref
;* V231 tmp194 [V231 ] ( 0, 0 ) ref -> zero-ref
-;* V232 tmp195 [V232,T250] ( 0, 0 ) ref -> zero-ref
+;* V232 tmp195 [V232,T254] ( 0, 0 ) ref -> zero-ref
; V233 tmp196 [V233,T164] ( 3, 12 ) ref -> eax class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V234 tmp197 [V234,T94] ( 5, 20 ) struct (28) [ebp-0x154] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V235 tmp198 [V235 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
@@ -261,38 +261,38 @@
;* V250 tmp213 [V250 ] ( 0, 0 ) struct ( 4) zero-ref "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
; V251 tmp214 [V251,T146] ( 5, 10 ) ref -> [ebp-0x30C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
; V252 tmp215 [V252,T52] ( 10, 40 ) ref -> eax class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V253 tmp216 [V253,T232] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V253 tmp216 [V253,T236] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V254 tmp217 [V254,T165] ( 3, 12 ) ref -> edx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V255 tmp218 [V255,T95] ( 5, 20 ) struct (28) [ebp-0x174] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V256 tmp219 [V256,T216] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
;* V257 tmp220 [V257 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
-;* V258 tmp221 [V258,T251] ( 0, 0 ) ref -> zero-ref
+;* V258 tmp221 [V258,T255] ( 0, 0 ) ref -> zero-ref
;* V259 tmp222 [V259 ] ( 0, 0 ) ref -> zero-ref
-;* V260 tmp223 [V260,T252] ( 0, 0 ) ref -> zero-ref
+;* V260 tmp223 [V260,T256] ( 0, 0 ) ref -> zero-ref
; V261 tmp224 [V261,T166] ( 3, 12 ) ref -> eax class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V262 tmp225 [V262,T96] ( 5, 20 ) struct (28) [ebp-0x190] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
;* V263 tmp226 [V263 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V264 tmp227 [V264 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V265 tmp228 [V265 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V266 tmp229 [V266,T57] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V266 tmp229 [V266,T60] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V267 tmp230 [V267,T111] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V268 tmp231 [V268,T138] ( 4, 14 ) ref -> edx
;* V269 tmp232 [V269 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V270 tmp233 [V270 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V271 tmp234 [V271 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V272 tmp235 [V272,T253] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V273 tmp236 [V273,T271] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V274 tmp237 [V274,T254] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V275 tmp238 [V275,T272] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V272 tmp235 [V272,T228] ( 2, 4 ) ref -> [ebp-0x310] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V273 tmp236 [V273,T267] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V274 tmp237 [V274 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V275 tmp238 [V275,T268] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V276 tmp239 [V276 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V277 tmp240 [V277 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V278 tmp241 [V278 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V279 tmp242 [V279,T185] ( 4, 8 ) ref -> [ebp-0x310] spill-single-def
+; V279 tmp242 [V279,T185] ( 4, 8 ) ref -> [ebp-0x314] spill-single-def
;* V280 tmp243 [V280 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V281 tmp244 [V281 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V282 tmp245 [V282,T147] ( 5, 10 ) ref -> [ebp-0x314] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V283 tmp246 [V283,T53] ( 10, 40 ) ref -> [ebp-0x318] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V284 tmp247 [V284,T233] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V282 tmp245 [V282,T147] ( 5, 10 ) ref -> [ebp-0x318] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V283 tmp246 [V283,T53] ( 10, 40 ) ref -> [ebp-0x31C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V284 tmp247 [V284,T237] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V285 tmp248 [V285,T167] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V286 tmp249 [V286,T68] ( 6, 24 ) struct (28) [ebp-0x1AC] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V287 tmp250 [V287,T217] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -305,25 +305,25 @@
;* V294 tmp257 [V294 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V295 tmp258 [V295 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V296 tmp259 [V296 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V297 tmp260 [V297,T58] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V297 tmp260 [V297,T61] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V298 tmp261 [V298,T112] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V299 tmp262 [V299,T139] ( 4, 14 ) ref -> edx
;* V300 tmp263 [V300 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V301 tmp264 [V301 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V302 tmp265 [V302 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V303 tmp266 [V303,T255] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V304 tmp267 [V304,T273] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V305 tmp268 [V305,T256] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V306 tmp269 [V306,T274] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V303 tmp266 [V303,T229] ( 2, 4 ) ref -> [ebp-0x320] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V304 tmp267 [V304,T269] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V305 tmp268 [V305 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V306 tmp269 [V306,T270] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V307 tmp270 [V307 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V308 tmp271 [V308 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V309 tmp272 [V309 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V310 tmp273 [V310,T186] ( 4, 8 ) ref -> [ebp-0x31C] spill-single-def
+; V310 tmp273 [V310,T186] ( 4, 8 ) ref -> [ebp-0x324] spill-single-def
;* V311 tmp274 [V311 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V312 tmp275 [V312 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V313 tmp276 [V313,T148] ( 5, 10 ) ref -> [ebp-0x320] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V314 tmp277 [V314,T54] ( 10, 40 ) ref -> [ebp-0x324] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V315 tmp278 [V315,T234] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V313 tmp276 [V313,T148] ( 5, 10 ) ref -> [ebp-0x328] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V314 tmp277 [V314,T54] ( 10, 40 ) ref -> [ebp-0x32C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V315 tmp278 [V315,T238] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V316 tmp279 [V316,T169] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V317 tmp280 [V317,T70] ( 6, 24 ) struct (28) [ebp-0x1E4] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V318 tmp281 [V318,T219] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -336,25 +336,25 @@
;* V325 tmp288 [V325 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V326 tmp289 [V326 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V327 tmp290 [V327 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V328 tmp291 [V328,T59] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
+; V328 tmp291 [V328,T62] ( 6, 32 ) ref -> edi class-hnd exact "Inlining Arg" <<unknown class>>
; V329 tmp292 [V329,T113] ( 2, 16 ) ref -> edx class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]>
; V330 tmp293 [V330,T140] ( 4, 14 ) ref -> edx
;* V331 tmp294 [V331 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V332 tmp295 [V332 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
;* V333 tmp296 [V333 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V334 tmp297 [V334,T257] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;* V335 tmp298 [V335,T275] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V336 tmp299 [V336,T258] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
-;* V337 tmp300 [V337,T276] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+; V334 tmp297 [V334,T230] ( 2, 4 ) ref -> [ebp-0x330] class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;* V335 tmp298 [V335,T271] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V336 tmp299 [V336 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
+;* V337 tmp300 [V337,T272] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V338 tmp301 [V338 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.BDD>
;* V339 tmp302 [V339 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V340 tmp303 [V340 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V341 tmp304 [V341,T187] ( 4, 8 ) ref -> [ebp-0x328] spill-single-def
+; V341 tmp304 [V341,T187] ( 4, 8 ) ref -> [ebp-0x334] spill-single-def
;* V342 tmp305 [V342 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.BDD>
;* V343 tmp306 [V343 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
-; V344 tmp307 [V344,T149] ( 5, 10 ) ref -> [ebp-0x32C] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-; V345 tmp308 [V345,T55] ( 10, 40 ) ref -> [ebp-0x330] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
-;* V346 tmp309 [V346,T235] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V344 tmp307 [V344,T149] ( 5, 10 ) ref -> [ebp-0x338] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+; V345 tmp308 [V345,T55] ( 10, 40 ) ref -> [ebp-0x33C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]>
+;* V346 tmp309 [V346,T239] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V347 tmp310 [V347,T171] ( 3, 12 ) ref -> ecx class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.__Canon],System.__Canon]>
; V348 tmp311 [V348,T72] ( 6, 24 ) struct (28) [ebp-0x21C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BDD]>
; V349 tmp312 [V349,T221] ( 3, 6 ) byref -> eax "Inline stloc first use temp"
@@ -367,25 +367,25 @@
...
coreclr_tests.run.windows.x86.checked.mch
-41 (-80.39%) : 486009.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
@@ -11,32 +11,15 @@
G_M094_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- vzeroupper
- ;; size=6 bbWeight=1 PerfScore 2.25
-G_M094_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- xor eax, eax
- mov edx, 44
- mul edx:eax, edx
- jb SHORT G_M094_IG04
- vxorps xmm0, xmm0, xmm0
- vcvtsi2sd xmm0, xmm0, eax
- vxorps xmm1, xmm1, xmm1
- xor eax, eax
- vucomisd xmm1, xmm0
- seta al
- inc eax
- dec eax
- add eax, 100
- ;; size=37 bbWeight=1 PerfScore 15.17
+ ;; size=3 bbWeight=1 PerfScore 1.25
+G_M094_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ mov eax, 100
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M094_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-G_M094_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- call CORINFO_HELP_OVERFLOW
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 51, prolog size 6, PerfScore 18.92, instruction count 20, allocated bytes for code 51 (MethodHash=477affa1) for method ILGEN_0xa7db44c0:main():int (Tier0)
+; Total bytes of code 10, prolog size 3, PerfScore 3.00, instruction count 5, allocated bytes for code 10 (MethodHash=477affa1) for method ILGEN_0xa7db44c0:main():int (Tier0)
; ============================================================
-42 (-79.25%) : 240524.dasm - ILGENCLASS:ILGENMETHOD(int):ubyte (FullOpts)
@@ -11,38 +11,21 @@
;* V01 loc0 [V01 ] ( 0, 0 ) short -> zero-ref
;* V02 loc1 [V02 ] ( 0, 0 ) ushort -> zero-ref
;* V03 tmp0 [V03 ] ( 0, 0 ) long -> zero-ref "dup spill"
-;* V04 rat0 [V04,T00] ( 0, 0 ) int -> zero-ref "field V03.lo (fldOffset=0x0)" P-INDEP
-;* V05 rat1 [V05,T01] ( 0, 0 ) int -> zero-ref "field V03.hi (fldOffset=0x4)" P-INDEP
+;* V04 rat0 [V04 ] ( 0, 0 ) int -> zero-ref "field V03.lo (fldOffset=0x0)" P-INDEP
+;* V05 rat1 [V05 ] ( 0, 0 ) int -> zero-ref "field V03.hi (fldOffset=0x4)" P-INDEP
;
; Lcl frame size = 0
-G_M33382_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M33382_IG01: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
-G_M33382_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- push 0xD1FFAB1E
- push 0xD1FFAB1E
- push 0xD1FFAB1E
- push 0xD1FFAB1E
- call CORINFO_HELP_LMUL_OVF
- xor eax, eax
- xor edx, edx
- not eax
- not edx
- test edx, edx
- jne SHORT G_M33382_IG04
- mov eax, 1
- ;; size=42 bbWeight=1 PerfScore 7.50
-G_M33382_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebp
- ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M33382_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=3 bbWeight=0 PerfScore 0.00
+G_M33382_IG02: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ xor ecx, ecx
call CORINFO_HELP_OVERFLOW
int3
- ;; size=6 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 53, prolog size 3, PerfScore 10.25, instruction count 18, allocated bytes for code 53 (MethodHash=572e7d99) for method ILGEN_CLASS:ILGEN_METHOD(int):ubyte (FullOpts)
+; Total bytes of code 11, prolog size 3, PerfScore 0.00, instruction count 5, allocated bytes for code 11 (MethodHash=572e7d99) for method ILGEN_CLASS:ILGEN_METHOD(int):ubyte (FullOpts)
; ============================================================
-38 (-79.17%) : 495074.dasm - _n:main():int (Tier0)
@@ -8,38 +8,18 @@
;
; Lcl frame size = 0
-G_M4754_IG01: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M4754_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- vzeroupper
- ;; size=6 bbWeight=1 PerfScore 2.25
-G_M4754_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- vmovsd xmm0, qword ptr [@RWD00]
- vxorps xmm0, xmm0, xmmword ptr [@RWD16]
- vucomisd xmm0, qword ptr [@RWD32]
- jp SHORT G_M4754_IG03
- je SHORT G_M4754_IG05
- ;; size=28 bbWeight=1 PerfScore 11.00
-G_M4754_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- mov eax, 5
- ;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG04: ; bbWeight=1, epilog, nogc, extend
- pop ebp
- ret
- ;; size=2 bbWeight=1 PerfScore 1.50
-G_M4754_IG05: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ;; size=3 bbWeight=1 PerfScore 1.25
+G_M4754_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, 100
;; size=5 bbWeight=1 PerfScore 0.25
-G_M4754_IG06: ; bbWeight=1, epilog, nogc, extend
+G_M4754_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-RWD00 dq 4058C66666666666h ; 99.1
-RWD08 dd 00000000h, 00000000h
-RWD16 dq 8000000000000000h, 8000000000000000h
-RWD32 dq C058C66666666666h ; -99.1
-
-; Total bytes of code 48, prolog size 6, PerfScore 16.75, instruction count 14, allocated bytes for code 48 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
+; Total bytes of code 10, prolog size 3, PerfScore 3.00, instruction count 5, allocated bytes for code 10 (MethodHash=9460ed6d) for method _n:main():int (Tier0)
; ============================================================
+48 (+8.42%) : 352528.dasm - JIT.HardwareIntrinsics.General.Vector5121.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (Tier0-FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 34 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T10] ( 4, 3 ) ref -> [ebp-0x10] this class-hnd single-def <JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64>
-; V01 arg1 [V01,T09] ( 13, 14.08) ref -> [ebp-0x14] class-hnd single-def <long[]>
-; V02 arg2 [V02,T08] ( 10, 17 ) ref -> esi class-hnd single-def <long[]>
-; V03 arg3 [V03,T16] ( 2, 1 ) ref -> [ebp+0x08] class-hnd single-def <System.String>
-;* V04 loc0 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
-; V05 loc1 [V05,T06] ( 12, 21.04) int -> edx
-; V06 loc2 [V06,T07] ( 12, 21.04) int -> edx
+; V00 this [V00,T09] ( 4, 3 ) ref -> [ebp-0x14] this class-hnd single-def <JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64>
+; V01 arg1 [V01,T06] ( 13, 14.08) ref -> esi class-hnd single-def <long[]>
+; V02 arg2 [V02,T07] ( 8, 13 ) ref -> [ebp+0x0C] class-hnd single-def <long[]>
+; V03 arg3 [V03,T15] ( 2, 1 ) ref -> [ebp+0x08] class-hnd single-def <System.String>
+;* V04 loc0 [V04,T10] ( 0, 0 ) ubyte -> zero-ref
+; V05 loc1 [V05,T00] ( 14, 25.04) int -> edx
+; V06 loc2 [V06,T01] ( 14, 25.04) int -> edx
;* V07 tmp0 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
@@ -41,44 +41,43 @@
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x4)" P-INDEP
;* V31 tmp24 [V31 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V32 tmp25 [V32 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x4)" P-INDEP
-; V33 tmp26 [V33,T17] ( 2, 1 ) byref -> ecx single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V34 tmp27 [V34,T21] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x4)" P-INDEP
+; V33 tmp26 [V33,T16] ( 2, 1 ) byref -> ecx single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V34 tmp27 [V34,T20] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x4)" P-INDEP
;* V35 tmp28 [V35 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP
;* V36 tmp29 [V36 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x4)" P-INDEP
;* V37 tmp30 [V37 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
;* V38 tmp31 [V38 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x4)" P-INDEP
-; V39 tmp32 [V39,T18] ( 2, 1 ) byref -> ecx single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V40 tmp33 [V40,T22] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x4)" P-INDEP
+; V39 tmp32 [V39,T17] ( 2, 1 ) byref -> ecx single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V40 tmp33 [V40,T21] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x4)" P-INDEP
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x4)" P-INDEP
;* V43 tmp36 [V43 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V44 tmp37 [V44 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x4)" P-INDEP
-; V45 tmp38 [V45,T19] ( 2, 1 ) byref -> ecx single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T23] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x4)" P-INDEP
+; V45 tmp38 [V45,T18] ( 2, 1 ) byref -> ecx single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T22] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x4)" P-INDEP
;* V47 tmp40 [V47 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x4)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x4)" P-INDEP
-; V51 tmp44 [V51,T20] ( 2, 1 ) byref -> ecx single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V52 tmp45 [V52,T24] ( 0, 0 ) int -> zero-ref single-def "field V26._length (fldOffset=0x4)" P-INDEP
-; V53 tmp46 [V53,T00] ( 6, 24 ) int -> registers "index expr"
+; V51 tmp44 [V51,T19] ( 2, 1 ) byref -> ecx single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V52 tmp45 [V52,T23] ( 0, 0 ) int -> zero-ref single-def "field V26._length (fldOffset=0x4)" P-INDEP
+; V53 tmp46 [V53,T11] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V54 tmp47 [V54,T12] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V55 tmp48 [V55,T13] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V56 tmp49 [V56,T01] ( 6, 24 ) int -> registers "index expr"
-; V57 tmp50 [V57,T14] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V58 tmp51 [V58,T15] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V59 rat0 [V59,T02] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V60 rat1 [V60,T03] ( 3, 23.76) byref -> ebx "ReplaceWithLclVar is creating a new local variable"
-; V61 rat2 [V61,T25] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V62 rat3 [V62,T26] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V63 rat4 [V63,T04] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V64 rat5 [V64,T05] ( 3, 23.76) byref -> ebx "ReplaceWithLclVar is creating a new local variable"
-; V65 rat6 [V65,T27] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V66 rat7 [V66,T28] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; TEMP_02 int -> [ebp-0x18]
-; TEMP_01 int -> [ebp-0x1C]
+; V56 tmp49 [V56,T14] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V57 cse0 [V57,T08] ( 6, 12 ) int -> [ebp-0x10] multi-def "CSE - aggressive"
+; V58 rat0 [V58,T02] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V59 rat1 [V59,T03] ( 3, 23.76) byref -> ebx "ReplaceWithLclVar is creating a new local variable"
+; V60 rat2 [V60,T24] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V61 rat3 [V61,T25] ( 3, 0.24) byref -> [ebp-0x18] spill-single-def "ReplaceWithLclVar is creating a new local variable"
+; V62 rat4 [V62,T04] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V63 rat5 [V63,T05] ( 3, 23.76) byref -> edi "ReplaceWithLclVar is creating a new local variable"
+; V64 rat6 [V64,T26] ( 3, 0.24) byref -> [ebp-0x1C] spill-single-def "ReplaceWithLclVar is creating a new local variable"
+; V65 rat7 [V65,T27] ( 3, 0.24) byref -> [ebp-0x20] spill-single-def "ReplaceWithLclVar is creating a new local variable"
+; TEMP_02 int -> [ebp-0x24]
+; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 16
+; Lcl frame size = 28
G_M48555_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -86,90 +85,103 @@ G_M48555_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 16
- mov gword ptr [ebp-0x10], ecx
+ sub esp, 28
+ mov gword ptr [ebp-0x14], ecx
; GC ptr vars +{V00}
- mov edi, edx
- ; gcrRegs +[edi]
- mov esi, gword ptr [ebp+0x0C]
+ mov esi, edx
; gcrRegs +[esi]
+ mov edi, gword ptr [ebp+0x0C]
+ ; gcrRegs +[edi]
;; size=17 bbWeight=1 PerfScore 6.75
-G_M48555_IG02: ; bbWeight=1, gcVars=00000400 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M48555_IG02: ; bbWeight=1, gcVars=00000200 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
xor edx, edx
- test edi, edi
+ test esi, esi
je SHORT G_M48555_IG06
- cmp dword ptr [edi+0x04], 4
+ cmp dword ptr [esi+0x04], 4
jl SHORT G_M48555_IG06
;; size=12 bbWeight=1 PerfScore 5.50
G_M48555_IG03: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov gword ptr [ebp-0x14], edi
- ; GC ptr vars +{V01}
- lea ecx, bword ptr [edi+8*edx+0x08]
+ lea ecx, bword ptr [esi+8*edx+0x08]
; byrRegs +[ecx]
mov eax, dword ptr [ecx]
mov ecx, dword ptr [ecx+0x04]
; byrRegs -[ecx]
lea ebx, [edx+0x04]
- cmp ebx, dword ptr [esi+0x04]
- jae G_M48555_IG17
- lea ebx, bword ptr [esi+8*ebx+0x08]
+ mov gword ptr [ebp+0x0C], edi
+ mov edi, dword ptr [edi+0x04]
+ ; gcrRegs -[edi]
+ mov dword ptr [ebp-0x10], edi
+ cmp ebx, edi
+ jae G_M48555_IG19
+ mov ebx, gword ptr [ebp+0x0C]
+ ; gcrRegs +[ebx]
+ lea ebx, bword ptr [ebx+8*edx+0x28]
+ ; gcrRegs -[ebx]
; byrRegs +[ebx]
mov edi, dword ptr [ebx]
- ; gcrRegs -[edi]
xor eax, edi
xor ecx, dword ptr [ebx+0x04]
or ecx, eax
jne SHORT G_M48555_IG05
inc edx
cmp edx, 4
- mov edi, gword ptr [ebp-0x14]
+ mov edi, gword ptr [ebp+0x0C]
; gcrRegs +[edi]
jl SHORT G_M48555_IG03
- ;; size=48 bbWeight=3.96 PerfScore 81.18
+ ;; size=56 bbWeight=3.96 PerfScore 86.13
G_M48555_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
; byrRegs -[ebx]
- ; GC ptr vars -{V01}
- jmp G_M48555_IG09
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48555_IG05: ; bbWeight=1.98, gcVars=00000600 {V00 V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ mov edx, dword ptr [ebp-0x10]
+ jmp G_M48555_IG10
+ ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M48555_IG05: ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[edi]
- ; GC ptr vars +{V01}
- mov edi, gword ptr [ebp-0x14]
+ mov edi, gword ptr [ebp+0x0C]
; gcrRegs +[edi]
- jmp SHORT G_M48555_IG08
+ jmp SHORT G_M48555_IG09
;; size=5 bbWeight=1.98 PerfScore 5.94
-G_M48555_IG06: ; bbWeight=0.04, gcVars=00000400 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; GC ptr vars -{V01}
- cmp edx, dword ptr [edi+0x04]
- jae G_M48555_IG17
- lea ecx, bword ptr [edi+8*edx+0x08]
+G_M48555_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ cmp edx, dword ptr [esi+0x04]
+ jae G_M48555_IG19
+ lea ecx, bword ptr [esi+8*edx+0x08]
; byrRegs +[ecx]
mov eax, dword ptr [ecx]
- mov dword ptr [ebp-0x18], eax
+ mov dword ptr [ebp-0x24], eax
mov ecx, dword ptr [ecx+0x04]
; byrRegs -[ecx]
- mov dword ptr [ebp-0x1C], ecx
+ mov dword ptr [ebp-0x28], ecx
lea ecx, [edx+0x04]
- cmp ecx, dword ptr [esi+0x04]
- jae G_M48555_IG17
- lea ecx, bword ptr [esi+8*ecx+0x08]
+ mov eax, dword ptr [edi+0x04]
+ cmp ecx, eax
+ jae G_M48555_IG19
+ lea ecx, bword ptr [edi+8*edx+0x28]
; byrRegs +[ecx]
- mov eax, dword ptr [ecx]
- xor eax, dword ptr [ebp-0x18]
- mov dword ptr [ebp-0x18], eax
- mov eax, dword ptr [ebp-0x1C]
- xor eax, dword ptr [ecx+0x04]
- or eax, dword ptr [ebp-0x18]
+ mov bword ptr [ebp-0x18], ecx
+ ; GC ptr vars +{V61}
+ mov ecx, dword ptr [ecx]
+ ; byrRegs -[ecx]
+ xor ecx, dword ptr [ebp-0x24]
+ mov dword ptr [ebp-0x24], ecx
+ mov ecx, dword ptr [ebp-0x28]
+ mov ebx, bword ptr [ebp-0x18]
+ ; byrRegs +[ebx]
+ xor ecx, dword ptr [ebx+0x04]
+ or ecx, dword ptr [ebp-0x24]
jne SHORT G_M48555_IG08
inc edx
cmp edx, 4
+ mov dword ptr [ebp-0x10], eax
jl SHORT G_M48555_IG06
- ;; size=65 bbWeight=0.04 PerfScore 1.20
+ ;; size=76 bbWeight=0.04 PerfScore 1.29
G_M48555_IG07: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- ; byrRegs -[ecx]
- jmp G_M48555_IG09
+ ; byrRegs -[ebx]
+ ; GC ptr vars -{V61}
+ jmp G_M48555_IG10
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M48555_IG08: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M48555_IG08: ; bbWeight=0.02, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ mov dword ptr [ebp-0x10], eax
+ ;; size=3 bbWeight=0.02 PerfScore 0.02
+G_M48555_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
push 0xD1FFAB1E
; gcr arg push 0
mov edx, gword ptr [ebp+0x08]
@@ -188,11 +200,12 @@ G_M48555_IG08: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
push 2
push ecx
; byr arg push 1
- mov ecx, esi
+ mov gword ptr [ebp+0x0C], edi
+ mov ecx, edi
; gcrRegs +[ecx]
; byrRegs -[ecx]
call [<unknown method>]
- ; gcrRegs -[ecx] +[eax]
+ ; gcrRegs -[ecx edi] +[eax]
; gcr arg pop 1
mov edx, eax
...
+48 (+8.42%) : 352568.dasm - JIT.HardwareIntrinsics.General.Vector5121.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (Tier0-FullOpts)
@@ -8,13 +8,13 @@
; 0 inlinees with PGO data; 34 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T10] ( 4, 3 ) ref -> [ebp-0x10] this class-hnd single-def <JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64>
-; V01 arg1 [V01,T09] ( 13, 14.08) ref -> [ebp-0x14] class-hnd single-def <ulong[]>
-; V02 arg2 [V02,T08] ( 10, 17 ) ref -> esi class-hnd single-def <ulong[]>
-; V03 arg3 [V03,T16] ( 2, 1 ) ref -> [ebp+0x08] class-hnd single-def <System.String>
-;* V04 loc0 [V04,T11] ( 0, 0 ) ubyte -> zero-ref
-; V05 loc1 [V05,T06] ( 12, 21.04) int -> edx
-; V06 loc2 [V06,T07] ( 12, 21.04) int -> edx
+; V00 this [V00,T09] ( 4, 3 ) ref -> [ebp-0x14] this class-hnd single-def <JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64>
+; V01 arg1 [V01,T06] ( 13, 14.08) ref -> esi class-hnd single-def <ulong[]>
+; V02 arg2 [V02,T07] ( 8, 13 ) ref -> [ebp+0x0C] class-hnd single-def <ulong[]>
+; V03 arg3 [V03,T15] ( 2, 1 ) ref -> [ebp+0x08] class-hnd single-def <System.String>
+;* V04 loc0 [V04,T10] ( 0, 0 ) ubyte -> zero-ref
+; V05 loc1 [V05,T00] ( 14, 25.04) int -> edx
+; V06 loc2 [V06,T01] ( 14, 25.04) int -> edx
;* V07 tmp0 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V08 tmp1 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V09 tmp2 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
@@ -41,44 +41,43 @@
;* V30 tmp23 [V30 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x4)" P-INDEP
;* V31 tmp24 [V31 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
;* V32 tmp25 [V32 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x4)" P-INDEP
-; V33 tmp26 [V33,T17] ( 2, 1 ) byref -> ecx single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V34 tmp27 [V34,T21] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x4)" P-INDEP
+; V33 tmp26 [V33,T16] ( 2, 1 ) byref -> ecx single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V34 tmp27 [V34,T20] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x4)" P-INDEP
;* V35 tmp28 [V35 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP
;* V36 tmp29 [V36 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x4)" P-INDEP
;* V37 tmp30 [V37 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP
;* V38 tmp31 [V38 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x4)" P-INDEP
-; V39 tmp32 [V39,T18] ( 2, 1 ) byref -> ecx single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V40 tmp33 [V40,T22] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x4)" P-INDEP
+; V39 tmp32 [V39,T17] ( 2, 1 ) byref -> ecx single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V40 tmp33 [V40,T21] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x4)" P-INDEP
;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
;* V42 tmp35 [V42 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x4)" P-INDEP
;* V43 tmp36 [V43 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V44 tmp37 [V44 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x4)" P-INDEP
-; V45 tmp38 [V45,T19] ( 2, 1 ) byref -> ecx single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V46 tmp39 [V46,T23] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x4)" P-INDEP
+; V45 tmp38 [V45,T18] ( 2, 1 ) byref -> ecx single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V46 tmp39 [V46,T22] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x4)" P-INDEP
;* V47 tmp40 [V47 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V48 tmp41 [V48 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x4)" P-INDEP
;* V49 tmp42 [V49 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V50 tmp43 [V50 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x4)" P-INDEP
-; V51 tmp44 [V51,T20] ( 2, 1 ) byref -> ecx single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V52 tmp45 [V52,T24] ( 0, 0 ) int -> zero-ref single-def "field V26._length (fldOffset=0x4)" P-INDEP
-; V53 tmp46 [V53,T00] ( 6, 24 ) int -> registers "index expr"
+; V51 tmp44 [V51,T19] ( 2, 1 ) byref -> ecx single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V52 tmp45 [V52,T23] ( 0, 0 ) int -> zero-ref single-def "field V26._length (fldOffset=0x4)" P-INDEP
+; V53 tmp46 [V53,T11] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V54 tmp47 [V54,T12] ( 2, 2 ) ref -> edx single-def "argument with side effect"
; V55 tmp48 [V55,T13] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V56 tmp49 [V56,T01] ( 6, 24 ) int -> registers "index expr"
-; V57 tmp50 [V57,T14] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V58 tmp51 [V58,T15] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V59 rat0 [V59,T02] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V60 rat1 [V60,T03] ( 3, 23.76) byref -> ebx "ReplaceWithLclVar is creating a new local variable"
-; V61 rat2 [V61,T25] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V62 rat3 [V62,T26] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V63 rat4 [V63,T04] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V64 rat5 [V64,T05] ( 3, 23.76) byref -> ebx "ReplaceWithLclVar is creating a new local variable"
-; V65 rat6 [V65,T27] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V66 rat7 [V66,T28] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
-; TEMP_02 int -> [ebp-0x18]
-; TEMP_01 int -> [ebp-0x1C]
+; V56 tmp49 [V56,T14] ( 2, 2 ) ref -> edx single-def "argument with side effect"
+; V57 cse0 [V57,T08] ( 6, 12 ) int -> [ebp-0x10] multi-def "CSE - aggressive"
+; V58 rat0 [V58,T02] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V59 rat1 [V59,T03] ( 3, 23.76) byref -> ebx "ReplaceWithLclVar is creating a new local variable"
+; V60 rat2 [V60,T24] ( 3, 0.24) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V61 rat3 [V61,T25] ( 3, 0.24) byref -> [ebp-0x18] spill-single-def "ReplaceWithLclVar is creating a new local variable"
+; V62 rat4 [V62,T04] ( 3, 23.76) byref -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V63 rat5 [V63,T05] ( 3, 23.76) byref -> edi "ReplaceWithLclVar is creating a new local variable"
+; V64 rat6 [V64,T26] ( 3, 0.24) byref -> [ebp-0x1C] spill-single-def "ReplaceWithLclVar is creating a new local variable"
+; V65 rat7 [V65,T27] ( 3, 0.24) byref -> [ebp-0x20] spill-single-def "ReplaceWithLclVar is creating a new local variable"
+; TEMP_02 int -> [ebp-0x24]
+; TEMP_01 int -> [ebp-0x28]
;
-; Lcl frame size = 16
+; Lcl frame size = 28
G_M990_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -86,90 +85,103 @@ G_M990_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 16
- mov gword ptr [ebp-0x10], ecx
+ sub esp, 28
+ mov gword ptr [ebp-0x14], ecx
; GC ptr vars +{V00}
- mov edi, edx
- ; gcrRegs +[edi]
- mov esi, gword ptr [ebp+0x0C]
+ mov esi, edx
; gcrRegs +[esi]
+ mov edi, gword ptr [ebp+0x0C]
+ ; gcrRegs +[edi]
;; size=17 bbWeight=1 PerfScore 6.75
-G_M990_IG02: ; bbWeight=1, gcVars=00000400 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M990_IG02: ; bbWeight=1, gcVars=00000200 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
xor edx, edx
- test edi, edi
+ test esi, esi
je SHORT G_M990_IG06
- cmp dword ptr [edi+0x04], 4
+ cmp dword ptr [esi+0x04], 4
jl SHORT G_M990_IG06
;; size=12 bbWeight=1 PerfScore 5.50
G_M990_IG03: ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov gword ptr [ebp-0x14], edi
- ; GC ptr vars +{V01}
- lea ecx, bword ptr [edi+8*edx+0x08]
+ lea ecx, bword ptr [esi+8*edx+0x08]
; byrRegs +[ecx]
mov eax, dword ptr [ecx]
mov ecx, dword ptr [ecx+0x04]
; byrRegs -[ecx]
lea ebx, [edx+0x04]
- cmp ebx, dword ptr [esi+0x04]
- jae G_M990_IG17
- lea ebx, bword ptr [esi+8*ebx+0x08]
+ mov gword ptr [ebp+0x0C], edi
+ mov edi, dword ptr [edi+0x04]
+ ; gcrRegs -[edi]
+ mov dword ptr [ebp-0x10], edi
+ cmp ebx, edi
+ jae G_M990_IG19
+ mov ebx, gword ptr [ebp+0x0C]
+ ; gcrRegs +[ebx]
+ lea ebx, bword ptr [ebx+8*edx+0x28]
+ ; gcrRegs -[ebx]
; byrRegs +[ebx]
mov edi, dword ptr [ebx]
- ; gcrRegs -[edi]
xor eax, edi
xor ecx, dword ptr [ebx+0x04]
or ecx, eax
jne SHORT G_M990_IG05
inc edx
cmp edx, 4
- mov edi, gword ptr [ebp-0x14]
+ mov edi, gword ptr [ebp+0x0C]
; gcrRegs +[edi]
jl SHORT G_M990_IG03
- ;; size=48 bbWeight=3.96 PerfScore 81.18
+ ;; size=56 bbWeight=3.96 PerfScore 86.13
G_M990_IG04: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
; byrRegs -[ebx]
- ; GC ptr vars -{V01}
- jmp G_M990_IG09
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M990_IG05: ; bbWeight=1.98, gcVars=00000600 {V00 V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ mov edx, dword ptr [ebp-0x10]
+ jmp G_M990_IG10
+ ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M990_IG05: ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[edi]
- ; GC ptr vars +{V01}
- mov edi, gword ptr [ebp-0x14]
+ mov edi, gword ptr [ebp+0x0C]
; gcrRegs +[edi]
- jmp SHORT G_M990_IG08
+ jmp SHORT G_M990_IG09
;; size=5 bbWeight=1.98 PerfScore 5.94
-G_M990_IG06: ; bbWeight=0.04, gcVars=00000400 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; GC ptr vars -{V01}
- cmp edx, dword ptr [edi+0x04]
- jae G_M990_IG17
- lea ecx, bword ptr [edi+8*edx+0x08]
+G_M990_IG06: ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ cmp edx, dword ptr [esi+0x04]
+ jae G_M990_IG19
+ lea ecx, bword ptr [esi+8*edx+0x08]
; byrRegs +[ecx]
mov eax, dword ptr [ecx]
- mov dword ptr [ebp-0x18], eax
+ mov dword ptr [ebp-0x24], eax
mov ecx, dword ptr [ecx+0x04]
; byrRegs -[ecx]
- mov dword ptr [ebp-0x1C], ecx
+ mov dword ptr [ebp-0x28], ecx
lea ecx, [edx+0x04]
- cmp ecx, dword ptr [esi+0x04]
- jae G_M990_IG17
- lea ecx, bword ptr [esi+8*ecx+0x08]
+ mov eax, dword ptr [edi+0x04]
+ cmp ecx, eax
+ jae G_M990_IG19
+ lea ecx, bword ptr [edi+8*edx+0x28]
; byrRegs +[ecx]
- mov eax, dword ptr [ecx]
- xor eax, dword ptr [ebp-0x18]
- mov dword ptr [ebp-0x18], eax
- mov eax, dword ptr [ebp-0x1C]
- xor eax, dword ptr [ecx+0x04]
- or eax, dword ptr [ebp-0x18]
+ mov bword ptr [ebp-0x18], ecx
+ ; GC ptr vars +{V61}
+ mov ecx, dword ptr [ecx]
+ ; byrRegs -[ecx]
+ xor ecx, dword ptr [ebp-0x24]
+ mov dword ptr [ebp-0x24], ecx
+ mov ecx, dword ptr [ebp-0x28]
+ mov ebx, bword ptr [ebp-0x18]
+ ; byrRegs +[ebx]
+ xor ecx, dword ptr [ebx+0x04]
+ or ecx, dword ptr [ebp-0x24]
jne SHORT G_M990_IG08
inc edx
cmp edx, 4
+ mov dword ptr [ebp-0x10], eax
jl SHORT G_M990_IG06
- ;; size=65 bbWeight=0.04 PerfScore 1.20
+ ;; size=76 bbWeight=0.04 PerfScore 1.29
G_M990_IG07: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
- ; byrRegs -[ecx]
- jmp G_M990_IG09
+ ; byrRegs -[ebx]
+ ; GC ptr vars -{V61}
+ jmp G_M990_IG10
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M990_IG08: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M990_IG08: ; bbWeight=0.02, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+ mov dword ptr [ebp-0x10], eax
+ ;; size=3 bbWeight=0.02 PerfScore 0.02
+G_M990_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
push 0xD1FFAB1E
; gcr arg push 0
mov edx, gword ptr [ebp+0x08]
@@ -188,11 +200,12 @@ G_M990_IG08: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=000
push 2
push ecx
; byr arg push 1
- mov ecx, esi
+ mov gword ptr [ebp+0x0C], edi
+ mov ecx, edi
; gcrRegs +[ecx]
; byrRegs -[ecx]
call [<unknown method>]
- ; gcrRegs -[ecx] +[eax]
+ ; gcrRegs -[ecx edi] +[eax]
; gcr arg pop 1
mov edx, eax
...
+3 (+17.65%) : 485071.dasm - ILGEN_622380794:main():int (Tier0)
@@ -13,14 +13,15 @@ G_M30338_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M30338_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- shl dword ptr [D1FFAB1EH], 0
+ mov eax, dword ptr [D1FFAB1EH] ; static handle
+ mov dword ptr [D1FFAB1EH], eax
mov eax, 100
- ;; size=12 bbWeight=1 PerfScore 4.25
+ ;; size=15 bbWeight=1 PerfScore 3.25
G_M30338_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 17, prolog size 3, PerfScore 7.00, instruction count 6, allocated bytes for code 17 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
+; Total bytes of code 20, prolog size 3, PerfScore 6.00, instruction count 7, allocated bytes for code 20 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (Tier0)
; ============================================================
libraries.crossgen2.windows.x86.checked.mch
-4 (-40.00%) : 7212.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
@@ -3,7 +3,7 @@
; FullOpts code
; ReadyToRun compilation
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
@@ -12,23 +12,18 @@
;* V00 tmp0 [V00 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Rune>
;* V01 tmp1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V02 tmp2 [V02 ] ( 0, 0 ) int -> zero-ref "field V00._value (fldOffset=0x0)" P-INDEP
-;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
; Lcl frame size = 0
G_M7284_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M7284_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, 0xFFFD
;; size=5 bbWeight=1 PerfScore 0.25
G_M7284_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 10, prolog size 3, PerfScore 3.00, instruction count 5, allocated bytes for code 10 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 1.25, instruction count 2, allocated bytes for code 6 (MethodHash=a530e38b) for method System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
; ============================================================
-2 (-3.03%) : 114529.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -8,46 +8,44 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> esi single-def
-; V01 loc0 [V01,T07] ( 2, 2 ) ubyte -> edx single-def
-; V02 tmp0 [V02,T00] ( 3, 6 ) ref -> edx single-def "arr expr"
-; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> eax single-def "arr expr"
-; V04 tmp2 [V04,T02] ( 3, 6 ) int -> edx "index expr"
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> ebx single-def
+; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> edx single-def
+; V02 tmp0 [V02,T01] ( 3, 6 ) ref -> edx single-def "arr expr"
+; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> eax single-def "arr expr"
+; V04 tmp2 [V04,T03] ( 3, 6 ) int -> edx "index expr"
; V05 cse0 [V05,T04] ( 3, 3 ) byref -> eax "CSE - aggressive"
-; V06 cse1 [V06,T05] ( 3, 3 ) int -> esi "CSE - aggressive"
-; V07 cse2 [V07,T06] ( 3, 3 ) int -> ecx "CSE - aggressive"
+; V06 cse1 [V06,T05] ( 3, 3 ) int -> ecx "CSE - aggressive"
;
; Lcl frame size = 0
G_M53790_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi
- mov esi, ecx
+ push ebx
+ mov ebx, ecx
;; size=3 bbWeight=1 PerfScore 1.25
G_M53790_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
; byrRegs +[eax]
mov edx, gword ptr [eax+0x0784]
; gcrRegs +[edx]
- movzx ecx, si
- mov esi, ecx
- sar esi, 8
- cmp esi, dword ptr [edx+0x04]
+ movzx ecx, bx
+ sar ecx, 8
+ cmp ecx, dword ptr [edx+0x04]
jae SHORT G_M53790_IG04
- movzx edx, byte ptr [edx+esi+0x08]
+ movzx edx, byte ptr [edx+ecx+0x08]
; gcrRegs -[edx]
mov eax, gword ptr [eax+0x0788]
; gcrRegs +[eax]
; byrRegs -[eax]
shl edx, 8
- movzx ecx, cl
+ movzx ecx, bl
add edx, ecx
cmp edx, dword ptr [eax+0x04]
jae SHORT G_M53790_IG04
movzx eax, byte ptr [eax+edx+0x08]
; gcrRegs -[eax]
- ;; size=54 bbWeight=1 PerfScore 21.00
+ ;; size=52 bbWeight=1 PerfScore 20.75
G_M53790_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
+ pop ebx
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M53790_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
@@ -55,6 +53,6 @@ G_M53790_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 66, prolog size 1, PerfScore 23.75, instruction count 21, allocated bytes for code 66 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
+; Total bytes of code 64, prolog size 1, PerfScore 23.50, instruction count 20, allocated bytes for code 64 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
; ============================================================
-2 (-3.03%) : 128215.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -8,46 +8,44 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> esi single-def
-; V01 loc0 [V01,T07] ( 2, 2 ) ubyte -> edx single-def
-; V02 tmp0 [V02,T00] ( 3, 6 ) ref -> edx single-def "arr expr"
-; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> eax single-def "arr expr"
-; V04 tmp2 [V04,T02] ( 3, 6 ) int -> edx "index expr"
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> ebx single-def
+; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> edx single-def
+; V02 tmp0 [V02,T01] ( 3, 6 ) ref -> edx single-def "arr expr"
+; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> eax single-def "arr expr"
+; V04 tmp2 [V04,T03] ( 3, 6 ) int -> edx "index expr"
; V05 cse0 [V05,T04] ( 3, 3 ) byref -> eax "CSE - aggressive"
-; V06 cse1 [V06,T05] ( 3, 3 ) int -> esi "CSE - aggressive"
-; V07 cse2 [V07,T06] ( 3, 3 ) int -> ecx "CSE - aggressive"
+; V06 cse1 [V06,T05] ( 3, 3 ) int -> ecx "CSE - aggressive"
;
; Lcl frame size = 0
G_M53790_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push esi
- mov esi, ecx
+ push ebx
+ mov ebx, ecx
;; size=3 bbWeight=1 PerfScore 1.25
G_M53790_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
; byrRegs +[eax]
mov edx, gword ptr [eax+0x0778]
; gcrRegs +[edx]
- movzx ecx, si
- mov esi, ecx
- sar esi, 8
- cmp esi, dword ptr [edx+0x04]
+ movzx ecx, bx
+ sar ecx, 8
+ cmp ecx, dword ptr [edx+0x04]
jae SHORT G_M53790_IG04
- movzx edx, byte ptr [edx+esi+0x08]
+ movzx edx, byte ptr [edx+ecx+0x08]
; gcrRegs -[edx]
mov eax, gword ptr [eax+0x077C]
; gcrRegs +[eax]
; byrRegs -[eax]
shl edx, 8
- movzx ecx, cl
+ movzx ecx, bl
add edx, ecx
cmp edx, dword ptr [eax+0x04]
jae SHORT G_M53790_IG04
movzx eax, byte ptr [eax+edx+0x08]
; gcrRegs -[eax]
- ;; size=54 bbWeight=1 PerfScore 21.00
+ ;; size=52 bbWeight=1 PerfScore 20.75
G_M53790_IG03: ; bbWeight=1, epilog, nogc, extend
- pop esi
+ pop ebx
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M53790_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
@@ -55,6 +53,6 @@ G_M53790_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 66, prolog size 1, PerfScore 23.75, instruction count 21, allocated bytes for code 66 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
+; Total bytes of code 64, prolog size 1, PerfScore 23.50, instruction count 20, allocated bytes for code 64 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
; ============================================================
+0 (0.00%) : 21960.dasm - System.SpanHelpers:Fillulong (FullOpts)
@@ -14,7 +14,7 @@
;* V02 arg2 [V02 ] ( 0, 0 ) long -> zero-ref single-def
; V03 loc0 [V03,T00] ( 23, 50 ) int -> eax
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref ld-addr-op
-; V05 loc2 [V05,T31] ( 5, 9.50) simd16 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
+; V05 loc2 [V05,T30] ( 5, 9.50) simd16 -> mm0 ld-addr-op <System.Numerics.Vector`1[ubyte]>
; V06 loc3 [V06,T14] ( 5, 9.50) byref -> ecx single-def
; V07 loc4 [V07,T25] ( 4, 2 ) int -> eax
; V08 loc5 [V08,T16] ( 2, 4.50) int -> esi
@@ -24,8 +24,8 @@
; V12 tmp0 [V12,T13] ( 2, 16 ) int -> eax "dup spill"
; V13 tmp1 [V13 ] ( 6, 6 ) simd16 -> [ebp-0x1C] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ulong]>
;* V14 tmp2 [V14 ] ( 0, 0 ) simd16 -> zero-ref
-;* V15 tmp3 [V15,T29] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V16 tmp4 [V16,T30] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V15 tmp3 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V16 tmp4 [V16,T29] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V17 tmp5 [V17 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V18 tmp6 [V18,T28] ( 0, 0 ) int -> zero-ref
;* V19 tmp7 [V19 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+0 (0.00%) : 214420.dasm - System.Net.HttpValidationHelpers:CheckBadHeaderValueChars(System.String):System.String (FullOpts)
@@ -8,10 +8,10 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 8, 9 ) ref -> ebx class-hnd <System.String>
+; V00 arg0 [V00,T03] ( 8, 9 ) ref -> esi class-hnd <System.String>
; V01 loc0 [V01,T01] ( 7, 21 ) int -> edx
; V02 loc1 [V02,T02] ( 5, 16.50) int -> [ebp-0x10]
-; V03 loc2 [V03,T00] ( 9, 52 ) ushort -> eax
+; V03 loc2 [V03,T00] ( 9, 52 ) ushort -> ebx
; V04 tmp0 [V04,T06] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
; V05 tmp1 [V05,T10] ( 2, 0 ) ref -> esi class-hnd "finalizable newobj spill" <System.String>
; V06 tmp2 [V06,T07] ( 3, 0 ) ref -> edi class-hnd exact "NewObj constructor temp" <<unknown class>>
@@ -21,7 +21,7 @@
; V10 tmp6 [V10,T09] ( 3, 0 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V11 tmp7 [V11,T13] ( 2, 0 ) ref -> esi class-hnd single-def "finalizable newobj spill" <System.String>
; V12 tmp8 [V12,T05] ( 2, 2 ) ref -> edx single-def "argument with side effect"
-; V13 cse0 [V13,T04] ( 3, 5 ) int -> esi "CSE - aggressive"
+; V13 cse0 [V13,T04] ( 3, 5 ) int -> edi "CSE - aggressive"
;
; Lcl frame size = 4
@@ -32,11 +32,11 @@ G_M46265_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push esi
push ebx
push eax
- mov ebx, ecx
- ; gcrRegs +[ebx]
+ mov esi, ecx
+ ; gcrRegs +[esi]
;; size=9 bbWeight=1 PerfScore 5.50
-G_M46265_IG02: ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- mov ecx, ebx
+G_M46265_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, esi
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
@@ -44,7 +44,7 @@ G_M46265_IG02: ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
je SHORT G_M46265_IG05
;; size=12 bbWeight=1 PerfScore 4.50
G_M46265_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[ebx]
+ ; gcrRegs -[esi]
mov eax, dword ptr [(reloc)] ; const ptr
mov eax, gword ptr [eax]
; gcrRegs +[eax]
@@ -57,74 +57,74 @@ G_M46265_IG04: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
;; size=6 bbWeight=0.50 PerfScore 1.75
-G_M46265_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[eax] +[ebx]
+G_M46265_IG05: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs -[eax] +[esi]
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
; byrRegs +[eax]
mov edx, gword ptr [eax+0xC4]
; gcrRegs +[edx]
- mov ecx, ebx
+ mov ecx, esi
; gcrRegs +[ecx]
cmp dword ptr [ecx], ecx
call [<unknown method>]
- ; gcrRegs -[ecx edx ebx] +[eax]
+ ; gcrRegs -[ecx edx esi] +[eax]
; byrRegs -[eax]
- mov ebx, eax
- ; gcrRegs +[ebx]
+ mov esi, eax
+ ; gcrRegs +[esi]
xor edx, edx
xor ecx, ecx
- mov esi, dword ptr [ebx+0x04]
- test esi, esi
+ mov edi, dword ptr [esi+0x04]
+ test edi, edi
jle SHORT G_M46265_IG13
;; size=35 bbWeight=0.50 PerfScore 7.62
-G_M46265_IG06: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M46265_IG06: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
- movzx eax, byte ptr [ebx+2*ecx+0x08]
+ movzx ebx, byte ptr [esi+2*ecx+0x08]
cmp edx, 2
ja SHORT G_M46265_IG11
mov dword ptr [ebp-0x10], ecx
- lea edi, [reloc @RWD00]
- mov edi, dword ptr [edi+4*edx]
+ lea eax, [reloc @RWD00]
+ mov eax, dword ptr [eax+4*edx]
lea ecx, G_M46265_IG02
- add edi, ecx
- jmp edi
+ add eax, ecx
+ jmp eax
;; size=32 bbWeight=4 PerfScore 40.00
-G_M46265_IG07: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- cmp eax, 13
+G_M46265_IG07: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ cmp ebx, 13
jne SHORT G_M46265_IG08
mov edx, 1
mov ecx, dword ptr [ebp-0x10]
jmp SHORT G_M46265_IG11
;; size=15 bbWeight=2 PerfScore 9.00
-G_M46265_IG08: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- cmp eax, 10
+G_M46265_IG08: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ cmp ebx, 10
jne SHORT G_M46265_IG10
;; size=5 bbWeight=2 PerfScore 2.50
-G_M46265_IG09: ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M46265_IG09: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edx, 2
mov ecx, dword ptr [ebp-0x10]
jmp SHORT G_M46265_IG11
;; size=10 bbWeight=8 PerfScore 26.00
-G_M46265_IG10: ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- cmp eax, 127
+G_M46265_IG10: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ cmp ebx, 127
je SHORT G_M46265_IG20
- cmp eax, 32
+ cmp ebx, 32
mov ecx, dword ptr [ebp-0x10]
jge SHORT G_M46265_IG11
- cmp eax, 9
+ cmp ebx, 9
jne SHORT G_M46265_IG20
;; size=18 bbWeight=8 PerfScore 38.00
-G_M46265_IG11: ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M46265_IG11: ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
inc ecx
- cmp esi, ecx
+ cmp edi, ecx
jg SHORT G_M46265_IG06
;; size=5 bbWeight=4 PerfScore 6.00
-G_M46265_IG12: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M46265_IG12: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
test edx, edx
jne SHORT G_M46265_IG19
;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M46265_IG13: ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
- mov eax, ebx
+G_M46265_IG13: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+ mov eax, esi
; gcrRegs +[eax]
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M46265_IG14: ; bbWeight=0.50, epilog, nogc, extend
@@ -135,27 +135,27 @@ G_M46265_IG14: ; bbWeight=0.50, epilog, nogc, extend
pop ebp
ret
;; size=6 bbWeight=0.50 PerfScore 1.75
-G_M46265_IG15: ; bbWeight=16, gcVars=00000000 {}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M46265_IG15: ; bbWeight=16, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax]
- cmp eax, 10
+ cmp ebx, 10
jne SHORT G_M46265_IG21
;; size=5 bbWeight=16 PerfScore 20.00
-G_M46265_IG16: ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M46265_IG16: ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
jmp SHORT G_M46265_IG09
;; size=2 bbWeight=8 PerfScore 16.00
-G_M46265_IG17: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
- cmp eax, 32
+G_M46265_IG17: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ cmp ebx, 32
je SHORT G_M46265_IG18
- cmp eax, 9
+ cmp ebx, 9
jne G_M46265_IG22
;; size=14 bbWeight=2 PerfScore 5.00
-G_M46265_IG18: ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M46265_IG18: ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
xor edx, edx
mov ecx, dword ptr [ebp-0x10]
jmp SHORT G_M46265_IG11
;; size=7 bbWeight=2 PerfScore 6.50
G_M46265_IG19: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- ; gcrRegs -[ebx]
+ ; gcrRegs -[esi]
call [<unknown method>]
; gcrRegs +[eax]
mov esi, eax
+5 (+2.59%) : 223642.dasm - System.Management.PropertyDataCollection+PropertyDataEnumerator:.ctor(System.Management.ManagementBaseObject,ubyte):this (FullOpts)
@@ -11,16 +11,17 @@
;
; V00 this [V00,T00] ( 6, 6 ) ref -> esi this class-hnd single-def <System.Management.PropertyDataCollection+PropertyDataEnumerator>
; V01 arg1 [V01,T01] ( 6, 5.50) ref -> edi class-hnd single-def <System.Management.ManagementBaseObject>
-; V02 arg2 [V02,T08] ( 1, 1 ) ubyte -> [ebp+0x08] single-def
-; V03 loc0 [V03,T06] ( 2, 2 ) int -> ebx
+; V02 arg2 [V02,T09] ( 1, 1 ) ubyte -> [ebp+0x08] single-def
+; V03 loc0 [V03,T07] ( 2, 2 ) int -> ebx
; V04 loc1 [V04 ] ( 1, 1 ) ref -> [ebp-0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object>
; V05 loc2 [V05,T03] ( 5, 3.50) int -> esi single-def
; V06 tmp0 [V06,T02] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
-; V07 tmp1 [V07,T07] ( 2, 2 ) int -> edx "argument with side effect"
-; V08 rat0 [V08,T05] ( 3, 3 ) int -> ecx "ReplaceWithLclVar is creating a new local variable"
-; V09 rat1 [V09,T04] ( 3, 3 ) ref -> eax "delegate invoke call"
+; V07 tmp1 [V07,T08] ( 2, 2 ) int -> edx "argument with side effect"
+; V08 cse0 [V08,T05] ( 3, 3 ) int -> [ebp-0x14] spill-single-def "CSE - aggressive"
+; V09 rat0 [V09,T06] ( 3, 3 ) int -> ecx "ReplaceWithLclVar is creating a new local variable"
+; V10 rat1 [V10,T04] ( 3, 3 ) ref -> eax "delegate invoke call"
;
-; Lcl frame size = 4
+; Lcl frame size = 8
G_M5000_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -28,14 +29,14 @@ G_M5000_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- push eax
+ sub esp, 8
xor eax, eax
mov dword ptr [ebp-0x10], eax
mov esi, ecx
; gcrRegs +[esi]
mov edi, edx
; gcrRegs +[edi]
- ;; size=16 bbWeight=1 PerfScore 7.00
+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M5000_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
lea edx, bword ptr [esi+0x04]
; byrRegs +[edx]
@@ -50,10 +51,11 @@ G_M5000_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
; gcrRegs -[ecx]
cmp byte ptr [ebp+0x08], 0
cmovne ebx, ecx
- mov ecx, dword ptr [(reloc)] ; const ptr
- cmp gword ptr [edi+ecx], 0
+ mov eax, dword ptr [(reloc)] ; const ptr
+ mov dword ptr [ebp-0x14], eax
+ cmp gword ptr [edi+eax], 0
jne SHORT G_M5000_IG04
- ;; size=50 bbWeight=1 PerfScore 14.50
+ ;; size=52 bbWeight=1 PerfScore 15.50
G_M5000_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
mov ecx, edi
; gcrRegs +[ecx]
@@ -63,8 +65,8 @@ G_M5000_IG03: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00
; gcrRegs -[ecx]
;; size=15 bbWeight=0.50 PerfScore 3.25
G_M5000_IG04: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, dword ptr [(reloc)] ; const ptr
- mov ecx, gword ptr [edi+ecx]
+ mov eax, dword ptr [ebp-0x14]
+ mov ecx, gword ptr [edi+eax]
; gcrRegs +[ecx]
push ebx
lea edx, [ebp-0x10]
@@ -82,7 +84,7 @@ G_M5000_IG04: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
mov esi, eax
test esi, esi
jge SHORT G_M5000_IG08
- ;; size=34 bbWeight=1 PerfScore 15.50
+ ;; size=31 bbWeight=1 PerfScore 14.50
G_M5000_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov ecx, esi
mov eax, ecx
@@ -96,13 +98,13 @@ G_M5000_IG05: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
call [<unknown method>]
;; size=34 bbWeight=0.50 PerfScore 3.12
G_M5000_IG06: ; bbWeight=0.50, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=8 bbWeight=0.50 PerfScore 2.25
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
G_M5000_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
call [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
; byrRegs +[eax]
@@ -118,14 +120,14 @@ G_M5000_IG07: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {},
call [<unknown method>]
;; size=28 bbWeight=0.50 PerfScore 6.75
G_M5000_IG08: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=8 bbWeight=0.50 PerfScore 2.25
+ ;; size=10 bbWeight=0.50 PerfScore 2.25
-; Total bytes of code 193, prolog size 12, PerfScore 54.62, instruction count 68, allocated bytes for code 193 (MethodHash=cab8ec77) for method System.Management.PropertyDataCollection+PropertyDataEnumerator:.ctor(System.Management.ManagementBaseObject,ubyte):this (FullOpts)
+; Total bytes of code 198, prolog size 14, PerfScore 53.88, instruction count 69, allocated bytes for code 198 (MethodHash=cab8ec77) for method System.Management.PropertyDataCollection+PropertyDataEnumerator:.ctor(System.Management.ManagementBaseObject,ubyte):this (FullOpts)
; ============================================================
libraries.pmi.windows.x86.checked.mch
-1 (-7.14%) : 5279.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
@@ -8,8 +8,9 @@
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> ecx this single-def
+; V00 this [V00,T00] ( 4, 4 ) byref -> ecx this single-def
;* V01 tmp0 [V01 ] ( 0, 0 ) short -> zero-ref "Inlining Arg"
+; V02 cse0 [V02,T01] ( 3, 3 ) int -> eax "CSE - aggressive"
;
; Lcl frame size = 0
@@ -18,15 +19,15 @@ G_M10371_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
G_M10371_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref
; byrRegs +[ecx]
movzx eax, word ptr [ecx]
- movzx edx, word ptr [ecx]
+ mov edx, eax
shl edx, 16
- or eax, edx
- mov dword ptr [ecx], eax
- ;; size=13 bbWeight=1 PerfScore 5.75
+ or edx, eax
+ mov dword ptr [ecx], edx
+ ;; size=12 bbWeight=1 PerfScore 4.00
G_M10371_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 14, prolog size 0, PerfScore 6.75, instruction count 6, allocated bytes for code 14 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
+; Total bytes of code 13, prolog size 0, PerfScore 5.00, instruction count 6, allocated bytes for code 13 (MethodHash=1becd77c) for method System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
; ============================================================
-4 (-5.33%) : 296453.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
@@ -10,19 +10,13 @@
;
; V00 tmp0 [V00,T01] ( 3, 6 ) ref -> esi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
; V01 tmp1 [V01,T00] ( 6, 12 ) ref -> eax class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment>
-;* V02 tmp2 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" <<unknown class>>
-;* V03 tmp3 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impImportAndPushBox" <System.String>
-;* V04 tmp4 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V05 tmp5 [V05 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V06 tmp6 [V06 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+;* V02 tmp2 [V02 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;
; Lcl frame size = 0
G_M11047_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
push esi
- ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=1 bbWeight=1 PerfScore 1.00
G_M11047_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String]
call CORINFO_HELP_NEWSFAST
@@ -32,6 +26,7 @@ G_M11047_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov gword ptr [esi+0x04], 0xD1FFAB1E
mov ecx, 0xD1FFAB1E ; Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment
call CORINFO_HELP_NEWSFAST
+ ; gcr arg pop 0
mov dword ptr [eax+0x10], 5
mov gword ptr [eax+0x04], 0xD1FFAB1E
lea edx, bword ptr [eax+0x08]
@@ -46,10 +41,9 @@ G_M11047_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=68 bbWeight=1 PerfScore 9.50
G_M11047_IG03: ; bbWeight=1, epilog, nogc, extend
pop esi
- pop ebp
ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 75, prolog size 4, PerfScore 13.75, instruction count 19, allocated bytes for code 75 (MethodHash=60b0d4d8) for method Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
+; Total bytes of code 71, prolog size 1, PerfScore 12.00, instruction count 16, allocated bytes for code 71 (MethodHash=60b0d4d8) for method Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
; ============================================================
-12 (-3.26%) : 286953.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ubyte]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode
1[ubyte]:this (FullOpts)
@@ -14,32 +14,32 @@
; V03 tmp1 [V03,T05] ( 4, 3.50) ref -> eax
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
-;* V06 tmp4 [V06,T16] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]>
-;* V07 tmp5 [V07,T17] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V08 tmp6 [V08,T18] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
-;* V09 tmp7 [V09,T19] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V10 tmp8 [V10,T15] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+; V06 tmp4 [V06,T13] ( 2, 1 ) ref -> edi class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]>
+;* V07 tmp5 [V07,T16] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V08 tmp6 [V08 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
+;* V09 tmp7 [V09,T17] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V10 tmp8 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 4) zero-ref "spilled call-like call argument" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
;* V13 tmp11 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V14 tmp12 [V14,T13] ( 2, 1 ) int -> ebx
-; V15 tmp13 [V15,T10] ( 4, 2 ) ubyte -> ebx "Inline stloc first use temp"
+; V14 tmp12 [V14,T14] ( 2, 1 ) int -> eax
+; V15 tmp13 [V15,T10] ( 4, 2 ) ubyte -> [ebp-0x10] spill-single-def "Inline stloc first use temp"
;* V16 tmp14 [V16 ] ( 0, 0 ) struct (28) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ubyte]>
-; V17 tmp15 [V17,T06] ( 5, 2.50) ref -> [ebp-0x48] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
-; V18 tmp16 [V18,T00] ( 10, 10 ) ref -> [ebp-0x4C] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
-;* V19 tmp17 [V19,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V17 tmp15 [V17,T06] ( 5, 2.50) ref -> edi ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
+; V18 tmp16 [V18,T00] ( 10, 10 ) ref -> edi class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
+;* V19 tmp17 [V19,T15] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V20 tmp18 [V20,T08] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
-; V21 tmp19 [V21,T02] ( 6, 6 ) struct (28) [ebp-0x28] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ubyte]>
+; V21 tmp19 [V21,T02] ( 6, 6 ) struct (28) [ebp-0x2C] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ubyte]>
; V22 tmp20 [V22,T11] ( 3, 1.50) byref -> eax single-def "Inline stloc first use temp"
;* V23 tmp21 [V23 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo>
;* V24 tmp22 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
;* V25 tmp23 [V25 ] ( 0, 0 ) ref -> zero-ref
; V26 tmp24 [V26,T12] ( 3, 1.50) ref -> ecx
; V27 tmp25 [V27,T09] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
-; V28 tmp26 [V28,T03] ( 6, 6 ) struct (28) [ebp-0x44] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ubyte]>
+; V28 tmp26 [V28,T03] ( 6, 6 ) struct (28) [ebp-0x48] do-not-enreg[S] must-init "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ubyte]>
;* V29 tmp27 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]>
;* V30 tmp28 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V31 tmp29 [V31,T07] ( 6, 3 ) int -> edi "field V11._info (fldOffset=0x0)" P-INDEP
+; V31 tmp29 [V31,T07] ( 6, 3 ) int -> ebx "field V11._info (fldOffset=0x0)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) int -> zero-ref "field V23._info (fldOffset=0x0)" P-INDEP
;* V33 tmp31 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[000..004)"
;* V34 tmp32 [V34 ] ( 0, 0 ) ref -> zero-ref single-def "V16.[004..008)"
@@ -49,7 +49,7 @@
;* V38 tmp36 [V38 ] ( 0, 0 ) ubyte -> zero-ref "V16.[020..021)"
;* V39 tmp37 [V39 ] ( 0, 0 ) int -> zero-ref "V16.[024..028)"
;
-; Lcl frame size = 64
+; Lcl frame size = 60
G_M6531_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -57,13 +57,13 @@ G_M6531_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- sub esp, 64
+ sub esp, 60
vxorps xmm4, xmm4, xmm4
- vmovdqu ymmword ptr [ebp-0x44], ymm4
- vmovdqu xmmword ptr [ebp-0x24], xmm4
+ vmovdqu ymmword ptr [ebp-0x48], ymm4
+ vmovdqu xmmword ptr [ebp-0x28], xmm4
xor eax, eax
+ mov dword ptr [ebp-0x18], eax
mov dword ptr [ebp-0x14], eax
- mov dword ptr [ebp-0x10], eax
mov esi, ecx
; gcrRegs +[esi]
;; size=33 bbWeight=1 PerfScore 11.33
@@ -75,6 +75,8 @@ G_M6531_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
;; size=11 bbWeight=1 PerfScore 3.25
G_M6531_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
+ mov edi, esi
+ ; gcrRegs +[edi]
push 1
push 1
push 1
@@ -84,30 +86,30 @@ G_M6531_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=000000
xor ecx, ecx
mov edx, 1
call [<unknown method>]
- mov edi, eax
+ mov ebx, eax
push 0
push 0
- mov ecx, esi
+ mov ecx, edi
; gcrRegs +[ecx]
mov edx, 8
call [<unknown method>]
- ; gcrRegs -[ecx]
- mov ebx, eax
+ ; gcrRegs -[ecx edi]
+ mov dword ptr [ebp-0x10], eax
mov ecx, gword ptr [esi+0x44]
; gcrRegs +[ecx]
- mov dword ptr [ebp-0x20], 8
+ mov dword ptr [ebp-0x24], 8
+ mov dword ptr [ebp-0x20], -1
mov dword ptr [ebp-0x1C], -1
- mov dword ptr [ebp-0x18], -1
- mov byte ptr [ebp-0x14], bl
- mov dword ptr [ebp-0x10], edi
+ mov byte ptr [ebp-0x18], al
+ mov dword ptr [ebp-0x14], ebx
cmp byte ptr [ecx], cl
- push dword ptr [ebp-0x10]
push dword ptr [ebp-0x14]
push dword ptr [ebp-0x18]
push dword ptr [ebp-0x1C]
push dword ptr [ebp-0x20]
- push gword ptr [ebp-0x24]
+ push dword ptr [ebp-0x24]
push gword ptr [ebp-0x28]
+ push gword ptr [ebp-0x2C]
call [<unknown method>]
; gcrRegs -[ecx]
; byrRegs +[eax]
@@ -116,39 +118,39 @@ G_M6531_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=000000
mov edi, gword ptr [eax]
; gcrRegs +[edi]
jmp G_M6531_IG09
- ;; size=116 bbWeight=0.50 PerfScore 20.38
+ ;; size=119 bbWeight=0.50 PerfScore 20.88
G_M6531_IG04: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[edi]
; byrRegs -[eax]
mov ecx, 0xD1FFAB1E ; System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
- mov gword ptr [ebp-0x4C], eax
- ; GC ptr vars +{V18}
- mov dword ptr [eax+0x10], 8
+ mov edi, eax
+ ; gcrRegs +[edi]
+ mov dword ptr [edi+0x10], 8
xor ecx, ecx
; gcrRegs +[ecx]
- mov gword ptr [eax+0x04], ecx
- ;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M6531_IG05: ; bbWeight=0.50, gcVars=00000001 {V18}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
- ; gcrRegs -[ecx]
- mov gword ptr [eax+0x08], ecx
- mov dword ptr [eax+0x14], -1
- mov dword ptr [eax+0x18], -1
- mov byte ptr [eax+0x1C], bl
- mov dword ptr [eax+0x20], edi
- test edi, 32
+ mov gword ptr [edi+0x04], ecx
+ ;; size=24 bbWeight=0.50 PerfScore 1.88
+G_M6531_IG05: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+ ; gcrRegs -[eax ecx]
+ mov gword ptr [edi+0x08], ecx
+ mov dword ptr [edi+0x14], -1
+ mov dword ptr [edi+0x18], -1
+ mov eax, dword ptr [ebp-0x10]
+ mov byte ptr [edi+0x1C], al
+ mov dword ptr [edi+0x20], ebx
+ test bl, 32
je SHORT G_M6531_IG06
- test edi, 8
+ test bl, 8
jne SHORT G_M6531_IG07
- ;; size=39 bbWeight=0.50 PerfScore 3.75
-G_M6531_IG06: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- ; gcrRegs -[eax]
+ ;; size=36 bbWeight=0.50 PerfScore 4.25
+G_M6531_IG06: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
xor ecx, ecx
; gcrRegs +[ecx]
jmp SHORT G_M6531_IG08
;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M6531_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M6531_IG07: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
; gcrRegs -[ecx]
mov ecx, 0xD1FFAB1E ; <unknown class>
mov edx, 64
@@ -157,51 +159,44 @@ G_M6531_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=000000
mov ecx, eax
; gcrRegs +[ecx]
;; size=17 bbWeight=0.50 PerfScore 0.88
-G_M6531_IG08: ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
+G_M6531_IG08: ; bbWeight=0.50, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
- mov eax, gword ptr [ebp-0x4C]
- ; gcrRegs +[eax]
- lea edx, bword ptr [eax+0x0C]
+ lea edx, bword ptr [edi+0x0C]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_ECX
; gcrRegs -[ecx]
; byrRegs -[edx]
mov ecx, gword ptr [esi+0x44]
; gcrRegs +[ecx]
- mov dword ptr [ebp-0x3C], 8
+ mov dword ptr [ebp-0x40], 8
+ mov dword ptr [ebp-0x3C], -1
mov dword ptr [ebp-0x38], -1
- mov dword ptr [ebp-0x34], -1
- mov byte ptr [ebp-0x30], bl
- mov dword ptr [ebp-0x2C], edi
+ mov eax, dword ptr [ebp-0x10]
+ mov byte ptr [ebp-0x34], al
+ mov dword ptr [ebp-0x30], ebx
cmp byte ptr [ecx], cl
- push dword ptr [ebp-0x2C]
push dword ptr [ebp-0x30]
push dword ptr [ebp-0x34]
push dword ptr [ebp-0x38]
push dword ptr [ebp-0x3C]
- push gword ptr [ebp-0x40]
+ push dword ptr [ebp-0x40]
push gword ptr [ebp-0x44]
+ push gword ptr [ebp-0x48]
push 1
- mov gword ptr [ebp-0x48], eax
- ; GC ptr vars +{V17}
- mov edx, eax
+ mov edx, edi
; gcrRegs +[edx]
- ; GC ptr vars -{V18}
call [<unknown method>]
- ; gcrRegs -[eax ecx edx]
+ ; gcrRegs -[ecx edx]
test eax, eax
- jne SHORT G_M6531_IG11
+ jne SHORT G_M6531_IG09
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- mov edi, gword ptr [ebp-0x48]
- ; gcrRegs +[edi]
- ;; size=100 bbWeight=0.50 PerfScore 15.25
-G_M6531_IG09: ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
- ; GC ptr vars -{V17}
+ ;; size=94 bbWeight=0.50 PerfScore 14.25
+G_M6531_IG09: ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
lea edx, bword ptr [esi+0x2C]
; byrRegs +[edx]
call CORINFO_HELP_ASSIGN_REF_EDI
@@ -219,14 +214,7 @@ G_M6531_IG10: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000
pop ebp
...
+7 (+4.17%) : 185132.dasm - ILCompiler.PEWriter.RelocationHelper:PutThumb2Imm16(ushort,ubyte[],int) (FullOpts)
@@ -8,17 +8,17 @@
; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T06] ( 3, 3 ) ushort -> ebx single-def
+; V00 arg0 [V00,T03] ( 4, 4 ) ushort -> ebx single-def
; V01 arg1 [V01,T00] ( 9, 9 ) ref -> esi class-hnd single-def <ubyte[]>
; V02 arg2 [V02,T02] ( 7, 7 ) int -> edi single-def
-; V03 loc0 [V03,T03] ( 5, 5 ) ushort -> [ebp-0x10]
-; V04 loc1 [V04,T07] ( 3, 3 ) ushort -> eax single-def
+; V03 loc0 [V03,T04] ( 5, 5 ) ushort -> [ebp-0x10]
+; V04 loc1 [V04,T07] ( 3, 3 ) ushort -> [ebp-0x14] spill-single-def
;* V05 tmp0 [V05 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V06 tmp1 [V06,T01] ( 5, 10 ) int -> edi "Inlining Arg"
-; V07 cse0 [V07,T04] ( 5, 5 ) int -> edx "CSE - moderate"
-; V08 cse1 [V08,T05] ( 5, 5 ) int -> edx "CSE - moderate"
+; V07 cse0 [V07,T05] ( 5, 5 ) int -> eax "CSE - moderate"
+; V08 cse1 [V08,T06] ( 4, 4 ) int -> edx "CSE - moderate"
;
-; Lcl frame size = 4
+; Lcl frame size = 8
G_M63351_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -26,12 +26,12 @@ G_M63351_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- push eax
+ sub esp, 8
mov ebx, ecx
mov esi, edx
; gcrRegs +[esi]
mov edi, dword ptr [ebp+0x08]
- ;; size=14 bbWeight=1 PerfScore 6.75
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M63351_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov ecx, esi
; gcrRegs +[ecx]
@@ -46,58 +46,59 @@ G_M63351_IG02: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
call [System.BitConverter:ToInt16(ubyte[],int):short]
; gcrRegs -[ecx]
movzx eax, ax
+ mov dword ptr [ebp-0x14], eax
movzx edx, bx
mov ecx, edx
and ecx, 0xF000
sar ecx, 12
- mov ebx, edx
- and ebx, 0x800
- sar ebx, 1
- or ecx, ebx
- mov ebx, edx
- and ebx, 0x700
- shl ebx, 4
- or ecx, ebx
- movzx edx, dl
- or edx, ecx
+ mov eax, edx
+ and eax, 0x800
+ sar eax, 1
+ or eax, ecx
+ and edx, 0x700
+ shl edx, 4
+ or eax, edx
+ movzx edx, bl
+ or eax, edx
mov ebx, dword ptr [ebp-0x10]
and ebx, 0x8B00
- or edx, ebx
- movzx ebx, dx
- mov edx, dword ptr [esi+0x04]
- cmp edi, edx
+ or eax, ebx
+ movzx ebx, ax
+ mov eax, dword ptr [esi+0x04]
+ cmp edi, eax
jae SHORT G_M63351_IG04
mov byte ptr [esi+edi+0x08], bl
- lea ecx, [edi+0x01]
- cmp ecx, edx
+ lea edx, [edi+0x01]
+ cmp edx, eax
jae SHORT G_M63351_IG04
- mov ecx, ebx
- sar ecx, 8
- mov byte ptr [esi+edi+0x09], cl
+ mov edx, ebx
+ sar edx, 8
+ mov byte ptr [esi+edi+0x09], dl
add edi, 2
- cmp edi, edx
+ cmp edi, eax
jae SHORT G_M63351_IG04
- mov byte ptr [esi+edi+0x08], al
+ mov edx, dword ptr [ebp-0x14]
+ mov byte ptr [esi+edi+0x08], dl
lea ecx, [edi+0x01]
- cmp ecx, edx
+ cmp ecx, eax
jae SHORT G_M63351_IG04
- sar eax, 8
- mov byte ptr [esi+edi+0x09], al
- ;; size=140 bbWeight=1 PerfScore 28.25
+ sar edx, 8
+ mov byte ptr [esi+edi+0x09], dl
+ ;; size=143 bbWeight=1 PerfScore 30.00
G_M63351_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ecx
+ lea esp, [ebp-0x0C]
pop ebx
pop esi
pop edi
pop ebp
ret 4
- ;; size=8 bbWeight=1 PerfScore 4.50
+ ;; size=10 bbWeight=1 PerfScore 4.50
G_M63351_IG04: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[esi]
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 168, prolog size 7, PerfScore 39.50, instruction count 63, allocated bytes for code 168 (MethodHash=be270888) for method ILCompiler.PEWriter.RelocationHelper:PutThumb2Imm16(ushort,ubyte[],int) (FullOpts)
+; Total bytes of code 175, prolog size 9, PerfScore 40.50, instruction count 64, allocated bytes for code 175 (MethodHash=be270888) for method ILCompiler.PEWriter.RelocationHelper:PutThumb2Imm16(ushort,ubyte[],int) (FullOpts)
; ============================================================
+17 (+5.15%) : 201283.dasm - Internal.TypeSystem.FieldDesc:ToString():System.String:this (FullOpts)
@@ -9,54 +9,54 @@
; Final local variable assignments
;
; V00 this [V00,T02] ( 5, 5 ) ref -> esi this class-hnd single-def <Internal.TypeSystem.FieldDesc>
-; V01 loc0 [V01 ] ( 22, 16.00) struct (24) [ebp-0x24] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V02 tmp0 [V02,T06] ( 2, 4.00) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+; V01 loc0 [V01 ] ( 21, 15.00) struct (24) [ebp-0x24] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+;* V02 tmp0 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V03 tmp1 [V03 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
; V04 tmp2 [V04,T00] ( 5, 8.00) ref -> eax class-hnd single-def "dup spill" <ushort[]>
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V06 tmp4 [V06,T18] ( 0, 0 ) int -> zero-ref single-def "Inline return value spill temp"
-;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V09 tmp7 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V10 tmp8 [V10,T01] ( 4, 8 ) int -> ecx "Inlining Arg"
-;* V11 tmp9 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V12 tmp10 [V12,T04] ( 3, 6 ) int -> [ebp-0x28] spill-single-def "Inlining Arg"
-; V13 tmp11 [V13,T10] ( 2, 3.00) byref -> ebx single-def "Inlining Arg"
+;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V07 tmp5 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V08 tmp6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V09 tmp7 [V09,T01] ( 4, 8 ) int -> ecx "Inlining Arg"
+;* V10 tmp8 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V11 tmp9 [V11,T04] ( 3, 6 ) int -> ebx "Inlining Arg"
+; V12 tmp10 [V12,T10] ( 2, 3.00) byref -> [ebp-0x28] spill-single-def "Inlining Arg"
+;* V13 tmp11 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V14 tmp12 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V15 tmp13 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V16 tmp14 [V16,T17] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V17 tmp15 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V18 tmp16 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V19 tmp17 [V19,T14] ( 2, 2.00) byref -> edx single-def "Inlining Arg"
-; V20 tmp18 [V20,T03] ( 7, 7.00) ref -> esi class-hnd exact single-def "Inlining Arg" <System.String>
-;* V21 tmp19 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V22 tmp20 [V22,T05] ( 4, 4 ) int -> ecx "Inlining Arg"
-;* V23 tmp21 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V24 tmp22 [V24,T08] ( 3, 3 ) int -> ebx "Inlining Arg"
-; V25 tmp23 [V25,T11] ( 2, 2.00) byref -> edi single-def "Inlining Arg"
+;* V15 tmp13 [V15,T17] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V16 tmp14 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V17 tmp15 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V18 tmp16 [V18,T14] ( 2, 2.00) byref -> edx single-def "Inlining Arg"
+; V19 tmp17 [V19,T03] ( 7, 7.00) ref -> esi class-hnd exact single-def "Inlining Arg" <System.String>
+;* V20 tmp18 [V20 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V21 tmp19 [V21,T05] ( 4, 4 ) int -> ecx "Inlining Arg"
+;* V22 tmp20 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V23 tmp21 [V23,T07] ( 3, 3 ) int -> ebx "Inlining Arg"
+; V24 tmp22 [V24,T11] ( 2, 2.00) byref -> edi single-def "Inlining Arg"
+;* V25 tmp23 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp24 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V27 tmp25 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V28 tmp26 [V28,T19] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp27 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V30 tmp28 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V31 tmp29 [V31,T12] ( 2, 2.00) byref -> edx single-def "Inlining Arg"
-; V32 tmp30 [V32,T13] ( 2, 2.00) int -> ecx "Inlining Arg"
-; V33 tmp31 [V33,T15] ( 3, 1.50) byref -> edi "field V08._reference (fldOffset=0x0)" P-INDEP
-; V34 tmp32 [V34,T16] ( 3, 1.50) int -> ebx "field V08._length (fldOffset=0x4)" P-INDEP
-;* V35 tmp33 [V35 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp34 [V36 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x4)" P-INDEP
-;* V37 tmp35 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V38 tmp36 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V11._length (fldOffset=0x4)" P-INDEP
-;* V39 tmp37 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V40 tmp38 [V40 ] ( 0, 0 ) int -> zero-ref single-def "field V17._length (fldOffset=0x4)" P-INDEP
-;* V41 tmp39 [V41 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V42 tmp40 [V42 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x4)" P-INDEP
-;* V43 tmp41 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V44 tmp42 [V44 ] ( 0, 0 ) int -> zero-ref single-def "field V23._length (fldOffset=0x4)" P-INDEP
-;* V45 tmp43 [V45 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V46 tmp44 [V46 ] ( 0, 0 ) int -> zero-ref single-def "field V29._length (fldOffset=0x4)" P-INDEP
-; V47 tmp45 [V47,T07] ( 2, 4 ) ref -> edx single-def "argument with side effect"
-; V48 cse0 [V48,T09] ( 3, 3 ) int -> edi "CSE - moderate"
+;* V27 tmp25 [V27,T18] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V28 tmp26 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V29 tmp27 [V29 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V30 tmp28 [V30,T12] ( 2, 2.00) byref -> edx single-def "Inlining Arg"
+; V31 tmp29 [V31,T13] ( 2, 2.00) int -> ecx "Inlining Arg"
+; V32 tmp30 [V32,T15] ( 3, 1.50) byref -> edi "field V07._reference (fldOffset=0x0)" P-INDEP
+; V33 tmp31 [V33,T16] ( 3, 1.50) int -> ebx "field V07._length (fldOffset=0x4)" P-INDEP
+;* V34 tmp32 [V34 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V35 tmp33 [V35 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x4)" P-INDEP
+;* V36 tmp34 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V37 tmp35 [V37 ] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x4)" P-INDEP
+;* V38 tmp36 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;* V39 tmp37 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V16._length (fldOffset=0x4)" P-INDEP
+;* V40 tmp38 [V40 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
+;* V41 tmp39 [V41 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x4)" P-INDEP
+;* V42 tmp40 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V43 tmp41 [V43 ] ( 0, 0 ) int -> zero-ref single-def "field V22._length (fldOffset=0x4)" P-INDEP
+;* V44 tmp42 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V45 tmp43 [V45 ] ( 0, 0 ) int -> zero-ref single-def "field V28._length (fldOffset=0x4)" P-INDEP
+; V46 tmp44 [V46,T06] ( 2, 4 ) ref -> edx single-def "argument with side effect"
+; V47 cse0 [V47,T08] ( 3, 3 ) int -> edi "CSE - moderate"
+; V48 cse1 [V48,T09] ( 3, 3 ) int -> ebx "CSE - moderate"
;
; Lcl frame size = 28
@@ -84,14 +84,14 @@ G_M10078_IG02: ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
; gcrRegs -[ecx] +[eax]
mov gword ptr [ebp-0x20], eax
test eax, eax
- je G_M10078_IG16
+ je G_M10078_IG17
;; size=30 bbWeight=1.00 PerfScore 10.50
G_M10078_IG03: ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
lea edi, bword ptr [eax+0x08]
; byrRegs +[edi]
mov ebx, dword ptr [eax+0x04]
;; size=6 bbWeight=0.50 PerfScore 1.25
-G_M10078_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M10078_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
; gcrRegs -[eax]
mov bword ptr [ebp-0x14], edi
mov dword ptr [ebp-0x10], ebx
@@ -112,39 +112,42 @@ G_M10078_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080
call [<unknown method>]
; gcrRegs -[eax edx]
mov ecx, dword ptr [ebp-0x1C]
- cmp ecx, dword ptr [ebp-0x10]
- ja G_M10078_IG17
+ mov ebx, dword ptr [ebp-0x10]
+ cmp ecx, ebx
+ ja G_M10078_IG18
mov edx, bword ptr [ebp-0x14]
; byrRegs +[edx]
- lea ebx, bword ptr [edx+2*ecx]
- ; byrRegs +[ebx]
- mov eax, dword ptr [ebp-0x10]
- sub eax, ecx
- mov dword ptr [ebp-0x28], eax
- test eax, eax
- jge SHORT G_M10078_IG06
- ;; size=71 bbWeight=1 PerfScore 25.25
-G_M10078_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
- ; byrRegs -[edx]
+ lea eax, bword ptr [edx+2*ecx]
+ ; byrRegs +[eax]
+ mov bword ptr [ebp-0x28], eax
+ ; GC ptr vars +{V12}
+ sub ebx, ecx
+ jns G_M10078_IG14
+ ;; size=72 bbWeight=1 PerfScore 23.25
+G_M10078_IG05: ; bbWeight=0.50, gcVars=00000400 {V12}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+ ; byrRegs -[eax edx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M10078_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
- cmp dword ptr [ebp-0x28], 0
- je G_M10078_IG14
- ;; size=10 bbWeight=1 PerfScore 3.00
-G_M10078_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+ mov eax, bword ptr [ebp-0x28]
+ ; byrRegs +[eax]
+ ;; size=19 bbWeight=0.50 PerfScore 2.25
+G_M10078_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref
+ test ebx, ebx
+ je G_M10078_IG15
+ ;; size=8 bbWeight=1 PerfScore 1.25
+G_M10078_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref
mov edx, 0xD1FFAB1E
; byrRegs +[edx]
push 2
- mov ecx, ebx
+ mov ecx, eax
; byrRegs +[ecx]
+ ; GC ptr vars -{V12}
call [<unknown method>]
- ; byrRegs -[ecx edx ebx]
+ ; byrRegs -[eax ecx edx]
mov ecx, dword ptr [ebp-0x1C]
inc ecx
mov dword ptr [ebp-0x1C], ecx
@@ -157,15 +160,15 @@ G_M10078_IG08: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
mov esi, eax
; gcrRegs +[esi]
cmp byte ptr [ebp-0x18], 0
- jne SHORT G_M10078_IG15
+ jne SHORT G_M10078_IG16
;; size=13 bbWeight=1 PerfScore 6.50
G_M10078_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
; gcrRegs -[eax]
test esi, esi
- je SHORT G_M10078_IG15
+ je SHORT G_M10078_IG16
mov ecx, dword ptr [ebp-0x1C]
cmp ecx, dword ptr [ebp-0x10]
- ja SHORT G_M10078_IG17
+ ja G_M10078_IG18
mov edx, bword ptr [ebp-0x14]
; byrRegs +[edx]
lea edi, bword ptr [edx+2*ecx]
@@ -180,10 +183,10 @@ G_M10078_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
; byrRegs -[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- ;; size=41 bbWeight=0.50 PerfScore 6.25
+ ;; size=45 bbWeight=0.50 PerfScore 6.25
G_M10078_IG10: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
cmp dword ptr [esi+0x04], ebx
- ja SHORT G_M10078_IG15
+ ja SHORT G_M10078_IG16
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M10078_IG11: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
lea edx, bword ptr [esi+0x08]
@@ -213,16 +216,24 @@ G_M10078_IG13: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=8 bbWeight=1 PerfScore 3.50
-G_M10078_IG14: ; bbWeight=0.00, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M10078_IG14: ; bbWeight=0.50, gcVars=00000400 {V12}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
; gcrRegs -[eax] +[esi]
+ ; GC ptr vars +{V12}
+ mov eax, bword ptr [ebp-0x28]
+ ; byrRegs +[eax]
+ jmp G_M10078_IG06
+ ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M10078_IG15: ; bbWeight=0.00, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+ ; byrRegs -[eax]
+ ; GC ptr vars -{V12}
lea ecx, [ebp-0x24]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[edx]
- jmp SHORT G_M10078_IG08
- ;; size=16 bbWeight=0.00 PerfScore 0.01
-G_M10078_IG15: ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ jmp G_M10078_IG08
+ ;; size=19 bbWeight=0.00 PerfScore 0.01
+G_M10078_IG16: ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
lea ecx, [ebp-0x24]
mov edx, esi
; gcrRegs +[edx]
@@ -230,20 +241,20 @@ G_M10078_IG15: ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
; gcrRegs -[edx esi]
jmp SHORT G_M10078_IG12
;; size=13 bbWeight=0.00 PerfScore 0.01
-G_M10078_IG16: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M10078_IG17: ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs +[esi]
xor edi, edi
; byrRegs +[edi]
xor ebx, ebx
jmp G_M10078_IG04
...
+10 (+5.88%) : 4667.dasm - System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
@@ -8,13 +8,12 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 3, 3 ) ushort -> ecx single-def
-; V01 loc0 [V01,T02] ( 5, 3.50) int -> esi
-; V02 loc1 [V02,T03] ( 6, 3 ) ref -> edi class-hnd <ushort[]>
-; V03 tmp0 [V03,T04] ( 3, 3 ) ref -> ecx single-def "arr expr"
-; V04 tmp1 [V04,T05] ( 3, 3 ) ref -> eax single-def "arr expr"
-; V05 cse0 [V05,T06] ( 3, 1.50) int -> eax "CSE - moderate"
-; V06 cse1 [V06,T01] ( 6, 4 ) int -> ebx "CSE - aggressive"
+; V00 arg0 [V00,T00] ( 7, 5 ) ushort -> ebx single-def
+; V01 loc0 [V01,T01] ( 5, 3.50) int -> esi
+; V02 loc1 [V02,T02] ( 6, 3 ) ref -> edi class-hnd <ushort[]>
+; V03 tmp0 [V03,T03] ( 3, 3 ) ref -> ecx single-def "arr expr"
+; V04 tmp1 [V04,T04] ( 3, 3 ) ref -> eax single-def "arr expr"
+; V05 cse0 [V05,T05] ( 3, 1.50) int -> eax "CSE - moderate"
;
; Lcl frame size = 0
@@ -24,13 +23,13 @@ G_M5920_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
push edi
push esi
push ebx
- ;; size=6 bbWeight=1 PerfScore 4.25
+ mov ebx, ecx
+ ;; size=8 bbWeight=1 PerfScore 4.50
G_M5920_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
- movzx ebx, cx
- mov esi, ebx
+ movzx esi, bx
sar esi, 8
jne SHORT G_M5920_IG06
- ;; size=10 bbWeight=1 PerfScore 2.00
+ ;; size=8 bbWeight=1 PerfScore 1.75
G_M5920_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
test byte ptr [D1FFAB1EH], 1 ; global ptr
je SHORT G_M5920_IG13
@@ -38,11 +37,13 @@ G_M5920_IG03: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
G_M5920_IG04: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov eax, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[eax]
- cmp ebx, dword ptr [eax+0x04]
+ movzx ecx, bx
+ cmp ecx, dword ptr [eax+0x04]
jae SHORT G_M5920_IG12
- movzx eax, word ptr [eax+2*ebx+0x08]
+ movzx ecx, bx
+ movzx eax, word ptr [eax+2*ecx+0x08]
; gcrRegs -[eax]
- ;; size=15 bbWeight=0.50 PerfScore 4.00
+ ;; size=21 bbWeight=0.50 PerfScore 4.25
G_M5920_IG05: ; bbWeight=0.50, epilog, nogc, extend
pop ebx
pop esi
@@ -67,8 +68,8 @@ G_M5920_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
cmp edi, gword ptr [D1FFAB1EH] ; static handle
jne SHORT G_M5920_IG09
- mov eax, ebx
- ;; size=40 bbWeight=0.50 PerfScore 6.88
+ movzx eax, bx
+ ;; size=41 bbWeight=0.50 PerfScore 6.88
G_M5920_IG08: ; bbWeight=0.50, epilog, nogc, extend
pop ebx
pop esi
@@ -103,12 +104,12 @@ G_M5920_IG12: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, by
; gcrRegs -[edi]
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
-G_M5920_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M5920_IG13: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E
mov edx, 649
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- jmp SHORT G_M5920_IG04
- ;; size=17 bbWeight=0 PerfScore 0.00
+ jmp G_M5920_IG04
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M5920_IG14: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov ecx, 0xD1FFAB1E
mov edx, 649
@@ -116,6 +117,6 @@ G_M5920_IG14: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
jmp SHORT G_M5920_IG07
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 170, prolog size 6, PerfScore 31.12, instruction count 60, allocated bytes for code 170 (MethodHash=cfe0e8df) for method System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
+; Total bytes of code 180, prolog size 6, PerfScore 31.38, instruction count 62, allocated bytes for code 180 (MethodHash=cfe0e8df) for method System.Globalization.OrdinalCasing:ToUpper(ushort):ushort (FullOpts)
; ============================================================
libraries_tests.run.windows.x86.Release.mch
-14 (-58.33%) : 401733.dasm - TestType:meth1():int (Tier0)
@@ -13,20 +13,13 @@ G_M16291_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M16291_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- mov eax, 1
- inc eax
- mov edx, 1
- inc edx
- inc edx
- add eax, edx
- add eax, 2
- inc eax
- ;; size=19 bbWeight=1 PerfScore 2.00
+ mov eax, 8
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M16291_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 24, prolog size 3, PerfScore 4.75, instruction count 12, allocated bytes for code 24 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
+; Total bytes of code 10, prolog size 3, PerfScore 3.00, instruction count 5, allocated bytes for code 10 (MethodHash=b58cc05c) for method TestType:meth1():int (Tier0)
; ============================================================
-9 (-47.37%) : 64568.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
@@ -13,16 +13,13 @@ G_M52681_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov ebp, esp
;; size=3 bbWeight=1 PerfScore 1.25
G_M52681_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
- mov eax, 512
- mov ecx, 4
- xor edx, edx
- div edx:eax, ecx
- ;; size=14 bbWeight=1 PerfScore 25.75
+ mov eax, 128
+ ;; size=5 bbWeight=1 PerfScore 0.25
G_M52681_IG03: ; bbWeight=1, epilog, nogc, extend
pop ebp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 19, prolog size 3, PerfScore 28.50, instruction count 8, allocated bytes for code 19 (MethodHash=81b63236) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
+; Total bytes of code 10, prolog size 3, PerfScore 3.00, instruction count 5, allocated bytes for code 10 (MethodHash=81b63236) for method System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
; ============================================================
-21 (-40.38%) : 2994.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
@@ -6,39 +6,28 @@
; Final local variable assignments
;
; V00 TypeCtx [V00 ] ( 1, 1 ) int -> [ebp-0x08] do-not-enreg[]
-; TEMP_01 byref -> [ebp-0x0C]
;
-; Lcl frame size = 12
+; Lcl frame size = 8
G_M28933_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
mov ebp, esp
- sub esp, 12
- xor eax, eax
- mov dword ptr [ebp-0x0C], eax
+ sub esp, 8
mov dword ptr [ebp-0x04], ecx
mov dword ptr [ebp-0x08], ecx
- ;; size=17 bbWeight=1 PerfScore 4.75
+ ;; size=12 bbWeight=1 PerfScore 3.50
G_M28933_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, dword ptr [ebp-0x08]
call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE
; byrRegs +[eax]
- mov bword ptr [ebp-0x0C], eax
- mov eax, 512
- ; byrRegs -[eax]
- mov ecx, 4
- xor edx, edx
- div edx:eax, ecx
- mov edx, bword ptr [ebp-0x0C]
- ; byrRegs +[edx]
- mov dword ptr [edx+0x04], eax
- ;; size=31 bbWeight=1 PerfScore 30.75
+ mov dword ptr [eax+0x04], 128
+ ;; size=15 bbWeight=1 PerfScore 3.00
G_M28933_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 14, PerfScore 37.25, instruction count 19, allocated bytes for code 52 (MethodHash=381d8efa) for method System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
+; Total bytes of code 31, prolog size 9, PerfScore 8.25, instruction count 11, allocated bytes for code 31 (MethodHash=381d8efa) for method System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
; ============================================================
+6 (+7.23%) : 245440.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
@@ -30,9 +30,11 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
call [<unknown method>]
mov eax, dword ptr [ebp-0x08]
sar eax, 16
+ movzx eax, ax
cwde
push eax
mov eax, dword ptr [ebp-0x08]
+ movzx eax, ax
movsx edx, ax
lea ecx, [ebp-0x18]
call [<unknown method>]
@@ -41,13 +43,13 @@ G_M34188_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push dword ptr [ebp-0x14]
push dword ptr [ebp-0x18]
call [<unknown method>]
- ;; size=53 bbWeight=1 PerfScore 19.00
+ ;; size=59 bbWeight=1 PerfScore 19.50
G_M34188_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 83, prolog size 20, PerfScore 28.50, instruction count 29, allocated bytes for code 83 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
+; Total bytes of code 89, prolog size 20, PerfScore 29.00, instruction count 31, allocated bytes for code 89 (MethodHash=f76a7a73) for method System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
; ============================================================
+3 (+16.67%) : 245443.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
@@ -18,14 +18,15 @@ G_M7017_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
G_M7017_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, dword ptr [ebp-0x04]
sar eax, 16
+ movzx eax, ax
cwde
- ;; size=7 bbWeight=1 PerfScore 1.75
+ ;; size=10 bbWeight=1 PerfScore 2.00
G_M7017_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 18, prolog size 4, PerfScore 6.75, instruction count 10, allocated bytes for code 18 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
+; Total bytes of code 21, prolog size 4, PerfScore 7.00, instruction count 11, allocated bytes for code 21 (MethodHash=7b2de496) for method System.Drawing.Point:HighInt16(int):short (Tier0)
; ============================================================
+3 (+20.00%) : 245442.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
@@ -17,14 +17,15 @@ G_M39123_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
;; size=7 bbWeight=1 PerfScore 3.25
G_M39123_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, dword ptr [ebp-0x04]
+ movzx eax, ax
cwde
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=7 bbWeight=1 PerfScore 1.50
G_M39123_IG03: ; bbWeight=1, epilog, nogc, extend
mov esp, ebp
pop ebp
ret
;; size=4 bbWeight=1 PerfScore 1.75
-; Total bytes of code 15, prolog size 4, PerfScore 6.25, instruction count 9, allocated bytes for code 15 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
+; Total bytes of code 18, prolog size 4, PerfScore 6.50, instruction count 10, allocated bytes for code 18 (MethodHash=96ed672c) for method System.Drawing.Point:LowInt16(int):short (Tier0)
; ============================================================
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-4 (-25.00%) : 242073.dasm - System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
@@ -15,9 +15,7 @@
; Lcl frame size = 0
G_M12600_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M12600_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
; gcrRegs +[ecx]
mov edx, 0x1F604
@@ -25,10 +23,9 @@ G_M12600_IG02: ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
; gcrRegs -[ecx]
;; size=11 bbWeight=1 PerfScore 3.25
G_M12600_IG03: ; bbWeight=1, epilog, nogc, extend
- pop ebp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 3, PerfScore 6.00, instruction count 6, allocated bytes for code 16 (MethodHash=d8a2cec7) for method System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 4.25, instruction count 3, allocated bytes for code 12 (MethodHash=d8a2cec7) for method System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
; ============================================================
-3 (-20.00%) : 213453.dasm - System.Tests.DateTimeTests+<>c:b_1342():System.Object:this (FullOpts)
@@ -2,40 +2,32 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Tests.DateTimeTests+<>c>
;* V01 tmp0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Tests.DateTimeTests+MyFormatter>
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Single-def Box Helper" <System.DateTime>
;* V03 tmp2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
-;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref
-;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.String>
-;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref
-;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref
-;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref
-;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V10 tmp9 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V11 tmp10 [V11 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
-;* V12 tmp11 [V12 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP
-;* V13 tmp12 [V13 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V14 tmp13 [V14 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x4)" P-INDEP
+;* V04 tmp3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+;* V05 tmp4 [V05 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V06 tmp5 [V06 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x4)" P-INDEP
+;* V07 tmp6 [V07 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V08 tmp7 [V08 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x4)" P-INDEP
;
; Lcl frame size = 0
G_M28333_IG01: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=0 PerfScore 0.00
+ ;; size=0 bbWeight=0 PerfScore 0.00
G_M28333_IG02: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 17
call [System.ThrowHelper:ThrowArgumentNullException(int)]
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 15, prolog size 3, PerfScore 0.00, instruction count 5, allocated bytes for code 15 (MethodHash=acc29152) for method System.Tests.DateTimeTests+<>c:<Parse_InvalidArguments_Throws>b__134_2():System.Object:this (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 0.00, instruction count 3, allocated bytes for code 12 (MethodHash=acc29152) for method System.Tests.DateTimeTests+<>c:<Parse_InvalidArguments_Throws>b__134_2():System.Object:this (FullOpts)
; ============================================================
-3 (-20.00%) : 200418.dasm - System.Tests.StringTests+<>c:b_2661():System.Object:this (FullOpts)
@@ -2,7 +2,7 @@
; Emitting BLENDED_CODE for X86 with AVX512 - Windows
; FullOpts code
; optimized code
-; ebp based frame
+; esp based frame
; partially interruptible
; No matching PGO data
; 1 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
@@ -30,15 +30,13 @@
; Lcl frame size = 0
G_M61562_IG01: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
- push ebp
- mov ebp, esp
- ;; size=3 bbWeight=0 PerfScore 0.00
+ ;; size=0 bbWeight=0 PerfScore 0.00
G_M61562_IG02: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 92
call [System.ThrowHelper:ThrowArgumentNullException(int)]
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 15, prolog size 3, PerfScore 0.00, instruction count 5, allocated bytes for code 15 (MethodHash=f1020f85) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__266_1():System.Object:this (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 0.00, instruction count 3, allocated bytes for code 12 (MethodHash=f1020f85) for method System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__266_1():System.Object:this (FullOpts)
; ============================================================
+12 (+3.03%) : 160106.dasm - System.Net.NetworkInformation.Tests.IPGlobalPropertiesTest:IPGlobalPropertiesUdpListenersSucceed(System.Net.IPAddress):this (FullOpts)
@@ -10,57 +10,56 @@
;
; V00 this [V00,T06] ( 3, 3 ) ref -> edi this class-hnd single-def <System.Net.NetworkInformation.Tests.IPGlobalPropertiesTest>
; V01 arg1 [V01,T04] ( 4, 4 ) ref -> esi class-hnd single-def <System.Net.IPAddress>
-; V02 loc0 [V02,T13] ( 5, 3 ) ref -> [ebp-0x3C] class-hnd exact EH-live spill-single-def <System.Net.Sockets.Socket>
-; V03 loc1 [V03,T16] ( 2, 2 ) ref -> esi class-hnd single-def <<unknown class>>
+; V02 loc0 [V02,T19] ( 2, 0 ) ref -> [ebp-0x3C] class-hnd exact EH-live single-def <System.Net.Sockets.Socket>
+; V03 loc1 [V03,T14] ( 2, 2 ) ref -> esi class-hnd single-def <<unknown class>>
; V04 loc2 [V04 ] ( 14, 12.00) struct (24) [ebp-0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-; V05 tmp0 [V05,T01] ( 4, 8 ) ref -> [ebp-0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Sockets.Socket>
-; V06 tmp1 [V06,T12] ( 2, 4 ) int -> ebx "finalizable newobj spill"
+; V05 tmp0 [V05,T00] ( 7, 14 ) ref -> [ebp-0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Sockets.Socket>
+; V06 tmp1 [V06,T11] ( 2, 4 ) int -> ebx "finalizable newobj spill"
; V07 tmp2 [V07,T02] ( 4, 8.00) ref -> eax class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
;* V08 tmp3 [V08 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V09 tmp4 [V09,T07] ( 2, 4.00) ref -> esi class-hnd single-def "impAppendStmt" <<unknown class>>
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V12 tmp7 [V12,T08] ( 2, 4.00) ref -> ecx class-hnd exact single-def "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
;* V13 tmp8 [V13 ] ( 0, 0 ) int -> zero-ref "spilling ret_expr"
-; V14 tmp9 [V14,T00] ( 5, 8.00) ref -> eax class-hnd single-def "dup spill" <ushort[]>
+; V14 tmp9 [V14,T01] ( 5, 8.00) ref -> eax class-hnd single-def "dup spill" <ushort[]>
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V16 tmp11 [V16,T22] ( 0, 0 ) int -> zero-ref single-def "Inline return value spill temp"
-;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V18 tmp13 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;* V19 tmp14 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V20 tmp15 [V20,T03] ( 4, 8 ) int -> ecx "Inlining Arg"
-;* V21 tmp16 [V21 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V22 tmp17 [V22,T05] ( 3, 6 ) int -> edi "Inlining Arg"
-; V23 tmp18 [V23,T15] ( 2, 3.00) byref -> ebx single-def "Inlining Arg"
+;* V16 tmp11 [V16 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V17 tmp12 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V18 tmp13 [V18 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V19 tmp14 [V19,T03] ( 4, 8 ) int -> ecx "Inlining Arg"
+;* V20 tmp15 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V21 tmp16 [V21,T05] ( 3, 6 ) int -> edi "Inlining Arg"
+; V22 tmp17 [V22,T13] ( 2, 3.00) byref -> [ebp-0x44] spill-single-def "Inlining Arg"
+;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp19 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V26 tmp21 [V26,T20] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V27 tmp22 [V27 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V28 tmp23 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V29 tmp24 [V29,T17] ( 2, 2.00) byref -> edx single-def "Inlining Arg"
-;* V30 tmp25 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Net.NetworkInformation.SystemIPGlobalProperties>
-; V31 tmp26 [V31,T18] ( 3, 1.50) byref -> edi "field V18._reference (fldOffset=0x0)" P-INDEP
-; V32 tmp27 [V32,T19] ( 3, 1.50) int -> ebx "field V18._length (fldOffset=0x4)" P-INDEP
-;* V33 tmp28 [V33 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V34 tmp29 [V34 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x4)" P-INDEP
-;* V35 tmp30 [V35 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V36 tmp31 [V36 ] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x4)" P-INDEP
-;* V37 tmp32 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-;* V38 tmp33 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V27._length (fldOffset=0x4)" P-INDEP
-;* V39 tmp34 [V39,T21] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..004)"
-;* V40 tmp35 [V40 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[004..008)"
-;* V41 tmp36 [V41 ] ( 0, 0 ) int -> zero-ref "V08.[008..012)"
-;* V42 tmp37 [V42 ] ( 0, 0 ) ubyte -> zero-ref "V08.[012..013)"
-;* V43 tmp38 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "V08.[016..020)"
-;* V44 tmp39 [V44 ] ( 0, 0 ) int -> zero-ref single-def "V08.[020..024)"
+;* V25 tmp20 [V25,T18] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V26 tmp21 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V27 tmp22 [V27 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+; V28 tmp23 [V28,T15] ( 2, 2.00) byref -> edx single-def "Inlining Arg"
+;* V29 tmp24 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Net.NetworkInformation.SystemIPGlobalProperties>
+; V30 tmp25 [V30,T16] ( 3, 1.50) byref -> edi "field V17._reference (fldOffset=0x0)" P-INDEP
+; V31 tmp26 [V31,T17] ( 3, 1.50) int -> edx "field V17._length (fldOffset=0x4)" P-INDEP
+;* V32 tmp27 [V32 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x4)" P-INDEP
+;* V34 tmp29 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
+;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref single-def "field V20._length (fldOffset=0x4)" P-INDEP
+;* V36 tmp31 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref single-def "field V26._length (fldOffset=0x4)" P-INDEP
+;* V38 tmp33 [V38 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[000..004)"
+;* V39 tmp34 [V39 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[004..008)"
+;* V40 tmp35 [V40 ] ( 0, 0 ) int -> zero-ref "V08.[008..012)"
+;* V41 tmp36 [V41 ] ( 0, 0 ) ubyte -> zero-ref "V08.[012..013)"
+;* V42 tmp37 [V42 ] ( 0, 0 ) byref -> zero-ref single-def "V08.[016..020)"
+;* V43 tmp38 [V43 ] ( 0, 0 ) int -> zero-ref single-def "V08.[020..024)"
+; V44 tmp39 [V44,T08] ( 2, 4 ) ref -> edx single-def "argument with side effect"
; V45 tmp40 [V45,T09] ( 2, 4 ) ref -> edx single-def "argument with side effect"
-; V46 tmp41 [V46,T10] ( 2, 4 ) ref -> edx single-def "argument with side effect"
-; V47 tmp42 [V47,T11] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
-;* V48 tmp43 [V48 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V49 EHSlots [V49 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-; V50 cse0 [V50,T14] ( 3, 3 ) int -> edi "CSE - moderate"
+; V46 tmp41 [V46,T10] ( 2, 4 ) ref -> ecx single-def "argument with side effect"
+;* V47 tmp42 [V47 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V48 EHSlots [V48 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
+; V49 cse0 [V49,T12] ( 3, 3 ) int -> edi "CSE - moderate"
;
-; Lcl frame size = 52
+; Lcl frame size = 56
G_M16989_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -68,7 +67,7 @@ G_M16989_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 52
+ sub esp, 56
vxorps xmm4, xmm4, xmm4
vmovdqu ymmword ptr [ebp-0x38], ymm4
xor eax, eax
@@ -101,7 +100,7 @@ G_M16989_IG02: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
mov gword ptr [ebp-0x3C], ebx
; GC ptr vars +{V02}
;; size=50 bbWeight=1 PerfScore 13.50
-G_M16989_IG03: ; bbWeight=1.00, gcVars=00002002 {V02 V05}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M16989_IG03: ; bbWeight=1.00, gcVars=00080001 {V02 V05}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
mov ecx, 0xD1FFAB1E ; System.Net.IPEndPoint
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -116,9 +115,8 @@ G_M16989_IG03: ; bbWeight=1.00, gcVars=00002002 {V02 V05}, gcrefRegs=0000
; gcrRegs +[ecx]
mov edx, eax
; gcrRegs +[edx]
- ; GC ptr vars -{V05}
call [System.Net.Sockets.Socket:Bind(System.Net.EndPoint):this]
- ; gcrRegs -[eax ecx edx ebx]
+ ; gcrRegs -[eax ecx edx]
mov esi, gword ptr [edi+0x04]
; gcrRegs +[esi]
mov ecx, gword ptr [D1FFAB1EH] ; static handle
@@ -128,64 +126,69 @@ G_M16989_IG03: ; bbWeight=1.00, gcVars=00002002 {V02 V05}, gcrefRegs=0000
call [<unknown method>]
; gcrRegs -[ecx edi] +[eax]
test eax, eax
- je G_M16989_IG12
+ je G_M16989_IG13
;; size=63 bbWeight=1.00 PerfScore 19.00
-G_M16989_IG04: ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
+G_M16989_IG04: ; bbWeight=0.50, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref
lea edi, bword ptr [eax+0x08]
; byrRegs +[edi]
- mov ebx, dword ptr [eax+0x04]
+ mov edx, dword ptr [eax+0x04]
;; size=6 bbWeight=0.50 PerfScore 1.25
-G_M16989_IG05: ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
+G_M16989_IG05: ; bbWeight=1, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000080 {edi}, byref
xor ecx, ecx
; gcrRegs +[ecx]
mov gword ptr [ebp-0x38], ecx
mov gword ptr [ebp-0x34], eax
;; size=8 bbWeight=1 PerfScore 2.25
-G_M16989_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M16989_IG06: ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000080 {edi}, byref
; gcrRegs -[eax ecx]
mov dword ptr [ebp-0x30], ecx
mov byte ptr [ebp-0x2C], 0
mov bword ptr [ebp-0x28], edi
- mov dword ptr [ebp-0x24], ebx
+ mov dword ptr [ebp-0x24], edx
mov ecx, dword ptr [ebp-0x30]
mov edi, dword ptr [ebp-0x24]
; byrRegs -[edi]
cmp ecx, edi
- ja G_M16989_IG11
+ ja G_M16989_IG12
mov edx, bword ptr [ebp-0x28]
; byrRegs +[edx]
- lea ebx, bword ptr [edx+2*ecx]
- ; byrRegs +[ebx]
+ lea eax, bword ptr [edx+2*ecx]
+ ; byrRegs +[eax]
+ mov bword ptr [ebp-0x44], eax
+ ; GC ptr vars +{V22}
sub edi, ecx
- jns SHORT G_M16989_IG08
- ;; size=37 bbWeight=1 PerfScore 10.00
-G_M16989_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
- ; byrRegs -[edx]
+ jns G_M16989_IG11
+ ;; size=44 bbWeight=1 PerfScore 11.00
+G_M16989_IG07: ; bbWeight=0.50, gcVars=00082001 {V02 V05 V22}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
+ ; byrRegs -[eax edx]
mov ecx, 0xD1FFAB1E
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx]
- ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M16989_IG08: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+ mov eax, bword ptr [ebp-0x44]
+ ; byrRegs +[eax]
+ ;; size=19 bbWeight=0.50 PerfScore 2.25
+G_M16989_IG08: ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000001 {eax}, byref
cmp edi, 13
- jb G_M16989_IG13
+ jb G_M16989_IG14
;; size=9 bbWeight=1 PerfScore 1.25
-G_M16989_IG09: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
+G_M16989_IG09: ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000001 {eax}, byref
mov edx, 0xD1FFAB1E
; byrRegs +[edx]
push 26
- mov ecx, ebx
+ mov ecx, eax
; byrRegs +[ecx]
+ ; GC ptr vars -{V22}
call [<unknown method>]
- ; byrRegs -[ecx edx ebx]
+ ; byrRegs -[eax ecx edx]
mov ecx, dword ptr [ebp-0x30]
add ecx, 13
mov dword ptr [ebp-0x30], ecx
;; size=24 bbWeight=0.50 PerfScore 3.37
-G_M16989_IG10: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
- mov ecx, gword ptr [ebp-0x3C]
+G_M16989_IG10: ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+ mov ecx, ebx
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx] +[eax]
@@ -213,7 +216,7 @@ G_M16989_IG10: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs -[ecx]
mov esi, eax
; gcrRegs +[esi]
- mov ecx, gword ptr [ebp-0x3C]
+ mov ecx, ebx
; gcrRegs +[ecx]
call [<unknown method>]
; gcrRegs -[ecx]
@@ -224,20 +227,31 @@ G_M16989_IG10: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[edx]
call [Xunit.Assert:Contains[System.__Canon](System.__Canon,System.Collections.Generic.IEnumerable`1[System.__Canon])]
; gcrRegs -[eax ecx edx esi]
- jmp SHORT G_M16989_IG14
- ;; size=90 bbWeight=1 PerfScore 31.00
-G_M16989_IG11: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+ jmp SHORT G_M16989_IG15
+ ;; size=88 bbWeight=1 PerfScore 29.50
+G_M16989_IG11: ; bbWeight=0.50, gcVars=00082001 {V02 V05 V22}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+ ; gcrRegs +[esi]
+ ; GC ptr vars +{V22}
+ mov eax, bword ptr [ebp-0x44]
+ ; byrRegs +[eax]
+ jmp SHORT G_M16989_IG08
+ ;; size=5 bbWeight=0.50 PerfScore 1.50
+G_M16989_IG12: ; bbWeight=0, gcVars=00080000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs -[ebx esi]
+ ; byrRegs -[eax]
+ ; GC ptr vars -{V05 V22}
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M16989_IG12: ; bbWeight=0, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
...
+14 (+3.60%) : 57841.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:get_CompareLesserData():Xunit.TheoryData`2Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer
@@ -16,18 +16,18 @@
;* V05 tmp5 [V05 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.Primitives.StringSegment>
;* V06 tmp6 [V06 ] ( 0, 0 ) struct (12) zero-ref "impAppendStmt" <Microsoft.Extensions.Primitives.StringSegment>
; V07 tmp7 [V07,T10] ( 3, 6 ) ref -> eax class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V08 tmp8 [V08,T07] ( 5, 7.91) ref -> ebx class-hnd exact single-def "dup spill" <System.Object[]>
+; V08 tmp8 [V08,T07] ( 5, 7 ) ref -> ebx class-hnd exact single-def "dup spill" <System.Object[]>
; V09 tmp9 [V09,T04] ( 5, 10 ) ref -> eax class-hnd exact single-def "Single-def Box Helper" <Microsoft.Extensions.Primitives.StringSegment>
; V10 tmp10 [V10,T11] ( 2, 4 ) ref -> edi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Primitives.StringSegmentComparer>
;* V11 tmp11 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V12 tmp12 [V12,T01] ( 7, 11.91) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
+; V12 tmp12 [V12,T01] ( 7, 11 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V13 tmp13 [V13,T17] ( 3, 2.45) ref -> edx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V14 tmp14 [V14,T14] ( 4, 2.91) int -> eax single-def "Inline stloc first use temp"
-; V15 tmp15 [V15,T08] ( 5, 7.91) ref -> ebx class-hnd exact single-def "dup spill" <System.Object[]>
+; V15 tmp15 [V15,T08] ( 5, 7 ) ref -> ebx class-hnd exact single-def "dup spill" <System.Object[]>
; V16 tmp16 [V16,T05] ( 5, 10 ) ref -> eax class-hnd exact single-def "Single-def Box Helper" <Microsoft.Extensions.Primitives.StringSegment>
; V17 tmp17 [V17,T12] ( 2, 4 ) ref -> edi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Primitives.StringSegmentComparer>
;* V18 tmp18 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V19 tmp19 [V19,T02] ( 7, 11.91) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
+; V19 tmp19 [V19,T02] ( 7, 11 ) ref -> ecx class-hnd single-def "Inlining Arg" <<unknown class>>
; V20 tmp20 [V20,T18] ( 3, 2.45) ref -> edx class-hnd single-def "Inline stloc first use temp" <<unknown class>>
; V21 tmp21 [V21,T15] ( 4, 2.91) int -> eax single-def "Inline stloc first use temp"
; V22 tmp22 [V22,T09] ( 5, 7 ) ref -> ebx class-hnd exact single-def "dup spill" <System.Object[]>
@@ -58,9 +58,6 @@
;* V47 tmp47 [V47 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V48 tmp48 [V48 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V49 tmp49 [V49 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V50 tmp50 [V50 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V51 tmp51 [V51 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-;* V52 tmp52 [V52 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;
; Lcl frame size = 0
@@ -71,7 +68,7 @@ G_M46793_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push esi
push ebx
;; size=6 bbWeight=1 PerfScore 4.25
-G_M46793_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M46793_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ecx, 0xD1FFAB1E ; Xunit.TheoryData`2[Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer]
call CORINFO_HELP_NEWSFAST
; gcrRegs +[eax]
@@ -115,9 +112,9 @@ G_M46793_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
; gcrRegs +[edx]
mov eax, dword ptr [ecx+0x08]
cmp dword ptr [edx+0x04], eax
- jbe SHORT G_M46793_IG04
- ;; size=124 bbWeight=1 PerfScore 29.25
-G_M46793_IG03: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byrefRegs=00000000 {}, byref, isz
+ jbe G_M46793_IG08
+ ;; size=128 bbWeight=1 PerfScore 29.25
+G_M46793_IG03: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byrefRegs=00000000 {}, byref
lea edi, [eax+0x01]
mov dword ptr [ecx+0x08], edi
push ebx
@@ -126,16 +123,8 @@ G_M46793_IG03: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byr
; gcrRegs -[edx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[ecx ebx]
- jmp SHORT G_M46793_IG05
- ;; size=18 bbWeight=0.45 PerfScore 2.73
-G_M46793_IG04: ; bbWeight=0.50, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[ecx ebx]
- mov edx, ebx
- ; gcrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[ecx edx ebx]
- ;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M46793_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=16 bbWeight=0.45 PerfScore 1.82
+G_M46793_IG04: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov edi, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edi]
mov ecx, 0xD1FFAB1E ; System.Object[]
@@ -166,9 +155,9 @@ G_M46793_IG05: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[edx]
mov eax, dword ptr [ecx+0x08]
cmp dword ptr [edx+0x04], eax
- jbe SHORT G_M46793_IG07
- ;; size=87 bbWeight=1 PerfScore 24.00
-G_M46793_IG06: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byrefRegs=00000000 {}, byref, isz
+ jbe G_M46793_IG12
+ ;; size=91 bbWeight=1 PerfScore 24.00
+G_M46793_IG05: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byrefRegs=00000000 {}, byref
lea edi, [eax+0x01]
mov dword ptr [ecx+0x08], edi
push ebx
@@ -177,16 +166,8 @@ G_M46793_IG06: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byr
; gcrRegs -[edx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[ecx ebx]
- jmp SHORT G_M46793_IG08
- ;; size=18 bbWeight=0.45 PerfScore 2.73
-G_M46793_IG07: ; bbWeight=0.50, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
- ; gcrRegs +[ecx ebx]
- mov edx, ebx
- ; gcrRegs +[edx]
- call [<unknown method>]
- ; gcrRegs -[ecx edx ebx]
- ;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M46793_IG08: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=16 bbWeight=0.45 PerfScore 1.82
+G_M46793_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov edi, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[edi]
mov ecx, 0xD1FFAB1E ; System.Object[]
@@ -217,9 +198,9 @@ G_M46793_IG08: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs +[edx]
mov eax, dword ptr [ecx+0x08]
cmp dword ptr [edx+0x04], eax
- jbe SHORT G_M46793_IG10
+ jbe SHORT G_M46793_IG09
;; size=87 bbWeight=1 PerfScore 24.00
-G_M46793_IG09: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byrefRegs=00000000 {}, byref, isz
+G_M46793_IG07: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byrefRegs=00000000 {}, byref, isz
lea edi, [eax+0x01]
mov dword ptr [ecx+0x08], edi
push ebx
@@ -228,27 +209,43 @@ G_M46793_IG09: ; bbWeight=0.45, gcrefRegs=0000004E {ecx edx ebx esi}, byr
; gcrRegs -[edx]
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[ecx ebx]
- jmp SHORT G_M46793_IG11
+ jmp SHORT G_M46793_IG10
;; size=18 bbWeight=0.45 PerfScore 2.73
-G_M46793_IG10: ; bbWeight=0.05, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
+G_M46793_IG08: ; bbWeight=0.05, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
+ ; gcrRegs +[ecx ebx]
+ mov edx, ebx
+ ; gcrRegs +[edx]
+ call [<unknown method>]
+ ; gcrRegs -[ecx edx ebx]
+ jmp G_M46793_IG04
+ ;; size=13 bbWeight=0.05 PerfScore 0.24
+G_M46793_IG09: ; bbWeight=0.05, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, byref
; gcrRegs +[ecx ebx]
mov edx, ebx
; gcrRegs +[edx]
call [<unknown method>]
; gcrRegs -[ecx edx ebx]
;; size=8 bbWeight=0.05 PerfScore 0.15
-G_M46793_IG11: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M46793_IG10: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
mov eax, esi
; gcrRegs +[eax]
;; size=2 bbWeight=1 PerfScore 0.25
-G_M46793_IG12: ; bbWeight=1, epilog, nogc, extend
+G_M46793_IG11: ; bbWeight=1, epilog, nogc, extend
pop ebx
pop esi
pop edi
pop ebp
ret
;; size=5 bbWeight=1 PerfScore 3.00
+G_M46793_IG12: ; bbWeight=0.05, gcVars=00000000 {}, gcrefRegs=0000004A {ecx ebx esi}, byrefRegs=00000000 {}, gcvars, byref
+ ; gcrRegs -[eax] +[ecx ebx]
+ mov edx, ebx
+ ; gcrRegs +[edx]
+ call [<unknown method>]
+ ; gcrRegs -[ecx edx ebx]
+ jmp G_M46793_IG06
+ ;; size=13 bbWeight=0.05 PerfScore 0.24
-; Total bytes of code 389, prolog size 6, PerfScore 96.34, instruction count 106, allocated bytes for code 389 (MethodHash=cd974936) for method Microsoft.Extensions.Primitives.StringSegmentTest:get_CompareLesserData():Xunit.TheoryData`2[Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer] (FullOpts)
+; Total bytes of code 403, prolog size 6, PerfScore 91.74, instruction count 106, allocated bytes for code 403 (MethodHash=cd974936) for method Microsoft.Extensions.Primitives.StringSegmentTest:get_CompareLesserData():Xunit.TheoryData`2[Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer] (FullOpts)
; ============================================================
+46 (+3.60%) : 120390.dasm - System.Formats.Cbor.Tests.CborWriterTests:CoseKeyHelpersECDsaExportCosePublicKeyHappyPath(System.String,System.String,System.String,System.String,System.String) (FullOpts)
@@ -10,13 +10,13 @@
;
; V00 arg0 [V00,T10] ( 3, 3 ) ref -> ecx class-hnd single-def <System.String>
; V01 arg1 [V01,T11] ( 3, 3 ) ref -> esi class-hnd single-def <System.String>
-; V02 arg2 [V02,T59] ( 1, 1 ) ref -> [ebp+0x10] class-hnd single-def <System.String>
-; V03 arg3 [V03,T44] ( 2, 1.50) ref -> ebx class-hnd single-def <System.String>
+; V02 arg2 [V02,T57] ( 1, 1 ) ref -> [ebp+0x10] class-hnd single-def <System.String>
+; V03 arg3 [V03,T42] ( 2, 1.50) ref -> ebx class-hnd single-def <System.String>
; V04 arg4 [V04,T22] ( 2, 2 ) ref -> edi class-hnd single-def <System.String>
; V05 loc0 [V05,T18] ( 3, 2.50) ref -> [ebp-0x10C] class-hnd spill-single-def <ubyte[]>
;* V06 loc1 [V06 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[System.Security.Cryptography.HashAlgorithmName]>
-; V07 loc2 [V07,T32] ( 2, 2 ) struct (64) [ebp-0x60] do-not-enreg[S] must-init <System.Security.Cryptography.ECParameters>
-; V08 loc3 [V08,T46] ( 3, 1 ) ref -> [ebp-0x110] class-hnd exact EH-live spill-single-def <System.Security.Cryptography.ECDsaWrapper>
+; V07 loc2 [V07,T31] ( 2, 2 ) struct (64) [ebp-0x60] do-not-enreg[S] must-init <System.Security.Cryptography.ECParameters>
+; V08 loc3 [V08,T44] ( 3, 1 ) ref -> [ebp-0x110] class-hnd exact EH-live spill-single-def <System.Security.Cryptography.ECDsaWrapper>
;* V09 loc4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <ubyte[]>
;* V10 loc5 [V10 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[System.Security.Cryptography.HashAlgorithmName]>
; V11 loc6 [V11 ] ( 5, 5 ) struct (64) [ebp-0xA0] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Security.Cryptography.ECParameters>
@@ -46,12 +46,12 @@
;* V35 tmp22 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
;* V36 tmp23 [V36 ] ( 0, 0 ) ref -> zero-ref
;* V37 tmp24 [V37 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
-;* V38 tmp25 [V38,T60] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;* V38 tmp25 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
; V39 tmp26 [V39 ] ( 5, 3.50) struct ( 8) [ebp-0xE8] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-; V40 tmp27 [V40,T38] ( 4, 2.00) ref -> esi class-hnd "Inline return value spill temp" <ubyte[]>
-; V41 tmp28 [V41,T45] ( 3, 1.50) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-; V42 tmp29 [V42,T39] ( 3, 2.00) byref -> ecx single-def "Inlining Arg"
-; V43 tmp30 [V43,T40] ( 3, 2.00) byref -> edx single-def "Inlining Arg"
+; V40 tmp27 [V40,T36] ( 4, 2.00) ref -> esi class-hnd "Inline return value spill temp" <ubyte[]>
+; V41 tmp28 [V41,T43] ( 3, 1.50) ref -> esi class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+; V42 tmp29 [V42,T37] ( 3, 2.00) byref -> ecx single-def "Inlining Arg"
+; V43 tmp30 [V43,T38] ( 3, 2.00) byref -> edx single-def "Inlining Arg"
; V44 tmp31 [V44,T19] ( 3, 2.50) int -> edi "Inlining Arg"
;* V45 tmp32 [V45 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
;* V46 tmp33 [V46 ] ( 0, 0 ) struct (12) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
@@ -91,24 +91,24 @@
;* V80 tmp67 [V80 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V81 tmp68 [V81 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V82 tmp69 [V82 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V83 tmp70 [V83,T33] ( 2, 2 ) int -> edi "Inlining Arg"
+; V83 tmp70 [V83,T32] ( 2, 2 ) int -> edi "Inlining Arg"
; V84 tmp71 [V84,T25] ( 2, 2 ) byref -> ebx single-def "Inlining Arg"
;* V85 tmp72 [V85 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V86 tmp73 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V87 tmp74 [V87 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V88 tmp75 [V88,T34] ( 2, 2 ) int -> esi "Inlining Arg"
+; V88 tmp75 [V88,T33] ( 2, 2 ) int -> esi "Inlining Arg"
; V89 tmp76 [V89,T26] ( 2, 2 ) byref -> [ebp-0x124] spill-single-def "Inlining Arg"
-; V90 tmp77 [V90,T35] ( 2, 2 ) ubyte -> [ebp-0x104] spill-single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
-; V91 tmp78 [V91,T27] ( 2, 2 ) ref -> [ebp-0x128] spill-single-def "field V06.value (fldOffset=0x4)" P-INDEP
+;* V90 tmp77 [V90 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
+;* V91 tmp78 [V91 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.value (fldOffset=0x4)" P-INDEP
;* V92 tmp79 [V92 ] ( 0, 0 ) ubyte -> zero-ref single-def "field V10.hasValue (fldOffset=0x0)" P-INDEP
;* V93 tmp80 [V93 ] ( 0, 0 ) ref -> zero-ref single-def "field V10.value (fldOffset=0x4)" P-INDEP
-; V94 tmp81 [V94,T28] ( 2, 2 ) ref -> esi single-def "field V12.X (fldOffset=0x0)" P-INDEP
-; V95 tmp82 [V95,T29] ( 2, 2 ) ref -> eax single-def "field V12.Y (fldOffset=0x4)" P-INDEP
-; V96 tmp83 [V96,T47] ( 2, 1 ) ref -> ebx single-def "field V13._name (fldOffset=0x0)" P-INDEP
-;* V97 tmp84 [V97,T67] ( 0, 0 ) ubyte -> zero-ref single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP
-; V98 tmp85 [V98,T48] ( 2, 1 ) ref -> ebx single-def "field V14.value (fldOffset=0x4)" P-INDEP
-; V99 tmp86 [V99,T21] ( 3, 2 ) ubyte -> edx "field V15.hasValue (fldOffset=0x0)" P-INDEP
-; V100 tmp87 [V100,T20] ( 3, 2 ) ref -> ebx "field V15.value (fldOffset=0x4)" P-INDEP
+; V94 tmp81 [V94,T27] ( 2, 2 ) ref -> esi single-def "field V12.X (fldOffset=0x0)" P-INDEP
+; V95 tmp82 [V95,T28] ( 2, 2 ) ref -> eax single-def "field V12.Y (fldOffset=0x4)" P-INDEP
+; V96 tmp83 [V96,T45] ( 2, 1 ) ref -> ebx single-def "field V13._name (fldOffset=0x0)" P-INDEP
+;* V97 tmp84 [V97,T64] ( 0, 0 ) ubyte -> zero-ref single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP
+; V98 tmp85 [V98,T46] ( 2, 1 ) ref -> edx single-def "field V14.value (fldOffset=0x4)" P-INDEP
+; V99 tmp86 [V99,T21] ( 3, 2 ) ubyte -> [ebp-0x104] "field V15.hasValue (fldOffset=0x0)" P-INDEP
+; V100 tmp87 [V100,T20] ( 3, 2 ) ref -> [ebp-0x128] "field V15.value (fldOffset=0x4)" P-INDEP
;* V101 tmp88 [V101 ] ( 0, 0 ) ref -> zero-ref single-def "field V16._object (fldOffset=0x0)" P-INDEP
;* V102 tmp89 [V102 ] ( 0, 0 ) int -> zero-ref single-def "field V16._index (fldOffset=0x4)" P-INDEP
;* V103 tmp90 [V103 ] ( 0, 0 ) int -> zero-ref single-def "field V16._length (fldOffset=0x8)" P-INDEP
@@ -116,22 +116,22 @@
;* V105 tmp92 [V105 ] ( 0, 0 ) int -> zero-ref single-def "field V17._index (fldOffset=0x4)" P-INDEP
;* V106 tmp93 [V106 ] ( 0, 0 ) int -> zero-ref single-def "field V17._length (fldOffset=0x8)" P-INDEP
;* V107 tmp94 [V107 ] ( 0, 0 ) ref -> zero-ref "field V18._name (fldOffset=0x0)" P-INDEP
-;* V108 tmp95 [V108,T61] ( 0, 0 ) ref -> zero-ref single-def "field V23._disposedType (fldOffset=0x0)" P-INDEP
-;* V109 tmp96 [V109,T62] ( 0, 0 ) ref -> zero-ref single-def "field V23.DefaultKeyType (fldOffset=0x4)" P-INDEP
-;* V110 tmp97 [V110,T63] ( 0, 0 ) ref -> zero-ref single-def "field V23._lazyKey (fldOffset=0x8)" P-INDEP
-;* V111 tmp98 [V111,T64] ( 0, 0 ) ubyte -> zero-ref single-def "field V23._disposed (fldOffset=0xc)" P-INDEP
-;* V112 tmp99 [V112,T65] ( 0, 0 ) ubyte -> zero-ref single-def "field V35.hasValue (fldOffset=0x0)" P-INDEP
-;* V113 tmp100 [V113,T66] ( 0, 0 ) int -> zero-ref single-def "field V35.value (fldOffset=0x4)" P-INDEP
+;* V108 tmp95 [V108,T58] ( 0, 0 ) ref -> zero-ref single-def "field V23._disposedType (fldOffset=0x0)" P-INDEP
+;* V109 tmp96 [V109,T59] ( 0, 0 ) ref -> zero-ref single-def "field V23.DefaultKeyType (fldOffset=0x4)" P-INDEP
+;* V110 tmp97 [V110,T60] ( 0, 0 ) ref -> zero-ref single-def "field V23._lazyKey (fldOffset=0x8)" P-INDEP
+;* V111 tmp98 [V111,T61] ( 0, 0 ) ubyte -> zero-ref single-def "field V23._disposed (fldOffset=0xc)" P-INDEP
+;* V112 tmp99 [V112,T62] ( 0, 0 ) ubyte -> zero-ref single-def "field V35.hasValue (fldOffset=0x0)" P-INDEP
+;* V113 tmp100 [V113,T63] ( 0, 0 ) int -> zero-ref single-def "field V35.value (fldOffset=0x4)" P-INDEP
;* V114 tmp101 [V114 ] ( 0, 0 ) ubyte -> zero-ref "field V37.hasValue (fldOffset=0x0)" P-INDEP
;* V115 tmp102 [V115 ] ( 0, 0 ) int -> zero-ref "field V37.value (fldOffset=0x4)" P-INDEP
; V116 tmp103 [V116 ] ( 2, 1.50) byref -> [ebp-0xE8] do-not-enreg[X] addr-exposed "field V39._reference (fldOffset=0x0)" P-DEP
; V117 tmp104 [V117 ] ( 4, 3.00) int -> [ebp-0xE4] do-not-enreg[X] addr-exposed "field V39._length (fldOffset=0x4)" P-DEP
; V118 tmp105 [V118,T06] ( 11, 5.50) ref -> edi "field V45._object (fldOffset=0x0)" P-INDEP
;* V119 tmp106 [V119 ] ( 0, 0 ) int -> zero-ref "field V45._index (fldOffset=0x4)" P-INDEP
-; V120 tmp107 [V120,T41] ( 4, 1.50) int -> ebx "field V45._length (fldOffset=0x8)" P-INDEP
+; V120 tmp107 [V120,T39] ( 4, 1.50) int -> ebx "field V45._length (fldOffset=0x8)" P-INDEP
; V121 tmp108 [V121,T07] ( 11, 5.50) ref -> esi "field V46._object (fldOffset=0x0)" P-INDEP
;* V122 tmp109 [V122 ] ( 0, 0 ) int -> zero-ref "field V46._index (fldOffset=0x4)" P-INDEP
-; V123 tmp110 [V123,T42] ( 4, 1.50) int -> [ebp-0x108] "field V46._length (fldOffset=0x8)" P-INDEP
+; V123 tmp110 [V123,T40] ( 4, 1.50) int -> [ebp-0x108] "field V46._length (fldOffset=0x8)" P-INDEP
;* V124 tmp111 [V124 ] ( 0, 0 ) ref -> zero-ref single-def "field V48._object (fldOffset=0x0)" P-INDEP
;* V125 tmp112 [V125 ] ( 0, 0 ) int -> zero-ref single-def "field V48._index (fldOffset=0x4)" P-INDEP
;* V126 tmp113 [V126 ] ( 0, 0 ) int -> zero-ref single-def "field V48._length (fldOffset=0x8)" P-INDEP
@@ -139,11 +139,11 @@
;* V128 tmp115 [V128 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x4)" P-INDEP
;* V129 tmp116 [V129 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
;* V130 tmp117 [V130 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x4)" P-INDEP
-; V131 tmp118 [V131,T30] ( 2, 2 ) byref -> eax single-def "field V54._reference (fldOffset=0x0)" P-INDEP
-; V132 tmp119 [V132,T36] ( 2, 2 ) int -> edi single-def "field V54._length (fldOffset=0x4)" P-INDEP
+; V131 tmp118 [V131,T29] ( 2, 2 ) byref -> eax single-def "field V54._reference (fldOffset=0x0)" P-INDEP
+; V132 tmp119 [V132,T34] ( 2, 2 ) int -> edi single-def "field V54._length (fldOffset=0x4)" P-INDEP
; V133 tmp120 [V133 ] ( 2, 1 ) byref -> [ebp-0xF4] do-not-enreg[X] addr-exposed "field V56._reference (fldOffset=0x0)" P-DEP
; V134 tmp121 [V134 ] ( 2, 1 ) int -> [ebp-0xF0] do-not-enreg[X] addr-exposed "field V56._length (fldOffset=0x4)" P-DEP
-; V135 tmp122 [V135,T49] ( 2, 1 ) byref -> ecx single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+; V135 tmp122 [V135,T47] ( 2, 1 ) byref -> ecx single-def "field V62._reference (fldOffset=0x0)" P-INDEP
;* V136 tmp123 [V136 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x4)" P-INDEP
;* V137 tmp124 [V137 ] ( 0, 0 ) ref -> zero-ref single-def "field V63._object (fldOffset=0x0)" P-INDEP
;* V138 tmp125 [V138 ] ( 0, 0 ) int -> zero-ref single-def "field V63._index (fldOffset=0x4)" P-INDEP
@@ -152,29 +152,29 @@
;* V141 tmp128 [V141 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x4)" P-INDEP
;* V142 tmp129 [V142 ] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
;* V143 tmp130 [V143 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x4)" P-INDEP
-; V144 tmp131 [V144,T31] ( 2, 2 ) byref -> eax single-def "field V69._reference (fldOffset=0x0)" P-INDEP
-; V145 tmp132 [V145,T37] ( 2, 2 ) int -> esi single-def "field V69._length (fldOffset=0x4)" P-INDEP
+; V144 tmp131 [V144,T30] ( 2, 2 ) byref -> eax single-def "field V69._reference (fldOffset=0x0)" P-INDEP
+; V145 tmp132 [V145,T35] ( 2, 2 ) int -> esi single-def "field V69._length (fldOffset=0x4)" P-INDEP
; V146 tmp133 [V146 ] ( 2, 1 ) byref -> [ebp-0x100] do-not-enreg[X] addr-exposed "field V71._reference (fldOffset=0x0)" P-DEP
; V147 tmp134 [V147 ] ( 2, 1 ) int -> [ebp-0xFC] do-not-enreg[X] addr-exposed "field V71._length (fldOffset=0x4)" P-DEP
-; V148 tmp135 [V148,T50] ( 2, 1 ) byref -> ebx single-def "field V77._reference (fldOffset=0x0)" P-INDEP
+; V148 tmp135 [V148,T48] ( 2, 1 ) byref -> ebx single-def "field V77._reference (fldOffset=0x0)" P-INDEP
;* V149 tmp136 [V149 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x4)" P-INDEP
-; V150 tmp137 [V150,T51] ( 2, 1 ) byref -> ebx single-def "field V79._reference (fldOffset=0x0)" P-INDEP
-; V151 tmp138 [V151,T55] ( 2, 1 ) int -> edi single-def "field V79._length (fldOffset=0x4)" P-INDEP
+; V150 tmp137 [V150,T49] ( 2, 1 ) byref -> ebx single-def "field V79._reference (fldOffset=0x0)" P-INDEP
+; V151 tmp138 [V151,T53] ( 2, 1 ) int -> edi single-def "field V79._length (fldOffset=0x4)" P-INDEP
;* V152 tmp139 [V152 ] ( 0, 0 ) byref -> zero-ref "field V80._reference (fldOffset=0x0)" P-INDEP
;* V153 tmp140 [V153 ] ( 0, 0 ) int -> zero-ref "field V80._length (fldOffset=0x4)" P-INDEP
-; V154 tmp141 [V154,T52] ( 2, 1 ) byref -> ebx single-def "field V81._reference (fldOffset=0x0)" P-INDEP
-; V155 tmp142 [V155,T56] ( 2, 1 ) int -> edi single-def "field V81._length (fldOffset=0x4)" P-INDEP
+; V154 tmp141 [V154,T50] ( 2, 1 ) byref -> ebx single-def "field V81._reference (fldOffset=0x0)" P-INDEP
+; V155 tmp142 [V155,T54] ( 2, 1 ) int -> edi single-def "field V81._length (fldOffset=0x4)" P-INDEP
;* V156 tmp143 [V156 ] ( 0, 0 ) byref -> zero-ref "field V82._reference (fldOffset=0x0)" P-INDEP
;* V157 tmp144 [V157 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x4)" P-INDEP
-; V158 tmp145 [V158,T53] ( 2, 1 ) byref -> ecx "field V85._reference (fldOffset=0x0)" P-INDEP
-; V159 tmp146 [V159,T57] ( 2, 1 ) int -> esi "field V85._length (fldOffset=0x4)" P-INDEP
-; V160 tmp147 [V160,T54] ( 2, 1 ) byref -> ecx single-def "field V86._reference (fldOffset=0x0)" P-INDEP
-; V161 tmp148 [V161,T58] ( 2, 1 ) int -> esi single-def "field V86._length (fldOffset=0x4)" P-INDEP
+; V158 tmp145 [V158,T51] ( 2, 1 ) byref -> ecx "field V85._reference (fldOffset=0x0)" P-INDEP
+; V159 tmp146 [V159,T55] ( 2, 1 ) int -> esi "field V85._length (fldOffset=0x4)" P-INDEP
+; V160 tmp147 [V160,T52] ( 2, 1 ) byref -> ecx single-def "field V86._reference (fldOffset=0x0)" P-INDEP
+; V161 tmp148 [V161,T56] ( 2, 1 ) int -> esi single-def "field V86._length (fldOffset=0x4)" P-INDEP
;* V162 tmp149 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP
;* V163 tmp150 [V163 ] ( 0, 0 ) int -> zero-ref single-def "field V87._length (fldOffset=0x4)" P-INDEP
; V164 tmp151 [V164,T05] ( 3, 6 ) ref -> eax single-def "argument with side effect"
; V165 EHSlots [V165 ] ( 1, 1 ) struct (16) [ebp-0x20] do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-; V166 cse0 [V166,T43] ( 3, 1.50) ref -> eax "CSE - conservative"
+; V166 cse0 [V166,T41] ( 3, 1.50) ref -> eax "CSE - conservative"
;
; Lcl frame size = 284
@@ -211,29 +211,36 @@ G_M24888_IG02: ; bbWeight=1, gcrefRegs=000000CA {ecx ebx esi edi}, byrefR
;; size=16 bbWeight=1 PerfScore 5.25
G_M24888_IG03: ; bbWeight=0.50, gcVars=000000000000000000040000 {V05}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
; gcrRegs -[eax ebx]
- xor edx, edx
xor ebx, ebx
- ; gcrRegs +[ebx]
+ xor edx, edx
+ ; gcrRegs +[edx]
jmp SHORT G_M24888_IG05
;; size=6 bbWeight=0.50 PerfScore 1.25
G_M24888_IG04: ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
- mov edx, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M24888_IG05: ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
- mov byte ptr [ebp-0x104], dl
- mov gword ptr [ebp-0x128], ebx
- ; GC ptr vars +{V91}
+ ; gcrRegs -[edx] +[ebx]
+ mov edx, ebx
+ ; gcrRegs +[edx]
+ mov byte ptr [ebp-0x104], 1
+ mov gword ptr [ebp-0x128], edx
+ ; GC ptr vars +{V100}
+ mov edx, gword ptr [ebp-0x128]
+ movzx ebx, byte ptr [ebp-0x104]
+ ; gcrRegs -[ebx]
+ ;; size=28 bbWeight=0.50 PerfScore 2.12
+G_M24888_IG05: ; bbWeight=1, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+ ; GC ptr vars -{V100}
vxorps ymm0, ymm0, ymm0
vmovdqu ymmword ptr [ebp-0xA0], ymm0
vmovdqu ymmword ptr [ebp-0x80], ymm0
test edi, edi
je G_M24888_IG39
+ mov gword ptr [ebp-0x128], edx
+ ; GC ptr vars +{V100}
push edi
lea ecx, [ebp-0x94]
xor edx, edx
- ; gcrRegs +[edx]
call [<unknown method>]
- ; gcrRegs -[edx ebx edi]
+ ; gcrRegs -[edx edi]
mov ecx, esi
; gcrRegs +[ecx]
call [Test.Cryptography.ByteUtils:HexToByteArray(System.String):ubyte[]]
@@ -261,8 +268,8 @@ G_M24888_IG05: ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
mov gword ptr [esi+0x10], 0xD1FFAB1E
xor eax, eax
mov gword ptr [esi+0x14], eax
- ;; size=123 bbWeight=1 PerfScore 49.83
-G_M24888_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+ ;; size=117 bbWeight=1 PerfScore 48.83
+G_M24888_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
; gcrRegs -[eax]
mov gword ptr [esi+0x18], eax
mov byte ptr [esi+0x1C], 0
@@ -274,8 +281,8 @@ G_M24888_IG06: ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
; gcrRegs -[eax]
; byrRegs -[edx]
cmp dword ptr [esi+0x08], 521
- je SHORT G_M24888_IG10
- ;; size=30 bbWeight=1 PerfScore 10.50
+ je G_M24888_IG10
+ ;; size=34 bbWeight=1 PerfScore 10.50
G_M24888_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
mov ecx, esi
; gcrRegs +[ecx]
@@ -287,7 +294,7 @@ G_M24888_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
mov eax, gword ptr [edi+0x08]
; gcrRegs +[eax]
test eax, eax
- je SHORT G_M24888_IG10
+ je G_M24888_IG10
mov gword ptr [ebp-0x114], eax
; GC ptr vars +{V25}
mov edx, gword ptr [eax+0x08]
@@ -296,6 +303,7 @@ G_M24888_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
; GC ptr vars +{V26}
test edx, edx
je SHORT G_M24888_IG08
+ mov dword ptr [ebp-0x104], ebx
mov ecx, edx
; gcrRegs +[ecx]
mov edx, 1
@@ -308,7 +316,8 @@ G_M24888_IG07: ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
; GC ptr vars -{V26}
call [System.GC:SuppressFinalize(System.Object)]
; gcrRegs -[ecx]
...
realworld.run.windows.x86.checked.mch
-25 (-1.77%) : 28738.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -5,158 +5,152 @@
; ebp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 120 single block inlinees; 45 inlinees without PGO data
+; 0 inlinees with PGO data; 125 single block inlinees; 45 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 65, 33.50) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V01 arg1 [V01,T11] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V02 loc0 [V02,T12] ( 6, 4.50) int -> ebx single-def
+; V01 arg1 [V01,T12] ( 3, 3 ) ref -> edx class-hnd single-def <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V02 loc0 [V02,T13] ( 6, 4.50) int -> ebx single-def
;* V03 tmp0 [V03 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V04 tmp1 [V04,T50] ( 2, 2 ) int -> edi "Inlining Arg"
-; V05 tmp2 [V05,T56] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V06 tmp3 [V06,T13] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V04 tmp1 [V04,T52] ( 2, 2 ) int -> edi "Inlining Arg"
+; V05 tmp2 [V05,T58] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V06 tmp3 [V06,T14] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
; V07 tmp4 [V07,T02] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V10 tmp7 [V10,T20] ( 6, 3 ) int -> eax "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V12 tmp9 [V12 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V14 tmp11 [V14 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V18 tmp15 [V18 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V20 tmp17 [V20,T03] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V21 tmp18 [V21,T38] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V23 tmp20 [V23,T63] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V24 tmp21 [V24,T39] ( 3, 3 ) int -> edx "Inlining Arg"
-; V25 tmp22 [V25,T26] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V26 tmp23 [V26 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V27 tmp24 [V27,T51] ( 2, 2 ) int -> edi "Inlining Arg"
-; V28 tmp25 [V28,T57] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V29 tmp26 [V29,T14] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V30 tmp27 [V30,T04] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V31 tmp28 [V31 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V32 tmp29 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V33 tmp30 [V33,T21] ( 6, 3 ) int -> eax "Inline stloc first use temp"
-;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V35 tmp32 [V35 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V36 tmp33 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V18 tmp15 [V18,T03] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V19 tmp16 [V19,T38] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V20 tmp17 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V21 tmp18 [V21,T65] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V22 tmp19 [V22,T39] ( 3, 3 ) int -> edx "Inlining Arg"
+; V23 tmp20 [V23,T26] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V24 tmp21 [V24 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V25 tmp22 [V25,T53] ( 2, 2 ) int -> edi "Inlining Arg"
+; V26 tmp23 [V26,T59] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V27 tmp24 [V27,T15] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V28 tmp25 [V28,T04] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V30 tmp27 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V31 tmp28 [V31,T21] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V32 tmp29 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V33 tmp30 [V33 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V39 tmp36 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V40 tmp37 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V42 tmp39 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V43 tmp40 [V43,T05] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V44 tmp41 [V44,T40] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V46 tmp43 [V46,T64] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V47 tmp44 [V47,T41] ( 3, 3 ) int -> edx "Inlining Arg"
-; V48 tmp45 [V48,T27] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V49 tmp46 [V49 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V50 tmp47 [V50,T52] ( 2, 2 ) int -> edi "Inlining Arg"
-; V51 tmp48 [V51,T58] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V52 tmp49 [V52,T15] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V53 tmp50 [V53,T06] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V54 tmp51 [V54 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V39 tmp36 [V39,T05] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V40 tmp37 [V40,T40] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V42 tmp39 [V42,T66] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V43 tmp40 [V43,T41] ( 3, 3 ) int -> edx "Inlining Arg"
+; V44 tmp41 [V44,T27] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V45 tmp42 [V45 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V46 tmp43 [V46,T54] ( 2, 2 ) int -> edi "Inlining Arg"
+; V47 tmp44 [V47,T60] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V48 tmp45 [V48,T16] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V49 tmp46 [V49,T06] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V50 tmp47 [V50 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V51 tmp48 [V51 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V52 tmp49 [V52,T22] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V53 tmp50 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V54 tmp51 [V54 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V56 tmp53 [V56,T22] ( 6, 3 ) int -> eax "Inline stloc first use temp"
-;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V56 tmp53 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V57 tmp54 [V57 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V58 tmp55 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V59 tmp56 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V60 tmp57 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V61 tmp58 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V62 tmp59 [V62 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V63 tmp60 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V64 tmp61 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V65 tmp62 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V66 tmp63 [V66,T07] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V67 tmp64 [V67,T42] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V68 tmp65 [V68 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V69 tmp66 [V69,T65] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V70 tmp67 [V70,T43] ( 3, 3 ) int -> edx "Inlining Arg"
-; V71 tmp68 [V71,T28] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
-;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V73 tmp70 [V73,T53] ( 2, 2 ) int -> edi "Inlining Arg"
-; V74 tmp71 [V74,T59] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V75 tmp72 [V75,T16] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V76 tmp73 [V76,T08] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V77 tmp74 [V77 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V59 tmp56 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V60 tmp57 [V60,T07] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V61 tmp58 [V61,T42] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V62 tmp59 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V63 tmp60 [V63,T67] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V64 tmp61 [V64,T43] ( 3, 3 ) int -> edx "Inlining Arg"
+; V65 tmp62 [V65,T28] ( 3, 3 ) byref -> ecx single-def "Inlining Arg"
+;* V66 tmp63 [V66 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V67 tmp64 [V67,T55] ( 2, 2 ) int -> edi "Inlining Arg"
+; V68 tmp65 [V68,T61] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V69 tmp66 [V69,T17] ( 4, 4 ) ref -> ebx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V70 tmp67 [V70,T08] ( 6, 6 ) ref -> ebx class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V71 tmp68 [V71 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V72 tmp69 [V72 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V73 tmp70 [V73,T23] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V74 tmp71 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V75 tmp72 [V75 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V76 tmp73 [V76 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V77 tmp74 [V77 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V78 tmp75 [V78 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V79 tmp76 [V79,T23] ( 6, 3 ) int -> eax "Inline stloc first use temp"
+;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V80 tmp77 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V81 tmp78 [V81 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V82 tmp79 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V84 tmp81 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V85 tmp82 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V86 tmp83 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V88 tmp85 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V89 tmp86 [V89,T29] ( 3, 3 ) byref -> eax single-def "Inlining Arg"
-;* V90 tmp87 [V90 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V91 tmp88 [V91,T54] ( 2, 2 ) int -> [ebp-0x10] spill-single-def "Inlining Arg"
-; V92 tmp89 [V92,T60] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V93 tmp90 [V93,T17] ( 4, 4 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V94 tmp91 [V94,T09] ( 6, 6 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V95 tmp92 [V95 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V81 tmp78 [V81,T09] ( 6, 6 ) byref -> eax single-def "Inlining Arg"
+; V82 tmp79 [V82,T44] ( 3, 3 ) int -> edx "impAppendStmt"
+;* V83 tmp80 [V83 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V84 tmp81 [V84,T68] ( 2, 1 ) int -> edx "Inline return value spill temp"
+; V85 tmp82 [V85,T45] ( 3, 3 ) int -> ecx "Inlining Arg"
+; V86 tmp83 [V86,T29] ( 3, 3 ) byref -> eax single-def "Inlining Arg"
+;* V87 tmp84 [V87 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V88 tmp85 [V88,T56] ( 2, 2 ) int -> [ebp-0x10] spill-single-def "Inlining Arg"
+; V89 tmp86 [V89,T62] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V90 tmp87 [V90,T18] ( 4, 4 ) ref -> [ebp-0x14] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V91 tmp88 [V91,T10] ( 6, 6 ) ref -> [ebp-0x18] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V92 tmp89 [V92 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V94 tmp91 [V94,T24] ( 6, 3 ) int -> edx "Inline stloc first use temp"
+;* V95 tmp92 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V96 tmp93 [V96 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V97 tmp94 [V97,T24] ( 6, 3 ) int -> edx "Inline stloc first use temp"
+;* V97 tmp94 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V98 tmp95 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V99 tmp96 [V99 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V100 tmp97 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V101 tmp98 [V101 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V102 tmp99 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V103 tmp100 [V103 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V104 tmp101 [V104 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V105 tmp102 [V105 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V106 tmp103 [V106 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V107 tmp104 [V107,T30] ( 3, 3 ) byref -> edi single-def "Inlining Arg"
-;* V108 tmp105 [V108 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-; V109 tmp106 [V109,T61] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V110 tmp107 [V110,T18] ( 4, 4 ) ref -> esi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V111 tmp108 [V111,T10] ( 6, 6 ) ref -> esi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V112 tmp109 [V112 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
-;* V113 tmp110 [V113 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V114 tmp111 [V114 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V115 tmp112 [V115,T25] ( 6, 3 ) int -> edi "Inline stloc first use temp"
-;* V116 tmp113 [V116 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V117 tmp114 [V117 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V118 tmp115 [V118 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V119 tmp116 [V119,T55] ( 2, 2 ) int -> edi "Inlining Arg"
-; V120 tmp117 [V120,T62] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V121 tmp118 [V121,T19] ( 4, 4 ) ref -> [ebp-0x1C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V122 tmp119 [V122,T31] ( 3, 3 ) ref -> [ebp-0x20] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V123 tmp120 [V123 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V100 tmp97 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V101 tmp98 [V101 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V102 tmp99 [V102,T30] ( 3, 3 ) byref -> edi single-def "Inlining Arg"
+;* V103 tmp100 [V103 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+; V104 tmp101 [V104,T63] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V105 tmp102 [V105,T19] ( 4, 4 ) ref -> esi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V106 tmp103 [V106,T11] ( 6, 6 ) ref -> esi class-hnd exact single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V107 tmp104 [V107 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg"
+;* V108 tmp105 [V108 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V109 tmp106 [V109 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V110 tmp107 [V110,T25] ( 6, 3 ) int -> edi "Inline stloc first use temp"
+;* V111 tmp108 [V111 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V112 tmp109 [V112 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V113 tmp110 [V113 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V114 tmp111 [V114,T57] ( 2, 2 ) int -> edi "Inlining Arg"
+; V115 tmp112 [V115,T64] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V116 tmp113 [V116,T31] ( 3, 3 ) ref -> [ebp-0x1C] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V117 tmp114 [V117 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V118 tmp115 [V118 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V120 tmp117 [V120,T32] ( 3, 3 ) ref -> ecx single-def "arr expr"
+; V121 tmp118 [V121,T33] ( 3, 3 ) ref -> ecx single-def "arr expr"
+;* V122 tmp119 [V122 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V124 tmp121 [V124,T34] ( 3, 3 ) ref -> edx single-def "arr expr"
;* V125 tmp122 [V125 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V126 tmp123 [V126,T32] ( 3, 3 ) ref -> ecx single-def "arr expr"
-; V127 tmp124 [V127,T33] ( 3, 3 ) ref -> ecx single-def "arr expr"
+;* V126 tmp123 [V126 ] ( 0, 0 ) ref -> zero-ref "arr expr"
+; V127 tmp124 [V127,T35] ( 3, 3 ) ref -> ecx single-def "arr expr"
;* V128 tmp125 [V128 ] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref "arr expr"
-; V130 tmp127 [V130,T34] ( 3, 3 ) ref -> ecx single-def "arr expr"
+; V130 tmp127 [V130,T36] ( 3, 3 ) ref -> ecx single-def "arr expr"
...
-15 (-1.76%) : 14529.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
@@ -108,8 +108,7 @@ G_M715_IG02: ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {
jle G_M715_IG16
;; size=27 bbWeight=1 PerfScore 12.25
G_M715_IG03: ; bbWeight=4, gcrefRegs=00000005 {eax edx}, byrefRegs=00000000 {}, byref
- movsx ecx, word ptr [edi+2*ebx]
- movzx ecx, cl
+ movzx ecx, byte ptr [edi+2*ebx]
mov dword ptr [ebp-0x1C], ecx
mov dword ptr [ebp-0x18], ebx
movsx esi, word ptr [esi+2*ebx]
@@ -117,7 +116,7 @@ G_M715_IG03: ; bbWeight=4, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov dword ptr [ebp-0x20], edi
test esi, esi
je G_M715_IG14
- ;; size=31 bbWeight=4 PerfScore 52.00
+ ;; size=28 bbWeight=4 PerfScore 43.00
G_M715_IG04: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=00000000 {}, byref, isz
mov esi, ecx
cmp esi, 255
@@ -149,8 +148,7 @@ G_M715_IG08: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov esi, dword ptr [ecx+0x24]
mov ecx, dword ptr [ebp-0x2C]
; gcrRegs -[ecx]
- movsx esi, word ptr [esi+2*ecx]
- movzx esi, si
+ movzx esi, word ptr [esi+2*ecx]
mov dword ptr [ebp-0x30], esi
mov esi, gword ptr [ebp-0x5C]
; gcrRegs +[esi]
@@ -185,7 +183,7 @@ G_M715_IG08: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov byte ptr [edi+esi], cl
shr dword ptr [edx+0x14], 16
add dword ptr [edx+0x18], -16
- ;; size=117 bbWeight=2 PerfScore 114.00
+ ;; size=114 bbWeight=2 PerfScore 109.50
G_M715_IG09: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=00000000 {}, byref, isz
; GC ptr vars -{V14}
mov esi, dword ptr [ebp-0x2C]
@@ -269,8 +267,7 @@ G_M715_IG12: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov esi, dword ptr [ecx+0x24]
mov ecx, dword ptr [ebp-0x28]
; gcrRegs -[ecx]
- movsx esi, word ptr [esi+2*ecx]
- movzx esi, si
+ movzx esi, word ptr [esi+2*ecx]
mov dword ptr [ebp-0x40], esi
mov ecx, gword ptr [ebp-0x64]
; gcrRegs +[ecx]
@@ -305,7 +302,7 @@ G_M715_IG12: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov byte ptr [edi+esi], cl
shr dword ptr [edx+0x14], 16
add dword ptr [edx+0x18], -16
- ;; size=120 bbWeight=2 PerfScore 111.50
+ ;; size=117 bbWeight=2 PerfScore 107.00
G_M715_IG13: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=00000000 {}, byref, isz
; GC ptr vars -{V31}
mov esi, dword ptr [ebp-0x28]
@@ -354,8 +351,7 @@ G_M715_IG14: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov esi, gword ptr [eax+0x04]
; gcrRegs +[esi]
mov edi, dword ptr [esi+0x24]
- movsx edi, word ptr [edi+2*ecx]
- movzx edi, di
+ movzx edi, word ptr [edi+2*ecx]
mov esi, dword ptr [esi+0x30]
; gcrRegs -[esi]
movzx ecx, byte ptr [esi+ecx]
@@ -384,7 +380,7 @@ G_M715_IG14: ; bbWeight=2, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov byte ptr [edi+esi], cl
shr dword ptr [edx+0x14], 16
add dword ptr [edx+0x18], -16
- ;; size=95 bbWeight=2 PerfScore 98.50
+ ;; size=92 bbWeight=2 PerfScore 94.00
G_M715_IG15: ; bbWeight=4, gcrefRegs=00000005 {eax edx}, byrefRegs=00000000 {}, byref
mov ebx, dword ptr [ebp-0x18]
inc ebx
@@ -398,8 +394,7 @@ G_M715_IG16: ; bbWeight=1, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
; gcrRegs +[ecx]
mov eax, dword ptr [ecx+0x24]
; gcrRegs -[eax]
- movsx eax, word ptr [eax+0x200]
- movzx eax, ax
+ movzx eax, word ptr [eax+0x200]
mov ecx, dword ptr [ecx+0x30]
; gcrRegs -[ecx]
movzx ebx, byte ptr [ecx+0x100]
@@ -411,7 +406,7 @@ G_M715_IG16: ; bbWeight=1, gcrefRegs=00000005 {eax edx}, byrefRegs=000000
mov dword ptr [edx+0x18], esi
cmp esi, 16
jl SHORT G_M715_IG18
- ;; size=46 bbWeight=1 PerfScore 22.00
+ ;; size=43 bbWeight=1 PerfScore 19.75
G_M715_IG17: ; bbWeight=0.50, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
mov eax, dword ptr [edx+0x08]
mov ecx, dword ptr [edx+0x10]
@@ -438,6 +433,6 @@ G_M715_IG18: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
ret
;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 851, prolog size 11, PerfScore 759.25, instruction count 285, allocated bytes for code 851 (MethodHash=c6a5fd34) for method SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
+; Total bytes of code 836, prolog size 11, PerfScore 734.50, instruction count 280, allocated bytes for code 836 (MethodHash=c6a5fd34) for method SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
; ============================================================
-3 (-1.53%) : 15119.dasm - Microsoft.ML.Transforms.HashingTransformer+<>cDisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:b0(byref):this (FullOpts)
@@ -9,22 +9,22 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 7, 7 ) ref -> esi this class-hnd single-def <Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]>
-; V01 arg1 [V01,T04] ( 3, 3 ) byref -> edi single-def
+; V01 arg1 [V01,T03] ( 3, 3 ) byref -> edi single-def
;* V02 tmp0 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V03 tmp1 [V03,T07] ( 2, 3 ) int -> eax "Inlining Arg"
-; V04 tmp2 [V04,T08] ( 2, 3 ) int -> edx "Inlining Arg"
-; V05 tmp3 [V05,T06] ( 2, 4 ) byref -> esi single-def "Inlining Arg"
-; V06 tmp4 [V06,T10] ( 3, 2 ) int -> ecx "Inline return value spill temp"
+; V03 tmp1 [V03,T05] ( 2, 3 ) int -> eax "Inlining Arg"
+; V04 tmp2 [V04,T06] ( 2, 3 ) int -> edx "Inlining Arg"
+; V05 tmp3 [V05,T04] ( 2, 4 ) byref -> esi single-def "Inlining Arg"
+; V06 tmp4 [V06,T08] ( 3, 2 ) int -> ecx "Inline return value spill temp"
; V07 tmp5 [V07,T19] ( 3, 1.50) double -> mm0
;* V08 tmp6 [V08 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V09 tmp7 [V09,T09] ( 4, 2 ) int -> ecx "Inline stloc first use temp"
+; V09 tmp7 [V09,T07] ( 5, 2.50) int -> eax "Inline stloc first use temp"
; V10 tmp8 [V10,T13] ( 3, 1.50) int -> esi "Inline stloc first use temp"
; V11 tmp9 [V11,T17] ( 3, 6 ) double -> mm1 "Inlining Arg"
; V12 tmp10 [V12,T14] ( 3, 1.50) struct ( 8) [ebp-0x10] do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.ML.Internal.Utilities.FloatUtils+DoubleBits>
-; V13 tmp11 [V13,T11] ( 2, 2 ) int -> ecx "Inlining Arg"
-; V14 tmp12 [V14,T03] ( 5, 5 ) int -> eax "Inlining Arg"
-; V15 tmp13 [V15,T12] ( 2, 2 ) int -> ecx "Inlining Arg"
-; V16 tmp14 [V16,T05] ( 4, 4 ) int -> ecx "Inlining Arg"
+; V13 tmp11 [V13,T09] ( 2, 2 ) int -> ecx "Inlining Arg"
+; V14 tmp12 [V14,T10] ( 2, 2 ) int -> eax "Inlining Arg"
+; V15 tmp13 [V15,T11] ( 2, 2 ) int -> ecx "Inlining Arg"
+; V16 tmp14 [V16,T12] ( 2, 2 ) int -> eax "Inlining Arg"
; V17 tmp15 [V17,T01] ( 6, 6 ) int -> eax "Inlining Arg"
; V18 cse0 [V18,T18] ( 4, 3 ) double -> mm0 "CSE - moderate"
; V19 rat0 [V19,T15] ( 2, 1 ) int -> ecx "field V08.lo (fldOffset=0x0)" P-INDEP
@@ -94,22 +94,21 @@ G_M22555_IG07: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080
rol eax, 13
lea eax, [eax+4*eax]
add eax, 0xD1FFAB1E
- mov ecx, eax
test esi, esi
je SHORT G_M22555_IG08
imul ecx, esi, 0xD1FFAB1E
rol ecx, 15
imul ecx, ecx, 0xD1FFAB1E
- xor ecx, eax
- rol ecx, 13
- lea ecx, [ecx+4*ecx]
- add ecx, 0xD1FFAB1E
- ;; size=74 bbWeight=0.50 PerfScore 8.25
-G_M22555_IG08: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
- mov eax, ecx
- shr eax, 16
xor eax, ecx
- imul eax, eax, 0xD1FFAB1E
+ rol eax, 13
+ lea eax, [eax+4*eax]
+ add eax, 0xD1FFAB1E
+ ;; size=71 bbWeight=0.50 PerfScore 8.12
+G_M22555_IG08: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+ mov ecx, eax
+ shr ecx, 16
+ xor ecx, eax
+ imul eax, ecx, 0xD1FFAB1E
mov ecx, eax
shr ecx, 13
xor ecx, eax
@@ -131,6 +130,6 @@ G_M22555_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=7 bbWeight=1 PerfScore 3.00
-; Total bytes of code 196, prolog size 11, PerfScore 45.46, instruction count 67, allocated bytes for code 196 (MethodHash=2e53a7e4) for method Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeScalarHashGetter>b__0(byref):this (FullOpts)
+; Total bytes of code 193, prolog size 11, PerfScore 45.33, instruction count 66, allocated bytes for code 193 (MethodHash=2e53a7e4) for method Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeScalarHashGetter>b__0(byref):this (FullOpts)
; ============================================================
+45 (+1.20%) : 29330.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
@@ -5,291 +5,280 @@
; ebp based frame
; partially interruptible
; No matching PGO data
-; 0 inlinees with PGO data; 194 single block inlinees; 59 inlinees without PGO data
+; 0 inlinees with PGO data; 194 single block inlinees; 61 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 54, 28 ) ref -> esi this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator>
; V01 arg1 [V01,T13] ( 12, 7.50) ref -> edi class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess>
-; V02 arg2 [V02,T85] ( 5, 2.50) ubyte -> [ebp+0x08] single-def
-; V03 loc0 [V03,T01] ( 21, 12 ) ref -> [ebp-0x5C] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-; V04 loc1 [V04,T12] ( 18, 9.25) ref -> [ebp-0x60] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-; V05 loc2 [V05,T14] ( 12, 6 ) ref -> [ebp-0x64] class-hnd <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V06 loc3 [V06,T91] ( 4, 2 ) ref -> [ebp-0x68] class-hnd exact spill-single-def <System.Object>
-; V07 loc4 [V07,T126] ( 3, 1.50) ref -> [ebp-0x6C] class-hnd exact spill-single-def <System.Object>
-; V08 loc5 [V08,T40] ( 7, 3.50) ref -> [ebp-0x70] class-hnd <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
-; V09 loc6 [V09,T92] ( 4, 2 ) ubyte -> [ebp-0x10] spill-single-def
+; V02 arg2 [V02,T87] ( 5, 2.50) ubyte -> [ebp+0x08] single-def
+; V03 loc0 [V03,T01] ( 21, 12 ) ref -> [ebp-0x60] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V04 loc1 [V04,T12] ( 18, 9.25) ref -> [ebp-0x64] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+; V05 loc2 [V05,T14] ( 12, 6 ) ref -> [ebp-0x68] class-hnd <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V06 loc3 [V06,T93] ( 4, 2 ) ref -> [ebp-0x6C] class-hnd exact spill-single-def <System.Object>
+; V07 loc4 [V07,T128] ( 3, 1.50) ref -> [ebp-0x70] class-hnd exact spill-single-def <System.Object>
+; V08 loc5 [V08,T40] ( 7, 3.50) ref -> [ebp-0x74] class-hnd <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+; V09 loc6 [V09,T94] ( 4, 2 ) ubyte -> [ebp-0x10] spill-single-def
; V10 loc7 [V10,T41] ( 6, 3 ) ubyte -> [ebp-0x14] spill-single-def
-; V11 loc8 [V11,T127] ( 3, 1.50) ref -> [ebp-0x74] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-; V12 loc9 [V12,T128] ( 3, 1.50) ref -> [ebp-0x78] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+; V11 loc8 [V11,T129] ( 3, 1.50) ref -> [ebp-0x78] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+; V12 loc9 [V12,T130] ( 3, 1.50) ref -> [ebp-0x7C] class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
;* V13 loc10 [V13 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]>
;* V14 loc11 [V14 ] ( 0, 0 ) int -> zero-ref
-; V15 tmp0 [V15,T26] ( 3, 5 ) ref -> eax class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.ConstantValue>
+; V15 tmp0 [V15,T27] ( 3, 5 ) ref -> eax class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.ConstantValue>
;* V16 tmp1 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V17 tmp2 [V17,T157] ( 0, 0 ) int -> zero-ref
+;* V17 tmp2 [V17,T158] ( 0, 0 ) int -> zero-ref
;* V18 tmp3 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Object>
-; V20 tmp5 [V20,T139] ( 3, 1.50) int -> ecx
-; V21 tmp6 [V21,T93] ( 4, 2 ) int -> registers
-; V22 tmp7 [V22,T94] ( 3, 2 ) int -> ecx "fgMakeTemp is creating a new local variable"
-;* V23 tmp8 [V23,T154] ( 0, 0 ) ref -> zero-ref class-hnd single-def "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundLocal>
-; V24 tmp9 [V24,T90] ( 3, 2.50) int -> ecx "fgMakeTemp is creating a new local variable"
-;* V25 tmp10 [V25,T147] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
-; V26 tmp11 [V26,T95] ( 2, 2 ) ref -> edx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>
-;* V27 tmp12 [V27,T158] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V28 tmp13 [V28,T46] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]>
-; V29 tmp14 [V29,T47] ( 3, 3 ) ref -> [ebp-0x7C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-; V30 tmp15 [V30,T02] ( 12, 12 ) ref -> [ebp-0x80] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V20 tmp5 [V20,T141] ( 3, 1.50) int -> ecx
+; V21 tmp6 [V21,T95] ( 4, 2 ) int -> registers
+; V22 tmp7 [V22,T96] ( 3, 2 ) int -> ecx "fgMakeTemp is creating a new local variable"
+;* V23 tmp8 [V23,T155] ( 0, 0 ) ref -> zero-ref class-hnd single-def "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.BoundLocal>
+; V24 tmp9 [V24,T92] ( 3, 2.50) int -> ecx "fgMakeTemp is creating a new local variable"
+;* V25 tmp10 [V25,T148] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>
+; V26 tmp11 [V26,T97] ( 2, 2 ) ref -> edx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>
+;* V27 tmp12 [V27,T159] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V28 tmp13 [V28,T47] ( 3, 3 ) ref -> ecx class-hnd single-def "Inlining Arg" <System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]>
+; V29 tmp14 [V29,T48] ( 3, 3 ) ref -> [ebp-0x80] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+; V30 tmp15 [V30,T02] ( 12, 12 ) ref -> [ebp-0x84] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
;* V31 tmp16 [V31 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V32 tmp17 [V32,T120] ( 2, 2 ) int -> [ebp-0x18] spill-single-def "Inlining Arg"
-; V33 tmp18 [V33,T129] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V34 tmp19 [V34,T27] ( 4, 4 ) ref -> [ebp-0x84] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V35 tmp20 [V35,T15] ( 6, 6 ) ref -> [ebp-0x88] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+; V32 tmp17 [V32,T122] ( 2, 2 ) int -> [ebp-0x18] spill-single-def "Inlining Arg"
+; V33 tmp18 [V33,T131] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V34 tmp19 [V34,T28] ( 4, 4 ) ref -> [ebp-0x88] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V35 tmp20 [V35,T15] ( 6, 6 ) ref -> [ebp-0x8C] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
;* V36 tmp21 [V36 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V37 tmp22 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V38 tmp23 [V38,T42] ( 6, 3 ) int -> [ebp-0x1C] "Inline stloc first use temp"
;* V39 tmp24 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
;* V40 tmp25 [V40 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V41 tmp26 [V41 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V42 tmp27 [V42 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V43 tmp28 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V44 tmp29 [V44 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V45 tmp30 [V45 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V46 tmp31 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V47 tmp32 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V48 tmp33 [V48,T16] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
-; V49 tmp34 [V49,T70] ( 3, 3 ) int -> eax "impAppendStmt"
-;* V50 tmp35 [V50 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V51 tmp36 [V51,T150] ( 2, 1 ) int -> eax "Inline return value spill temp"
-; V52 tmp37 [V52,T71] ( 3, 3 ) int -> ebx "Inlining Arg"
-; V53 tmp38 [V53,T48] ( 3, 3 ) byref -> edx single-def "Inlining Arg"
-; V54 tmp39 [V54,T96] ( 2, 2 ) ref -> edx class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
-; V55 tmp40 [V55,T09] ( 10, 10 ) ref -> [ebp-0x8C] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V56 tmp41 [V56,T49] ( 3, 3 ) ref -> ebx class-hnd single-def "dup spill" <<unknown class>>
-;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
-; V58 tmp43 [V58,T97] ( 2, 2 ) ref -> ecx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V59 tmp44 [V59,T140] ( 3, 1.50) int -> [ebp-0x20]
-;* V60 tmp45 [V60 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V61 tmp46 [V61,T130] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V62 tmp47 [V62,T28] ( 4, 4 ) ref -> [ebp-0x90] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V63 tmp48 [V63,T17] ( 6, 6 ) ref -> [ebp-0x94] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V64 tmp49 [V64 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V65 tmp50 [V65,T86] ( 5, 2.50) int -> edx "Inline stloc first use temp"
-; V66 tmp51 [V66,T98] ( 2, 2 ) ref -> ecx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-; V67 tmp52 [V67,T99] ( 2, 2 ) ref -> [ebp-0x98] class-hnd exact spill-single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
-;* V68 tmp53 [V68 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V69 tmp54 [V69,T100] ( 2, 2 ) ref -> edx class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
-;* V70 tmp55 [V70 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-;* V71 tmp56 [V71 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-; V72 tmp57 [V72,T50] ( 3, 3 ) ref -> [ebp-0x9C] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-; V73 tmp58 [V73,T03] ( 12, 12 ) ref -> [ebp-0xA0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V74 tmp59 [V74 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V75 tmp60 [V75,T121] ( 2, 2 ) int -> [ebp-0x24] spill-single-def "Inlining Arg"
-; V76 tmp61 [V76,T131] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V77 tmp62 [V77,T29] ( 4, 4 ) ref -> [ebp-0xA4] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V78 tmp63 [V78,T18] ( 6, 6 ) ref -> [ebp-0xA8] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V79 tmp64 [V79 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V80 tmp65 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V81 tmp66 [V81,T43] ( 6, 3 ) int -> [ebp-0x28] "Inline stloc first use temp"
-;* V82 tmp67 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V83 tmp68 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V84 tmp69 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V41 tmp26 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V42 tmp27 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V43 tmp28 [V43 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V44 tmp29 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V45 tmp30 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V46 tmp31 [V46,T16] ( 6, 6 ) byref -> ecx single-def "Inlining Arg"
+; V47 tmp32 [V47,T71] ( 3, 3 ) int -> eax "impAppendStmt"
+;* V48 tmp33 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V49 tmp34 [V49,T151] ( 2, 1 ) int -> eax "Inline return value spill temp"
+; V50 tmp35 [V50,T72] ( 3, 3 ) int -> ebx "Inlining Arg"
+; V51 tmp36 [V51,T49] ( 3, 3 ) byref -> edx single-def "Inlining Arg"
+; V52 tmp37 [V52,T98] ( 2, 2 ) ref -> edx class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
+; V53 tmp38 [V53,T09] ( 10, 10 ) ref -> [ebp-0x90] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V54 tmp39 [V54,T50] ( 3, 3 ) ref -> ebx class-hnd single-def "dup spill" <<unknown class>>
+;* V55 tmp40 [V55 ] ( 0, 0 ) ref -> zero-ref single-def
+; V56 tmp41 [V56,T99] ( 2, 2 ) ref -> ecx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V57 tmp42 [V57,T142] ( 3, 1.50) int -> [ebp-0x20]
+;* V58 tmp43 [V58 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V59 tmp44 [V59,T132] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V60 tmp45 [V60,T29] ( 4, 4 ) ref -> [ebp-0x94] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V61 tmp46 [V61,T17] ( 6, 6 ) ref -> [ebp-0x98] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V62 tmp47 [V62 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V63 tmp48 [V63,T88] ( 5, 2.50) int -> edx "Inline stloc first use temp"
+; V64 tmp49 [V64,T100] ( 2, 2 ) ref -> ecx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+; V65 tmp50 [V65,T101] ( 2, 2 ) ref -> [ebp-0x9C] class-hnd exact spill-single-def "non-inline candidate call" <Microsoft.CodeAnalysis.CodeGen.LocalSlotManager>
+;* V66 tmp51 [V66 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V67 tmp52 [V67,T102] ( 2, 2 ) ref -> edx class-hnd single-def "impAppendStmt" <Microsoft.Cci.ITypeReference>
+;* V68 tmp53 [V68 ] ( 0, 0 ) struct ( 4) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+;* V69 tmp54 [V69 ] ( 0, 0 ) struct ( 4) zero-ref "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
+; V70 tmp55 [V70,T51] ( 3, 3 ) ref -> [ebp-0xA0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+; V71 tmp56 [V71,T03] ( 12, 12 ) ref -> [ebp-0xA4] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V72 tmp57 [V72 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V73 tmp58 [V73,T123] ( 2, 2 ) int -> [ebp-0x24] spill-single-def "Inlining Arg"
+; V74 tmp59 [V74,T133] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V75 tmp60 [V75,T30] ( 4, 4 ) ref -> [ebp-0xA8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V76 tmp61 [V76,T18] ( 6, 6 ) ref -> [ebp-0xAC] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V77 tmp62 [V77 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V78 tmp63 [V78 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V79 tmp64 [V79,T43] ( 6, 3 ) int -> [ebp-0x28] "Inline stloc first use temp"
+;* V80 tmp65 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V81 tmp66 [V81 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V82 tmp67 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V83 tmp68 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V84 tmp69 [V84 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V85 tmp70 [V85 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V86 tmp71 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V87 tmp72 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V88 tmp73 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V89 tmp74 [V89 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V90 tmp75 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V91 tmp76 [V91,T51] ( 3, 3 ) byref -> ebx single-def "Inlining Arg"
-; V92 tmp77 [V92,T101] ( 2, 2 ) ref -> edx class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
-; V93 tmp78 [V93,T10] ( 10, 10 ) ref -> [ebp-0xAC] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-; V94 tmp79 [V94,T52] ( 3, 3 ) ref -> ebx class-hnd single-def "dup spill" <<unknown class>>
-;* V95 tmp80 [V95 ] ( 0, 0 ) ref -> zero-ref single-def
-; V96 tmp81 [V96,T102] ( 2, 2 ) ref -> ecx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
-; V97 tmp82 [V97,T141] ( 3, 1.50) int -> [ebp-0x2C]
-;* V98 tmp83 [V98 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-; V99 tmp84 [V99,T132] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V100 tmp85 [V100,T30] ( 4, 4 ) ref -> [ebp-0xB0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V101 tmp86 [V101,T19] ( 6, 6 ) ref -> [ebp-0xB4] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V102 tmp87 [V102 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V103 tmp88 [V103,T87] ( 5, 2.50) int -> edx "Inline stloc first use temp"
-; V104 tmp89 [V104,T04] ( 12, 12 ) ref -> [ebp-0xB8] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V105 tmp90 [V105 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V106 tmp91 [V106,T122] ( 2, 2 ) int -> [ebp-0x30] spill-single-def "Inlining Arg"
-; V107 tmp92 [V107,T133] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V108 tmp93 [V108,T31] ( 4, 4 ) ref -> [ebp-0xBC] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V109 tmp94 [V109,T20] ( 6, 6 ) ref -> [ebp-0xC0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V110 tmp95 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+; V87 tmp72 [V87,T52] ( 3, 3 ) byref -> ebx single-def "Inlining Arg"
+; V88 tmp73 [V88,T103] ( 2, 2 ) ref -> edx class-hnd single-def "Inlining Arg" <Microsoft.Cci.ITypeReference>
+; V89 tmp74 [V89,T10] ( 10, 10 ) ref -> [ebp-0xB0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+; V90 tmp75 [V90,T53] ( 3, 3 ) ref -> ebx class-hnd single-def "dup spill" <<unknown class>>
+;* V91 tmp76 [V91 ] ( 0, 0 ) ref -> zero-ref single-def
+; V92 tmp77 [V92,T104] ( 2, 2 ) ref -> ecx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.DiagnosticBag>
+; V93 tmp78 [V93,T143] ( 3, 1.50) int -> [ebp-0x2C]
+;* V94 tmp79 [V94 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+; V95 tmp80 [V95,T134] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V96 tmp81 [V96,T31] ( 4, 4 ) ref -> [ebp-0xB4] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V97 tmp82 [V97,T19] ( 6, 6 ) ref -> [ebp-0xB8] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V98 tmp83 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V99 tmp84 [V99,T89] ( 5, 2.50) int -> edx "Inline stloc first use temp"
+; V100 tmp85 [V100,T04] ( 12, 12 ) ref -> [ebp-0xBC] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V101 tmp86 [V101 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V102 tmp87 [V102,T124] ( 2, 2 ) int -> [ebp-0x30] spill-single-def "Inlining Arg"
+; V103 tmp88 [V103,T135] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V104 tmp89 [V104,T32] ( 4, 4 ) ref -> [ebp-0xC0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V105 tmp90 [V105,T20] ( 6, 6 ) ref -> [ebp-0xC4] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V106 tmp91 [V106 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V107 tmp92 [V107 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V108 tmp93 [V108,T44] ( 6, 3 ) int -> ebx "Inline stloc first use temp"
+;* V109 tmp94 [V109 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V110 tmp95 [V110 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V111 tmp96 [V111 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V112 tmp97 [V112,T44] ( 6, 3 ) int -> ebx "Inline stloc first use temp"
-;* V113 tmp98 [V113 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V112 tmp97 [V112 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V113 tmp98 [V113 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V114 tmp99 [V114 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V115 tmp100 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V116 tmp101 [V116 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V117 tmp102 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-;* V118 tmp103 [V118 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V119 tmp104 [V119 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V120 tmp105 [V120 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V121 tmp106 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
-; V122 tmp107 [V122,T53] ( 3, 3 ) byref -> ebx single-def "Inlining Arg"
-; V123 tmp108 [V123,T54] ( 3, 3 ) ref -> [ebp-0xC4] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-; V124 tmp109 [V124,T05] ( 12, 12 ) ref -> [ebp-0xC8] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
-;* V125 tmp110 [V125 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
-; V126 tmp111 [V126,T123] ( 2, 2 ) int -> [ebp-0x34] spill-single-def "Inlining Arg"
-; V127 tmp112 [V127,T134] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V128 tmp113 [V128,T32] ( 4, 4 ) ref -> [ebp-0xCC] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
-; V129 tmp114 [V129,T21] ( 6, 6 ) ref -> [ebp-0xD0] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
-;* V130 tmp115 [V130 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V115 tmp100 [V115 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+; V116 tmp101 [V116,T54] ( 3, 3 ) byref -> ebx single-def "Inlining Arg"
+; V117 tmp102 [V117,T55] ( 3, 3 ) ref -> [ebp-0xC8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+; V118 tmp103 [V118,T05] ( 12, 12 ) ref -> [ebp-0xCC] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder>
+;* V119 tmp104 [V119 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call"
+; V120 tmp105 [V120,T125] ( 2, 2 ) int -> [ebp-0x34] spill-single-def "Inlining Arg"
+; V121 tmp106 [V121,T136] ( 3, 1.50) ref -> eax class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V122 tmp107 [V122,T33] ( 4, 4 ) ref -> [ebp-0xD0] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock>
+; V123 tmp108 [V123,T21] ( 6, 6 ) ref -> [ebp-0xD4] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.Cci.PooledBlobBuilder>
+;* V124 tmp109 [V124 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V125 tmp110 [V125 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+; V126 tmp111 [V126,T45] ( 6, 3 ) int -> [ebp-0x38] "Inline stloc first use temp"
+;* V127 tmp112 [V127 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <ubyte[]>
+;* V128 tmp113 [V128 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
...
+2 (+2.30%) : 18486.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
@@ -7,14 +7,13 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ushort -> esi single-def
-; V01 loc0 [V01,T06] ( 2, 2 ) ubyte -> eax single-def
-; V02 tmp0 [V02,T00] ( 3, 6 ) ref -> eax single-def "arr expr"
-; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> edx single-def "arr expr"
-; V04 tmp2 [V04,T02] ( 3, 6 ) int -> eax "index expr"
-;* V05 cse0 [V05,T07] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
-; V06 cse1 [V06,T04] ( 3, 3 ) int -> edx "CSE - aggressive"
-; V07 cse2 [V07,T05] ( 3, 3 ) int -> ecx "CSE - aggressive"
+; V00 arg0 [V00,T00] ( 4, 4 ) ushort -> esi single-def
+; V01 loc0 [V01,T05] ( 2, 2 ) ubyte -> eax single-def
+; V02 tmp0 [V02,T01] ( 3, 6 ) ref -> eax single-def "arr expr"
+; V03 tmp1 [V03,T02] ( 3, 6 ) ref -> ecx single-def "arr expr"
+; V04 tmp2 [V04,T03] ( 3, 6 ) int -> eax "index expr"
+;* V05 cse0 [V05,T06] ( 0, 0 ) int -> zero-ref "CSE - aggressive"
+; V06 cse1 [V06,T04] ( 3, 3 ) int -> ecx "CSE - aggressive"
;
; Lcl frame size = 0
@@ -22,8 +21,9 @@ G_M53790_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push ebp
mov ebp, esp
push esi
+ push ebx
mov esi, ecx
- ;; size=6 bbWeight=1 PerfScore 2.50
+ ;; size=7 bbWeight=1 PerfScore 3.50
G_M53790_IG02: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
test byte ptr [D1FFAB1EH], 1 ; global ptr
je SHORT G_M53790_IG06
@@ -32,28 +32,29 @@ G_M53790_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
mov eax, gword ptr [D1FFAB1EH] ; static handle
; gcrRegs +[eax]
movzx ecx, si
- mov edx, ecx
- sar edx, 8
- cmp edx, dword ptr [eax+0x04]
+ sar ecx, 8
+ cmp ecx, dword ptr [eax+0x04]
jae SHORT G_M53790_IG05
- movzx eax, byte ptr [eax+edx+0x08]
+ movzx eax, byte ptr [eax+ecx+0x08]
; gcrRegs -[eax]
- mov edx, gword ptr [D1FFAB1EH] ; static handle
- ; gcrRegs +[edx]
+ mov ecx, gword ptr [D1FFAB1EH] ; static handle
+ ; gcrRegs +[ecx]
shl eax, 8
- movzx ecx, cl
- add eax, ecx
- cmp eax, dword ptr [edx+0x04]
+ mov ebx, esi
+ movzx edx, bl
+ add eax, edx
+ cmp eax, dword ptr [ecx+0x04]
jae SHORT G_M53790_IG05
- movzx eax, byte ptr [edx+eax+0x08]
+ movzx eax, byte ptr [ecx+eax+0x08]
;; size=47 bbWeight=1 PerfScore 18.00
G_M53790_IG04: ; bbWeight=1, epilog, nogc, extend
+ pop ebx
pop esi
pop ebp
ret
- ;; size=3 bbWeight=1 PerfScore 2.00
+ ;; size=4 bbWeight=1 PerfScore 2.50
G_M53790_IG05: ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
- ; gcrRegs -[edx]
+ ; gcrRegs -[ecx]
call CORINFO_HELP_RNGCHKFAIL
;; size=5 bbWeight=0 PerfScore 0.00
G_M53790_IG06: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
@@ -63,6 +64,6 @@ G_M53790_IG06: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
jmp SHORT G_M53790_IG03
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 87, prolog size 4, PerfScore 26.50, instruction count 28, allocated bytes for code 87 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
+; Total bytes of code 89, prolog size 5, PerfScore 28.00, instruction count 30, allocated bytes for code 89 (MethodHash=079f2de1) for method Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
; ============================================================
+22 (+13.75%) : 1242.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
@@ -8,30 +8,31 @@
; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 13, 10 ) byref -> ebx this single-def
+; V00 this [V00,T00] ( 11, 9 ) byref -> ebx this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) int -> [ebp-0x10] single-def
-; V02 arg2 [V02,T06] ( 4, 2 ) ref -> [ebp+0x08] class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
+; V02 arg2 [V02,T07] ( 4, 2 ) ref -> [ebp+0x08] class-hnd single-def <BepuUtilities.Memory.IUnmanagedMemoryPool>
; V03 loc0 [V03 ] ( 3, 1.50) struct (12) [ebp-0x1C] do-not-enreg[XS] addr-exposed ld-addr-op <BepuUtilities.Memory.Buffer`1[int]>
;* V04 tmp0 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-; V05 tmp1 [V05,T03] ( 3, 3 ) int -> eax "impAppendStmt"
-; V06 tmp2 [V06,T07] ( 2, 2 ) int -> eax "VirtualCall through function pointer"
-; V07 tmp3 [V07,T08] ( 2, 2 ) int -> eax "VirtualCall through function pointer"
+; V05 tmp1 [V05,T04] ( 3, 3 ) int -> edx "impAppendStmt"
+; V06 tmp2 [V06,T09] ( 2, 2 ) int -> eax "VirtualCall through function pointer"
+; V07 tmp3 [V07,T10] ( 2, 2 ) int -> eax "VirtualCall through function pointer"
;* V08 tmp4 [V08 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V09 tmp5 [V09 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V10 tmp6 [V10,T09] ( 2, 1 ) int -> [ebp-0x20] spill-single-def "Inline return value spill temp"
-; V11 tmp7 [V11,T04] ( 3, 3 ) int -> ecx "Inlining Arg"
-;* V12 tmp8 [V12 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V10 tmp6 [V10,T14] ( 2, 1 ) int -> [ebp-0x20] spill-single-def "Inline return value spill temp"
+; V11 tmp7 [V11,T05] ( 3, 3 ) int -> ecx "Inlining Arg"
+; V12 tmp8 [V12,T08] ( 2, 2 ) byref -> ecx single-def "Inlining Arg"
+; V13 tmp9 [V13,T11] ( 2, 2 ) int -> edx "Inlining Arg"
+; V14 tmp10 [V14,T12] ( 2, 2 ) int -> eax "Inlining Arg"
+; V15 tmp11 [V15,T13] ( 2, 2 ) int -> [ebp-0x24] spill-single-def "Inlining Arg"
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V17 tmp13 [V17,T05] ( 3, 3 ) int -> edx "Inline stloc first use temp"
-; V18 tmp14 [V18,T02] ( 2, 4 ) byref -> eax single-def "impAppendStmt"
+; V17 tmp13 [V17,T06] ( 3, 3 ) int -> edx "Inline stloc first use temp"
+; V18 tmp14 [V18,T03] ( 2, 4 ) byref -> eax single-def "impAppendStmt"
; V19 tmp15 [V19 ] ( 3, 1.50) int -> [ebp-0x1C] do-not-enreg[X] addr-exposed "field V03.Memory (fldOffset=0x0)" P-DEP
; V20 tmp16 [V20 ] ( 2, 1 ) int -> [ebp-0x18] do-not-enreg[X] addr-exposed "field V03.length (fldOffset=0x4)" P-DEP
; V21 tmp17 [V21 ] ( 2, 1 ) int -> [ebp-0x14] do-not-enreg[X] addr-exposed "field V03.Id (fldOffset=0x8)" P-DEP
+; V22 cse0 [V22,T02] ( 6, 4 ) byref -> [ebp-0x28] multi-def "CSE - aggressive"
;
-; Lcl frame size = 20
+; Lcl frame size = 28
G_M19315_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push ebp
@@ -39,7 +40,7 @@ G_M19315_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
push edi
push esi
push ebx
- sub esp, 20
+ sub esp, 28
mov dword ptr [ebp-0x10], edx
mov ebx, ecx
; byrRegs +[ebx]
@@ -52,43 +53,52 @@ G_M19315_IG02: ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000008
jne SHORT G_M19315_IG04
;; size=8 bbWeight=1 PerfScore 6.00
G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000008 {ebx}, byref
- mov ecx, dword ptr [ebx+0x08]
+ lea eax, bword ptr [ebx+0x08]
+ ; byrRegs +[eax]
+ mov bword ptr [ebp-0x28], eax
+ ; GC ptr vars +{V22}
+ mov ecx, dword ptr [eax]
mov dword ptr [ebp-0x1C], ecx
- mov ecx, dword ptr [ebx+0x0C]
+ mov ecx, dword ptr [eax+0x04]
mov dword ptr [ebp-0x18], ecx
- mov ecx, dword ptr [ebx+0x10]
+ mov ecx, dword ptr [eax+0x08]
mov dword ptr [ebp-0x14], ecx
- mov eax, dword ptr [ebx+0x04]
- add eax, eax
+ mov edx, dword ptr [ebx+0x04]
+ add edx, edx
mov ecx, dword ptr [ebx+0x0C]
- cmp eax, ecx
- cmovl eax, ecx
- mov dword ptr [ebp-0x20], eax
+ cmp edx, ecx
+ cmovl edx, ecx
+ mov dword ptr [ebp-0x20], edx
push 0xD1FFAB1E
mov ecx, edi
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[ecx]
- lea ecx, bword ptr [ebx+0x08]
- ; byrRegs +[ecx]
- push ecx
+ ; byrRegs -[eax]
+ push bword ptr [ebp-0x28]
mov gword ptr [ebp+0x08], edi
mov ecx, edi
; gcrRegs +[ecx]
- ; byrRegs -[ecx]
mov edx, dword ptr [ebp-0x20]
call eax
; gcrRegs -[ecx edi]
- mov edi, dword ptr [ebx+0x08]
- mov esi, dword ptr [ebp-0x1C]
- mov ecx, dword ptr [ebx+0x04]
- shl ecx, 2
+ mov ecx, bword ptr [ebp-0x28]
+ ; byrRegs +[ecx]
+ mov edx, dword ptr [ebx+0x04]
+ mov eax, dword ptr [ecx]
+ mov ecx, dword ptr [ebp-0x1C]
+ ; byrRegs -[ecx]
+ mov dword ptr [ebp-0x24], ecx
+ lea ecx, [4*edx]
+ mov esi, dword ptr [ebp-0x24]
+ mov edi, eax
rep movsb
push 0xD1FFAB1E
mov ecx, gword ptr [ebp+0x08]
; gcrRegs +[ecx]
mov edx, 0xD1FFAB1E ; BepuUtilities.Memory.IUnmanagedMemoryPool
+ ; GC ptr vars -{V22}
call CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[ecx]
lea edx, [ebp-0x1C]
@@ -96,18 +106,23 @@ G_M19315_IG03: ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000
; gcrRegs +[ecx]
call eax
; gcrRegs -[ecx]
- ;; size=105 bbWeight=0.50 PerfScore 31.12
+ ;; size=123 bbWeight=0.50 PerfScore 33.25
G_M19315_IG04: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, byref
- lea eax, bword ptr [ebx+0x08]
+ lea ecx, bword ptr [ebx+0x08]
+ ; byrRegs +[ecx]
+ mov edi, ecx
+ ; byrRegs +[edi]
+ mov eax, edi
; byrRegs +[eax]
mov edx, dword ptr [ebx+0x04]
lea ecx, [edx+0x01]
+ ; byrRegs -[ecx]
mov dword ptr [ebx+0x04], ecx
mov eax, dword ptr [eax]
; byrRegs -[eax]
mov esi, dword ptr [ebp-0x10]
mov dword ptr [eax+4*edx], esi
- ;; size=20 bbWeight=1 PerfScore 8.00
+ ;; size=24 bbWeight=1 PerfScore 8.50
G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
lea esp, [ebp-0x0C]
pop ebx
@@ -117,6 +132,6 @@ G_M19315_IG05: ; bbWeight=1, epilog, nogc, extend
ret 4
;; size=10 bbWeight=1 PerfScore 4.50
-; Total bytes of code 160, prolog size 9, PerfScore 56.38, instruction count 59, allocated bytes for code 160 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
+; Total bytes of code 182, prolog size 9, PerfScore 59.00, instruction count 66, allocated bytes for code 182 (MethodHash=9a7fb48c) for method BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
; ============================================================
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.windows.x86.checked.mch |
19 |
9 |
3 |
7 |
-106 |
+46 |
benchmarks.run_pgo.windows.x86.checked.mch |
113 |
105 |
4 |
4 |
-908 |
+67 |
benchmarks.run_tiered.windows.x86.checked.mch |
85 |
76 |
3 |
6 |
-763 |
+106 |
coreclr_tests.run.windows.x86.checked.mch |
5,172 |
3,949 |
303 |
920 |
-79,368 |
+6,319 |
libraries.crossgen2.windows.x86.checked.mch |
32 |
12 |
1 |
19 |
-49 |
+5 |
libraries.pmi.windows.x86.checked.mch |
198 |
84 |
83 |
31 |
-922 |
+9,722 |
libraries_tests.run.windows.x86.Release.mch |
550 |
461 |
43 |
46 |
-38,665 |
+1,483 |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
319 |
147 |
70 |
102 |
-34,913 |
+2,279 |
realworld.run.windows.x86.checked.mch |
85 |
52 |
19 |
14 |
-241 |
+938 |
|
6,573 |
4,895 |
529 |
1,149 |
-155,935 |
+20,965 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.x86.checked.mch |
24,477 |
4 |
24,473 |
1 (0.00%) |
16 (0.07%) |
benchmarks.run_pgo.windows.x86.checked.mch |
117,795 |
41,904 |
75,891 |
2 (0.00%) |
12 (0.01%) |
benchmarks.run_tiered.windows.x86.checked.mch |
47,872 |
28,747 |
19,125 |
1 (0.00%) |
11 (0.02%) |
coreclr_tests.run.windows.x86.checked.mch |
574,634 |
319,846 |
254,788 |
22 (0.00%) |
32 (0.01%) |
libraries.crossgen2.windows.x86.checked.mch |
242,614 |
15 |
242,599 |
4 (0.00%) |
5 (0.00%) |
libraries.pmi.windows.x86.checked.mch |
305,746 |
6 |
305,740 |
7 (0.00%) |
27 (0.01%) |
libraries_tests.run.windows.x86.Release.mch |
627,701 |
427,222 |
200,479 |
6 (0.00%) |
132 (0.02%) |
librariestestsnotieredcompilation.run.windows.x86.Release.mch |
316,304 |
21,910 |
294,394 |
3 (0.00%) |
131 (0.04%) |
realworld.run.windows.x86.checked.mch |
35,982 |
3 |
35,979 |
1 (0.00%) |
3 (0.01%) |
|
2,293,125 |
839,657 |
1,453,468 |
47 (0.00%) |
369 (0.02%) |
jit-analyze output
benchmarks.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 7107468 (overridden on cmd)
Total bytes of diff: 7107408 (overridden on cmd)
Total bytes of delta: -60 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
40 : 1293.dasm (0.57 % of base)
4 : 1360.dasm (0.19 % of base)
2 : 14805.dasm (0.15 % of base)
Top file improvements (bytes):
-38 : 20661.dasm (-2.21 % of base)
-25 : 19605.dasm (-1.77 % of base)
-15 : 19619.dasm (-1.10 % of base)
-14 : 17479.dasm (-0.39 % of base)
-5 : 18134.dasm (-0.15 % of base)
-3 : 22587.dasm (-0.08 % of base)
-3 : 24361.dasm (-0.05 % of base)
-2 : 17414.dasm (-0.93 % of base)
-1 : 18125.dasm (-0.11 % of base)
12 total files with Code Size differences (9 improved, 3 regressed), 7 unchanged.
Top method regressions (bytes):
40 (0.57 % of base) : 1293.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
4 (0.19 % of base) : 1360.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.15 % of base) : 14805.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
Top method improvements (bytes):
-38 (-2.21 % of base) : 20661.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
-25 (-1.77 % of base) : 19605.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-15 (-1.10 % of base) : 19619.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-14 (-0.39 % of base) : 17479.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-5 (-0.15 % of base) : 18134.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.08 % of base) : 22587.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.05 % of base) : 24361.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-2 (-0.93 % of base) : 17414.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-1 (-0.11 % of base) : 18125.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
Top method regressions (percentages):
40 (0.57 % of base) : 1293.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
4 (0.19 % of base) : 1360.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (FullOpts)
2 (0.15 % of base) : 14805.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
Top method improvements (percentages):
-38 (-2.21 % of base) : 20661.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
-25 (-1.77 % of base) : 19605.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-15 (-1.10 % of base) : 19619.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-2 (-0.93 % of base) : 17414.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-14 (-0.39 % of base) : 17479.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-5 (-0.15 % of base) : 18134.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-1 (-0.11 % of base) : 18125.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-3 (-0.08 % of base) : 22587.dasm - (dynamicClass):ReadLocationFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
-3 (-0.05 % of base) : 24361.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
12 total methods with Code Size differences (9 improved, 3 regressed).
benchmarks.run_pgo.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 44954112 (overridden on cmd)
Total bytes of diff: 44953271 (overridden on cmd)
Total bytes of delta: -841 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
40 : 21999.dasm (0.57 % of base)
19 : 17478.dasm (0.50 % of base)
4 : 22216.dasm (0.22 % of base)
4 : 22151.dasm (0.19 % of base)
Top file improvements (bytes):
-80 : 12115.dasm (-27.12 % of base)
-43 : 4678.dasm (-6.28 % of base)
-41 : 53569.dasm (-4.75 % of base)
-35 : 45398.dasm (-8.62 % of base)
-35 : 48973.dasm (-10.32 % of base)
-32 : 11845.dasm (-17.88 % of base)
-27 : 26751.dasm (-5.51 % of base)
-23 : 18153.dasm (-4.91 % of base)
-22 : 13900.dasm (-22.00 % of base)
-21 : 743.dasm (-40.38 % of base)
-18 : 59650.dasm (-5.41 % of base)
-18 : 11176.dasm (-6.95 % of base)
-18 : 98517.dasm (-3.77 % of base)
-17 : 11247.dasm (-10.62 % of base)
-17 : 11237.dasm (-12.14 % of base)
-15 : 4543.dasm (-19.74 % of base)
-15 : 9704.dasm (-15.62 % of base)
-13 : 1709.dasm (-1.88 % of base)
-13 : 5017.dasm (-10.83 % of base)
-13 : 4548.dasm (-3.53 % of base)
63 total files with Code Size differences (59 improved, 4 regressed), 4 unchanged.
Top method regressions (bytes):
40 (0.57 % of base) : 21999.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
19 (0.50 % of base) : 17478.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (Tier0-FullOpts)
4 (0.19 % of base) : 22151.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
4 (0.22 % of base) : 22216.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
Top method improvements (bytes):
-80 (-27.12 % of base) : 12115.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-43 (-6.28 % of base) : 4678.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (Tier0)
-41 (-4.75 % of base) : 53569.dasm - System.DateTimeFormat:TryFormatR[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-35 (-10.32 % of base) : 48973.dasm - System.DateTimeFormat:TryFormatS[ushort](System.DateTime,System.Span`1[ushort],byref):ubyte (Tier0)
-35 (-8.62 % of base) : 45398.dasm - System.DateTimeFormat:TryFormatu[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-32 (-17.88 % of base) : 11845.dasm - System.Number:WriteFourDigits[ushort](uint,uint) (Tier0)
-27 (-5.51 % of base) : 26751.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (Tier0)
-23 (-4.91 % of base) : 18153.dasm - System.Text.Ascii:Equals[ubyte,ushort,System.Text.Ascii+WideningLoader](byref,byref,uint):ubyte (Tier0-FullOpts)
-22 (-22.00 % of base) : 13900.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
-21 (-40.38 % of base) : 743.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-18 (-6.95 % of base) : 11176.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this (Tier0)
-18 (-5.41 % of base) : 59650.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,int,int):this (Tier0)
-18 (-3.77 % of base) : 98517.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this (Tier0)
-17 (-10.62 % of base) : 11247.dasm - System.Span`1[System.__Canon]:Clear():this (Instrumented Tier0)
-17 (-12.14 % of base) : 11237.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-15 (-15.62 % of base) : 9704.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
-15 (-19.74 % of base) : 4543.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-13 (-3.53 % of base) : 4548.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (Tier0)
-13 (-1.88 % of base) : 1709.dasm - System.Guid:TryFormatCore[ushort](System.Span`1[ushort],byref,int):ubyte:this (Tier0)
-13 (-10.83 % of base) : 5017.dasm - System.Number:WriteTwoDigits[ushort](uint,uint) (Tier0)
Top method regressions (percentages):
40 (0.57 % of base) : 21999.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
19 (0.50 % of base) : 17478.dasm - System.Net.Http.RedirectHandler+<SendAsync>d__4:MoveNext():this (Tier0-FullOpts)
4 (0.22 % of base) : 22216.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:Reverse(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
4 (0.19 % of base) : 22151.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
Top method improvements (percentages):
-21 (-40.38 % of base) : 743.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-80 (-27.12 % of base) : 12115.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-22 (-22.00 % of base) : 13900.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
-15 (-19.74 % of base) : 4543.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-32 (-17.88 % of base) : 11845.dasm - System.Number:WriteFourDigits[ushort](uint,uint) (Tier0)
-15 (-15.62 % of base) : 9704.dasm - System.Span`1[ubyte]:Clear():this (Instrumented Tier0)
-7 (-14.89 % of base) : 21229.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Instrumented Tier0)
-7 (-14.89 % of base) : 4327.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-7 (-14.58 % of base) : 2033.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Instrumented Tier0)
-7 (-14.58 % of base) : 512.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-4 (-13.33 % of base) : 27093.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-5 (-13.16 % of base) : 72924.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Instrumented Tier0)
-5 (-13.16 % of base) : 72732.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-17 (-12.14 % of base) : 11237.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-3 (-12.00 % of base) : 73995.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Instrumented Tier0)
-3 (-12.00 % of base) : 73622.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-13 (-10.83 % of base) : 5017.dasm - System.Number:WriteTwoDigits[ushort](uint,uint) (Tier0)
-17 (-10.62 % of base) : 11247.dasm - System.Span`1[System.__Canon]:Clear():this (Instrumented Tier0)
-2 (-10.53 % of base) : 76540.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Instrumented Tier0)
-2 (-10.53 % of base) : 76235.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Tier0)
benchmarks.run_tiered.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 9456972 (overridden on cmd)
Total bytes of diff: 9456315 (overridden on cmd)
Total bytes of delta: -657 (-0.01 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
62 : 34509.dasm (1.82 % of base)
40 : 3836.dasm (0.57 % of base)
4 : 3960.dasm (0.19 % of base)
Top file improvements (bytes):
-80 : 4262.dasm (-27.12 % of base)
-43 : 12596.dasm (-6.28 % of base)
-41 : 29461.dasm (-4.75 % of base)
-35 : 27733.dasm (-8.62 % of base)
-35 : 29175.dasm (-10.32 % of base)
-32 : 10982.dasm (-17.88 % of base)
-27 : 18450.dasm (-5.51 % of base)
-23 : 15067.dasm (-4.91 % of base)
-22 : 13147.dasm (-22.00 % of base)
-21 : 703.dasm (-40.38 % of base)
-18 : 32011.dasm (-5.41 % of base)
-18 : 44891.dasm (-3.77 % of base)
-18 : 7379.dasm (-6.95 % of base)
-17 : 16106.dasm (-12.14 % of base)
-16 : 9419.dasm (-5.61 % of base)
-15 : 5594.dasm (-19.74 % of base)
-13 : 10058.dasm (-10.83 % of base)
-13 : 12558.dasm (-3.53 % of base)
-13 : 1609.dasm (-1.88 % of base)
-12 : 10054.dasm (-0.70 % of base)
57 total files with Code Size differences (54 improved, 3 regressed), 6 unchanged.
Top method regressions (bytes):
62 (1.82 % of base) : 34509.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
40 (0.57 % of base) : 3836.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
4 (0.19 % of base) : 3960.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
Top method improvements (bytes):
-80 (-27.12 % of base) : 4262.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-43 (-6.28 % of base) : 12596.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (Tier0)
-41 (-4.75 % of base) : 29461.dasm - System.DateTimeFormat:TryFormatR[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-35 (-10.32 % of base) : 29175.dasm - System.DateTimeFormat:TryFormatS[ushort](System.DateTime,System.Span`1[ushort],byref):ubyte (Tier0)
-35 (-8.62 % of base) : 27733.dasm - System.DateTimeFormat:TryFormatu[ushort](System.DateTime,System.TimeSpan,System.Span`1[ushort],byref):ubyte (Tier0)
-32 (-17.88 % of base) : 10982.dasm - System.Number:WriteFourDigits[ushort](uint,uint) (Tier0)
-27 (-5.51 % of base) : 18450.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (Tier0)
-23 (-4.91 % of base) : 15067.dasm - System.Text.Ascii:Equals[ubyte,ushort,System.Text.Ascii+WideningLoader](byref,byref,uint):ubyte (Tier0-FullOpts)
-22 (-22.00 % of base) : 13147.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
-21 (-40.38 % of base) : 703.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-18 (-6.95 % of base) : 7379.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this (Tier0)
-18 (-5.41 % of base) : 32011.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,int,int):this (Tier0)
-18 (-3.77 % of base) : 44891.dasm - System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this (Tier0)
-17 (-12.14 % of base) : 16106.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-16 (-5.61 % of base) : 9419.dasm - System.Number:FormatExponent[ushort](byref,System.Globalization.NumberFormatInfo,int,ushort,int,ubyte) (Tier0)
-15 (-19.74 % of base) : 5594.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-13 (-3.53 % of base) : 12558.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (Tier0)
-13 (-1.88 % of base) : 1609.dasm - System.Guid:TryFormatCore[ushort](System.Span`1[ushort],byref,int):ubyte:this (Tier0)
-13 (-10.83 % of base) : 10058.dasm - System.Number:WriteTwoDigits[ushort](uint,uint) (Tier0)
-12 (-0.70 % of base) : 10054.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (Tier0)
Top method regressions (percentages):
62 (1.82 % of base) : 34509.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
40 (0.57 % of base) : 3836.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
4 (0.19 % of base) : 3960.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon]:Transform[ulong](System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon],System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Func`3[System.__Canon,System.__Canon,ulong]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier0-FullOpts)
Top method improvements (percentages):
-21 (-40.38 % of base) : 703.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-4 (-40.00 % of base) : 24304.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Tier1)
-80 (-27.12 % of base) : 4262.dasm - System.Numerics.Tests.Perf_VectorConvert:.cctor() (Tier0)
-22 (-22.00 % of base) : 13147.dasm - System.Runtime.InteropServices.NativeMemory:GetByteCount(uint,uint):uint (Tier0)
-15 (-19.74 % of base) : 5594.dasm - System.Span`1[ubyte]:Clear():this (Tier0)
-32 (-17.88 % of base) : 10982.dasm - System.Number:WriteFourDigits[ushort](uint,uint) (Tier0)
-7 (-14.89 % of base) : 3142.dasm - System.Runtime.CompilerServices.MethodTable:get_MultiDimensionalArrayRank():int:this (Tier0)
-7 (-14.58 % of base) : 490.dasm - System.Runtime.CompilerServices.MethodTable:get_IsMultiDimensionalArray():ubyte:this (Tier0)
-4 (-13.33 % of base) : 19570.dasm - System.Xml.Schema.XsdDateTime:get_ZoneMinute():int:this (Tier0)
-5 (-13.16 % of base) : 35098.dasm - System.Reflection.Metadata.StringHandle:FromOffset(int):System.Reflection.Metadata.StringHandle (Tier0)
-17 (-12.14 % of base) : 16106.dasm - System.Span`1[System.__Canon]:Clear():this (Tier0)
-3 (-12.00 % of base) : 35886.dasm - System.Reflection.Metadata.Ecma335.TypeOrMethodDefTag:ConvertTypeDefRowIdToTag(System.Reflection.Metadata.TypeDefinitionHandle):uint (Tier0)
-13 (-10.83 % of base) : 10058.dasm - System.Number:WriteTwoDigits[ushort](uint,uint) (Tier0)
-2 (-10.53 % of base) : 38209.dasm - Microsoft.CodeAnalysis.CSharp.OperatorKindExtensions:OperandTypes(int):int (Tier0)
-2 (-10.53 % of base) : 34134.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ModeOf(int):int (Tier0)
-2 (-10.53 % of base) : 1054.dasm - System.Diagnostics.FileVersionInfo:LOWORD(uint):uint (Tier0)
-35 (-10.32 % of base) : 29175.dasm - System.DateTimeFormat:TryFormatS[ushort](System.DateTime,System.Span`1[ushort],byref):ubyte (Tier0)
-7 (-10.00 % of base) : 30071.dasm - System.Enum+<>c__63`1[uint]:<FormatNumberAsHex>b__63_0(System.Span`1[ushort],int):this (Tier0)
-7 (-9.46 % of base) : 47165.dasm - System.HexConverter:TryDecodeFromUtf16(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte],byref):ubyte (Tier0)
-2 (-9.09 % of base) : 1053.dasm - System.Diagnostics.FileVersionInfo:HIWORD(uint):uint (Tier0)
coreclr_tests.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 309306753 (overridden on cmd)
Total bytes of diff: 309233704 (overridden on cmd)
Total bytes of delta: -73049 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
598 : 281639.dasm (7.81 % of base)
278 : 281630.dasm (3.18 % of base)
278 : 544017.dasm (3.19 % of base)
179 : 617.dasm (5.50 % of base)
126 : 302627.dasm (9.86 % of base)
126 : 566829.dasm (9.86 % of base)
84 : 20395.dasm (1.02 % of base)
84 : 299391.dasm (1.27 % of base)
84 : 162329.dasm (1.19 % of base)
70 : 162325.dasm (1.26 % of base)
62 : 441620.dasm (1.82 % of base)
60 : 304093.dasm (0.55 % of base)
51 : 164911.dasm (1.50 % of base)
48 : 333018.dasm (8.42 % of base)
48 : 352568.dasm (8.42 % of base)
48 : 63221.dasm (8.42 % of base)
48 : 77113.dasm (8.42 % of base)
48 : 63251.dasm (8.42 % of base)
48 : 77078.dasm (8.42 % of base)
48 : 332959.dasm (8.42 % of base)
Top file improvements (bytes):
-1514 : 495042.dasm (-99.54 % of base)
-418 : 474606.dasm (-4.58 % of base)
-408 : 496242.dasm (-13.88 % of base)
-365 : 496911.dasm (-26.00 % of base)
-354 : 496082.dasm (-13.63 % of base)
-307 : 496704.dasm (-3.81 % of base)
-304 : 486014.dasm (-24.40 % of base)
-300 : 496678.dasm (-5.27 % of base)
-259 : 496254.dasm (-8.25 % of base)
-233 : 485964.dasm (-10.50 % of base)
-232 : 476779.dasm (-10.21 % of base)
-219 : 496181.dasm (-10.56 % of base)
-216 : 484719.dasm (-20.65 % of base)
-208 : 476789.dasm (-9.01 % of base)
-206 : 496349.dasm (-5.78 % of base)
-196 : 496466.dasm (-15.43 % of base)
-194 : 496495.dasm (-1.51 % of base)
-154 : 313765.dasm (-16.68 % of base)
-154 : 495942.dasm (-29.73 % of base)
-154 : 316317.dasm (-17.70 % of base)
83 total files with Code Size differences (52 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
598 (7.81 % of base) : 281639.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
278 (3.18 % of base) : 281630.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
278 (3.19 % of base) : 544017.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
179 (5.50 % of base) : 617.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (FullOpts)
126 (9.86 % of base) : 302627.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
126 (9.86 % of base) : 566829.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier0-FullOpts)
84 (1.19 % of base) : 162329.dasm - div_r8._div:main():int (FullOpts)
84 (1.02 % of base) : 20395.dasm - FPBehaviorApp.Program:TestBitValue(uint,System.Nullable`1[double],System.Nullable`1[int]) (FullOpts)
84 (1.27 % of base) : 299391.dasm - SlowPathELTTests.SlowPathELTHelpers:RunTest():int (FullOpts)
70 (1.26 % of base) : 162325.dasm - div_r4._div:main():int (FullOpts)
62 (1.82 % of base) : 441620.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParsePostFixExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier0-FullOpts)
60 (0.55 % of base) : 304093.dasm - Tracing.Tests.ProcessInfoValidation.ProcessInfoValidation:TestEntryPoint() (FullOpts)
51 (1.50 % of base) : 164911.dasm - Managed:MarshalStructAsParam_AsExpByVal(int) (FullOpts)
48 (8.42 % of base) : 63221.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (FullOpts)
48 (8.42 % of base) : 332959.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (Tier0-FullOpts)
48 (8.42 % of base) : 63251.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (FullOpts)
48 (8.42 % of base) : 333018.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (Tier0-FullOpts)
48 (8.42 % of base) : 77078.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (FullOpts)
48 (8.42 % of base) : 352528.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (Tier0-FullOpts)
48 (8.42 % of base) : 77113.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (FullOpts)
Top method improvements (bytes):
-1514 (-99.54 % of base) : 495042.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-418 (-4.58 % of base) : 474606.dasm - ILGEN_0x52ea038a:Method_0xc9efd6b0(uint,int,double,ushort,uint,ubyte,double,ubyte,ushort,byte):ushort (Tier0)
-408 (-13.88 % of base) : 496242.dasm - ILGEN_0xa691ee4d:Method_0xf329b3e5(long):int (Tier0)
-365 (-26.00 % of base) : 496911.dasm - ILGEN_0x8259d717:Method_0xea14afe6():ushort (Tier0)
-354 (-13.63 % of base) : 496082.dasm - ILGEN_0x1dd8d826:Method_0x1830b93d(uint):int (Tier0)
-307 (-3.81 % of base) : 496704.dasm - ILGEN_0x977f9ed2:Method_0xf6b7353b():float (Tier0)
-304 (-24.40 % of base) : 486014.dasm - ILGEN_0xcd4c3cc0:main():int (Tier0)
-300 (-5.27 % of base) : 496678.dasm - ILGEN_0x2193e4b5:Method_0xeffa27b5(ubyte,long,float,float,byte,double,uint,ubyte,short):int (Tier0)
-259 (-8.25 % of base) : 496254.dasm - ILGEN_0x13e5362e:Method_0x6ddf86e(ushort,float,int,ubyte,uint,uint,ubyte,long,ulong):int (Tier0)
-233 (-10.50 % of base) : 485964.dasm - ILGEN_3171381355:main():int (Tier0)
-232 (-10.21 % of base) : 476779.dasm - convr4a:Main():int (Tier0)
-219 (-10.56 % of base) : 496181.dasm - ILGEN_0x57cc69ce:Method_0x183df1b1():int (Tier0)
-216 (-20.65 % of base) : 484719.dasm - ILGEN_941132142:main():int (Tier0)
-208 (-9.01 % of base) : 476789.dasm - convr8d:Main():int (Tier0)
-206 (-5.78 % of base) : 496349.dasm - ILGEN_0x12984aee:Method_0x786cd2b5(byte,ubyte,byte,long,int,short,int,uint):int (Tier0)
-196 (-15.43 % of base) : 496466.dasm - ILGEN_0x1db2cfa3:Method_0x8618f02c(ushort,double,short,byte):int (Tier0)
-194 (-1.51 % of base) : 496495.dasm - ILGEN_0x8fd0798a:Method_0xf3564a4f(int,int,byte,float,ushort,float):int (Tier0)
-154 (-29.73 % of base) : 495942.dasm - ILGEN_0x44f8f663:Method_0x2e75f3b4(byte,ulong,short):int (Tier0)
-154 (-16.68 % of base) : 313765.dasm - testout1:Sub_Funclet_384():double (Tier0)
-154 (-17.70 % of base) : 316317.dasm - testout1:Sub_Funclet_384():float (Tier0)
Top method regressions (percentages):
3 (17.65 % of base) : 485071.dasm - ILGEN_622380794:main():int (Tier0)
126 (9.86 % of base) : 302627.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (FullOpts)
126 (9.86 % of base) : 566829.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier0-FullOpts)
48 (8.42 % of base) : 63221.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (FullOpts)
48 (8.42 % of base) : 332959.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (Tier0-FullOpts)
48 (8.42 % of base) : 63251.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (FullOpts)
48 (8.42 % of base) : 333018.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (Tier0-FullOpts)
48 (8.42 % of base) : 77078.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (FullOpts)
48 (8.42 % of base) : 352528.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:ValidateWithResult(long[],long[],System.String):this (Tier0-FullOpts)
48 (8.42 % of base) : 77113.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (FullOpts)
48 (8.42 % of base) : 352568.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (Tier0-FullOpts)
37 (8.13 % of base) : 63197.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:ValidateWithResult(ubyte[],ubyte[],System.String):this (FullOpts)
37 (8.13 % of base) : 332917.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:ValidateWithResult(ubyte[],ubyte[],System.String):this (Tier0-FullOpts)
37 (8.13 % of base) : 63227.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:ValidateWithResult(byte[],byte[],System.String):this (FullOpts)
37 (8.13 % of base) : 332973.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:ValidateWithResult(byte[],byte[],System.String):this (Tier0-FullOpts)
37 (8.13 % of base) : 77050.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:ValidateWithResult(ubyte[],ubyte[],System.String):this (FullOpts)
37 (8.13 % of base) : 352494.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:ValidateWithResult(ubyte[],ubyte[],System.String):this (Tier0-FullOpts)
37 (8.13 % of base) : 77085.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:ValidateWithResult(byte[],byte[],System.String):this (FullOpts)
37 (8.13 % of base) : 352536.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:ValidateWithResult(byte[],byte[],System.String):this (Tier0-FullOpts)
37 (8.06 % of base) : 352552.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:ValidateWithResult(ushort[],ushort[],System.String):this (Tier0-FullOpts)
Top method improvements (percentages):
-1514 (-99.54 % of base) : 495042.dasm - ILGEN_0xca1e3399:Method_0x8f2f764c():uint (Tier0)
-125 (-89.29 % of base) : 495030.dasm - ILGEN_0xdbcacf66:Method_0x8216365b():ulong (Tier0)
-63 (-86.30 % of base) : 484630.dasm - _simple:main():int (Tier0)
-53 (-84.13 % of base) : 484624.dasm - _simple:main():int (Tier0)
-41 (-80.39 % of base) : 486009.dasm - ILGEN_0xa7db44c0:main():int (Tier0)
-42 (-79.25 % of base) : 240524.dasm - ILGEN_CLASS:ILGEN_METHOD(int):ubyte (FullOpts)
-38 (-79.17 % of base) : 495074.dasm - _n:main():int (Tier0)
-35 (-77.78 % of base) : 494731.dasm - ILGEN_0x45f9b5e5:Main():int (Tier0)
-34 (-77.27 % of base) : 484579.dasm - _simple:main():int (Tier0)
-31 (-75.61 % of base) : 495082.dasm - s:main():int (Tier0)
-29 (-74.36 % of base) : 495843.dasm - ILGEN_0x77e9b0c3:Main():int (Tier0)
-27 (-72.97 % of base) : 494821.dasm - ILGEN_0xd3a45436:Main():int (Tier0)
-120 (-72.73 % of base) : 495036.dasm - ILGEN_0x71d10697:Method_0x77f6a2f8():ulong (Tier0)
-121 (-72.46 % of base) : 309371.dasm - _add:main():int (Tier0)
-75 (-72.12 % of base) : 476578.dasm - JitTest_sizeof_Target_32Bit_x86_il.Test:Main():int (Tier0)
-25 (-71.43 % of base) : 484575.dasm - _simple:main():int (Tier0)
-26 (-68.42 % of base) : 559066.dasm - Overflow:test2():long (Tier0)
-20 (-66.67 % of base) : 494846.dasm - ILGEN_0xc766623d:Main():int (Tier0)
-17 (-62.96 % of base) : 484628.dasm - _simple:main():int (Tier0)
-16 (-61.54 % of base) : 495072.dasm - _shl:main():int (Tier0)
libraries.crossgen2.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 31715821 (overridden on cmd)
Total bytes of diff: 31715777 (overridden on cmd)
Total bytes of delta: -44 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
5 : 223642.dasm (2.59 % of base)
Top file improvements (bytes):
-9 : 226839.dasm (-1.71 % of base)
-8 : 86143.dasm (-1.27 % of base)
-6 : 56655.dasm (-0.83 % of base)
-5 : 226827.dasm (-1.14 % of base)
-4 : 7212.dasm (-40.00 % of base)
-4 : 185619.dasm (-0.93 % of base)
-4 : 223452.dasm (-2.30 % of base)
-2 : 42415.dasm (-0.92 % of base)
-2 : 128215.dasm (-3.03 % of base)
-2 : 114529.dasm (-3.03 % of base)
-2 : 86141.dasm (-0.60 % of base)
-1 : 183138.dasm (-0.88 % of base)
13 total files with Code Size differences (12 improved, 1 regressed), 19 unchanged.
Top method regressions (bytes):
5 (2.59 % of base) : 223642.dasm - System.Management.PropertyDataCollection+PropertyDataEnumerator:.ctor(System.Management.ManagementBaseObject,ubyte):this (FullOpts)
Top method improvements (bytes):
-9 (-1.71 % of base) : 226839.dasm - System.Text.ISO2022Encoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-8 (-1.27 % of base) : 86143.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
-6 (-0.83 % of base) : 56655.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol+InvokeMethod:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-5 (-1.14 % of base) : 226827.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-4 (-0.93 % of base) : 185619.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
-4 (-2.30 % of base) : 223452.dasm - System.Management.PropertyDataCollection:get_Count():int:this (FullOpts)
-4 (-40.00 % of base) : 7212.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-2 (-0.92 % of base) : 42415.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-2 (-3.03 % of base) : 128215.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-3.03 % of base) : 114529.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-0.60 % of base) : 86141.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
-1 (-0.88 % of base) : 183138.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
Top method regressions (percentages):
5 (2.59 % of base) : 223642.dasm - System.Management.PropertyDataCollection+PropertyDataEnumerator:.ctor(System.Management.ManagementBaseObject,ubyte):this (FullOpts)
Top method improvements (percentages):
-4 (-40.00 % of base) : 7212.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (FullOpts)
-2 (-3.03 % of base) : 128215.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-2 (-3.03 % of base) : 114529.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
-4 (-2.30 % of base) : 223452.dasm - System.Management.PropertyDataCollection:get_Count():int:this (FullOpts)
-9 (-1.71 % of base) : 226839.dasm - System.Text.ISO2022Encoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-8 (-1.27 % of base) : 86143.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTimeOffset (FullOpts)
-5 (-1.14 % of base) : 226827.dasm - System.Text.EUCJPEncoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-4 (-0.93 % of base) : 185619.dasm - System.IO.Compression.InflaterManaged:DecodeUncompressedBlock(byref):ubyte:this (FullOpts)
-2 (-0.92 % of base) : 42415.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-1 (-0.88 % of base) : 183138.dasm - System.Runtime.Caching.ExpiresBucket:GetFreeExpiresEntry():System.Runtime.Caching.ExpiresEntryRef:this (FullOpts)
-6 (-0.83 % of base) : 56655.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol+InvokeMethod:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
-2 (-0.60 % of base) : 86141.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
13 total methods with Code Size differences (12 improved, 1 regressed).
libraries.pmi.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 49209656 (overridden on cmd)
Total bytes of diff: 49218456 (overridden on cmd)
Total bytes of delta: 8800 (0.02 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
809 : 185683.dasm (59.44 % of base)
665 : 185684.dasm (52.95 % of base)
649 : 120928.dasm (9.34 % of base)
649 : 158967.dasm (9.34 % of base)
649 : 185600.dasm (8.54 % of base)
540 : 185569.dasm (6.16 % of base)
433 : 184058.dasm (20.69 % of base)
430 : 184059.dasm (18.64 % of base)
357 : 184062.dasm (19.06 % of base)
348 : 184087.dasm (12.19 % of base)
347 : 184082.dasm (16.68 % of base)
285 : 184067.dasm (27.04 % of base)
284 : 184073.dasm (19.36 % of base)
266 : 184090.dasm (22.37 % of base)
255 : 184089.dasm (20.56 % of base)
212 : 63481.dasm (3.10 % of base)
207 : 85540.dasm (19.04 % of base)
177 : 200770.dasm (14.37 % of base)
153 : 184057.dasm (15.50 % of base)
153 : 200771.dasm (19.29 % of base)
Top file improvements (bytes):
-58 : 120956.dasm (-3.53 % of base)
-58 : 158995.dasm (-3.53 % of base)
-51 : 241173.dasm (-2.42 % of base)
-48 : 258757.dasm (-0.88 % of base)
-38 : 31171.dasm (-2.57 % of base)
-38 : 172295.dasm (-2.14 % of base)
-33 : 261883.dasm (-0.71 % of base)
-26 : 286752.dasm (-1.35 % of base)
-22 : 63634.dasm (-1.06 % of base)
-19 : 258430.dasm (-1.21 % of base)
-17 : 263293.dasm (-1.03 % of base)
-17 : 302206.dasm (-1.05 % of base)
-17 : 257520.dasm (-1.05 % of base)
-17 : 262015.dasm (-1.03 % of base)
-17 : 264076.dasm (-1.05 % of base)
-17 : 256970.dasm (-1.05 % of base)
-17 : 260355.dasm (-1.05 % of base)
-17 : 262926.dasm (-1.05 % of base)
-17 : 256124.dasm (-1.05 % of base)
-17 : 261787.dasm (-1.05 % of base)
71 total files with Code Size differences (41 improved, 30 regressed), 20 unchanged.
Top method regressions (bytes):
809 (59.44 % of base) : 185683.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
665 (52.95 % of base) : 185684.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
649 (8.54 % of base) : 185600.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.CopiedCorHeaderNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
649 (9.34 % of base) : 120928.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
649 (9.34 % of base) : 158967.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
540 (6.16 % of base) : 185569.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
433 (20.69 % of base) : 184058.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
430 (18.64 % of base) : 184059.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
357 (19.06 % of base) : 184062.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
348 (12.19 % of base) : 184087.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
347 (16.68 % of base) : 184082.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
285 (27.04 % of base) : 184067.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
284 (19.36 % of base) : 184073.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
266 (22.37 % of base) : 184090.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
255 (20.56 % of base) : 184089.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
212 (3.10 % of base) : 63481.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
207 (19.04 % of base) : 85540.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
177 (14.37 % of base) : 200770.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
153 (19.29 % of base) : 200771.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
153 (15.50 % of base) : 184057.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
Top method improvements (bytes):
-58 (-3.53 % of base) : 120956.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-58 (-3.53 % of base) : 158995.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-51 (-2.42 % of base) : 241173.dasm - System.DirectoryServices.AdsValueHelper:GetValue():System.Object:this (FullOpts)
-48 (-0.88 % of base) : 258757.dasm - System.Net.Http.Http2Connection+<ProcessIncomingFramesAsync>d__62:MoveNext():this (FullOpts)
-38 (-2.57 % of base) : 31171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<Dump>g__dumpAncestors|112_0():Microsoft.CodeAnalysis.TreeDumperNode:this (FullOpts)
-38 (-2.14 % of base) : 172295.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
-33 (-0.71 % of base) : 261883.dasm - Microsoft.Quic.QUIC_CONNECTION_EVENT:ToString():System.String:this (FullOpts)
-26 (-1.35 % of base) : 286752.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts)
-22 (-1.06 % of base) : 63634.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,int,int):this (FullOpts)
-19 (-1.21 % of base) : 258430.dasm - System.Net.Http.HttpConnection+<FillAsync>d__83:MoveNext():this (FullOpts)
-17 (-1.03 % of base) : 263293.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 302206.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 257520.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.03 % of base) : 262015.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 264076.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 256970.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 260355.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 262926.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 256124.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
-17 (-1.05 % of base) : 261787.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts)
Top method regressions (percentages):
809 (59.44 % of base) : 185683.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
131 (54.81 % of base) : 200784.dasm - Internal.IL.Stubs.ILCodeStream:Emit(int,Internal.IL.Stubs.ILCodeLabel):this (FullOpts)
665 (52.95 % of base) : 185684.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ImportThunk:EmitCode(ILCompiler.DependencyAnalysis.NodeFactory,byref,ubyte):this (FullOpts)
285 (27.04 % of base) : 184067.dasm - Internal.TypeSystem.Interop.BooleanMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
131 (24.95 % of base) : 184160.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
131 (24.62 % of base) : 200688.dasm - Internal.IL.HelperExtensions:EmitCallThrowHelper(Internal.IL.Stubs.ILCodeStream,Internal.IL.Stubs.ILEmitter,Internal.TypeSystem.MethodDesc) (FullOpts)
127 (22.88 % of base) : 184078.dasm - Internal.TypeSystem.Interop.AnsiStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
127 (22.44 % of base) : 184075.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:EmitCleanupManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
266 (22.37 % of base) : 184090.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
433 (20.69 % of base) : 184058.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
255 (20.56 % of base) : 184089.dasm - Internal.TypeSystem.Interop.DelegateMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
284 (19.36 % of base) : 184073.dasm - Internal.TypeSystem.Interop.UnicodeStringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
153 (19.29 % of base) : 200771.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorBadImageFailure(Internal.TypeSystem.MethodDesc):Internal.IL.MethodIL (FullOpts)
357 (19.06 % of base) : 184062.dasm - Internal.TypeSystem.Interop.BlittableArrayMarshaller:AllocAndTransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
207 (19.04 % of base) : 85540.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:TryEmitComparison(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,ubyte):ubyte:this (FullOpts)
430 (18.64 % of base) : 184059.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:TransformNativeToManaged(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
347 (16.68 % of base) : 184082.dasm - Internal.TypeSystem.Interop.UTF8StringMarshaller:TransformManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
153 (15.50 % of base) : 184057.dasm - Internal.TypeSystem.Interop.ArrayMarshaller:AllocManagedToNative(Internal.IL.Stubs.ILCodeStream):this (FullOpts)
177 (14.37 % of base) : 200770.dasm - Internal.IL.UnsafeAccessors:GenerateAccessorSpecificFailure(byref,System.String,ubyte):Internal.IL.MethodIL (FullOpts)
348 (12.19 % of base) : 184087.dasm - Internal.TypeSystem.Interop.SafeHandleMarshaller:EmitMarshalArgumentManagedToNative():this (FullOpts)
Top method improvements (percentages):
-1 (-7.14 % of base) : 5279.dasm - System.Threading.PortableThreadPool+CountsOfThreadsProcessingUserCallbacks:ResetHighWatermark():this (FullOpts)
-4 (-5.33 % of base) : 296453.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.PathSegments.WildcardPathSegment:.cctor() (FullOpts)
-58 (-3.53 % of base) : 120956.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-58 (-3.53 % of base) : 158995.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-12 (-3.26 % of base) : 286950.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_BeginningAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286954.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_BolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286956.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_BoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286951.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_EndAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286952.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_EndAnchorZ():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286953.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_EndAnchorZReverse():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286955.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_EolAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-12 (-3.26 % of base) : 286957.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:get_NonBoundaryAnchor():System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
-10 (-2.73 % of base) : 249646.dasm - System.Linq.ParallelEnumerable:Aggregate[System.Numerics.Vector`1[float]](System.Linq.ParallelQuery`1[System.Numerics.Vector`1[float]],System.Func`3[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
-38 (-2.57 % of base) : 31171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<Dump>g__dumpAncestors|112_0():Microsoft.CodeAnalysis.TreeDumperNode:this (FullOpts)
-51 (-2.42 % of base) : 241173.dasm - System.DirectoryServices.AdsValueHelper:GetValue():System.Object:this (FullOpts)
-38 (-2.14 % of base) : 172295.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
-12 (-1.92 % of base) : 140.dasm - PrepareBase:FinishType(System.Type):this (FullOpts)
-9 (-1.71 % of base) : 281942.dasm - System.Text.ISO2022Encoding:CleanUpBytes(byref):ubyte:this (FullOpts)
-9 (-1.56 % of base) : 172294.dasm - System.Xml.Schema.XsdDateTime:ToZulu():System.DateTime:this (FullOpts)
-6 (-1.47 % of base) : 262499.dasm - System.Net.HttpWebRequest:get_Host():System.String:this (FullOpts)
libraries_tests.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 186454825 (overridden on cmd)
Total bytes of diff: 186417643 (overridden on cmd)
Total bytes of delta: -37182 (-0.02 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
177 : 147932.dasm (4.21 % of base)
148 : 348042.dasm (2.34 % of base)
103 : 580380.dasm (2.45 % of base)
102 : 619717.dasm (4.45 % of base)
94 : 422411.dasm (2.81 % of base)
93 : 330945.dasm (4.57 % of base)
84 : 593473.dasm (6.73 % of base)
80 : 365971.dasm (3.17 % of base)
80 : 365990.dasm (3.18 % of base)
76 : 365915.dasm (3.02 % of base)
69 : 365891.dasm (1.96 % of base)
57 : 576395.dasm (2.62 % of base)
40 : 560493.dasm (0.58 % of base)
34 : 424683.dasm (0.67 % of base)
32 : 597957.dasm (3.94 % of base)
28 : 203398.dasm (0.58 % of base)
24 : 62669.dasm (0.68 % of base)
22 : 577707.dasm (1.68 % of base)
19 : 577708.dasm (2.83 % of base)
19 : 579670.dasm (2.09 % of base)
Top file improvements (bytes):
-32768 : 401707.dasm (-18.18 % of base)
-2048 : 401512.dasm (-18.15 % of base)
-265 : 161563.dasm (-4.09 % of base)
-248 : 401734.dasm (-96.12 % of base)
-166 : 575136.dasm (-4.35 % of base)
-114 : 242586.dasm (-17.17 % of base)
-104 : 365629.dasm (-5.78 % of base)
-102 : 339306.dasm (-6.27 % of base)
-70 : 320129.dasm (-1.51 % of base)
-64 : 401508.dasm (-17.16 % of base)
-51 : 360964.dasm (-0.97 % of base)
-46 : 323087.dasm (-25.84 % of base)
-43 : 116427.dasm (-6.28 % of base)
-38 : 422627.dasm (-2.61 % of base)
-37 : 467471.dasm (-2.77 % of base)
-36 : 576256.dasm (-3.12 % of base)
-36 : 471991.dasm (-4.00 % of base)
-31 : 287146.dasm (-3.43 % of base)
-31 : 78900.dasm (-3.40 % of base)
-30 : 169780.dasm (-4.02 % of base)
75 total files with Code Size differences (50 improved, 25 regressed), 20 unchanged.
Top method regressions (bytes):
177 (4.21 % of base) : 147932.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.__NestedOptionsValidator__:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.NestedOptions):Microsoft.Extensions.Options.ValidateOptionsResult (Tier0-FullOpts)
148 (2.34 % of base) : 348042.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (Tier0-FullOpts)
103 (2.45 % of base) : 580380.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeOrPatternForIsOperator():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (Tier1)
102 (4.45 % of base) : 619717.dasm - System.Threading.Tests.EtwTests+<>c:<WaitHandleWaitEventTest>b__1_0():this (Tier0-FullOpts)
94 (2.81 % of base) : 422411.dasm - System.Tests.StringTests+<ToLower_Culture_TestData>d__316:MoveNext():ubyte:this (Tier0-FullOpts)
93 (4.57 % of base) : 330945.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (Tier0-FullOpts)
84 (6.73 % of base) : 593473.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordClone:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]]:this (Tier1)
80 (3.17 % of base) : 365971.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (Tier0-FullOpts)
80 (3.18 % of base) : 365990.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (Tier0-FullOpts)
76 (3.02 % of base) : 365915.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (Tier0-FullOpts)
69 (1.96 % of base) : 365891.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (Tier0-FullOpts)
57 (2.62 % of base) : 576395.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
40 (0.58 % of base) : 560493.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
34 (0.67 % of base) : 424683.dasm - System.Numerics.Tests.ComplexTests:ToStringTest(double,double) (Tier0-FullOpts)
32 (3.94 % of base) : 597957.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AddMultiLineRawStringLiteralLineContents(System.Text.StringBuilder,System.Text.StringBuilder,ubyte):this (Tier0-FullOpts)
28 (0.58 % of base) : 203398.dasm - System.ComponentModel.Composition.MetadataViewGenerator:GenerateInterfaceViewProxyType(System.Type):System.Type (Tier0-FullOpts)
24 (0.68 % of base) : 62669.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier0-FullOpts)
22 (1.68 % of base) : 577707.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitShortCircuitingOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte,ubyte,ubyte):this (Tier1)
19 (2.83 % of base) : 577708.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
19 (2.09 % of base) : 579670.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
Top method improvements (bytes):
-32768 (-18.18 % of base) : 401707.dasm - TestType:meth1():int (Tier0)
-2048 (-18.15 % of base) : 401512.dasm - TestType:meth1():int (Tier0)
-265 (-4.09 % of base) : 161563.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
-248 (-96.12 % of base) : 401734.dasm - TestType:meth1():int (Tier0)
-166 (-4.35 % of base) : 575136.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoad(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (Tier1)
-114 (-17.17 % of base) : 242586.dasm - SdtEventSources.EventSourceTest:EventWithXferManyTypeArgs(System.Guid,long,uint,ulong,ushort,ubyte,byte,short,ushort,float,double,System.Guid):this (Tier0)
-104 (-5.78 % of base) : 365629.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FieldOffsetTest():this (Tier0)
-102 (-6.27 % of base) : 339306.dasm - System.Net.Tests.HttpListenerFactory:GetContent(System.String,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1[System.String],ubyte):ubyte[]:this (Tier0-FullOpts)
-70 (-1.51 % of base) : 320129.dasm - System.SpanTests.ReadOnlySpanTests:.cctor() (Tier0)
-64 (-17.16 % of base) : 401508.dasm - TestType:meth1():int (Tier0)
-51 (-0.97 % of base) : 360964.dasm - System.Net.Http.Http2Connection+<ProcessIncomingFramesAsync>d__62:MoveNext():this (Tier0-FullOpts)
-46 (-25.84 % of base) : 323087.dasm - System.SpanTests.SpanTests:.cctor() (Tier0)
-43 (-6.28 % of base) : 116427.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (Tier0)
-38 (-2.61 % of base) : 422627.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison() (Tier0-FullOpts)
-37 (-2.77 % of base) : 467471.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (Tier0-FullOpts)
-36 (-3.12 % of base) : 576256.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (Tier1)
-36 (-4.00 % of base) : 471991.dasm - System.Security.Cryptography.Pkcs.Tests.TimestampRequestTests:VerifyExpectedRequest(System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest,ubyte) (Tier0)
-31 (-3.43 % of base) : 287146.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(uint,uint,ulong):ulong (Tier0)
-31 (-3.40 % of base) : 78900.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(uint,uint,ulong):ulong (Tier0)
-30 (-4.02 % of base) : 169780.dasm - Microsoft.VisualBasic.Strings:Chr(int):ushort (Instrumented Tier0)
Top method regressions (percentages):
3 (20.00 % of base) : 245442.dasm - System.Drawing.Point:LowInt16(int):short (Tier0)
3 (16.67 % of base) : 245443.dasm - System.Drawing.Point:HighInt16(int):short (Tier0)
6 (7.23 % of base) : 245440.dasm - System.Drawing.PrimitivesTests.PointTests:SingleIntConstructorTest(int):this (Tier0)
84 (6.73 % of base) : 593473.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordClone:MakeParametersAndBindReturnType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]]:this (Tier1)
93 (4.57 % of base) : 330945.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (Tier0-FullOpts)
102 (4.45 % of base) : 619717.dasm - System.Threading.Tests.EtwTests+<>c:<WaitHandleWaitEventTest>b__1_0():this (Tier0-FullOpts)
177 (4.21 % of base) : 147932.dasm - Microsoft.Gen.OptionsValidation.Unit.Test.__NestedOptionsValidator__:Validate(System.String,Microsoft.Gen.OptionsValidation.Unit.Test.NestedOptions):Microsoft.Extensions.Options.ValidateOptionsResult (Tier0-FullOpts)
32 (3.94 % of base) : 597957.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AddMultiLineRawStringLiteralLineContents(System.Text.StringBuilder,System.Text.StringBuilder,ubyte):this (Tier0-FullOpts)
80 (3.18 % of base) : 365990.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (Tier0-FullOpts)
80 (3.17 % of base) : 365971.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (Tier0-FullOpts)
76 (3.02 % of base) : 365915.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (Tier0-FullOpts)
19 (2.83 % of base) : 577708.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondExpr(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
94 (2.81 % of base) : 422411.dasm - System.Tests.StringTests+<ToLower_Culture_TestData>d__316:MoveNext():ubyte:this (Tier0-FullOpts)
57 (2.62 % of base) : 576395.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (Tier1)
2 (2.50 % of base) : 155627.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
2 (2.50 % of base) : 563348.dasm - Microsoft.CodeAnalysis.XmlCharType:IsStartNCNameCharXml4e(ushort):ubyte (Tier1)
103 (2.45 % of base) : 580380.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTypeOrPatternForIsOperator():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (Tier1)
148 (2.34 % of base) : 348042.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (Tier0-FullOpts)
19 (2.09 % of base) : 579670.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitUnaryOperatorExpression(Microsoft.CodeAnalysis.CSharp.BoundUnaryOperator,ubyte):this (Tier1)
69 (1.96 % of base) : 365891.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (Tier0-FullOpts)
Top method improvements (percentages):
-248 (-96.12 % of base) : 401734.dasm - TestType:meth1():int (Tier0)
-14 (-58.33 % of base) : 401733.dasm - TestType:meth1():int (Tier0)
-9 (-47.37 % of base) : 64568.dasm - System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:get_BufferSize():int (Tier0)
-21 (-40.38 % of base) : 2994.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,int]:.cctor() (Tier0)
-4 (-40.00 % of base) : 460368.dasm - System.Text.Rune:get_ReplacementChar():System.Text.Rune (Instrumented Tier1)
-9 (-37.50 % of base) : 2944.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[int,int]:.cctor() (Tier0)
-9 (-37.50 % of base) : 64936.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[SharedTypes.BoolStruct,SharedTypes.BoolStructMarshaller+BoolStructNative]:.cctor() (Tier0)
-9 (-36.00 % of base) : 364967.dasm - System.Numerics.Vector`1[ushort]:get_Count():int (Tier0)
-46 (-25.84 % of base) : 323087.dasm - System.SpanTests.SpanTests:.cctor() (Tier0)
-27 (-25.23 % of base) : 419634.dasm - System.Runtime.Intrinsics.Vector512:ExtractMostSignificantBits[long](System.Runtime.Intrinsics.Vector512`1[long]):ulong (Tier0)
-3 (-23.08 % of base) : 401732.dasm - TestType:meth1():int (Tier0)
-7 (-21.21 % of base) : 2593.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:.cctor() (Tier0)
-7 (-21.21 % of base) : 2812.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObject:.cctor() (Tier0)
-7 (-21.21 % of base) : 2848.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:.cctor() (Tier0)
-7 (-20.59 % of base) : 417348.dasm - System.Runtime.InteropServices.Tests.NativeMemoryTests+<>c:<AlignedAllocNonPowerOfTwoAlignmentTest>b__4_1():this (Tier0)
-4 (-19.05 % of base) : 412332.dasm - System.Runtime.Caching.ExpiresEntryRef:get_Index():int:this (Tier0)
-32768 (-18.18 % of base) : 401707.dasm - TestType:meth1():int (Tier0)
-2048 (-18.15 % of base) : 401512.dasm - TestType:meth1():int (Tier0)
-114 (-17.17 % of base) : 242586.dasm - SdtEventSources.EventSourceTest:EventWithXferManyTypeArgs(System.Guid,long,uint,ulong,ushort,ubyte,byte,short,ushort,float,double,System.Guid):this (Tier0)
-64 (-17.16 % of base) : 401508.dasm - TestType:meth1():int (Tier0)
librariestestsnotieredcompilation.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 103643834 (overridden on cmd)
Total bytes of diff: 103611200 (overridden on cmd)
Total bytes of delta: -32634 (-0.03 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
519 : 57012.dasm (8.47 % of base)
146 : 160398.dasm (2.31 % of base)
102 : 312963.dasm (4.45 % of base)
101 : 213515.dasm (7.65 % of base)
95 : 188773.dasm (9.74 % of base)
94 : 193198.dasm (2.23 % of base)
93 : 154819.dasm (4.57 % of base)
86 : 46768.dasm (2.04 % of base)
80 : 167305.dasm (3.18 % of base)
80 : 167283.dasm (3.17 % of base)
76 : 167242.dasm (3.02 % of base)
69 : 167227.dasm (1.96 % of base)
67 : 53003.dasm (1.88 % of base)
59 : 56818.dasm (1.84 % of base)
55 : 54788.dasm (1.60 % of base)
46 : 120390.dasm (3.60 % of base)
44 : 278258.dasm (1.09 % of base)
40 : 277631.dasm (0.57 % of base)
26 : 161124.dasm (1.41 % of base)
24 : 198405.dasm (0.99 % of base)
Top file improvements (bytes):
-32768 : 184702.dasm (-18.18 % of base)
-255 : 167312.dasm (-16.15 % of base)
-160 : 167301.dasm (-6.20 % of base)
-160 : 167250.dasm (-6.22 % of base)
-160 : 167567.dasm (-6.20 % of base)
-96 : 157433.dasm (-5.76 % of base)
-56 : 167337.dasm (-3.75 % of base)
-56 : 167279.dasm (-3.75 % of base)
-48 : 164440.dasm (-0.91 % of base)
-48 : 152117.dasm (-4.66 % of base)
-38 : 64042.dasm (-2.14 % of base)
-38 : 200886.dasm (-2.49 % of base)
-38 : 222745.dasm (-2.49 % of base)
-37 : 125866.dasm (-4.37 % of base)
-37 : 226229.dasm (-2.77 % of base)
-37 : 125151.dasm (-4.37 % of base)
-36 : 188641.dasm (-1.85 % of base)
-34 : 167254.dasm (-4.33 % of base)
-34 : 167285.dasm (-4.33 % of base)
-34 : 167565.dasm (-4.31 % of base)
72 total files with Code Size differences (44 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
519 (8.47 % of base) : 57012.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
146 (2.31 % of base) : 160398.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (FullOpts)
102 (4.45 % of base) : 312963.dasm - System.Threading.Tests.EtwTests+<>c:<WaitHandleWaitEventTest>b__1_0():this (FullOpts)
101 (7.65 % of base) : 213515.dasm - System.Tests.DateTimeTests:TryParse_TimeDesignators_NetCore() (FullOpts)
95 (9.74 % of base) : 188773.dasm - System.Reflection.Metadata.Ecma335.Tests.MetadataTokensTests:HandleFactories_FromToken():this (FullOpts)
94 (2.23 % of base) : 193198.dasm - System.Runtime.CompilerServices.UnsafeTests:BitCast() (FullOpts)
93 (4.57 % of base) : 154819.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (FullOpts)
86 (2.04 % of base) : 46768.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
80 (3.17 % of base) : 167283.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (FullOpts)
80 (3.18 % of base) : 167305.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (FullOpts)
76 (3.02 % of base) : 167242.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (FullOpts)
69 (1.96 % of base) : 167227.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest5():this (FullOpts)
67 (1.88 % of base) : 53003.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitInstanceCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
59 (1.84 % of base) : 56818.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
55 (1.60 % of base) : 54788.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
46 (3.60 % of base) : 120390.dasm - System.Formats.Cbor.Tests.CborWriterTests:CoseKeyHelpers_ECDsaExportCosePublicKey_HappyPath(System.String,System.String,System.String,System.String,System.String) (FullOpts)
44 (1.09 % of base) : 278258.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
40 (0.57 % of base) : 277631.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
26 (1.41 % of base) : 161124.dasm - System.Net.Quic.Tests.QuicTestBase:.cctor() (FullOpts)
24 (0.99 % of base) : 198405.dasm - System.Reflection.Metadata.ApplyUpdateUtil:ApplyUpdate(System.Reflection.Assembly,ubyte) (FullOpts)
Top method improvements (bytes):
-32768 (-18.18 % of base) : 184702.dasm - TestType:meth1():int (Tier0-MinOpts)
-255 (-16.15 % of base) : 167312.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest1():this (FullOpts)
-160 (-6.22 % of base) : 167250.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
-160 (-6.20 % of base) : 167567.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest2():this (FullOpts)
-160 (-6.20 % of base) : 167301.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
-96 (-5.76 % of base) : 157433.dasm - System.Net.Tests.HttpListenerFactory:GetContent(System.String,System.String,System.String,System.String,System.Collections.Generic.IEnumerable`1[System.String],ubyte):ubyte[]:this (FullOpts)
-56 (-3.75 % of base) : 167337.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest():this (FullOpts)
-56 (-3.75 % of base) : 167279.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest():this (FullOpts)
-48 (-0.91 % of base) : 164440.dasm - System.Net.Http.Http2Connection+<ProcessIncomingFramesAsync>d__62:MoveNext():this (FullOpts)
-48 (-4.66 % of base) : 152117.dasm - System.Text.Json.ThrowHelper:ReThrowWithPath(byref,System.Text.Json.JsonReaderException) (FullOpts)
-38 (-2.49 % of base) : 200886.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison() (FullOpts)
-38 (-2.49 % of base) : 222745.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison() (FullOpts)
-38 (-2.14 % of base) : 64042.dasm - System.Xml.Schema.XsdDateTime:op_Implicit(System.Xml.Schema.XsdDateTime):System.DateTime (FullOpts)
-37 (-4.37 % of base) : 125866.dasm - System.Globalization.Tests.DateTimeFormatInfoMiscTests:TestFirstYearOfJapaneseEra():this (FullOpts)
-37 (-4.37 % of base) : 125151.dasm - System.Globalization.Tests.DateTimeFormatInfoMiscTests:TestFirstYearOfJapaneseEra():this (FullOpts)
-37 (-2.77 % of base) : 226229.dasm - System.Security.Cryptography.Cose.Tests.CoseMessageTests_Sign_CustomHeaderMaps:SignVerifyWithCustomCoseHeaderMaps():this (FullOpts)
-36 (-1.85 % of base) : 188641.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests:CustomAttributeElementTypeEncoder_PrimitiveType():this (FullOpts)
-34 (-4.33 % of base) : 167254.dasm - System.Numerics.Tests.QuaternionTests:QuaternionLerpTest1():this (FullOpts)
-34 (-4.33 % of base) : 167285.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest1():this (FullOpts)
-34 (-4.31 % of base) : 167565.dasm - System.Numerics.Tests.QuaternionTests:QuaternionSlerpTest2():this (FullOpts)
Top method regressions (percentages):
95 (9.74 % of base) : 188773.dasm - System.Reflection.Metadata.Ecma335.Tests.MetadataTokensTests:HandleFactories_FromToken():this (FullOpts)
519 (8.47 % of base) : 57012.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
101 (7.65 % of base) : 213515.dasm - System.Tests.DateTimeTests:TryParse_TimeDesignators_NetCore() (FullOpts)
93 (4.57 % of base) : 154819.dasm - System.Net.Http.HttpEnvironmentProxy:GetUriFromString(System.String):System.Uri (FullOpts)
102 (4.45 % of base) : 312963.dasm - System.Threading.Tests.EtwTests+<>c:<WaitHandleWaitEventTest>b__1_0():this (FullOpts)
46 (3.60 % of base) : 120390.dasm - System.Formats.Cbor.Tests.CborWriterTests:CoseKeyHelpers_ECDsaExportCosePublicKey_HappyPath(System.String,System.String,System.String,System.String,System.String) (FullOpts)
14 (3.60 % of base) : 57841.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:get_CompareLesserData():Xunit.TheoryData`2[Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegmentComparer] (FullOpts)
80 (3.18 % of base) : 167305.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest3():this (FullOpts)
80 (3.17 % of base) : 167283.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest2():this (FullOpts)
12 (3.03 % of base) : 160106.dasm - System.Net.NetworkInformation.Tests.IPGlobalPropertiesTest:IPGlobalProperties_UdpListeners_Succeed(System.Net.IPAddress):this (FullOpts)
76 (3.02 % of base) : 167242.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest4():this (FullOpts)
12 (2.93 % of base) : 160154.dasm - System.Net.NetworkInformation.Tests.IPGlobalPropertiesTest:IPGlobalProperties_TcpListeners_Succeed(System.Net.IPAddress):this (FullOpts)
146 (2.31 % of base) : 160398.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (FullOpts)
2 (2.30 % of base) : 31126.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
94 (2.23 % of base) : 193198.dasm - System.Runtime.CompilerServices.UnsafeTests:BitCast() (FullOpts)
19 (2.19 % of base) : 42609.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions+__Method9Struct:ToString():System.String:this (FullOpts)
19 (2.19 % of base) : 48127.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.ArgTestExtensions+__Method9Struct:ToString():System.String:this (FullOpts)
19 (2.19 % of base) : 42449.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TemplateTestExtensions+__M2Struct:ToString():System.String:this (FullOpts)
19 (2.19 % of base) : 48153.dasm - Microsoft.Extensions.Logging.Generators.Tests.TestClasses.TemplateTestExtensions+__M2Struct:ToString():System.String:this (FullOpts)
86 (2.04 % of base) : 46768.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
Top method improvements (percentages):
-4 (-25.00 % of base) : 242073.dasm - System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:TryEncodeUnicodeScalar_DisallowedSupplementaryChar():this (FullOpts)
-3 (-20.00 % of base) : 213453.dasm - System.Tests.DateTimeTests+<>c:<Parse_InvalidArguments_Throws>b__134_2():System.Object:this (FullOpts)
-3 (-20.00 % of base) : 213352.dasm - System.Tests.DateTimeTests+<>c:<ParseExact_InvalidArguments_Throws>b__136_1():System.Object:this (FullOpts)
-3 (-20.00 % of base) : 213358.dasm - System.Tests.DateTimeTests+<>c:<ParseExact_InvalidArguments_Throws>b__136_7():System.Object:this (FullOpts)
-3 (-20.00 % of base) : 221915.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_1():System.Object:this (FullOpts)
-3 (-20.00 % of base) : 221916.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__165_2():System.Object:this (FullOpts)
-3 (-20.00 % of base) : 200418.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__266_1():System.Object:this (FullOpts)
-3 (-20.00 % of base) : 200419.dasm - System.Tests.StringTests+<>c:<LastIndexOfAny_Invalid>b__266_2():System.Object:this (FullOpts)
-32768 (-18.18 % of base) : 184702.dasm - TestType:meth1():int (Tier0-MinOpts)
-255 (-16.15 % of base) : 167312.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixTest1():this (FullOpts)
-3 (-15.00 % of base) : 222054.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_24():System.Object:this (FullOpts)
-3 (-15.00 % of base) : 222056.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__117_26():System.Object:this (FullOpts)
-3 (-15.00 % of base) : 200359.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__218_24():System.Object:this (FullOpts)
-3 (-15.00 % of base) : 200361.dasm - System.Tests.StringTests+<>c:<IndexOf_Invalid>b__218_26():System.Object:this (FullOpts)
-3 (-10.34 % of base) : 188642.dasm - System.Reflection.Metadata.Ecma335.Tests.BlobEncodersTests+<>c__DisplayClass40_0:<CustomAttributeElementTypeEncoder_PrimitiveType>b__0():this (FullOpts)
-12 (-6.35 % of base) : 44720.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeDeclarationModifiers(uint,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):uint:this (FullOpts)
-12 (-6.35 % of base) : 49952.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeDeclarationModifiers(uint,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):uint:this (FullOpts)
-160 (-6.22 % of base) : 167250.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest1():this (FullOpts)
-160 (-6.20 % of base) : 167567.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest2():this (FullOpts)
-160 (-6.20 % of base) : 167301.dasm - System.Numerics.Tests.QuaternionTests:QuaternionFromRotationMatrixWithScaledMatrixTest3():this (FullOpts)
realworld.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 11348723 (overridden on cmd)
Total bytes of diff: 11349420 (overridden on cmd)
Total bytes of delta: 697 (0.01 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
519 : 28994.dasm (8.47 % of base)
179 : 29554.dasm (2.83 % of base)
59 : 28724.dasm (1.83 % of base)
45 : 29330.dasm (1.20 % of base)
44 : 28995.dasm (1.09 % of base)
22 : 1242.dasm (13.75 % of base)
7 : 18482.dasm (0.80 % of base)
7 : 28980.dasm (0.25 % of base)
7 : 29331.dasm (0.43 % of base)
7 : 29023.dasm (0.34 % of base)
7 : 29026.dasm (0.27 % of base)
7 : 29758.dasm (0.52 % of base)
6 : 28873.dasm (0.33 % of base)
6 : 29125.dasm (0.47 % of base)
6 : 28893.dasm (0.45 % of base)
3 : 15042.dasm (0.51 % of base)
3 : 15050.dasm (0.50 % of base)
2 : 18486.dasm (2.30 % of base)
2 : 19619.dasm (0.30 % of base)
Top file improvements (bytes):
-25 : 28738.dasm (-1.77 % of base)
-18 : 18420.dasm (-0.66 % of base)
-15 : 14529.dasm (-1.76 % of base)
-15 : 14528.dasm (-1.48 % of base)
-15 : 28742.dasm (-1.10 % of base)
-14 : 15005.dasm (-0.65 % of base)
-10 : 14507.dasm (-0.47 % of base)
-10 : 14721.dasm (-0.79 % of base)
-7 : 14404.dasm (-1.42 % of base)
-7 : 18150.dasm (-0.90 % of base)
-7 : 18459.dasm (-0.36 % of base)
-7 : 14414.dasm (-1.24 % of base)
-6 : 18597.dasm (-0.20 % of base)
-6 : 14521.dasm (-1.01 % of base)
-5 : 18213.dasm (-0.15 % of base)
-5 : 18345.dasm (-0.18 % of base)
-4 : 15598.dasm (-1.50 % of base)
-4 : 18176.dasm (-0.90 % of base)
-4 : 19228.dasm (-0.20 % of base)
-4 : 18188.dasm (-0.43 % of base)
48 total files with Code Size differences (29 improved, 19 regressed), 14 unchanged.
Top method regressions (bytes):
519 (8.47 % of base) : 28994.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
179 (2.83 % of base) : 29554.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
59 (1.83 % of base) : 28724.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
45 (1.20 % of base) : 29330.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
44 (1.09 % of base) : 28995.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
22 (13.75 % of base) : 1242.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
7 (0.52 % of base) : 29758.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCheckedOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
7 (0.25 % of base) : 28980.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
7 (0.43 % of base) : 29331.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
7 (0.34 % of base) : 29023.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
7 (0.27 % of base) : 29026.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
7 (0.80 % of base) : 18482.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentParser:ParseXmlName():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.XmlNameSyntax:this (FullOpts)
6 (0.33 % of base) : 28873.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
6 (0.45 % of base) : 28893.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitInstanceFieldAddress(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,int):Microsoft.CodeAnalysis.CodeGen.LocalDefinition:this (FullOpts)
6 (0.47 % of base) : 29125.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
3 (0.51 % of base) : 15042.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
3 (0.50 % of base) : 15050.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1+HostBase[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
2 (0.30 % of base) : 19619.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueDecimal(System.String,int,int):System.Decimal:this (FullOpts)
2 (2.30 % of base) : 18486.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
Top method improvements (bytes):
-25 (-1.77 % of base) : 28738.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-18 (-0.66 % of base) : 18420.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-15 (-1.10 % of base) : 28742.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-15 (-1.76 % of base) : 14529.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-15 (-1.48 % of base) : 14528.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-14 (-0.65 % of base) : 15005.dasm - SixLabors.ImageSharp.Formats.Bmp.BmpEncoderCore:Write24Bit[SixLabors.ImageSharp.PixelFormats.Rgba32](System.IO.Stream,SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-10 (-0.79 % of base) : 14721.dasm - SixLabors.ImageSharp.Formats.Gif.GifEncoderCore:WriteColorTable[SixLabors.ImageSharp.PixelFormats.Rgba32](SixLabors.ImageSharp.IndexedImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],System.IO.Stream):this (FullOpts)
-10 (-0.47 % of base) : 14507.dasm - SixLabors.ImageSharp.Formats.Png.PngEncoderCore:CollectTPixelBytes[SixLabors.ImageSharp.PixelFormats.Rgba32](System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-7 (-0.90 % of base) : 18150.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseResourceDescription(System.String,System.ReadOnlyMemory`1[ushort],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte):Microsoft.CodeAnalysis.ResourceDescription (FullOpts)
-7 (-0.36 % of base) : 18459.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_SlowPath(byref):ubyte:this (FullOpts)
-7 (-1.24 % of base) : 14414.dasm - SixLabors.ImageSharp.PixelFormats.Rgba32+PixelOperations:FromBgr24(SixLabors.ImageSharp.Configuration,System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Bgr24],System.Span`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-7 (-1.42 % of base) : 14404.dasm - SixLabors.ImageSharp.PixelFormats.Rgba32+PixelOperations:FromRgb24(SixLabors.ImageSharp.Configuration,System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgb24],System.Span`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-6 (-0.20 % of base) : 18597.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
-6 (-1.01 % of base) : 14521.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:SlideWindow():this (FullOpts)
-5 (-0.15 % of base) : 18213.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:ValidateOptions(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Diagnostic]):this (FullOpts)
-5 (-0.18 % of base) : 18345.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanSyntaxToken(byref):this (FullOpts)
-4 (-0.43 % of base) : 18188.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:GetCompilationAndModuleNames(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],int,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommandLineSourceFile],ubyte,System.String,byref,byref,byref):this (FullOpts)
-4 (-0.90 % of base) : 18176.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-4 (-0.20 % of base) : 19228.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseOperatorDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExplicitInterfaceSpecifierSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.OperatorDeclarationSyntax:this (FullOpts)
-4 (-1.50 % of base) : 15598.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
Top method regressions (percentages):
22 (13.75 % of base) : 1242.dasm - BepuUtilities.Memory.IdPool:Return(int,BepuUtilities.Memory.IUnmanagedMemoryPool):this (FullOpts)
519 (8.47 % of base) : 28994.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitNumericConversion(int,int,ubyte):this (FullOpts)
179 (2.83 % of base) : 29554.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitReadonlySpanAsBlobWrapper(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (FullOpts)
2 (2.30 % of base) : 18486.dasm - Microsoft.CodeAnalysis.XmlCharType:GetCharProperties(ushort):ubyte (FullOpts)
59 (1.83 % of base) : 28724.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCondOperator(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator,ubyte):this (FullOpts)
45 (1.20 % of base) : 29330.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoweredConditionalAccessExpression(Microsoft.CodeAnalysis.CSharp.BoundLoweredConditionalAccess,ubyte):this (FullOpts)
44 (1.09 % of base) : 28995.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitArrayElementLoad(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess,ubyte):this (FullOpts)
7 (0.80 % of base) : 18482.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DocumentationCommentParser:ParseXmlName():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.XmlNameSyntax:this (FullOpts)
7 (0.52 % of base) : 29758.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryCheckedOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
3 (0.51 % of base) : 15042.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
3 (0.50 % of base) : 15050.dasm - Microsoft.ML.Runtime.HostEnvironmentBase`1+HostBase[System.__Canon]:Register(System.String,System.Nullable`1[int],System.Nullable`1[ubyte]):Microsoft.ML.Runtime.IHost:this (FullOpts)
6 (0.47 % of base) : 29125.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator,ubyte):this (FullOpts)
6 (0.45 % of base) : 28893.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitInstanceFieldAddress(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,int):Microsoft.CodeAnalysis.CodeGen.LocalDefinition:this (FullOpts)
7 (0.43 % of base) : 29331.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitDefaultValue(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
7 (0.34 % of base) : 29023.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitIndirectStore(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
6 (0.33 % of base) : 28873.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitFieldLoadNoIndirection(Microsoft.CodeAnalysis.CSharp.BoundFieldAccess,ubyte):this (FullOpts)
2 (0.30 % of base) : 19619.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueDecimal(System.String,int,int):System.Decimal:this (FullOpts)
7 (0.27 % of base) : 29026.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitLoadIndirect(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
7 (0.25 % of base) : 28980.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitBinaryOperatorInstruction(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator):this (FullOpts)
Top method improvements (percentages):
-25 (-1.77 % of base) : 28738.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalStore(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-15 (-1.76 % of base) : 14529.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman:CompressBlock():this (FullOpts)
-3 (-1.53 % of base) : 15119.dasm - Microsoft.ML.Transforms.HashingTransformer+<>c__DisplayClass43_0`2[double,Microsoft.ML.Transforms.HashingTransformer+HashDouble]:<MakeScalarHashGetter>b__0(byref):this (FullOpts)
-4 (-1.50 % of base) : 15598.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,uint[],int,int):uint (FullOpts)
-15 (-1.48 % of base) : 14528.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
-7 (-1.42 % of base) : 14404.dasm - SixLabors.ImageSharp.PixelFormats.Rgba32+PixelOperations:FromRgb24(SixLabors.ImageSharp.Configuration,System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Rgb24],System.Span`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-7 (-1.24 % of base) : 14414.dasm - SixLabors.ImageSharp.PixelFormats.Rgba32+PixelOperations:FromBgr24(SixLabors.ImageSharp.Configuration,System.ReadOnlySpan`1[SixLabors.ImageSharp.PixelFormats.Bgr24],System.Span`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-15 (-1.10 % of base) : 28742.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitLocalLoad(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
-6 (-1.01 % of base) : 14521.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:SlideWindow():this (FullOpts)
-2 (-0.93 % of base) : 18349.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
-7 (-0.90 % of base) : 18150.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ParseResourceDescription(System.String,System.ReadOnlyMemory`1[ushort],System.String,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic],ubyte):Microsoft.CodeAnalysis.ResourceDescription (FullOpts)
-4 (-0.90 % of base) : 18176.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:ValidateWin32Settings(System.String,System.String,System.String,int,System.Collections.Generic.IList`1[Microsoft.CodeAnalysis.Diagnostic]) (FullOpts)
-10 (-0.79 % of base) : 14721.dasm - SixLabors.ImageSharp.Formats.Gif.GifEncoderCore:WriteColorTable[SixLabors.ImageSharp.PixelFormats.Rgba32](SixLabors.ImageSharp.IndexedImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],System.IO.Stream):this (FullOpts)
-2 (-0.69 % of base) : 31970.dasm - System.Security.Principal.WindowsIdentity:GetCurrentToken(int,ubyte,byref,byref):Microsoft.Win32.SafeHandles.SafeAccessTokenHandle (FullOpts)
-18 (-0.66 % of base) : 18420.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanNumericLiteral(byref):ubyte:this (FullOpts)
-14 (-0.65 % of base) : 15005.dasm - SixLabors.ImageSharp.Formats.Bmp.BmpEncoderCore:Write24Bit[SixLabors.ImageSharp.PixelFormats.Rgba32](System.IO.Stream,SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32]):this (FullOpts)
-3 (-0.57 % of base) : 17856.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,System.Text.StringBuilder,int,int,ubyte):uint (FullOpts)
-1 (-0.56 % of base) : 19565.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueSingle(System.String):float:this (FullOpts)
-1 (-0.55 % of base) : 19601.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:GetValueDouble(System.String):double:this (FullOpts)
-3 (-0.53 % of base) : 15500.dasm - Microsoft.ML.Internal.Utilities.Hashing:MurmurHash(uint,System.ReadOnlySpan`1[ushort],ubyte):uint (FullOpts)