Repository navigation
[JitDiff ARM64] [jkotas] Simplify System.Threading.Volatile implementation #1192
Copy link
Copy link
Open
Description
Activity
Top method regressions
52 (4.56 % of base) - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this
; Assembly listing for method System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 + SVE on Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 17 single block inlinees; 5 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T01] ( 26, 14 ) ref -> x19 this class-hnd single-def <System.Reflection.Emit.RuntimeILGenerator> -; V01 arg1 [V01,T05] ( 4, 3.50) struct ( 8) [fp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Reflection.Emit.OpCode> -; V02 arg2 [V02,T02] ( 24, 12.88) int -> x20 single-def +; V00 this [V00,T00] ( 26, 14 ) ref -> x19 this class-hnd single-def <System.Reflection.Emit.RuntimeILGenerator> +; V01 arg1 [V01,T06] ( 4, 3.50) struct ( 8) [fp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Reflection.Emit.OpCode> +; V02 arg2 [V02,T01] ( 24, 12.88) int -> x20 single-def ;* V03 loc0 [V03 ] ( 0, 0 ) struct ( 8) zero-ref <System.Reflection.Emit.OpCode> ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ;* V05 tmp1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode> ;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V07 tmp3 [V07 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.Emit.OpCode> ;* V08 tmp4 [V08 ] ( 0, 0 ) byte -> zero-ref "Inlining Arg" ;* V09 tmp5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode> ;* V10 tmp6 [V10 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V11 tmp7 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode> ;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V13 tmp9 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.Reflection.Emit.OpCode> ;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <byte[]> -; V16 tmp12 [V16,T24] ( 3, 1.50) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <byte[]> -; V17 tmp13 [V17,T29] ( 2, 1 ) int -> x1 "Inline return value spill temp" -; V18 tmp14 [V18,T10] ( 3, 3 ) int -> x0 "Inlining Arg" -; V19 tmp15 [V19,T11] ( 3, 3 ) int -> x1 "Inlining Arg" +; V16 tmp12 [V16,T25] ( 3, 1.50) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" <byte[]> +; V17 tmp13 [V17,T30] ( 2, 1 ) int -> x1 "Inline return value spill temp" +; V18 tmp14 [V18,T11] ( 3, 3 ) int -> x0 "Inlining Arg" +; V19 tmp15 [V19,T12] ( 3, 3 ) int -> x1 "Inlining Arg" ;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[byte]> ;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.Span`1[byte]> -; V22 tmp18 [V22,T06] ( 5, 5 ) ref -> x0 class-hnd single-def "Inlining Arg" <byte[]> -; V23 tmp19 [V23,T07] ( 5, 5 ) int -> x1 "Inlining Arg" +; V22 tmp18 [V22,T07] ( 5, 5 ) ref -> x0 class-hnd single-def "Inlining Arg" <byte[]> +; V23 tmp19 [V23,T08] ( 5, 5 ) int -> x1 "Inlining Arg" ;* V24 tmp20 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[byte]> ;* V25 tmp21 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[byte]> -; V26 tmp22 [V26,T14] ( 2, 2 ) byref -> x2 single-def "Inlining Arg" -; V27 tmp23 [V27,T15] ( 2, 2 ) int -> x0 "Inlining Arg" +; V26 tmp22 [V26,T15] ( 2, 2 ) byref -> x2 single-def "Inlining Arg" +; V27 tmp23 [V27,T16] ( 2, 2 ) int -> x0 "Inlining Arg" ;* V28 tmp24 [V28 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" ;* V29 tmp25 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[byte]> ;* V30 tmp26 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[byte]> ; V31 tmp27 [V31,T03] ( 15, 7.50) int -> x22 "field V03.m_value (fldOffset=0x0)" P-INDEP ; V32 tmp28 [V32,T04] ( 15, 7.50) int -> x23 "field V03.m_flags (fldOffset=0x4)" P-INDEP -; V33 tmp29 [V33,T16] ( 2, 2 ) int -> x1 "field V05.m_value (fldOffset=0x0)" P-INDEP +; V33 tmp29 [V33,T17] ( 2, 2 ) int -> x1 "field V05.m_value (fldOffset=0x0)" P-INDEP ;* V34 tmp30 [V34 ] ( 0, 0 ) int -> zero-ref "field V05.m_flags (fldOffset=0x4)" P-INDEP ;* V35 tmp31 [V35 ] ( 0, 0 ) int -> zero-ref "field V07.m_value (fldOffset=0x0)" P-INDEP ;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref "field V07.m_flags (fldOffset=0x4)" P-INDEP -; V37 tmp33 [V37,T30] ( 2, 1 ) int -> x1 "field V09.m_value (fldOffset=0x0)" P-INDEP +; V37 tmp33 [V37,T31] ( 2, 1 ) int -> x1 "field V09.m_value (fldOffset=0x0)" P-INDEP ;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref "field V09.m_flags (fldOffset=0x4)" P-INDEP -; V39 tmp35 [V39,T31] ( 2, 1 ) int -> x1 "field V11.m_value (fldOffset=0x0)" P-INDEP +; V39 tmp35 [V39,T32] ( 2, 1 ) int -> x1 "field V11.m_value (fldOffset=0x0)" P-INDEP ;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref "field V11.m_flags (fldOffset=0x4)" P-INDEP -; V41 tmp37 [V41,T32] ( 2, 1 ) int -> x1 "field V13.m_value (fldOffset=0x0)" P-INDEP +; V41 tmp37 [V41,T33] ( 2, 1 ) int -> x1 "field V13.m_value (fldOffset=0x0)" P-INDEP ;* V42 tmp38 [V42 ] ( 0, 0 ) int -> zero-ref "field V13.m_flags (fldOffset=0x4)" P-INDEP ;* V43 tmp39 [V43 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP ;* V44 tmp40 [V44 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP -; V45 tmp41 [V45,T25] ( 3, 1.50) byref -> x2 "field V21._reference (fldOffset=0x0)" P-INDEP -; V46 tmp42 [V46,T26] ( 3, 1.50) int -> x0 "field V21._length (fldOffset=0x8)" P-INDEP -; V47 tmp43 [V47,T28] ( 2, 1 ) byref -> x2 single-def "field V24._reference (fldOffset=0x0)" P-INDEP -; V48 tmp44 [V48,T33] ( 2, 1 ) int -> x0 "field V24._length (fldOffset=0x8)" P-INDEP +; V45 tmp41 [V45,T26] ( 3, 1.50) byref -> x2 "field V21._reference (fldOffset=0x0)" P-INDEP +; V46 tmp42 [V46,T27] ( 3, 1.50) int -> x0 "field V21._length (fldOffset=0x8)" P-INDEP +; V47 tmp43 [V47,T29] ( 2, 1 ) byref -> x2 single-def "field V24._reference (fldOffset=0x0)" P-INDEP +; V48 tmp44 [V48,T34] ( 2, 1 ) int -> x0 "field V24._length (fldOffset=0x8)" P-INDEP ;* V49 tmp45 [V49 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP ;* V50 tmp46 [V50 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP ;* V51 tmp47 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP ;* V52 tmp48 [V52 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP ;* V53 tmp49 [V53 ] ( 0, 0 ) byref -> zero-ref single-def "field V30._reference (fldOffset=0x0)" P-INDEP ;* V54 tmp50 [V54 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP -; V55 tmp51 [V55,T09] ( 5, 3.50) int -> x2 "V01.[000..004)" -; V56 tmp52 [V56,T17] ( 2, 2 ) long -> x1 "argument with side effect" -; V57 tmp53 [V57,T18] ( 2, 2 ) long -> x1 "argument with side effect" -; V58 tmp54 [V58,T19] ( 2, 2 ) long -> x1 "argument with side effect" -; V59 tmp55 [V59,T20] ( 2, 2 ) long -> x1 "argument with side effect" -; V60 tmp56 [V60,T21] ( 2, 2 ) long -> x1 "argument with side effect" -; V61 tmp57 [V61,T22] ( 2, 2 ) long -> x1 "argument with side effect" -; V62 tmp58 [V62,T23] ( 2, 2 ) long -> x1 "argument with side effect" -;* V63 cse0 [V63,T34] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive" -; V64 cse1 [V64,T27] ( 3, 1.50) int -> x1 "CSE #14: moderate" -; V65 cse2 [V65,T13] ( 5, 2.50) ref -> x21 "CSE #12: moderate" -; V66 cse3 [V66,T00] ( 34, 18 ) long -> x21 "CSE #03: aggressive" -; V67 cse4 [V67,T08] ( 7, 3.50) long -> x22 "CSE #09: moderate" -; V68 rat0 [V68,T12] ( 3, 2.90) int -> x1 "ReplaceWithLclVar is creating a new local variable" +; V55 tmp51 [V55,T10] ( 5, 3.50) int -> x2 "V01.[000..004)" +; V56 tmp52 [V56,T18] ( 2, 2 ) long -> x1 "argument with side effect" +; V57 tmp53 [V57,T19] ( 2, 2 ) long -> x1 "argument with side effect" +; V58 tmp54 [V58,T20] ( 2, 2 ) long -> x1 "argument with side effect" +; V59 tmp55 [V59,T21] ( 2, 2 ) long -> x1 "argument with side effect" +; V60 tmp56 [V60,T22] ( 2, 2 ) long -> x1 "argument with side effect" +; V61 tmp57 [V61,T23] ( 2, 2 ) long -> x1 "argument with side effect" +; V62 tmp58 [V62,T24] ( 2, 2 ) long -> x1 "argument with side effect" +;* V63 cse0 [V63,T35] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive" +; V64 cse1 [V64,T28] ( 3, 1.50) int -> x1 "CSE #15: moderate" +; V65 cse2 [V65,T14] ( 5, 2.50) ref -> x21 "CSE #13: moderate" +; V66 cse3 [V66,T02] ( 25, 13.50) long -> x21 "CSE #03: aggressive" +; V67 cse4 [V67,T09] ( 7, 3.50) long -> x22 "CSE #10: moderate" +; V68 cse5 [V68,T05] ( 14, 7 ) long -> x21 multi-def "CSE #07: aggressive" +; V69 rat0 [V69,T13] ( 3, 2.90) int -> x1 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 8 G_M52271_IG01: stp fp, lr, [sp, #-0x40]! stp x19, x20, [sp, #0x18] stp x21, x22, [sp, #0x28] str x23, [sp, #0x38] mov fp, sp str x1, [fp, #0x10] // [V01 arg1] mov x19, x0 mov w20, w2 ;; size=32 bbWeight=1 PerfScore 6.50 G_M52271_IG02: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldapr w0, [x0] tbz w0, #0, G_M52271_IG46 ;; size=20 bbWeight=1 PerfScore 5.50 G_M52271_IG03: movz x21, #0xD1FFAB1E movk x21, #0xD1FFAB1E LSL #16 movk x21, #0xD1FFAB1E LSL #32 ldr w1, [x21, #0xD1FFAB1E] ldr w2, [fp, #0x10] // [V01 arg1] sxth w1, w1 cmp w1, w2, SXTH beq G_M52271_IG22 ;; size=32 bbWeight=1 PerfScore 9.00 G_M52271_IG04: movz x22, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Ldarg movk x22, #0xD1FFAB1E LSL #16 movk x22, #0xD1FFAB1E LSL #32 ldr w1, [x22] sxth w1, w1 cmp w1, w2, SXTH beq G_M52271_IG12 ldr w1, [x22, #0x18] sxth w1, w1 cmp w1, w2, SXTH beq G_M52271_IG08 ldr w1, [x22, #0x30] sxth w1, w1 cmp w1, w2, SXTH bne G_M52271_IG23 cmp w20, #255 bls G_M52271_IG06 mov w1, #0xD1FFAB1E cmp w20, w1 bhi G_M52271_IG23 ldr x1, [x22, #0x30] sxth w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x30] ;; size=104 bbWeight=0.50 PerfScore 17.25 G_M52271_IG05: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG06: - ldr x1, [x21, #0xD1FFAB1E] + ldr x1, [x21, #0x18] uxtb w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x28] ;; size=24 bbWeight=0.50 PerfScore 6.50 G_M52271_IG07: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG08: cmp w20, #255 bls G_M52271_IG10 mov w1, #0xD1FFAB1E cmp w20, w1 bhi G_M52271_IG23 ldr x1, [x22, #0x18] sxth w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x30] ;; size=44 bbWeight=0.50 PerfScore 8.25 G_M52271_IG09: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG10: - ldr x1, [x21, #0xD1FFAB1E] + ldr x1, [x21] uxtb w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x28] ;; size=24 bbWeight=0.50 PerfScore 6.50 G_M52271_IG11: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG12: cmp w20, #3 bls G_M52271_IG16 cmp w20, #255 bls G_M52271_IG14 mov w1, #0xD1FFAB1E cmp w20, w1 bhi G_M52271_IG23 ldr x1, [x22] sxth w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x30] ;; size=52 bbWeight=0.50 PerfScore 9.00 G_M52271_IG13: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG14: - ldr x1, [x21, #0xD1FFAB1E] + movz x21, #0xD1FFAB1E + movk x21, #0xD1FFAB1E LSL #16 + movk x21, #0xD1FFAB1E LSL #32 + ldr x1, [x21, #0xD8] uxtb w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x28] - ;; size=24 bbWeight=0.50 PerfScore 6.50 + ;; size=36 bbWeight=0.50 PerfScore 7.25 G_M52271_IG15: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG16: cmp w20, #2 bhi G_M52271_IG21 ;; size=8 bbWeight=0.50 PerfScore 0.75 G_M52271_IG17: mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] adr x2, [G_M52271_IG02] add x0, x0, x2 br x0 ;; size=24 bbWeight=0.38 PerfScore 2.25 G_M52271_IG18: - ldp w22, w23, [x21, #0x30] + movz x21, #0xD1FFAB1E + movk x21, #0xD1FFAB1E LSL #16 + movk x21, #0xD1FFAB1E LSL #32 + ldr w22, [x21, #-0x18] + ldr w23, [x21, #-0x14] b G_M52271_IG44 - ;; size=8 bbWeight=0.50 PerfScore 2.00 + ;; size=24 bbWeight=0.50 PerfScore 4.25 G_M52271_IG19: - ldp w22, w23, [x21, #0x18] + movz x21, #0xD1FFAB1E + movk x21, #0xD1FFAB1E LSL #16 + movk x21, #0xD1FFAB1E LSL #32 + ldr w22, [x21, #-0x30] + ldr w23, [x21, #-0x2C] b G_M52271_IG44 - ;; size=8 bbWeight=0.50 PerfScore 2.00 + ;; size=24 bbWeight=0.50 PerfScore 4.25 G_M52271_IG20: + movz x21, #0xD1FFAB1E + movk x21, #0xD1FFAB1E LSL #16 + movk x21, #0xD1FFAB1E LSL #32 + ldr w22, [x21, #-0x48] + ldr w23, [x21, #-0x44] + b G_M52271_IG44 + ;; size=24 bbWeight=0.50 PerfScore 4.25 +G_M52271_IG21: + movz x21, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Ldarg_3 + movk x21, #0xD1FFAB1E LSL #16 + movk x21, #0xD1FFAB1E LSL #32 ldp w22, w23, [x21] b G_M52271_IG44 - ;; size=8 bbWeight=0.50 PerfScore 2.00 -G_M52271_IG21: - ldp w22, w23, [x21, #0x48] - b G_M52271_IG44 - ;; size=8 bbWeight=0.50 PerfScore 2.00 + ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M52271_IG22: cmn w20, #1 ccmp w20, #8, 0, ge ble G_M52271_IG32 mov w1, #127 cmn w20, #128 ccmp w20, w1, 0, ge ble G_M52271_IG30 ;; size=28 bbWeight=0.50 PerfScore 2.25 G_M52271_IG23: ldr w1, [x19, #0x58] add w1, w1, #7 ldr x21, [x19, #0x08] ldr w0, [x21, #0x08] cmp w1, w0 blt G_M52271_IG24 ldr w0, [x21, #0x08] lsl w0, w0, #1 cmp w0, w1 csel w1, w0, w1, ge sxtw x1, w1 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWARR_1_VC mov x22, x0 ldr w2, [x21, #0x08] mov x0, x21 mov x1, x22 movz x3, #0xD1FFAB1E // code for System.Array:Copy(System.Array,System.Array,int) movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 add x14, x19, #8 mov x15, x22 bl CORINFO_HELP_ASSIGN_REF ;; size=108 bbWeight=0.50 PerfScore 15.50 G_M52271_IG24: mov x0, x19 ldr x1, [fp, #0x10] // [V01 arg1] movz x2, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeILGenerator:InternalEmit(System.Reflection.Emit.OpCode):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ldr x0, [x19, #0x08] ldr w1, [x19, #0x58] cbz x0, G_M52271_IG25 ldr w2, [x0, #0x08] cmp w2, w1 blo G_M52271_IG29 add x2, x0, #16 mov w3, w1 add x2, x2, x3 ldr w0, [x0, #0x08] sub w0, w0, w1 b G_M52271_IG26 ;; size=76 bbWeight=0.50 PerfScore 12.75 G_M52271_IG25: cbnz w1, G_M52271_IG29 mov x2, xzr mov w0, wzr ;; size=12 bbWeight=0.50 PerfScore 1.00 G_M52271_IG26: cmp w0, #4 blt G_M52271_IG28 str w20, [x2] ldr w0, [x19, #0x58] add w0, w0, #4 str w0, [x19, #0x58] ;; size=24 bbWeight=0.50 PerfScore 3.50 G_M52271_IG27: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG28: mov w0, #40 movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int) movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 brk #0 ;; size=28 bbWeight=0.50 PerfScore 3.50 G_M52271_IG29: movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 brk #0 ;; size=24 bbWeight=0.50 PerfScore 3.25 G_M52271_IG30: ldr x1, [x21, #0xD1FFAB1E] uxtb w2, w20 mov x0, x19 ldr x3, [x19] ldr x3, [x3, #0x40] ldr x3, [x3, #0x28] ;; size=24 bbWeight=0.50 PerfScore 6.50 G_M52271_IG31: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x3 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG32: add w1, w20, #1 cmp w1, #8 bhi G_M52271_IG43 ;; size=12 bbWeight=0.50 PerfScore 1.00 G_M52271_IG33: mov w1, w1 adr x0, [@RWD12] ldr w0, [x0, x1, LSL #2] adr x2, [G_M52271_IG02] add x0, x0, x2 br x0 ;; size=24 bbWeight=0.45 PerfScore 2.70 G_M52271_IG34: ldr w22, [x21, #0xD1FFAB1E] ldr w23, [x21, #0xD1FFAB1E] b G_M52271_IG44 ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M52271_IG35: ldr w22, [x21, #0xD1FFAB1E] ldr w23, [x21, #0xD1FFAB1E] b G_M52271_IG44 ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M52271_IG36: ldr w22, [x21, #0xD1FFAB1E] ldr w23, [x21, #0xD1FFAB1E] b G_M52271_IG44 ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M52271_IG37: ldr w22, [x21, #0xD1FFAB1E] ldr w23, [x21, #0xD1FFAB1E] b G_M52271_IG44 ;; size=12 bbWeight=0.50 PerfScore 3.50 G_M52271_IG38: - ldr w22, [x21, #0xD1FFAB1E] - ldr w23, [x21, #0xD1FFAB1E] + ldp w22, w23, [x21, #0xF0] b G_M52271_IG44 - ;; size=12 bbWeight=0.50 PerfScore 3.50 + ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M52271_IG39: - ldr w22, [x21, #0xD1FFAB1E] - ldr w23, [x21, #0xD1FFAB1E] + ldp w22, w23, [x21, #0xD8] b G_M52271_IG44 - ;; size=12 bbWeight=0.50 PerfScore 3.50 + ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M52271_IG40: - ldr w22, [x21, #0xD1FFAB1E] - ldr w23, [x21, #0xD1FFAB1E] + ldp w22, w23, [x21, #0xC0] b G_M52271_IG44 - ;; size=12 bbWeight=0.50 PerfScore 3.50 + ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M52271_IG41: - ldr w22, [x21, #0xD1FFAB1E] - ldr w23, [x21, #0xD1FFAB1E] + ldp w22, w23, [x21, #0xA8] b G_M52271_IG44 - ;; size=12 bbWeight=0.50 PerfScore 3.50 + ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M52271_IG42: - ldr w22, [x21, #0xD1FFAB1E] - ldr w23, [x21, #0xD1FFAB1E] + ldp w22, w23, [x21, #0x90] b G_M52271_IG44 - ;; size=12 bbWeight=0.50 PerfScore 3.50 + ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M52271_IG43: ldr w22, [x21, #0xD1FFAB1E] ldr w23, [x21, #0xD1FFAB1E] ;; size=8 bbWeight=0.50 PerfScore 3.00 G_M52271_IG44: mov w1, w23 mov w0, w22 orr x1, x0, x1, LSL #32 mov x0, x19 ldr x2, [x19] ldr x2, [x2, #0x40] ldr x2, [x2, #0x20] ;; size=28 bbWeight=0.50 PerfScore 5.75 G_M52271_IG45: ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 br x2 ;; size=20 bbWeight=0.50 PerfScore 3.00 G_M52271_IG46: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M52271_IG03 ;; size=36 bbWeight=0 PerfScore 0.00 RWD00 dd G_M52271_IG20 - G_M52271_IG02 dd G_M52271_IG19 - G_M52271_IG02 dd G_M52271_IG18 - G_M52271_IG02 RWD12 dd G_M52271_IG42 - G_M52271_IG02 dd G_M52271_IG41 - G_M52271_IG02 dd G_M52271_IG40 - G_M52271_IG02 dd G_M52271_IG39 - G_M52271_IG02 dd G_M52271_IG38 - G_M52271_IG02 dd G_M52271_IG37 - G_M52271_IG02 dd G_M52271_IG36 - G_M52271_IG02 dd G_M52271_IG35 - G_M52271_IG02 dd G_M52271_IG34 - G_M52271_IG02 -; Total bytes of code 1140, prolog size 32, PerfScore 205.20, instruction count 285, allocated bytes for code 1140 (MethodHash=a85e33d0) for method System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts) +; Total bytes of code 1192, prolog size 32, PerfScore 205.95, instruction count 298, allocated bytes for code 1192 (MethodHash=a85e33d0) for method System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts) ; ============================================================
24 (1.73 % of base) - System.Reflection.Emit.RuntimeTypeBuilder:DefineDefaultConstructorNoLock(int):System.Reflection.Emit.RuntimeConstructorBuilder:this
; Assembly listing for method System.Reflection.Emit.RuntimeTypeBuilder:DefineDefaultConstructorNoLock(int):System.Reflection.Emit.RuntimeConstructorBuilder:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 + SVE on Unix ; FullOpts code ; optimized code ; fp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 18 single block inlinees; 9 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T04] ( 7, 5.50) ref -> x19 this class-hnd single-def <System.Reflection.Emit.RuntimeTypeBuilder> ; V01 arg1 [V01,T08] ( 3, 3 ) int -> x20 single-def ; V02 loc0 [V02,T07] ( 7, 5.50) ref -> x21 class-hnd <System.Reflection.ConstructorInfo> ; V03 loc1 [V03,T09] ( 10, 4.75) ref -> x21 class-hnd <System.Type> -; V04 loc2 [V04,T37] ( 2, 1 ) ref -> x21 class-hnd exact <System.Reflection.Emit.RuntimeTypeBuilder> -; V05 loc3 [V05,T18] ( 7, 3.25) ref -> x22 class-hnd single-def <System.Type> +; V04 loc2 [V04,T36] ( 2, 1 ) ref -> x21 class-hnd exact <System.Reflection.Emit.RuntimeTypeBuilder> +; V05 loc3 [V05,T17] ( 7, 3.25) ref -> x22 class-hnd single-def <System.Type> ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> ; V07 tmp1 [V07,T10] ( 3, 4.50) ref -> x0 single-def "ISINST eval op1" ;* V08 tmp2 [V08 ] ( 0, 0 ) int -> zero-ref "spilling qmarkNull" ; V09 tmp3 [V09,T01] ( 5, 10 ) ref -> x19 class-hnd exact single-def "dup spill" <System.Reflection.Emit.RuntimeConstructorBuilder> ;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Reflection.Emit.ILGenerator> -; V11 tmp5 [V11,T42] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException> +; V11 tmp5 [V11,T41] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException> ;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.RuntimeTypeBuilder> ;* V13 tmp7 [V13 ] ( 0, 0 ) int -> zero-ref "spilling qmarkNull" -; V14 tmp8 [V14,T43] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException> +; V14 tmp8 [V14,T42] ( 3, 0 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException> ;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Type[]> -; V16 tmp10 [V16,T20] ( 3, 3 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Type[]> -;* V17 tmp11 [V17,T39] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V16 tmp10 [V16,T19] ( 3, 3 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Type[]> +;* V17 tmp11 [V17,T38] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V18 tmp12 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Type[]> -; V19 tmp13 [V19,T21] ( 3, 3 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Type[]> -;* V20 tmp14 [V20,T40] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V19 tmp13 [V19,T20] ( 3, 3 ) ref -> x21 class-hnd exact single-def "Inlining Arg" <System.Type[]> +;* V20 tmp14 [V20,T39] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V21 tmp15 [V21,T11] ( 4, 4 ) ref -> x21 class-hnd single-def "Inlining Arg" <System.Type> ;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Type[]> -; V23 tmp17 [V23,T22] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Type[]> -;* V24 tmp18 [V24,T41] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V23 tmp17 [V23,T21] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Type[]> +;* V24 tmp18 [V24,T40] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V25 tmp19 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V26 tmp20 [V26,T44] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException> +; V26 tmp20 [V26,T43] ( 3, 0 ) ref -> x19 class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException> ; V27 tmp21 [V27,T00] ( 7, 12 ) ref -> x20 class-hnd exact single-def "Inlining Arg" <System.Reflection.Emit.RuntimeMethodBuilder> ;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Reflection.Emit.ILGenerator> -; V29 tmp23 [V29,T14] ( 2, 4 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.Emit.RuntimeILGenerator> +; V29 tmp23 [V29,T13] ( 2, 4 ) ref -> x22 class-hnd single-def "dup spill" <System.Reflection.Emit.RuntimeILGenerator> ; V30 tmp24 [V30,T03] ( 8, 7.50) ref -> x22 ; V31 tmp25 [V31,T02] ( 8, 8 ) ref -> x22 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Emit.RuntimeILGenerator> ;* V32 tmp26 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Emit.RuntimeILGenerator> -; V33 tmp27 [V33,T28] ( 2, 2 ) ref -> x15 class-hnd exact single-def "NewArr temp" <byte[]> -; V34 tmp28 [V34,T23] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Emit.ScopeTree> -; V35 tmp29 [V35,T26] ( 4, 2.75) ref -> x0 single-def "ISINST eval op1" +; V33 tmp27 [V33,T27] ( 2, 2 ) ref -> x15 class-hnd exact single-def "NewArr temp" <byte[]> +; V34 tmp28 [V34,T22] ( 3, 3 ) ref -> x0 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Emit.ScopeTree> +; V35 tmp29 [V35,T25] ( 4, 2.75) ref -> x0 single-def "ISINST eval op1" ;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Reflection.Emit.RuntimeMethodBuilder> -; V37 tmp31 [V37,T35] ( 4, 1.38) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.RuntimeMethodBuilder> +; V37 tmp31 [V37,T34] ( 4, 1.38) ref -> x0 class-hnd exact "Inline stloc first use temp" <System.Reflection.Emit.RuntimeMethodBuilder> ;* V38 tmp32 [V38 ] ( 0, 0 ) ref -> zero-ref single-def ;* V39 tmp33 [V39 ] ( 0, 0 ) ref -> zero-ref -; V40 tmp34 [V40,T33] ( 3, 1.50) ref -> x23 +; V40 tmp34 [V40,T32] ( 3, 1.50) ref -> x23 ;* V41 tmp35 [V41 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V42 tmp36 [V42,T29] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Emit.RuntimeTypeBuilder> +; V42 tmp36 [V42,T28] ( 2, 2 ) ref -> x0 class-hnd exact single-def "Inlining Arg" <System.Reflection.Emit.RuntimeTypeBuilder> ;* V43 tmp37 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module> ; V44 tmp38 [V44,T05] ( 7, 7 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Emit.SignatureHelper> ;* V45 tmp39 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module> ;* V46 tmp40 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module> ;* V47 tmp41 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Reflection.Module> -; V48 tmp42 [V48,T34] ( 3, 1.50) int -> x14 "Inline stloc first use temp" -; V49 tmp43 [V49,T30] ( 2, 2 ) ref -> x0 single-def "argument with side effect" -; V50 tmp44 [V50,T24] ( 3, 3 ) ref -> x0 single-def "argument with side effect" -; V51 tmp45 [V51,T31] ( 2, 2 ) ref -> x1 single-def "argument with side effect" -; V52 tmp46 [V52,T32] ( 2, 2 ) ref -> x1 single-def "argument with side effect" -; V53 tmp47 [V53,T13] ( 3, 4 ) ref -> x1 single-def "argument with side effect" -; V54 tmp48 [V54,T15] ( 2, 4 ) long -> x1 "argument with side effect" -; V55 tmp49 [V55,T16] ( 2, 4 ) long -> x1 "argument with side effect" -; V56 tmp50 [V56,T17] ( 2, 4 ) long -> x1 "argument with side effect" -; V57 tmp51 [V57,T45] ( 2, 0 ) ref -> x1 single-def "argument with side effect" -; V58 tmp52 [V58,T46] ( 2, 0 ) ref -> x1 single-def "argument with side effect" -; V59 tmp53 [V59,T47] ( 2, 0 ) ref -> x1 single-def "argument with side effect" -;* V60 cse0 [V60,T38] ( 0, 0 ) byref -> zero-ref "CSE #13: moderate" -; V61 cse1 [V61,T25] ( 3, 3 ) long -> x23 "CSE #16: moderate" -; V62 cse2 [V62,T19] ( 6, 3 ) ref -> x1 multi-def "CSE #04: aggressive" -; V63 cse3 [V63,T12] ( 4, 4 ) long -> x20 "CSE #14: moderate" -; V64 cse4 [V64,T36] ( 3, 1 ) long -> x1 "CSE #02: conservative" -; V65 rat0 [V65,T06] ( 4, 7 ) ref -> x19 "replacement local" -; V66 rat1 [V66,T27] ( 3, 2 ) long -> x0 "CSE for expectedClsNode" +; V48 tmp42 [V48,T33] ( 3, 1.50) int -> x14 "Inline stloc first use temp" +; V49 tmp43 [V49,T29] ( 2, 2 ) ref -> x0 single-def "argument with side effect" +; V50 tmp44 [V50,T23] ( 3, 3 ) ref -> x0 single-def "argument with side effect" +; V51 tmp45 [V51,T30] ( 2, 2 ) ref -> x1 single-def "argument with side effect" +; V52 tmp46 [V52,T31] ( 2, 2 ) ref -> x1 single-def "argument with side effect" +; V53 tmp47 [V53,T12] ( 3, 4 ) ref -> x1 single-def "argument with side effect" +; V54 tmp48 [V54,T14] ( 2, 4 ) long -> x1 "argument with side effect" +; V55 tmp49 [V55,T15] ( 2, 4 ) long -> x1 "argument with side effect" +; V56 tmp50 [V56,T16] ( 2, 4 ) long -> x1 "argument with side effect" +; V57 tmp51 [V57,T44] ( 2, 0 ) ref -> x1 single-def "argument with side effect" +; V58 tmp52 [V58,T45] ( 2, 0 ) ref -> x1 single-def "argument with side effect" +; V59 tmp53 [V59,T46] ( 2, 0 ) ref -> x1 single-def "argument with side effect" +;* V60 cse0 [V60,T37] ( 0, 0 ) byref -> zero-ref "CSE #14: moderate" +; V61 cse1 [V61,T24] ( 3, 3 ) long -> x20 "CSE #17: moderate" +; V62 cse2 [V62,T18] ( 6, 3 ) ref -> x1 multi-def "CSE #04: aggressive" +; V63 cse3 [V63,T35] ( 3, 1 ) long -> x1 "CSE #02: conservative" +; V64 rat0 [V64,T06] ( 4, 7 ) ref -> x19 "replacement local" +; V65 rat1 [V65,T26] ( 3, 2 ) long -> x0 "CSE for expectedClsNode" ; ; Lcl frame size = 0 G_M30440_IG01: stp fp, lr, [sp, #-0x40]! stp x19, x20, [sp, #0x10] stp x21, x22, [sp, #0x20] stp x23, x24, [sp, #0x30] mov fp, sp mov x19, x0 mov w20, w1 ;; size=28 bbWeight=1 PerfScore 5.50 G_M30440_IG02: mov x21, xzr ldr x0, [x19, #0x30] cbz x0, G_M30440_IG11 ;; size=12 bbWeight=1 PerfScore 4.50 G_M30440_IG03: ldr x1, [x0] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0 bne G_M30440_IG11 ;; size=24 bbWeight=0.25 PerfScore 1.50 G_M30440_IG04: ldr x0, [x19, #0x30] ldr x1, [x1, #0x68] ldr x1, [x1, #0x18] blr x1 mov x21, x0 cbz x21, G_M30440_IG07 ;; size=24 bbWeight=0.50 PerfScore 5.75 G_M30440_IG05: ldr x0, [x21] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1 bne G_M30440_IG07 ;; size=24 bbWeight=0.25 PerfScore 1.50 G_M30440_IG06: ldr x21, [x21, #0x58] ;; size=4 bbWeight=0.50 PerfScore 1.50 G_M30440_IG07: cbz x21, G_M30440_IG26 ldr x0, [x19, #0x30] ldr x1, [x0] ldr x1, [x1, #0x68] ldr x1, [x1, #0x28] blr x1 mov x1, x0 mov x0, x21 ldr x2, [x21] ldr x2, [x2, #0xA8] ldr x2, [x2, #0x08] blr x2 mov x22, x0 cbz x22, G_M30440_IG09 ;; size=56 bbWeight=0.50 PerfScore 13.25 G_M30440_IG08: ldr x0, [x22] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1 beq G_M30440_IG10 ;; size=24 bbWeight=0.25 PerfScore 1.50 G_M30440_IG09: ldrsb wzr, [x22] movz x0, #160 movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x21, [x0] mov x0, x21 movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x22 mov x4, x21 mov w1, #52 mov x2, xzr mov w3, #3 mov x5, xzr ldr x6, [x22] ldr x6, [x6, #0x78] ldr x6, [x6, #0x38] blr x6 mov x21, x0 b G_M30440_IG11 ;; size=104 bbWeight=0.50 PerfScore 14.75 G_M30440_IG10: movz x0, #160 movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x23, [x0] mov x0, x23 movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x21 mov x4, x23 mov w1, #52 mov x2, xzr mov w3, #3 mov x5, xzr ldr x6, [x21] ldr x6, [x6, #0x78] ldr x6, [x6, #0x38] blr x6 mov x1, x0 mov x0, x22 movz x2, #0xD1FFAB1E // code for System.Reflection.Emit.TypeBuilder:GetConstructor(System.Type,System.Reflection.ConstructorInfo):System.Reflection.ConstructorInfo movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x21, x0 ;; size=124 bbWeight=0.50 PerfScore 16.00 G_M30440_IG11: cbnz x21, G_M30440_IG13 ;; size=4 bbWeight=1 PerfScore 1.00 G_M30440_IG12: ldr x21, [x19, #0x30] ldrsb wzr, [x21] movz x0, #160 movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x22, [x0] mov x0, x22 movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x21 mov x4, x22 mov w1, #52 mov x2, xzr mov w3, #3 mov x5, xzr ldr x6, [x21] ldr x6, [x6, #0x78] ldr x6, [x6, #0x38] blr x6 mov x21, x0 ;; size=104 bbWeight=0.50 PerfScore 15.75 G_M30440_IG13: cbz x21, G_M30440_IG27 mov x0, x19 mov w1, w20 mov w2, #1 mov x3, xzr mov x4, xzr mov x5, xzr movz x6, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeTypeBuilder:DefineConstructorCore(int,int,System.Type[],System.Type[][],System.Type[][]):System.Reflection.Emit.ConstructorBuilder:this movk x6, #0xD1FFAB1E LSL #16 movk x6, #0xD1FFAB1E LSL #32 ldr x6, [x6] blr x6 mov x1, x0 mov x19, x1 cbz x19, G_M30440_IG15 ;; size=60 bbWeight=1 PerfScore 11.50 G_M30440_IG14: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x2, [x19] cmp x2, x0 bne G_M30440_IG28 ;; size=24 bbWeight=0.50 PerfScore 3.00 G_M30440_IG15: ldrb w0, [x19, #0x10] cbnz w0, G_M30440_IG29 ldr x20, [x19, #0x08] ldrsb wzr, [x20] mov x0, x20 movz x1, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeMethodBuilder:ThrowIfGeneric():this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 mov x0, x20 movz x1, #0xD1FFAB1E // code for System.Reflection.Emit.RuntimeMethodBuilder:ThrowIfShouldNotHaveBody():this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ldr x22, [x20, #0x38] cbnz x22, G_M30440_IG23 ;; size=72 bbWeight=1 PerfScore 26.00 G_M30440_IG16: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x22, x0 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 mov x1, #64 bl CORINFO_HELP_NEWARR_1_VC mov x15, x0 add x14, x22, #8 bl CORINFO_HELP_ASSIGN_REF movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST str xzr, [x0, #0x20] add x14, x22, #56 mov x15, x0 bl CORINFO_HELP_ASSIGN_REF add x14, x22, #64 mov x15, x20 bl CORINFO_HELP_ASSIGN_REF ldr x0, [x22, #0x40] cbz x0, G_M30440_IG19 ;; size=104 bbWeight=0.50 PerfScore 9.75 G_M30440_IG17: ldr x1, [x0] movz x2, #0xD1FFAB1E movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2 bne G_M30440_IG19 ;; size=24 bbWeight=0.25 PerfScore 1.50 G_M30440_IG18: b G_M30440_IG20 ;; size=4 bbWeight=0.12 PerfScore 0.12 G_M30440_IG19: mov x0, xzr ;; size=4 bbWeight=0.25 PerfScore 0.12 G_M30440_IG20: cbz x0, G_M30440_IG21 ldr x0, [x0, #0x18] ldr x23, [x0, #0x10] b G_M30440_IG22 ;; size=16 bbWeight=0.50 PerfScore 4.00 G_M30440_IG21: mov x23, xzr ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M30440_IG22: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x24, x0 mov x1, x23 movz x2, #0xD1FFAB1E // code for System.Reflection.Emit.SignatureHelper:Init(System.Reflection.Module):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x24 mov w1, #7 movz x2, #0xD1FFAB1E // code for System.Reflection.Emit.SignatureHelper:AddData(int):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ldr w14, [x24, #0x18] add w15, w14, #1 stp w15, w14, [x24, #0x18] add x14, x22, #72 mov x15, x24 bl CORINFO_HELP_ASSIGN_REF add x14, x20, #56 mov x15, x22 bl CORINFO_HELP_ASSIGN_REF ;; size=108 bbWeight=0.50 PerfScore 12.00 G_M30440_IG23: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldapr w0, [x0] tbz w0, #0, G_M30440_IG30 ;; size=20 bbWeight=1 PerfScore 5.50 G_M30440_IG24: - movz x20, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Ldarg_0 - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - ldr x1, [x20] + movz x1, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Ldarg_0 + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] mov x0, x22 ldr x2, [x22] - ldr x23, [x2, #0x40] - ldr x2, [x23, #0x20] + ldr x20, [x2, #0x40] + ldr x2, [x20, #0x20] blr x2 - ldr x1, [x20, #0xD1FFAB1E] + movz x1, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Call + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] mov x0, x22 mov x2, x21 ldr x3, [x22] ldr x3, [x3, #0x50] ldr x3, [x3] blr x3 - ldr x1, [x20, #0xD1FFAB1E] + movz x1, #0xD1FFAB1E // data for System.Reflection.Emit.OpCodes:Ret + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] mov x0, x22 - ldr x2, [x23, #0x20] + ldr x2, [x20, #0x20] blr x2 mov w0, #1 strb w0, [x19, #0x10] mov x0, x19 - ;; size=92 bbWeight=1 PerfScore 38.50 + ;; size=116 bbWeight=1 PerfScore 41.50 G_M30440_IG25: ldp x23, x24, [sp, #0x30] ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x40 ret lr ;; size=20 bbWeight=1 PerfScore 5.00 G_M30440_IG26: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x21, x0 movz x0, #0xD1FFAB1E // code for System.SR:get_NotSupported_DynamicModule():System.String movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 mov x1, x0 mov x0, x21 movz x2, #0xD1FFAB1E // code for System.NotSupportedException:.ctor(System.String):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x21 bl CORINFO_HELP_THROW brk #0 ;; size=80 bbWeight=0 PerfScore 0.00 G_M30440_IG27: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x19, x0 movz x0, #0xD1FFAB1E // code for System.SR:get_NotSupported_NoParentDefaultConstructor():System.String movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 mov x1, x0 mov x0, x19 movz x2, #0xD1FFAB1E // code for System.NotSupportedException:.ctor(System.String):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x19 bl CORINFO_HELP_THROW brk #0 ;; size=80 bbWeight=0 PerfScore 0.00 G_M30440_IG28: movz x2, #0xD1FFAB1E // code for CORINFO_HELP_CHKCASTCLASS movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 brk #0 ;; size=24 bbWeight=0 PerfScore 0.00 G_M30440_IG29: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x19, x0 movz x0, #0xD1FFAB1E // code for System.SR:get_InvalidOperation_DefaultConstructorILGen():System.String movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 mov x1, x0 mov x0, x19 movz x2, #0xD1FFAB1E // code for System.InvalidOperationException:.ctor(System.String):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x0, x19 bl CORINFO_HELP_THROW brk #0 ;; size=80 bbWeight=0 PerfScore 0.00 G_M30440_IG30: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M30440_IG24 ;; size=36 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1384, prolog size 20, PerfScore 199.75, instruction count 346, allocated bytes for code 1384 (MethodHash=b9688917) for method System.Reflection.Emit.RuntimeTypeBuilder:DefineDefaultConstructorNoLock(int):System.Reflection.Emit.RuntimeConstructorBuilder:this (FullOpts) +; Total bytes of code 1408, prolog size 20, PerfScore 202.75, instruction count 352, allocated bytes for code 1408 (MethodHash=b9688917) for method System.Reflection.Emit.RuntimeTypeBuilder:DefineDefaultConstructorNoLock(int):System.Reflection.Emit.RuntimeConstructorBuilder:this (FullOpts) ; ============================================================
Larger list of diffs: https://gist.github.com/MihuBot/f06f8535a2bdb9cb18ba061a0e9d9856
Top method improvements
-40 (-3.47 % of base) - Microsoft.Extensions.Http.Logging.HttpHeadersLogValue:get_Values():System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this
; Assembly listing for method Microsoft.Extensions.Http.Logging.HttpHeadersLogValue:get_Values():System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 + SVE on Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 25 single block inlinees; 6 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T19] ( 7, 5.50) ref -> x19 this class-hnd single-def <Microsoft.Extensions.Http.Logging.HttpHeadersLogValue> ; V01 loc0 [V01,T00] ( 14, 49 ) ref -> x20 class-hnd exact single-def <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]> -; V02 loc1 [V02,T03] ( 12, 18 ) ref -> [fp+0x10] do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> +; V02 loc1 [V02,T03] ( 12, 18 ) ref -> [fp+0x18] do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> ;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-ret multireg-dest ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]> ;* V04 loc3 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-ret multireg-dest ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]> ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty> -; V06 tmp1 [V06,T25] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]> +; V06 tmp1 [V06,T26] ( 3, 3 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]> ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]> ;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String> ;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object]> ;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]> ;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.String> ;* V12 tmp7 [V12 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object]> -; V13 tmp8 [V13,T30] ( 3, 1.50) ref -> x24 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> -; V14 tmp9 [V14,T26] ( 3, 3 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.Net.Http.Headers.HttpHeaders> -; V15 tmp10 [V15,T22] ( 4, 4 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.Headers.HttpHeaders+<GetEnumeratorCore>d__25> -; V16 tmp11 [V16,T31] ( 3, 1.50) ref -> x24 class-hnd exact "Inline return value spill temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> -; V17 tmp12 [V17,T27] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]][]> +; V13 tmp8 [V13,T31] ( 3, 1.50) ref -> x25 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> +; V14 tmp9 [V14,T27] ( 3, 3 ) ref -> x22 class-hnd single-def "Inlining Arg" <System.Net.Http.Headers.HttpHeaders> +; V15 tmp10 [V15,T23] ( 4, 4 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.Headers.HttpHeaders+<GetEnumeratorCore>d__25> +; V16 tmp11 [V16,T32] ( 3, 1.50) ref -> x25 class-hnd exact "Inline return value spill temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> +; V17 tmp12 [V17,T28] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]][]> ;* V18 tmp13 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]][]> -; V19 tmp14 [V19,T35] ( 3, 1.50) int -> x23 single-def "Inline stloc first use temp" -; V20 tmp15 [V20,T20] ( 5, 5 ) ref -> x24 class-hnd exact single-def "NewObj constructor temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> +; V19 tmp14 [V19,T36] ( 3, 1.50) int -> x24 single-def "Inline stloc first use temp" +; V20 tmp15 [V20,T20] ( 5, 5 ) ref -> x25 class-hnd exact single-def "NewObj constructor temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> ;* V21 tmp16 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon> -; V22 tmp17 [V22,T07] ( 3, 12 ) ref -> x24 class-hnd "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]> -; V23 tmp18 [V23,T05] ( 4, 16 ) int -> x25 "Inline stloc first use temp" +; V22 tmp17 [V22,T07] ( 3, 12 ) ref -> x25 class-hnd "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]> +; V23 tmp18 [V23,T05] ( 4, 16 ) int -> x26 "Inline stloc first use temp" ;* V24 tmp19 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object]> -; V25 tmp20 [V25,T32] ( 3, 1.50) ref -> x21 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> -; V26 tmp21 [V26,T28] ( 3, 3 ) ref -> x23 class-hnd single-def "Inlining Arg" <System.Net.Http.Headers.HttpHeaders> -; V27 tmp22 [V27,T23] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.Headers.HttpHeaders+<GetEnumeratorCore>d__25> -; V28 tmp23 [V28,T33] ( 3, 1.50) ref -> x21 class-hnd exact "Inline return value spill temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> -; V29 tmp24 [V29,T29] ( 3, 3 ) ref -> x23 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]][]> +; V25 tmp20 [V25,T33] ( 3, 1.50) ref -> x21 class-hnd "Inline return value spill temp" <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> +; V26 tmp21 [V26,T29] ( 3, 3 ) ref -> x24 class-hnd single-def "Inlining Arg" <System.Net.Http.Headers.HttpHeaders> +; V27 tmp22 [V27,T24] ( 4, 4 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.Net.Http.Headers.HttpHeaders+<GetEnumeratorCore>d__25> +; V28 tmp23 [V28,T34] ( 3, 1.50) ref -> x21 class-hnd exact "Inline return value spill temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> +; V29 tmp24 [V29,T30] ( 3, 3 ) ref -> x24 class-hnd exact single-def "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]][]> ;* V30 tmp25 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]][]> -; V31 tmp26 [V31,T36] ( 3, 1.50) int -> x24 single-def "Inline stloc first use temp" +; V31 tmp26 [V31,T37] ( 3, 1.50) int -> x25 single-def "Inline stloc first use temp" ; V32 tmp27 [V32,T21] ( 5, 5 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" <System.SZGenericArrayEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Collections.Generic.IEnumerable`1[System.String]]]> ;* V33 tmp28 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon> ; V34 tmp29 [V34,T08] ( 3, 12 ) ref -> x23 class-hnd "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]> ; V35 tmp30 [V35,T06] ( 4, 16 ) int -> x24 "Inline stloc first use temp" ;* V36 tmp31 [V36 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Collections.Generic.KeyValuePair`2[System.String,System.Object]> ; V37 tmp32 [V37,T09] ( 3, 12 ) ref -> x0 "field V03.key (fldOffset=0x0)" P-INDEP ; V38 tmp33 [V38,T10] ( 3, 12 ) ref -> x2 "field V03.value (fldOffset=0x8)" P-INDEP ; V39 tmp34 [V39,T11] ( 3, 12 ) ref -> x0 "field V04.key (fldOffset=0x0)" P-INDEP ; V40 tmp35 [V40,T12] ( 3, 12 ) ref -> x2 "field V04.value (fldOffset=0x8)" P-INDEP ;* V41 tmp36 [V41 ] ( 0, 0 ) ref -> zero-ref "field V07.key (fldOffset=0x0)" P-DEP ;* V42 tmp37 [V42 ] ( 0, 0 ) ref -> zero-ref "field V07.value (fldOffset=0x8)" P-DEP ; V43 tmp38 [V43,T13] ( 2, 8 ) ref -> x15 "field V09.key (fldOffset=0x0)" P-INDEP -; V44 tmp39 [V44,T14] ( 2, 8 ) ref -> x23 "field V09.value (fldOffset=0x8)" P-INDEP +; V44 tmp39 [V44,T14] ( 2, 8 ) ref -> x24 "field V09.value (fldOffset=0x8)" P-INDEP ;* V45 tmp40 [V45 ] ( 0, 0 ) ref -> zero-ref "field V10.key (fldOffset=0x0)" P-DEP ;* V46 tmp41 [V46 ] ( 0, 0 ) ref -> zero-ref "field V10.value (fldOffset=0x8)" P-DEP ; V47 tmp42 [V47,T15] ( 2, 8 ) ref -> x15 "field V12.key (fldOffset=0x0)" P-INDEP ; V48 tmp43 [V48,T16] ( 2, 8 ) ref -> x21 "field V12.value (fldOffset=0x8)" P-INDEP ;* V49 tmp44 [V49 ] ( 0, 0 ) ref -> zero-ref "field V24.key (fldOffset=0x0)" P-INDEP ;* V50 tmp45 [V50 ] ( 0, 0 ) ref -> zero-ref "field V24.value (fldOffset=0x8)" P-INDEP ;* V51 tmp46 [V51 ] ( 0, 0 ) ref -> zero-ref "field V36.key (fldOffset=0x0)" P-INDEP ;* V52 tmp47 [V52 ] ( 0, 0 ) ref -> zero-ref "field V36.value (fldOffset=0x8)" P-INDEP ; V53 tmp48 [V53,T01] ( 3, 24 ) byref -> x0 "BlockOp address local" ; V54 tmp49 [V54,T02] ( 3, 24 ) byref -> x0 "BlockOp address local" -; V55 cse0 [V55,T34] ( 3, 1.50) ref -> x23 "CSE #07: moderate" -; V56 cse1 [V56,T04] ( 11, 17.50) long -> x22 hoist multi-def "CSE #05: aggressive" -; V57 cse2 [V57,T17] ( 2, 8 ) int -> x1 "CSE #06: aggressive" -; V58 cse3 [V58,T18] ( 2, 8 ) int -> x1 "CSE #10: aggressive" -; V59 cse4 [V59,T24] ( 6, 3 ) long -> x21 "CSE #03: moderate" +; V55 cse0 [V55,T35] ( 3, 1.50) ref -> x24 "CSE #06: moderate" +; V56 cse1 [V56,T04] ( 11, 17.50) long -> x22 hoist multi-def "CSE #04: aggressive" +; V57 cse2 [V57,T17] ( 2, 8 ) int -> x1 "CSE #05: aggressive" +; V58 cse3 [V58,T18] ( 2, 8 ) int -> x1 "CSE #09: aggressive" +; V59 cse4 [V59,T22] ( 10, 4 ) long -> x23 multi-def "CSE #02: moderate" +; V60 cse5 [V60,T25] ( 6, 3 ) long -> x21 "CSE #03: moderate" +; V61 rat0 [V61,T38] ( 2, 1 ) long -> x0 "Spilling to split statement for tree" +; V62 rat1 [V62,T39] ( 2, 1 ) long -> x0 "Spilling to split statement for tree" ; -; Lcl frame size = 8 +; Lcl frame size = 16 G_M49011_IG01: - stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x18] - stp x21, x22, [sp, #0x28] - stp x23, x24, [sp, #0x38] - str x25, [sp, #0x48] + stp fp, lr, [sp, #-0x60]! + stp x19, x20, [sp, #0x20] + stp x21, x22, [sp, #0x30] + stp x23, x24, [sp, #0x40] + stp x25, x26, [sp, #0x50] mov fp, sp mov x19, x0 ;; size=28 bbWeight=1 PerfScore 6.00 G_M49011_IG02: ldr x0, [x19, #0x18] cbnz x0, G_M49011_IG26 ;; size=8 bbWeight=1 PerfScore 4.00 G_M49011_IG03: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x20, x0 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldapr w0, [x0] tbz w0, #0, G_M49011_IG28 ;; size=40 bbWeight=0.50 PerfScore 4.25 G_M49011_IG04: movz x21, #0xD1FFAB1E // data for System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:s_emptyArray movk x21, #0xD1FFAB1E LSL #16 movk x21, #0xD1FFAB1E LSL #32 ldr x15, [x21] add x14, x20, #8 bl CORINFO_HELP_ASSIGN_REF ldr x22, [x19, #0x20] ldr w0, [x22, #0x10] cbnz w0, G_M49011_IG09 - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - ldapr w0, [x0] - tbz w0, #0, G_M49011_IG29 - ;; size=56 bbWeight=0.50 PerfScore 9.25 + movz x23, #0xD1FFAB1E + movk x23, #0xD1FFAB1E LSL #16 + movk x23, #0xD1FFAB1E LSL #32 + add x0, x23, #0xD1FFAB1E + movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldapr w1, [x1] + tbz w1, #0, G_M49011_IG29 + ;; size=72 bbWeight=0.50 PerfScore 10.25 G_M49011_IG05: ldr x22, [x21, #0x08] - ldr w23, [x22, #0x08] - cbnz w23, G_M49011_IG07 + ldr w24, [x22, #0x08] + cbnz w24, G_M49011_IG07 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldapr w0, [x0] tbz w0, #0, G_M49011_IG30 ;; size=32 bbWeight=0.50 PerfScore 6.25 G_M49011_IG06: - ldr x24, [x21, #0x10] + ldr x25, [x21, #0x10] b G_M49011_IG08 ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M49011_IG07: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 + mov x0, x23 bl CORINFO_HELP_NEWSFAST - mov x24, x0 + mov x25, x0 movn w14, #0 - stp w14, w23, [x24, #0x08] - add x14, x24, #16 + stp w14, w24, [x25, #0x08] + add x14, x25, #16 mov x15, x22 bl CORINFO_HELP_ASSIGN_REF - ;; size=40 bbWeight=0.50 PerfScore 3.25 + ;; size=32 bbWeight=0.50 PerfScore 2.75 G_M49011_IG08: b G_M49011_IG10 ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49011_IG09: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 + movz x23, #0xD1FFAB1E + movk x23, #0xD1FFAB1E LSL #16 + movk x23, #0xD1FFAB1E LSL #32 + add x0, x23, #0xD1FFAB1E bl CORINFO_HELP_NEWSFAST - mov x24, x0 - str wzr, [x24, #0x18] - add x14, x24, #8 + mov x25, x0 + str wzr, [x25, #0x18] + add x14, x25, #8 mov x15, x22 bl CORINFO_HELP_ASSIGN_REF - ;; size=36 bbWeight=0.50 PerfScore 3.00 + ;; size=40 bbWeight=0.50 PerfScore 3.25 G_M49011_IG10: - str x24, [fp, #0x10] // [V02 loc1] + str x25, [fp, #0x18] // [V02 loc1] ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49011_IG11: movz x22, #0xD1FFAB1E movk x22, #0xD1FFAB1E LSL #16 movk x22, #0xD1FFAB1E LSL #32 b G_M49011_IG13 ;; size=16 bbWeight=0.50 PerfScore 1.25 G_M49011_IG12: mov x1, x0 mov x0, x20 movz x3, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:AddWithResize(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 ;; size=28 bbWeight=4 PerfScore 26.00 G_M49011_IG13: - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] mov x11, x22 ldr xip0, [x11] blr xip0 cbz w0, G_M49011_IG14 - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] add x11, x22, #8 ldr xip0, [x11] blr xip0 mov x2, x1 mov x15, x0 - mov x23, x2 + mov x24, x2 ldr w1, [x20, #0x14] add w1, w1, #1 str w1, [x20, #0x14] - ldr x24, [x20, #0x08] - ldr w25, [x20, #0x10] - ldr w1, [x24, #0x08] - cmp w1, w25 + ldr x25, [x20, #0x08] + ldr w26, [x20, #0x10] + ldr w1, [x25, #0x08] + cmp w1, w26 bls G_M49011_IG12 - add w14, w25, #1 + add w14, w26, #1 str w14, [x20, #0x10] - ubfiz x14, x25, #4, #32 + ubfiz x14, x26, #4, #32 add x14, x14, #16 - add x0, x24, x14 + add x0, x25, x14 mov x14, x0 bl CORINFO_HELP_ASSIGN_REF add x14, x0, #8 - mov x15, x23 + mov x15, x24 bl CORINFO_HELP_ASSIGN_REF b G_M49011_IG13 ;; size=124 bbWeight=4 PerfScore 154.00 G_M49011_IG14: - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] add x11, x22, #40 ldr xip0, [x11] blr xip0 - ldr x23, [x19, #0x28] - cbz x23, G_M49011_IG25 - ldr w0, [x23, #0x10] + ldr x24, [x19, #0x28] + cbz x24, G_M49011_IG25 + ldr w0, [x24, #0x10] cbnz w0, G_M49011_IG19 - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - ldapr w0, [x0] - tbz w0, #0, G_M49011_IG31 - ;; size=52 bbWeight=0.50 PerfScore 10.00 + add x0, x23, #0xD1FFAB1E + movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldapr w1, [x1] + tbz w1, #0, G_M49011_IG31 + ;; size=56 bbWeight=0.50 PerfScore 10.25 G_M49011_IG15: - ldr x23, [x21, #0x08] - ldr w24, [x23, #0x08] - cbnz w24, G_M49011_IG17 + ldr x24, [x21, #0x08] + ldr w25, [x24, #0x08] + cbnz w25, G_M49011_IG17 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldapr w0, [x0] tbz w0, #0, G_M49011_IG32 ;; size=32 bbWeight=0.50 PerfScore 6.25 G_M49011_IG16: ldr x21, [x21, #0x10] b G_M49011_IG18 ;; size=8 bbWeight=0.50 PerfScore 2.00 G_M49011_IG17: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 + mov x0, x23 bl CORINFO_HELP_NEWSFAST mov x21, x0 movn w14, #0 - stp w14, w24, [x21, #0x08] + stp w14, w25, [x21, #0x08] add x14, x21, #16 - mov x15, x23 + mov x15, x24 bl CORINFO_HELP_ASSIGN_REF - ;; size=40 bbWeight=0.50 PerfScore 3.25 + ;; size=32 bbWeight=0.50 PerfScore 2.75 G_M49011_IG18: b G_M49011_IG20 ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49011_IG19: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 + add x0, x23, #0xD1FFAB1E bl CORINFO_HELP_NEWSFAST mov x21, x0 str wzr, [x21, #0x18] add x14, x21, #8 - mov x15, x23 + mov x15, x24 bl CORINFO_HELP_ASSIGN_REF - ;; size=36 bbWeight=0.50 PerfScore 3.00 + ;; size=28 bbWeight=0.50 PerfScore 2.50 G_M49011_IG20: - str x21, [fp, #0x10] // [V02 loc1] + str x21, [fp, #0x18] // [V02 loc1] ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49011_IG21: b G_M49011_IG23 ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49011_IG22: mov x1, x0 mov x0, x20 movz x3, #0xD1FFAB1E // code for System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:AddWithResize(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 ;; size=28 bbWeight=4 PerfScore 26.00 G_M49011_IG23: - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] add x11, x22, #16 ldr xip0, [x11] blr xip0 cbz w0, G_M49011_IG24 - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] add x11, x22, #24 ldr xip0, [x11] blr xip0 mov x2, x1 mov x15, x0 mov x21, x2 ldr w1, [x20, #0x14] add w1, w1, #1 str w1, [x20, #0x14] ldr x23, [x20, #0x08] ldr w24, [x20, #0x10] ldr w1, [x23, #0x08] cmp w1, w24 bls G_M49011_IG22 add w14, w24, #1 str w14, [x20, #0x10] ubfiz x14, x24, #4, #32 add x14, x14, #16 add x0, x23, x14 mov x14, x0 bl CORINFO_HELP_ASSIGN_REF add x14, x0, #8 mov x15, x21 bl CORINFO_HELP_ASSIGN_REF b G_M49011_IG23 ;; size=124 bbWeight=4 PerfScore 154.00 G_M49011_IG24: - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] add x11, x22, #32 ldr xip0, [x11] blr xip0 ;; size=16 bbWeight=0.50 PerfScore 3.25 G_M49011_IG25: add x14, x19, #24 mov x15, x20 bl CORINFO_HELP_ASSIGN_REF ;; size=12 bbWeight=0.50 PerfScore 1.00 G_M49011_IG26: ldr x0, [x19, #0x18] ;; size=4 bbWeight=1 PerfScore 3.00 G_M49011_IG27: - ldr x25, [sp, #0x48] - ldp x23, x24, [sp, #0x38] - ldp x21, x22, [sp, #0x28] - ldp x19, x20, [sp, #0x18] - ldp fp, lr, [sp], #0x50 + ldp x25, x26, [sp, #0x50] + ldp x23, x24, [sp, #0x40] + ldp x21, x22, [sp, #0x30] + ldp x19, x20, [sp, #0x20] + ldp fp, lr, [sp], #0x60 ret lr - ;; size=24 bbWeight=1 PerfScore 7.00 + ;; size=24 bbWeight=1 PerfScore 6.00 G_M49011_IG28: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M49011_IG04 ;; size=36 bbWeight=0 PerfScore 0.00 G_M49011_IG29: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M49011_IG05 - ;; size=36 bbWeight=0 PerfScore 0.00 + ;; size=24 bbWeight=0 PerfScore 0.00 G_M49011_IG30: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 + mov x0, x23 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M49011_IG06 - ;; size=36 bbWeight=0 PerfScore 0.00 + ;; size=28 bbWeight=0 PerfScore 0.00 G_M49011_IG31: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M49011_IG15 - ;; size=36 bbWeight=0 PerfScore 0.00 + ;; size=24 bbWeight=0 PerfScore 0.00 G_M49011_IG32: - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 + mov x0, x23 movz x1, #0xD1FFAB1E // code for CORINFO_HELP_GET_GCSTATIC_BASE movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M49011_IG16 - ;; size=36 bbWeight=0 PerfScore 0.00 + ;; size=28 bbWeight=0 PerfScore 0.00 G_M49011_IG33: stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x18] - stp x21, x22, [sp, #0x28] - stp x23, x24, [sp, #0x38] - str x25, [sp, #0x48] + stp x19, x20, [sp, #0x10] + stp x21, x22, [sp, #0x20] + stp x23, x24, [sp, #0x30] + stp x25, x26, [sp, #0x40] ;; size=20 bbWeight=0 PerfScore 0.00 G_M49011_IG34: - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] cbz x0, G_M49011_IG35 - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] movz x22, #0xD1FFAB1E movk x22, #0xD1FFAB1E LSL #16 movk x22, #0xD1FFAB1E LSL #32 add x11, x22, #40 ldr xip0, [x11] blr xip0 ;; size=36 bbWeight=0 PerfScore 0.00 G_M49011_IG35: - ldr x25, [sp, #0x48] - ldp x23, x24, [sp, #0x38] - ldp x21, x22, [sp, #0x28] - ldp x19, x20, [sp, #0x18] + ldp x25, x26, [sp, #0x40] + ldp x23, x24, [sp, #0x30] + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x50 ret lr ;; size=24 bbWeight=0 PerfScore 0.00 G_M49011_IG36: stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x18] - stp x21, x22, [sp, #0x28] - stp x23, x24, [sp, #0x38] - str x25, [sp, #0x48] + stp x19, x20, [sp, #0x10] + stp x21, x22, [sp, #0x20] + stp x23, x24, [sp, #0x30] + stp x25, x26, [sp, #0x40] ;; size=20 bbWeight=0 PerfScore 0.00 G_M49011_IG37: - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] cbz x0, G_M49011_IG38 - ldr x0, [fp, #0x10] // [V02 loc1] + ldr x0, [fp, #0x18] // [V02 loc1] movz x22, #0xD1FFAB1E movk x22, #0xD1FFAB1E LSL #16 movk x22, #0xD1FFAB1E LSL #32 add x11, x22, #32 ldr xip0, [x11] blr xip0 ;; size=36 bbWeight=0 PerfScore 0.00 G_M49011_IG38: - ldr x25, [sp, #0x48] - ldp x23, x24, [sp, #0x38] - ldp x21, x22, [sp, #0x28] - ldp x19, x20, [sp, #0x18] + ldp x25, x26, [sp, #0x40] + ldp x23, x24, [sp, #0x30] + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x50 ret lr ;; size=24 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1152, prolog size 28, PerfScore 440.50, instruction count 288, allocated bytes for code 1152 (MethodHash=6fee408c) for method Microsoft.Extensions.Http.Logging.HttpHeadersLogValue:get_Values():System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) +; Total bytes of code 1112, prolog size 28, PerfScore 439.50, instruction count 278, allocated bytes for code 1112 (MethodHash=6fee408c) for method Microsoft.Extensions.Http.Logging.HttpHeadersLogValue:get_Values():System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) ; ============================================================
Note: some changes were skipped as they were too large to fit into a comment.
Larger list of diffs: https://gist.github.com/MihuBot/853f3f0a5530e8455203ce1b461d0c13
Metadata
Metadata
Assignees
Labels
No labels
Job completed in 15 minutes 57 seconds (remote runner delay: 49 seconds).
dotnet/runtime#117223
Using arguments:
-armDiffs
Diffs
Artifacts: